@camera.ui/server 2.2.7 → 2.3.0

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 (958) hide show
  1. package/LICENSE.md +8 -1
  2. package/dist/interface/assets/404-C0X5UBF4.js +1 -0
  3. package/dist/interface/assets/About-Ctp_u5qK.js +1 -0
  4. package/dist/interface/assets/Assistant-Bj2bAUHD.css +1 -0
  5. package/dist/interface/assets/Assistant-CDrBV_mg.js +1 -0
  6. package/dist/interface/assets/Automation-Dp6V80Iz.js +3 -0
  7. package/dist/interface/assets/Automation-R5o9sXYY.css +1 -0
  8. package/dist/interface/assets/AutomationImport-DKgg7atE.js +2 -0
  9. package/dist/interface/assets/AutomationStore-CU-m5VC8.js +2 -0
  10. package/dist/interface/assets/AutomationStoreDetail-CiyIs8Iu.js +2 -0
  11. package/dist/interface/assets/Automations-Dljh-sWu.js +2 -0
  12. package/dist/interface/assets/Camera-0p0P_mbp.css +1 -0
  13. package/dist/interface/assets/Camera-Bvovab-8.js +2 -0
  14. package/dist/interface/assets/CameraConsole-D_Fv-MAi.js +7 -0
  15. package/dist/interface/assets/Cameras-Cq7Gw-fk.js +651 -0
  16. package/dist/interface/assets/Camview-Bs2VvmUS.css +1 -0
  17. package/dist/interface/assets/Camview-CP6PA20C.js +1 -0
  18. package/dist/interface/assets/CertificateUpload-DjzNMFc3.js +1 -0
  19. package/dist/interface/assets/Config-Dl2TlyFe.js +2 -0
  20. package/dist/interface/assets/ConfigActionAssistant-DCkJ_Iqq.js +1 -0
  21. package/dist/interface/assets/ConfigActionCameraControl-2pzl59gR.js +1 -0
  22. package/dist/interface/assets/ConfigActionDelay-BAp1dr0N.js +1 -0
  23. package/dist/interface/assets/ConfigActionHttp-_kqgEuun.js +1 -0
  24. package/dist/interface/assets/ConfigActionImageInput-BgtACnCm.js +1 -0
  25. package/dist/interface/assets/ConfigActionMqtt-z7UzccW5.js +1 -0
  26. package/dist/interface/assets/ConfigActionNotification-bhbb5AqU.js +1 -0
  27. package/dist/interface/assets/ConfigActionNotificationControl-BbvX8MFu.js +1 -0
  28. package/dist/interface/assets/ConfigActionOutput-DdgSg3FU.js +1 -0
  29. package/dist/interface/assets/ConfigActionPlugin-DGjZd1L0.js +1 -0
  30. package/dist/interface/assets/ConfigActionSensor-DmImWFAo.js +1 -0
  31. package/dist/interface/assets/ConfigActionSnapshot-hVHSfdtS.js +1 -0
  32. package/dist/interface/assets/ConfigActionVariable-BIpruwsx.js +1 -0
  33. package/dist/interface/assets/ConfigConditionIfElse-DRSpsoR4.js +1 -0
  34. package/dist/interface/assets/ConfigConditionSensorState-C2SNARH7.js +1 -0
  35. package/dist/interface/assets/ConfigConditionSwitch-4SbQcU7N.js +1 -0
  36. package/dist/interface/assets/ConfigConditionTime-ESX3shbg.js +1 -0
  37. package/dist/interface/assets/ConfigSensorValueInput-CTUdAA-R.js +1 -0
  38. package/dist/interface/assets/ConfigTriggerDetection-BRr6ixxQ.js +1 -0
  39. package/dist/interface/assets/ConfigTriggerGeofence-D-xRMGrT.js +1 -0
  40. package/dist/interface/assets/ConfigTriggerManual-aXD6k1qa.js +1 -0
  41. package/dist/interface/assets/ConfigTriggerMqtt-pjHW4yOL.js +1 -0
  42. package/dist/interface/assets/ConfigTriggerSchedule-CYOt57qg.js +1 -0
  43. package/dist/interface/assets/ConfigTriggerSensor-BwJ_cAqd.js +1 -0
  44. package/dist/interface/assets/ConfigTriggerSystem-DBXIrjzU.js +1 -0
  45. package/dist/interface/assets/ConfigTriggerWebhook-CccBmMCb.js +1 -0
  46. package/dist/interface/assets/Console-DWAaz1C6.js +1 -0
  47. package/dist/interface/assets/CuiAssistantConversation-B3xEiNNt.js +5 -0
  48. package/dist/interface/assets/CuiAssistantConversation-C5ca1lgX.css +1 -0
  49. package/dist/interface/assets/CuiAutomationRunsDialog-CfylVPLI.js +1 -0
  50. package/dist/interface/assets/CuiBottomSheet-ACN23VLS.js +1 -0
  51. package/dist/interface/assets/CuiBottomSheet-DEVNeDqa.js +1 -0
  52. package/dist/interface/assets/CuiCameraPipCard-TYTCfwXf.css +1 -0
  53. package/dist/interface/assets/CuiCameraPipCard-rR_FW9zq.js +1 -0
  54. package/dist/interface/assets/CuiCameraRecordings-CnorhPhf.js +1 -0
  55. package/dist/interface/assets/CuiCameraShares-BxUgedC_.js +1 -0
  56. package/dist/interface/assets/CuiCameraTable-C3GB4Q2y.js +2 -0
  57. package/dist/interface/assets/CuiCameraTable-MHfnZSyK.js +1 -0
  58. package/dist/interface/assets/CuiChartTable-TAzZgetO.js +1 -0
  59. package/dist/interface/assets/CuiConsole-Cf5lOCE1.js +5 -0
  60. package/dist/interface/assets/CuiDataTable-DfjXa0C1.js +1 -0
  61. package/dist/interface/assets/CuiLightControl-ChK-SvJp.js +1 -0
  62. package/dist/interface/assets/CuiList-C4fxd9lD.js +1 -0
  63. package/dist/interface/assets/CuiMarkdownContent-Do04YgHe.js +1 -0
  64. package/dist/interface/assets/CuiMarkdownContent-qOPm3VEi.js +1 -0
  65. package/dist/interface/assets/CuiPluginCard-DMpANIQj.js +2 -0
  66. package/dist/interface/assets/CuiPluginCategoryChip-BKxJMid7.js +1 -0
  67. package/dist/interface/assets/CuiPluginOAuthButton-DnQ838JJ.js +2 -0
  68. package/dist/interface/assets/CuiPluginTrustBadge-DyYDUWV6.js +1 -0
  69. package/dist/interface/assets/CuiQRCode-S9fPi0_l.js +1 -0
  70. package/dist/interface/assets/CuiSchema-DScmDQsh.js +1 -0
  71. package/dist/interface/assets/CuiTopNavbarItem-CT10aAlO.js +1 -0
  72. package/dist/interface/assets/Faces-Coy-tUVM.js +1 -0
  73. package/dist/interface/assets/FirstSteps-CrMJC049.js +1 -0
  74. package/dist/interface/assets/Floorplan-Bj_mVrxp.js +1 -0
  75. package/dist/interface/assets/Floorplan-CT5TrMSD.css +1 -0
  76. package/dist/interface/assets/Instances-B_mpKAng.js +1 -0
  77. package/dist/interface/assets/Logs-fY1dpQk4.js +6 -0
  78. package/dist/interface/assets/Menu-Bgi-NLdg.js +1 -0
  79. package/dist/interface/assets/Metrics-DnMeIrkf.css +1 -0
  80. package/dist/interface/assets/Metrics-k9KACiwh.js +12 -0
  81. package/dist/interface/assets/OAuthDeviceFlow-xTh83xmc.js +1 -0
  82. package/dist/interface/assets/Plugin-BB7x7UHw.css +1 -0
  83. package/dist/interface/assets/Plugin-VWq7sONB.js +1 -0
  84. package/dist/interface/assets/PluginConsole-LnnDOVBL.js +7 -0
  85. package/dist/interface/assets/PluginDetail-CKD9sbDx.js +2 -0
  86. package/dist/interface/assets/PluginSchema-BnB0_6Sk.js +1 -0
  87. package/dist/interface/assets/PluginSearch-BoBZLLbr.js +1 -0
  88. package/dist/interface/assets/PluginSearch-kGhweU1J.js +2 -0
  89. package/dist/interface/assets/PluginUpdateProgress-DMx0QlgE.js +1 -0
  90. package/dist/interface/assets/Plugins-Ekmr6aVa.js +1 -0
  91. package/dist/interface/assets/RecentEventsFilter-StLJNuks.js +1 -0
  92. package/dist/interface/assets/Recordings-8PqxJOI3.css +1 -0
  93. package/dist/interface/assets/Recordings-Bvkuk_TV.js +1 -0
  94. package/dist/interface/assets/SensorEdit-CAf9Nb01.js +1 -0
  95. package/dist/interface/assets/SensorHistory-il8bDErX.js +1 -0
  96. package/dist/interface/assets/Sensors-sxQ6HLKo.js +2 -0
  97. package/dist/interface/assets/Settings-Bu0G7Ebx.js +1 -0
  98. package/dist/interface/assets/Settings-DtCSaLPb.css +1 -0
  99. package/dist/interface/assets/SettingsAccount-8OZJLQi-.js +1 -0
  100. package/dist/interface/assets/SettingsAccount-bSfFi9YH.js +1 -0
  101. package/dist/interface/assets/SettingsAppearance-CnvN_Tzr.js +1 -0
  102. package/dist/interface/assets/SettingsAppearance-EvPWgF4c.js +1 -0
  103. package/dist/interface/assets/SettingsAssistant-B6s6pHCx.js +1 -0
  104. package/dist/interface/assets/SettingsBackup-Dd2FaUcN.js +1 -0
  105. package/dist/interface/assets/SettingsList-SvCO_gfG.js +1 -0
  106. package/dist/interface/assets/SettingsMqtt-BXBzHX84.js +1 -0
  107. package/dist/interface/assets/SettingsNotifications-CV-jJwFV.js +1 -0
  108. package/dist/interface/assets/SettingsPermissions-GchFaWjz.js +1 -0
  109. package/dist/interface/assets/SettingsRecordings-C4Ch_jmV.js +1 -0
  110. package/dist/interface/assets/SettingsRemote-CsIGx-LU.css +1 -0
  111. package/dist/interface/assets/SettingsRemote-OZHDJKSq.js +2 -0
  112. package/dist/interface/assets/SettingsSystem-BJlHXwVs.js +2 -0
  113. package/dist/interface/assets/SettingsUsers-RGOkOzx0.js +1 -0
  114. package/dist/interface/assets/Terminal-DX-ECC91.js +4 -0
  115. package/dist/interface/assets/Training-B8my7vka.js +1 -0
  116. package/dist/interface/assets/Training-D1DDjCCD.css +1 -0
  117. package/dist/interface/assets/Updates-DmavyhAn.js +2 -0
  118. package/dist/interface/assets/VariableInput-DQJle67Y.js +1 -0
  119. package/dist/interface/assets/VariableSuggestions-D8V739dF.js +1 -0
  120. package/dist/interface/assets/VersionsHandler-B41TJhgY.js +7 -0
  121. package/dist/interface/assets/VirtualSensorCreate-MfLh-LpH.js +1 -0
  122. package/dist/interface/assets/Workers-CafDeRhH.js +2 -0
  123. package/dist/interface/assets/Workers-Dey1snI4.css +1 -0
  124. package/dist/interface/assets/account-DjBQulDn.js +1 -0
  125. package/dist/interface/assets/ace-BPAekgyf.js +1 -0
  126. package/dist/interface/assets/ace.config-CvKE-yp1.js +1 -0
  127. package/dist/interface/assets/alert-circle-B-JCMbb9.js +1 -0
  128. package/dist/interface/assets/alert-outline-B4ZZowEj.js +1 -0
  129. package/dist/interface/assets/api-By0v6EeA.css +2 -0
  130. package/dist/interface/assets/api-D1iULsSy.js +4 -0
  131. package/dist/interface/assets/api-DbUdfXO_.js +1 -0
  132. package/dist/interface/assets/arrow-left-PeaVwpHd.js +1 -0
  133. package/dist/interface/assets/assistant-7hqP6OpA.js +1 -0
  134. package/dist/interface/assets/assistantModels-D3ncWWu0.js +1 -0
  135. package/dist/interface/assets/auth-CDxrn7fe.js +1 -0
  136. package/dist/interface/assets/automations-CTTQlGCW.js +1 -0
  137. package/dist/interface/assets/back-filled-CJoz7Gkl.js +1 -0
  138. package/dist/interface/assets/bell-ring-CBf0Yn3H.js +1 -0
  139. package/dist/interface/assets/brain-uZ03n3LW.js +1 -0
  140. package/dist/interface/assets/cameraSources-MOiE_1-W.js +1 -0
  141. package/dist/interface/assets/cctv-VgKQ-dBV.js +1 -0
  142. package/dist/interface/assets/check-circle-BU-KNgPB.js +1 -0
  143. package/dist/interface/assets/check-circle-outline-BsxzAMed.js +1 -0
  144. package/dist/interface/assets/chevron-down-CxK4Sfjs.js +1 -0
  145. package/dist/interface/assets/chevron-up-DWfNH8va.js +1 -0
  146. package/dist/interface/assets/clock-outline-BtWx4GaF.js +1 -0
  147. package/dist/interface/assets/close-Be7oB7d_.js +1 -0
  148. package/dist/interface/assets/close-circle-D7Jmhp_7.js +1 -0
  149. package/dist/interface/assets/cloud-check-zCGJxpWI.js +1 -0
  150. package/dist/interface/assets/cloudHandoff-CJzFH7CW.js +1 -0
  151. package/dist/interface/assets/config-6EiGxiYm.js +1 -0
  152. package/dist/interface/assets/content-copy-BcYlfuFc.js +1 -0
  153. package/dist/interface/assets/copy-DuY-M96E.js +1 -0
  154. package/dist/interface/assets/cube-scan-Cae03i_N.js +1 -0
  155. package/dist/interface/assets/database-refresh-outline-B3OEQFF7.js +1 -0
  156. package/dist/interface/assets/delete-BWgOAzKl.js +1 -0
  157. package/dist/interface/assets/dist-DmpuuM9s.js +1 -0
  158. package/dist/interface/assets/dots-vertical-Kby1GY8_.js +1 -0
  159. package/dist/interface/assets/download-C291Yq7I.js +1 -0
  160. package/dist/interface/assets/esm-B2TVBF3B.js +1 -0
  161. package/dist/interface/assets/esm-BEntuCG7.js +1 -0
  162. package/dist/interface/assets/esm-BRnyrFH8.js +1 -0
  163. package/dist/interface/assets/esm-CCwXzd_8.js +1 -0
  164. package/dist/interface/assets/esm-CEjwTsuD.js +1 -0
  165. package/dist/interface/assets/esm-CGGV9tC4.js +1 -0
  166. package/dist/interface/assets/esm-CI2tTOc5.js +1 -0
  167. package/dist/interface/assets/esm-CgxZmMYv.js +1 -0
  168. package/dist/interface/assets/esm-Csc6f5Fy.js +1 -0
  169. package/dist/interface/assets/esm-Qzx3d-Ie.js +1 -0
  170. package/dist/interface/assets/esm-a_w7mTdx.js +1 -0
  171. package/dist/interface/assets/esm-iKfsu7-H.js +1 -0
  172. package/dist/interface/assets/esm-ks5kvk_e.js +1 -0
  173. package/dist/interface/assets/esm-nJfTguKF.js +1 -0
  174. package/dist/interface/assets/eventLabels-idFWh3Y_.js +1 -0
  175. package/dist/interface/assets/eye-off-zGCIHKOK.js +1 -0
  176. package/dist/interface/assets/flowSchema-Dp_-p9WA.js +1 -0
  177. package/dist/interface/assets/help-circle-outline-DXFepDAG.js +1 -0
  178. package/dist/interface/assets/history-D-FlZdKD.js +1 -0
  179. package/dist/interface/assets/home-DPdzRxcM.js +1 -0
  180. package/dist/interface/assets/information-outline-ChOM9qgI.js +1 -0
  181. package/dist/interface/assets/intercomService-BQYzjnAi.js +1 -0
  182. package/dist/interface/assets/lan-DvYEO83l.js +1 -0
  183. package/dist/interface/assets/main-0oXl_8v7.js +3 -0
  184. package/dist/interface/assets/main-CdvAniEp.css +1 -0
  185. package/dist/interface/assets/microphone-D-T9xga4.js +1 -0
  186. package/dist/interface/assets/minus-4T4INuO4.js +1 -0
  187. package/dist/interface/assets/mqtt-ChvXxMhR.js +1 -0
  188. package/dist/interface/assets/native-CtfXrwj5.js +1 -0
  189. package/dist/interface/assets/native-JMtkOkIV.js +1 -0
  190. package/dist/interface/assets/nodeDefinitions-Dp8cnne1.js +1 -0
  191. package/dist/interface/assets/notifications-CbL-1oMs.js +1 -0
  192. package/dist/interface/assets/pause-DHqHYA3V.js +1 -0
  193. package/dist/interface/assets/pencil-outline-D-GmPf8M.js +1 -0
  194. package/dist/interface/assets/pencil-vACi-JzY.js +1 -0
  195. package/dist/interface/assets/plugin-Dt5Xetfz.js +1 -0
  196. package/dist/interface/assets/plugins-lsoAntRQ.js +1 -0
  197. package/dist/interface/assets/plus-BBUb8_uL.js +1 -0
  198. package/dist/interface/assets/plus-BJb7U4bN.js +1 -0
  199. package/dist/interface/assets/power-Dm_aNIz-.js +1 -0
  200. package/dist/interface/assets/radar-Dcvdz--e.js +1 -0
  201. package/dist/interface/assets/refresh-CO4F18Je.js +1 -0
  202. package/dist/interface/assets/restore-xRBt3Grb.js +1 -0
  203. package/dist/interface/assets/rooms-P8WrRIco.js +1 -0
  204. package/dist/interface/assets/round-alt-arrow-left-bold-CZHXzGS5.js +1 -0
  205. package/dist/interface/assets/search-D75YW08B.js +1 -0
  206. package/dist/interface/assets/sensorIcons-BRTtoaHX.js +1 -0
  207. package/dist/interface/assets/sensorSlots-BTj-IM7z.js +1 -0
  208. package/dist/interface/assets/sensors-Dxc7HgjZ.js +1 -0
  209. package/dist/interface/assets/server-DlK8gUoE.js +1 -0
  210. package/dist/interface/assets/settings-DDOgc5BX.js +1 -0
  211. package/dist/interface/assets/source-branch-DVHuYlkZ.js +1 -0
  212. package/dist/interface/assets/theme-BOppzzar.js +1 -0
  213. package/dist/interface/assets/trash-2-DDKPtl2x.js +1 -0
  214. package/dist/interface/assets/trash-can-outline-DVH3zgo0.js +1 -0
  215. package/dist/interface/assets/trash-fill-C_IJ4Vu2.js +1 -0
  216. package/dist/interface/assets/trash2-DY0XTaJD.js +1 -0
  217. package/dist/interface/assets/types-CeruGCb8.js +1 -0
  218. package/dist/interface/assets/types-J1Drrxo1.js +1 -0
  219. package/dist/interface/assets/types-U4AuTNLR.js +1 -0
  220. package/dist/interface/assets/undo-YRkBYCnf.js +1 -0
  221. package/dist/interface/assets/ungrouped-ING_JAuK.js +1 -0
  222. package/dist/interface/assets/updates-DtVp84Y0.js +1 -0
  223. package/dist/interface/assets/upload-2WcHRjTq.js +1 -0
  224. package/dist/interface/assets/upload-BiE7VzTj.js +1 -0
  225. package/dist/interface/assets/useAppVersion-BGgCk5GD.js +1 -0
  226. package/dist/interface/assets/useAssistantActions-C13O5EHU.js +1 -0
  227. package/dist/interface/assets/useBackupRestore-vrhmc9i-.js +1 -0
  228. package/dist/interface/assets/useCameraOptions-CI1baRmm.js +1 -0
  229. package/dist/interface/assets/useKeyboardInset-CvgJp091.js +1 -0
  230. package/dist/interface/assets/useLogsSocket-Bf0BI8ET.js +1 -0
  231. package/dist/interface/assets/useNavLayout-6zM1Y-7B.js +1 -0
  232. package/dist/interface/assets/usePermissions-DZitFsBQ.js +1 -0
  233. package/dist/interface/assets/usePluginUpdates-VZdpJ_Ax.js +1 -0
  234. package/dist/interface/assets/usePushRegistration-vcbMrTxZ.js +2 -0
  235. package/dist/interface/assets/useServerRestart-DrpuNbIu.js +1 -0
  236. package/dist/interface/assets/useStreamStatus-l3Pfk1H4.js +1 -0
  237. package/dist/interface/assets/useTabSwipe-BSpi25WV.js +1 -0
  238. package/dist/interface/assets/useUpdateChannel-kAl-5UNY.js +1 -0
  239. package/dist/interface/assets/useUpdatesSocket-CaFz_fEb.js +1 -0
  240. package/dist/interface/assets/useUserOptions-BKteXnmU.js +1 -0
  241. package/dist/interface/assets/variable-Cp8o-q8t.js +1 -0
  242. package/dist/interface/assets/vendor-Df81FCJz.js +29 -0
  243. package/dist/interface/assets/vendor-ace-QSsGUspX.js +1085 -0
  244. package/dist/interface/assets/vendor-cameraui-K1Nw4PvF.js +2326 -0
  245. package/dist/interface/assets/vendor-capacitor-t5EIN1GG.js +2 -0
  246. package/dist/interface/assets/vendor-chart-BiJYkx5_.js +3 -0
  247. package/dist/interface/assets/vendor-core-CJdfpB0I.js +1 -0
  248. package/dist/interface/assets/vendor-dnd-C1kMh9_t.js +2 -0
  249. package/dist/interface/assets/vendor-draggabilly-Cw1oJ6qc.js +1 -0
  250. package/dist/interface/assets/vendor-leaflet-OSZlONe5.js +1 -0
  251. package/dist/interface/assets/vendor-markdown-DTWiWKBj.js +14 -0
  252. package/dist/interface/assets/vendor-primevue-DoA2Rwcb.js +3942 -0
  253. package/dist/interface/assets/vendor-vueflow-DWU_IzGe.js +26 -0
  254. package/dist/interface/assets/walk-B8FNhXuj.js +1 -0
  255. package/dist/interface/assets/web-B98ahwoP.js +1 -0
  256. package/dist/interface/assets/web-BSsSrRZf.js +1 -0
  257. package/dist/interface/assets/web-BiNRDta4.js +1 -0
  258. package/dist/interface/assets/web-BjKL51lK-CZKmYhby.js +1 -0
  259. package/dist/interface/assets/web-BjtOcquy.js +1 -0
  260. package/dist/interface/assets/web-CkTE9nCG.js +1 -0
  261. package/dist/interface/assets/web-Cvogq5S5.js +1 -0
  262. package/dist/interface/assets/web-D-A4EBKj.js +1 -0
  263. package/dist/interface/assets/web-DVGMBduz.js +1 -0
  264. package/dist/interface/assets/web-SpWB7I6X.js +1 -0
  265. package/dist/interface/assets/web-k0ihT_qK.js +1 -0
  266. package/dist/interface/assets/web-ovBpm7Dl.js +1 -0
  267. package/dist/interface/assets/web-z5Xz9tOQ.js +1 -0
  268. package/dist/interface/assets/web-zfhkFevT.js +1 -0
  269. package/dist/interface/assets/webhook-DIjChTrs.js +1 -0
  270. package/dist/interface/assets/workbox-window.prod.es5-DRKojI0e.js +1 -0
  271. package/dist/interface/assets/zoom-in-rMB152Uz.js +1 -0
  272. package/dist/interface/ha/404-RtgPpD9N.js +60 -0
  273. package/dist/interface/ha/About-0PRv9bU0.js +55 -0
  274. package/dist/interface/ha/Assistant-DbwxVfpl.js +9853 -0
  275. package/dist/interface/ha/Automation-D3HomdH7.js +2029 -0
  276. package/dist/interface/ha/AutomationImport-nQUUvZcv.js +206 -0
  277. package/dist/interface/ha/AutomationStore-BXDD92wZ.js +336 -0
  278. package/dist/interface/ha/AutomationStoreDetail-BYeq7FID.js +122 -0
  279. package/dist/interface/ha/Automations-CJlGqmSP.js +424 -0
  280. package/dist/interface/ha/Camera-Ai4BxVh_.js +747 -0
  281. package/dist/interface/ha/CameraConsole-UMNOX3dE.js +52 -0
  282. package/dist/interface/ha/Cameras-BW-AEXYi.js +1971 -0
  283. package/dist/interface/ha/Camview-jikpVEE0.js +1336 -0
  284. package/dist/interface/ha/Config-BOxwBH2D.js +356 -0
  285. package/dist/interface/ha/ConfigActionAssistant--3iWk9sq.js +182 -0
  286. package/dist/interface/ha/ConfigActionCameraControl-DbVXWTeA.js +152 -0
  287. package/dist/interface/ha/ConfigActionHttp-Du3n2Yj0.js +134 -0
  288. package/dist/interface/ha/ConfigActionImageInput-BrJrTZTY.js +171 -0
  289. package/dist/interface/ha/ConfigActionMqtt-DZd1BNUt.js +81 -0
  290. package/dist/interface/ha/ConfigActionNotification-CJWW10gt.js +199 -0
  291. package/dist/interface/ha/ConfigActionNotificationControl-Bl41AVv1.js +111 -0
  292. package/dist/interface/ha/ConfigActionOutput-OTj7Lwgq.js +98 -0
  293. package/dist/interface/ha/ConfigActionPlugin-B790PEk0.js +172 -0
  294. package/dist/interface/ha/ConfigActionSensor-BG3jZxge.js +139 -0
  295. package/dist/interface/ha/ConfigActionSnapshot-fGmLl6jb.js +48 -0
  296. package/dist/interface/ha/ConfigActionVariable-CK3vYDsr.js +88 -0
  297. package/dist/interface/ha/ConfigConditionIfElse-DyFLGg3y.js +124 -0
  298. package/dist/interface/ha/ConfigConditionSensorState-BUTfeFO2.js +192 -0
  299. package/dist/interface/ha/ConfigConditionSwitch-iDG_ubif.js +128 -0
  300. package/dist/interface/ha/ConfigSensorValueInput-BmRIGUKB.js +170 -0
  301. package/dist/interface/ha/ConfigTriggerDetection-DyPQGt9M.js +241 -0
  302. package/dist/interface/ha/ConfigTriggerGeofence-CGE-bH_t.js +4888 -0
  303. package/dist/interface/ha/ConfigTriggerMqtt-CM3KZqBc.js +134 -0
  304. package/dist/interface/ha/ConfigTriggerSensor-DoHMcwP4.js +73 -0
  305. package/dist/interface/ha/ConfigTriggerSystem-BYKbW4Zr.js +192 -0
  306. package/dist/interface/ha/ConfigTriggerWebhook-5PBAadG8.js +94 -0
  307. package/dist/interface/ha/Console-BEXzl4p1.js +348 -0
  308. package/dist/interface/ha/CuiAutomationRunsDialog-DkK_ar5G.js +130 -0
  309. package/dist/interface/ha/CuiBottomSheet-CYNvQV4T.js +270 -0
  310. package/dist/interface/ha/CuiCameraRecordings-DYjecmE_.js +533 -0
  311. package/dist/interface/ha/CuiCameraShares-C0H60nZS.js +121 -0
  312. package/dist/interface/ha/CuiCameraTable-CQNMyBaq.js +169 -0
  313. package/dist/interface/ha/CuiChartTable-Bhv1p9zj.js +6801 -0
  314. package/dist/interface/ha/CuiConsole-DtXorGF5.js +244 -0
  315. package/dist/interface/ha/CuiDataTable-Cy8EjCk9.js +8732 -0
  316. package/dist/interface/ha/CuiList-DnW6Q5m2.js +57 -0
  317. package/dist/interface/ha/CuiPluginCard-B4SCUblV.js +769 -0
  318. package/dist/interface/ha/CuiPluginOAuthButton-BKg9SftQ.js +79 -0
  319. package/dist/interface/ha/CuiPluginTrustBadge-CEtUJhCJ.js +123 -0
  320. package/dist/interface/ha/CuiQRCode-gp-9hqyk.js +86 -0
  321. package/dist/interface/ha/CuiSchema-CYpr_dD7.js +963 -0
  322. package/dist/interface/ha/CuiTopNavbarItem-CM-1oPxf.js +140 -0
  323. package/dist/interface/ha/Faces-pa60ySng.js +1575 -0
  324. package/dist/interface/ha/FirstSteps-D42yZm7R.js +251 -0
  325. package/dist/interface/ha/Floorplan-BvE546pE.js +3657 -0
  326. package/dist/interface/ha/Instances-CAGCyfbB.js +680 -0
  327. package/dist/interface/ha/Logs-RB3Ba8WM.js +418 -0
  328. package/dist/interface/ha/Menu-hAnHu_jq.js +156 -0
  329. package/dist/interface/ha/Metrics-ChYTebkX.js +1448 -0
  330. package/dist/interface/ha/OAuthDeviceFlow-C05pH-9o.js +112 -0
  331. package/dist/interface/ha/Plugin-D7XwcXkW.js +1752 -0
  332. package/dist/interface/ha/PluginConsole-DphEIOlL.js +56 -0
  333. package/dist/interface/ha/PluginDetail-DfMl-yCl.js +805 -0
  334. package/dist/interface/ha/PluginSearch-BPN4Opg5.js +462 -0
  335. package/dist/interface/ha/PluginUpdateProgress-ByJ0R5sW.js +34 -0
  336. package/dist/interface/ha/Plugins-BhKmjjNn.js +692 -0
  337. package/dist/interface/ha/RecentEventsFilter-BkLMlGVJ.js +78 -0
  338. package/dist/interface/ha/Recordings-BaU7M1OW.js +1836 -0
  339. package/dist/interface/ha/SensorEdit-DWxcCJ0F.js +1462 -0
  340. package/dist/interface/ha/SensorHistory-DuA9E9wT.js +54 -0
  341. package/dist/interface/ha/Sensors-CVpIHcgG.js +1402 -0
  342. package/dist/interface/ha/Settings-BO2eBGEn.js +218 -0
  343. package/dist/interface/ha/SettingsAccount-BQZZfoSM.js +971 -0
  344. package/dist/interface/ha/SettingsAppearance-B_yGl89u.js +220 -0
  345. package/dist/interface/ha/SettingsAssistant-kMOixl9g.js +2025 -0
  346. package/dist/interface/ha/SettingsBackup-BpG-W4j-.js +556 -0
  347. package/dist/interface/ha/SettingsList-Btnkzu94.js +40 -0
  348. package/dist/interface/ha/SettingsMqtt-C4DX9cNC.js +526 -0
  349. package/dist/interface/ha/SettingsNotifications-DI6ImggH.js +529 -0
  350. package/dist/interface/ha/SettingsPermissions-BCDyCFcb.js +84 -0
  351. package/dist/interface/ha/SettingsRecordings-Bq5NkJhd.js +152 -0
  352. package/dist/interface/ha/SettingsRemote-CtncaPIA.js +1813 -0
  353. package/dist/interface/ha/SettingsSystem-BJXuA7xA.js +376 -0
  354. package/dist/interface/ha/SettingsUsers-BF0rDluv.js +379 -0
  355. package/dist/interface/ha/Terminal-kTCe2jP3.js +612 -0
  356. package/dist/interface/ha/Training-BM2Xb8Ef.js +1754 -0
  357. package/dist/interface/ha/Updates-Cv1EY_T0.js +343 -0
  358. package/dist/interface/ha/VariableInput-BO2zZu4N.js +52 -0
  359. package/dist/interface/ha/VersionsHandler-CRnT9-K7.js +216 -0
  360. package/dist/interface/ha/VirtualSensorCreate-6dVRxPjw.js +101 -0
  361. package/dist/interface/ha/Workers-MHia86lu.js +814 -0
  362. package/dist/interface/ha/ace-C9MtBQVV.js +13236 -0
  363. package/dist/interface/ha/ace.config-CSXnaIzV.js +1429 -0
  364. package/dist/interface/ha/api-CH_Y8Hee.js +65411 -0
  365. package/dist/interface/ha/api-DylRa66V.js +29 -0
  366. package/dist/interface/ha/assistant-smRQYA6p.js +349 -0
  367. package/dist/interface/ha/auth-BXj5Fm6s.js +271 -0
  368. package/dist/interface/ha/automationBlueprint-DGjftXFC.js +250 -0
  369. package/dist/interface/ha/cameraui-cards.js +1 -1
  370. package/dist/interface/ha/cards-E0zw1UVg.js +13477 -0
  371. package/dist/interface/ha/config-dG_DA6XL.js +116 -0
  372. package/dist/interface/ha/dist-BQf9ANPx.js +3257 -0
  373. package/dist/interface/ha/dist-euRmladF.js +287 -0
  374. package/dist/interface/ha/eventLabels-B5GrM5jO.js +734 -0
  375. package/dist/interface/ha/intercomService-BtJ_zUNd.js +1400 -0
  376. package/dist/interface/ha/mqtt-CP3vVkRJ.js +56 -0
  377. package/dist/interface/ha/notifications-CZNwSXTg.js +159 -0
  378. package/dist/interface/ha/pinia-CVnHHb-s.js +7696 -0
  379. package/dist/interface/ha/plugins--eatOIaI.js +592 -0
  380. package/dist/interface/ha/protocol-BB4jdtUC-BhEwymva.js +789 -0
  381. package/dist/interface/ha/rooms-D5E6K75d.js +45 -0
  382. package/dist/interface/ha/server-D1BqEY7i.js +239 -0
  383. package/dist/interface/ha/types-CWogEoya.js +1073 -0
  384. package/dist/interface/ha/ungrouped-Ch4UX4dy.js +58 -0
  385. package/dist/interface/ha/updates-B48Owi1w.js +341 -0
  386. package/dist/interface/ha/useAppVersion-D95sKTJR.js +22 -0
  387. package/dist/interface/ha/useAssistantActions-kDwiO-u5.js +29 -0
  388. package/dist/interface/ha/useKeyboardInset-C2R51vsC.js +27 -0
  389. package/dist/interface/ha/useLogsSocket-BzNWa2y2.js +59 -0
  390. package/dist/interface/ha/useNavLayout-228cwwqA.js +125 -0
  391. package/dist/interface/ha/usePermissions-CfA5x7Df.js +72 -0
  392. package/dist/interface/ha/useServerRestart-B0c40zs5.js +23 -0
  393. package/dist/interface/ha/useTabSwipe-CfZg5hWj.js +45 -0
  394. package/dist/interface/ha/useUpdateChannel-DQxI7FrD.js +22 -0
  395. package/dist/interface/ha/useUpdatesSocket-B8LqBBd3.js +34 -0
  396. package/dist/interface/ha/useUserOptions-dZf6ejlz.js +15 -0
  397. package/dist/interface/ha/walk-CsSXaeJw.js +33 -0
  398. package/dist/interface/index.html +71 -72
  399. package/dist/interface/sw.js +1 -1
  400. package/dist/interface/workbox-5f52ac45.js +1 -0
  401. package/dist/server/package.json +23 -23
  402. package/dist/server/requirements.txt +2 -2
  403. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +22 -0
  404. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +12 -0
  405. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/device.py +5 -1
  406. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/camera_config_internal.py +5 -1
  407. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/manager/__init__.py +2 -1
  408. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +10 -0
  409. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +6 -0
  410. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +92 -4
  411. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +16 -0
  412. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +4 -0
  413. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face_embedder.py +1 -1
  414. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/object.py +3 -3
  415. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/person_embedder.py +65 -0
  416. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/segmenter.py +81 -0
  417. package/dist/server/src/api/controllers/plugins.controller.js +1 -0
  418. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  419. package/dist/server/src/api/controllers/workers.controller.d.ts +2 -2
  420. package/dist/server/src/api/controllers/workers.controller.js +8 -2
  421. package/dist/server/src/api/controllers/workers.controller.js.map +1 -1
  422. package/dist/server/src/api/database/index.d.ts +2 -1
  423. package/dist/server/src/api/database/index.js +31 -7
  424. package/dist/server/src/api/database/index.js.map +1 -1
  425. package/dist/server/src/api/database/migrations/v2-2-9.d.ts +3 -0
  426. package/dist/server/src/api/database/migrations/v2-2-9.js +28 -0
  427. package/dist/server/src/api/database/migrations/v2-2-9.js.map +1 -0
  428. package/dist/server/src/api/database/record-schemas.d.ts +4 -1
  429. package/dist/server/src/api/database/record-schemas.js +1 -0
  430. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  431. package/dist/server/src/api/database/types.d.ts +21 -1
  432. package/dist/server/src/api/routes/workers.routes.js +4 -4
  433. package/dist/server/src/api/routes/workers.routes.js.map +1 -1
  434. package/dist/server/src/api/schemas/assistant.schema.d.ts +1 -1
  435. package/dist/server/src/api/schemas/cameras.schema.d.ts +178 -76
  436. package/dist/server/src/api/schemas/cameras.schema.js +26 -2
  437. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  438. package/dist/server/src/api/schemas/training.schema.d.ts +15 -3
  439. package/dist/server/src/api/schemas/training.schema.js +4 -1
  440. package/dist/server/src/api/schemas/training.schema.js.map +1 -1
  441. package/dist/server/src/api/schemas/users.schema.d.ts +12 -0
  442. package/dist/server/src/api/schemas/users.schema.js +4 -0
  443. package/dist/server/src/api/schemas/users.schema.js.map +1 -1
  444. package/dist/server/src/api/schemas/workers.schema.d.ts +5 -4
  445. package/dist/server/src/api/schemas/workers.schema.js +6 -3
  446. package/dist/server/src/api/schemas/workers.schema.js.map +1 -1
  447. package/dist/server/src/api/services/cameras.service.d.ts +3 -0
  448. package/dist/server/src/api/services/cameras.service.js +47 -2
  449. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  450. package/dist/server/src/api/services/plugins.service.d.ts +1 -0
  451. package/dist/server/src/api/services/plugins.service.js +5 -1
  452. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  453. package/dist/server/src/api/services/workers.service.d.ts +2 -0
  454. package/dist/server/src/api/services/workers.service.js +15 -0
  455. package/dist/server/src/api/services/workers.service.js.map +1 -1
  456. package/dist/server/src/api/types/index.d.ts +3 -2
  457. package/dist/server/src/api/websocket/nsp/worker-perf.js +2 -0
  458. package/dist/server/src/api/websocket/nsp/worker-perf.js.map +1 -1
  459. package/dist/server/src/api/websocket/types.d.ts +1 -0
  460. package/dist/server/src/assistant/pricing.js +39 -10
  461. package/dist/server/src/assistant/pricing.js.map +1 -1
  462. package/dist/server/src/assistant/providers.js +9 -1
  463. package/dist/server/src/assistant/providers.js.map +1 -1
  464. package/dist/server/src/assistant/search.d.ts +17 -0
  465. package/dist/server/src/assistant/search.js +10 -2
  466. package/dist/server/src/assistant/search.js.map +1 -1
  467. package/dist/server/src/assistant/tools/plugins.js +7 -3
  468. package/dist/server/src/assistant/tools/plugins.js.map +1 -1
  469. package/dist/server/src/assistant/types.d.ts +2 -0
  470. package/dist/server/src/automations/actions/plugin.js +5 -9
  471. package/dist/server/src/automations/actions/plugin.js.map +1 -1
  472. package/dist/server/src/automations/pluginMethodRegistry.d.ts +6 -0
  473. package/dist/server/src/automations/pluginMethodRegistry.js +39 -0
  474. package/dist/server/src/automations/pluginMethodRegistry.js.map +1 -1
  475. package/dist/server/src/automations/segment-picture.d.ts +16 -0
  476. package/dist/server/src/automations/segment-picture.js +152 -0
  477. package/dist/server/src/automations/segment-picture.js.map +1 -0
  478. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +5 -2
  479. package/dist/server/src/camera/decoder/detection-coordinator.js +45 -22
  480. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  481. package/dist/server/src/camera/decoder/detection-pipeline.d.ts +30 -2
  482. package/dist/server/src/camera/decoder/detection-pipeline.js +81 -21
  483. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  484. package/dist/server/src/camera/decoder/event-manager.d.ts +13 -4
  485. package/dist/server/src/camera/decoder/event-manager.js +108 -128
  486. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  487. package/dist/server/src/camera/decoder/event-trace.d.ts +41 -1
  488. package/dist/server/src/camera/decoder/event-trace.js +63 -8
  489. package/dist/server/src/camera/decoder/event-trace.js.map +1 -1
  490. package/dist/server/src/camera/decoder/face-tracks.d.ts +26 -0
  491. package/dist/server/src/camera/decoder/face-tracks.js +199 -0
  492. package/dist/server/src/camera/decoder/face-tracks.js.map +1 -0
  493. package/dist/server/src/camera/decoder/frame-scaler.d.ts +3 -1
  494. package/dist/server/src/camera/decoder/frame-scaler.js +36 -8
  495. package/dist/server/src/camera/decoder/frame-scaler.js.map +1 -1
  496. package/dist/server/src/camera/decoder/nvr-sink.d.ts +6 -0
  497. package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
  498. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
  499. package/dist/server/src/camera/decoder/perf-tracker.d.ts +2 -0
  500. package/dist/server/src/camera/decoder/perf-tracker.js +4 -0
  501. package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
  502. package/dist/server/src/camera/decoder/ptz/autotracker.d.ts +6 -1
  503. package/dist/server/src/camera/decoder/ptz/autotracker.js +107 -25
  504. package/dist/server/src/camera/decoder/ptz/autotracker.js.map +1 -1
  505. package/dist/server/src/camera/decoder/secondary-stage.d.ts +10 -8
  506. package/dist/server/src/camera/decoder/secondary-stage.js +145 -125
  507. package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
  508. package/dist/server/src/camera/decoder/training-sink.d.ts +5 -2
  509. package/dist/server/src/camera/decoder/training-sink.js +30 -6
  510. package/dist/server/src/camera/decoder/training-sink.js.map +1 -1
  511. package/dist/server/src/camera/decoder/types.d.ts +6 -2
  512. package/dist/server/src/camera/decoder/types.js +4 -2
  513. package/dist/server/src/camera/decoder/types.js.map +1 -1
  514. package/dist/server/src/manager/coreManager.d.ts +2 -1
  515. package/dist/server/src/manager/coreManager.js +9 -2
  516. package/dist/server/src/manager/coreManager.js.map +1 -1
  517. package/dist/server/src/manager/trainingCandidateManager.d.ts +2 -1
  518. package/dist/server/src/manager/trainingCandidateManager.js +25 -3
  519. package/dist/server/src/manager/trainingCandidateManager.js.map +1 -1
  520. package/dist/server/src/manager/trainingSubmission.d.ts +5 -0
  521. package/dist/server/src/manager/trainingSubmission.js +73 -0
  522. package/dist/server/src/manager/trainingSubmission.js.map +1 -0
  523. package/dist/server/src/manager/types.d.ts +8 -2
  524. package/dist/server/src/manager/types.js.map +1 -1
  525. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +1 -1
  526. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -1
  527. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +3 -0
  528. package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +1 -1
  529. package/dist/server/src/plugins/runtime/python/proxy/sensor.py +2 -0
  530. package/dist/server/src/plugins/runtime/python/rpc/typings.py +1 -1
  531. package/dist/server/src/remote/api/routes/train.d.ts +44 -3
  532. package/dist/server/src/remote/api/routes/train.js +2 -2
  533. package/dist/server/src/remote/api/routes/train.js.map +1 -1
  534. package/dist/server/src/rpc/interfaces/core.d.ts +7 -3
  535. package/dist/server/src/rpc/interfaces/detection.d.ts +20 -3
  536. package/dist/server/src/rpc/server.d.ts +2 -0
  537. package/dist/server/src/rpc/server.js +8 -5
  538. package/dist/server/src/rpc/server.js.map +1 -1
  539. package/dist/server/src/sensors/registry.d.ts +3 -0
  540. package/dist/server/src/sensors/registry.js +44 -11
  541. package/dist/server/src/sensors/registry.js.map +1 -1
  542. package/dist/server/src/sensors/types.d.ts +1 -0
  543. package/dist/server/src/sensors/types.js +3 -0
  544. package/dist/server/src/sensors/types.js.map +1 -1
  545. package/dist/server/src/services/config/index.d.ts +1 -0
  546. package/dist/server/src/services/config/index.js +2 -0
  547. package/dist/server/src/services/config/index.js.map +1 -1
  548. package/dist/server/src/utils/image.d.ts +6 -0
  549. package/dist/server/src/utils/image.js +58 -22
  550. package/dist/server/src/utils/image.js.map +1 -1
  551. package/dist/server/src/workers/agent.js +2 -0
  552. package/dist/server/src/workers/agent.js.map +1 -1
  553. package/dist/server/src/workers/manager.d.ts +1 -0
  554. package/dist/server/src/workers/manager.js +22 -0
  555. package/dist/server/src/workers/manager.js.map +1 -1
  556. package/dist/server/src/workers/types.d.ts +5 -0
  557. package/dist/server/src/workers/types.js.map +1 -1
  558. package/npm-shrinkwrap.json +212 -171
  559. package/package.json +23 -23
  560. package/dist/interface/assets/404-C8EoOtBl.js +0 -1
  561. package/dist/interface/assets/About-Q7ZmOGgl.js +0 -1
  562. package/dist/interface/assets/Assistant-BQ6Ld-bt.css +0 -1
  563. package/dist/interface/assets/Assistant-DFLgklVe.js +0 -1
  564. package/dist/interface/assets/Automation-BSicfOGF.css +0 -1
  565. package/dist/interface/assets/Automation-D__qvx8c.js +0 -3
  566. package/dist/interface/assets/AutomationImport-CLQSdqg9.js +0 -2
  567. package/dist/interface/assets/AutomationStore-Dt6yTQDb.js +0 -2
  568. package/dist/interface/assets/AutomationStoreDetail-DqBrBhUI.js +0 -2
  569. package/dist/interface/assets/Automations-BH_7lYR7.js +0 -2
  570. package/dist/interface/assets/Camera-BW9ikKqh.css +0 -1
  571. package/dist/interface/assets/Camera-aquPHFwb.js +0 -2
  572. package/dist/interface/assets/CameraConsole-rhle_cfW.js +0 -7
  573. package/dist/interface/assets/Cameras-Bzy3P0xN.js +0 -651
  574. package/dist/interface/assets/Camview-Bri_T7Tq.css +0 -1
  575. package/dist/interface/assets/Camview-CjcQbtTl.js +0 -1
  576. package/dist/interface/assets/CertificateUpload-CWVu_52v.js +0 -1
  577. package/dist/interface/assets/Config-Dc1zKIPq.js +0 -2
  578. package/dist/interface/assets/ConfigActionAssistant-AfQfSqHZ.js +0 -1
  579. package/dist/interface/assets/ConfigActionCameraControl-BKQdHxqe.js +0 -1
  580. package/dist/interface/assets/ConfigActionDelay-B52HeJGb.js +0 -1
  581. package/dist/interface/assets/ConfigActionHttp-BP5gvpQc.js +0 -1
  582. package/dist/interface/assets/ConfigActionImageInput-DE2mSost.js +0 -1
  583. package/dist/interface/assets/ConfigActionMqtt-CYgnZjAE.js +0 -1
  584. package/dist/interface/assets/ConfigActionNotification-C3q53I4n.js +0 -1
  585. package/dist/interface/assets/ConfigActionNotificationControl-eDJ8r5ao.js +0 -1
  586. package/dist/interface/assets/ConfigActionOutput-DgYSYvy-.js +0 -1
  587. package/dist/interface/assets/ConfigActionPlugin-utolgAXk.js +0 -1
  588. package/dist/interface/assets/ConfigActionSensor-CmEKQPqs.js +0 -1
  589. package/dist/interface/assets/ConfigActionSnapshot-D7XucxVV.js +0 -1
  590. package/dist/interface/assets/ConfigActionVariable-C-Mjm3gr.js +0 -1
  591. package/dist/interface/assets/ConfigConditionIfElse-B24Rqb8y.js +0 -1
  592. package/dist/interface/assets/ConfigConditionSensorState-42-yFDmK.js +0 -1
  593. package/dist/interface/assets/ConfigConditionSwitch-DezH_nwm.js +0 -1
  594. package/dist/interface/assets/ConfigConditionTime-Cg2Lwznd.js +0 -1
  595. package/dist/interface/assets/ConfigSensorValueInput-YHBDCTZm.js +0 -1
  596. package/dist/interface/assets/ConfigTriggerDetection-DxEpodjG.js +0 -1
  597. package/dist/interface/assets/ConfigTriggerGeofence-Bye8syxc.js +0 -1
  598. package/dist/interface/assets/ConfigTriggerManual-s_lEDTV9.js +0 -1
  599. package/dist/interface/assets/ConfigTriggerMqtt-DqdZj7TU.js +0 -1
  600. package/dist/interface/assets/ConfigTriggerSchedule-Q559hn6g.js +0 -1
  601. package/dist/interface/assets/ConfigTriggerSensor-DIKkdbTF.js +0 -1
  602. package/dist/interface/assets/ConfigTriggerSystem-CwNZ4xEg.js +0 -1
  603. package/dist/interface/assets/ConfigTriggerWebhook-9ZC6X4mK.js +0 -1
  604. package/dist/interface/assets/Console-BqIDZ5vq.js +0 -1
  605. package/dist/interface/assets/CuiAssistantConversation-BmBhwrNh.css +0 -1
  606. package/dist/interface/assets/CuiAssistantConversation-CM7KdaX2.js +0 -5
  607. package/dist/interface/assets/CuiAutomationRunsDialog-CVjCLiVW.js +0 -1
  608. package/dist/interface/assets/CuiBottomSheet-CFohFiO2.js +0 -1
  609. package/dist/interface/assets/CuiBottomSheet-D75L0Zny.js +0 -1
  610. package/dist/interface/assets/CuiCameraPipCard-BQKk4fxY.css +0 -1
  611. package/dist/interface/assets/CuiCameraPipCard-eiJjYZ5W.js +0 -1
  612. package/dist/interface/assets/CuiCameraRecordings-DdEWkJrO.js +0 -1
  613. package/dist/interface/assets/CuiCameraShares-8mtgFsQ_.js +0 -1
  614. package/dist/interface/assets/CuiCameraTable-CmCT-XQF.js +0 -2
  615. package/dist/interface/assets/CuiCameraTable-DHrKoD9s.js +0 -1
  616. package/dist/interface/assets/CuiChartTable-v8sGY6PD.js +0 -1
  617. package/dist/interface/assets/CuiConsole-DYV-FUE0.js +0 -5
  618. package/dist/interface/assets/CuiDataTable-C0gsYYpg.js +0 -1
  619. package/dist/interface/assets/CuiLightControl-CFIwBj3C.js +0 -1
  620. package/dist/interface/assets/CuiList-9TVV8SB6.js +0 -1
  621. package/dist/interface/assets/CuiMarkdownContent-BYBQX_aF.js +0 -1
  622. package/dist/interface/assets/CuiMarkdownContent-DTAm-EDR.js +0 -1
  623. package/dist/interface/assets/CuiPluginCard-DEfqwUhQ.js +0 -2
  624. package/dist/interface/assets/CuiPluginCategoryChip-DhnIBJHa.js +0 -1
  625. package/dist/interface/assets/CuiPluginOAuthButton-DAuzNRAA.js +0 -2
  626. package/dist/interface/assets/CuiPluginTrustBadge-Bz710WwC.js +0 -1
  627. package/dist/interface/assets/CuiQRCode-B8-4GHSY.js +0 -1
  628. package/dist/interface/assets/CuiSchema-C_CHuKuf.js +0 -1
  629. package/dist/interface/assets/CuiTopNavbarItem-CNEnOPSh.js +0 -1
  630. package/dist/interface/assets/Faces-DRHMrrxh.js +0 -1
  631. package/dist/interface/assets/FirstSteps-Ci2Iqbe2.js +0 -1
  632. package/dist/interface/assets/Floorplan-Ci63Zd8W.css +0 -1
  633. package/dist/interface/assets/Floorplan-CqWIbDbh.js +0 -1
  634. package/dist/interface/assets/Instances-gzKFKB1l.js +0 -1
  635. package/dist/interface/assets/Logs-DL1yw_Pe.js +0 -6
  636. package/dist/interface/assets/Menu-C0GQ63aj.js +0 -1
  637. package/dist/interface/assets/Metrics-BYnnb7M0.js +0 -12
  638. package/dist/interface/assets/Metrics-DsHBab6t.css +0 -1
  639. package/dist/interface/assets/OAuthDeviceFlow-Zd6r9IHU.js +0 -1
  640. package/dist/interface/assets/Plugin-DJIrYUnZ.js +0 -1
  641. package/dist/interface/assets/Plugin-Qr_Q_Qfi.css +0 -1
  642. package/dist/interface/assets/PluginConsole-ag0jPZQ_.js +0 -7
  643. package/dist/interface/assets/PluginDetail-DmElwUuV.js +0 -2
  644. package/dist/interface/assets/PluginSchema-CxUujnVs.js +0 -1
  645. package/dist/interface/assets/PluginSearch-B-2zH2Xy.js +0 -1
  646. package/dist/interface/assets/PluginSearch-BqzngVRL.js +0 -2
  647. package/dist/interface/assets/PluginUpdateProgress-CFut0RAe.js +0 -1
  648. package/dist/interface/assets/Plugins-ZFcB_j6v.js +0 -1
  649. package/dist/interface/assets/RecentEventsFilter-CqeHhECT.js +0 -1
  650. package/dist/interface/assets/Recordings-BEKAn6QK.css +0 -1
  651. package/dist/interface/assets/Recordings-BJrtW9eG.js +0 -1
  652. package/dist/interface/assets/SensorEdit-Bi0gg-CL.js +0 -1
  653. package/dist/interface/assets/SensorHistory-q0UR3qMG.js +0 -1
  654. package/dist/interface/assets/Sensors-C_InhcHA.js +0 -2
  655. package/dist/interface/assets/Settings-Cv38rGWn.js +0 -1
  656. package/dist/interface/assets/Settings-D7495zbV.css +0 -1
  657. package/dist/interface/assets/SettingsAccount-B05739dn.js +0 -1
  658. package/dist/interface/assets/SettingsAccount-gm28wtbl.js +0 -1
  659. package/dist/interface/assets/SettingsAppearance-DdyYUgmV.js +0 -1
  660. package/dist/interface/assets/SettingsAppearance-DwUknDPV.js +0 -1
  661. package/dist/interface/assets/SettingsAssistant-ChHfkUKk.js +0 -1
  662. package/dist/interface/assets/SettingsBackup-DKwlPQhD.js +0 -1
  663. package/dist/interface/assets/SettingsList-D6hqnvUo.js +0 -1
  664. package/dist/interface/assets/SettingsMqtt-C01fgLY0.js +0 -1
  665. package/dist/interface/assets/SettingsNotifications-D47cIquQ.js +0 -1
  666. package/dist/interface/assets/SettingsPermissions-BeTCTrAf.js +0 -1
  667. package/dist/interface/assets/SettingsRecordings-mwL6Dalr.js +0 -1
  668. package/dist/interface/assets/SettingsRemote-CtP6Gz9C.css +0 -1
  669. package/dist/interface/assets/SettingsRemote-MhaShPIf.js +0 -2
  670. package/dist/interface/assets/SettingsSystem-BXnzXgqm.js +0 -2
  671. package/dist/interface/assets/SettingsUsers-D2mVlJin.js +0 -1
  672. package/dist/interface/assets/Terminal-C1UoXDRK.js +0 -4
  673. package/dist/interface/assets/Training-A5ynOv_l.js +0 -1
  674. package/dist/interface/assets/Training-C-ToeAl4.css +0 -1
  675. package/dist/interface/assets/Updates-kS_Tm8HD.js +0 -2
  676. package/dist/interface/assets/VariableInput-D9PfI8Ut.js +0 -1
  677. package/dist/interface/assets/VariableSuggestions-DArWzQuE.js +0 -1
  678. package/dist/interface/assets/VersionsHandler-BZVMpB2v.js +0 -7
  679. package/dist/interface/assets/VirtualSensorCreate-Cz-QFo4R.js +0 -1
  680. package/dist/interface/assets/Workers-2sc4VMi9.js +0 -2
  681. package/dist/interface/assets/Workers-DH59zE1C.css +0 -1
  682. package/dist/interface/assets/account-DwW7pBOb.js +0 -1
  683. package/dist/interface/assets/ace-DzzM-RlW.js +0 -1
  684. package/dist/interface/assets/ace.config-CCyX_Ohk.js +0 -1
  685. package/dist/interface/assets/alert-circle-BdUVAt1B.js +0 -1
  686. package/dist/interface/assets/alert-outline-IRxYbw0j.js +0 -1
  687. package/dist/interface/assets/api-CGfJbsTz.css +0 -2
  688. package/dist/interface/assets/api-CzwdnGAH.js +0 -1
  689. package/dist/interface/assets/api-DOpXVpef.js +0 -4
  690. package/dist/interface/assets/arrow-left-Bk-ZrOVr.js +0 -1
  691. package/dist/interface/assets/assistant-hGCAgv-f.js +0 -1
  692. package/dist/interface/assets/assistantModels-BsSgRsws.js +0 -1
  693. package/dist/interface/assets/auth-By-S-WEr.js +0 -1
  694. package/dist/interface/assets/automations-vwIwb2PQ.js +0 -1
  695. package/dist/interface/assets/back-filled-D-X19YMO.js +0 -1
  696. package/dist/interface/assets/bell-ring-DreEHgoT.js +0 -1
  697. package/dist/interface/assets/brain-DuDAg544.js +0 -1
  698. package/dist/interface/assets/cameraSources-BMhXvtFt.js +0 -1
  699. package/dist/interface/assets/cctv-DM-C_8_6.js +0 -1
  700. package/dist/interface/assets/check-circle-Bevuw8-0.js +0 -1
  701. package/dist/interface/assets/check-circle-outline-aMxkvksr.js +0 -1
  702. package/dist/interface/assets/chevron-down-CCFn9Z56.js +0 -1
  703. package/dist/interface/assets/chevron-up-CSImUM3_.js +0 -1
  704. package/dist/interface/assets/clock-outline-DH3WIEJt.js +0 -1
  705. package/dist/interface/assets/close-CMxyM4v9.js +0 -1
  706. package/dist/interface/assets/close-circle-CfgJCZ9A.js +0 -1
  707. package/dist/interface/assets/cloud-check-CbdFLIdR.js +0 -1
  708. package/dist/interface/assets/cloudHandoff-BnzjCpJ2.js +0 -1
  709. package/dist/interface/assets/config-BQxEwrK6.js +0 -1
  710. package/dist/interface/assets/content-copy-Bz49QPOI.js +0 -1
  711. package/dist/interface/assets/copy-DA6QQHRt.js +0 -1
  712. package/dist/interface/assets/cube-scan-IiH8zwm2.js +0 -1
  713. package/dist/interface/assets/database-refresh-outline-CIUDpcuq.js +0 -1
  714. package/dist/interface/assets/delete-Btu-UVx9.js +0 -1
  715. package/dist/interface/assets/dist-D_qWDAKp.js +0 -1
  716. package/dist/interface/assets/dots-vertical-D496SIss.js +0 -1
  717. package/dist/interface/assets/download-BSC7lwq_.js +0 -1
  718. package/dist/interface/assets/esm-Bn9gXwX4.js +0 -1
  719. package/dist/interface/assets/esm-BzM6y2-F.js +0 -1
  720. package/dist/interface/assets/esm-CP3JWrtj.js +0 -1
  721. package/dist/interface/assets/esm-CjAXkqCf.js +0 -1
  722. package/dist/interface/assets/esm-Cqxk-j1S.js +0 -1
  723. package/dist/interface/assets/esm-DFHd3JNU.js +0 -1
  724. package/dist/interface/assets/esm-DfMLJtug.js +0 -1
  725. package/dist/interface/assets/esm-DhDrpq7a.js +0 -1
  726. package/dist/interface/assets/esm-DvhM-SOd.js +0 -1
  727. package/dist/interface/assets/esm-G63bqygQ.js +0 -1
  728. package/dist/interface/assets/esm-Gn-Y59hU.js +0 -1
  729. package/dist/interface/assets/esm-KJSOz2vj.js +0 -1
  730. package/dist/interface/assets/esm-Ryfc94Tm.js +0 -1
  731. package/dist/interface/assets/esm-rSfI5Poy.js +0 -1
  732. package/dist/interface/assets/eventIcons-UQutPG3p.js +0 -1
  733. package/dist/interface/assets/eventLabels-BsPoPWS9.js +0 -1
  734. package/dist/interface/assets/eye-off-CSU0U8g7.js +0 -1
  735. package/dist/interface/assets/eye-off-outline-DCxLRGo_.js +0 -1
  736. package/dist/interface/assets/flowSchema-BPq6iHks.js +0 -1
  737. package/dist/interface/assets/help-circle-outline-Cr_yNhPi.js +0 -1
  738. package/dist/interface/assets/history-anuCbp1T.js +0 -1
  739. package/dist/interface/assets/home-N3bDR1vX.js +0 -1
  740. package/dist/interface/assets/information-outline-CMWIvLNB.js +0 -1
  741. package/dist/interface/assets/intercomService-CXcjcPa9.js +0 -1
  742. package/dist/interface/assets/lan-CYXjdk7L.js +0 -1
  743. package/dist/interface/assets/main-By4L33Im.js +0 -3
  744. package/dist/interface/assets/main-DVa5U7UB.css +0 -1
  745. package/dist/interface/assets/microphone-BB2pATI_.js +0 -1
  746. package/dist/interface/assets/minus-BCp3ZNKO.js +0 -1
  747. package/dist/interface/assets/mqtt-DE1KQ8Td.js +0 -1
  748. package/dist/interface/assets/native-CZJE8bTs.js +0 -1
  749. package/dist/interface/assets/native-DKZwialB.js +0 -1
  750. package/dist/interface/assets/nodeDefinitions-ByrqsENY.js +0 -1
  751. package/dist/interface/assets/notifications-BCyiD-TP.js +0 -1
  752. package/dist/interface/assets/pause-BQlxwAW2.js +0 -1
  753. package/dist/interface/assets/pencil-CDsNnEXi.js +0 -1
  754. package/dist/interface/assets/pencil-outline-CIQL5Kui.js +0 -1
  755. package/dist/interface/assets/plugin-DSEMkqaK.js +0 -1
  756. package/dist/interface/assets/plugins-BJPCV1YL.js +0 -1
  757. package/dist/interface/assets/plus-Bp4q9G7S.js +0 -1
  758. package/dist/interface/assets/plus-CySoovdr.js +0 -1
  759. package/dist/interface/assets/power-WmBLDR0-.js +0 -1
  760. package/dist/interface/assets/radar-CyYAmume.js +0 -1
  761. package/dist/interface/assets/refresh-CHTA3jVN.js +0 -1
  762. package/dist/interface/assets/restore-C8RNM5yX.js +0 -1
  763. package/dist/interface/assets/rooms-Dr4yiakO.js +0 -1
  764. package/dist/interface/assets/round-alt-arrow-left-bold-Gh5mi_yR.js +0 -1
  765. package/dist/interface/assets/search-BajCVmOI.js +0 -1
  766. package/dist/interface/assets/sensorIcons-DofElQ3w.js +0 -1
  767. package/dist/interface/assets/sensorSlots-D2KJGvPw.js +0 -1
  768. package/dist/interface/assets/sensors-3llrL7s3.js +0 -1
  769. package/dist/interface/assets/server-Dw5DD473.js +0 -1
  770. package/dist/interface/assets/settings-DnksaK7m.js +0 -1
  771. package/dist/interface/assets/source-branch-CzqIPffP.js +0 -1
  772. package/dist/interface/assets/theme-C85LJhOY.js +0 -1
  773. package/dist/interface/assets/trash-2-DJeEhHf4.js +0 -1
  774. package/dist/interface/assets/trash-can-outline-DrT6iw7I.js +0 -1
  775. package/dist/interface/assets/trash-fill-Bb_-UicM.js +0 -1
  776. package/dist/interface/assets/trash2-Dsl8gfxq.js +0 -1
  777. package/dist/interface/assets/types-CPhy0Ovw.js +0 -1
  778. package/dist/interface/assets/types-DYKmSGl4.js +0 -1
  779. package/dist/interface/assets/types-i1kTodPP.js +0 -1
  780. package/dist/interface/assets/undo-DoqJW-k7.js +0 -1
  781. package/dist/interface/assets/ungrouped-BlheTJCh.css +0 -1
  782. package/dist/interface/assets/ungrouped-C2CWO39a.js +0 -1
  783. package/dist/interface/assets/updates-C2LhMkNR.js +0 -1
  784. package/dist/interface/assets/upload-C3w1XH-o.js +0 -1
  785. package/dist/interface/assets/upload-DtIcwiNC.js +0 -1
  786. package/dist/interface/assets/useAppVersion-DkazK9Vu.js +0 -1
  787. package/dist/interface/assets/useAssistantActions-BZP6NL18.js +0 -1
  788. package/dist/interface/assets/useBackupRestore-DMQW_CVC.js +0 -1
  789. package/dist/interface/assets/useCameraOptions-DnI0xLrX.js +0 -1
  790. package/dist/interface/assets/useKeyboardInset-Cr7SxKGN.js +0 -1
  791. package/dist/interface/assets/useLogsSocket-C3Y8S0Ar.js +0 -1
  792. package/dist/interface/assets/useNavLayout-C9pcDuVP.js +0 -1
  793. package/dist/interface/assets/usePermissions-CCTxwXF0.js +0 -1
  794. package/dist/interface/assets/usePluginUpdates-DBhLWAua.js +0 -1
  795. package/dist/interface/assets/usePushRegistration-CPRVdLAx.js +0 -2
  796. package/dist/interface/assets/useServerRestart-bScBLJ9r.js +0 -1
  797. package/dist/interface/assets/useStreamStatus-Bfh-WmLH.js +0 -1
  798. package/dist/interface/assets/useTabSwipe-C_QOrvSW.js +0 -1
  799. package/dist/interface/assets/useUpdateChannel-g0h_4c55.js +0 -1
  800. package/dist/interface/assets/useUpdatesSocket-CxrLRETs.js +0 -1
  801. package/dist/interface/assets/useUserOptions-DN0t3gBr.js +0 -1
  802. package/dist/interface/assets/variable-ywTlRfo5.js +0 -1
  803. package/dist/interface/assets/vendor-ace-CvEoip98.js +0 -1085
  804. package/dist/interface/assets/vendor-cameraui-B28aGJJD.js +0 -2326
  805. package/dist/interface/assets/vendor-capacitor-Bs_WzL0Q.js +0 -2
  806. package/dist/interface/assets/vendor-chart-DBK083Hu.js +0 -3
  807. package/dist/interface/assets/vendor-core-DIa0tPNH.js +0 -1
  808. package/dist/interface/assets/vendor-dnd-DGQLvX6Y.js +0 -2
  809. package/dist/interface/assets/vendor-draggabilly-D8CK6M-y.js +0 -1
  810. package/dist/interface/assets/vendor-gFkr2qsZ.js +0 -23
  811. package/dist/interface/assets/vendor-leaflet-DkAk6mAj.js +0 -1
  812. package/dist/interface/assets/vendor-markdown-qHIinIUE.js +0 -14
  813. package/dist/interface/assets/vendor-primevue-CZKUAkMA.js +0 -3942
  814. package/dist/interface/assets/vendor-vueflow-bSwRZ9X8.js +0 -26
  815. package/dist/interface/assets/web-BDNQnMmA.js +0 -1
  816. package/dist/interface/assets/web-B_9Qyt8E.js +0 -1
  817. package/dist/interface/assets/web-BhJykCtq.js +0 -1
  818. package/dist/interface/assets/web-BjKL51lK-wWFeZlLg.js +0 -1
  819. package/dist/interface/assets/web-C7nJwIOa.js +0 -1
  820. package/dist/interface/assets/web-CGJsJQDb.js +0 -1
  821. package/dist/interface/assets/web-CJwASxrl.js +0 -1
  822. package/dist/interface/assets/web-CLe0L31Y.js +0 -1
  823. package/dist/interface/assets/web-DEv1hAn1.js +0 -1
  824. package/dist/interface/assets/web-DaeQvsXT.js +0 -1
  825. package/dist/interface/assets/web-H3-wNunW.js +0 -1
  826. package/dist/interface/assets/web-LCdyqJq1.js +0 -1
  827. package/dist/interface/assets/web-XZWYTK65.js +0 -1
  828. package/dist/interface/assets/web-rU5hlxxW.js +0 -1
  829. package/dist/interface/assets/webhook-CWKf2Qxu.js +0 -1
  830. package/dist/interface/assets/workbox-window.prod.es5-BEYAF-e-.js +0 -1
  831. package/dist/interface/assets/zoom-in-CHkXAWHy.js +0 -1
  832. package/dist/interface/ha/404-tl2VQ3qy.js +0 -60
  833. package/dist/interface/ha/About-Cn7KOblU.js +0 -55
  834. package/dist/interface/ha/Assistant-DG2GGda0.js +0 -9361
  835. package/dist/interface/ha/Automation-D0_WpXx4.js +0 -2025
  836. package/dist/interface/ha/AutomationImport-DdC3dEaC.js +0 -206
  837. package/dist/interface/ha/AutomationStore-BrLn4oBx.js +0 -336
  838. package/dist/interface/ha/AutomationStoreDetail-DoppNsNc.js +0 -122
  839. package/dist/interface/ha/Automations-BaUJ9pVq.js +0 -424
  840. package/dist/interface/ha/Camera-Cj5ImvZG.js +0 -657
  841. package/dist/interface/ha/CameraConsole-7MhlS2VK.js +0 -52
  842. package/dist/interface/ha/Cameras-vHYz8uSO.js +0 -1969
  843. package/dist/interface/ha/Camview-BEglAx26.js +0 -1331
  844. package/dist/interface/ha/Config-CHiK--zP.js +0 -356
  845. package/dist/interface/ha/ConfigActionAssistant-DynduZYV.js +0 -182
  846. package/dist/interface/ha/ConfigActionCameraControl-BEYePssz.js +0 -152
  847. package/dist/interface/ha/ConfigActionHttp-h0vRWqZ5.js +0 -134
  848. package/dist/interface/ha/ConfigActionImageInput-B9GMZYAR.js +0 -171
  849. package/dist/interface/ha/ConfigActionMqtt-BEQpHBgf.js +0 -81
  850. package/dist/interface/ha/ConfigActionNotification-BYsz8_aS.js +0 -199
  851. package/dist/interface/ha/ConfigActionNotificationControl-BxmIWVE8.js +0 -111
  852. package/dist/interface/ha/ConfigActionOutput-DTOQSa1S.js +0 -98
  853. package/dist/interface/ha/ConfigActionPlugin-NOsUs3QI.js +0 -172
  854. package/dist/interface/ha/ConfigActionSensor-YWnsH_LV.js +0 -139
  855. package/dist/interface/ha/ConfigActionSnapshot-DHJnTvin.js +0 -48
  856. package/dist/interface/ha/ConfigActionVariable-C7UFnvW0.js +0 -88
  857. package/dist/interface/ha/ConfigConditionIfElse-CAHbuhH3.js +0 -124
  858. package/dist/interface/ha/ConfigConditionSensorState-CE6okUeb.js +0 -192
  859. package/dist/interface/ha/ConfigConditionSwitch-D5FULaTy.js +0 -128
  860. package/dist/interface/ha/ConfigSensorValueInput-mo6Gs_aZ.js +0 -170
  861. package/dist/interface/ha/ConfigTriggerDetection-Bt-OhHtM.js +0 -241
  862. package/dist/interface/ha/ConfigTriggerGeofence-Cw3jV5qD.js +0 -4888
  863. package/dist/interface/ha/ConfigTriggerMqtt-BXeV82UG.js +0 -134
  864. package/dist/interface/ha/ConfigTriggerSensor-Baqq--nJ.js +0 -73
  865. package/dist/interface/ha/ConfigTriggerSystem-braUVGzW.js +0 -192
  866. package/dist/interface/ha/ConfigTriggerWebhook-Dm45r-1C.js +0 -94
  867. package/dist/interface/ha/Console-q3TCsxYo.js +0 -348
  868. package/dist/interface/ha/CuiAutomationRunsDialog-DO6h5Tc4.js +0 -130
  869. package/dist/interface/ha/CuiBottomSheet-B7ldz0xi.js +0 -270
  870. package/dist/interface/ha/CuiCameraRecordings-Dq1Vh3qA.js +0 -551
  871. package/dist/interface/ha/CuiCameraShares-DBqcpevG.js +0 -121
  872. package/dist/interface/ha/CuiCameraTable-kL8rK-Uv.js +0 -169
  873. package/dist/interface/ha/CuiChartTable-BrFyiSt_.js +0 -6801
  874. package/dist/interface/ha/CuiConsole-DpeXZmJd.js +0 -244
  875. package/dist/interface/ha/CuiDataTable-BtqzIz0o.js +0 -8732
  876. package/dist/interface/ha/CuiList-CU2NJ1K6.js +0 -57
  877. package/dist/interface/ha/CuiPluginCard-lBLypaN4.js +0 -769
  878. package/dist/interface/ha/CuiPluginOAuthButton-CuGauZJA.js +0 -79
  879. package/dist/interface/ha/CuiPluginTrustBadge-BofBmRYc.js +0 -123
  880. package/dist/interface/ha/CuiQRCode-CdK9bwKb.js +0 -86
  881. package/dist/interface/ha/CuiSchema-DqkCLv9Y.js +0 -963
  882. package/dist/interface/ha/CuiTopNavbarItem-C2VZB7WV.js +0 -140
  883. package/dist/interface/ha/Faces-Crfi-75Z.js +0 -1441
  884. package/dist/interface/ha/FirstSteps-CKVG86pf.js +0 -251
  885. package/dist/interface/ha/Floorplan-CH9_-6hk.js +0 -3657
  886. package/dist/interface/ha/Instances-5gZdPPDA.js +0 -680
  887. package/dist/interface/ha/Logs-BkzEM70F.js +0 -418
  888. package/dist/interface/ha/Menu-BuT3_Ggx.js +0 -156
  889. package/dist/interface/ha/Metrics-BGrzu0bu.js +0 -1447
  890. package/dist/interface/ha/OAuthDeviceFlow-BEJtegqy.js +0 -112
  891. package/dist/interface/ha/Plugin-Bnp2jiC2.js +0 -1544
  892. package/dist/interface/ha/PluginConsole-CmsuPVMz.js +0 -56
  893. package/dist/interface/ha/PluginDetail-BCNx7vHr.js +0 -805
  894. package/dist/interface/ha/PluginSearch-DOdhuxgM.js +0 -462
  895. package/dist/interface/ha/PluginUpdateProgress-CwkKc8Tr.js +0 -34
  896. package/dist/interface/ha/Plugins-BrFowCdC.js +0 -692
  897. package/dist/interface/ha/RecentEventsFilter-9ZkDHD1g.js +0 -79
  898. package/dist/interface/ha/Recordings-BZhf39pJ.js +0 -1539
  899. package/dist/interface/ha/SensorEdit-Ds6WbN4A.js +0 -1462
  900. package/dist/interface/ha/SensorHistory-CoTIYTJx.js +0 -54
  901. package/dist/interface/ha/Sensors-DZ2MKdlh.js +0 -1400
  902. package/dist/interface/ha/Settings-D3JKr430.js +0 -218
  903. package/dist/interface/ha/SettingsAccount-cvtlSKZw.js +0 -971
  904. package/dist/interface/ha/SettingsAppearance-CaKuOHRu.js +0 -220
  905. package/dist/interface/ha/SettingsAssistant-vWVjAUqQ.js +0 -2025
  906. package/dist/interface/ha/SettingsBackup-CvzL_bVf.js +0 -556
  907. package/dist/interface/ha/SettingsList-C0Ec8x-H.js +0 -40
  908. package/dist/interface/ha/SettingsMqtt-COnq-QM5.js +0 -526
  909. package/dist/interface/ha/SettingsNotifications-BZ68bQzO.js +0 -529
  910. package/dist/interface/ha/SettingsPermissions-Jh0FuIF7.js +0 -84
  911. package/dist/interface/ha/SettingsRecordings-BPtNNpDa.js +0 -152
  912. package/dist/interface/ha/SettingsRemote-BXG8IYjf.js +0 -1810
  913. package/dist/interface/ha/SettingsSystem-_jHBUhws.js +0 -376
  914. package/dist/interface/ha/SettingsUsers-CzGj_RJN.js +0 -379
  915. package/dist/interface/ha/Terminal-BP3b8IBP.js +0 -612
  916. package/dist/interface/ha/Training-C2-6DgY0.js +0 -1699
  917. package/dist/interface/ha/Updates-BMZsEhmy.js +0 -343
  918. package/dist/interface/ha/VariableInput-DmI7skCD.js +0 -52
  919. package/dist/interface/ha/VersionsHandler-DJd4NqtD.js +0 -216
  920. package/dist/interface/ha/VirtualSensorCreate-DmtGYvAn.js +0 -101
  921. package/dist/interface/ha/Workers-2HTPHgKV.js +0 -765
  922. package/dist/interface/ha/ace-B3bPzJu9.js +0 -13236
  923. package/dist/interface/ha/ace.config-Dt55Nqby.js +0 -1429
  924. package/dist/interface/ha/api-BelbnLQO.js +0 -62346
  925. package/dist/interface/ha/api-sy4rqV2N.js +0 -29
  926. package/dist/interface/ha/assistant-C6KYXJfi.js +0 -349
  927. package/dist/interface/ha/auth-Da66mVEd.js +0 -271
  928. package/dist/interface/ha/automationBlueprint-hlqqM17r.js +0 -250
  929. package/dist/interface/ha/cards-BFRRfuM7.js +0 -13436
  930. package/dist/interface/ha/config-Cd7JNMpD.js +0 -116
  931. package/dist/interface/ha/dist-BIngHzHx.js +0 -287
  932. package/dist/interface/ha/dist-BybVYMVs.js +0 -3248
  933. package/dist/interface/ha/eventIcons-BFNUgeGr.js +0 -676
  934. package/dist/interface/ha/eventLabels-B4C1_4vT.js +0 -42
  935. package/dist/interface/ha/eye-off-outline-ACbzsGuK.js +0 -19
  936. package/dist/interface/ha/intercomService-B7HkLs6z.js +0 -1414
  937. package/dist/interface/ha/mqtt-UZfptWJl.js +0 -56
  938. package/dist/interface/ha/notifications-DTHM8fS-.js +0 -159
  939. package/dist/interface/ha/pinia-BokSpDzj.js +0 -7656
  940. package/dist/interface/ha/plugins-Bwp_GfaX.js +0 -592
  941. package/dist/interface/ha/protocol-BB4jdtUC-DW3jl2tV.js +0 -708
  942. package/dist/interface/ha/rooms-BvaD0r0q.js +0 -45
  943. package/dist/interface/ha/server-OWdtITVa.js +0 -239
  944. package/dist/interface/ha/types-BFJjyMZe.js +0 -1073
  945. package/dist/interface/ha/ungrouped-x00DHNHO.js +0 -1311
  946. package/dist/interface/ha/updates-C03Qf3Il.js +0 -341
  947. package/dist/interface/ha/useAppVersion-CrMd9CC9.js +0 -22
  948. package/dist/interface/ha/useAssistantActions-S1FrNe9b.js +0 -29
  949. package/dist/interface/ha/useKeyboardInset-DwUQCWHC.js +0 -27
  950. package/dist/interface/ha/useLogsSocket-C6k217mW.js +0 -59
  951. package/dist/interface/ha/useNavLayout-DhuQE024.js +0 -125
  952. package/dist/interface/ha/usePermissions-DaE_wFch.js +0 -72
  953. package/dist/interface/ha/useServerRestart-CYaen2r6.js +0 -23
  954. package/dist/interface/ha/useTabSwipe-DAmCFlgg.js +0 -45
  955. package/dist/interface/ha/useUpdateChannel-Dr1EoU2X.js +0 -22
  956. package/dist/interface/ha/useUpdatesSocket-C8Gmhemh.js +0 -34
  957. package/dist/interface/ha/useUserOptions-BB5wk3Bq.js +0 -15
  958. package/dist/interface/workbox-778a14ff.js +0 -1
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./SensorEdit-CAf9Nb01.js","./vendor-cameraui-K1Nw4PvF.js","./rolldown-runtime-C0FnF6B9.js","./vendor-Df81FCJz.js","./api-D1iULsSy.js","./intercomService-BQYzjnAi.js","./vendor-zod-CBbC1rE7.js","./types-CeruGCb8.js","./alert-outline-B4ZZowEj.js","./eventLabels-idFWh3Y_.js","./vendor-core-CJdfpB0I.js","./vendor-dnd-C1kMh9_t.js","./vendor-primevue-DoA2Rwcb.js","./close-Be7oB7d_.js","./vendor-draggabilly-Cw1oJ6qc.js","./api-By0v6EeA.css","./CuiLightControl-ChK-SvJp.js","./bell-ring-CBf0Yn3H.js","./home-DPdzRxcM.js","./cube-scan-Cae03i_N.js","./CuiLightControl-D9sm8NZb.css","./sensorIcons-BRTtoaHX.js","./walk-B8FNhXuj.js","./SensorEdit-ono85O3c.css","./SensorHistory-il8bDErX.js","./history-D-FlZdKD.js","./sensors-Dxc7HgjZ.js","./VirtualSensorCreate-MfLh-LpH.js"])))=>i.map(i=>d[i]);
2
+ import{J as e,Ot as t,Qr as n,Qt as r,Xt as ee,Yt as te,at as ne,et as re,hr as ie,nn as ae,zi as i}from"./vendor-cameraui-K1Nw4PvF.js";import{Bn as oe,Br as se,Dn as ce,H as le,I as ue,In as de,Jn as fe,L as pe,Ln as me,Rn as he,Tn as ge,V as _e,dn as ve,fn as a,kr as ye,mn as be,mr as xe,rn as Se,yn as Ce}from"./api-D1iULsSy.js";import{$n as o,Cr as s,Fn as c,Hn as we,Ht as l,In as u,Jn as Te,Pn as d,Sr as Ee,Xn as De,Z as Oe,br as f,cn as p,dn as m,dr as ke,er as h,gn as g,hn as _,ln as v,lr as y,nn as b,nr as Ae,or as je,rn as x,sn as S,sr as C,un as w,ur as T,vn as E,yr as D}from"./vendor-Df81FCJz.js";import{p as Me}from"./vendor-core-CJdfpB0I.js";import{C as Ne,E as Pe,G as Fe,W as Ie}from"./vendor-primevue-DoA2Rwcb.js";import{t as Le}from"./close-Be7oB7d_.js";import{t as Re}from"./history-D-FlZdKD.js";import{t as O}from"./sensors-Dxc7HgjZ.js";import{t as ze}from"./trash-can-outline-DVH3zgo0.js";import{t as Be}from"./CuiDataTable-DfjXa0C1.js";import{t as Ve}from"./sensorSlots-BTj-IM7z.js";import{t as He}from"./search-D75YW08B.js";import{n as Ue,t as We}from"./sensorIcons-BRTtoaHX.js";import{t as Ge}from"./back-filled-CJoz7Gkl.js";import{t as Ke}from"./plus-BBUb8_uL.js";import{t as qe}from"./settings-DDOgc5BX.js";import{t as Je}from"./radar-Dcvdz--e.js";var k={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function A(e,t){return u(),m(`svg`,k,[...t[0]||=[p(`path`,{fill:`currentColor`,d:`M14 10H3v2h11zm0-4H3v2h11zM3 16h7v-2H3zm18.5-4.5L23 13l-7 7l-4.5-4.5L13 14l3 3z`},null,-1)]])}var Ye=C({name:`mdi-playlist-check`,render:A}),j={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function M(e,t){return u(),m(`svg`,j,[...t[0]||=[p(`path`,{fill:`currentColor`,d:`M3 16h7v-2H3m15 0v-4h-2v4h-4v2h4v4h2v-4h4v-2m-8-8H3v2h11m0 2H3v2h11z`},null,-1)]])}var Xe=C({name:`mdi-playlist-plus`,render:M}),N=5e3,P=y({isLoading:!0,sensors:[],isScanning:!1,error:null}),F=null,I=null,L=!1,R=0,z=null,B=new Set;function Ze(){P.isLoading=!0,P.sensors=[],P.isScanning=!1,P.error=null}function Qe(){return I||(F=Ae(!0),F.run(()=>{let e=ye(`/sensors`);I=e,e.onReady(()=>{V()}),De(e.connected,(e,t)=>{!e&&t&&(L=!1)}),e.on(`sensors:discovered`,e=>{P.sensors=[...P.sensors.filter(t=>t.pluginId!==e.source),...e.sensors]}),e.on(`sensors:scanning`,e=>{P.isScanning=e.isScanning}),e.on(`sensors:adopted`,e=>{P.sensors=P.sensors.filter(t=>t.pluginId!==e.pluginId||t.id!==e.id)}),e.on(`sensor:source:changed`,e=>{for(let t of B)t(e)})}),I)}async function V(){if(!I||L)return{success:L,sensors:P.sensors,isScanning:P.isScanning};try{let e=await I.request(`sensors:subscribe`,{});return L=e.success,e.sensors&&(P.sensors=e.sensors),e.isScanning!==void 0&&(P.isScanning=e.isScanning),P.isLoading=!1,e}catch(e){return P.isLoading=!1,P.error=e instanceof Error?e.message:`subscribe failed`,{success:!1}}}async function H(){if(!I||!L)return{success:!0};try{let e=await I.request(`sensors:unsubscribe`,{});return L=!e.success,e}catch{return{success:!1}}}function $e(){L&&H(),F?.stop(),F=null,I=null,L=!1,Ze()}function et(){z&&=(clearTimeout(z),null),R++;function e(){Qe(),I?.connected.value&&!L&&V()}function t(){L&&H()}async function n(){if(!I?.ready.value)return{success:!1,error:`Not connected`};P.sensors=[],P.isScanning=!0;try{let e=await I.request(`sensors:rescan`,{});return e.success||(P.isScanning=!1),e}catch(e){return P.isScanning=!1,{success:!1,error:e instanceof Error?e.message:`rescan failed`}}}async function r(e){if(!I?.ready.value)return{success:!1,error:`Not connected`};let{pluginId:t,pluginName:n,...r}=e;try{return await I.request(`sensors:adopt`,{pluginId:t,sensor:r})}catch(e){return{success:!1,error:e instanceof Error?e.message:`adopt failed`}}}function ee(e){return B.add(e),()=>B.delete(e)}let te=S(()=>[...P.sensors].sort((e,t)=>e.name.localeCompare(t.name)));return i(()=>{R--,!(R>0)&&(R=0,z=setTimeout(()=>{R<=0&&($e(),z=null)},N))}),{state:T(P),isConnected:S(()=>I?.connected.value??!1),isLoading:S(()=>P.isLoading),sensors:S(()=>P.sensors),isScanning:S(()=>P.isScanning),error:S(()=>P.error),sortedSensors:te,connect:e,disconnect:t,subscribe:V,unsubscribe:H,forceRescan:n,adoptSensor:r,onSourceChanged:ee}}var tt={class:`flex flex-col`},nt={key:0,class:`page-title`},rt={class:`flex gap-2 mb-4`},it={key:1,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4 py-16`},at={key:2,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4 py-20`},ot={class:`text-muted text-sm`},st={key:3,class:`flex min-h-0 flex-col`},ct={class:`card-title`},lt={class:`flex items-center justify-center`},ut={class:`flex items-center gap-2 min-w-0`},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={key:1,class:`text-xs text-muted truncate font-mono`},gt={key:0,class:`text-xs text-muted truncate font-mono block`},_t={key:1,class:`text-xs text-muted`},vt={class:`text-xs text-muted whitespace-nowrap`},yt={class:`flex items-center justify-center gap-1 min-w-0`},bt={class:`flex items-center justify-end gap-1`},xt={key:0,class:`shrink-0`},St={class:`card-title`},Ct={class:`flex items-center justify-center`},wt={class:`flex items-center gap-2 min-w-0`},Tt={class:`flex flex-col min-w-0`},Et={class:`font-bold text-color truncate`},Dt={class:`text-xs text-muted truncate font-mono`},Ot={class:`text-xs text-muted whitespace-nowrap`},kt={key:1,class:`flex flex-col items-center justify-center py-6 gap-2`},At={class:`text-muted text-sm`},jt={class:`flex flex-wrap items-center gap-2 mt-4`},Mt=de(E({__name:`Sensors`,setup(i){let de=a(()=>l(()=>import(`./SensorEdit-CAf9Nb01.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]),import.meta.url)),ye=a(()=>l(()=>import(`./SensorHistory-il8bDErX.js`),__vite__mapDeps([24,1,2,3,25,26,4,5,6,7,8,9,10,11,12,13,14,15]),import.meta.url)),De=a(()=>l(()=>import(`./VirtualSensorCreate-MfLh-LpH.js`),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]),import.meta.url)),y={connected:`green`,disconnected:`gray`,unavailable:`orange`,removed:`red`},Ae={color:`rgb(251, 146, 60)`,filter:`drop-shadow(0 0 6px rgba(251, 146, 60, 0.6))`},C=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]),T=new O,E=new Se,k=ve(),A=et(),j=Oe(),M=se(),{t:N}=ie(),{smBreakpoint:P}=oe(),F=fe(),{uiSettings:I}=Me(F),{sensors:L}=t(),{data:R,isBusy:z}=T.getSensorsQuery(),{data:B}=E.getCamerasQuery({page:1,pageSize:-1}),{mutateAsync:Ze,isPending:Qe}=T.createVirtualSensorQuery(),{mutateAsync:V}=T.patchSensorQuery(),{mutateAsync:H,isPending:$e}=T.deleteSensorQuery(),{mutateAsync:Mt}=T.bulkDeleteSensorsQuery(),Nt={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}},datatable:{class:`z-0`}},Pt=Te(`menuRef`),U=ke(``),W=ke(!1),Ft,It=S(()=>R.value===void 0&&z.value),G=S(()=>ge(void 0,`admin`)),K=S(()=>R.value??[]),Lt=S(()=>K.value.filter(e=>e.assignmentLocked).length),Rt=S(()=>K.value.filter(e=>!on(e)).length),zt=S(()=>[{key:`hideAllCameraBound`,label:N(`views.sensors.hide_all_camera_bound`),description:N(`views.sensors.hide_all_camera_bound_hint`),badge:Lt.value?String(Lt.value):void 0,toggle:!0,toggleState:I.value.sensors.hideAllCameraBound,onClick:()=>I.value.sensors.hideAllCameraBound=!I.value.sensors.hideAllCameraBound},{key:`onlyEnabledCameraBound`,label:N(`views.sensors.only_enabled_camera_bound`),description:N(`views.sensors.only_enabled_camera_bound_hint`),badge:Rt.value?String(Rt.value):void 0,toggle:!0,toggleState:I.value.sensors.onlyEnabledCameraBound,onClick:()=>I.value.sensors.onlyEnabledCameraBound=!I.value.sensors.onlyEnabledCameraBound}]),Bt=S(()=>(B.value?.result??[]).map(e=>({label:e.name,value:e._id}))),Vt=S(()=>new Map((B.value?.result??[]).map(e=>[e._id,e]))),Ht=S(()=>new Map(L.value.map(e=>[e.id,e]))),q=S(()=>{let e=U.value.toLowerCase().trim();return K.value.map(e=>{let t=cn(e);return{sensor:e,label:e.displayName||e.name,typeLabel:N(`components.camera_options.sensor_type_${e.type}`),nativeLabel:e.address??e.nativeId??``,pluginLabel:e.virtual?N(`views.sensors.owner_virtual`):e.pluginName,assignedLabel:e.assignedCameraIds.map(e=>Bt.value.find(t=>t.value===e)?.label).filter(Boolean).join(`, `),state:t,stateLabel:ln(t,e),stateColor:y[t]}}).filter(e=>!I.value.sensors.hideAllCameraBound||!e.sensor.assignmentLocked).filter(e=>!I.value.sensors.onlyEnabledCameraBound||on(e.sensor)).filter(t=>!e||[t.label,t.typeLabel,t.nativeLabel,t.pluginLabel,t.assignedLabel].some(t=>t.toLowerCase().includes(e))).sort((e,t)=>e.label.localeCompare(t.label))}),J=S(()=>A.isScanning.value),Y=S(()=>{let e=U.value.toLowerCase().trim();return A.sortedSensors.value.filter(t=>!e||[t.name,t.id,t.pluginName,t.room??``].some(t=>t.toLowerCase().includes(e)))}),{selectionMode:X,selectedIds:Ut,selectedItems:Wt,allSelected:Gt,bulkBusy:Kt,enterSelectionMode:qt,exitSelectionMode:Jt,toggleSelectAll:Yt,toggleSelection:Xt}=ue(()=>q.value,e=>e.sensor.id),{selectionMode:Z,selectedIds:Zt,selectedItems:Qt,allSelected:$t,bulkBusy:Q,enterSelectionMode:en,exitSelectionMode:tn,toggleSelectAll:nn,toggleSelection:rn}=ue(()=>Y.value,$),an=S(()=>Wt.value.filter(e=>gn(e.sensor)));function $(e){return`${e.pluginId}:${e.id}`}function on(e){if(!e.boundCameraId)return!0;let t=Vt.value.get(e.boundCameraId);return t?Ve(e,t):!1}function sn(e){return Ht.value.get(e.id)?.connected.value??e.connected}function cn(e){return sn(e)?e.sourceState===`removed`?`removed`:e.sourceState===`unavailable`?`unavailable`:`connected`:`disconnected`}function ln(e,t){switch(e){case`disconnected`:return N(`views.sensors.disconnected`);case`unavailable`:return N(`views.sensors.state_unavailable`);case`removed`:return N(`views.sensors.state_removed`,{plugin:t.pluginName});default:return N(`views.sensors.connected`)}}function un(){tn(),qt()}function dn(){Jt(),en()}function fn(e){if(Z.value){rn($(e));return}pn(e)}function pn(e){k.openTextDialog({data:{title:N(`views.sensors.adopt_title`),contentText:N(`views.sensors.adopt_confirm`,{name:e.name,plugin:e.pluginName}),confirmText:N(`components.form.button.add`),loading:W},onConfirm:async()=>{W.value=!0;try{let t=await A.adoptSensor(e);if(!t.success){M.add({severity:`error`,summary:N(`views.sensors.adopt_title`),detail:t.error,life:3e3});return}await j.refetchQueries({queryKey:[`sensorsList`]}),M.add({severity:`success`,detail:N(`views.sensors.adopted`,{name:e.name}),life:3e3})}finally{W.value=!1}}})}async function mn(){let e=await A.forceRescan();e.success||M.add({severity:`error`,summary:N(`views.sensors.rescan`),detail:e.error,life:3e3})}function hn(e){let t=Ht.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 C.has(String(e.type))&&!!r(`detected`)}}function gn(e){return e.virtual||!e.assignmentLocked||!sn(e)}function _n(e){if(X.value){Xt(e.sensor.id);return}G.value&&k.openComponentDialog(de,{data:{title:e.label,confirmText:N(`components.form.button.save`),contentProps:{sensor:e.sensor,cameraOptions:Bt.value}},onConfirm:async t=>{t&&await V({id:e.sensor.id,data:t})}})}function vn(e){k.openComponentDialog(ye,{data:{title:`${e.displayName||e.name} · ${N(`views.sensors.history`)}`,hideConfirmButton:!0,contentProps:{sensorId:e.id,sensorType:String(e.type)}}})}function yn(e,t,n){t.length&&M.add({severity:`error`,summary:N(`views.sensors.bulk_failed`,{count:t.length}),detail:t.join(`, `),life:8e3}),e&&M.add({severity:`success`,detail:N(n,{count:e}),life:5e3})}function bn(){let e=[...an.value];k.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()=>{Kt.value=!0;try{let{skipped:t}=await Mt({ids:e.map(e=>e.sensor.id)}),n=e.filter(e=>t.includes(e.sensor.id)).map(e=>e.label);Jt(),yn(e.length-n.length,n,`views.sensors.delete_selected_done`)}finally{Kt.value=!1}}})}function xn(){let e=[...Qt.value];k.openTextDialog({data:{title:N(`views.sensors.adopt_title`),contentText:N(`views.sensors.adopt_selected_confirm`,{count:e.length}),confirmText:N(`components.form.button.add`)},onConfirm:async()=>{Q.value=!0;try{let t=[];for(let n of e)(await A.adoptSensor(n)).success||t.push(n.name);await j.refetchQueries({queryKey:[`sensorsList`]}),tn(),yn(e.length-t.length,t,`views.sensors.adopt_selected_done`)}finally{Q.value=!1}}})}function Sn(e){j.setQueryData([`sensorsList`],t=>t?.map(t=>t.id===e.sensorId?{...t,sourceState:e.sourceState,address:e.address}:t))}function Cn(){k.openComponentDialog(De,{data:{title:N(`views.sensors.create_virtual`),confirmText:N(`components.form.button.save`),loading:Qe,contentProps:{}},onConfirm:async e=>{e&&await Ze({data:e})}})}function wn(e){k.openTextDialog({data:{title:N(`views.sensors.delete`),contentText:N(`views.sensors.delete_confirm`),confirmText:N(`components.form.button.remove`),loading:$e,confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{await H({id:e.id})}})}return d(()=>{G.value&&(A.connect(),Ft=A.onSourceChanged(Sn))}),c(()=>{Ft?.(),G.value&&A.unsubscribe()}),(t,n)=>{let ie=Ge,i=ee,oe=le,se=He,ue=Ie,de=e,fe=Fe,ge=qe,ve=be,a=te,ye=xe,Se=re,c=Ne,l=r,Te=ce,d=Pe,De=Ue,Oe=Re,ke=ze,y=Be,S=ne,C=Ce,T=Je,E=me,Me=he,O=ae;return u(),m(`div`,tt,[D(P)?w(``,!0):(u(),m(`h1`,nt,s(D(N)(`views.sensors.title`)),1)),g(oe,{position:`left`},{default:o(()=>[g(i,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:n[0]||=e=>t.$router.push(`/menu`)},{icon:o(()=>[g(ie,{class:`w-6 h-6`})]),_:1})]),_:1}),p(`div`,rt,[g(fe,{class:`flex-1`},{default:o(()=>[g(ue,null,{default:o(()=>[g(se,{class:`w-4 h-4`})]),_:1}),g(de,{modelValue:D(U),"onUpdate:modelValue":n[1]||=e=>je(U)?U.value=e:null,placeholder:D(N)(`views.sensors.search`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),_:1}),h((u(),v(i,{severity:`secondary`,outlined:``,class:`cui-button shrink-0`,onClick:n[2]||=e=>D(Pt)?.toggleMenu(e)},{icon:o(()=>[g(ge,{class:`w-4.5 h-4.5`})]),_:1})),[[O,{value:D(N)(`views.sensors.settings`)},void 0,{left:!0}]]),g(ve,{ref_key:`menuRef`,ref:Pt,items:D(zt),"auto-hide":!1,popover:{pt:{root:{class:`w-[22rem]`},content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])]),D(It)?(u(),m(`div`,it,[g(a,{"stroke-width":`5`,class:`w-[30px] h-[30px]`})])):!D(q).length&&!D(Y).length&&!D(J)?(u(),m(`div`,at,[g(ye,{class:`w-12 h-12 text-muted`}),p(`span`,ot,s(D(K).length?D(N)(`views.sensors.no_matches`):D(N)(`views.sensors.no_sensors`)),1)])):D(q).length?(u(),m(`div`,st,[p(`span`,ct,s(D(N)(`views.sensors.adopted_title`)),1),g(S,{class:`cui-card`},{content:o(()=>[g(y,{value:D(q),"striped-rows":``,pt:Nt,class:`w-full`,onRowClick:n[4]||=e=>_n(e.data)},{default:o(()=>[D(X)?(u(),v(c,{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:o(({data:e})=>[g(Se,{"model-value":D(Ut).has(e.sensor.id),binary:``,size:`small`,onClick:n[3]||=b(()=>{},[`stop`]),"onUpdate:modelValue":t=>D(Xt)(e.sensor.id)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:1})):w(``,!0),g(c,{header:``,"header-class":`p-2 pl-4 w-5 max-w-5`,class:`p-2 pl-4 w-5 max-w-5`},{body:o(({data:e})=>[p(`div`,lt,[h(g(l,{style:Ee({background:e.stateColor})},null,8,[`style`]),[[O,{value:e.stateLabel}]])])]),_:1}),g(c,{field:`label`,header:D(N)(`views.sensors.name`),sortable:``,"header-class":`p-2`,class:`p-2 w-[40%] min-w-[180px] max-w-0`},{body:o(({data:e})=>[p(`div`,ut,[(u(),v(we(D(We)(e.sensor.type)),{class:f([`w-5 h-5 shrink-0 transition-colors`,{"text-muted":!hn(e.sensor)}]),style:Ee(hn(e.sensor)?Ae:void 0)},null,8,[`class`,`style`])),p(`div`,dt,[p(`div`,ft,[h((u(),m(`span`,pt,[_(s(e.label),1)])),[[O,e.label]]),e.sensor.exposed?w(``,!0):h((u(),v(Te,{key:0,class:`w-4 h-4 shrink-0 text-muted`},null,512)),[[O,D(N)(`views.sensors.not_exposed`)]])]),D(P)?(u(),m(`span`,mt,s(e.typeLabel)+` · `+s(e.pluginLabel),1)):w(``,!0),D(P)&&e.nativeLabel?h((u(),m(`span`,ht,[_(s(e.nativeLabel),1)])),[[O,e.nativeLabel]]):w(``,!0),D(P)&&e.state!==`connected`?(u(),m(`span`,{key:2,class:`text-xs truncate`,style:Ee({color:e.stateColor})},s(e.stateLabel),5)):w(``,!0)])])]),_:1},8,[`header`]),D(P)?w(``,!0):(u(),v(c,{key:1,field:`nativeLabel`,header:D(N)(`views.sensors.native_id`),sortable:``,"header-class":`p-2 whitespace-nowrap cui-col-center`,class:`p-2 w-[28%] min-w-[160px] max-w-0 text-center`},{body:o(({data:e})=>[e.nativeLabel?h((u(),m(`span`,gt,[_(s(e.nativeLabel),1)])),[[O,e.nativeLabel]]):(u(),m(`span`,_t,`—`))]),_:1},8,[`header`])),D(P)?w(``,!0):(u(),v(c,{key:2,field:`typeLabel`,header:D(N)(`views.sensors.type`),sortable:``,"header-class":`p-2 whitespace-nowrap cui-col-center`,class:`p-2 whitespace-nowrap text-center`},{body:o(({data:e})=>[p(`span`,vt,s(e.typeLabel),1)]),_:1},8,[`header`])),D(P)?w(``,!0):(u(),v(c,{key:3,field:`pluginLabel`,header:D(N)(`views.sensors.plugin`),sortable:``,"header-class":`p-2 whitespace-nowrap cui-col-center`,class:`p-2 whitespace-nowrap text-center`},{body:o(({data:e})=>[g(d,{label:e.pluginLabel,class:`text-xs whitespace-nowrap`},null,8,[`label`])]),_:1},8,[`header`])),g(c,{field:`assignedLabel`,header:D(N)(`views.sensors.assigned_cameras`),sortable:``,"header-class":`p-2 whitespace-nowrap cui-col-center`,class:`p-2 min-w-[140px] text-center`},{body:o(({data:e})=>[p(`div`,yt,[e.sensor.assignmentLocked?h((u(),v(De,{key:0,class:`w-3.5 h-3.5 shrink-0 text-muted`},null,512)),[[O,D(N)(`views.sensors.assigned_cameras_locked_hint`)]]):w(``,!0),p(`span`,{class:f([`text-xs truncate`,e.assignedLabel?`text-muted`:`text-muted italic`])},s(e.assignedLabel||D(N)(`views.sensors.unassigned`)),3)])]),_:1},8,[`header`]),g(c,{header:``,"header-class":`p-2 pr-4 w-28`,class:`p-2 pr-4 w-28`},{body:o(({data:e})=>[p(`div`,bt,[h((u(),v(i,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-sm shrink-0`,onClick:b(t=>vn(e.sensor),[`stop`])},{icon:o(()=>[g(Oe,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[O,D(N)(`views.sensors.history`),void 0,{left:!0}]]),D(G)?h((u(),m(`span`,xt,[g(i,{text:``,rounded:``,severity:`danger`,class:`cui-icon-sm`,disabled:!gn(e.sensor),onClick:b(t=>wn(e.sensor),[`stop`])},{icon:o(()=>[g(ke,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])])),[[O,gn(e.sensor)?D(N)(`views.sensors.delete`):D(N)(`views.sensors.delete_camera_bound`),void 0,{left:!0}]]):w(``,!0)])]),_:1})]),_:1},8,[`value`])]),_:1})])):w(``,!0),D(G)&&!D(It)?(u(),m(`div`,{key:4,class:f([`flex min-h-0 flex-col`,{"mt-6":D(q).length}])},[p(`span`,St,s(D(N)(`views.sensors.discovered_title`)),1),g(S,{class:`cui-card`},{content:o(()=>[D(Y).length?(u(),v(y,{key:0,value:D(Y),"striped-rows":``,pt:Nt,class:f([`w-full`,{"opacity-60 pointer-events-none":D(W)||D(Q)}]),onRowClick:n[6]||=e=>fn(e.data)},{default:o(()=>[D(Z)?(u(),v(c,{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:o(({data:e})=>[g(Se,{"model-value":D(Zt).has($(e)),binary:``,size:`small`,onClick:n[5]||=b(()=>{},[`stop`]),"onUpdate:modelValue":t=>D(rn)($(e))},null,8,[`model-value`,`onUpdate:modelValue`])]),_:1})):w(``,!0),g(c,{header:``,"header-class":`p-2 pl-4 w-5 max-w-5`,class:`p-2 pl-4 w-5 max-w-5`},{body:o(()=>[p(`div`,Ct,[h(g(l,{style:{background:`orange`}},null,512),[[O,{value:D(N)(`views.sensors.status_discovered`)}]])])]),_:1}),g(c,{field:`name`,header:D(N)(`views.sensors.name`),sortable:``,"header-class":`p-2`,class:`p-2 w-full min-w-[200px] max-w-0`},{body:o(({data:e})=>[p(`div`,wt,[(u(),v(we(D(We)(e.type)),{class:`w-5 h-5 shrink-0 text-muted`})),p(`div`,Tt,[h((u(),m(`span`,Et,[_(s(e.name),1)])),[[O,e.name]]),h((u(),m(`span`,Dt,[_(s(e.address??e.id),1)])),[[O,e.address??e.id]])])])]),_:1},8,[`header`]),D(P)?w(``,!0):(u(),v(c,{key:1,field:`type`,header:D(N)(`views.sensors.type`),sortable:``,"header-class":`p-2 whitespace-nowrap`,class:`p-2 whitespace-nowrap`},{body:o(({data:e})=>[p(`span`,Ot,s(D(N)(`components.camera_options.sensor_type_${e.type}`)),1)]),_:1},8,[`header`])),D(P)?w(``,!0):(u(),v(c,{key:2,field:`room`,header:D(N)(`components.form.label.room`),sortable:``,"header-class":`p-2 whitespace-nowrap`,class:`p-2 whitespace-nowrap`},{body:o(({data:e})=>[e.room?(u(),v(d,{key:0,label:e.room,class:`text-xs whitespace-nowrap`},null,8,[`label`])):w(``,!0)]),_:1},8,[`header`])),g(c,{field:`pluginName`,header:D(N)(`views.sensors.plugin`),sortable:``,"header-class":`p-2 pr-4 whitespace-nowrap`,class:`p-2 pr-4 whitespace-nowrap`},{body:o(({data:e})=>[g(d,{label:e.pluginName,class:`text-xs whitespace-nowrap`},null,8,[`label`])]),_:1},8,[`header`])]),_:1},8,[`value`,`class`])):(u(),m(`div`,kt,[D(J)?(u(),v(C,{key:0,width:`24px`,height:`24px`,class:`text-muted`})):(u(),v(T,{key:1,width:`32px`,height:`32px`,class:`text-muted`})),p(`span`,At,s(D(J)?D(N)(`views.sensors.scanning`):D(N)(`views.sensors.no_discovered`)),1)])),p(`div`,jt,[n[7]||=p(`div`,{class:`ml-auto`},null,-1),g(i,{severity:`secondary`,class:`cui-button-medium`,label:D(N)(`views.sensors.rescan`),loading:D(J),onClick:mn},null,8,[`label`,`loading`])])]),_:1})],2)):w(``,!0),D(G)?(u(),v(Me,{key:5,"force-visible":D(X)||D(Z)},{default:o(()=>[!D(X)&&!D(Z)?(u(),m(x,{key:0},[D(q).length?(u(),v(E,{key:0,grouped:``,"tooltip-props":{value:D(N)(`views.sensors.select`)},"button-props":{severity:`secondary`},icon:D(pe),"icon-props":{width:`100%`,height:`100%`},onClick:un},null,8,[`tooltip-props`,`icon`])):w(``,!0),D(Y).length?(u(),v(E,{key:1,grouped:``,"tooltip-props":{value:D(N)(`views.sensors.select_discovered`)},"button-props":{severity:`secondary`},icon:D(Ye),"icon-props":{width:`100%`,height:`100%`},onClick:dn},null,8,[`tooltip-props`,`icon`])):w(``,!0),g(E,{grouped:``,"tooltip-props":{value:D(N)(`views.sensors.create_virtual`)},"button-props":{class:`text-white`},icon:D(Ke),"icon-props":{width:`30px`,height:`30px`},onClick:Cn},null,8,[`tooltip-props`,`icon`])],64)):D(X)?(u(),m(x,{key:1},[g(E,{grouped:``,"tooltip-props":{value:t.$t(`components.form.tooltip.cancel_selection`)},"button-props":{severity:`secondary`},icon:D(Le),"icon-props":{width:`100%`,height:`100%`},onClick:D(Jt)},null,8,[`tooltip-props`,`icon`,`onClick`]),g(E,{grouped:``,"tooltip-props":{value:t.$t(`components.form.tooltip.select_all`)},"button-props":{severity:D(Gt)?`primary`:`secondary`},icon:D(_e),"icon-props":{width:`100%`,height:`100%`},onClick:D(Yt)},null,8,[`tooltip-props`,`button-props`,`icon`,`onClick`]),g(E,{grouped:``,"tooltip-props":{value:D(N)(`views.sensors.delete_selected`)},"button-props":{severity:`danger`,disabled:!D(an).length||D(Kt)},icon:D(ze),"icon-props":{width:`100%`,height:`100%`},onClick:bn},null,8,[`tooltip-props`,`button-props`,`icon`])],64)):(u(),m(x,{key:2},[g(E,{grouped:``,"tooltip-props":{value:t.$t(`components.form.tooltip.cancel_selection`)},"button-props":{severity:`secondary`},icon:D(Le),"icon-props":{width:`100%`,height:`100%`},onClick:D(tn)},null,8,[`tooltip-props`,`icon`,`onClick`]),g(E,{grouped:``,"tooltip-props":{value:t.$t(`components.form.tooltip.select_all`)},"button-props":{severity:D($t)?`primary`:`secondary`},icon:D(_e),"icon-props":{width:`100%`,height:`100%`},onClick:D(nn)},null,8,[`tooltip-props`,`button-props`,`icon`,`onClick`]),g(E,{grouped:``,"tooltip-props":{value:D(N)(`views.sensors.adopt_selected`)},"button-props":{class:`text-white`,disabled:!D(Qt).length||D(Q)},icon:D(Xe),"icon-props":{width:`100%`,height:`100%`},onClick:xn},null,8,[`tooltip-props`,`button-props`,`icon`])],64))]),_:1},8,[`force-visible`])):w(``,!0)])}}}),[[`__scopeId`,`data-v-cf8a7b2d`]]);export{Mt as default};
@@ -0,0 +1 @@
1
+ import{Ti as e,Vi as t,Xt as n,Yt as r,ai as i,fi as a}from"./vendor-cameraui-K1Nw4PvF.js";import{Bn as o,Gn as s,H as c,In as l,Jn as u,Kn as d,Tn as f,Vn as p,qn as m,wn as h,x as g}from"./api-D1iULsSy.js";import{$n as _,Bn as v,Cr as y,Hn as b,In as x,Jn as S,On as C,Pn as w,Rn as T,Sr as E,Xn as D,_r as O,br as k,cn as A,dn as j,dr as M,gn as N,ln as P,rn as F,sn as I,un as L,vn as R,yr as z}from"./vendor-Df81FCJz.js";import{p as B,u as V}from"./vendor-core-CJdfpB0I.js";import{t as ee}from"./back-filled-CJoz7Gkl.js";import{t as H}from"./useTabSwipe-BSpi25WV.js";import{n as U,t as te}from"./round-alt-arrow-left-bold-CZHXzGS5.js";var W={},G={class:`w-full h-full flex items-center justify-center`};function K(e,t){let n=r;return x(),j(`div`,G,[N(n,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])}var q=l(W,[[`render`,K]]),J={key:0},Y={key:1},X={class:`overflow-hidden w-full`},Z={class:`ml-2 flex flex-row items-center justify-between`},ne={class:`text-start flex-1`},re={class:`text-sm font-bold max-w-100 truncate`},ie={key:0,class:`text-sm text-muted font-normal`},Q=l(R({__name:`CuiSubNavItem`,props:{label:{},to:{},description:{},icon:{},activeIcon:{}},setup(e){let{icon:t,activeIcon:r,label:i,description:a,to:o}=O(e);return(e,s)=>{let c=n,l=v(`RouterLink`);return x(),P(l,{to:z(o)},{default:_(({isExactActive:e})=>[N(c,{text:``,severity:`secondary`,class:k([`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:_(()=>[z(t)&&!e||!z(r)?(x(),j(`div`,J,[N(z(t),{class:`w-[24px] h-[24px]`})])):z(r)&&e?(x(),j(`div`,Y,[N(z(r),{class:`w-[24px] h-[24px]`})])):L(``,!0),A(`div`,X,[A(`div`,Z,[A(`div`,ne,[A(`div`,re,y(z(i)),1),z(a)?(x(),j(`div`,ie,y(z(a)),1)):L(``,!0)])])])]),_:2},1032,[`class`])]),_:1},8,[`to`])}}}),[[`__scopeId`,`data-v-a5399c04`]]),$={CLOSED:0,EXPANDED:288},ae=l(R({__name:`CuiSubNavbar`,setup(n,{expose:r}){let a=V(),{bus:c}=s(),{xlBreakpoint:l,mdBreakpoint:u}=o(),{subbarState:d,navbarState:m,topbarOffset:h}=p(),_=S(`subnavbarRef`),v=M(`closed`),b=I(()=>l.value?`opened`:v.value),O=I(()=>b.value===`closed`?$.CLOSED:$.EXPANDED),k=I(()=>g.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&f(e))),N=I(()=>[`personal`,`system`].map(e=>({key:e,routes:k.value.filter(t=>(t.meta.settingsBar.group??`personal`)===e)})).filter(e=>e.routes.length>0));function L(){v.value=`closed`,c.emit({subbarState:`closed`})}function R(){C(()=>{let e=_.value?.querySelector(`.subnavitem-button.active`);e&&e.scrollIntoView({block:`center`,behavior:`smooth`})})}let B=t(R,100);return i(_,e=>{let t=e.target,n=t.closest(`#menu-icon`),r=t.closest(`#submenu-icon`),i=t.closest(`#navbar-icon`);!n&&!r&&!i&&L()}),e(_,()=>{B()}),D(d,e=>{e&&e!==v.value&&(v.value=e)},{immediate:!0}),D(a.currentRoute,(e,t)=>{e.path!==t.path&&L()}),D(m,e=>{e===`opened`&&u.value&&L()}),w(()=>{R()}),r({subnavbarState:b}),(e,t)=>{let n=Q;return x(),j(`nav`,{ref_key:`subnavbarRef`,ref:_,class:`cui-subnavbar fixed transition-all duration-200 overflow-x-hidden overflow-y-scroll md:!pl-0 pl-safe w-full h-full flex flex-col`,style:E({width:`${z(O)}px`,borderRightWidth:z(b)===`opened`?`1px`:`0px`,paddingBottom:`calc(var(--safe-area-inset-top) + ${z(h)}px + var(--cui-bottom-bar) + var(--cui-bottom-gap))`})},[(x(!0),j(F,null,T(z(N),t=>(x(),j(F,{key:t.key},[A(`span`,{class:`shrink-0 pl-4 pt-4 pb-1 text-[11px] font-semibold uppercase tracking-widest text-muted`,style:E({width:`${z($).EXPANDED}px`})},y(e.$t(`views.settings.section_${t.key}`)),5),(x(!0),j(F,null,T(t.routes,t=>(x(),P(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:E({width:`${z($).EXPANDED}px`})},null,8,[`icon`,`active-icon`,`to`,`label`,`description`,`style`]))),128))],64))),128))],4)}}}),[[`__scopeId`,`data-v-7cd5afb1`]]),oe={class:`font-semibold text-xl truncate`},se={class:`w-full h-full relative`},ce={key:0,class:`w-full flex flex-row h-[calc(40px+1rem)] py-2 items-center fixed z-2`},le={class:`relative z-2 page-title !m-0`},ue=R({__name:`Settings`,setup(e){let t=V(),r=d(),{bus:i}=s(),{mdBreakpoint:l,xlBreakpoint:p,smBreakpoint:C}=o(),w=h(),{routerLoading:T}=B(w),O=[`personal`,`system`].flatMap(e=>g.find(e=>e.name===`Settings`).children.filter(t=>f(t)&&t.meta?.settingsBar&&(t.meta.settingsBar.group??`personal`)===e)),M=S(`subnavbarRef`),F=S(`containerRef`),R=I(()=>t.currentRoute.value.path===`/settings`);H(F,e=>{if(R.value)return;let n=O.findIndex(e=>e.path===t.currentRoute.value.path.split(`/settings/`)[1]),r=e===`right`?O[n-1]:O[n+1];r&&t.push({path:r.path})});let W=a(M),G=I(()=>M.value?.subnavbarState??`closed`);function K(){let e=G.value===`opened`?`closed`:`opened`;i.emit({subbarState:e})}return D(C,e=>{if(!e&&R.value){let e=u().uiSettings.interface.selectedSettingsView;t.replace(`/settings/${m.includes(e)?e:`account`}`)}}),(e,t)=>{let i=c,a=ee,o=n,s=ae,u=te,d=U,f=q,m=v(`RouterView`);return x(),j(`div`,null,[N(i,{position:`center`},{default:_(()=>[A(`span`,oe,y(e.$t(`views.settings.title_${e.$route.meta?.name}`)),1)]),_:1}),N(i,{position:`left`},{default:_(()=>[N(o,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:t[0]||=t=>e.$router.push(z(R)?`/menu`:`/settings`)},{icon:_(()=>[N(a,{class:`w-6 h-6`})]),_:1})]),_:1}),z(C)?L(``,!0):(x(),P(s,{key:0,ref_key:`subnavbarRef`,ref:M,class:`z-4 min-w-0`},null,512)),A(`main`,{class:`relative w-full h-full`,style:E({paddingLeft:z(l)?`0px`:`${z(W).width.value}px`})},[A(`div`,se,[z(C)?L(``,!0):(x(),j(`div`,ce,[t[1]||=A(`div`,{class:`ml-2`},null,-1),z(p)?L(``,!0):(x(),P(o,{key:0,id:`submenu-icon`,severity:`secondary`,class:`mr-2 cui-icon-lg relative z-2`,text:``,rounded:``,onClick:K},{icon:_(()=>[z(G)===`opened`?(x(),P(u,{key:0,width:`100%`,height:`100%`})):(x(),P(d,{key:1,width:`100%`,height:`100%`}))]),_:1})),A(`h1`,le,y(e.$t(`views.settings.title_${e.$route.meta?.name}`)),1),t[2]||=A(`div`,{class:`gradient-blur rotate-180 !h-[70px]`},[A(`div`),A(`div`),A(`div`),A(`div`),A(`div`),A(`div`)],-1)])),A(`div`,{ref_key:`containerRef`,ref:F,class:k([`px-2 h-full w-full`,{"pt-4":z(C),"pt-[calc(40px+2rem)]":!z(C)}])},[z(T)&&z(r).showRouterLoadingSub.value?(x(),P(f,{key:0,class:`w-full h-full relative overflow-x-hidden`})):(x(),P(m,{key:1},{default:_(({Component:e})=>[(x(),P(b(e),{class:`h-full`}))]),_:1}))],2)])],4)])}}});export{ue as default};
@@ -0,0 +1 @@
1
+ .subnavitem-button[data-v-a5399c04]{background:var(--subnavbar-item-background);border-color:#0000}.subnavitem-button[data-v-a5399c04]:hover{background:var(--subnavbar-item-hover-background);border-color:#0000}.subnavitem-button[data-v-a5399c04]:active,.subnavitem-button.active[data-v-a5399c04]{background:var(--subnavbar-item-active-background);border-color:#0000}.cui-subnavbar[data-v-7cd5afb1]{background:var(--subnavbar-background);border-right-style:solid;border-right-color:var(--border-color)}.cui-subnavbar span+.cui-list-item[data-v-7cd5afb1]{border-top:1px solid var(--border-color)}
@@ -0,0 +1 @@
1
+ import{J as e,Xt as t,Yt as n,at as r,hr as i,nn as a}from"./vendor-cameraui-K1Nw4PvF.js";import{Br as o,D as s,Dr as c,In as l,R as u,_ as d,cr as ee,ct as f,dn as p,g as m,hn as te,i as h,j as ne,l as re,st as ie}from"./api-D1iULsSy.js";import{$n as g,C as ae,Cn as _,Cr as v,Dn as y,Hn as oe,In as b,Jn as x,Pn as se,Rn as S,S as C,Xt as w,_r as T,cn as E,dn as D,dr as O,er as ce,gn as k,hn as le,ln as A,mr as ue,or as j,rn as de,sn as M,sr as N,un as P,vn as F,x as I,yr as L}from"./vendor-Df81FCJz.js";import{i as R,r as z}from"./vendor-zod-CBbC1rE7.js";import{C as fe}from"./eventLabels-idFWh3Y_.js";import{p as pe}from"./vendor-core-CJdfpB0I.js";import{C as me,M as he,N as ge,V as _e,a as ve,j as ye,s as be,u as xe}from"./vendor-primevue-DoA2Rwcb.js";import{t as Se}from"./CuiDataTable-DfjXa0C1.js";import{t as Ce}from"./CuiQRCode-S9fPi0_l.js";import{n as we,t as B}from"./auth-CDxrn7fe.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return b(),D(`svg`,V,[...t[0]||=[E(`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=N({name:`mdi-key`,render:H}),U={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function W(e,t){return b(),D(`svg`,U,[...t[0]||=[E(`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=N({name:`mdi-cellphone`,render:W}),G={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function K(e,t){return b(),D(`svg`,G,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M22 18v4h-4v-3h-3v-3h-3l-2.26-2.26c-.55.17-1.13.26-1.74.26a6 6 0 0 1-6-6a6 6 0 0 1 6-6a6 6 0 0 1 6 6c0 .61-.09 1.19-.26 1.74zM7 5a2 2 0 0 0-2 2a2 2 0 0 0 2 2a2 2 0 0 0 2-2a2 2 0 0 0-2-2`},null,-1)]])}var De=N({name:`mdi-key-variant`,render:K}),Oe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function ke(e,t){return b(),D(`svg`,Oe,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M4 6h16v10H4m16 2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4c-1.11 0-2 .89-2 2v10a2 2 0 0 0 2 2H0v2h24v-2z`},null,-1)]])}var Ae=N({name:`mdi-laptop`,render:ke}),je={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Me(e,t){return b(),D(`svg`,je,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M21 17H3V5h18m0-2H3a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2`},null,-1)]])}var Ne=N({name:`mdi-television`,render:Me}),Pe={class:`flex flex-col gap-6`},Fe={class:`token-box`},Ie={class:`token-value`},Le=l(F({__name:`ApiTokenCreated`,props:{token:{}},setup(e,{expose:n}){let r=e,s=o(),{t:c}=i(),{token:l}=T(r);async function u(){await h(l.value)?s.add({severity:`success`,detail:c(`components.toast.copied`),life:1500}):s.add({severity:`error`,detail:c(`components.toast.copy_failed`),life:3e3})}async function d(){}return n({onConfirm:d}),(e,n)=>{let r=ge,i=t,o=a;return b(),D(`div`,Pe,[k(r,{severity:`warn`},{default:g(()=>[le(v(e.$t(`views.settings.api_tokens.created_warning`)),1)]),_:1}),E(`div`,Fe,[E(`span`,Ie,v(L(l)),1),ce((b(),A(i,{text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:u},{icon:g(()=>[k(L(ie),{width:`100%`,height:`100%`})]),_:1})),[[o,{value:e.$t(`components.form.button.copy`)}]])])])}}}),[[`__scopeId`,`data-v-591cfcb4`]]),Re={class:`flex flex-col gap-2 w-full`},ze={for:`apiTokenName`,class:`cui-label`},Be={key:0,class:`text-xs text-red-500`},Ve=F({__name:`CreateApiToken`,props:{existingNames:{}},setup(t,{expose:n}){let r=t,i=O(``),a=M(()=>r.existingNames.includes(i.value.trim()));return n({onConfirm:async()=>{let e=i.value.trim();return!e||a.value?null:e}}),(t,n)=>{let r=e;return b(),D(`div`,Re,[E(`label`,ze,v(t.$t(`views.settings.api_tokens.name_label`)),1),k(r,{id:`apiTokenName`,modelValue:L(i),"onUpdate:modelValue":n[0]||=e=>j(i)?i.value=e:null,class:`w-full`,placeholder:t.$t(`views.settings.api_tokens.name_placeholder`),autofocus:``,invalid:L(a)},null,8,[`modelValue`,`placeholder`,`invalid`]),L(a)?(b(),D(`span`,Be,v(t.$t(`views.settings.api_tokens.name_exists`)),1)):P(``,!0)])}}}),He={class:`flex flex-col gap-6`},Ue={class:`backup-codes-grid`},We=l(F({__name:`TwoFactorBackupCodes`,props:{backupCodes:{}},setup(e,{expose:t}){let{backupCodes:n}=T(e);async function r(){}return t({onConfirm:r}),(e,t)=>{let r=ge;return b(),D(`div`,He,[k(r,{severity:`warn`},{default:g(()=>[le(v(e.$t(`views.settings.security.backup_warning`)),1)]),_:1}),E(`div`,Ue,[(b(!0),D(de,null,S(L(n),e=>(b(),D(`span`,{key:e,class:`backup-code`},v(e),1))),128))])])}}}),[[`__scopeId`,`data-v-0761a2ae`]]),Ge={class:`flex flex-col gap-6`},Ke={class:`text-muted`},qe={class:`flex flex-col gap-2 justify-center items-center mt-5`},Je={class:`cui-label`},Ye=F({__name:`TwoFactorDisable`,setup(e,{expose:t}){let n=new B,r=o(),{t:a}=i(),s=_(`dialogRefProps`),{mutateAsync:c,isPending:l}=n.disable2FAQuery(),u=O(``),d=M(()=>!!(s.loading?.value||l.value)),ee=M(()=>u.value.length<6);async function f(){if(u.value.length<6)return null;try{await c({code:u.value}),r.add({severity:`success`,detail:a(`views.settings.security.2fa_disabled_success`),life:3e3})}catch(e){return r.add({severity:`error`,detail:e,life:3e3}),null}}return t({isLoading:d,isDisabled:ee,onConfirm:f}),(e,t)=>{let n=xe;return b(),D(`div`,Ge,[E(`p`,Ke,v(e.$t(`views.settings.security.disable_confirm`)),1),E(`div`,qe,[E(`label`,Je,v(e.$t(`views.settings.security.enter_code`)),1),k(n,{modelValue:L(u),"onUpdate:modelValue":t[0]||=e=>j(u)?u.value=e:null,length:6,"integer-only":``,class:`justify-center`},null,8,[`modelValue`])])])}}}),Xe={class:`flex flex-col gap-6`},Ze={class:`text-muted`},q={class:`flex flex-col gap-2 justify-center items-center mt-5`},J={class:`cui-label`},Qe=F({__name:`TwoFactorRegenerate`,props:{onBackupCodesGenerated:{type:Function}},setup(e,{expose:t}){let n=new B,r=e,a=o(),{t:s}=i(),c=_(`dialogRefProps`),{mutateAsync:l,isPending:u}=n.regenerateBackupCodesQuery(),d=O(``),ee=M(()=>!!(c.loading?.value||u.value)),f=M(()=>d.value.length<6);async function p(){if(d.value.length<6)return null;try{let e=await l({code:d.value});a.add({severity:`success`,detail:s(`views.settings.security.backup_regenerated`),life:3e3}),r.onBackupCodesGenerated&&r.onBackupCodesGenerated(e.backupCodes)}catch(e){return a.add({severity:`error`,detail:e,life:3e3}),null}}return t({isLoading:ee,isDisabled:f,onConfirm:p}),(e,t)=>{let n=xe;return b(),D(`div`,Xe,[E(`p`,Ze,v(e.$t(`views.settings.security.regenerate_confirm`)),1),E(`div`,q,[E(`label`,J,v(e.$t(`views.settings.security.enter_code`)),1),k(n,{modelValue:L(d),"onUpdate:modelValue":t[0]||=e=>j(d)?d.value=e:null,length:6,"integer-only":``,class:`justify-center`},null,8,[`modelValue`])])])}}}),$e={class:`flex flex-col w-full gap-6`},et={class:`relative`},tt={class:`image-upload rounded-full z-1`},nt={for:`file-input`},rt={class:`card-title`},it={class:`flex flex-col gap-6`},at={for:`username`,class:`cui-label`},ot={class:`card-title`},st={class:`flex flex-col gap-6`},ct={for:`password`,class:`cui-label`},lt={for:`passwordConfirm`,class:`cui-label`},ut={class:`relative`},dt={class:`image-upload rounded-full z-1`},ft={for:`file-input`},pt={class:`card-title`},mt={class:`flex flex-col gap-6`},ht={class:`flex flex-col field-gap`},gt={for:`username`,class:`cui-label`},_t={class:`flex flex-row items-end justify-end`},vt={class:`card-title`},yt={for:`password`,class:`cui-label`},bt={for:`passwordConfirm`,class:`cui-label`},xt={class:`flex flex-row items-end justify-end`},St={class:`card-title`},Ct={key:0,class:`flex justify-center py-6`},wt={key:`initial`,class:`flex flex-col gap-6`},Tt={class:`flex flex-col gap-1`},Et={class:`tfa-row-title`},Dt={class:`tfa-row-description`},Ot={key:`loading`,class:`flex flex-col items-center py-8 gap-3`},kt={class:`text-sm text-muted`},At={key:`setup`,class:`tfa-setup`},jt={class:`tfa-setup-qr`},Mt={class:`text-sm text-muted text-center mt-3`},Nt={class:`flex flex-col gap-5 flex-1`},Pt={class:`flex flex-col field-gap`},Ft={class:`cui-label`},It={class:`flex flex-col field-gap`},Lt={class:`cui-label`},Rt={class:`flex gap-2 justify-end`},zt={key:`enabled`,class:`flex flex-col gap-6`},Bt={class:`tfa-row tfa-row-enabled`},Vt={class:`tfa-status-icon`},Ht={class:`tfa-row-content`},Ut={class:`tfa-row-title`},Wt={key:0,class:`tfa-backup-info`},Gt={class:`flex gap-2 justify-end`},Kt={key:0},qt={class:`card-title`},Jt={class:`flex items-center gap-4`},Yt={class:`flex flex-col field-switch-gap min-w-0`},Xt={class:`text-sm font-bold text-color`},Zt={class:`card-title`},Qt={class:`flex flex-col gap-6`},$t={class:`text-sm text-muted`},en={class:`text-muted text-sm`},tn={class:`flex items-center gap-3`},nn={class:`flex flex-col min-w-0`},rn={class:`text-sm font-semibold text-color truncate`},an={class:`text-xs text-muted truncate font-mono`},on={class:`text-xs text-muted`},sn={class:`flex flex-row items-end justify-end gap-2`},cn={class:`card-title`},ln={class:`flex flex-col gap-6`},un={class:`text-muted text-sm`},dn={class:`flex items-center gap-3`},fn={class:`flex flex-col min-w-0`},pn={class:`flex items-center gap-2`},mn={class:`text-sm font-semibold text-color truncate`},hn={class:`text-xs text-muted truncate`},gn={key:0,class:`flex flex-row items-end justify-end gap-2`},Y=l(F({__name:`SettingsAccount`,props:{firststeps:{type:Boolean}},setup(l,{expose:_}){let S=new B,N=l,F=p(),V=o(),{t:H}=i(),{firststeps:U}=T(N),W=d(),{user:G}=pe(W),{data:K,isLoading:Oe}=S.toggleQueryActivator(`get2FAStatusQuery`,!U.value).get2FAStatusQuery(),{mutateAsync:ke,isPending:je}=S.setup2FAQuery(),{mutateAsync:Me,isPending:Pe}=S.enable2FAQuery(),{data:Fe,isBusy:Ie}=S.toggleQueryActivator(`listSessionsQuery`,!U.value).listSessionsQuery({page:1,pageSize:-1}),{mutateAsync:Re}=S.revokeSessionQuery(),{mutateAsync:ze}=S.revokeOtherSessionsQuery(),{data:Be,isBusy:He}=S.toggleQueryActivator(`listApiTokensQuery`,!U.value).listApiTokensQuery(),{mutateAsync:Ue,isPending:Ge}=S.createApiTokenQuery(),{mutateAsync:Ke}=S.revokeApiTokenQuery(),qe=z({password:s,passwordConfirm:R().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Je=z({username:R().min(1),password:s,passwordConfirm:R().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Xe=x(`formRef`),Ze=x(`passwordFormRef`),q=ue(),J=O(`avatar`),Y=O(G.value?.username??``),X=O(!1),Z=O(!1),Q=O(null),$=O(``),_n=O(null),vn=O(!1),yn=O(null);O(!1);let bn=O(!1),xn=O(!1),Sn=M(()=>!1),Cn={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},wn=M(()=>(Fe.value??[]).filter(e=>!e.is_current).length),Tn=M(()=>!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 h(Q.value.secret)}function Dn(e){return e===`tv`?Ne:e===`native`?Ee:Ae}async function On(e){_n.value=e;try{await Re({id:e})}catch(e){V.add({severity:`error`,detail:e,life:3e3})}finally{_n.value=null}}function kn(){F.openComponentDialog(Ve,{data:{title:H(`views.settings.api_tokens.create`),confirmText:H(`views.settings.api_tokens.create_confirm`),contentProps:{existingNames:(Be.value??[]).map(e=>e.name)}},onConfirm:async e=>{if(e)try{An((await Ue({name:e})).token)}catch(e){V.add({severity:`error`,detail:e,life:3e3})}}})}function An(e){F.openComponentDialog(Le,{data:{title:H(`views.settings.api_tokens.created_title`),confirmText:H(`components.form.button.close`),hideCancelButton:!0,contentProps:{token:e}}})}function jn(e){F.openTextDialog({data:{title:H(`views.settings.api_tokens.revoke_title`),contentText:H(`views.settings.api_tokens.revoke_confirm`,{name:e.name}),confirmText:H(`views.settings.api_tokens.revoke`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{yn.value=e.id;try{await Ke({id:e.id})}catch(e){V.add({severity:`error`,detail:e,life:3e3})}finally{yn.value=null}}})}function Mn(){F.openTextDialog({data:{title:H(`views.settings.active_sessions.revoke_others_title`),contentText:H(`views.settings.active_sessions.revoke_others_confirm`,{count:wn.value}),confirmText:H(`views.settings.active_sessions.revoke`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{vn.value=!0;try{await ze()}catch(e){V.add({severity:`error`,detail:e,life:3e3})}finally{vn.value=!1}}})}async function Nn(){try{Q.value=await ke()}catch(e){V.add({severity:`error`,detail:e,life:3e3})}}function Pn(){Q.value=null,$.value=``}async function Fn(){try{let e=await Me({code:$.value});Q.value=null,$.value=``,V.add({severity:`success`,detail:H(`views.settings.security.2fa_enabled_success`),life:3e3}),Rn(e.backupCodes)}catch(e){V.add({severity:`error`,detail:e,life:3e3})}}function In(){F.openComponentDialog(Ye,{data:{title:H(`views.settings.security.disable_2fa`),confirmText:H(`views.settings.security.disable_2fa`),confirmButtonProps:{severity:`danger`},contentProps:{}}})}function Ln(){F.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){F.openComponentDialog(We,{data:{title:H(`views.settings.security.backup_codes`),confirmText:H(`components.form.button.close`),hideCancelButton:!0,contentProps:{backupCodes:e}}})}async function zn(e){let t=e.target?.files;q.value=t?.[0],J.value=await m(e)??J.value}async function Bn(){X.value=!0;try{let e;q.value&&(e=new FormData,e.append(`upload`,q.value));let t=G.value?.username!==Y.value;if(t)await W.updateUser({username:Y.value},e);else if(e)await W.updateUser(void 0,e);else{X.value=!1;return}V.add({severity:`success`,detail:H(`components.toast.profile_updated`),life:3e3}),q.value=void 0,t&&W.logout()}catch{}X.value=!1}async function Vn(e){Z.value=!0;try{await W.updateUser({password:e.password,passwordConfirm:e.passwordConfirm}),V.add({severity:`success`,detail:H(`components.toast.password_updated`),life:3e3}),Ze.value?.resetForm(),W.logout()}catch(e){V.add({severity:`error`,detail:e,life:3e3})}Z.value=!1}async function Hn(){}async function Un(e){if(e!==bn.value){if(e){V.add({severity:`info`,detail:H(`views.settings.biometric.enable_hint`),life:3e3});return}xn.value=!0;try{await ne(c()),bn.value=!1,V.add({severity:`success`,detail:H(`views.settings.biometric.cleared`),life:3e3})}finally{xn.value=!1}}}return se(()=>{Hn()}),_({formRef:Xe}),(i,o)=>{let s=te,c=e,l=he,d=r,p=be,m=t,h=n,ne=Ce,_=f,x=ye,se=xe,S=ee,T=Te,O=fe,ue=ge,M=_e,N=me,F=u,R=Se,z=ve,pe=we,B=a;return b(),D(`div`,null,[E(`div`,$e,[L(U)?(b(),A(L(ae),{key:0,ref_key:`formRef`,ref:Xe,"validation-schema":L(Je),class:`flex flex-col w-full gap-6`},{default:g(()=>[E(`div`,et,[E(`div`,tt,[E(`label`,nt,[k(s,{src:L(J),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),E(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:o[0]||=e=>zn(e)},null,32)])]),E(`span`,rt,v(i.$t(`views.settings.profile`)),1),k(d,{class:`cui-card`},{content:g(()=>[E(`div`,it,[k(L(C),{"model-value":L(G)?.username,name:`username`,as:`div`,class:`flex flex-col field-gap`},{default:g(({field:e,errors:t})=>[E(`label`,at,v(i.$t(`components.form.label.username`)),1),k(l,null,{default:g(()=>[k(c,y(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`])]),_:2},1024),k(w,{name:`fade`},{default:g(()=>[k(L(I),{name:`username`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`])])]),_:1})]),E(`div`,null,[E(`span`,ot,v(i.$t(`views.settings.password`)),1),k(d,{class:`cui-card`},{content:g(()=>[E(`div`,st,[k(L(C),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:g(({field:e,errors:t})=>[E(`label`,ct,v(i.$t(`components.form.label.new_password`)),1),k(l,null,{default:g(()=>[k(p,y({invalid:t.length>0},e,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),k(w,{name:`fade`},{default:g(()=>[k(L(I),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),k(L(C),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:g(({field:e,errors:t})=>[E(`label`,lt,v(i.$t(`components.form.label.new_password_confirm`)),1),k(l,null,{default:g(()=>[k(p,y({invalid:t.length>0},e,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),k(w,{name:`fade`},{default:g(()=>[k(L(I),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1})])]),_:1})])]),_:1},8,[`validation-schema`])):(b(),D(de,{key:1},[E(`div`,ut,[E(`div`,dt,[E(`label`,ft,[k(s,{src:L(J),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),E(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:o[1]||=e=>zn(e)},null,32)])]),E(`span`,pt,v(i.$t(`views.settings.profile`)),1),k(d,{class:`cui-card`},{content:g(()=>[E(`div`,mt,[E(`div`,ht,[E(`label`,gt,v(i.$t(`components.form.label.username`)),1),k(l,null,{default:g(()=>[k(c,{modelValue:L(Y),"onUpdate:modelValue":o[2]||=e=>j(Y)?Y.value=e:null,loading:L(X),type:`text`},null,8,[`modelValue`,`loading`])]),_:1})]),E(`div`,_t,[k(m,{loading:L(X),class:`cui-button-medium`,label:i.$t(`components.form.button.update_profile`),onClick:Bn},null,8,[`loading`,`label`])])])]),_:1})]),E(`div`,null,[E(`span`,vt,v(i.$t(`views.settings.password`)),1),k(d,{class:`cui-card`},{content:g(()=>[k(L(ae),{ref_key:`passwordFormRef`,ref:Ze,"validation-schema":L(qe),class:`flex flex-col gap-6`,onSubmit:o[3]||=e=>Vn(e)},{default:g(()=>[k(L(C),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:g(({field:e,errors:t})=>[E(`label`,yt,v(i.$t(`components.form.label.new_password`)),1),k(l,null,{default:g(()=>[k(p,y({invalid:t.length>0},e,{loading:L(Z),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),k(w,{name:`fade`},{default:g(()=>[k(L(I),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),k(L(C),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:g(({field:e,errors:t})=>[E(`label`,bt,v(i.$t(`components.form.label.new_password_confirm`)),1),k(l,null,{default:g(()=>[k(p,y({invalid:t.length>0},e,{loading:L(Z),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),k(w,{name:`fade`},{default:g(()=>[k(L(I),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1}),E(`div`,xt,[k(m,{type:`submit`,loading:L(Z),class:`cui-button-medium`,label:i.$t(`components.form.button.change_password`)},null,8,[`loading`,`label`])])]),_:1},8,[`validation-schema`])]),_:1})]),E(`div`,null,[E(`span`,St,v(i.$t(`views.settings.security.title`)),1),k(d,{class:`cui-card`},{content:g(()=>[L(Oe)?(b(),D(`div`,Ct,[k(h,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(b(),A(w,{key:1,name:`fade`,mode:`out-in`},{default:g(()=>[!L(K)?.enabled&&!L(Q)&&!L(je)?(b(),D(`div`,wt,[E(`div`,Tt,[E(`span`,Et,v(i.$t(`views.settings.security.2fa_title`)),1),E(`span`,Dt,v(i.$t(`views.settings.security.2fa_description`)),1)]),k(m,{class:`cui-button-medium ml-auto`,label:i.$t(`views.settings.security.setup_2fa`),onClick:Nn},null,8,[`label`])])):!L(K)?.enabled&&L(je)?(b(),D(`div`,Ot,[k(h,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`}),E(`span`,kt,v(i.$t(`views.settings.security.generating_qr`)),1)])):!L(K)?.enabled&&L(Q)?(b(),D(`div`,At,[E(`div`,jt,[k(ne,{value:L(Tn),size:160,"logo-size":36},null,8,[`value`]),E(`p`,Mt,v(i.$t(`views.settings.security.scan_qr`)),1)]),E(`div`,Nt,[E(`div`,Pt,[E(`label`,Ft,v(i.$t(`views.settings.security.manual_entry`)),1),k(l,null,{default:g(()=>[k(c,{"model-value":L(Q)?.secret,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),k(x,null,{default:g(()=>[k(_,{"action-text":i.$t(`components.form.tooltip.copied`),icon:L(ie),"button-props":{severity:`secondary`,text:!0},onAction:En},null,8,[`action-text`,`icon`])]),_:1})]),_:1})]),E(`div`,It,[E(`label`,Lt,v(i.$t(`views.settings.security.enter_code`)),1),k(se,{modelValue:L($),"onUpdate:modelValue":o[4]||=e=>j($)?$.value=e:null,length:6,"integer-only":``},null,8,[`modelValue`])]),E(`div`,Rt,[k(m,{severity:`secondary`,class:`cui-button-medium`,label:i.$t(`components.form.button.cancel`),onClick:Pn},null,8,[`label`]),k(m,{class:`cui-button-medium`,label:i.$t(`views.settings.security.enable_2fa`),loading:L(Pe),disabled:L($).length<6,onClick:Fn},null,8,[`label`,`loading`,`disabled`])])])])):(b(),D(`div`,zt,[E(`div`,Bt,[E(`div`,Vt,[k(S,{class:`w-5 h-5`})]),E(`div`,Ht,[E(`span`,Ut,v(i.$t(`views.settings.security.2fa_enabled`)),1)])]),L(K)?.backupCodesCount===void 0?P(``,!0):(b(),D(`div`,Wt,[k(T,{class:`w-4 h-4`}),E(`span`,null,v(i.$t(`views.settings.security.backup_codes_remaining`,{count:L(K).backupCodesCount})),1)])),E(`div`,Gt,[k(m,{severity:`secondary`,class:`cui-button-medium`,label:i.$t(`views.settings.security.regenerate_backup`),onClick:Ln},null,8,[`label`]),k(m,{severity:`danger`,class:`cui-button-medium`,label:i.$t(`views.settings.security.disable_2fa`),onClick:In},null,8,[`label`])])]))]),_:1}))]),_:1})]),L(Sn)?(b(),D(`div`,Kt,[E(`span`,qt,v(i.$t(`views.settings.biometric.title`)),1),k(d,{class:`cui-card`},{content:g(()=>[E(`div`,Jt,[k(O,{class:`shrink-0 w-6 h-6 text-color`}),E(`div`,Yt,[E(`span`,Xt,v(i.$t(`views.settings.biometric.label`)),1),k(ue,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:g(()=>[le(v(i.$t(`views.settings.biometric.description`)),1)]),_:1})]),k(M,{"model-value":L(bn),loading:L(xn),class:`ml-auto shrink-0`,"onUpdate:modelValue":Un},null,8,[`model-value`,`loading`])])]),_:1})])):P(``,!0),E(`div`,null,[E(`span`,Zt,v(i.$t(`views.settings.api_tokens.title`)),1),k(d,{class:`cui-card`},{content:g(()=>[E(`div`,Qt,[E(`span`,$t,v(i.$t(`views.settings.api_tokens.info`)),1),k(R,{value:L(Be)??[],"data-key":`id`,loading:L(He),pt:Cn,"striped-rows":``,scrollable:``},{loading:g(()=>[k(h,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:g(()=>[E(`span`,en,v(i.$t(`views.settings.api_tokens.empty`)),1)]),default:g(()=>[k(N,{field:`name`,header:i.$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:g(({data:e})=>[E(`div`,tn,[k(L(De),{class:`cui-session-icon`}),E(`div`,nn,[E(`span`,rn,v(e.name),1),E(`span`,an,v(e.token_hint),1)])])]),_:1},8,[`header`]),k(N,{field:`last_seen_at`,header:i.$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:g(({data:e})=>[E(`span`,on,v(e.last_seen_at>e.created_at?L(re)(e.last_seen_at):i.$t(`views.settings.api_tokens.never`)),1)]),_:1},8,[`header`]),k(N,{field:`action`,"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7 text-right`},{body:g(({data:e})=>[ce((b(),A(m,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:L(yn)===e.id,onClick:t=>jn(e)},{icon:g(()=>[k(F,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[B,{value:i.$t(`views.settings.api_tokens.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),E(`div`,sn,[k(m,{loading:L(Ge),class:`cui-button-medium mr-4 md:mr-0`,label:i.$t(`views.settings.api_tokens.create`),onClick:kn},null,8,[`loading`,`label`])])])]),_:1})]),E(`div`,null,[E(`span`,cn,v(i.$t(`views.settings.active_sessions.title`)),1),k(d,{class:`cui-card`},{content:g(()=>[E(`div`,ln,[k(R,{value:L(Fe)??[],"data-key":`id`,loading:L(Ie),pt:Cn,"striped-rows":``,scrollable:``},{loading:g(()=>[k(h,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:g(()=>[E(`span`,un,v(i.$t(`views.settings.active_sessions.empty`)),1)]),default:g(()=>[k(N,{field:`device`,header:i.$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:g(({data:e})=>[E(`div`,dn,[(b(),A(oe(Dn(e.device.kind)),{class:`cui-session-icon`})),E(`div`,fn,[E(`div`,pn,[E(`span`,mn,v(e.device.name),1),e.is_current?(b(),A(z,{key:0,severity:`success`,value:i.$t(`views.settings.active_sessions.this_device`),class:`cui-session-tag`},null,8,[`value`])):P(``,!0)]),E(`span`,hn,v(e.device.ip||`—`),1)])])]),_:1},8,[`header`]),k(N,{field:`action`,"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7 text-right`},{body:g(({data:e})=>[e.is_current?P(``,!0):ce((b(),A(m,{key:0,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:L(_n)===e.id,onClick:t=>On(e.id)},{icon:g(()=>[k(pe,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[B,{value:i.$t(`views.settings.active_sessions.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),L(wn)>0?(b(),D(`div`,gn,[k(m,{loading:L(vn),class:`cui-button-medium mr-4 md:mr-0`,label:i.$t(`views.settings.active_sessions.revoke_all_others`,{count:L(wn)}),onClick:Mn},null,8,[`loading`,`label`])])):P(``,!0)])]),_:1})])],64))])])}}}),[[`__scopeId`,`data-v-f85a1758`]]);export{Y as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./SettingsAccount-8OZJLQi-.js";export{e as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./SettingsAppearance-EvPWgF4c.js";export{e as default};
@@ -0,0 +1 @@
1
+ import{at as e,hr as t,ya as n}from"./vendor-cameraui-K1Nw4PvF.js";import{Fr as r,Jn as i,Tn as ee,qn as a,v as o,y as s}from"./api-D1iULsSy.js";import{$n as c,Cr as l,Fn as te,In as u,Rn as ne,cn as d,dn as f,dr as p,gn as m,hn as h,or as g,rn as re,sn as _,un as v,vn as y,yr as b}from"./vendor-Df81FCJz.js";import{p as x}from"./vendor-core-CJdfpB0I.js";import{H as ie,N as ae,V as oe}from"./vendor-primevue-DoA2Rwcb.js";import{n as se,r as ce}from"./useNavLayout-6zM1Y-7B.js";import{n as le}from"./theme-BOppzzar.js";var S={class:`flex flex-col w-full gap-6`},C={key:0},w={class:`card-title`},T={class:`flex flex-col gap-6`},E={class:`flex flex-col field-gap`},D={class:`cui-label`},O={class:`w-full flex flex-col gap-2`},k={class:`flex flex-col field-gap cui-toggle-switch`},A={class:`flex items-center gap-4`},j={class:`flex flex-col field-switch-gap`},M={class:`cui-label-switch`},N={key:1},P={class:`card-title`},F={class:`flex flex-col gap-6`},I={class:`flex flex-col field-gap`},L={class:`cui-label`},R={key:2},z={class:`card-title`},B={class:`flex flex-col gap-6`},V={class:`flex flex-col field-gap`},H={class:`cui-label`},U={key:0,class:`flex flex-col field-gap`},W={class:`cui-label`},ue={class:`flex flex-col field-gap`},de={class:`cui-label`},fe={class:`w-full flex flex-col gap-2`},pe={class:`flex flex-col field-gap cui-toggle-switch`},me={class:`flex items-center gap-4`},he={class:`flex flex-col field-switch-gap`},ge={class:`cui-label-switch`},_e={key:3},ve={class:`card-title`},ye={class:`w-full flex flex-col gap-2`},be={class:`flex flex-col field-gap cui-toggle-switch`},xe={class:`flex items-center gap-4`},Se={class:`flex flex-col field-switch-gap`},Ce={class:`cui-label-switch`},we={class:`flex items-center gap-4`},Te={class:`flex flex-col field-switch-gap`},Ee={class:`cui-label-switch`},De={class:`card-title`},Oe={class:`w-full flex flex-col gap-2`},ke={class:`flex flex-col field-gap cui-toggle-switch`},Ae={class:`flex items-center gap-4`},je={class:`flex flex-col field-switch-gap`},Me={class:`cui-label-switch`},Ne={class:`flex flex-col field-gap cui-toggle-switch`},Pe={class:`flex items-center gap-4`},Fe={class:`flex flex-col field-switch-gap`},Ie={class:`cui-label-switch`},G=y({__name:`SettingsAppearance`,props:{compact:{type:Boolean,default:!1}},setup(y){let{t:G}=t(),{settingsInNav:K,isCollapsible:Le,setCollapsible:Re,setSettingsInNav:ze}=ce(),Be=o(),{language:q,languageOptions:Ve}=x(Be),He=le(),{colors:Ue,theme:J,autoMode:Y}=x(He),We=i(),{uiSettings:X}=x(We),Z=p(n.isRecording()),Q=p(n.isDebug()),$=[5,10,15,25,50,100],Ge=_(()=>[...se,...K.value?[`settings`]:[]]),Ke=_(()=>s().map(e=>({label:G(`navigation.${e.meta.name}`),value:e.path}))),qe=_(()=>a.map(e=>({label:G(`navigation.${e}`),value:e}))),Je=n.onChange(()=>{Z.value=n.isRecording(),Q.value=n.isDebug()});function Ye(e){n.setRecording(e),e||n.clear()}function Xe(e){n.setDebug(e)}return te(Je),(t,n)=>{let i=ie,a=ae,o=oe,s=e;return u(),f(`div`,null,[d(`div`,S,[b(r)()?v(``,!0):(u(),f(`div`,C,[d(`span`,w,l(t.$t(`views.settings.theme`)),1),m(s,{class:`cui-card`},{content:c(()=>[d(`div`,T,[d(`div`,E,[d(`label`,D,l(t.$t(`components.form.label.theme`)),1),m(i,{modelValue:b(J),"onUpdate:modelValue":n[0]||=e=>g(J)?J.value=e:null,options:b(Ue),disabled:b(Y)},null,8,[`modelValue`,`options`,`disabled`])]),d(`div`,O,[d(`div`,k,[d(`div`,A,[d(`div`,j,[d(`label`,M,l(t.$t(`components.form.label.system_preference`)),1),m(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[h(l(t.$t(`components.form.hint.system_preference`)),1)]),_:1})]),m(o,{modelValue:b(Y),"onUpdate:modelValue":n[1]||=e=>g(Y)?Y.value=e:null,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})])),b(r)()?v(``,!0):(u(),f(`div`,N,[d(`span`,P,l(t.$t(`views.settings.locale`)),1),m(s,{class:`cui-card`},{content:c(()=>[d(`div`,F,[d(`div`,I,[d(`label`,L,l(t.$t(`components.form.label.language`)),1),m(i,{modelValue:b(q),"onUpdate:modelValue":n[2]||=e=>g(q)?q.value=e:null,options:b(Ve),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`])])])]),_:1})])),y.compact?v(``,!0):(u(),f(`div`,R,[d(`span`,z,l(t.$t(`views.settings.interface`)),1),m(s,{class:`cui-card`},{content:c(()=>[d(`div`,B,[d(`div`,V,[d(`label`,H,l(t.$t(`components.form.label.default_landing_page`)),1),m(i,{modelValue:b(X).interface.landingPage,"onUpdate:modelValue":n[3]||=e=>b(X).interface.landingPage=e,options:b(Ke),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),m(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[h(l(t.$t(`components.form.hint.default_landing_page`)),1)]),_:1})]),(`hasPermission`in t?t.hasPermission:b(ee))(void 0,`admin`)?(u(),f(`div`,U,[d(`label`,W,l(t.$t(`components.form.label.default_settings_page`)),1),m(i,{modelValue:b(X).interface.selectedSettingsView,"onUpdate:modelValue":n[4]||=e=>b(X).interface.selectedSettingsView=e,options:b(qe),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),m(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[h(l(t.$t(`components.form.hint.default_settings_page`)),1)]),_:1})])):v(``,!0),d(`div`,ue,[d(`label`,de,l(t.$t(`components.form.label.table_rows`)),1),m(i,{modelValue:b(X).interface.tableRows,"onUpdate:modelValue":n[5]||=e=>b(X).interface.tableRows=e,options:$},null,8,[`modelValue`]),m(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[h(l(t.$t(`components.form.hint.table_rows`)),1)]),_:1})]),d(`div`,fe,[d(`div`,pe,[d(`div`,me,[d(`div`,he,[d(`label`,ge,l(t.$t(`components.form.label.navbar_stay_collapsed`)),1),m(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[h(l(t.$t(`components.form.hint.navbar_stay_collapsed`)),1)]),_:1})]),m(o,{modelValue:b(X).interface.navbarStayCollapsed,"onUpdate:modelValue":n[6]||=e=>b(X).interface.navbarStayCollapsed=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})])),y.compact?v(``,!0):(u(),f(`div`,_e,[d(`span`,ve,l(t.$t(`views.settings.navigation`)),1),m(s,{class:`cui-card`},{content:c(()=>[d(`div`,ye,[d(`div`,be,[d(`div`,xe,[d(`div`,Se,[d(`label`,Ce,l(t.$t(`components.form.label.nav_settings_in_nav`)),1),m(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[h(l(t.$t(`components.form.hint.nav_settings_in_nav`)),1)]),_:1})]),m(o,{"model-value":b(K),class:`ml-auto shrink-0`,"onUpdate:modelValue":n[7]||=e=>b(ze)(e)},null,8,[`model-value`])])]),(u(!0),f(re,null,ne(b(Ge),e=>(u(),f(`div`,{key:e,class:`flex flex-col field-gap cui-toggle-switch`},[d(`div`,we,[d(`div`,Te,[d(`label`,Ee,l(t.$t(`components.form.label.nav_group_collapsible`,{group:t.$t(`navigation.group_${e}`)})),1),m(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[h(l(t.$t(`components.form.hint.nav_group_collapsible`,{group:t.$t(`navigation.group_${e}`)})),1)]),_:2},1024)]),m(o,{"model-value":b(Le)(e),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>b(Re)(e,t)},null,8,[`model-value`,`onUpdate:modelValue`])])]))),128))])]),_:1})])),d(`div`,null,[d(`span`,De,l(t.$t(`views.settings.debugging`)),1),m(s,{class:`cui-card`},{content:c(()=>[d(`div`,Oe,[d(`div`,ke,[d(`div`,Ae,[d(`div`,je,[d(`label`,Me,l(t.$t(`components.form.label.debug_verbose`)),1),m(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[h(l(t.$t(`components.form.hint.debug_verbose`)),1)]),_:1})]),m(o,{"model-value":b(Q),class:`ml-auto shrink-0`,"onUpdate:modelValue":Xe},null,8,[`model-value`])])]),d(`div`,Ne,[d(`div`,Pe,[d(`div`,Fe,[d(`label`,Ie,l(t.$t(`components.form.label.record_logs`)),1),m(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[h(l(t.$t(`components.form.hint.record_logs`)),1)]),_:1})]),m(o,{"model-value":b(Z),class:`ml-auto shrink-0`,"onUpdate:modelValue":Ye},null,8,[`model-value`])])])])]),_:1})])])])}}});export{G as t};
@@ -0,0 +1 @@
1
+ import{J as e,Xt as t,Yt as n,at as r,hr as i,nn as a}from"./vendor-cameraui-K1Nw4PvF.js";import{Br as o,In as s,R as ee,Zr as c,ct as te,dn as l,i as u,m as d,mn as f,o as p}from"./api-D1iULsSy.js";import{$n as m,An as ne,Bn as re,Cr as h,In as g,Jn as _,Rn as v,Xn as y,br as b,cn as x,dn as S,dr as C,er as w,gn as T,hn as E,hr as D,ln as O,or as k,rn as A,sn as j,sr as M,un as N,vn as P,yr as F}from"./vendor-Df81FCJz.js";import{q as I}from"./types-CeruGCb8.js";import{C as L,F as R,H as ie,I as ae,M as oe,N as se,P as ce,R as le,T as ue,V as de,a as fe,f as z,i as B,j as pe,l as me,s as he,v as ge,z as _e}from"./vendor-primevue-DoA2Rwcb.js";import{t as ve}from"./chevron-down-CxK4Sfjs.js";import{t as ye}from"./assistant-7hqP6OpA.js";import{a as V,d as be,i as xe,n as Se,o as H,r as Ce,s as we,t as Te}from"./assistantModels-D3ncWWu0.js";import{t as Ee}from"./pencil-outline-D-GmPf8M.js";import{t as De}from"./content-copy-BcYlfuFc.js";import{t as Oe}from"./brain-uZ03n3LW.js";import{t as ke}from"./plus-BJb7U4bN.js";import{t as Ae}from"./restore-xRBt3Grb.js";import{t as je}from"./CuiDataTable-DfjXa0C1.js";import{t as Me}from"./dots-vertical-Kby1GY8_.js";import{t as U}from"./pause-DHqHYA3V.js";var W={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function G(e,t){return g(),S(`svg`,W,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`m22.61 19l-9.08-9.09c.93-2.34.47-5.1-1.44-7C9.79.61 6.21.4 3.66 2.26L7.5 6.11L6.08 7.5L2.25 3.69C.39 6.23.6 9.82 2.9 12.11c1.86 1.86 4.57 2.35 6.89 1.48l9.11 9.11c.39.39 1.02.39 1.41 0l2.3-2.3c.39-.4.39-1.01 0-1.4m-3 1.59l-9.46-9.46c-.61.45-1.29.72-2 .82c-1.36.2-2.79-.21-3.83-1.25C3.37 9.76 2.93 8.5 3 7.26l3.09 3.09l4.24-4.24L7.24 3c1.26-.05 2.49.39 3.44 1.33a4.47 4.47 0 0 1 1.24 3.96a4.35 4.35 0 0 1-.88 1.96l9.46 9.45z`},null,-1)]])}var Ne=M({name:`mdi-wrench-outline`,render:G}),Pe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Fe(e,t){return g(),S(`svg`,Pe,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`m12 15.39l-3.76 2.27l.99-4.28l-3.32-2.88l4.38-.37L12 6.09l1.71 4.04l4.38.37l-3.32 2.88l.99 4.28M22 9.24l-7.19-.61L12 2L9.19 8.63L2 9.24l5.45 4.73L5.82 21L12 17.27L18.18 21l-1.64-7.03z`},null,-1)]])}var Ie=M({name:`mdi-star-outline`,render:Fe}),K={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function q(e,t){return g(),S(`svg`,K,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M11 9.47V11h3.76L13 14.53V13H9.24zM13 1L6 15h5v8l7-14h-5z`},null,-1)]])}var Le=M({name:`mdi-lightning-bolt-outline`,render:q}),Re={class:`flex w-full flex-col gap-6`},ze={class:`flex flex-col field-gap`},Be={for:`assistantModelProvider`,class:`cui-label`},Ve={key:0,class:`flex flex-col field-gap`},He={for:`assistantModelBaseUrl`,class:`cui-label`},Ue={key:1,class:`flex flex-col field-gap`},J={for:`assistantModelKey`,class:`cui-label`},Y={key:2,class:`flex flex-col field-gap`},X={for:`assistantModelPluginModel`,class:`cui-label`},We={key:3,class:`flex flex-col field-gap`},Z={for:`assistantModelModel`,class:`cui-label`},Ge={key:4,class:`flex flex-col field-gap`},Ke={for:`assistantModelContext`,class:`cui-label`},qe={class:`flex flex-col field-gap`},Q={for:`assistantModelName`,class:`cui-label`},Je={class:`flex items-center gap-4 cui-toggle-switch`},Ye={class:`flex flex-col field-switch-gap`},Xe={for:`assistantModelUsers`,class:`cui-label-switch`},Ze={class:`flex items-center gap-4 cui-toggle-switch`},$={class:`flex flex-col field-switch-gap`},Qe={for:`assistantModelRouting`,class:`cui-label-switch`},$e={key:5,class:`flex items-center gap-4 cui-toggle-switch`},et={class:`flex flex-col field-switch-gap`},tt={for:`assistantModelImages`,class:`cui-label-switch`},nt=P({__name:`AssistantModel`,props:{entry:{},models:{},modelProviders:{}},setup(t,{expose:n}){let r=new ye,a=t,{t:s,locale:ee}=i(),c=o(),te=r.listAssistantModelsMutation(),l=C(a.entry?.provider??`ollama`),u=C(a.entry?.baseURL??``),d=C(``),f=C(a.entry?.model??``),p=C(a.entry&&a.entry.name!==a.entry.model?a.entry.name:``),re=C(a.entry?.sendImages??!1),_=C(a.entry?.contextTokens??null),v=C(a.entry?.toolRouting??!1),b=C(a.entry?.userAccess!==!1),w=C(`new`),D=C([]),M=C([]),P=C(!1),I=j(()=>[...Ce.map(e=>({label:e.label,value:e.value})),...a.modelProviders.map(e=>({label:s(`views.settings.assistant_provider_plugin`,{name:e.pluginName}),value:e.provider}))]),L=j(()=>a.modelProviders.find(e=>e.provider===l.value)),R=j(()=>L.value?.models??[]),ae=j(()=>L.value?.status),oe=j(()=>{let e=ae.value?.ready===!1?ae.value.progress:void 0;return e===void 0?void 0:Math.round(e*100)}),ce=j(()=>{if(ae.value?.ready===!1)return ae.value.message||s(`views.settings.assistant_model_plugin_loading`);if(!R.value.length)return s(`views.settings.assistant_model_plugin_none`);let e=R.value.find(e=>e.id===f.value);if(!e)return s(`views.settings.assistant_model_plugin_info`);let t=s(`views.settings.assistant_model_context`,{tokens:e.contextTokens.toLocaleString(ee.value)});return e.note?`${e.note} ${t}`:t}),le=j(()=>Se.includes(l.value)&&!L.value),fe=j(()=>l.value===`ollama`||l.value===`openai-compatible`),B=j(()=>a.entry?.apiKeySet===!0&&a.entry.provider===l.value),pe=j(()=>a.models.filter(e=>e._id!==a.entry?._id&&e.provider===l.value&&e.apiKeySet)),me=j(()=>[{label:B.value?s(`views.settings.assistant_api_key_stored`):s(`views.settings.assistant_api_key_new`),value:`new`},...pe.value.map(e=>({label:s(`views.settings.assistant_api_key_from`,{name:e.name}),value:e._id}))]),_e=j(()=>le.value&&w.value===`new`&&!d.value&&!B.value);function ve(){return B.value?`new`:pe.value[0]?._id??`new`}function V(){let e=w.value===`new`?d.value?{apiKey:d.value}:a.entry&&!B.value?{apiKey:null}:{}:{copyKeyFrom:w.value};return{...a.entry?{id:a.entry._id,retest:!0,sendImages:re.value}:{},...e,name:p.value,provider:l.value,baseURL:fe.value&&u.value?u.value:null,model:f.value.trim(),userAccess:b.value,contextTokens:L.value?null:_.value??null,toolRouting:v.value}}function be(){u.value=``,f.value=``,D.value=[],M.value=[],w.value=ve()}function xe(e){let t=e.query.toLowerCase();M.value=D.value.filter(e=>e.toLowerCase().includes(t))}async function H(){let e=await te.mutateAsync(V());if(e.error){c.add({severity:`warn`,detail:s(`views.settings.assistant_models_failed`,{message:e.error}),life:5e3});return}D.value=e.models,M.value=e.models}return y(()=>R.value.find(e=>e.id===f.value),e=>{e&&a.entry?.toolRouting==null&&(v.value=e.toolRouting===!0)},{immediate:!0}),ne(()=>{w.value=ve()}),n({onConfirm:async()=>!f.value.trim()||_e.value?(P.value=!0,null):V()}),(n,r)=>{let i=ie,a=se,o=e,s=he,ee=z,c=ue,ne=ge,y=de;return g(),S(`div`,Re,[x(`div`,ze,[x(`label`,Be,h(n.$t(`views.settings.assistant_provider_label`)),1),T(i,{modelValue:F(l),"onUpdate:modelValue":r[0]||=e=>k(l)?l.value=e:null,"input-id":`assistantModelProvider`,options:F(I),"option-label":`label`,"option-value":`value`,fluid:``,onChange:be},null,8,[`modelValue`,`options`]),T(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(n.$t(`views.settings.assistant_provider_hint`)),1)]),_:1})]),F(fe)?(g(),S(`div`,Ve,[x(`label`,He,h(n.$t(`views.settings.assistant_base_url_label`)),1),T(o,{id:`assistantModelBaseUrl`,modelValue:F(u),"onUpdate:modelValue":r[1]||=e=>k(u)?u.value=e:null,modelModifiers:{trim:!0},placeholder:F(Te)[F(l)],fluid:``,autocomplete:`off`},null,8,[`modelValue`,`placeholder`])])):N(``,!0),F(le)||F(l)===`openai-compatible`?(g(),S(`div`,Ue,[x(`label`,J,h(n.$t(`views.settings.assistant_api_key_label`)),1),F(pe).length?(g(),O(i,{key:0,modelValue:F(w),"onUpdate:modelValue":r[2]||=e=>k(w)?w.value=e:null,options:F(me),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`])):N(``,!0),F(w)===F(`new`)?(g(),S(A,{key:1},[T(s,{modelValue:F(d),"onUpdate:modelValue":r[3]||=e=>k(d)?d.value=e:null,"input-id":`assistantModelKey`,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,invalid:F(P)&&F(_e),placeholder:F(B)?`••••••••`:``},null,8,[`modelValue`,`invalid`,`placeholder`]),F(B)?(g(),O(a,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(n.$t(`views.settings.assistant_api_key_keep_hint`)),1)]),_:1})):F(le)?N(``,!0):(g(),O(a,{key:1,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(n.$t(`views.settings.assistant_api_key_optional`)),1)]),_:1}))],64)):N(``,!0)])):N(``,!0),F(L)?(g(),S(`div`,Y,[x(`label`,X,h(n.$t(`views.settings.assistant_model_label`)),1),F(R).length?(g(),O(i,{key:0,modelValue:F(f),"onUpdate:modelValue":r[4]||=e=>k(f)?f.value=e:null,"input-id":`assistantModelPluginModel`,options:F(R),"option-label":`name`,"option-value":`id`,fluid:``,invalid:F(P)&&!F(f).trim()},null,8,[`modelValue`,`options`,`invalid`])):F(oe)===void 0?N(``,!0):(g(),O(ee,{key:1,value:F(oe),"show-value":!1,class:`!h-1`},null,8,[`value`])),T(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(F(ce)),1)]),_:1})])):(g(),S(`div`,We,[x(`label`,Z,h(n.$t(`views.settings.assistant_model_label`)),1),T(c,{modelValue:F(f),"onUpdate:modelValue":r[5]||=e=>k(f)?f.value=e:null,"input-id":`assistantModelModel`,suggestions:F(M),loading:F(te).isPending.value,invalid:F(P)&&!F(f).trim(),dropdown:``,fluid:``,placeholder:n.$t(`views.settings.assistant_model_placeholder`),onComplete:xe,onDropdownClick:H},null,8,[`modelValue`,`suggestions`,`loading`,`invalid`,`placeholder`]),T(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(n.$t(`views.settings.assistant_model_info`)),1)]),_:1})])),F(L)?N(``,!0):(g(),S(`div`,Ge,[x(`label`,Ke,h(n.$t(`views.settings.assistant_model_context_label`)),1),T(ne,{modelValue:F(_),"onUpdate:modelValue":r[6]||=e=>k(_)?_.value=e:null,"input-id":`assistantModelContext`,min:1e3,max:4e5,step:1e3,"use-grouping":!1,placeholder:n.$t(`views.settings.assistant_model_context_placeholder`),fluid:``},null,8,[`modelValue`,`placeholder`]),T(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(n.$t(`views.settings.assistant_model_context_info`)),1)]),_:1})])),x(`div`,qe,[x(`label`,Q,h(n.$t(`views.settings.assistant_model_name_label`)),1),T(o,{id:`assistantModelName`,modelValue:F(p),"onUpdate:modelValue":r[7]||=e=>k(p)?p.value=e:null,modelModifiers:{trim:!0},placeholder:F(f).trim()||n.$t(`views.settings.assistant_model_name_placeholder`),maxlength:`40`,fluid:``},null,8,[`modelValue`,`placeholder`])]),x(`div`,Je,[x(`div`,Ye,[x(`label`,Xe,h(n.$t(`views.settings.assistant_model_users`)),1),T(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[E(h(n.$t(`views.settings.assistant_model_users_info`)),1)]),_:1})]),T(y,{modelValue:F(b),"onUpdate:modelValue":r[8]||=e=>k(b)?b.value=e:null,"input-id":`assistantModelUsers`,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),x(`div`,Ze,[x(`div`,$,[x(`label`,Qe,h(n.$t(`views.settings.assistant_model_routing`)),1),T(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[E(h(n.$t(`views.settings.assistant_model_routing_info`)),1)]),_:1})]),T(y,{modelValue:F(v),"onUpdate:modelValue":r[9]||=e=>k(v)?v.value=e:null,"input-id":`assistantModelRouting`,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),t.entry?(g(),S(`div`,$e,[x(`div`,et,[x(`label`,tt,h(n.$t(`views.settings.assistant_send_images`)),1),T(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[E(h(t.entry.capabilities?.vision===!1?n.$t(`views.settings.assistant_send_images_no_vision`):n.$t(`views.settings.assistant_send_images_info`)),1)]),_:1})]),T(y,{modelValue:F(re),"onUpdate:modelValue":r[10]||=e=>k(re)?re.value=e:null,"input-id":`assistantModelImages`,class:`ml-auto shrink-0`},null,8,[`modelValue`])])):N(``,!0)])}}}),rt={class:`flex w-full flex-col field-gap`},it={for:`assistantScheduleModel`,class:`cui-label`},at=P({__name:`AssistantScheduleModel`,props:{models:{},modelId:{},fallback:{}},setup(e,{expose:t}){let n=e,r=C(n.models.some(e=>e._id===n.modelId)?n.modelId??null:null);return t({onConfirm:async()=>({modelId:r.value??null})}),(t,n)=>{let i=ie,a=se;return g(),S(`div`,rt,[x(`label`,it,h(t.$t(`views.settings.assistant_schedule_model_label`)),1),T(i,{modelValue:F(r),"onUpdate:modelValue":n[0]||=e=>k(r)?r.value=e:null,"input-id":`assistantScheduleModel`,options:e.models,"option-label":`name`,"option-value":`_id`,"show-clear":``,fluid:``,placeholder:e.fallback},null,8,[`modelValue`,`options`,`placeholder`]),T(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(t.$t(`views.settings.assistant_schedule_model_hint`)),1)]),_:1})])}}}),ot={class:`w-full h-full`},st={key:0,class:`w-full h-full flex items-center justify-center`},ct={key:1,class:`flex flex-col w-full gap-6`},lt={class:`card-title`},ut={class:`flex items-center gap-4`},dt={class:`flex flex-col field-switch-gap min-w-0`},ft={class:`text-sm font-bold text-color`},pt={class:`card-title`},mt={class:`flex flex-col gap-6`},ht={class:`flex items-center gap-4 cui-toggle-switch`},gt={class:`flex flex-col field-switch-gap`},_t={for:`enabled`,class:`cui-label-switch`},vt={key:0,class:`flex flex-col divide-y divide-(--border-color)`},yt={class:`flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-1`},bt={class:`max-w-full basis-full truncate font-medium text-color md:basis-auto`},xt={class:`order-3 mt-1 flex flex-wrap items-center gap-1.5 md:order-2 md:mt-0`},St={class:`order-2 basis-full truncate text-muted md:order-3`},Ct={key:0,class:`order-4 basis-full text-xs text-danger line-clamp-2`},wt={key:1,class:`order-4 basis-full text-xs text-muted line-clamp-2`},Tt={class:`hidden shrink-0 items-center gap-1 md:flex`},Et={class:`shrink-0 md:hidden`},Dt={key:1,class:`text-sm text-muted`},Ot={class:`flex`},kt={class:`card-title`},At={class:`flex flex-col gap-6`},jt={class:`flex min-w-0 items-center gap-2`},Mt=[`for`],Nt={key:1,class:`text-sm text-muted`},Pt={class:`flex`},Ft={class:`card-title`},It={class:`flex flex-col gap-6`},Lt={class:`flex items-center gap-4 cui-toggle-switch`},Rt={class:`flex flex-col field-switch-gap`},zt={for:`memoryEnabled`,class:`cui-label-switch`},Bt={class:`flex items-center gap-4 cui-toggle-switch`},Vt={class:`flex flex-col field-switch-gap`},Ht={for:`terminalEnabled`,class:`cui-label-switch`},Ut={class:`flex flex-col field-gap`},Wt={for:`language`,class:`cui-label`},Gt={class:`flex flex-col field-gap`},Kt={for:`reasoning`,class:`cui-label`},qt={class:`flex flex-col md:flex-row gap-6`},Jt={class:`flex flex-col field-gap flex-1`},Yt={for:`maxIterations`,class:`cui-label`},Xt={class:`flex flex-col field-gap flex-1`},Zt={for:`maxToolCalls`,class:`cui-label`},Qt={class:`flex flex-col field-gap`},$t={for:`contextTokens`,class:`cui-label`},en={class:`flex flex-col md:flex-row gap-4`},tn={class:`flex flex-col field-gap flex-1`},nn={for:`historyThreads`,class:`cui-label`},rn={class:`flex flex-col field-gap flex-1`},an={for:`historyImages`,class:`cui-label`},on={class:`flex flex-col field-gap`},sn={for:`systemPromptExtra`,class:`cui-label`},cn={class:`flex items-center gap-2`},ln={class:`card-title`},un={class:`flex flex-col gap-6`},dn={class:`flex flex-col gap-4`},fn={class:`flex items-center justify-between gap-4`},pn={class:`flex flex-col`},mn={class:`text-sm font-medium text-color`},hn={class:`text-xs text-muted`},gn={class:`flex items-center justify-between gap-4`},_n={class:`flex flex-col`},vn={class:`text-sm font-medium text-color`},yn={class:`text-xs text-muted`},bn={key:0,class:`flex flex-col gap-6`},xn={class:`flex flex-col field-gap`},Sn={for:`mcpEndpoint`,class:`cui-label`},Cn={class:`flex flex-col field-gap`},wn={for:`mcpClient`,class:`cui-label`},Tn={class:`flex`},En={class:`card-title`},Dn={class:`flex flex-col gap-6`},On=[`aria-expanded`,`onClick`],kn={class:`flex min-w-0 flex-1 flex-col gap-0.5`},An={class:`truncate text-sm font-medium text-color`},jn=[`inert`],Mn={class:`flex flex-col gap-4 px-4 pb-4`},Nn={class:`flex items-center gap-4 cui-toggle-switch`},Pn={class:`flex flex-col field-switch-gap`},Fn=[`for`],In={class:`flex flex-col md:flex-row gap-4`},Ln={class:`flex flex-col field-gap md:w-56`},Rn=[`for`],zn={class:`flex flex-col field-gap flex-1`},Bn=[`for`],Vn={class:`flex flex-col field-gap`},Hn=[`for`],Un={class:`flex items-center gap-4 cui-toggle-switch`},Wn={class:`flex flex-col field-switch-gap`},Gn=[`for`],Kn={class:`flex`},qn={class:`flex items-center gap-2`},Jn={class:`card-title`},Yn={class:`flex flex-col gap-6`},Xn={key:0,class:`flex flex-col divide-y divide-(--border-color)`},Zn={class:`max-w-full basis-full truncate font-medium text-color md:basis-auto`},Qn={class:`flex flex-wrap items-center gap-1.5`},$n={class:`basis-full text-muted line-clamp-2`},er={class:`basis-full text-xs text-muted`},tr={key:0},nr={key:1},rr={key:0,class:`basis-full text-xs text-danger line-clamp-2`},ir={class:`shrink-0`},ar={class:`flex flex-col md:flex-row gap-6`},or={class:`flex flex-col field-gap flex-1`},sr={for:`scheduleTitle`,class:`cui-label`},cr={class:`flex flex-col field-gap w-full md:w-52 shrink-0`},lr={for:`scheduleDeliver`,class:`cui-label`},ur={class:`flex flex-col field-gap`},dr={for:`schedulePrompt`,class:`cui-label`},fr={class:`flex flex-col md:flex-row gap-6`},pr={key:0,class:`flex flex-col field-gap flex-1`},mr={for:`scheduleProfile`,class:`cui-label`},hr={class:`flex flex-col field-gap flex-1`},gr={for:`scheduleModel`,class:`cui-label`},_r={class:`flex flex-col md:flex-row gap-6`},vr={class:`flex flex-col field-gap flex-1`},yr={for:`schedulePreset`,class:`cui-label`},br={key:0,class:`flex flex-col field-gap w-full md:w-40 shrink-0`},xr={for:`scheduleTime`,class:`cui-label`},Sr={key:1,class:`flex flex-col field-gap flex-1`},Cr={for:`scheduleCron`,class:`cui-label`},wr={class:`flex`},Tr={class:`card-title`},Er={class:`flex flex-col gap-3`},Dr={class:`text-sm text-muted`},Or={class:`truncate`},kr={class:`truncate`},Ar={class:`card-title`},jr={key:0,class:`text-sm text-muted`},Mr={key:1,class:`flex flex-col gap-6`},Nr={key:0,class:`mb-4 flex flex-col field-gap`},Pr=[`for`],Fr={class:`flex max-h-96 flex-col divide-y divide-(--border-color) overflow-y-auto pr-2`},Ir={class:`min-w-0 flex-1`},Lr={class:`flex flex-wrap items-center gap-2`},Rr={class:`font-medium text-color`},zr={class:`text-muted`},Br={key:0,class:`flex`},Vr=`none`,Hr=s(P({__name:`SettingsAssistant`,setup(s){let ne={icon:ee,iconProps:{class:`text-red-500`},labelProps:{class:`text-red-500`},buttonProps:{severity:`danger`}},M={memoryEnabled:!0,terminalEnabled:!1,language:null,reasoning:`default`,maxIterations:8,maxToolCalls:25,contextTokens:48e3,historyThreads:50,historyImages:24},P={columnHeaderContent:{class:`justify-end`}},ue={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},z=new ye,Se=o(),Te=l(),{t:W,locale:G}=i(),{data:Pe,isLoading:Fe}=z.usageAllQuery(),{data:K}=z.getAssistantInfoQuery(),q=z.patchAssistantInfoMutation(),{data:Re}=z.listProfilesQuery(),{data:ze}=z.listSchedulesQuery(),Be=z.createScheduleMutation(),Ve=z.patchScheduleMutation(),He=z.deleteScheduleMutation(),Ue=z.runScheduleMutation(),J=C(null),Y=C({title:``,prompt:``,preset:`daily`,time:`20:00`,cron:``,deliver:`push`,profileId:null,modelId:null}),X=C({}),We=C([]),Z=C([]),Ge=C(`claude-code`),Ke=C(`core`),qe=_(`rowMenuRef`),Q=j(()=>K.value?.settings.models??[]),Je=j(()=>K.value?V(K.value.settings):void 0),Ye=j(()=>[{label:W(`views.settings.assistant_plugin_no_access`),value:Vr},...Q.value.map(e=>({label:e.name,value:e._id}))]),Xe=j(()=>{let e=new Map;for(let t of K.value?.tools??[]){let n=t.source.kind===`plugin`?t.source.pluginId:t.source.kind===`external`?t.source.serverId:`core`,r=t.source.kind===`plugin`?t.source.pluginName:t.source.kind===`external`?t.source.serverName:`camera.ui`,i=e.get(n)??{key:n,label:r,serverId:t.source.kind===`external`?t.source.serverId:void 0,tools:[]};i.tools.push(t),e.set(n,i)}return Array.from(e.values())}),Ze=j(()=>Pe.value?.map(e=>({...e,key:`${e.userId}-${e.month}-${e.provider}-${e.model}`}))),$=j(()=>K.value?.status),Qe=j(()=>{let e=new Intl.DisplayNames([G.value],{type:`language`}),t=I.map(t=>({label:e.of(t)??t,value:t})).sort((e,t)=>e.label.localeCompare(t.label,G.value));return[{label:W(`views.settings.assistant_language_auto`),value:null},...t]}),$e=j(()=>[`default`,`off`,`low`,`high`].map(e=>({label:W(`views.settings.assistant_reasoning_${e}`),value:e}))),et=j(()=>new URL(`${c.defaults.baseURL??`/api`}/assistant/mcp`.replace(/\/{2,}/g,`/`),window.location.origin).toString()),tt=j(()=>[{label:`Claude Code`,value:`claude-code`},{label:`Cursor, Windsurf, VS Code`,value:`cursor`},{label:`Claude Desktop`,value:`claude-desktop`}]),rt=j(()=>{let e=et.value;return Ge.value===`claude-code`?`claude mcp add --transport http camera-ui ${e} --header "Authorization: Bearer <api token>"`:Ge.value===`cursor`?JSON.stringify({mcpServers:{"camera-ui":{url:e,headers:{Authorization:`Bearer <api token>`}}}},null,2):JSON.stringify({mcpServers:{"camera-ui":{command:`npx`,args:[`-y`,`mcp-remote`,e,`--header`,`Authorization: Bearer <api token>`]}}},null,2)}),it=j(()=>[`push`,`thread`,`both`].map(e=>({label:W(`views.settings.assistant_schedule_deliver_${e}`),value:e}))),Hr=j(()=>[`daily`,`weekdays`,`weekends`,`weekly`,`hourly`,`custom`].map(e=>({label:W(`views.settings.assistant_schedule_preset_${e}`),value:e}))),Ur=j(()=>{let{preset:e,time:t,cron:n}=Y.value,[r,i]=t.split(`:`).map(e=>Number.parseInt(e,10));return e===`custom`?n.trim():e===`hourly`?`0 * * * *`:Number.isNaN(r)||Number.isNaN(i)?``:`${i} ${r} * * ${e===`weekdays`?`1-5`:e===`weekends`?`0,6`:e===`weekly`?`0`:`*`}`}),Wr=j(()=>{switch($.value?.state){case`ready`:return`success`;case`unconfigured`:return`warn`;default:return`secondary`}}),Gr=j(()=>W(`views.settings.assistant_state_${$.value?.state??`disabled`}`)),Kr=j(()=>$.value?$.value.state===`ready`?W(`views.settings.assistant_status_ready`,{model:$.value.model}):W(`views.settings.assistant_status_info`):``);function qr(e){let t=/^(\d+) (\d+) \* \* (\*|1-5|0,6|0)$/.exec(e);if(!t)return e;let n=`${t[2].padStart(2,`0`)}:${t[1].padStart(2,`0`)}`,r=t[3]===`*`?`daily`:t[3]===`1-5`?`weekdays`:t[3]===`0`?`weekly`:`weekends`;return`${W(`views.settings.assistant_schedule_preset_${r}`)} ${n}`}function Jr(e){return e===`push`?`info`:e===`thread`?`secondary`:`success`}function Yr(e){return new Date(e).toLocaleString(G.value,{day:`2-digit`,month:`2-digit`,hour:`2-digit`,minute:`2-digit`})}async function Xr(){await Be.mutateAsync({title:Y.value.title,prompt:Y.value.prompt,cron:Ur.value,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,language:G.value,deliver:Y.value.deliver,profileId:Y.value.profileId,modelId:Y.value.modelId,enabled:!0}),Y.value={...Y.value,title:``,prompt:``,cron:``,profileId:null,modelId:null}}function Zr(e){return e.replace(/^\[[^\]]+\]\s*/,``)}function Qr(e){if(e.source.kind!==`external`)return e.approval;let{serverId:t,toolName:n}=e.source;return J.value?.mcpServers.find(e=>e.id===t)?.toolApproval[n]??e.approval}function $r(e){return e.tools.flatMap(e=>e.source.kind===`external`?[{label:be(e.name),value:e.source.toolName}]:[])}function ei(e){return e.tools.flatMap(e=>e.source.kind===`external`&&!Qr(e)?[e.source.toolName]:[])}function ti(e,t){let n=J.value?.mcpServers.find(t=>t.id===e.serverId);n&&(n.toolApproval=Object.fromEntries($r(e).map(e=>[e.value,!t.includes(e.value)])))}function ni(e){return e<1e3?String(e):e<1e6?`${(e/1e3).toFixed(+(e<1e4))}k`:`${(e/1e6).toFixed(2)}M`}function ri(e){return K.value?.external.find(t=>t.id===e)}function ii(e){let t=ri(e);return t?t.state===`connected`?W(`views.settings.assistant_external_state_connected`,{n:t.toolCount}):t.state===`error`?W(`views.settings.assistant_external_state_error`,{message:t.error??``}):W(`views.settings.assistant_external_state_${t.state}`):``}function ai(e){let t=ri(e)?.state;return t===`connected`?`text-success`:t===`error`?`text-danger`:`text-muted`}function oi(){if(!J.value)return;let e=d();J.value.mcpServers.push({id:e,name:``,url:``,enabled:!0,insecure:!1,tokenSet:!1,toolApproval:{}}),Z.value.push(e)}function si(e){Z.value=Z.value.includes(e)?Z.value.filter(t=>t!==e):[...Z.value,e]}function ci(e){J.value&&(J.value.mcpServers=J.value.mcpServers.filter(t=>t.id!==e),Z.value=Z.value.filter(t=>t!==e),delete X.value[e])}function li(){let e=p(J.value);return{language:e.language,maxIterations:e.maxIterations,maxToolCalls:e.maxToolCalls,contextTokens:e.contextTokens,historyThreads:e.historyThreads,historyImages:e.historyImages,terminalEnabled:e.terminalEnabled,reasoning:e.reasoning,systemPromptExtra:e.systemPromptExtra,mcpEnabled:e.mcpEnabled,mcpWrites:e.mcpWrites,memoryEnabled:e.memoryEnabled,plugins:e.plugins.map(({pluginId:e,modelId:t})=>({pluginId:e,modelId:t})),mcpServers:e.mcpServers.filter(e=>e.name.trim()||e.url.trim()).map(e=>({id:e.id,name:e.name.trim(),url:e.url.trim(),enabled:e.enabled,insecure:e.insecure,toolApproval:e.toolApproval,...X.value[e.id]?{token:X.value[e.id]}:{}}))}}function ui(){J.value&&Object.assign(J.value,M)}async function di(){J.value&&(await q.mutateAsync(li()),X.value={})}function fi(e){let t=K.value?.modelProviders.find(t=>t.provider===e);return t?W(`views.settings.assistant_provider_plugin`,{name:t.pluginName}):Ce.find(t=>t.value===e)?.label??e}function pi(e){return K.value?.modelProviders.find(t=>t.provider===e.provider)?.models.find(t=>t.id===e.model)?.name??e.model}function mi(e){let t=K.value?.modelProviders.find(t=>t.provider===e)?.status;if(!t||t.ready)return;let n=typeof t.progress==`number`?` (${Math.round(t.progress*100)}%)`:``;return`${t.message||W(`views.settings.assistant_model_plugin_loading`)}${n}`}async function hi(e){return q.mutateAsync({models:e})}function gi(e,t){We.value=[{label:W(`views.settings.assistant_model_make_default`),icon:Ie,hide:t._id===Je.value?._id,disabled:q.isPending.value,onClick:()=>Si(t)},{label:W(`views.settings.assistant_model_edit`),icon:Ee,onClick:()=>yi(t)},{...ne,label:W(`views.settings.assistant_model_delete`),onClick:()=>xi(t)}],qe.value?.toggleMenu(e)}function _i(e){Ve.mutate({scheduleId:e._id,patch:{enabled:!e.enabled}})}function vi(e,t){We.value=[{label:W(`views.settings.assistant_schedule_run`),icon:Le,onClick:()=>Ue.mutate(t._id)},t.enabled?{label:W(`views.settings.assistant_schedule_pause`),icon:U,onClick:()=>_i(t)}:{label:W(`views.settings.assistant_schedule_resume`),icon:we,onClick:()=>_i(t)},{label:W(`views.settings.assistant_schedule_model_change`),icon:Oe,onClick:()=>ki(t)},{...ne,label:W(`views.settings.assistant_schedule_delete`),onClick:()=>He.mutate(t._id)}],qe.value?.toggleMenu(e)}function yi(e){let t=new Set(Q.value.map(e=>e._id));Te.openComponentDialog(nt,{data:{title:W(e?`views.settings.assistant_model_edit`:`views.settings.assistant_model_add`),confirmText:W(`components.form.button.save`),awaitConfirm:!0,contentProps:{entry:e?D(e):void 0,models:D(Q.value),modelProviders:D(K.value?.modelProviders??[])}},onConfirm:async n=>{bi((await hi(e?Q.value.map(t=>t._id===e._id?n:H(t)):[...Q.value.map(H),n])).settings.models.find(n=>e?n._id===e._id:!t.has(n._id)))}})}function bi(e){let t=e?.capabilities;if(!t)return;let n=K.value?.modelProviders.find(t=>t.provider===e.provider)?.models.find(t=>t.id===e.model),r=t.error?W(`views.settings.assistant_test_failed`,{message:t.error}):t.toolCalling?t.vision===!1?W(`views.settings.assistant_test_vision_missing`):``:W(n?.toolCalling===!1?`views.settings.assistant_test_tools_declared`:`views.settings.assistant_test_tools_missing`);r&&Se.add({severity:t.error?`error`:`warn`,detail:r,life:8e3})}function xi(e){Te.openTextDialog({data:{title:W(`views.settings.assistant_model_delete`),contentText:W(`views.settings.assistant_model_delete_confirm`,{name:e.name}),confirmText:W(`views.settings.assistant_model_delete`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{await hi(Q.value.filter(t=>t._id!==e._id).map(H))}})}async function Si(e){await q.mutateAsync({defaultModelId:e._id})}function Ci(e){return J.value?.plugins.find(t=>t.pluginId===e)?.modelId??Vr}function wi(e){return Q.value.find(t=>t._id===Ci(e))}function Ti(e,t){if(!J.value)return;let n=J.value.plugins.filter(t=>t.pluginId!==e);J.value.plugins=t===Vr?n:[...n,{pluginId:e,modelId:t}]}function Ei(e){return Q.value.find(t=>t.provider===e.provider&&t.model===e.model)?.name??e.model}function Di(e){return Q.value.some(t=>t._id===e.modelId)?e.modelId??null:null}function Oi(e){let t=Re.value?.find(t=>t._id===e),n=(Q.value.find(e=>e._id===t?.modelId)??Je.value)?.name;return n?W(`views.settings.assistant_schedule_model_default`,{name:n}):void 0}function ki(e){Te.openComponentDialog(at,{data:{title:e.title,confirmText:W(`components.form.button.save`),contentProps:{models:D(Q.value),modelId:e.modelId,fallback:Oi(e.profileId)}},onConfirm:({modelId:t})=>{Ve.mutate({scheduleId:e._id,patch:{modelId:t}})}})}function Ai(e){return Q.value.find(t=>t._id===e)?.name}function ji(e){return Re.value?.find(t=>t._id===e)?.name}return y(K,e=>{e&&!J.value&&(J.value=p(e.settings))},{immediate:!0}),(i,o)=>{let s=n,c=se,l=fe,d=r,p=de,ne=Ie,_=t,y=Ee,C=ee,D=Me,j=ke,M=ie,I=ge,z=B,ye=Ae,V=e,Se=te,H=pe,Ce=oe,we=re(`RouterLink`),Te=ve,Oe=he,U=L,W=je,G=ce,Pe=R,Le=me,Ve=Ne,He=ae,$=le,nt=_e,at=a;return g(),S(`div`,ot,[F(J)?(g(),S(`div`,ct,[x(`div`,null,[x(`span`,lt,h(i.$t(`views.settings.status`)),1),T(d,{class:`cui-card`},{content:m(()=>[x(`div`,ut,[x(`div`,dt,[x(`span`,ft,h(i.$t(`views.settings.assistant_title`)),1),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:m(()=>[E(h(F(Kr)),1)]),_:1})]),T(l,{class:`ml-auto shrink-0`,severity:F(Wr),value:F(Gr)},null,8,[`severity`,`value`])])]),_:1})]),x(`div`,null,[x(`span`,pt,h(i.$t(`views.settings.assistant_model`)),1),T(d,{class:`cui-card`},{content:m(()=>[x(`div`,mt,[x(`div`,ht,[x(`div`,gt,[x(`label`,_t,h(i.$t(`components.form.label.enabled`)),1),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_enabled_info`)),1)]),_:1})]),T(p,{"model-value":F(K)?.settings.enabled??!1,"input-id":`enabled`,disabled:F(q).isPending.value,class:`ml-auto shrink-0`,"onUpdate:modelValue":o[0]||=e=>F(q).mutate({enabled:e})},null,8,[`model-value`,`disabled`])]),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_models_info`)),1)]),_:1}),F(Q).length?(g(),S(`div`,vt,[(g(!0),S(A,null,v(F(Q),e=>(g(),S(`div`,{key:e._id,class:`flex items-start gap-3 py-3 text-sm`},[x(`div`,yt,[x(`span`,bt,h(e.name),1),x(`div`,xt,[e._id===F(Je)?._id?(g(),O(l,{key:0,severity:`info`,value:i.$t(`views.settings.assistant_model_default`),class:`text-[10px]`},null,8,[`value`])):N(``,!0),e.userAccess===!1?(g(),O(l,{key:1,severity:`secondary`,value:i.$t(`views.settings.assistant_model_admins_only`),class:`text-[10px]`},null,8,[`value`])):N(``,!0),(g(!0),S(A,null,v(F(xe)(e),e=>(g(),O(l,{key:e.key,severity:e.severity,value:i.$t(`views.settings.assistant_capability_${e.key}`),class:`text-[10px]`},null,8,[`severity`,`value`]))),128))]),x(`div`,St,h(fi(e.provider))+` · `+h(pi(e)),1),e.capabilities?.error?(g(),S(`div`,Ct,h(e.capabilities.error),1)):N(``,!0),mi(e.provider)?(g(),S(`div`,wt,h(mi(e.provider)),1)):N(``,!0)]),x(`div`,Tt,[e._id===F(Je)?._id?N(``,!0):w((g(),O(_,{key:0,type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,disabled:F(q).isPending.value,onClick:t=>Si(e)},{icon:m(()=>[T(ne,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[at,{value:i.$t(`views.settings.assistant_model_make_default`)},void 0,{top:!0}]]),w((g(),O(_,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,onClick:t=>yi(e)},{icon:m(()=>[T(y,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[at,{value:i.$t(`views.settings.assistant_model_edit`)},void 0,{top:!0}]]),w((g(),O(_,{type:`button`,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,onClick:t=>xi(e)},{icon:m(()=>[T(C,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[at,{value:i.$t(`views.settings.assistant_model_delete`)},void 0,{top:!0}]])]),x(`div`,Et,[T(_,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,onClick:t=>gi(t,e)},{icon:m(()=>[T(D,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])])]))),128))])):(g(),S(`div`,Dt,h(i.$t(`views.settings.assistant_models_empty`)),1)),x(`div`,Ot,[T(_,{type:`button`,severity:`secondary`,outlined:``,class:`cui-button-medium ml-auto`,label:i.$t(`views.settings.assistant_model_add`),disabled:F(Q).length>=20,onClick:o[1]||=e=>yi()},{icon:m(()=>[T(j,{class:`w-4 h-4`})]),_:1},8,[`label`,`disabled`])])])]),_:1})]),x(`div`,null,[x(`span`,kt,h(i.$t(`views.settings.assistant_plugins`)),1),T(d,{class:`cui-card`},{content:m(()=>[x(`div`,At,[T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_plugins_info`)),1)]),_:1}),F(K)?.plugins.length?(g(!0),S(A,{key:0},v(F(K).plugins,e=>(g(),S(`div`,{key:e.id,class:`flex flex-col field-gap`},[x(`div`,jt,[x(`label`,{for:`plugin-${e.id}`,class:`cui-label truncate`},h(e.name),9,Mt),wi(e.id)?.capabilities?.vision===!1?(g(),O(l,{key:0,severity:`warn`,value:i.$t(`views.settings.assistant_capability_no_vision`),class:`shrink-0 text-[10px]`},null,8,[`value`])):N(``,!0)]),T(M,{"model-value":Ci(e.id),"input-id":`plugin-${e.id}`,options:F(Ye),"option-label":`label`,"option-value":`value`,fluid:``,"onUpdate:modelValue":t=>Ti(e.id,t)},null,8,[`model-value`,`input-id`,`options`,`onUpdate:modelValue`])]))),128)):(g(),S(`div`,Nt,h(i.$t(`views.settings.assistant_plugins_empty`)),1)),x(`div`,Pt,[T(_,{type:`button`,loading:F(q).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:di},null,8,[`loading`,`label`])])])]),_:1})]),x(`div`,null,[x(`span`,Ft,h(i.$t(`views.settings.assistant_behavior`)),1),T(d,{class:`cui-card`},{content:m(()=>[x(`div`,It,[x(`div`,Lt,[x(`div`,Rt,[x(`label`,zt,h(i.$t(`views.settings.assistant_memory`)),1),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_memory_info`)),1)]),_:1})]),T(p,{modelValue:F(J).memoryEnabled,"onUpdate:modelValue":o[2]||=e=>F(J).memoryEnabled=e,"input-id":`memoryEnabled`,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),x(`div`,Bt,[x(`div`,Vt,[x(`label`,Ht,h(i.$t(`views.settings.assistant_terminal`)),1),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_terminal_info`)),1)]),_:1})]),T(p,{modelValue:F(J).terminalEnabled,"onUpdate:modelValue":o[3]||=e=>F(J).terminalEnabled=e,"input-id":`terminalEnabled`,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),x(`div`,Ut,[x(`label`,Wt,h(i.$t(`views.settings.assistant_language_label`)),1),T(M,{modelValue:F(J).language,"onUpdate:modelValue":o[4]||=e=>F(J).language=e,"input-id":`language`,options:F(Qe),"option-label":`label`,"option-value":`value`,filter:``,fluid:``},null,8,[`modelValue`,`options`]),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_language_info`)),1)]),_:1})]),x(`div`,Gt,[x(`label`,Kt,h(i.$t(`views.settings.assistant_reasoning_label`)),1),T(M,{modelValue:F(J).reasoning,"onUpdate:modelValue":o[5]||=e=>F(J).reasoning=e,"input-id":`reasoning`,options:F($e),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`]),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_reasoning_info`)),1)]),_:1})]),x(`div`,qt,[x(`div`,Jt,[x(`label`,Yt,h(i.$t(`views.settings.assistant_max_iterations_label`)),1),T(I,{modelValue:F(J).maxIterations,"onUpdate:modelValue":o[6]||=e=>F(J).maxIterations=e,min:1,max:30,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_max_iterations_info`)),1)]),_:1})]),x(`div`,Xt,[x(`label`,Zt,h(i.$t(`views.settings.assistant_max_tool_calls_label`)),1),T(I,{modelValue:F(J).maxToolCalls,"onUpdate:modelValue":o[7]||=e=>F(J).maxToolCalls=e,min:1,max:100,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_max_tool_calls_info`)),1)]),_:1})])]),x(`div`,Qt,[x(`label`,$t,h(i.$t(`views.settings.assistant_context_tokens_label`)),1),T(I,{id:`contextTokens`,modelValue:F(J).contextTokens,"onUpdate:modelValue":o[8]||=e=>F(J).contextTokens=e,min:8e3,max:4e5,step:1e3,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_context_tokens_info`)),1)]),_:1})]),x(`div`,en,[x(`div`,tn,[x(`label`,nn,h(i.$t(`views.settings.assistant_history_threads_label`)),1),T(I,{id:`historyThreads`,modelValue:F(J).historyThreads,"onUpdate:modelValue":o[9]||=e=>F(J).historyThreads=e,min:5,max:500,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_history_threads_info`)),1)]),_:1})]),x(`div`,rn,[x(`label`,an,h(i.$t(`views.settings.assistant_history_images_label`)),1),T(I,{id:`historyImages`,modelValue:F(J).historyImages,"onUpdate:modelValue":o[10]||=e=>F(J).historyImages=e,min:0,max:200,"use-grouping":!1,fluid:``},null,8,[`modelValue`]),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_history_images_info`)),1)]),_:1})])]),x(`div`,on,[x(`label`,sn,h(i.$t(`views.settings.assistant_extra_prompt_label`)),1),T(z,{modelValue:F(J).systemPromptExtra,"onUpdate:modelValue":o[11]||=e=>F(J).systemPromptExtra=e,rows:`3`,"auto-resize":``,placeholder:i.$t(`views.settings.assistant_extra_prompt_placeholder`)},null,8,[`modelValue`,`placeholder`]),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_extra_prompt_info`)),1)]),_:1})]),x(`div`,cn,[T(_,{type:`button`,severity:`secondary`,outlined:``,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.reset_defaults`),onClick:ui},{icon:m(()=>[T(ye,{class:`w-4 h-4`})]),_:1},8,[`label`]),T(_,{type:`button`,loading:F(q).isPending.value,class:`cui-button-medium`,label:i.$t(`components.form.button.save`),onClick:di},null,8,[`loading`,`label`])])])]),_:1})]),x(`div`,null,[x(`span`,ln,h(i.$t(`views.settings.assistant_mcp`)),1),T(d,{class:`cui-card`},{content:m(()=>[x(`div`,un,[T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_mcp_info`)),1)]),_:1}),x(`div`,dn,[x(`div`,fn,[x(`div`,pn,[x(`span`,mn,h(i.$t(`views.settings.assistant_mcp_enabled_label`)),1),x(`span`,hn,h(i.$t(`views.settings.assistant_mcp_enabled_info`)),1)]),T(p,{modelValue:F(J).mcpEnabled,"onUpdate:modelValue":o[12]||=e=>F(J).mcpEnabled=e},null,8,[`modelValue`])]),x(`div`,gn,[x(`div`,_n,[x(`span`,vn,h(i.$t(`views.settings.assistant_mcp_writes_label`)),1),x(`span`,yn,h(i.$t(`views.settings.assistant_mcp_writes_info`)),1)]),T(p,{modelValue:F(J).mcpWrites,"onUpdate:modelValue":o[13]||=e=>F(J).mcpWrites=e,disabled:!F(J).mcpEnabled},null,8,[`modelValue`,`disabled`])])]),F(J).mcpEnabled?(g(),S(`div`,bn,[x(`div`,xn,[x(`label`,Sn,h(i.$t(`views.settings.assistant_mcp_endpoint_label`)),1),T(Ce,null,{default:m(()=>[T(V,{id:`mcpEndpoint`,"model-value":F(et),readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),T(H,null,{default:m(()=>[T(Se,{"action-text":i.$t(`components.form.tooltip.copied`),icon:F(De),"button-props":{severity:`secondary`,text:!0},onAction:o[14]||=e=>F(u)(F(et))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_mcp_token_info`))+` `,1),T(we,{to:{name:`SettingsAccount`},class:`underline`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_mcp_token_link`)),1)]),_:1})]),_:1})]),x(`div`,Cn,[x(`label`,wn,h(i.$t(`views.settings.assistant_mcp_client_label`)),1),T(M,{modelValue:F(Ge),"onUpdate:modelValue":o[15]||=e=>k(Ge)?Ge.value=e:null,"input-id":`mcpClient`,options:F(tt),"option-label":`label`,"option-value":`value`,class:`w-full`},null,8,[`modelValue`,`options`]),T(Ce,null,{default:m(()=>[T(z,{id:`mcpSnippet`,"model-value":F(rt),readonly:``,"auto-resize":``,rows:`3`,class:`font-mono text-xs`},null,8,[`model-value`]),T(H,null,{default:m(()=>[T(Se,{"action-text":i.$t(`components.form.tooltip.copied`),icon:F(De),"button-props":{severity:`secondary`,text:!0},onAction:o[16]||=e=>F(u)(F(rt))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_mcp_snippet_info`)),1)]),_:1})])])):N(``,!0),x(`div`,Tn,[T(_,{type:`button`,loading:F(q).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:di},null,8,[`loading`,`label`])])])]),_:1})]),x(`div`,null,[x(`span`,En,h(i.$t(`views.settings.assistant_external`)),1),T(d,{class:`cui-card`},{content:m(()=>[x(`div`,Dn,[T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_external_info`)),1)]),_:1}),(g(!0),S(A,null,v(F(J).mcpServers,e=>(g(),S(`div`,{key:e.id,class:`cui-assistant-server overflow-hidden rounded-xl`},[x(`button`,{type:`button`,class:`flex w-full cursor-pointer items-center gap-3 p-4 text-left`,"aria-expanded":F(Z).includes(e.id),onClick:t=>si(e.id)},[x(`div`,kn,[x(`span`,An,h(e.name||i.$t(`views.settings.assistant_external_new`)),1),ii(e.id)?(g(),S(`span`,{key:0,class:b([`truncate text-xs`,ai(e.id)])},h(ii(e.id)),3)):N(``,!0)]),T(Te,{class:b([`h-5 w-5 shrink-0 text-muted transition-transform duration-200`,{"rotate-180":F(Z).includes(e.id)}])},null,8,[`class`])],8,On),x(`div`,{class:b([`cui-assistant-server-body grid`,{"cui-assistant-server-open":F(Z).includes(e.id)}])},[x(`div`,{class:`min-h-0 overflow-hidden`,inert:!F(Z).includes(e.id)},[x(`div`,Mn,[x(`div`,Nn,[x(`div`,Pn,[x(`label`,{for:`server-enabled-${e.id}`,class:`cui-label-switch`},h(i.$t(`components.form.label.enabled`)),9,Fn),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_external_enabled_info`)),1)]),_:1})]),T(p,{modelValue:e.enabled,"onUpdate:modelValue":t=>e.enabled=t,"input-id":`server-enabled-${e.id}`,class:`ml-auto shrink-0`},null,8,[`modelValue`,`onUpdate:modelValue`,`input-id`])]),x(`div`,In,[x(`div`,Ln,[x(`label`,{for:`server-name-${e.id}`,class:`cui-label`},h(i.$t(`views.settings.assistant_external_name`)),9,Rn),T(V,{id:`server-name-${e.id}`,modelValue:e.name,"onUpdate:modelValue":t=>e.name=t,fluid:``,placeholder:`Home Assistant`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`])]),x(`div`,zn,[x(`label`,{for:`server-url-${e.id}`,class:`cui-label`},h(i.$t(`views.settings.assistant_external_url`)),9,Bn),T(V,{id:`server-url-${e.id}`,modelValue:e.url,"onUpdate:modelValue":t=>e.url=t,fluid:``,placeholder:`http://homeassistant.local:8123/api/mcp`},null,8,[`id`,`modelValue`,`onUpdate:modelValue`])])]),x(`div`,Vn,[x(`label`,{for:`server-token-${e.id}`,class:`cui-label`},h(i.$t(`views.settings.assistant_external_token`)),9,Hn),T(Oe,{id:`server-token-${e.id}`,modelValue:F(X)[e.id],"onUpdate:modelValue":t=>F(X)[e.id]=t,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:e.tokenSet?`••••••••`:``},null,8,[`id`,`modelValue`,`onUpdate:modelValue`,`placeholder`]),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(e.tokenSet?i.$t(`views.settings.assistant_external_token_set`):i.$t(`views.settings.assistant_external_token_info`)),1)]),_:2},1024)]),x(`div`,Un,[x(`div`,Wn,[x(`label`,{for:`server-insecure-${e.id}`,class:`cui-label-switch`},h(i.$t(`views.settings.assistant_external_insecure`)),9,Gn),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_external_insecure_info`)),1)]),_:1})]),T(p,{"input-id":`server-insecure-${e.id}`,modelValue:e.insecure,"onUpdate:modelValue":t=>e.insecure=t,class:`ml-auto shrink-0`},null,8,[`input-id`,`modelValue`,`onUpdate:modelValue`])]),x(`div`,Kn,[T(_,{type:`button`,severity:`danger`,outlined:``,class:`cui-button-medium ml-auto`,label:i.$t(`views.settings.assistant_external_remove`),onClick:t=>ci(e.id)},{icon:m(()=>[T(C,{class:`w-4 h-4`})]),_:1},8,[`label`,`onClick`])])])],8,jn)],2)]))),128)),x(`div`,qn,[T(_,{type:`button`,severity:`secondary`,outlined:``,class:`cui-button-medium`,label:i.$t(`views.settings.assistant_external_add`),disabled:F(J).mcpServers.length>=10,onClick:oi},{icon:m(()=>[T(j,{class:`w-4 h-4`})]),_:1},8,[`label`,`disabled`]),T(_,{type:`button`,loading:F(q).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:di},null,8,[`loading`,`label`])])])]),_:1})]),x(`div`,null,[x(`span`,Jn,h(i.$t(`views.settings.assistant_schedules`)),1),T(d,{class:`cui-card`},{content:m(()=>[x(`div`,Yn,[T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_schedules_info`)),1)]),_:1}),F(ze)?.length?(g(),S(`div`,Xn,[(g(!0),S(A,null,v(F(ze),e=>(g(),S(`div`,{key:e._id,class:`flex items-start gap-3 py-3 text-sm`},[x(`div`,{class:b([`flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-1`,{"opacity-60":!e.enabled}])},[x(`span`,Zn,h(e.title),1),x(`div`,Qn,[T(l,{severity:`secondary`,value:qr(e.cron),class:`text-[10px]`},null,8,[`value`]),T(l,{severity:Jr(e.deliver),value:i.$t(`views.settings.assistant_schedule_deliver_${e.deliver}`),class:`text-[10px]`},null,8,[`severity`,`value`]),e.profileId?(g(),O(l,{key:0,severity:ji(e.profileId)?`secondary`:`warn`,value:ji(e.profileId)??i.$t(`views.settings.assistant_schedule_profile_missing`),class:`text-[10px]`},null,8,[`severity`,`value`])):N(``,!0),Di(e)?(g(),O(l,{key:1,severity:`secondary`,value:Ai(Di(e)),class:`text-[10px]`},null,8,[`value`])):N(``,!0)]),x(`div`,$n,h(e.prompt),1),x(`div`,er,[e.enabled&&e.nextRun?(g(),S(`span`,tr,h(i.$t(`views.settings.assistant_schedule_next`,{time:Yr(e.nextRun)})),1)):e.enabled?N(``,!0):(g(),S(`span`,nr,h(i.$t(`views.settings.assistant_schedule_paused`)),1)),e.lastRun?(g(),S(`span`,{key:2,class:b({"text-danger":e.lastRun.status===`error`})},` · `+h(i.$t(`views.settings.assistant_schedule_last_${e.lastRun.status}`,{time:Yr(e.lastRun.at)})),3)):N(``,!0)]),e.lastRun?.status===`error`&&e.lastRun.message?(g(),S(`div`,rr,h(e.lastRun.message),1)):N(``,!0)],2),x(`div`,ir,[x(`div`,null,[w((g(),O(_,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,loading:F(Ue).isPending.value&&F(Ue).variables.value===e._id,onClick:t=>vi(t,e)},{icon:m(()=>[T(D,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[at,{value:i.$t(`views.settings.assistant_schedule_actions`)},void 0,{top:!0}]])])])]))),128))])):N(``,!0),x(`div`,{class:b([`flex flex-col gap-6`,{"cui-assistant-schedule-form":F(ze)?.length}])},[x(`div`,ar,[x(`div`,or,[x(`label`,sr,h(i.$t(`views.settings.assistant_schedule_title_label`)),1),T(V,{modelValue:F(Y).title,"onUpdate:modelValue":o[17]||=e=>F(Y).title=e,modelModifiers:{trim:!0},type:`text`,placeholder:i.$t(`views.settings.assistant_schedule_title_placeholder`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),x(`div`,cr,[x(`label`,lr,h(i.$t(`views.settings.assistant_schedule_deliver_label`)),1),T(M,{modelValue:F(Y).deliver,"onUpdate:modelValue":o[18]||=e=>F(Y).deliver=e,options:F(it),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`])])]),x(`div`,ur,[x(`label`,dr,h(i.$t(`views.settings.assistant_schedule_prompt_label`)),1),T(z,{modelValue:F(Y).prompt,"onUpdate:modelValue":o[19]||=e=>F(Y).prompt=e,rows:`2`,"auto-resize":``,placeholder:i.$t(`views.settings.assistant_schedule_prompt_placeholder`)},null,8,[`modelValue`,`placeholder`])]),x(`div`,fr,[F(Re)?.length?(g(),S(`div`,pr,[x(`label`,mr,h(i.$t(`views.settings.assistant_schedule_profile_label`)),1),T(M,{modelValue:F(Y).profileId,"onUpdate:modelValue":o[20]||=e=>F(Y).profileId=e,"input-id":`scheduleProfile`,options:F(Re),"option-label":`name`,"option-value":`_id`,"show-clear":``,fluid:``,placeholder:i.$t(`views.settings.assistant_schedule_profile_none`)},null,8,[`modelValue`,`options`,`placeholder`])])):N(``,!0),x(`div`,hr,[x(`label`,gr,h(i.$t(`views.settings.assistant_schedule_model_label`)),1),T(M,{modelValue:F(Y).modelId,"onUpdate:modelValue":o[21]||=e=>F(Y).modelId=e,"input-id":`scheduleModel`,options:F(Q),"option-label":`name`,"option-value":`_id`,"show-clear":``,fluid:``,placeholder:Oi(F(Y).profileId)},null,8,[`modelValue`,`options`,`placeholder`])])]),x(`div`,_r,[x(`div`,vr,[x(`label`,yr,h(i.$t(`views.settings.assistant_schedule_when_label`)),1),T(M,{modelValue:F(Y).preset,"onUpdate:modelValue":o[22]||=e=>F(Y).preset=e,options:F(Hr),"option-label":`label`,"option-value":`value`,fluid:``},null,8,[`modelValue`,`options`])]),F(Y).preset!==`hourly`&&F(Y).preset!==`custom`?(g(),S(`div`,br,[x(`label`,xr,h(i.$t(`views.settings.assistant_schedule_time_label`)),1),T(V,{modelValue:F(Y).time,"onUpdate:modelValue":o[23]||=e=>F(Y).time=e,type:`time`,class:`cui-time-input w-full`},null,8,[`modelValue`])])):N(``,!0),F(Y).preset===`custom`?(g(),S(`div`,Sr,[x(`label`,Cr,h(i.$t(`views.settings.assistant_schedule_cron_label`)),1),T(V,{modelValue:F(Y).cron,"onUpdate:modelValue":o[24]||=e=>F(Y).cron=e,modelModifiers:{trim:!0},type:`text`,placeholder:`0 20 * * *`,class:`w-full font-mono text-sm`},null,8,[`modelValue`])])):N(``,!0)]),x(`div`,wr,[T(_,{type:`button`,loading:F(Be).isPending.value,disabled:!F(Y).title||!F(Y).prompt||!F(Ur),class:`cui-button-medium ml-auto`,label:i.$t(`views.settings.assistant_schedule_add`),onClick:Xr},null,8,[`loading`,`disabled`,`label`])])],2)])]),_:1})]),x(`div`,null,[x(`span`,Tr,h(i.$t(`views.settings.assistant_usage`)),1),T(d,{class:`cui-card`},{content:m(()=>[x(`div`,Er,[T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_usage_info`)),1)]),_:1}),T(W,{value:F(Ze)??[],"data-key":`key`,loading:F(Fe),pt:ue,"striped-rows":``,scrollable:``},{loading:m(()=>[T(s,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:m(()=>[x(`span`,Dr,h(i.$t(`views.settings.assistant_usage_empty`)),1)]),default:m(()=>[T(U,{field:`month`,header:i.$t(`views.settings.assistant_usage_month`),"header-class":`p-2`,class:`p-2 tabular-nums`},null,8,[`header`]),T(U,{field:`username`,header:i.$t(`views.settings.assistant_usage_user`),"header-class":`p-2`,class:`p-2`},{body:m(({data:e})=>[x(`span`,Or,h(e.pluginName??e.username??e.userId),1)]),_:1},8,[`header`]),T(U,{field:`model`,header:i.$t(`views.settings.assistant_usage_model`),"header-class":`p-2`,class:`p-2`},{body:m(({data:e})=>[x(`span`,kr,h(Ei(e)),1)]),_:1},8,[`header`]),T(U,{field:`runs`,header:i.$t(`views.settings.assistant_usage_runs`),"header-class":`p-2`,class:`p-2 text-right tabular-nums`,pt:P},null,8,[`header`]),T(U,{field:`promptTokens`,header:i.$t(`views.settings.assistant_usage_in`),"header-class":`p-2`,class:`p-2 text-right tabular-nums`,pt:P},{body:m(({data:e})=>[E(h(ni(e.promptTokens)),1)]),_:1},8,[`header`]),T(U,{field:`completionTokens`,header:i.$t(`views.settings.assistant_usage_out`),"header-class":`p-2`,class:`p-2 text-right tabular-nums`,pt:P},{body:m(({data:e})=>[E(h(ni(e.completionTokens)),1)]),_:1},8,[`header`]),T(U,{field:`costUsd`,header:i.$t(`views.settings.assistant_usage_cost`),"header-class":`p-2`,class:`p-2 text-right tabular-nums`,pt:P},{body:m(({data:e})=>[E(h(e.costUsd?`$${e.costUsd.toFixed(e.costUsd<1?3:2)}`:`–`),1)]),_:1},8,[`header`])]),_:1},8,[`value`,`loading`])])]),_:1})]),x(`div`,null,[x(`span`,Ar,h(i.$t(`views.settings.assistant_tools`)),1),T(d,{class:`cui-card`},{content:m(()=>[F(Xe).length?(g(),S(`div`,Mr,[T(nt,{value:F(Ke),"onUpdate:value":o[25]||=e=>k(Ke)?Ke.value=e:null,scrollable:``},{default:m(()=>[T(Pe,{class:`mb-3`},{default:m(()=>[(g(!0),S(A,null,v(F(Xe),e=>(g(),O(G,{key:e.key,value:e.key,class:`text-sm`},{default:m(()=>[E(h(e.label)+` (`+h(e.tools.length)+`)`,1)]),_:2},1032,[`value`]))),128))]),_:1}),T($,{class:`!p-0 !bg-transparent`},{default:m(()=>[(g(!0),S(A,null,v(F(Xe),e=>(g(),O(He,{key:e.key,value:e.key},{default:m(()=>[e.serverId?(g(),S(`div`,Nr,[x(`label`,{for:`trusted-${e.key}`,class:`cui-label`},h(i.$t(`views.settings.assistant_tools_trusted_label`)),9,Pr),T(Le,{"model-value":ei(e),"input-id":`trusted-${e.key}`,options:$r(e),"option-label":`label`,"option-value":`value`,"max-selected-labels":3,"selected-items-label":i.$t(`views.settings.assistant_tools_trusted_selected`,{n:ei(e).length}),placeholder:i.$t(`views.settings.assistant_tools_trusted_none`),filter:``,fluid:``,"onUpdate:modelValue":t=>ti(e,t)},null,8,[`model-value`,`input-id`,`options`,`selected-items-label`,`placeholder`,`onUpdate:modelValue`]),T(c,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[E(h(i.$t(`views.settings.assistant_tools_trusted_info`)),1)]),_:1})])):N(``,!0),x(`div`,Fr,[(g(!0),S(A,null,v(e.tools,e=>(g(),S(`div`,{key:e.name,class:`flex items-start gap-3 py-2 text-sm`},[T(Ve,{class:`w-4 h-4 mt-0.5 shrink-0 text-muted`}),x(`div`,Ir,[x(`div`,Lr,[x(`span`,Rr,h(F(be)(e.name)),1),Qr(e)?(g(),O(l,{key:0,severity:`warn`,value:i.$t(`views.settings.assistant_tool_approval`),class:`text-[10px]`},null,8,[`value`])):N(``,!0),e.adminOnly?(g(),O(l,{key:1,severity:`info`,value:i.$t(`views.settings.assistant_tool_admin`),class:`text-[10px]`},null,8,[`value`])):N(``,!0)]),x(`div`,zr,h(Zr(e.description)),1)])]))),128))])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`value`]),F(Xe).some(e=>e.serverId)?(g(),S(`div`,Br,[T(_,{type:`button`,loading:F(q).isPending.value,class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`),onClick:di},null,8,[`loading`,`label`])])):N(``,!0)])):(g(),S(`div`,jr,h(i.$t(`views.settings.assistant_tools_empty`)),1))]),_:1})])])):(g(),S(`div`,st,[T(s,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])),T(f,{ref_key:`rowMenuRef`,ref:qe,items:F(We),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}}),[[`__scopeId`,`data-v-e1fc7b04`]]);export{Hr as default};
@@ -0,0 +1 @@
1
+ import{J as e,Xt as t,Yt as n,at as r,hr as i,nn as a}from"./vendor-cameraui-K1Nw4PvF.js";import{Br as o,Mn as s,dn as c,s as l}from"./api-D1iULsSy.js";import{$n as u,Cr as d,Hn as f,In as p,Jn as m,Pn as h,Rn as g,_r as _,cn as v,dn as y,dr as b,er as x,gn as S,hn as C,ln as w,lr as T,mr as E,nn as D,rn as O,sn as k,sr as A,un as j,vn as M,yr as N}from"./vendor-Df81FCJz.js";import{H as P,L as F,N as ee,U as I,V as L,v as R}from"./vendor-primevue-DoA2Rwcb.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-vrhmc9i-.js";import{t as se}from"./theme-BOppzzar.js";import{t as ce}from"./trash-can-outline-DVH3zgo0.js";import{t as B}from"./close-circle-D7Jmhp_7.js";import{t as le}from"./download-C291Yq7I.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return p(),y(`svg`,V,[...t[0]||=[v(`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=A({name:`ic-baseline-file-open`,render:H}),W={class:`flex flex-col gap-6 p-4 items-center justify-center w-full`},G={class:`flex flex-col justify-center items-center`},K={for:`restoreInput`,class:`cursor-pointer text-center`},q=[`accept`],J={key:0,class:`text-red`},Y={class:`mx-2`},X={class:`text-muted`},ue=M({__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}=_(i),c=m(`fileInputRef`),l=E([]),h=b(!1),g=b(!1);function x(e){let t=l.value.findIndex(t=>t.name===e);t>-1&&(l.value.splice(t,1),O())}function C(e){if(h.value=!1,g.value=!1,l.value=[],e.dataTransfer){if(!s.value&&e.dataTransfer.files.length>1)g.value=!0;else{for(let[,t]of Object.entries(e.dataTransfer.files))l.value.push(t);a(`files-uploaded`,l.value)}}}function T(e){g.value=!1,l.value=[];let t=e.target;if(t&&t.files){if(!s.value&&t.files?.length>1)g.value=!0;else{for(let[,e]of Object.entries(t.files))l.value.push(e);a(`files-uploaded`,l.value)}}}function O(){c.value&&(c.value.value=``)}function k(){l.value=[],O()}return n({reset:k}),(n,r)=>{let i=B,a=t,s=F,m=I;return p(),y(`div`,{class:`file-upload-box`,onDrop:r[0]||=D(e=>C(e),[`prevent`]),onDragover:r[1]||=D(e=>h.value=!0,[`prevent`]),onDragenter:r[2]||=D(e=>h.value=!0,[`prevent`]),onDragleave:r[3]||=D(e=>h.value=!1,[`prevent`])},[v(`div`,W,[v(`div`,G,[(p(),w(f(e.icon),{class:`w-15 h-15`})),v(`label`,K,d(n.$t(`components.upload_files.drop_or_select_file`)),1),v(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:c,type:`file`,class:`hidden`,accept:N(o),onChange:T},null,40,q),N(g)?(p(),y(`p`,J,d(n.$t(`components.upload_files.only_one_file_allowed`)),1)):j(``,!0)]),N(l).length>0?(p(),w(m,{key:0,items:N(l),"item-size":50,"scroll-height":`50px`,"scroll-width":`100%`,class:`w-full`},{item:u(({item:e})=>[(p(),y(`div`,{key:e.name,class:`w-full flex flex-row items-center justify-start p-2`},[S(a,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t=>x(e.name)},{icon:u(()=>[S(i,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`]),v(`b`,Y,d(e.name),1),v(`span`,X,`(`+d(e.size)+` bytes)`,1)])),N(l).length>1?(p(),w(s,{key:0,class:`m-0 py-4`})):j(``,!0)]),_:1},8,[`items`])):j(``,!0)])],32)}}}),de={class:`flex flex-col w-full gap-6`},fe={class:`card-title`},pe={class:`flex flex-col gap-6`},me={class:`text-sm`},he={class:`card-title`},ge={class:`flex flex-col gap-6`},_e={class:`text-sm`},ve={class:`card-title`},ye={key:0,class:`flex w-full items-center justify-center py-6`},be={key:1,class:`flex flex-col gap-6`},xe={class:`flex items-center gap-4`},Se={class:`flex flex-col gap-1 min-w-0`},Ce={class:`text-sm`},we={class:`text-xs text-muted`},Te={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},Ee={class:`flex flex-col field-gap`},De={for:`backupInterval`,class:`cui-label`},Oe={class:`flex flex-col field-gap`},ke={for:`backupTime`,class:`cui-label`},Ae={key:0,class:`flex flex-col field-gap`},je={for:`backupWeekday`,class:`cui-label`},Me={key:1,class:`flex flex-col field-gap`},Ne={for:`backupDayOfMonth`,class:`cui-label`},Pe={class:`flex flex-col field-gap`},Fe={for:`backupRetention`,class:`cui-label`},Ie={class:`flex flex-col field-gap`},Le={for:`backupDestination`,class:`cui-label`},Re={class:`flex items-center gap-2`},ze={key:1,class:`flex flex-col gap-2`},Be={class:`text-sm font-semibold border-b-[1px] border-color pb-2`},Ve={class:`flex flex-col min-w-0`},He={class:`text-sm truncate`},Ue={class:`text-xs text-muted`},We={class:`flex gap-1 ml-auto shrink-0`},Z=M({__name:`SettingsBackup`,setup(f){let _=c(),D=o(),{t:A,locale:M}=i(),F=m(`filesRef`),I=E([]),B=b(!1),V=b(!0),H=b(!1),U=b(!1),W=b(null),G=b([]),K=b(``),q=b(),J=T({enabled:!1,interval:`daily`,time:`03:00`,weekday:0,dayOfMonth:1,retention:7,destinationPath:``}),Y=k(()=>/^([01]\d|2[0-3]):[0-5]\d$/.test(J.time)),X=k(()=>[`daily`,`weekly`,`monthly`].map(e=>({label:A(`views.settings.backup_interval_${e}`),value:e}))),Z=k(()=>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}))),Ge=k(()=>{if(!q.value)return A(`views.settings.backup_last_run`,{info:A(`views.settings.backup_last_run_never`)});let e=new Date(q.value.timestamp).toLocaleString(),t=q.value.status===`success`?`✓`:`✗ ${q.value.message??``}`;return A(`views.settings.backup_last_run`,{info:`${e} ${t}`})});async function Q(){B.value=!0;try{let e={},t=localStorage.getItem(`ui`);if(t)try{e.ui=JSON.parse(t)}catch{}let n=localStorage.getItem(`language`);n&&(e.language=n),localStorage.getItem(`theme`)&&(e.theme=se());let r=Date.now(),i=await ne(e);await s({blob:new Blob([i]),filename:`cameraui-backup-${r}.tar.gz`,mimeType:`application/gzip`})}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}B.value=!1}function Ke(){_.openTextDialog({data:{title:A(`components.dialog.title.confirm`),contentText:A(`components.dialog.message.confirm_restore`),confirmText:A(`components.form.button.restore_and_restart`),loading:B},onConfirm:qe})}async function qe(){let e=I.value[0];e&&(B.value=!0,await re().run(e),F.value?.reset(),B.value=!1)}function Je(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`,`TB`],n=e,r=-1;do n/=1024,r++;while(n>=1024&&r<t.length-1);return`${n.toFixed(1)} ${t[r]}`}async function $(){try{let e=await ie(),{lastRun:t,...n}=e.settings;Object.assign(J,n),q.value=t,G.value=e.backups,K.value=e.defaultDestination}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}finally{V.value=!1}}async function Ye(){if(Y.value){H.value=!0;try{let e=await oe({...J});q.value=e.lastRun,D.add({severity:`success`,detail:A(`components.toast.backup_scheduler_saved`),life:3e3})}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}finally{H.value=!1}}}async function Xe(){U.value=!0;try{let e=await te();q.value=e,D.add({severity:`success`,detail:A(`components.toast.backup_created`),life:3e3})}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}finally{U.value=!1,await $()}}async function Ze(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){D.add({severity:`error`,detail:l(e),life:3e3})}finally{W.value=null}}function Qe(e){_.openTextDialog({data:{title:A(`components.dialog.title.confirm`),contentText:A(`components.dialog.message.confirm_delete_backup`,{filename:e.filename}),confirmText:A(`components.form.button.remove`)},onConfirm:async()=>{try{await ae(e.filename),D.add({severity:`success`,detail:A(`components.toast.backup_deleted`),life:3e3}),await $()}catch(e){D.add({severity:`error`,detail:l(e),life:3e3})}}})}return h($),(i,o)=>{let s=t,c=r,l=ue,f=n,m=L,h=P,_=e,b=R,T=ee,E=le,D=ce,k=a;return p(),y(`div`,null,[v(`div`,de,[v(`div`,null,[v(`span`,fe,d(i.$t(`views.settings.create_backup`)),1),S(c,{class:`cui-card`},{content:u(()=>[v(`div`,pe,[v(`span`,me,d(i.$t(`views.settings.create_backup_info`)),1),S(s,{loading:N(B),class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.download_backup_archive`),onClick:Q},null,8,[`loading`,`label`])])]),_:1})]),v(`div`,null,[v(`span`,he,d(i.$t(`views.settings.restore_backup`)),1),S(c,{class:`cui-card`},{content:u(()=>[v(`div`,ge,[v(`span`,_e,d(i.$t(`views.settings.restore_backup_info`)),1),S(l,{ref_key:`filesRef`,ref:F,accept:`application/gzip, .tar, .tar.gz`,onFilesUploaded:o[0]||=e=>I.value=e},null,512),S(s,{loading:N(B),disabled:!N(I).length,class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.restore_backup_archive`),onClick:Ke},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),v(`div`,null,[v(`span`,ve,d(i.$t(`views.settings.scheduled_backup`)),1),S(c,{class:`cui-card`},{content:u(()=>[N(V)?(p(),y(`div`,ye,[S(f,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(p(),y(`div`,be,[v(`div`,xe,[v(`div`,Se,[v(`span`,Ce,d(i.$t(`views.settings.scheduled_backup_info`)),1),v(`span`,we,d(N(Ge)),1)]),S(m,{modelValue:N(J).enabled,"onUpdate:modelValue":o[1]||=e=>N(J).enabled=e,disabled:N(H),class:`ml-auto shrink-0`},null,8,[`modelValue`,`disabled`])]),N(J).enabled?(p(),y(O,{key:0},[v(`div`,Te,[v(`div`,Ee,[v(`label`,De,d(i.$t(`views.settings.backup_interval`)),1),S(h,{modelValue:N(J).interval,"onUpdate:modelValue":o[2]||=e=>N(J).interval=e,"input-id":`backupInterval`,options:N(X),"option-label":`label`,"option-value":`value`,disabled:N(H)},null,8,[`modelValue`,`options`,`disabled`])]),v(`div`,Oe,[v(`label`,ke,d(i.$t(`views.settings.backup_time`)),1),S(_,{id:`backupTime`,modelValue:N(J).time,"onUpdate:modelValue":o[3]||=e=>N(J).time=e,placeholder:`03:00`,disabled:N(H),invalid:!N(Y)},null,8,[`modelValue`,`disabled`,`invalid`])]),N(J).interval===`weekly`?(p(),y(`div`,Ae,[v(`label`,je,d(i.$t(`views.settings.backup_weekday`)),1),S(h,{modelValue:N(J).weekday,"onUpdate:modelValue":o[4]||=e=>N(J).weekday=e,"input-id":`backupWeekday`,options:N(Z),"option-label":`label`,"option-value":`value`,disabled:N(H)},null,8,[`modelValue`,`options`,`disabled`])])):j(``,!0),N(J).interval===`monthly`?(p(),y(`div`,Me,[v(`label`,Ne,d(i.$t(`views.settings.backup_day_of_month`)),1),S(b,{modelValue:N(J).dayOfMonth,"onUpdate:modelValue":o[5]||=e=>N(J).dayOfMonth=e,"input-id":`backupDayOfMonth`,min:1,max:28,"show-buttons":``,"use-grouping":!1,disabled:N(H)},null,8,[`modelValue`,`disabled`])])):j(``,!0),v(`div`,Pe,[v(`label`,Fe,d(i.$t(`views.settings.backup_retention`)),1),S(b,{modelValue:N(J).retention,"onUpdate:modelValue":o[6]||=e=>N(J).retention=e,"input-id":`backupRetention`,min:1,max:60,"show-buttons":``,"use-grouping":!1,disabled:N(H)},null,8,[`modelValue`,`disabled`]),S(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:u(()=>[C(d(i.$t(`views.settings.backup_retention_hint`)),1)]),_:1})])]),v(`div`,Ie,[v(`label`,Le,d(i.$t(`views.settings.backup_destination`)),1),S(_,{id:`backupDestination`,modelValue:N(J).destinationPath,"onUpdate:modelValue":o[7]||=e=>N(J).destinationPath=e,placeholder:N(K),disabled:N(H)},null,8,[`modelValue`,`placeholder`,`disabled`]),S(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:u(()=>[C(d(i.$t(`views.settings.backup_destination_hint`)),1)]),_:1})])],64)):j(``,!0),v(`div`,Re,[S(s,{severity:`secondary`,outlined:``,loading:N(U),disabled:N(H),class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.run_now`),onClick:Xe},null,8,[`loading`,`disabled`,`label`]),S(s,{loading:N(H),disabled:N(U)||!N(Y),class:`cui-button-medium`,label:i.$t(`components.form.button.save`),onClick:Ye},null,8,[`loading`,`disabled`,`label`])]),N(G).length?(p(),y(`div`,ze,[v(`span`,Be,d(i.$t(`views.settings.backup_existing`)),1),(p(!0),y(O,null,g(N(G),e=>(p(),y(`div`,{key:e.filename,class:`flex items-center gap-3 py-1 min-w-0`},[v(`div`,Ve,[v(`span`,He,d(e.filename),1),v(`span`,Ue,d(new Date(e.timestamp).toLocaleString())+` · `+d(Je(e.size)),1)]),v(`div`,We,[x((p(),w(s,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,disabled:N(W)===e.filename,onClick:t=>Ze(e)},{icon:u(()=>[S(E,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[k,{value:i.$t(`components.form.button.download`)},void 0,{top:!0}]]),x((p(),w(s,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md`,onClick:t=>Qe(e)},{icon:u(()=>[S(D,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[k,{value:i.$t(`components.form.button.remove`)},void 0,{top:!0}]])])]))),128))])):j(``,!0)]))]),_:1})])])])}}});export{Z as default};
@@ -0,0 +1 @@
1
+ import{hr as e}from"./vendor-cameraui-K1Nw4PvF.js";import{Sn as t,Tn as n,gn as r,x as i}from"./api-D1iULsSy.js";import{$n as a,Cr as o,Hn as s,In as c,Rn as l,cn as u,dn as d,gn as f,hn as p,ln as m,rn as h,sn as g,vn as _,yr as v}from"./vendor-Df81FCJz.js";import{t as y}from"./CuiList-C4fxd9lD.js";var b={class:`card-title`},x=_({__name:`SettingsList`,setup(_){let{t:x}=e(),S=g(()=>i.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&n(e)).map(e=>({to:`/settings/${e.path}`,label:x(`navigation.${e.meta.name.toLowerCase()}`),icon:e.meta.settingsBar.icon.default,group:e.meta.settingsBar.group??`personal`}))),C=g(()=>[`personal`,`system`].map(e=>({key:e,items:S.value.filter(t=>t.group===e)})).filter(e=>e.items.length>0));return(e,n)=>{let i=t,g=r,_=y;return c(),d(`div`,null,[(c(!0),d(h,null,l(v(C),t=>(c(),d(h,{key:t.key},[u(`span`,b,o(e.$t(`views.settings.section_${t.key}`)),1),f(_,{size:`large`,dividers:``,class:`!h-auto mb-4 last:mb-0`},{default:a(()=>[(c(!0),d(h,null,l(t.items,e=>(c(),m(g,{key:e.to,to:e.to},{prepend:a(()=>[(c(),m(s(e.icon),{class:`w-5 h-5 text-muted`}))]),append:a(()=>[f(i,{class:`w-5 h-5 text-muted`})]),default:a(()=>[p(` `+o(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:2},1024)],64))),128))])}}});export{x as default};
@@ -0,0 +1 @@
1
+ import{J as e,Xt as t,Yt as ee,at as te,hr as n}from"./vendor-cameraui-K1Nw4PvF.js";import{Br as r,ct as ne,i,kr as a,o,st as s}from"./api-D1iULsSy.js";import{$n as c,C as re,Cr as l,Dn as u,In as d,S as f,Xn as p,Xt as m,cn as h,dn as g,dr as _,gn as v,hn as y,ln as b,or as ie,rn as x,sn as S,un as C,vn as w,x as T,yr as E}from"./vendor-Df81FCJz.js";import{U as D}from"./types-CeruGCb8.js";import{H as ae,M as oe,N as se,V as ce,a as le,i as ue,j as de,s as fe,v as pe}from"./vendor-primevue-DoA2Rwcb.js";import{t as O}from"./mqtt-ChvXxMhR.js";var me=D,k={class:`w-full h-full`},A={key:0,class:`w-full h-full flex items-center justify-center`},j={key:1,class:`flex flex-col w-full gap-6`},M={class:`card-title`},N={class:`flex items-center gap-4`},P={class:`flex flex-col field-switch-gap min-w-0`},F={class:`text-sm font-bold text-color`},I={class:`card-title`},L={class:`flex flex-col gap-6`},R={class:`flex items-center gap-4 cui-toggle-switch`},z={class:`flex flex-col field-switch-gap`},he={for:`enabled`,class:`cui-label-switch`},ge={class:`flex flex-col field-gap`},_e={for:`mode`,class:`cui-label`},ve={class:`flex flex-col sm:flex-row gap-6`},ye={for:`host`,class:`cui-label`},be={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},xe={for:`port`,class:`cui-label`},Se={class:`flex flex-col field-gap`},Ce={for:`protocol`,class:`cui-label`},we={class:`flex flex-col sm:flex-row gap-6`},Te={class:`flex flex-col field-gap flex-1 min-w-0`},Ee={for:`username`,class:`cui-label`},De={class:`flex flex-col field-gap flex-1 min-w-0`},Oe={for:`password`,class:`cui-label`},ke={class:`flex flex-col field-gap`},Ae={for:`brokerAddress`,class:`cui-label`},je={class:`flex flex-col sm:flex-row gap-6`},Me={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},Ne={for:`brokerPort`,class:`cui-label`},Pe={class:`flex flex-col field-gap flex-1 min-w-0`},Fe={for:`brokerUsername`,class:`cui-label`},Ie={class:`flex flex-col field-gap flex-1 min-w-0`},Le={for:`brokerPassword`,class:`cui-label`},B={class:`flex flex-col sm:flex-row gap-6`},Re={for:`clientId`,class:`cui-label`},ze={for:`topicPrefix`,class:`cui-label`},Be={class:`flex items-center gap-4 cui-toggle-switch`},Ve={class:`flex flex-col field-switch-gap`},He={for:`rejectUnauthorized`,class:`cui-label-switch`},Ue={class:`flex flex-col field-gap`},We={for:`tlsCa`,class:`cui-label`},Ge={class:`flex flex-col field-gap`},Ke={for:`tlsCert`,class:`cui-label`},qe={class:`flex flex-col field-gap`},Je={for:`tlsKey`,class:`cui-label`},Ye={class:`flex items-center gap-4 cui-toggle-switch`},Xe={class:`flex flex-col field-switch-gap`},Ze={for:`haDiscovery`,class:`cui-label-switch`},Qe={for:`haDiscovery.prefix`,class:`cui-label`},$e={class:`flex items-center gap-3`},V=w({__name:`SettingsMqtt`,setup(w){let D=new O,V=r(),{t:H}=n(),{data:U}=D.getMqttInfoQuery(),W=D.patchMqttInfoMutation(),G=D.testMqttConnectionMutation(),K=a(`/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=_(null),J=_(``),Y=_(null),X=S(()=>U.value?.passwordSet??!1),Z=S(()=>Y.value??U.value?.status??null),nt=S(()=>{switch(Z.value?.state){case`connected`:return`success`;case`connecting`:case`reconnecting`:return`warn`;case`error`:return`danger`;default:return`secondary`}}),rt=S(()=>{let e=Z.value?.state??`disabled`;return H(`views.settings.mqtt_state_${e}`)}),it=S(()=>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=S(()=>`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 p(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 a=ee,o=se,p=le,_=te,S=ce,w=ae,D=e,O=pe,V=fe,H=ne,U=de,K=oe,Y=ue,Z=t;return d(),g(`div`,k,[E(q)?(d(),g(`div`,j,[h(`div`,null,[h(`span`,M,l(n.$t(`views.settings.status`)),1),v(_,{class:`cui-card`},{content:c(()=>[h(`div`,N,[h(`div`,P,[h(`span`,F,l(n.$t(`views.settings.mqtt_broker`)),1),v(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:c(()=>[y(l(E(it)),1)]),_:1})]),v(p,{class:`ml-auto shrink-0`,severity:E(nt),value:E(rt)},null,8,[`severity`,`value`])])]),_:1})]),v(E(re),{class:`flex flex-col w-full gap-6`,"validation-schema":E(me),onSubmit:at},{default:c(()=>[h(`div`,null,[h(`span`,I,l(n.$t(`views.settings.mqtt_broker`)),1),v(_,{class:`cui-card`},{content:c(()=>[h(`div`,L,[h(`div`,R,[h(`div`,z,[h(`label`,he,l(n.$t(`components.form.label.enabled`)),1),v(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_enabled_info`)),1)]),_:1})]),v(S,{modelValue:E(q).enabled,"onUpdate:modelValue":r[0]||=e=>E(q).enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),h(`div`,ge,[h(`label`,_e,l(n.$t(`views.settings.mqtt_mode_label`)),1),v(w,{modelValue:E(q).mode,"onUpdate:modelValue":r[1]||=e=>E(q).mode=e,options:tt,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`]),E(q).mode===`embedded`?(d(),b(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_mode_embedded_info`)),1)]),_:1})):C(``,!0)]),E(q).mode===`external`?(d(),g(x,{key:0},[h(`div`,ve,[v(E(f),{modelValue:E(q).host,"onUpdate:modelValue":r[2]||=e=>E(q).host=e,modelModifiers:{trim:!0},name:`host`,as:`div`,class:`flex flex-col field-gap flex-1 min-w-0`},{default:c(({field:e,errors:t})=>[h(`label`,ye,l(n.$t(`views.settings.mqtt_host_label`)),1),v(D,u(e,{invalid:t.length>0,type:`text`,placeholder:`192.168.1.10`,class:`w-full`}),null,16,[`invalid`]),v(m,{name:`fade`},{default:c(()=>[v(E(T),{name:`host`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),h(`div`,be,[h(`label`,xe,l(n.$t(`views.settings.mqtt_port_label`)),1),v(O,{modelValue:E(q).port,"onUpdate:modelValue":r[3]||=e=>E(q).port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])])]),h(`div`,Se,[h(`label`,Ce,l(n.$t(`views.settings.mqtt_protocol_label`)),1),v(w,{modelValue:E(q).protocol,"onUpdate:modelValue":r[4]||=e=>E(q).protocol=e,options:et,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`])]),h(`div`,we,[h(`div`,Te,[h(`label`,Ee,l(n.$t(`views.settings.mqtt_username_label`)),1),v(D,{modelValue:E(q).username,"onUpdate:modelValue":r[5]||=e=>E(q).username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),h(`div`,De,[h(`label`,Oe,l(n.$t(`views.settings.mqtt_password_label`)),1),v(V,{modelValue:E(J),"onUpdate:modelValue":r[6]||=e=>ie(J)?J.value=e:null,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:E(X)?`••••••••`:``},null,8,[`modelValue`,`placeholder`]),E(X)?(d(),b(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_password_keep_hint`)),1)]),_:1})):C(``,!0)])])],64)):(d(),g(x,{key:1},[h(`div`,ke,[h(`label`,Ae,l(n.$t(`views.settings.mqtt_broker_address`)),1),v(K,null,{default:c(()=>[v(D,{"model-value":E(Q),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),v(U,null,{default:c(()=>[v(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:E(s),"button-props":{severity:`secondary`,text:!0},onAction:r[7]||=e=>E(i)(E(Q))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),v(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_broker_address_hint`)),1)]),_:1})]),h(`div`,je,[h(`div`,Me,[h(`label`,Ne,l(n.$t(`views.settings.mqtt_port_label`)),1),v(O,{modelValue:E(q).broker.port,"onUpdate:modelValue":r[8]||=e=>E(q).broker.port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])]),h(`div`,Pe,[h(`label`,Fe,l(n.$t(`views.settings.mqtt_username_label`)),1),v(D,{modelValue:E(q).broker.username,"onUpdate:modelValue":r[9]||=e=>E(q).broker.username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),h(`div`,Ie,[h(`label`,Le,l(n.$t(`views.settings.mqtt_password_label`)),1),v(K,null,{default:c(()=>[v(V,{modelValue:E(q).broker.password,"onUpdate:modelValue":r[10]||=e=>E(q).broker.password=e,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`off`},null,8,[`modelValue`]),v(U,null,{default:c(()=>[v(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:E(s),"button-props":{severity:`secondary`,text:!0},onAction:r[11]||=e=>E(i)(E(q).broker.password??``)},null,8,[`action-text`,`icon`])]),_:1})]),_:1})])])],64)),h(`div`,B,[v(E(f),{modelValue:E(q).clientId,"onUpdate:modelValue":r[12]||=e=>E(q).clientId=e,modelModifiers:{trim:!0},name:`clientId`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:c(({field:e,errors:t})=>[h(`label`,Re,l(n.$t(`views.settings.mqtt_client_id_label`)),1),v(D,u(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),v(m,{name:`fade`},{default:c(()=>[v(E(T),{name:`clientId`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),v(E(f),{modelValue:E(q).topicPrefix,"onUpdate:modelValue":r[13]||=e=>E(q).topicPrefix=e,modelModifiers:{trim:!0},name:`topicPrefix`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:c(({field:e,errors:t})=>[h(`label`,ze,l(n.$t(`views.settings.mqtt_topic_prefix_label`)),1),v(D,u(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),v(m,{name:`fade`},{default:c(()=>[v(E(T),{name:`topicPrefix`,class:`cui-input-error`})]),_:1}),v(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_topic_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])]),E(q).mode===`external`&&E(q).protocol===`mqtts`?(d(),g(x,{key:2},[h(`div`,Be,[h(`div`,Ve,[h(`label`,He,l(n.$t(`views.settings.mqtt_tls_reject_unauthorized`)),1),v(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_tls_reject_unauthorized_info`)),1)]),_:1})]),v(S,{modelValue:E(q).tls.rejectUnauthorized,"onUpdate:modelValue":r[14]||=e=>E(q).tls.rejectUnauthorized=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),h(`div`,Ue,[h(`label`,We,l(n.$t(`views.settings.mqtt_tls_ca_label`)),1),v(Y,{modelValue:E(q).tls.ca,"onUpdate:modelValue":r[15]||=e=>E(q).tls.ca=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),h(`div`,Ge,[h(`label`,Ke,l(n.$t(`views.settings.mqtt_tls_cert_label`)),1),v(Y,{modelValue:E(q).tls.cert,"onUpdate:modelValue":r[16]||=e=>E(q).tls.cert=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),h(`div`,qe,[h(`label`,Je,l(n.$t(`views.settings.mqtt_tls_key_label`)),1),v(Y,{modelValue:E(q).tls.key,"onUpdate:modelValue":r[17]||=e=>E(q).tls.key=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])])],64)):C(``,!0),h(`div`,Ye,[h(`div`,Xe,[h(`label`,Ze,l(n.$t(`views.settings.mqtt_ha_discovery`)),1),v(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_ha_discovery_info`)),1)]),_:1})]),v(S,{modelValue:E(q).haDiscovery.enabled,"onUpdate:modelValue":r[18]||=e=>E(q).haDiscovery.enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),E(q).haDiscovery.enabled?(d(),b(E(f),{key:3,modelValue:E(q).haDiscovery.prefix,"onUpdate:modelValue":r[19]||=e=>E(q).haDiscovery.prefix=e,modelModifiers:{trim:!0},name:`haDiscovery.prefix`,as:`div`,class:`flex flex-col field-gap`},{default:c(({field:e,errors:t})=>[h(`label`,Qe,l(n.$t(`views.settings.mqtt_ha_prefix_label`)),1),v(D,u(e,{invalid:t.length>0,type:`text`,placeholder:`homeassistant`}),null,16,[`invalid`]),v(m,{name:`fade`},{default:c(()=>[v(E(T),{name:`haDiscovery.prefix`,class:`cui-input-error`})]),_:1}),v(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[y(l(n.$t(`views.settings.mqtt_ha_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])):C(``,!0),h(`div`,$e,[v(Z,{type:`button`,severity:`secondary`,loading:E(G).isPending.value,disabled:E(q).mode===`external`&&!E(q).host,class:`cui-button-medium`,label:n.$t(`views.settings.mqtt_test`),onClick:ot},null,8,[`loading`,`disabled`,`label`]),v(Z,{type:`submit`,loading:E(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`])])):(d(),g(`div`,A,[v(a,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{V as default};
@@ -0,0 +1 @@
1
+ import{G as e,J as t,Xt as n,Yt as r,at as ee,hr as i,nn as te}from"./vendor-cameraui-K1Nw4PvF.js";import{Br as a,Dr as o,Tn as s}from"./api-D1iULsSy.js";import{$n as c,Bn as ne,Cr as l,In as u,Pn as d,Rn as f,Xn as p,cn as m,dn as h,dr as g,er as re,gn as _,hn as v,ln as y,lr as b,rn as x,sn as S,tn as ie,un as C,vn as w,yr as T}from"./vendor-Df81FCJz.js";import{i as E}from"./intercomService-BQYzjnAi.js";import{C as ae,E as oe,L as se,N as ce,V as le}from"./vendor-primevue-DoA2Rwcb.js";import{t as D}from"./notifications-CbL-1oMs.js";import{t as O}from"./usePushRegistration-vcbMrTxZ.js";import{t as ue}from"./delete-BWgOAzKl.js";import{t as de}from"./CuiDataTable-DfjXa0C1.js";import{t as k}from"./usePermissions-DZitFsBQ.js";var fe={class:`flex flex-col w-full gap-6`},pe={class:`card-title`},me={class:`flex flex-col gap-6`},he={class:`text-sm`},ge={key:1,class:`flex items-center justify-center py-8`},_e={class:`flex items-center gap-4`},ve={class:`flex flex-col field-switch-gap`},ye={class:`cui-label-switch`},be={key:0,class:`flex items-center gap-4`},xe={class:`flex flex-col field-switch-gap min-w-0`},Se={class:`cui-label-switch`},Ce={key:1,class:`flex items-center gap-4`},we={class:`flex flex-col field-switch-gap min-w-0`},Te={class:`cui-label-switch`},Ee={key:2,class:`flex flex-col gap-2`},De={class:`flex items-center gap-4`},Oe={class:`flex flex-col field-switch-gap`},ke={class:`cui-label-switch`},Ae={key:0,class:`grid grid-cols-1 sm:grid-cols-3 gap-3 mt-2`},je={class:`flex flex-col field-gap`},Me={for:`qh-from`,class:`cui-label`},Ne={class:`flex flex-col field-gap`},Pe={for:`qh-to`,class:`cui-label`},Fe={class:`flex flex-col field-gap`},Ie={for:`qh-tz`,class:`cui-label`},Le={key:0},Re={class:`card-title`},ze={class:`flex flex-col gap-6`},Be={class:`text-sm`},Ve={key:0,class:`flex items-center justify-center py-8`},He={key:1,class:`text-sm text-muted text-center py-8`},Ue={key:2,class:`flex flex-col gap-3`},We={class:`flex items-center gap-4`},Ge={class:`flex flex-col field-switch-gap`},Ke={class:`cui-label-switch`},qe={key:1},Je={class:`card-title`},Ye={class:`flex flex-col gap-6`},Xe={class:`text-sm`},Ze={key:0,class:`flex items-center justify-center py-8`},Qe={key:1,class:`text-sm text-muted text-center py-8`},$e={key:2,class:`flex flex-col gap-3`},et={class:`flex items-center gap-4`},tt={class:`flex flex-col field-switch-gap`},nt={class:`cui-label-switch`},rt={key:2},it={class:`card-title`},at={class:`flex flex-col gap-6`},ot={class:`text-sm`},st={key:0,class:`flex items-center justify-center py-8`},ct={key:1,class:`text-sm text-muted text-center py-8`},lt={key:3,class:`flex justify-end gap-2`},A=w({__name:`SettingsNotifications`,setup(w){let A=new D,{t:j,te:ut}=i(),M=a(),dt=s(void 0,`admin`),{registerForPush:ft,forgetIfThisDevice:pt,getSyncState:mt,restoreMarker:ht}=O(),{isElectronApp:N,electron:P}=E(),{states:gt,refresh:_t}=k(),{data:F,isLoading:vt}=A.getSettingsQuery(),{data:I,isLoading:yt}=A.listDevicesQuery(()=>!0),{data:L,isLoading:bt}=A.listSourcesQuery(),{mutate:xt,isPending:St}=A.setSettingsQuery(),{mutateAsync:Ct}=A.setSettingsQuerySilent(),{mutate:wt}=A.revokeDeviceQuery(),{mutate:R}=A.updateDeviceQuery(),z=Intl.DateTimeFormat().resolvedOptions().timeZone||`UTC`,B=g(null),V=g(``),H=g(!1),U=g(!1),W=g(!1),G=g(!0),K=g(!1),q=g(null),J=b({}),Y=g(null),Tt=S(()=>!!B.value&&JSON.stringify(B.value)!==V.value),X=S(()=>!!B.value?.enabled),Z=S(()=>St.value),Et=S(()=>$(B.value?.quietHours?.from)),Dt=S(()=>$(B.value?.quietHours?.to));function Q(e){e&&(B.value=JSON.parse(JSON.stringify(e)),V.value=JSON.stringify(e))}function Ot(){Q(F.value)}function kt(e){B.value&&(e?B.value.quietHours={from:`22:00`,to:`07:00`,timezone:z}:delete B.value.quietHours)}function $(e){if(!e)return null;let[t,n]=e.split(`:`).map(Number);if(!Number.isFinite(t)||!Number.isFinite(n))return null;let r=new Date;return r.setHours(t,n,0,0),r}function At(e){return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:`00:00`}function jt(e,t){B.value?.quietHours&&(B.value.quietHours[e]=At(t))}function Mt(e){return B.value?.systemTypes?.[e]!==!1}function Nt(e,t){B.value&&(B.value.systemTypes||(B.value.systemTypes={}),t?delete B.value.systemTypes[e]:B.value.systemTypes[e]=!1)}function Pt(e){return B.value?.sources?.[e]!==!1}function Ft(e,t){B.value&&(B.value.sources||(B.value.sources={}),t?delete B.value.sources[e]:B.value.sources[e]=!1)}function It(e){let t=`views.settings.notifications.system_types.${e.type.replaceAll(`.`,`_`)}`;return ut(t)?j(t):e.label}function Lt(){B.value&&xt({settings:B.value},{onSuccess:e=>Q(e)})}async function Rt(e){if(B.value&&F.value){H.value=!0;try{Q(await Ct({settings:{...F.value,enabled:e}}))}catch(e){M.add({severity:`error`,detail:e,life:3e3})}finally{H.value=!1}}}async function zt(){let e=o(),t=e?await mt(e,I.value):{status:`unknown`};U.value=t.status===`registered`,t.status===`registered`&&t.device&&e&&await ht(e,t.device.id)}async function Bt(){if(N&&P)try{G.value=await P.invoke(`get-desktop-notifications`)}catch{}}async function Vt(e){if(P){K.value=!0;try{G.value=await P.invoke(`set-desktop-notifications`,e)}catch(e){M.add({severity:`error`,detail:e,life:3e3})}finally{K.value=!1}}}async function Ht(){W.value=!0;try{await ft(),await zt(),await A.queryClient.invalidateQueries({queryKey:[`notifications`,`devices`]})}catch(e){M.add({severity:`error`,detail:e,life:3e3})}finally{W.value=!1}}function Ut(e){q.value=e;let t=o();wt({deviceId:e},{onSuccess:async()=>{t&&await pt(t,e),zt()},onSettled:()=>q.value=null})}function Wt(e){let t=J[e.id];if(t==null)return;let n=t.trim();if(!n||n===e.name){delete J[e.id];return}Y.value=e.id,R({deviceId:e.id,patch:{name:n}},{onSuccess:()=>delete J[e.id],onSettled:()=>Y.value=null})}function Gt(e,t){Y.value=e,R({deviceId:e,patch:{active:t}},{onSettled:()=>Y.value=null})}return p(F,Q,{immediate:!0}),p(I,()=>!1,{immediate:!0}),d(()=>{N&&Bt(),_t()}),(i,a)=>{let o=ne(`RouterLink`),s=ce,d=r,p=le,g=n,b=e,S=t,w=ee,E=se,D=ae,O=oe,k=ue,A=de,j=te;return u(),h(`div`,null,[m(`div`,fe,[m(`div`,null,[m(`span`,pe,l(i.$t(`views.settings.notifications.general`)),1),_(w,{class:`cui-card`},{content:c(()=>[m(`div`,me,[m(`span`,he,l(i.$t(`views.settings.notifications.general_info`)),1),T(gt).notifications===`denied`?(u(),y(s,{key:0,severity:`warn`,size:`small`},{default:c(()=>[v(l(i.$t(`views.settings.notifications.os_permission_denied`))+` `,1),_(o,{to:`/settings/permissions`,class:`underline`},{default:c(()=>[v(l(i.$t(`views.settings.notifications.os_permission_link`)),1)]),_:1})]),_:1})):C(``,!0),T(vt)&&!T(B)?(u(),h(`div`,ge,[_(d,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):T(B)?(u(),h(x,{key:2},[m(`div`,_e,[m(`div`,ve,[m(`label`,ye,l(i.$t(`views.settings.notifications.enable`)),1),_(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[v(l(i.$t(`views.settings.notifications.enable_info`)),1)]),_:1})]),_(p,{"model-value":T(B).enabled,loading:T(H),class:`ml-auto shrink-0`,"onUpdate:modelValue":Rt},null,8,[`model-value`,`loading`])]),T(!1)&&T(B).enabled?(u(),h(`div`,be,[m(`div`,xe,[m(`label`,Se,l(i.$t(`views.settings.notifications.this_device`)),1),_(s,{severity:T(U)?`secondary`:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[v(l(T(U)?i.$t(`views.settings.notifications.this_device_synced`):i.$t(`views.settings.notifications.this_device_unsynced`)),1)]),_:1},8,[`severity`])]),_(g,{severity:T(U)?`secondary`:void 0,loading:T(W),class:`cui-button-small ml-auto shrink-0`,label:T(U)?i.$t(`views.settings.notifications.resync`):i.$t(`views.settings.notifications.sync`),onClick:Ht},null,8,[`severity`,`loading`,`label`])])):T(N)&&T(B).enabled?(u(),h(`div`,Ce,[m(`div`,we,[m(`label`,Te,l(i.$t(`views.settings.notifications.this_device`)),1),_(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[v(l(i.$t(`views.settings.notifications.this_device_desktop`)),1)]),_:1})]),_(p,{"model-value":T(G),loading:T(K),class:`ml-auto shrink-0`,"onUpdate:modelValue":Vt},null,8,[`model-value`,`loading`])])):C(``,!0),T(B).enabled?(u(),h(`div`,Ee,[m(`div`,De,[m(`div`,Oe,[m(`label`,ke,l(i.$t(`views.settings.notifications.quiet_hours`)),1),_(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[v(l(i.$t(`views.settings.notifications.quiet_hours_info`)),1)]),_:1})]),_(p,{"model-value":!!T(B).quietHours,class:`ml-auto shrink-0`,"onUpdate:modelValue":kt},null,8,[`model-value`])]),T(B).quietHours?(u(),h(`div`,Ae,[m(`div`,je,[m(`label`,Me,l(i.$t(`views.settings.notifications.from`)),1),_(b,{"input-id":`qh-from`,"model-value":T(Et),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":a[0]||=e=>jt(`from`,e)},null,8,[`model-value`])]),m(`div`,Ne,[m(`label`,Pe,l(i.$t(`views.settings.notifications.to`)),1),_(b,{"input-id":`qh-to`,"model-value":T(Dt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":a[1]||=e=>jt(`to`,e)},null,8,[`model-value`])]),m(`div`,Fe,[m(`label`,Ie,l(i.$t(`views.settings.notifications.timezone`)),1),_(S,{id:`qh-tz`,modelValue:T(B).quietHours.timezone,"onUpdate:modelValue":a[2]||=e=>T(B).quietHours.timezone=e,placeholder:T(z)},null,8,[`modelValue`,`placeholder`])])])):C(``,!0)])):C(``,!0)],64)):C(``,!0)])]),_:1})]),T(X)&&T(dt)?(u(),h(`div`,Le,[m(`span`,Re,l(i.$t(`views.settings.notifications.system_notifications`)),1),_(w,{class:`cui-card`},{content:c(()=>[m(`div`,ze,[m(`span`,Be,l(i.$t(`views.settings.notifications.system_notifications_info`)),1),T(bt)&&!T(L)?(u(),h(`div`,Ve,[_(d,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):T(L)?.system?.length?(u(),h(`div`,Ue,[(u(!0),h(x,null,f(T(L).system,(e,t)=>(u(),h(`div`,{key:e.type},[m(`div`,We,[m(`div`,Ge,[m(`label`,Ke,l(It(e)),1),e.description?(u(),y(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:c(()=>[v(l(e.description),1)]),_:2},1024)):C(``,!0)]),_(p,{"model-value":Mt(e.type),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Nt(e.type,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<T(L).system.length-1?(u(),y(E,{key:0,class:`my-2`})):C(``,!0)]))),128))])):(u(),h(`div`,He,l(i.$t(`views.settings.notifications.no_system_types`)),1))])]),_:1})])):C(``,!0),T(X)?(u(),h(`div`,qe,[m(`span`,Je,l(i.$t(`views.settings.notifications.plugin_notifications`)),1),_(w,{class:`cui-card`},{content:c(()=>[m(`div`,Ye,[m(`span`,Xe,l(i.$t(`views.settings.notifications.plugin_notifications_info`)),1),T(bt)&&!T(L)?(u(),h(`div`,Ze,[_(d,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):T(L)?.plugins?.length?(u(),h(`div`,$e,[(u(!0),h(x,null,f(T(L).plugins,(e,t)=>(u(),h(`div`,{key:e.id},[m(`div`,et,[m(`div`,tt,[m(`label`,nt,l(e.name),1)]),_(p,{"model-value":Pt(e.id),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Ft(e.id,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<T(L).plugins.length-1?(u(),y(E,{key:0,class:`my-2`})):C(``,!0)]))),128))])):(u(),h(`div`,Qe,l(i.$t(`views.settings.notifications.no_plugin_sources`)),1))])]),_:1})])):C(``,!0),T(X)?(u(),h(`div`,rt,[m(`span`,it,l(i.$t(`views.settings.notifications.devices`)),1),_(w,{class:`cui-card`},{content:c(()=>[m(`div`,at,[m(`span`,ot,l(i.$t(`views.settings.notifications.devices_info`)),1),T(yt)&&!T(I)?(u(),h(`div`,st,[_(d,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):T(I)?.length?(u(),y(A,{key:2,value:T(I),"striped-rows":``},{default:c(()=>[_(D,{field:`name`,header:i.$t(`views.settings.notifications.col_name`)},{body:c(({data:e})=>[_(S,{"model-value":T(J)[e.id]??e.name,disabled:T(Y)===e.id,class:`w-full max-w-xs min-w-[150px]`,"onUpdate:modelValue":t=>T(J)[e.id]=t??``,onBlur:t=>Wt(e),onKeyup:ie(t=>Wt(e),[`enter`])},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`,`onBlur`,`onKeyup`])]),_:1},8,[`header`]),_(D,{field:`pluginName`,header:i.$t(`views.settings.notifications.col_plugin`)},{body:c(({data:e})=>[_(O,{label:e.pluginName,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`]),_(D,{field:`active`,header:i.$t(`views.settings.notifications.col_active`),style:{width:`7rem`}},{body:c(({data:e})=>[_(p,{"model-value":e.active,loading:T(Y)===e.id,"onUpdate:modelValue":t=>Gt(e.id,t)},null,8,[`model-value`,`loading`,`onUpdate:modelValue`])]),_:1},8,[`header`]),_(D,{field:`actions`,header:``,style:{width:`6rem`}},{body:c(({data:e})=>[re((u(),y(g,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:T(q)===e.id,onClick:t=>Ut(e.id)},{icon:c(()=>[_(k,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[j,{value:i.$t(`views.settings.notifications.revoke`)}]])]),_:1})]),_:1},8,[`value`])):(u(),h(`div`,ct,l(i.$t(`views.settings.notifications.no_devices`)),1))])]),_:1})])):C(``,!0),T(B)&&T(Tt)?(u(),h(`div`,lt,[_(g,{severity:`secondary`,outlined:``,class:`cui-button-medium`,disabled:T(Z),label:i.$t(`views.settings.notifications.reset`),onClick:Ot},null,8,[`disabled`,`label`]),_(g,{severity:`success`,class:`cui-button-medium`,loading:T(Z),label:i.$t(`views.settings.notifications.save`),onClick:Lt},null,8,[`loading`,`label`])])):C(``,!0)])])}}});export{A as default};
@@ -0,0 +1 @@
1
+ import{Xt as e,at as t,hi as n}from"./vendor-cameraui-K1Nw4PvF.js";import{$n as r,Cr as i,In as a,Pn as o,Rn as s,cn as c,dn as l,dr as u,gn as d,hn as f,ln as p,rn as m,un as h,vn as g,yr as _}from"./vendor-Df81FCJz.js";import{N as v,a as y}from"./vendor-primevue-DoA2Rwcb.js";import{t as b}from"./usePermissions-DZitFsBQ.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=g({__name:`SettingsPermissions`,setup(g){let{states:O,canOpenSettings:k,refresh:A,request:j,openSettings:M}=b(),N=[{name:`microphone`},{name:`location`},{name:`notifications`}],P=u(null);function F(e){return e===`granted`?`success`:e===`denied`?`danger`:e===`prompt`?`warn`:`secondary`}async function I(e){P.value=e;try{await j(e)}finally{P.value=null}}return n(document,`visibilitychange`,()=>{document.visibilityState===`visible`&&A()}),o(()=>{A()}),(n,o)=>{let u=v,g=y,b=e,A=t;return a(),l(`div`,null,[c(`div`,x,[c(`div`,null,[c(`span`,S,i(n.$t(`views.settings.permissions.general`)),1),d(A,{class:`cui-card`},{content:r(()=>[c(`div`,C,[c(`span`,w,i(n.$t(`views.settings.permissions.general_info`)),1),(a(),l(m,null,s(N,e=>c(`div`,{key:e.name,class:`flex items-center gap-4`},[c(`div`,T,[c(`label`,E,i(n.$t(`views.settings.permissions.${e.name}`)),1),d(u,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:r(()=>[f(i(n.$t(`views.settings.permissions.${e.name}_info`)),1)]),_:2},1024),_(O)[e.name]===`denied`&&!_(k)?(a(),p(u,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:r(()=>[f(i(n.$t(`views.settings.permissions.browser_hint`)),1)]),_:1})):h(``,!0)]),c(`div`,D,[d(g,{severity:F(_(O)[e.name]),value:n.$t(`views.settings.permissions.state_${_(O)[e.name]}`)},null,8,[`severity`,`value`]),_(O)[e.name]===`prompt`||_(O)[e.name]===`unknown`?(a(),p(b,{key:0,loading:_(P)===e.name,class:`cui-button-small`,label:n.$t(`views.settings.permissions.request`),onClick:t=>I(e.name)},null,8,[`loading`,`label`,`onClick`])):_(O)[e.name]===`denied`&&_(k)?(a(),p(b,{key:1,severity:`secondary`,class:`cui-button-small`,label:n.$t(`views.settings.permissions.open_settings`),onClick:_(M)},null,8,[`label`,`onClick`])):h(``,!0)])])),64))])]),_:1})])])])}}});export{O as default};
@@ -0,0 +1 @@
1
+ import{C as e,Ht as t,Rt as n,Yt as r,at as i,hr as a}from"./vendor-cameraui-K1Nw4PvF.js";import{Br as o}from"./api-D1iULsSy.js";import{$n as s,Cr as c,In as l,Pn as u,Xn as d,cn as f,dn as p,dr as m,gn as h,hn as g,ln as _,sn as v,un as y,vn as b,yr as x}from"./vendor-Df81FCJz.js";import{t as ee}from"./alert-outline-B4ZZowEj.js";import{x as S}from"./eventLabels-idFWh3Y_.js";import{N as C}from"./vendor-primevue-DoA2Rwcb.js";import{t as w}from"./CuiSchema-DScmDQsh.js";import{t as te}from"./CuiPluginOAuthButton-DnQ838JJ.js";var T={class:`flex flex-col w-full gap-6`},E={key:0,class:`cui-banner cui-banner-error`},D={key:1,class:`cui-banner cui-banner-warn`},O={key:2,class:`cui-banner cui-banner-warn`},k={class:`card-title`},A={class:`flex items-center justify-between gap-4`},j={class:`min-w-0`},M={class:`text-sm`},N={class:`text-xs text-muted-color mt-1`},P={key:5},F={class:`card-title`},I={key:0,class:`flex items-center justify-center py-8`},L={key:1,class:`text-sm text-muted text-center py-8`},R=`@camera.ui/camera-ui-nvr`,z=b({__name:`SettingsRecordings`,setup(b){let{t:z}=a(),B=o(),{stats:V,isLoading:H,refresh:U}=e(),{state:W,refresh:G}=n(R),{isConnected:K,isLoading:q,config:J,getConfig:Y,setConfig:X,setValue:Z,submitValue:Q}=t(R),$=m(!1),ne=v(()=>({License:z(`views.settings.recordings.group_info_license`),Storage:z(`views.settings.recordings.group_info_storage`),"Face Recognition":z(`views.settings.recordings.group_info_faces`),GenAI:z(`views.settings.recordings.group_info_genai`),Moments:z(`views.settings.recordings.group_info_moments`),Episodes:z(`views.settings.recordings.group_info_episodes`)})),re=v(()=>{switch(W.value.status){case`connected`:return z(`components.oauth.connected_as`,{email:W.value.userEmail||`—`});case`awaiting_user`:case`polling`:return z(`components.oauth.tooltip_authorizing`);case`error`:return z(`components.oauth.error_generic`);default:return z(`views.settings.recordings.license_disconnected`)}});async function ie(e){try{await Z(e.key,void 0),B.add({severity:`success`,detail:z(`components.toast.config_updated`),life:3e3}),U()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}async function ae(e){try{let t=await Q(e.key,e.payload);t?.toast?B.add({severity:t.toast.type,detail:t.toast.message,life:3e3}):B.add({severity:`success`,detail:z(`components.toast.config_updated`),life:3e3}),U()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}async function oe(e){try{await X(e),B.add({severity:`success`,detail:z(`components.toast.config_updated`),life:3e3}),U()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}return d(K,async e=>{e&&await Y()},{immediate:!0}),u(async()=>{try{await G()}finally{$.value=!0}}),(e,t)=>{let n=S,a=ee,o=C,u=i,d=r;return l(),p(`div`,null,[f(`div`,T,[x(V)&&x(V).paused===!0?(l(),p(`div`,E,[h(n,{class:`shrink-0 w-5 h-5`}),f(`span`,null,c(e.$t(`views.settings.recordings.disk_critical`)),1)])):x(V)&&x(V).diskFreePercent>0&&x(V).diskFreePercent<8?(l(),p(`div`,D,[h(a,{class:`shrink-0 w-5 h-5`}),f(`span`,null,c(e.$t(`views.settings.recordings.disk_warning`)),1)])):y(``,!0),x(V)&&x(V).smallVolume?(l(),p(`div`,O,[h(a,{class:`shrink-0 w-5 h-5`}),f(`span`,null,c(e.$t(`views.settings.recordings.disk_small_volume`)),1)])):y(``,!0),x($)&&x(W).status!==`connected`?(l(),_(o,{key:3,severity:`warn`,size:`small`},{default:s(()=>[g(c(e.$t(`views.settings.recordings.cloud_login_hint`)),1)]),_:1})):y(``,!0),f(`div`,null,[f(`span`,k,c(e.$t(`views.settings.recordings.license_title`)),1),h(u,{class:`cui-card`},{content:s(()=>[f(`div`,A,[f(`div`,j,[f(`p`,M,c(x(re)),1),f(`p`,N,c(e.$t(`views.settings.recordings.license_description`)),1)]),h(te,{"plugin-name":R,class:`flex-shrink-0`})])]),_:1})]),x(J)?(l(),_(w,{key:4,"schema-form":{schema:x(J).schema,config:x(J).config},loading:x(q),"groups-as-cards":``,"group-descriptions":x(ne),onOnAction:ie,onOnSubmit:ae,onOnFormSubmit:oe},null,8,[`schema-form`,`loading`,`group-descriptions`])):(l(),p(`div`,P,[f(`span`,F,c(e.$t(`views.settings.recordings.global_settings`)),1),h(u,{class:`cui-card`},{content:s(()=>[x(H)||x(q)?(l(),p(`div`,I,[h(d,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(l(),p(`div`,L,c(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})]))])])}}});export{z as default};
@@ -0,0 +1 @@
1
+ .cf-login-setup[data-v-a44e0892],.cui-pair-layout[data-v-a44e0892]{flex-direction:column;gap:1.5rem;display:flex}@media (width>=768px){.cf-login-setup[data-v-a44e0892],.cui-pair-layout[data-v-a44e0892]{flex-direction:row;align-items:flex-start;gap:2rem}}.cf-login-qr[data-v-a44e0892],.cui-pair-qr[data-v-a44e0892]{flex-direction:column;flex-shrink:0;align-items:center;display:flex}
@@ -0,0 +1,2 @@
1
+ import{J as e,Xt as t,Yt as n,at as r,hr as i,nn as ee}from"./vendor-cameraui-K1Nw4PvF.js";import{Br as a,Hr as o,In as s,Jr as te,Qr as c,Rr as l,Vr as u,Zr as d,ct as ne,dn as re,gr as ie,i as f,o as p,pn as ae,r as m,st as oe,ti as h}from"./api-D1iULsSy.js";import{$n as g,C as se,Cr as _,Dn as v,Hn as ce,In as y,K as b,Rn as le,S as x,Xn as S,Xt as C,Z as w,br as ue,cn as T,dn as E,dr as D,er as de,gn as O,hn as k,jn as fe,ln as A,or as pe,rn as j,sn as M,sr as me,un as N,vn as P,x as F,yr as I}from"./vendor-Df81FCJz.js";import{a as he}from"./intercomService-BQYzjnAi.js";import{I as ge,b as L}from"./types-CeruGCb8.js";import{n as _e,r as ve,t as ye}from"./lan-DvYEO83l.js";import{H as be,M as xe,N as Se,V as Ce,a as we,j as Te,l as Ee,s as De}from"./vendor-primevue-DoA2Rwcb.js";import{t as Oe}from"./server-DlK8gUoE.js";import{t as ke}from"./api-DbUdfXO_.js";import{t as Ae}from"./information-outline-ChOM9qgI.js";import{t as je}from"./CuiQRCode-S9fPi0_l.js";var Me={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function R(e,t){return y(),E(`svg`,Me,[...t[0]||=[T(`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 Ne=me({name:`material-symbols-light-cloud-off`,render:R}),Pe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Fe(e,t){return y(),E(`svg`,Pe,[...t[0]||=[T(`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 Ie=me({name:`material-symbols-check`,render:Fe}),z={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Le(e,t){return y(),E(`svg`,z,[...t[0]||=[T(`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 Re=me({name:`boxicons-computer-filled`,render:Le});async function ze({signal:e}){return(await d.get(`/remote`,{signal:e})).data}async function Be(e){return(await d.patch(`/remote`,e)).data}async function Ve(e){return(await d.post(`/remote/pair/init`,e?{name:e}:{})).data}async function He({name:e}={}){return(await d.post(`/remote/pair/poll`,e?{name:e}:{})).data}async function Ue(){await d.delete(`/remote/unregister`)}async function We({signal:e}){return(await d.get(`/remote/status`,{signal:e})).data}async function Ge(e){await d.patch(`/remote/name`,{name:e})}async function Ke({signal:e}){return(await d.get(`/remote/tunnel`,{signal:e})).data}async function qe({signal:e}={}){return(await d.get(`/remote/connection-info`,{signal:e})).data}async function B(e){return(await d.post(`/remote/test/${e}`)).data}async function Je({signal:e}={}){return(await d.get(`/remote/cloudflare/managed/status`,{signal:e})).data}async function Ye(e){await d.post(`/remote/cloudflare/managed/connect`,{hostname:e})}async function Xe(){await d.post(`/remote/cloudflare/managed/cancel`)}async function Ze(){await d.post(`/remote/cloudflare/managed/disconnect`)}async function Qe(){await d.post(`/remote/cloudflare/managed/logout`)}var $e=class{_queryClient=w();t=u.global.t;toast=a();queryActivator=D([{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 l({queryKey:[`remote`],queryFn:({signal:e})=>ze({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRemoteInfoQuery`&&e.enabled),staleTime:1e3})}patchRemoteInfoQuery(){return b({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 l({queryKey:[`remote`,`status`],queryFn:({signal:e})=>We({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRegistrationStatusQuery`&&e.enabled),staleTime:1e3})}pairInitMutation(){return b({mutationFn:Ve})}pairPollMutation(){return b({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 b({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 l({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 b({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 l({queryKey:[`remote`,`connection-info`],queryFn:({signal:e})=>qe({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getConnectionInfoQuery`&&e.enabled),refetchInterval:1e4})}testRemoteModeMutation(){return b({mutationFn:B})}getCloudflareManagedStatusQuery(){return l({queryKey:[`remote`,`cloudflare`,`managed`],queryFn:({signal:e})=>Je({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 b({mutationFn:Ye,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedCancelMutation(){return b({mutationFn:Xe,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedDisconnectMutation(){return b({mutationFn:Ze,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedLogoutMutation(){return b({mutationFn:Qe,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}},et={class:`flex flex-col gap-6`},tt={class:`flex flex-col field-gap`},nt={class:`section-chip`},V={class:`text-sm font-bold text-color`},H={class:`flex flex-col field-gap`},U={class:`section-chip`},W={class:`text-sm text-color`},G={class:`flex flex-col field-gap`},K={class:`section-chip`},q={key:0,class:`text-sm text-muted`},rt={key:1,class:`flex flex-col gap-2`},J={class:`flex flex-col min-w-0`},Y={class:`text-sm text-color`},it={class:`text-xs text-muted break-all`},at=P({__name:`ConnectionDetails`,props:{currentType:{},currentAddress:{}},setup(e,{expose:t}){let n=e,r=new ke,ee=a(),{t:o}=i(),{data:s}=r.apiInfoQuery(),te=h()?c():void 0,l=m(),u=M(()=>te?.attempts.rounds.value[0]),d=M(()=>te?.target.value?.endpoint.url??o(`components.connection_details.no_target`)),ne=M(()=>{let e=te?.target.value?.endpoint;return e?ie(e):o(`components.connection_details.no_target`)}),re=M(()=>u.value?.attempts.map(e=>({...e,modeLabel:ie({url:e.url,mode:e.mode})}))??[]);function ie(e){return ve(e,l)?o(`components.connection_details.mode_lan`):o(`components.connection_details.mode_wan`)}function p(e){return e.outcome===`connected`&&e.url===d.value}function ae(e){return p(e)?`bg-green-500`:e.outcome===`failed`?`bg-red-500`:`bg-neutral-400`}function oe(e){return e.durationMs===void 0?`…`:e.durationMs>=1e3?`${(e.durationMs/1e3).toFixed(1)} s`:`${e.durationMs} ms`}function se(e){return p(e)?o(`components.connection_details.outcome_connected`):e.outcome===`connected`?o(`components.connection_details.outcome_reachable`):e.outcome===`superseded`?o(`components.connection_details.outcome_superseded`):e.outcome===`pending`?o(`components.connection_details.outcome_pending`):e.reason?.includes(`timeout`)?o(`components.connection_details.outcome_timeout`):e.reason??o(`components.connection_details.outcome_failed`)}async function v(){let e=[new Date().toISOString(),`camera.ui ${s.value?.version??`?`}`,``,`${ne.value}: ${d.value}`,`server sees: ${n.currentType} ${n.currentAddress}`,``];for(let t of re.value)e.push(`${p(t)?`+`:`-`} ${t.modeLabel} ${t.url} ${oe(t)} ${se(t)}`);if(u.value?.reason&&e.push(``,u.value.reason),await f(e.join(`
2
+ `))){ee.add({severity:`success`,detail:o(`components.connection_details.copied`),life:2e3});return}return ee.add({severity:`error`,detail:o(`components.connection_details.copy_failed`),life:3e3}),null}return t({onConfirm:v}),(t,n)=>{let r=Se;return y(),E(`div`,et,[T(`div`,tt,[T(`span`,nt,_(t.$t(`components.connection_details.current`)),1),T(`span`,V,_(I(ne)),1),O(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint break-all`},{default:g(()=>[k(_(I(d)),1)]),_:1})]),T(`div`,H,[T(`span`,U,_(t.$t(`components.connection_details.server_view`)),1),T(`span`,W,_(e.currentType),1),O(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint break-all`},{default:g(()=>[k(_(e.currentAddress),1)]),_:1})]),T(`div`,G,[T(`span`,K,_(t.$t(`components.connection_details.last_attempt`)),1),I(re).length===0?(y(),E(`p`,q,_(t.$t(`components.connection_details.no_attempts`)),1)):(y(),E(`div`,rt,[(y(!0),E(j,null,le(I(re),e=>(y(),E(`div`,{key:e.url,class:`flex items-start gap-3`},[T(`span`,{class:ue([`mt-1.5 w-2 h-2 rounded-full shrink-0`,ae(e)])},null,2),T(`div`,J,[T(`span`,Y,[k(_(e.modeLabel)+` `,1),n[0]||=T(`span`,{class:`text-muted`},`·`,-1),k(` `+_(oe(e))+` `,1),n[1]||=T(`span`,{class:`text-muted`},`·`,-1),k(` `+_(se(e)),1)]),T(`span`,it,_(e.url),1)])]))),128))]))])])}}}),ot=ge,st=L,ct={class:`w-full h-full`},lt={key:0,class:`w-full h-full flex items-center justify-center`},ut={key:1,class:`flex flex-col w-full gap-6`},dt={key:0},ft={class:`card-title`},pt={class:`flex items-center gap-4`},mt={class:`flex flex-col field-switch-gap min-w-0`},ht={class:`text-sm font-bold text-color`},gt={class:`card-title`},_t={class:`flex flex-col gap-6`},vt={class:`flex items-center gap-4`},yt={class:`flex flex-col field-switch-gap`},bt={for:`enabled`,class:`cui-label-switch`},xt={class:`flex flex-col field-gap`},St={for:`serverName`,class:`cui-label`},Ct={class:`flex items-center gap-4`},wt={class:`flex flex-col field-switch-gap`},Tt={class:`text-sm`},Et={class:`ml-auto shrink-0`},Dt={key:1,class:`text-sm font-bold text-amber-500`},Ot={key:2,class:`text-sm font-bold`},kt={key:0,class:`flex items-center gap-4`},At={class:`flex flex-col field-switch-gap`},jt={class:`text-sm`},Mt={class:`ml-auto shrink-0`},Nt={key:`pairing`,class:`cui-toggle-switch flex flex-col gap-4`},Pt={class:`cui-pair-layout`},Ft={class:`cui-pair-qr`},It={class:`flex flex-col gap-4 flex-1 min-w-0`},Lt={class:`flex flex-col field-gap`},Rt={class:`cui-label`},zt={class:`flex flex-col field-gap`},Bt={class:`cui-label`},Vt={class:`flex items-center gap-3`},Ht={class:`text-sm`},Ut={class:`flex items-center gap-4`},Wt={class:`flex`},Gt={class:`card-title`},Kt={class:`flex flex-col gap-6`},qt={class:`flex items-center gap-4`},Jt={class:`flex flex-col field-switch-gap`},Yt={for:`directEnabled`,class:`cui-label-switch`},Xt={class:`flex flex-col field-gap`},Zt={class:`cui-label`},Qt={for:`directMode`,class:`cui-label`},$t={key:0,class:`cui-toggle-switch flex flex-col gap-4`},en={class:`flex flex-col field-gap`},tn={for:`cloudflareVariant`,class:`cui-label`},nn={key:0,class:`flex items-center gap-3`},rn={class:`flex flex-col field-gap`},an={for:`cloudflareHostname`,class:`cui-label`},on={class:`flex flex-col field-gap`},sn={for:`cloudflareToken`,class:`cui-label`},cn={class:`flex items-center gap-3`},ln={class:`flex flex-col field-gap`},un={for:`cloudflareHostnameManaged`,class:`cui-label`},dn={class:`flex items-center gap-3`},fn={key:0,class:`cf-login-setup`},pn={class:`cf-login-qr`},mn={class:`flex flex-col gap-4 flex-1 min-w-0`},hn={class:`flex flex-col field-gap`},gn={class:`cui-label`},_n={class:`flex items-center gap-3`},vn={class:`text-sm`},yn={key:1,class:`flex items-center gap-3`},bn={class:`text-sm`},xn={key:2,class:`flex items-center gap-3`},Sn={class:`text-sm`},Cn={class:`flex flex-col field-gap`},wn={class:`cui-label`},Tn={key:0,class:`flex flex-col field-gap`},En={class:`cui-label`},Dn={class:`flex items-center gap-3`},On={key:1,class:`cui-toggle-switch flex flex-col gap-4`},kn={for:`customDomain.url`,class:`cui-label`},An={class:`flex items-center gap-3`},jn={class:`card-title`},Mn={class:`flex flex-col gap-6`},Nn={class:`text-sm`},Pn={for:`serverAddresses`,class:`cui-label`},Fn={for:`localUrl`,class:`cui-label`},In=s(P({__name:`SettingsRemote`,setup(s){let c=new Oe,l=new $e,u=he(),d=re(),m=a(),{t:h}=i(),{endpoint:b,isOnline:le}=o(),{data:w,isBusy:me}=c.getServerInfoQuery(),{data:P,isBusy:ge}=l.getRemoteInfoQuery(),{data:L,isBusy:ve}=l.getRegistrationStatusQuery(),{data:ke,isLoading:Me}=l.getTunnelStatusQuery(),{data:R}=l.getConnectionInfoQuery(),{mutateAsync:Pe,isPending:Fe}=c.patchSystemInfoQuery(),{mutateAsync:z,isPending:Le}=l.patchRemoteInfoQuery(),{mutateAsync:ze,isPending:Be}=l.pairInitMutation(),{mutateAsync:Ve}=l.pairPollMutation(),{mutateAsync:He,isPending:Ue}=l.unregisterServerQuery(),{mutateAsync:We,isPending:Ge}=l.updateServerNameQuery(),{mutateAsync:Ke,isPending:qe}=l.testRemoteModeMutation(),{data:B}=l.getCloudflareManagedStatusQuery(),{mutateAsync:Je,isPending:Ye}=l.cloudflareManagedConnectMutation(),{mutateAsync:Xe,isPending:Ze}=l.cloudflareManagedCancelMutation(),{mutateAsync:Qe,isPending:et}=l.cloudflareManagedDisconnectMutation(),{mutateAsync:tt,isPending:nt}=l.cloudflareManagedLogoutMutation(),V=D(),H=D(),U=D(``),W=D(``),G=D(`quick`),K=D(``),q=D(``),rt=D(!1),J=D(null),Y=D(``),it=D(null),In=D(2),Ln=D(``),Rn=null,zn=null,X=M(()=>Fe.value||Le.value||me.value||ge.value||ve.value||Ue.value),Bn=M(()=>{let e=w.value?.availableAddresses??[],t=(w.value?.serverAddresses??[]).filter(t=>!e.some(e=>e.address===t));return[...e,...t.map(e=>({address:e}))]}),Vn=M(()=>!!(H.value?.enabled||H.value?.directEnabled)),Hn=M(()=>P.value?.directOverride??{active:!1,fallback:!1}),Z=M(()=>L.value?.isRegistered??!1),Un=M(()=>L.value?.needsReauth??!1),Wn=M(()=>!X.value),Gn=M(()=>{if(!Wn.value)return!1;let e=U.value.trim();return!e||e.length>100?!1:e!==(L.value?.serverName??``)}),Kn=M(()=>{if(!H.value)return!1;if(H.value.directMode===`customDomain`){let e=W.value.trim();if(!e)return!1;try{new URL(e)}catch{return!1}return e!==(P.value?.remoteSettings.customDomain.url??``)}if(H.value.directMode===`cloudflare`){let e=P.value?.remoteSettings.cloudflare,t=P.value?.remoteSettings.directMode!==`cloudflare`,n=G.value;if(n===`quick`)return t||e?.mode!==`quick`;let r=K.value.trim();if(!r||!/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(r))return!1;if(n===`token`){let n=q.value.trim();if(!n&&!rt.value)return!1;let i=n.length>0;return t||e?.mode!==`token`||e?.hostname!==r||i}return n===`managed`?t||e?.mode!==`managed`||e?.hostname!==r:!1}return H.value.directMode!==P.value?.remoteSettings.directMode}),qn=M(()=>[{value:`cloudflare`,label:h(`components.form.label.cloudflare`),description:h(`components.form.hint.cloudflare_mode_info`)},{value:`customDomain`,label:h(`components.form.label.custom_domain`),description:h(`components.form.hint.custom_domain_mode_info`)}]),Jn=M(()=>qn.value.find(e=>e.value===H.value?.directMode)?.description??``),Yn=M(()=>[{value:`quick`,label:h(`components.form.label.cloudflare_variant_quick`),description:h(`components.form.hint.cloudflare_variant_quick`)},{value:`token`,label:h(`components.form.label.cloudflare_variant_token`),description:h(`components.form.hint.cloudflare_variant_token`)},{value:`managed`,label:h(`components.form.label.cloudflare_variant_managed`),description:h(`components.form.hint.cloudflare_variant_managed`)}]),Xn=M(()=>Yn.value.find(e=>e.value===G.value)?.description??``),Zn=M(()=>{if(G.value===`quick`)return!0;let e=P.value?.remoteSettings.cloudflare;return e?.mode===G.value&&!!e?.hostname}),Q=M(()=>B.value?.state??`idle`),Qn=M(()=>{if(Q.value!==`idle`)return!1;let e=K.value.trim();return!!e&&/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(e)}),$n=M(()=>{let e=R.value?.currentConnection.type??`lan`;return h(`views.settings.connection_type.${e}`)}),er=M(()=>{let e=R.value?.currentConnection.type;return e===`external`?_e:e===`local`?Re:ye}),tr=M(()=>{let e=R.value?.currentConnection.type;return e===`external`?`text-info`:e===`local`?`text-primary`:`text-success`});function nr(){d.openComponentDialog(at,{data:{title:h(`components.connection_details.title`),confirmText:h(`components.connection_details.copy`),cancelText:h(`components.form.button.close`),contentProps:{currentType:$n,currentAddress:M(()=>R.value?.currentConnection.address??``)}}})}async function rr(){let e=U.value.trim();if(e)try{await We(e)}catch{}}function ir(){d.openTextDialog({data:{title:h(`components.dialog.title.unregister_server`),confirmText:h(`components.form.button.unregister`),contentText:h(`components.dialog.message.confirm_unregister_server`),loading:X},onConfirm:async()=>{try{await He()}catch{}}})}function ar(){Rn&&=(clearTimeout(Rn),null),zn&&=(clearInterval(zn),null)}function $(){ar(),J.value=null,Y.value=``,it.value=null,Ln.value=``}function or(e){let t=Math.max(0,Math.floor(e/1e3));return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}function sr(){zn&&clearInterval(zn);let e=()=>{if(!it.value)return;let e=it.value-Date.now();if(e<=0){$(),m.add({severity:`warn`,detail:h(`components.toast.pair_expired`),life:3e3});return}Ln.value=or(e)};e(),zn=setInterval(e,1e3)}function cr(){Rn&&clearTimeout(Rn),Rn=setTimeout(lr,In.value*1e3)}async function lr(){if(!J.value)return;let e=J.value;try{let t=await Ve({name:U.value.trim()||void 0});if(!J.value||J.value!==e)return;if(t.state===`confirmed`){$();return}if(t.state===`expired`){$(),m.add({severity:`warn`,detail:h(`components.toast.pair_expired`),life:3e3});return}if(t.state===`denied`){$(),m.add({severity:`warn`,detail:h(`components.toast.pair_denied`),life:3e3});return}t.state===`slow_down`&&(In.value=Math.min(In.value+2,10)),cr()}catch(t){if(!J.value||J.value!==e)return;u.error(`pair poll failed:`,t),cr()}}async function ur(){$();try{let e=U.value.trim();if(e&&e!==(L.value?.serverName??``))try{await We(e)}catch{}let t=await ze(e||void 0);J.value=t.userCode,Y.value=t.verificationUriComplete,it.value=Date.now()+t.expiresIn*1e3,In.value=Math.max(1,t.pollInterval),sr(),cr()}catch(e){m.add({severity:`error`,detail:e,life:3e3})}}function dr(){$()}async function fr(){if(J.value)try{await f(J.value)}catch{}}async function pr(){if(Y.value)try{await f(Y.value)}catch{}}function mr(){Y.value&&window.open(Y.value,`_blank`,`noopener`)}function hr(e){let t=window.location.host===te||!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`,d.openTextDialog({data:{title:h(`components.dialog.title.confirm`),contentText:h(n),confirmText:h(e?`components.form.button.enable`:`components.form.button.disable`),loading:X,confirmButtonProps:e?void 0:{severity:`danger`}},onConfirm:async()=>{try{await z(e?{enabled:!0}:{enabled:!1})}catch{H.value&&(H.value.enabled=!e)}},onCancel:()=>{H.value&&(H.value.enabled=!e)}})}function gr(e){z({directEnabled:e}).catch(()=>{H.value&&(H.value.directEnabled=!e)})}function _r(e){H.value&&(H.value.directMode=e)}function vr(e){G.value=e}async function yr(){let e=K.value.trim();if(e)try{await z({directMode:`cloudflare`,cloudflare:{mode:`managed`,hostname:e}}),await Je(e)}catch{}}async function br(){try{await Xe()}catch{}}async function xr(){try{await Qe()}catch{}}async function Sr(){try{await tt()}catch{}}async function Cr(e){try{await f(e)}catch{}}function wr(e){window.open(e,`_blank`,`noopener`)}async function Tr(e){try{let t=await Ke(e);t.ok?m.add({severity:`success`,detail:h(`components.toast.remote_test_success`),life:3e3}):m.add({severity:`error`,detail:h(`components.toast.remote_test_failed`,{message:t.message??``}),life:5e3})}catch(e){m.add({severity:`error`,detail:h(`components.toast.remote_test_failed`,{message:e?.message??``}),life:5e3})}}async function Er(e){let t={directMode:e.directMode};if(e.directMode===`customDomain`)t.customDomain={url:W.value.trim()};else if(e.directMode===`cloudflare`){let e=G.value;if(e===`quick`)t.cloudflare={mode:`quick`,hostname:null,token:null};else if(e===`token`){let e=q.value.trim();t.cloudflare={mode:`token`,hostname:K.value.trim(),...e?{token:e}:{}}}else e===`managed`&&(t.cloudflare={mode:`managed`,hostname:K.value.trim(),token:null})}try{await z(t)}catch{}}async function Dr(e){try{await Pe(e)}catch{}}return S(()=>L.value?.serverName,e=>{e&&(U.value=e)},{immediate:!0}),S(Z,e=>{e&&J.value&&$()}),S([le,b],([e])=>{e&&l.queryClient.refetchQueries({queryKey:[`remote`,`connection-info`],exact:!0})}),S(w,e=>{if(e){let t=p(e);V.value={...t,serverAddresses:(t.serverAddresses||[]).filter(Boolean),localUrl:t.localUrl??``}}},{deep:!0,immediate:!0}),S(P,e=>{if(e){let t=p(e);H.value={...t.remoteSettings},W.value=t.remoteSettings.customDomain.url??``;let n=t.remoteSettings.cloudflare;G.value=n?.mode??`quick`,K.value=n?.hostname??``,q.value=``,rt.value=t.cloudflareTokenSet??!1}},{deep:!0,immediate:!0}),fe(()=>{ar()}),(i,a)=>{let o=n,s=Se,te=Ae,c=t,l=r,u=Ce,d=e,re=Ie,f=Te,p=xe,m=we,h=je,b=ne,le=ie,S=Ne,w=be,D=De,fe=Ee,M=ee;return y(),E(`div`,ct,[!I(V)||!I(H)?(y(),E(`div`,lt,[O(o,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(y(),E(`div`,ut,[I(R)?(y(),E(`div`,dt,[T(`span`,ft,_(i.$t(`views.settings.connection_status`)),1),O(l,{class:`cui-card`},{content:g(()=>[T(`div`,pt,[(y(),A(ce(I(er)),{class:ue([`shrink-0 w-6 h-6`,I(tr)])},null,8,[`class`])),T(`div`,mt,[T(`span`,ht,_(I($n)),1),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:g(()=>[k(_(I(R).currentConnection.address),1)]),_:1})]),de((y(),A(c,{rounded:``,text:``,severity:`secondary`,class:`ml-auto shrink-0`,"aria-label":i.$t(`components.connection_details.title`),onClick:nr},{icon:g(()=>[O(te,{class:`w-5 h-5`})]),_:1},8,[`aria-label`])),[[M,{value:i.$t(`components.connection_details.title`)},void 0,{left:!0}]])])]),_:1})])):N(``,!0),O(I(se),{ref:`remoteFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":I(ot),onSubmit:a[18]||=e=>Er(e)},{default:g(()=>[T(`div`,null,[T(`span`,gt,_(i.$t(`views.settings.cloud`)),1),O(l,{class:`cui-card`},{content:g(()=>[T(`div`,_t,[O(I(x),{"model-value":I(H).enabled,value:!0,"unchecked-value":!1,type:`checkbox`,name:`enabled`,as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:g(({field:e,errors:t})=>[T(`div`,vt,[T(`div`,yt,[T(`label`,bt,_(i.$t(`components.form.label.enabled`)),1),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:g(()=>[k(_(i.$t(`components.form.hint.cloud_access_enabled_info`)),1)]),_:1}),O(C,{name:`fade`},{default:g(()=>[O(I(F),{name:`enabled`,class:`cui-input-switch-error`})]),_:1})]),O(u,v({"model-value":I(H).enabled},e,{invalid:t.length>0,loading:I(X),class:`ml-auto shrink-0`,onValueChange:a[0]||=e=>I(H).enabled=e,"onUpdate:modelValue":a[1]||=e=>hr(e)}),null,16,[`model-value`,`invalid`,`loading`])])]),_:1},8,[`model-value`]),T(`div`,xt,[T(`label`,St,_(i.$t(`views.settings.server_name_label`)),1),O(p,null,{default:g(()=>[O(d,{id:`serverName`,modelValue:I(U),"onUpdate:modelValue":a[2]||=e=>pe(U)?U.value=e:null,modelModifiers:{trim:!0},disabled:!I(Wn),loading:I(X),type:`text`,maxlength:100},null,8,[`modelValue`,`disabled`,`loading`]),O(f,null,{default:g(()=>[de((y(),A(c,{text:``,severity:`secondary`,loading:I(Ge),disabled:!I(Gn),type:`button`,onClick:rr},{icon:g(()=>[O(re)]),_:1},8,[`loading`,`disabled`])),[[M,{value:i.$t(`components.form.button.save`)}]])]),_:1})]),_:1}),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:g(()=>[k(_(i.$t(`views.settings.server_name_info`)),1)]),_:1})]),T(`div`,Ct,[T(`div`,wt,[T(`span`,Tt,_(i.$t(`views.settings.status`)),1),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:g(()=>[k(_(i.$t(`views.settings.status_info`)),1)]),_:1})]),T(`div`,Et,[I(X)?(y(),A(o,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):I(Un)?(y(),E(`span`,Dt,_(i.$t(`views.settings.needs_reauth`)),1)):(y(),E(`span`,Ot,_(I(Z)?i.$t(`views.settings.registered`):i.$t(`views.settings.not_registered`)),1))])]),I(Z)?(y(),E(`div`,kt,[T(`div`,At,[T(`span`,jt,_(i.$t(`views.settings.tunnel_status`)),1),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:g(()=>[k(_(i.$t(`views.settings.tunnel_status_info`)),1)]),_:1})]),T(`div`,Mt,[I(Me)?(y(),A(o,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(y(),A(m,{key:1,severity:I(ke)?.connected?`success`:`secondary`,value:I(ke)?.connected?i.$t(`views.settings.tunnel_connected`):i.$t(`views.settings.tunnel_disconnected`)},null,8,[`severity`,`value`]))])])):N(``,!0),O(C,{name:`fade`,mode:`out-in`},{default:g(()=>[I(J)?(y(),E(`div`,Nt,[O(s,{severity:`error`,variant:`simple`,size:`small`,class:`text-primary`},{default:g(()=>[k(_(i.$t(`views.settings.pair_instructions`)),1)]),_:1}),T(`div`,Pt,[T(`div`,Ft,[O(h,{value:I(Y),size:180,"logo-size":36},null,8,[`value`])]),T(`div`,It,[T(`div`,Lt,[T(`label`,Rt,_(i.$t(`views.settings.pair_code`)),1),O(p,null,{default:g(()=>[O(d,{"model-value":I(J),readonly:``,class:`font-mono text-lg text-center tracking-widest`},null,8,[`model-value`]),O(f,null,{default:g(()=>[O(b,{"action-text":i.$t(`components.form.tooltip.copied`),icon:I(oe),"button-props":{severity:`secondary`,text:!0},onAction:fr},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[k(_(i.$t(`views.settings.pair_code_hint`)),1)]),_:1})]),T(`div`,zt,[T(`label`,Bt,_(i.$t(`views.settings.pair_url`)),1),O(p,null,{default:g(()=>[O(d,{"model-value":I(Y),readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),O(f,null,{default:g(()=>[O(b,{"action-text":i.$t(`components.form.tooltip.copied`),icon:I(oe),"button-props":{severity:`secondary`,text:!0},onAction:pr},null,8,[`action-text`,`icon`])]),_:1}),O(f,null,{default:g(()=>[de((y(),A(c,{type:`button`,severity:`secondary`,text:``,onClick:mr},{icon:g(()=>[O(I(ae))]),_:1})),[[M,{value:i.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),T(`div`,Vt,[O(o,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),T(`span`,Ht,_(i.$t(`views.settings.pair_waiting`,{remaining:I(Ln)})),1),O(c,{type:`button`,severity:`secondary`,class:`cui-button-small ml-auto`,label:i.$t(`components.form.button.cancel`),onClick:dr},null,8,[`label`])])])])])):N(``,!0)]),_:1}),T(`div`,Ut,[T(`div`,Wt,[de((y(),A(c,{severity:`secondary`,rounded:``,class:`cui-icon-lg text-color`,disabled:!I(Z),onClick:a[3]||=e=>i.$router.absUrl(I(`https://cloud.cameraui.com`),!0)},{icon:g(()=>[I(Z)?(y(),A(le,{key:0,width:`100%`,height:`100%`})):(y(),A(S,{key:1,width:`100%`,height:`100%`}))]),_:1},8,[`disabled`])),[[M,{value:I(Z)?i.$t(`views.settings.registered`):i.$t(`views.settings.not_registered`)}]])]),a[22]||=T(`div`,{class:`ml-auto`},null,-1),!I(Z)&&!I(J)?(y(),A(c,{key:0,loading:I(Be),class:`cui-button-medium`,label:i.$t(`components.form.button.register_server`),onClick:ur},null,8,[`loading`,`label`])):N(``,!0),I(Un)&&!I(J)?(y(),A(c,{key:1,loading:I(Be),severity:`warn`,class:`cui-button-medium`,label:i.$t(`components.form.button.reconnect_server`),onClick:ur},null,8,[`loading`,`label`])):N(``,!0),I(Z)?(y(),A(c,{key:2,loading:I(X),severity:I(Un)?`secondary`:void 0,text:I(Un),class:`cui-button-medium`,label:i.$t(`components.form.button.unregister_server`),onClick:ir},null,8,[`loading`,`severity`,`text`,`label`])):N(``,!0)])])]),_:1})]),T(`div`,null,[T(`span`,Gt,_(i.$t(`views.settings.direct_connection`)),1),O(l,{class:`cui-card`},{content:g(()=>[T(`div`,Kt,[O(I(x),{"model-value":I(H).directEnabled,value:!0,"unchecked-value":!1,type:`checkbox`,name:`directEnabled`,as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:g(({field:e,errors:t})=>[T(`div`,qt,[T(`div`,Jt,[T(`label`,Yt,_(i.$t(`components.form.label.enabled`)),1),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:g(()=>[k(_(i.$t(`views.settings.direct_connection_info`)),1)]),_:1}),O(C,{name:`fade`},{default:g(()=>[O(I(F),{name:`directEnabled`,class:`cui-input-switch-error`})]),_:1})]),O(u,v({"model-value":I(Vn)},e,{invalid:t.length>0,loading:I(X),disabled:I(H).enabled,class:`ml-auto shrink-0`,onValueChange:a[4]||=e=>I(H).directEnabled=e,"onUpdate:modelValue":a[5]||=e=>gr(e)}),null,16,[`model-value`,`invalid`,`loading`,`disabled`])]),O(C,{name:`fade`},{default:g(()=>[I(Hn).active?(y(),A(s,{key:0,variant:`simple`,size:`small`,class:`cui-input-switch-hint text-primary`},{default:g(()=>[k(_(I(Hn).fallback?i.$t(`views.settings.direct_override_fallback`):i.$t(`views.settings.direct_override_active`)),1)]),_:1})):N(``,!0)]),_:1})]),_:1},8,[`model-value`]),I(Vn)?(y(),E(j,{key:0},[T(`div`,Xt,[T(`label`,Zt,_(i.$t(`views.settings.external_url`)),1),O(d,{readonly:``,type:`text`,value:I(R)?.externalUrl??i.$t(`components.form.label.disconnected`)},null,8,[`value`]),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[k(_(i.$t(`views.settings.external_url_info`)),1)]),_:1})]),O(I(x),{"model-value":I(H).directMode,name:`directMode`,as:`div`,class:`flex flex-col field-gap`},{default:g(({errors:e})=>[T(`label`,Qt,_(i.$t(`views.settings.connection_method`)),1),O(w,{"model-value":I(H).directMode,options:I(qn),"option-label":`label`,"option-value":`value`,invalid:e.length>0,loading:I(X),"onUpdate:modelValue":a[6]||=e=>_r(e)},null,8,[`model-value`,`options`,`invalid`,`loading`]),O(C,{name:`fade`},{default:g(()=>[O(I(F),{name:`directMode`,class:`cui-input-error`})]),_:1}),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[k(_(I(Jn)),1)]),_:1})]),_:1},8,[`model-value`]),I(H).directMode===`cloudflare`?(y(),E(`div`,$t,[T(`div`,en,[T(`label`,tn,_(i.$t(`components.form.label.cloudflare_variant`)),1),O(w,{"model-value":I(G),options:I(Yn),"option-label":`label`,"option-value":`value`,loading:I(X),"onUpdate:modelValue":a[7]||=e=>vr(e)},null,8,[`model-value`,`options`,`loading`]),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[k(_(I(Xn)),1)]),_:1})]),I(G)===`quick`?(y(),E(`div`,nn,[O(c,{type:`button`,severity:`secondary`,loading:I(qe),class:`cui-button-small`,label:i.$t(`components.form.button.test_connection`),onClick:a[8]||=e=>Tr(`cloudflare`)},null,8,[`loading`,`label`])])):I(G)===`token`?(y(),E(j,{key:1},[T(`div`,rn,[T(`label`,an,_(i.$t(`components.form.label.hostname`)),1),O(d,{id:`cloudflareHostname`,modelValue:I(K),"onUpdate:modelValue":a[9]||=e=>pe(K)?K.value=e:null,modelModifiers:{trim:!0},loading:I(X),type:`text`,placeholder:`nvr.example.com`,maxlength:253},null,8,[`modelValue`,`loading`]),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[k(_(i.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),T(`div`,on,[T(`label`,sn,_(i.$t(`components.form.label.tunnel_token`)),1),O(D,{id:`cloudflareToken`,modelValue:I(q),"onUpdate:modelValue":a[10]||=e=>pe(q)?q.value=e:null,modelModifiers:{trim:!0},loading:I(X),feedback:!1,"toggle-mask":``,fluid:``,placeholder:I(rt)?`••••••••••••`:`eyJ...`},null,8,[`modelValue`,`loading`,`placeholder`]),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[k(_(I(rt)?i.$t(`components.form.hint.cloudflare_token_already_set`):i.$t(`components.form.hint.cloudflare_token_info`)),1)]),_:1})]),T(`div`,cn,[O(c,{type:`button`,severity:`secondary`,loading:I(qe),disabled:!I(Zn),class:`cui-button-small`,label:i.$t(`components.form.button.test_connection`),onClick:a[11]||=e=>Tr(`cloudflare`)},null,8,[`loading`,`disabled`,`label`])])],64)):I(G)===`managed`?(y(),A(C,{key:2,name:`fade`,mode:`out-in`},{default:g(()=>[(y(),E(`div`,{key:I(Q),class:`flex flex-col gap-4`},[I(Q)===`idle`?(y(),E(j,{key:0},[T(`div`,ln,[T(`label`,un,_(i.$t(`components.form.label.hostname`)),1),O(d,{id:`cloudflareHostnameManaged`,modelValue:I(K),"onUpdate:modelValue":a[12]||=e=>pe(K)?K.value=e:null,modelModifiers:{trim:!0},loading:I(X),type:`text`,placeholder:`nvr.example.com`,maxlength:253},null,8,[`modelValue`,`loading`]),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[k(_(i.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),I(B)?.lastError?(y(),A(s,{key:0,severity:`error`,variant:`simple`,size:`small`},{default:g(()=>[k(_(I(B).lastError),1)]),_:1})):N(``,!0),T(`div`,dn,[O(c,{type:`button`,loading:I(Ye),disabled:!I(Qn),class:`cui-button-medium`,label:i.$t(`components.form.button.connect_cloudflare`),onClick:yr},null,8,[`loading`,`disabled`,`label`])])],64)):I(Q)===`awaiting_login`?(y(),E(j,{key:1},[I(B)?.loginUrl?(y(),E(`div`,fn,[T(`div`,pn,[O(h,{value:I(B).loginUrl,size:160,"logo-size":32},null,8,[`value`])]),T(`div`,mn,[O(s,{variant:`simple`,size:`small`,class:`text-primary`},{default:g(()=>[k(_(i.$t(`components.form.hint.cloudflare_managed_awaiting_login`,{hostname:I(K)})),1)]),_:1}),T(`div`,hn,[T(`label`,gn,_(i.$t(`components.form.label.cloudflare_url`)),1),O(p,null,{default:g(()=>[O(d,{"model-value":I(B).loginUrl,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),O(f,null,{default:g(()=>[O(b,{"action-text":i.$t(`components.form.tooltip.copied`),icon:I(oe),"button-props":{severity:`secondary`,text:!0},onAction:a[13]||=e=>Cr(I(B).loginUrl)},null,8,[`action-text`,`icon`])]),_:1}),O(f,null,{default:g(()=>[de((y(),A(c,{type:`button`,severity:`secondary`,text:``,onClick:a[14]||=e=>wr(I(B).loginUrl)},{icon:g(()=>[O(I(ae))]),_:1})),[[M,{value:i.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),T(`div`,_n,[O(o,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),T(`span`,vn,_(i.$t(`views.settings.cloudflare_login_waiting`)),1),O(c,{type:`button`,severity:`secondary`,loading:I(Ze),class:`cui-button-small ml-auto`,label:i.$t(`components.form.button.cancel`),onClick:br},null,8,[`loading`,`label`])])])])):(y(),E(`div`,yn,[O(o,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),T(`span`,bn,_(i.$t(`views.settings.cloudflare_login_waiting`)),1),O(c,{type:`button`,severity:`secondary`,loading:I(Ze),class:`cui-button-small ml-auto`,label:i.$t(`components.form.button.cancel`),onClick:br},null,8,[`loading`,`label`])]))],64)):I(Q)===`creating_tunnel`||I(Q)===`setting_dns`?(y(),E(`div`,xn,[O(o,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),T(`span`,Sn,_(I(Q)===`creating_tunnel`?i.$t(`components.form.hint.cloudflare_managed_creating_tunnel`):i.$t(`components.form.hint.cloudflare_managed_setting_dns`,{hostname:I(K)})),1),O(c,{type:`button`,severity:`secondary`,loading:I(Ze),class:`cui-button-small ml-auto`,label:i.$t(`components.form.button.cancel`),onClick:br},null,8,[`loading`,`label`])])):I(Q)===`running`?(y(),E(j,{key:3},[T(`div`,Cn,[T(`label`,wn,_(i.$t(`components.form.label.hostname`)),1),O(d,{readonly:``,value:`https://${I(B)?.hostname??``}`,type:`text`},null,8,[`value`]),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[k(_(i.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),I(B)?.tunnelId?(y(),E(`div`,Tn,[T(`label`,En,_(i.$t(`components.form.label.tunnel_id`)),1),O(d,{readonly:``,value:I(B).tunnelId,type:`text`},null,8,[`value`]),O(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[k(_(i.$t(`components.form.hint.cloudflare_tunnel_id_info`)),1)]),_:1})])):N(``,!0),T(`div`,Dn,[O(c,{type:`button`,severity:`secondary`,loading:I(qe),class:`cui-button-small`,label:i.$t(`components.form.button.test_connection`),onClick:a[15]||=e=>Tr(`cloudflare`)},null,8,[`loading`,`label`]),O(c,{type:`button`,severity:`secondary`,loading:I(et),class:`cui-button-small ml-auto`,label:i.$t(`components.form.button.disconnect`),onClick:xr},null,8,[`loading`,`label`]),O(c,{type:`button`,severity:`danger`,loading:I(nt),class:`cui-button-small`,label:i.$t(`components.form.button.logout`),onClick:Sr},null,8,[`loading`,`label`])])],64)):N(``,!0)]))]),_:1})):N(``,!0)])):I(H).directMode===`customDomain`?(y(),E(`div`,On,[O(I(x),{modelValue:I(W),"onUpdate:modelValue":a[16]||=e=>pe(W)?W.value=e:null,modelModifiers:{trim:!0},loading:I(X),name:`customDomain.url`,as:`div`,class:`flex flex-col field-gap`},{default:g(({field:e,errors:t})=>[T(`label`,kn,_(i.$t(`components.form.label.url`)),1),O(d,v(e,{invalid:t.length>0,loading:I(X),type:`text`,placeholder:`https://my.example.com`}),null,16,[`invalid`,`loading`]),O(C,{name:`fade`},{default:g(()=>[O(I(F),{name:`customDomain.url`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`loading`]),T(`div`,An,[O(c,{type:`button`,severity:`secondary`,loading:I(qe),disabled:!I(W),class:`cui-button-small`,label:i.$t(`components.form.button.test_connection`),onClick:a[17]||=e=>Tr(`customDomain`)},null,8,[`loading`,`disabled`,`label`])])])):N(``,!0),O(c,{type:`submit`,loading:I(X),disabled:!I(Kn),class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`)},null,8,[`loading`,`disabled`,`label`])],64)):N(``,!0)])]),_:1})])]),_:1},8,[`validation-schema`]),O(I(se),{ref:`serverFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":I(st),onSubmit:a[21]||=e=>Dr(e)},{default:g(()=>[T(`div`,null,[T(`span`,jn,_(i.$t(`views.settings.network`)),1),O(l,{class:`cui-card`},{content:g(()=>[T(`div`,Mn,[T(`span`,Nn,_(i.$t(`views.settings.network_info`)),1),O(I(x),{"model-value":I(V).serverAddresses,name:`serverAddresses`,as:`div`,class:`flex flex-col field-gap`},{default:g(({field:e,errors:t})=>[T(`label`,Pn,_(i.$t(`components.form.label.server_addresses`)),1),O(p,null,{default:g(()=>[O(fe,v(e,{"model-value":I(V).serverAddresses,options:I(Bn),invalid:t.length>0,loading:I(X),"max-selected-labels":2,"show-toggle-all":!1,"show-clear":``,"option-label":`address`,"option-value":`address`,type:`text`,display:`chip`,onValueChange:a[19]||=e=>I(V).serverAddresses=e}),null,16,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),O(C,{name:`fade`},{default:g(()=>[O(I(F),{name:`serverAddresses`,class:`cui-input-error`})]),_:1}),t.length?N(``,!0):(y(),A(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[k(_(i.$t(`components.form.hint.server_addresses`)),1)]),_:1}))]),_:1},8,[`model-value`]),O(I(x),{"model-value":I(V).localUrl,name:`localUrl`,as:`div`,class:`flex flex-col field-gap`},{default:g(({field:e,errors:t})=>[T(`label`,Fn,_(i.$t(`components.form.label.local_url`)),1),O(p,null,{default:g(()=>[O(d,v(e,{"model-value":I(V).localUrl,invalid:t.length>0,loading:I(X),placeholder:`https://camera.home.lan`,onValueChange:a[20]||=e=>I(V).localUrl=e}),null,16,[`model-value`,`invalid`,`loading`])]),_:2},1024),O(C,{name:`fade`},{default:g(()=>[O(I(F),{name:`localUrl`,class:`cui-input-error`})]),_:1}),t.length?N(``,!0):(y(),A(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:g(()=>[k(_(i.$t(`components.form.hint.local_url`)),1)]),_:1}))]),_:1},8,[`model-value`]),O(c,{type:`submit`,loading:I(X),class:`cui-button-medium ml-auto`,label:i.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])]),_:1})])]),_:1},8,[`validation-schema`])]))])}}}),[[`__scopeId`,`data-v-a44e0892`]]);export{In as default};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./VersionsHandler-B41TJhgY.js","./vendor-cameraui-K1Nw4PvF.js","./rolldown-runtime-C0FnF6B9.js","./vendor-Df81FCJz.js","./api-D1iULsSy.js","./intercomService-BQYzjnAi.js","./vendor-zod-CBbC1rE7.js","./types-CeruGCb8.js","./alert-outline-B4ZZowEj.js","./eventLabels-idFWh3Y_.js","./vendor-core-CJdfpB0I.js","./vendor-dnd-C1kMh9_t.js","./vendor-primevue-DoA2Rwcb.js","./close-Be7oB7d_.js","./vendor-draggabilly-Cw1oJ6qc.js","./api-By0v6EeA.css","./server-DlK8gUoE.js","./useServerRestart-DrpuNbIu.js","./alert-circle-B-JCMbb9.js","./CuiMarkdownContent-qOPm3VEi.js","./vendor-markdown-DTWiWKBj.js","./vendor-markdown-DtOhvyRx.css","./plugins-lsoAntRQ.js","./CuiConsole-Cf5lOCE1.js","./content-copy-BcYlfuFc.js","./vendor-xterm-G7KkmRYW.js","./vendor-xterm-BrP-ENHg.css","./CuiConsole-CoA-Nq-_.css","./useLogsSocket-Bf0BI8ET.js","./platformLabels-D-cF6OTP.js","./config-6EiGxiYm.js","./useUpdateChannel-kAl-5UNY.js","./CertificateUpload-DjzNMFc3.js","./upload-BiE7VzTj.js"])))=>i.map(i=>d[i]);
2
+ import{Xt as e,Yt as t,at as n,hr as r}from"./vendor-cameraui-K1Nw4PvF.js";import{Br as i,Hr as a,Mn as o,Tn as s,_ as c,dn as l,fn as u}from"./api-D1iULsSy.js";import{$n as d,Cr as f,Ht as p,In as m,Pn as ee,Xn as h,cn as g,dn as _,dr as v,gn as y,hn as b,jn as te,ln as x,mr as ne,rn as S,sn as C,un as w,vn as re,yr as T}from"./vendor-Df81FCJz.js";import{a as ie,i as ae}from"./intercomService-BQYzjnAi.js";import{N as oe,V as se}from"./vendor-primevue-DoA2Rwcb.js";import{a as ce,c as le,d as ue,r as de,s as fe,t as pe}from"./server-DlK8gUoE.js";import{n as me}from"./useServerRestart-DrpuNbIu.js";import{n as he,t as ge}from"./api-DbUdfXO_.js";import{t as _e}from"./useUpdateChannel-kAl-5UNY.js";import{t as ve}from"./useAppVersion-BGgCk5GD.js";var ye={class:`flex flex-col w-full gap-6`},be={class:`flex items-center gap-4`},xe={class:`flex flex-col field-switch-gap`},Se={for:`betaChannel`,class:`cui-label-switch`},Ce={class:`flex flex-col gap-6`},we={key:0,class:`flex flex-row items-center justify-between`},Te={class:`text-sm`},Ee={key:1,class:`text-sm font-bold`},De={key:1,class:`flex flex-row items-center justify-between`},Oe={class:`text-sm`},ke={class:`text-sm font-bold`},Ae={key:0,class:`text-muted font-normal`},je={class:`flex flex-row items-center justify-between`},Me={class:`text-sm`},Ne={key:1,class:`text-sm font-bold`},Pe={key:2,class:`flex w-full items-center gap-2`},Fe={key:0},Ie={class:`card-title`},Le={class:`flex flex-col gap-6`},Re={class:`text-sm`},ze={key:0,class:`flex flex-col gap-2`},Be={class:`cui-label`},Ve={class:`flex justify-between gap-4 text-sm`},He={class:`text-muted shrink-0`},Ue={class:`text-right break-all`},We={class:`flex justify-between gap-4 text-sm`},Ge={class:`text-muted shrink-0`},Ke={class:`text-right break-all`},qe={class:`flex justify-between gap-4 text-sm`},Je={class:`text-muted shrink-0`},Ye={class:`text-right`},Xe={key:2,class:`text-sm text-muted`},Ze={class:`flex flex-wrap gap-2 ml-auto`},Qe={class:`card-title`},$e={class:`flex flex-col gap-6`},et={class:`text-sm`},tt={key:1},nt={class:`card-title`},E={class:`flex flex-col gap-6`},rt={class:`text-sm`},D=re({__name:`SettingsSystem`,setup(re){let D=u(()=>p(()=>import(`./VersionsHandler-B41TJhgY.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]),import.meta.url)),it=u(()=>p(()=>import(`./CertificateUpload-DjzNMFc3.js`),__vite__mapDeps([32,1,2,3,12,33]),import.meta.url)),O=new ge,k=new pe,A=ie(),j=l(),M=i(),{t:N}=r(),{isElectronApp:P,electron:at}=ae(),{isOnline:F}=a(),{restarting:I,beginServerRestart:ot}=me(),{isBeta:st,setBeta:ct}=_e(),{appVersion:L,nativeVersion:R,refreshAppVersion:lt}=ve(),ut=c(),{data:z,isBusy:dt}=O.apiInfoQuery(),{mutate:ft,isPending:pt}=k.restartServerQuery(),{mutateAsync:mt,isPending:ht}=k.resetServerQuery(),B=v(N(`views.settings.unknown`)),V=v(N(`views.settings.unknown`)),H=v(!1),U=ne(null),W=v(!1),G=0,K=C(()=>!P&&s(void 0,`master`)),gt=C(()=>{let e=U.value?.info;return!!(e&&e.chainLength<=1&&!e.selfSigned)}),q=C(()=>z.value?.electron??!1),J=C(()=>pt.value||ht.value||dt.value),Y=C(()=>z.value?.installedVersion||z.value?.version),X=C(()=>z.value?.restartRequired??!1),Z=C(()=>J.value||!F.value||I.value);function _t(e){ct(e===!0)}async function vt(){if(!H.value){H.value=!0;try{let e=await de(),t=new Blob([e],{type:`application/x-x509-ca-cert`});await o({blob:t,filename:`cert.pem`,mimeType:`application/x-x509-ca-cert`})}catch(e){A.error(e)}H.value=!1}}function yt(){ot(),ft()}function Q(e){switch(e){case`restart`:j.openTextDialog({data:{title:N(`components.dialog.title.restart`),confirmText:N(`components.form.button.restart`),contentText:N(`components.dialog.message.confirm_restart_server`),loading:J},onConfirm:yt});break;case`reset`:j.openTextDialog({data:{title:N(`components.dialog.title.reset_server`),confirmText:N(`components.form.button.reset`),contentText:N(`components.dialog.message.confirm_reset_server`),loading:J},onConfirm:async()=>{try{await mt()}catch{}finally{ut.logout()}}});break;case`versions`:j.openComponentDialog(D,{data:{title:N(`components.dialog.title.install_version`),confirmText:N(`components.form.button.install`),loading:J,contentProps:{target:{type:`server`}}}})}}async function bt(){if(P)try{V.value=await at.invoke(`get-app-version`)??N(`views.settings.unknown`)}catch(e){A.error(`Error getting electron app version:`,e)}}async function xt(){let e=++G;for(let t=0;t<30;t++)try{if(await he({signal:AbortSignal.timeout(5e3)}),e!==G)return;O.queryClient.invalidateQueries({queryKey:[`api`]});return}catch{if(await new Promise(e=>setTimeout(e,2e3)),e!==G||!F.value)return}}function $(){j.openTextDialog({data:{title:N(`views.settings.certificate_restart_title`),confirmText:N(`components.form.button.restart`),contentText:N(`views.settings.certificate_restart_info`)},onConfirm:async()=>{try{await le(),M.add({severity:`success`,detail:N(`views.settings.certificate_restart_done`),life:5e3})}catch(e){M.add({severity:`error`,detail:e?.response?.data?.message??e?.message,life:5e3})}}})}async function St(){try{U.value=await ce()}catch(e){A.error(`Certificate state failed:`,e)}}function Ct(){j.openComponentDialog(it,{data:{title:N(`views.settings.certificate_upload_title`),confirmText:N(`components.form.button.upload`),contentProps:{hasCertificate:U.value?.present===!0}},onConfirm:e=>wt(e)})}async function wt(e){W.value=!0;try{U.value=await ue(e),M.add({severity:`success`,detail:N(`views.settings.certificate_stored`),life:5e3}),$()}catch(e){M.add({severity:`error`,detail:e?.response?.data?.message??e?.message,life:5e3})}finally{W.value=!1}}function Tt(){j.openTextDialog({data:{title:N(`views.settings.certificate_remove_title`),confirmText:N(`components.form.button.remove`),contentText:N(`views.settings.certificate_remove_confirm`),loading:W},onConfirm:Et})}async function Et(){W.value=!0;try{U.value=await fe(),M.add({severity:`success`,detail:N(`views.settings.certificate_removed`),life:5e3}),$()}catch(e){M.add({severity:`error`,detail:e?.response?.data?.message??e?.message,life:5e3})}finally{W.value=!1}}return h(z,()=>{B.value=z.value?.version||N(`views.settings.unknown`)},{deep:!0,immediate:!0}),h([F,I],([e,t],[n,r])=>{q.value||(e&&!n||r&&!t&&e)&&xt()}),te(()=>{G++}),ee(()=>{P&&bt(),K.value&&St()}),(r,i)=>{let a=oe,o=se,c=n,l=t,u=e;return m(),_(`div`,null,[g(`div`,ye,[g(`div`,null,[y(c,{class:`cui-card`},{content:d(()=>[g(`div`,null,[g(`div`,be,[g(`div`,xe,[g(`label`,Se,f(r.$t(`views.settings.beta_updates`)),1),y(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:d(()=>[b(f(r.$t(`views.settings.beta_updates_info`)),1)]),_:1})]),y(o,{"input-id":`betaChannel`,"model-value":T(st),class:`ml-auto shrink-0`,"onUpdate:modelValue":_t},null,8,[`model-value`])])])]),_:1})]),g(`div`,null,[i[5]||=g(`span`,{class:`card-title`},`camera.ui`,-1),y(c,{class:`cui-card`},{content:d(()=>[g(`div`,Ce,[T(P)?(m(),_(`div`,we,[g(`span`,Te,f(r.$t(`views.settings.app`)),1),T(J)?(m(),x(l,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(m(),_(`span`,Ee,`v`+f(T(V)),1))])):w(``,!0),T(!1)&&T(L)?(m(),_(`div`,De,[g(`span`,Oe,f(r.$t(`views.settings.app`)),1),g(`span`,ke,[b(` v`+f(T(L)),1),T(R)&&T(R)!==T(L)?(m(),_(`span`,Ae,` (`+f(T(R))+`)`,1)):w(``,!0)])])):w(``,!0),g(`div`,je,[g(`span`,Me,f(r.$t(`views.settings.server`)),1),T(J)?(m(),x(l,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(m(),_(`span`,Ne,[b(` v`+f(T(B)),1),T(X)?(m(),_(S,{key:0},[b(` → v`+f(T(Y)),1)],64)):w(``,!0)]))]),T(q)?w(``,!0):(m(),_(`div`,Pe,[i[4]||=g(`div`,{class:`ml-auto`},null,-1),T(X)?(m(),x(u,{key:0,loading:T(J),disabled:T(Z),class:`cui-button-medium`,label:`${r.$t(`components.form.button.restart`)} (v${T(Y)})`,onClick:i[0]||=e=>Q(`restart`)},null,8,[`loading`,`disabled`,`label`])):w(``,!0),y(u,{loading:T(J),disabled:T(Z),class:`cui-button-medium`,label:r.$t(`components.form.button.manage`),onClick:i[1]||=e=>Q(`versions`)},null,8,[`loading`,`disabled`,`label`])]))])]),_:1})]),T(P)?w(``,!0):(m(),_(`div`,Fe,[g(`span`,Ie,f(r.$t(`views.settings.certificate`)),1),y(c,{class:`cui-card`},{content:d(()=>[g(`div`,Le,[g(`span`,Re,f(r.$t(`views.settings.certificate_info`)),1),T(K)?(m(),_(`div`,ze,[g(`span`,Be,f(r.$t(`views.settings.custom_certificate`)),1),T(U)?.problem?(m(),x(a,{key:0,severity:`error`,closable:!1},{default:d(()=>[b(f(r.$t(`views.settings.certificate_problem_${T(U).problem.code.replace(`-`,`_`)}`)),1)]),_:1})):T(U)?.info?(m(),_(S,{key:1},[g(`div`,Ve,[g(`span`,He,f(r.$t(`views.settings.certificate_names`)),1),g(`span`,Ue,f(T(U).info.names.join(`, `)),1)]),g(`div`,We,[g(`span`,Ge,f(r.$t(`views.settings.certificate_issuer`)),1),g(`span`,Ke,f(T(U).info.issuer),1)]),g(`div`,qe,[g(`span`,Je,f(r.$t(`views.settings.certificate_valid_to`)),1),g(`span`,Ye,f(T(U).info.validTo),1)]),T(gt)?(m(),x(a,{key:0,severity:`warn`,class:`mt-2`,closable:!1},{default:d(()=>[b(f(r.$t(`views.settings.certificate_chain_missing`)),1)]),_:1})):w(``,!0)],64)):(m(),_(`span`,Xe,f(r.$t(`views.settings.certificate_none`)),1))])):w(``,!0),g(`div`,Ze,[T(K)&&T(U)?.present?(m(),x(u,{key:0,severity:`danger`,outlined:``,loading:T(W),class:`cui-button-medium`,label:r.$t(`components.form.button.remove`),onClick:Tt},null,8,[`loading`,`label`])):w(``,!0),y(u,{loading:T(H)||T(J),disabled:T(Z),severity:`secondary`,outlined:``,class:`cui-button-medium`,label:r.$t(`components.form.button.download`),onClick:vt},null,8,[`loading`,`disabled`,`label`]),T(K)?(m(),x(u,{key:1,loading:T(W),class:`cui-button-medium`,label:r.$t(`components.form.button.upload`),onClick:Ct},null,8,[`loading`,`label`])):w(``,!0)])])]),_:1})])),g(`div`,null,[g(`span`,Qe,f(r.$t(`views.settings.restart_server`)),1),y(c,{class:`cui-card`},{content:d(()=>[g(`div`,$e,[g(`span`,et,f(r.$t(`views.settings.restart_server_info`)),1),y(u,{loading:T(J),disabled:T(Z),class:`cui-button-medium ml-auto`,label:r.$t(`components.form.button.restart`),onClick:i[2]||=e=>Q(`restart`)},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),(`hasPermission`in r?r.hasPermission:T(s))(void 0,`master`)?(m(),_(`div`,tt,[g(`span`,nt,f(r.$t(`views.settings.reset_server`)),1),y(c,{class:`cui-card !border-red-900`},{content:d(()=>[g(`div`,E,[g(`span`,rt,f(r.$t(`views.settings.reset_server_info`)),1),y(u,{loading:T(J),disabled:T(Z),class:`cui-button-medium ml-auto`,label:r.$t(`components.form.button.reset`),onClick:i[3]||=e=>Q(`reset`)},null,8,[`loading`,`disabled`,`label`])])]),_:1})])):w(``,!0)])])}}});export{D as default};