@camera.ui/server 2.1.14-beta.3 → 2.1.14

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 (437) hide show
  1. package/dist/interface/assets/{404-Ct2rp3W6.js → 404-DRo8zW0F.js} +1 -1
  2. package/dist/interface/assets/{About-BkrFfbam.js → About-DMjE0Qte.js} +1 -1
  3. package/dist/interface/assets/{Automation-D2PHM9TZ.js → Automation-BLolxsX8.js} +3 -3
  4. package/dist/interface/assets/{AutomationImport-DbRJF8i2.js → AutomationImport-C_rR9kDq.js} +2 -2
  5. package/dist/interface/assets/{AutomationStore-D-PBrft2.js → AutomationStore-whk_TeCG.js} +2 -2
  6. package/dist/interface/assets/{AutomationStoreDetail-RU-UXz0W.js → AutomationStoreDetail-BDDgg3zY.js} +2 -2
  7. package/dist/interface/assets/{Automations-D-AAcPfb.js → Automations-sEIWIfdE.js} +2 -2
  8. package/dist/interface/assets/{Camera-Bz5NfM2e.js → Camera-l1DApD8b.js} +2 -2
  9. package/dist/interface/assets/{CameraConsole-_v6lLT9V.js → CameraConsole-CP_kwVq7.js} +1 -1
  10. package/dist/interface/assets/{Cameras-BICfDnxO.js → Cameras-Bp6P5eQC.js} +1 -1
  11. package/dist/interface/assets/{Camview-CKX9B9Ak.js → Camview-CWS3VJ1A.js} +1 -1
  12. package/dist/interface/assets/{CertificateUpload-CWt_CAt6.js → CertificateUpload-CA2PrWb3.js} +1 -1
  13. package/dist/interface/assets/{Config-CKn4Gc_s.js → Config-C02ndytC.js} +1 -1
  14. package/dist/interface/assets/{ConfigActionCameraControl-BpZrhaAg.js → ConfigActionCameraControl-BODp6yd4.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionDelay-D-Rn2YP6.js → ConfigActionDelay-ChQOPeXL.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionHttp-DzoBcypZ.js → ConfigActionHttp-BVeQKfLN.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionImageInput-DHBsjlY-.js → ConfigActionImageInput-B99__kdP.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionMqtt-DBssl5vL.js → ConfigActionMqtt-D595Lo5y.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionNotification-nDKENsVa.js → ConfigActionNotification-DxzLPmUf.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionNotificationControl-Gd955Nu4.js → ConfigActionNotificationControl-Bp4yWebz.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionOutput-CPlUnJPX.js → ConfigActionOutput-Di3KaQ_P.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionPlugin-DMT0GG9J.js → ConfigActionPlugin-B7vbDV9n.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionSensor-B9qfwZPK.js → ConfigActionSensor-Qj0c8MZq.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionSnapshot-DmzC7Ka8.js → ConfigActionSnapshot-159QrEMJ.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionVariable-BcTGZbYR.js → ConfigActionVariable-Bodvejrx.js} +1 -1
  26. package/dist/interface/assets/{ConfigConditionIfElse-C-0FNq8c.js → ConfigConditionIfElse-BMI_mgi3.js} +1 -1
  27. package/dist/interface/assets/{ConfigConditionSensorState-DoOyDkd8.js → ConfigConditionSensorState-DkwjHr31.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionSwitch-DonNSgEC.js → ConfigConditionSwitch-ZlqOfRQE.js} +1 -1
  29. package/dist/interface/assets/{ConfigConditionTime-b05J39ya.js → ConfigConditionTime-B2igg9Tb.js} +1 -1
  30. package/dist/interface/assets/{ConfigSensorValueInput-DbKeWPpA.js → ConfigSensorValueInput-DMnkNDC_.js} +1 -1
  31. package/dist/interface/assets/{ConfigTriggerDetection-DvoA49uo.js → ConfigTriggerDetection-C_ujxraC.js} +1 -1
  32. package/dist/interface/assets/{ConfigTriggerGeofence-CZRFnbWY.js → ConfigTriggerGeofence-DnYSaLPb.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerManual-DYDhaI_A.js → ConfigTriggerManual-BVIiZfOj.js} +1 -1
  34. package/dist/interface/assets/{ConfigTriggerMqtt-CkClS0me.js → ConfigTriggerMqtt-B7Tf1jOh.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerSchedule-Co2A9pH7.js → ConfigTriggerSchedule-CcvA02N3.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerSensor-B6KlmsnV.js → ConfigTriggerSensor-CHCDeFmR.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSystem-CC-NtLwh.js → ConfigTriggerSystem-0SeQnHSX.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerWebhook-CPjRwtA-.js → ConfigTriggerWebhook-t0tFjZ7V.js} +1 -1
  39. package/dist/interface/assets/{Console-BbdPBqEC.js → Console-B3xhLOhl.js} +1 -1
  40. package/dist/interface/assets/{CuiAutomationRunsDialog-DoPIIX-T.js → CuiAutomationRunsDialog-hZJsv95Y.js} +1 -1
  41. package/dist/interface/assets/{CuiBottomSheet-B6X4pbeR.js → CuiBottomSheet-Cv_fwvYu.js} +1 -1
  42. package/dist/interface/assets/CuiBottomSheet-epGdNqA8.js +1 -0
  43. package/dist/interface/assets/{CuiCameraPipCard-BlZJUCJP.js → CuiCameraPipCard-Bm6wjm6h.js} +1 -1
  44. package/dist/interface/assets/{CuiCameraRecordings-BvQ_6Elk.js → CuiCameraRecordings-4LLV-U85.js} +1 -1
  45. package/dist/interface/assets/{CuiCameraShares-CGYScB2u.js → CuiCameraShares-DqmX3koT.js} +1 -1
  46. package/dist/interface/assets/CuiCameraTable-CfyXLqkh.js +1 -0
  47. package/dist/interface/assets/{CuiCameraTable-Cm-wfsDL.js → CuiCameraTable-CkAeMqcZ.js} +1 -1
  48. package/dist/interface/assets/{CuiChartTable-CKP8f68c.js → CuiChartTable-CZXvn_Iy.js} +1 -1
  49. package/dist/interface/assets/{CuiConsole-BWrpJYcX.js → CuiConsole-CW8Q43cq.js} +1 -1
  50. package/dist/interface/assets/{CuiDataTable-BozSktV7.js → CuiDataTable-cN03N7lr.js} +1 -1
  51. package/dist/interface/assets/{CuiLightControl-DRNXOigw.js → CuiLightControl-CA8MAVex.js} +1 -1
  52. package/dist/interface/assets/{CuiList-DRkSKm6_.js → CuiList-BI488Ne9.js} +1 -1
  53. package/dist/interface/assets/CuiMarkdownContent-BXUJahQp.js +1 -0
  54. package/dist/interface/assets/{CuiMarkdownContent-gJ8gvmYA.js → CuiMarkdownContent-Diua-pVD.js} +1 -1
  55. package/dist/interface/assets/{CuiPluginCard-DQLIw-q8.js → CuiPluginCard-Bj6cUIJ0.js} +2 -2
  56. package/dist/interface/assets/{CuiPluginCategoryChip-CcKK1e-h.js → CuiPluginCategoryChip-5YBKOVmo.js} +1 -1
  57. package/dist/interface/assets/{CuiPluginOAuthButton-Bbh4geGP.js → CuiPluginOAuthButton-BmdfXNce.js} +2 -2
  58. package/dist/interface/assets/{CuiPluginTrustBadge-UJafoYxB.js → CuiPluginTrustBadge-BFpziu4f.js} +1 -1
  59. package/dist/interface/assets/{CuiQRCode-gqnAR_Zp.js → CuiQRCode-CiWTLo9T.js} +1 -1
  60. package/dist/interface/assets/{CuiSchema-Bhs017IB.js → CuiSchema-DntSkCO2.js} +1 -1
  61. package/dist/interface/assets/{CuiTopNavbarItem-C-7LPPKD.js → CuiTopNavbarItem-DuzCbIZ8.js} +1 -1
  62. package/dist/interface/assets/{Faces-BfBHLOZg.js → Faces-Bea5pIop.js} +1 -1
  63. package/dist/interface/assets/{FirstSteps-zHSDaE1p.js → FirstSteps-BNbQsYHq.js} +1 -1
  64. package/dist/interface/assets/{Floorplan-BlT1vOq0.js → Floorplan-D9zKFQ2q.js} +1 -1
  65. package/dist/interface/assets/{Instances-BNylwtFA.js → Instances-DBphCwLn.js} +1 -1
  66. package/dist/interface/assets/{Logs-Bh8kvHG-.js → Logs-Bjyi3BKP.js} +1 -1
  67. package/dist/interface/assets/{Menu-BDdiFqwe.js → Menu-BQDo_rxR.js} +1 -1
  68. package/dist/interface/assets/{Metrics-dqXxkjt9.js → Metrics-Dvnil66d.js} +1 -1
  69. package/dist/interface/assets/{OAuthDeviceFlow-BRTodx33.js → OAuthDeviceFlow-C-a76FaQ.js} +1 -1
  70. package/dist/interface/assets/{Plugin-BZZ9P2-2.js → Plugin-1ZS-dcRt.js} +1 -1
  71. package/dist/interface/assets/{PluginConsole-DxxCx7q1.js → PluginConsole-B5A04A2x.js} +1 -1
  72. package/dist/interface/assets/{PluginDetail-l_l3WOqM.js → PluginDetail-SCj7WYL6.js} +2 -2
  73. package/dist/interface/assets/{PluginSchema-D0stZt2c.js → PluginSchema-BJEOq6im.js} +1 -1
  74. package/dist/interface/assets/{PluginSearch-lqGiQjP4.js → PluginSearch-CHeix3n8.js} +2 -2
  75. package/dist/interface/assets/PluginSearch-CcjGzS5R.js +1 -0
  76. package/dist/interface/assets/{PluginUpdateProgress-CUUVf_wg.js → PluginUpdateProgress-BZ-OtZet.js} +1 -1
  77. package/dist/interface/assets/{Plugins-Y634pLhv.js → Plugins-DS-NZusx.js} +1 -1
  78. package/dist/interface/assets/{Recordings-Ct6GmMEP.js → Recordings-Bqb2uV7R.js} +1 -1
  79. package/dist/interface/assets/{SensorEdit-DnPyIBu5.js → SensorEdit-CQagiAww.js} +1 -1
  80. package/dist/interface/assets/{SensorHistory-Bwmg24QZ.js → SensorHistory-DIMTRYRa.js} +1 -1
  81. package/dist/interface/assets/{Sensors-BaMYFgjD.js → Sensors-DU0MBnV1.js} +2 -2
  82. package/dist/interface/assets/{Settings-DulVBel0.js → Settings-Dn-TJCtd.js} +1 -1
  83. package/dist/interface/assets/SettingsAccount-CLclTO2m.js +1 -0
  84. package/dist/interface/assets/{SettingsAccount-CL2RTnFz.js → SettingsAccount-Q2sigi3a.js} +1 -1
  85. package/dist/interface/assets/SettingsAppearance-Bo61ZncS.js +1 -0
  86. package/dist/interface/assets/{SettingsAppearance-cq1t3BEj.js → SettingsAppearance-NpsVIJUO.js} +1 -1
  87. package/dist/interface/assets/{SettingsBackup-21a3QmN1.js → SettingsBackup-D1NER4RI.js} +1 -1
  88. package/dist/interface/assets/{SettingsList-dO_4W9uY.js → SettingsList-BKyyC2_M.js} +1 -1
  89. package/dist/interface/assets/{SettingsMqtt-CAxcvp74.js → SettingsMqtt-14d54svj.js} +1 -1
  90. package/dist/interface/assets/{SettingsNotifications-C8OyC6Uo.js → SettingsNotifications-kKPcCTLM.js} +1 -1
  91. package/dist/interface/assets/{SettingsPermissions-BPZlOEWO.js → SettingsPermissions-r6wxjmHg.js} +1 -1
  92. package/dist/interface/assets/{SettingsRecordings-Boja0QZp.js → SettingsRecordings-GPy1AdjG.js} +1 -1
  93. package/dist/interface/assets/{SettingsRemote-Dga6BXDI.js → SettingsRemote-Da_6mcHl.js} +1 -1
  94. package/dist/interface/assets/{SettingsSystem-DnipKTG6.js → SettingsSystem-BpPrajwG.js} +2 -2
  95. package/dist/interface/assets/{SettingsUsers-Bxf1RaY3.js → SettingsUsers-CBItOJic.js} +1 -1
  96. package/dist/interface/assets/{Terminal-Cr3hOv8-.js → Terminal-DtvlszuP.js} +1 -1
  97. package/dist/interface/assets/{Updates-DiBrlchb.js → Updates-CV5MWBHg.js} +2 -2
  98. package/dist/interface/assets/{VariableInput-C7XFQ66c.js → VariableInput-C-f6bNmi.js} +1 -1
  99. package/dist/interface/assets/{VariableSuggestions-DohkCyGS.js → VariableSuggestions-B4LYkbu5.js} +1 -1
  100. package/dist/interface/assets/VersionsHandler-Cxxcwt9W.js +7 -0
  101. package/dist/interface/assets/{VirtualSensorCreate-9X6C1NR1.js → VirtualSensorCreate-CrGmWsI7.js} +1 -1
  102. package/dist/interface/assets/{Workers-D5OtbF4f.js → Workers-DaHj_0te.js} +1 -1
  103. package/dist/interface/assets/{account-BW_r05fC.js → account-BD2MtsdK.js} +1 -1
  104. package/dist/interface/assets/{alert-circle-We_nDFAy.js → alert-circle-CDCxdnIi.js} +1 -1
  105. package/dist/interface/assets/{alert-outline-DtiCgufF.js → alert-outline-E6GK9c5n.js} +1 -1
  106. package/dist/interface/assets/{api-SOlhy6R4.css → api-BTWXbCPQ.css} +1 -1
  107. package/dist/interface/assets/{api-ZL-_Y0-o.js → api-CD4zuPhg.js} +1 -1
  108. package/dist/interface/assets/api-CdT8ZD-n.js +4 -0
  109. package/dist/interface/assets/{arrow-left-V1y_rwzT.js → arrow-left-3p85-F5N.js} +1 -1
  110. package/dist/interface/assets/{auth-CUXeNcmI.js → auth-W2HVbsrF.js} +1 -1
  111. package/dist/interface/assets/{automations-Bz9Wo-Xf.js → automations-CY5xtQCF.js} +1 -1
  112. package/dist/interface/assets/{back-filled-MAIFvJqE.js → back-filled-CE63214a.js} +1 -1
  113. package/dist/interface/assets/{bell-ring-DBCDVZQy.js → bell-ring-CGVdWMCy.js} +1 -1
  114. package/dist/interface/assets/{brain-Bqf50oqB.js → brain-DqTk5Zyq.js} +1 -1
  115. package/dist/interface/assets/{cameraSources-BpaS7lCe.js → cameraSources-BSFgVwUz.js} +1 -1
  116. package/dist/interface/assets/{cctv-Tng3HqLa.js → cctv-Dh6i5n3w.js} +1 -1
  117. package/dist/interface/assets/{check-circle-DNTQ812v.js → check-circle-B4u2U1O6.js} +1 -1
  118. package/dist/interface/assets/{chevron-down-DqCuosKP.js → chevron-down-CA4ntUJ5.js} +1 -1
  119. package/dist/interface/assets/{clock-outline-DwnISu0k.js → clock-outline-D45HCnXi.js} +1 -1
  120. package/dist/interface/assets/{close-ChGy_BeH.js → close-BiHUNAkN.js} +1 -1
  121. package/dist/interface/assets/{close-circle-B9jFTQT1.js → close-circle-BRfsyoFY.js} +1 -1
  122. package/dist/interface/assets/{cloud-check-DABrVuto.js → cloud-check-v8fBsHY8.js} +1 -1
  123. package/dist/interface/assets/cloudHandoff-RfAVMcZZ.js +1 -0
  124. package/dist/interface/assets/{config-bmrb5S6z.js → config-DOFSd8-0.js} +1 -1
  125. package/dist/interface/assets/{content-copy-CsUEmnFS.js → content-copy-VcYnXV6l.js} +1 -1
  126. package/dist/interface/assets/{copy-CzGo5Njh.js → copy-KnN8Met6.js} +1 -1
  127. package/dist/interface/assets/{cube-scan-BR5la6Qx.js → cube-scan-DcvByv2J.js} +1 -1
  128. package/dist/interface/assets/{delete-CiJ6ng5_.js → delete-B_wgbT_W.js} +1 -1
  129. package/dist/interface/assets/{dist-2BkH6KaN.js → dist-CA3CfqGE.js} +1 -1
  130. package/dist/interface/assets/{download-CaV8-tw6.js → download-Cg8JrPGl.js} +1 -1
  131. package/dist/interface/assets/esm-B9CzQCu4.js +1 -0
  132. package/dist/interface/assets/esm-BBtiU--A.js +1 -0
  133. package/dist/interface/assets/esm-BW1JB7cT.js +1 -0
  134. package/dist/interface/assets/esm-BrTItqsO.js +1 -0
  135. package/dist/interface/assets/esm-C-1txZoa.js +1 -0
  136. package/dist/interface/assets/esm-C-e-sIcG.js +1 -0
  137. package/dist/interface/assets/esm-CE4Rajd0.js +1 -0
  138. package/dist/interface/assets/esm-Ccyy-x2Y.js +1 -0
  139. package/dist/interface/assets/esm-CixxvBfo.js +1 -0
  140. package/dist/interface/assets/esm-CkFoKPdV.js +1 -0
  141. package/dist/interface/assets/esm-CvZd2jWJ.js +1 -0
  142. package/dist/interface/assets/esm-Dhi49FLm.js +1 -0
  143. package/dist/interface/assets/esm-DqEbZj6J.js +1 -0
  144. package/dist/interface/assets/esm-tauuy5_Z.js +1 -0
  145. package/dist/interface/assets/{eye-off-DAhBNvxJ.js → eye-off-C-VpEYqY.js} +1 -1
  146. package/dist/interface/assets/{eye-off-outline-Bj1tXD9w.js → eye-off-outline-Dnsc9na3.js} +1 -1
  147. package/dist/interface/assets/{flowSchema-D4Ys_7rr.js → flowSchema-Bq6CskDh.js} +1 -1
  148. package/dist/interface/assets/{history-F0qTKQGT.js → history-DSKZX4F9.js} +1 -1
  149. package/dist/interface/assets/{home-DEKGoPL_.js → home-CGNmzgku.js} +1 -1
  150. package/dist/interface/assets/{information-outline-CQ5e79wc.js → information-outline-CdLdxg1d.js} +1 -1
  151. package/dist/interface/assets/{intercomService-CmFnb1sI.js → intercomService-CT_KVjly.js} +1 -1
  152. package/dist/interface/assets/{lan-D9PCM8iA.js → lan-Cj3DpVaf.js} +1 -1
  153. package/dist/interface/assets/{main-CrXBqh3b.js → main-VmsUT9aF.js} +2 -2
  154. package/dist/interface/assets/{microphone-CGwzrMxl.js → microphone-DGgazpZX.js} +1 -1
  155. package/dist/interface/assets/{minus-HH0UdIjG.js → minus-CWip8tXS.js} +1 -1
  156. package/dist/interface/assets/{mqtt-Cotm4qW5.js → mqtt-x7JvjSZ0.js} +1 -1
  157. package/dist/interface/assets/native-BMdJvE8u.js +1 -0
  158. package/dist/interface/assets/native-i7j7-uHJ.js +1 -0
  159. package/dist/interface/assets/{nodeDefinitions-a8iyp3yk.js → nodeDefinitions-CtfX1M97.js} +1 -1
  160. package/dist/interface/assets/{notifications-D4SOTDPx.js → notifications-B_hY7DqC.js} +1 -1
  161. package/dist/interface/assets/{pencil-outline-B5N-eyTy.js → pencil-outline-Pf6B58h3.js} +1 -1
  162. package/dist/interface/assets/plugin-lrS8bUX2.js +1 -0
  163. package/dist/interface/assets/{plugins-Bxyydn6v.js → plugins-V5-6e5L7.js} +1 -1
  164. package/dist/interface/assets/{plus-Ct9djYce.js → plus-CTpkwuud.js} +1 -1
  165. package/dist/interface/assets/{plus-CxnlTOHI.js → plus-TyoK27n7.js} +1 -1
  166. package/dist/interface/assets/{power-C-XO8yWI.js → power-BdKoekqT.js} +1 -1
  167. package/dist/interface/assets/{radar-8nK_pSbi.js → radar-CH2BXtex.js} +1 -1
  168. package/dist/interface/assets/{refresh-CygeIRWu.js → refresh-B7-CESap.js} +1 -1
  169. package/dist/interface/assets/{restore-D_Dq23W9.js → restore-kAL9Wrd4.js} +1 -1
  170. package/dist/interface/assets/{ring-resize-DsW_XYdA.js → ring-resize-DDYKCwBE.js} +1 -1
  171. package/dist/interface/assets/{rooms-DdSOohLs.js → rooms-iq9Ync9a.js} +1 -1
  172. package/dist/interface/assets/{round-alt-arrow-left-bold-2FHg8vBl.js → round-alt-arrow-left-bold-MZGO7rU3.js} +1 -1
  173. package/dist/interface/assets/{search-Ck7b7yvI.js → search-70mLVEz7.js} +1 -1
  174. package/dist/interface/assets/{sensorIcons-CtVSmjCW.js → sensorIcons-DQIyC9JL.js} +1 -1
  175. package/dist/interface/assets/{sensors-C4ZGeFC2.js → sensors-7R3hMa_s.js} +1 -1
  176. package/dist/interface/assets/{server-DWPgetQJ.js → server-CyCTaiWl.js} +1 -1
  177. package/dist/interface/assets/{settings-Bw6giVLH.js → settings-B7tifwXn.js} +1 -1
  178. package/dist/interface/assets/{source-branch-K7YOvHCE.js → source-branch-CgHfENTa.js} +1 -1
  179. package/dist/interface/assets/{theme-BTgw7al1.js → theme-Cc5MIK4j.js} +1 -1
  180. package/dist/interface/assets/{trash-2-eaKaSMof.js → trash-2-DUSJ2XLn.js} +1 -1
  181. package/dist/interface/assets/{trash-can-outline-_aiv_oEu.js → trash-can-outline-wuIbai1c.js} +1 -1
  182. package/dist/interface/assets/{trash-fill-OkxLbTTj.js → trash-fill-CKyYCHKC.js} +1 -1
  183. package/dist/interface/assets/{trash2-Czz-2j5D.js → trash2-BZMXAPZP.js} +1 -1
  184. package/dist/interface/assets/{types-DJucLQEM.js → types-Br6AbfXl.js} +1 -1
  185. package/dist/interface/assets/{types-sQfxKKSk.js → types-CDVUPFqE.js} +1 -1
  186. package/dist/interface/assets/{types-BX3Shvk-.js → types-D9iX7VVJ.js} +1 -1
  187. package/dist/interface/assets/{undo-RdNzlJdm.js → undo-OK_WWA5K.js} +1 -1
  188. package/dist/interface/assets/{ungrouped-CfLdttI0.js → ungrouped-B-_P9Nxn.js} +1 -1
  189. package/dist/interface/assets/{updates-DSQhfbpi.js → updates-H8lZYYSt.js} +1 -1
  190. package/dist/interface/assets/{upload-D_9SZvdG.js → upload-BJQKy0Z4.js} +1 -1
  191. package/dist/interface/assets/{upload-DCTSXaJV.js → upload-Dp1Z1JOP.js} +1 -1
  192. package/dist/interface/assets/{useAppVersion-Dm0wl8Ks.js → useAppVersion-DuXhWeJY.js} +1 -1
  193. package/dist/interface/assets/{useBackupRestore-ARFlxu4a.js → useBackupRestore-C9JlDbTt.js} +1 -1
  194. package/dist/interface/assets/{useCameraOptions-CkKmF0Hk.js → useCameraOptions-CZvujVuW.js} +1 -1
  195. package/dist/interface/assets/{useLogsSocket-BQGKfynj.js → useLogsSocket-DW5Ll9qN.js} +1 -1
  196. package/dist/interface/assets/{useNavLayout-CB6pDWQI.js → useNavLayout-Ay4GP0IF.js} +1 -1
  197. package/dist/interface/assets/{usePermissions-CKQU5_yK.js → usePermissions-tvEa1N9y.js} +1 -1
  198. package/dist/interface/assets/{usePluginUpdates-DsX5Nf9S.js → usePluginUpdates-C6c7mdBo.js} +1 -1
  199. package/dist/interface/assets/{usePushRegistration-CR4ZsM1s.js → usePushRegistration-Cp-oFaYU.js} +2 -2
  200. package/dist/interface/assets/{useServerRestart-B0ux2xXZ.js → useServerRestart-F0do0_a5.js} +1 -1
  201. package/dist/interface/assets/{useStreamStatus-B13lBsjn.js → useStreamStatus-Cof0SieK.js} +1 -1
  202. package/dist/interface/assets/{useTabSwipe-CC9fSJyW.js → useTabSwipe-CH2JsEKl.js} +1 -1
  203. package/dist/interface/assets/{useUpdateChannel-4932QugL.js → useUpdateChannel--yUW8uvn.js} +1 -1
  204. package/dist/interface/assets/{useUpdatesSocket-BYOu1jFQ.js → useUpdatesSocket-DOHvs02g.js} +1 -1
  205. package/dist/interface/assets/useUserOptions-CO_I7IAm.js +1 -0
  206. package/dist/interface/assets/{variable-CYzMRxrK.js → variable-DQYEQC2B.js} +1 -1
  207. package/dist/interface/assets/{vendor-cameraui-C5_h4c-5.js → vendor-cameraui-B96_CDGO.js} +1 -1
  208. package/dist/interface/assets/{vendor-capacitor-B-ykF6jr.js → vendor-capacitor-NWfzfsQC.js} +2 -2
  209. package/dist/interface/assets/{vendor-chart-C-1xJhJN.js → vendor-chart-dE6RS38u.js} +1 -1
  210. package/dist/interface/assets/{vendor-core-DeodbhZZ.js → vendor-core-DFWGbWRD.js} +1 -1
  211. package/dist/interface/assets/{vendor-dnd-onyWAbsd.js → vendor-dnd-BopggnhP.js} +1 -1
  212. package/dist/interface/assets/{vendor-draggabilly-B7q3Src-.js → vendor-draggabilly-Ci8TnnTO.js} +1 -1
  213. package/dist/interface/assets/{vendor-markdown-aj6qAoLx.js → vendor-markdown-CuuUoQv-.js} +1 -1
  214. package/dist/interface/assets/{vendor-AX0A8AMd.js → vendor-nVfLT5jI.js} +1 -1
  215. package/dist/interface/assets/{vendor-primevue-C9-jpd5L.js → vendor-primevue-uo78flP9.js} +1 -1
  216. package/dist/interface/assets/{vendor-vueflow-8uLknwcA.js → vendor-vueflow-BedhB9R6.js} +1 -1
  217. package/dist/interface/assets/web-7C8V33mW.js +1 -0
  218. package/dist/interface/assets/web-BY2ge2z3.js +1 -0
  219. package/dist/interface/assets/web-Be7M1t3d.js +1 -0
  220. package/dist/interface/assets/web-BgvG5te3.js +1 -0
  221. package/dist/interface/assets/web-BjKL51lK-BH0_-sFs.js +1 -0
  222. package/dist/interface/assets/web-C8Kk4oGz.js +1 -0
  223. package/dist/interface/assets/web-CTyRzCSS.js +1 -0
  224. package/dist/interface/assets/web-CUqrzL_F.js +1 -0
  225. package/dist/interface/assets/web-CrNXFCs3.js +1 -0
  226. package/dist/interface/assets/web-D7fKj4KF.js +1 -0
  227. package/dist/interface/assets/web-DAr7KVsu.js +1 -0
  228. package/dist/interface/assets/web-DiXOyiwy.js +1 -0
  229. package/dist/interface/assets/web-Dx3qFqYr.js +1 -0
  230. package/dist/interface/assets/web-FQYwBib0.js +1 -0
  231. package/dist/interface/assets/{webhook-CPF2kUgU.js → webhook-B9NooZUT.js} +1 -1
  232. package/dist/interface/assets/workbox-window.prod.es5-CubmHh5i.js +1 -0
  233. package/dist/interface/assets/{zoom-in-D-OIVcXF.js → zoom-in-DkOfo9Ku.js} +1 -1
  234. package/dist/interface/ha/{404-BJV77Tm3.js → 404-CvCsIvOn.js} +1 -1
  235. package/dist/interface/ha/{About-B9m7sPyi.js → About-Bqb-qrXr.js} +3 -3
  236. package/dist/interface/ha/{Automation-CpRTKtII.js → Automation-AiOadcvh.js} +25 -25
  237. package/dist/interface/ha/{AutomationImport-Cwx9PKHq.js → AutomationImport-CHs99b96.js} +6 -6
  238. package/dist/interface/ha/{AutomationStore-D1DJAo3Y.js → AutomationStore-yTxgRNos.js} +4 -4
  239. package/dist/interface/ha/{AutomationStoreDetail-BWkMk3zp.js → AutomationStoreDetail-CWB-S_Dq.js} +6 -6
  240. package/dist/interface/ha/{Automations-2-dpUnyN.js → Automations-ymrcS6zL.js} +3 -3
  241. package/dist/interface/ha/{Camera-BFQCXQ-9.js → Camera-gfUjA1cF.js} +3 -3
  242. package/dist/interface/ha/{CameraConsole-DN2AUzCO.js → CameraConsole-DBM_9sZD.js} +3 -3
  243. package/dist/interface/ha/{Cameras-Cp2tLuzn.js → Cameras-BDYtuflZ.js} +6 -6
  244. package/dist/interface/ha/{Camview-9-QATaMt.js → Camview-CyZW6Ccj.js} +3 -3
  245. package/dist/interface/ha/{Config-B7BWUVjy.js → Config-Dw11VG_z.js} +6 -6
  246. package/dist/interface/ha/{ConfigActionCameraControl-B4bligkf.js → ConfigActionCameraControl-SpfqepU9.js} +3 -3
  247. package/dist/interface/ha/{ConfigActionHttp-Ci1pT2TU.js → ConfigActionHttp-DRNiEJwf.js} +2 -2
  248. package/dist/interface/ha/{ConfigActionImageInput-JL7XqPlF.js → ConfigActionImageInput-BKIS7_Az.js} +1 -1
  249. package/dist/interface/ha/{ConfigActionMqtt-CErH-8g0.js → ConfigActionMqtt-vcKjYONr.js} +4 -4
  250. package/dist/interface/ha/{ConfigActionNotification-DbB5il5h.js → ConfigActionNotification-C8RqA0hp.js} +3 -3
  251. package/dist/interface/ha/{ConfigActionNotificationControl-BidGFW5w.js → ConfigActionNotificationControl-DxDU-1LD.js} +2 -2
  252. package/dist/interface/ha/{ConfigActionOutput-BbEPcSqB.js → ConfigActionOutput-Dd9tqEbp.js} +1 -1
  253. package/dist/interface/ha/{ConfigActionPlugin-BQUbQheX.js → ConfigActionPlugin-hZohlF2U.js} +4 -4
  254. package/dist/interface/ha/{ConfigActionSensor-ZwXZF672.js → ConfigActionSensor-CsTZdgpn.js} +4 -4
  255. package/dist/interface/ha/{ConfigActionSnapshot-CKCKSlvU.js → ConfigActionSnapshot-CVuRrZog.js} +2 -2
  256. package/dist/interface/ha/{ConfigActionVariable-DB-leNOV.js → ConfigActionVariable-BW0Mfwzv.js} +1 -1
  257. package/dist/interface/ha/{ConfigConditionIfElse-268mse2c.js → ConfigConditionIfElse-B8giXSLg.js} +3 -3
  258. package/dist/interface/ha/{ConfigConditionSensorState-DwPY2W53.js → ConfigConditionSensorState-SOYmnv38.js} +4 -4
  259. package/dist/interface/ha/{ConfigConditionSwitch-C9zW3TAK.js → ConfigConditionSwitch-DPYRsgIP.js} +3 -3
  260. package/dist/interface/ha/{ConfigSensorValueInput-cKpE0FZE.js → ConfigSensorValueInput-C8uDea7H.js} +2 -2
  261. package/dist/interface/ha/{ConfigTriggerDetection-C0S-k9O5.js → ConfigTriggerDetection-DKrNlf4n.js} +2 -2
  262. package/dist/interface/ha/{ConfigTriggerGeofence-CjmlCNj3.js → ConfigTriggerGeofence-BoKYjfEF.js} +2 -2
  263. package/dist/interface/ha/{ConfigTriggerMqtt-YpTYEXuH.js → ConfigTriggerMqtt-A0druw9s.js} +1 -1
  264. package/dist/interface/ha/{ConfigTriggerSensor-jTkbOjQw.js → ConfigTriggerSensor-DnqfzsxM.js} +1 -1
  265. package/dist/interface/ha/{ConfigTriggerSystem-ChQOH5XE.js → ConfigTriggerSystem-B8JHImoF.js} +2 -2
  266. package/dist/interface/ha/{ConfigTriggerWebhook--Xitqvob.js → ConfigTriggerWebhook-B34dHYln.js} +1 -1
  267. package/dist/interface/ha/{Console-BLBwNOGF.js → Console-vTZkA5_c.js} +2 -2
  268. package/dist/interface/ha/{CuiAutomationRunsDialog-DZpflYbm.js → CuiAutomationRunsDialog-D1j6QT1J.js} +2 -2
  269. package/dist/interface/ha/{CuiBottomSheet-x112x30L.js → CuiBottomSheet-tJqB2HMb.js} +1 -1
  270. package/dist/interface/ha/{CuiCameraRecordings-kyJmGt96.js → CuiCameraRecordings-CbXShYur.js} +2 -2
  271. package/dist/interface/ha/{CuiCameraShares-C64w7YIg.js → CuiCameraShares-fsCg_eYs.js} +2 -2
  272. package/dist/interface/ha/{CuiCameraTable-BcucTb-H.js → CuiCameraTable-cCH34Rqx.js} +2 -2
  273. package/dist/interface/ha/{CuiChartTable-HtK2jIrg.js → CuiChartTable-CMkcRmDL.js} +3 -3
  274. package/dist/interface/ha/{CuiConsole-B6UN73LC.js → CuiConsole-wuBto4Ht.js} +1 -1
  275. package/dist/interface/ha/{CuiDataTable-C06T8Rgf.js → CuiDataTable-yviddz9T.js} +1 -1
  276. package/dist/interface/ha/{CuiPluginCard-Ca1syMp2.js → CuiPluginCard-Dr4cFcve.js} +6 -6
  277. package/dist/interface/ha/{CuiPluginOAuthButton-B_kD1J7y.js → CuiPluginOAuthButton-D4M7piUp.js} +2 -2
  278. package/dist/interface/ha/{CuiPluginTrustBadge-BGnfwBkE.js → CuiPluginTrustBadge-CVwRbaTh.js} +1 -1
  279. package/dist/interface/ha/{CuiQRCode-C8afEdjI.js → CuiQRCode-CTr0g0fy.js} +2 -2
  280. package/dist/interface/ha/{CuiSchema-BDqA8ICl.js → CuiSchema-DtfAoLxQ.js} +2 -2
  281. package/dist/interface/ha/{CuiTopNavbarItem-Cowg2EeV.js → CuiTopNavbarItem-4H6Gg0Pe.js} +1 -1
  282. package/dist/interface/ha/{Faces-COKq1uOY.js → Faces-DSjPW-A-.js} +2 -2
  283. package/dist/interface/ha/{FirstSteps-B6Rpbo6X.js → FirstSteps-BK_EXlZU.js} +4 -4
  284. package/dist/interface/ha/{Floorplan-C7Z973FS.js → Floorplan-BWRteZjr.js} +4 -4
  285. package/dist/interface/ha/{Instances-D5jpC7_k.js → Instances-Dln03_o7.js} +1 -1
  286. package/dist/interface/ha/{Logs-BQ7844YD.js → Logs-xwh0fkZV.js} +6 -6
  287. package/dist/interface/ha/{Menu-BA3FMf84.js → Menu-BwzIh1vF.js} +2 -2
  288. package/dist/interface/ha/{Metrics-CW7eFTFq.js → Metrics-CiMXu6rz.js} +7 -7
  289. package/dist/interface/ha/{OAuthDeviceFlow-DY0EmFd2.js → OAuthDeviceFlow-D4IUrYub.js} +3 -3
  290. package/dist/interface/ha/{Plugin-CDTqk1Za.js → Plugin-CM5b1Jz4.js} +5 -5
  291. package/dist/interface/ha/{PluginConsole-BHPYWTQI.js → PluginConsole-BJNblZb5.js} +4 -4
  292. package/dist/interface/ha/{PluginDetail-CCanv1XC.js → PluginDetail--RFw88FL.js} +5 -5
  293. package/dist/interface/ha/{PluginSearch-CN5u42N5.js → PluginSearch-yzBxy3Zj.js} +4 -4
  294. package/dist/interface/ha/{PluginUpdateProgress-CYIL5ZH9.js → PluginUpdateProgress-BaYmaaE7.js} +3 -3
  295. package/dist/interface/ha/{Plugins-Cej_rQF0.js → Plugins-C-sU0dsj.js} +7 -7
  296. package/dist/interface/ha/{Recordings-CUBsiex_.js → Recordings-CXnTN85c.js} +2 -2
  297. package/dist/interface/ha/{SensorEdit-CHw_qb02.js → SensorEdit-ByAfduAA.js} +2 -2
  298. package/dist/interface/ha/{SensorHistory-CN-cU83N.js → SensorHistory-Cv1YF7qX.js} +2 -2
  299. package/dist/interface/ha/{Sensors-CsDHqjPN.js → Sensors-DyxXLT1C.js} +3 -3
  300. package/dist/interface/ha/{Settings-xYx7OlnI.js → Settings-DMBgMUpe.js} +2 -2
  301. package/dist/interface/ha/{SettingsAccount-CS3pzQOR.js → SettingsAccount-CiyVRy4Y.js} +4 -4
  302. package/dist/interface/ha/{SettingsAppearance-DJ7N-8pK.js → SettingsAppearance-BfXcGIwE.js} +3 -3
  303. package/dist/interface/ha/{SettingsBackup-CIa5Xieg.js → SettingsBackup-vsITZfgV.js} +2 -2
  304. package/dist/interface/ha/{SettingsList-B15eyCEc.js → SettingsList-BTxhjM8J.js} +1 -1
  305. package/dist/interface/ha/{SettingsMqtt-CAV58dIf.js → SettingsMqtt-JHf9BXbp.js} +2 -2
  306. package/dist/interface/ha/{SettingsNotifications-CaFA1fgA.js → SettingsNotifications-Bvay7Ob7.js} +6 -6
  307. package/dist/interface/ha/{SettingsRecordings-CdU1gIj-.js → SettingsRecordings-BAUAhyEd.js} +3 -3
  308. package/dist/interface/ha/{SettingsRemote-CfZF4rVJ.js → SettingsRemote-DAI3p-gY.js} +4 -4
  309. package/dist/interface/ha/{SettingsSystem-pAKtXD6a.js → SettingsSystem-D-UQqZyn.js} +7 -7
  310. package/dist/interface/ha/{SettingsUsers-bb02QZmu.js → SettingsUsers-D-_uCeBe.js} +3 -3
  311. package/dist/interface/ha/{Terminal-D8nt8rJZ.js → Terminal-BBBP74zZ.js} +2 -2
  312. package/dist/interface/ha/{Updates-CN1ovwX3.js → Updates-DDEAqmrt.js} +4 -4
  313. package/dist/interface/ha/{VariableInput-CknW9Awp.js → VariableInput-5aDKaHK6.js} +1 -1
  314. package/dist/interface/ha/VersionsHandler-Z5aUBicW.js +216 -0
  315. package/dist/interface/ha/{VirtualSensorCreate-DhYEEPoo.js → VirtualSensorCreate-DOjwBgbP.js} +1 -1
  316. package/dist/interface/ha/{Workers-22Qvr1uT.js → Workers-lI-ulBfQ.js} +6 -6
  317. package/dist/interface/ha/{api-jFJQoLDe.js → api-B-1nJvx1.js} +1 -1
  318. package/dist/interface/ha/{api-BqtwQvFZ.js → api-BU1ot-rQ.js} +7539 -7319
  319. package/dist/interface/ha/{auth-DYjwhf8n.js → auth-Wr26Jrhr.js} +1 -1
  320. package/dist/interface/ha/{automationBlueprint-BinFQ4tN.js → automationBlueprint-CjXCYTHX.js} +1 -1
  321. package/dist/interface/ha/{base-c1lsE5TW.js → base-JFhfGFcr.js} +2 -2
  322. package/dist/interface/ha/{base-D_LAf3cS.js → base-SuFG39qr.js} +2 -2
  323. package/dist/interface/ha/cameraui-cards.js +1 -1
  324. package/dist/interface/ha/{cards-JO0NQxtH.js → cards-DJ8I0DpS.js} +4 -4
  325. package/dist/interface/ha/{config-BZ6AkzPk.js → config--3c2hYeI.js} +1 -1
  326. package/dist/interface/ha/{dist-B7lgvbyI.js → dist-B6-R-H0I.js} +1 -1
  327. package/dist/interface/ha/{esm-DiBhi9zp.js → esm-B0AOriHG.js} +2 -2
  328. package/dist/interface/ha/{esm-CChFtwcx.js → esm-BJURq5pU.js} +4 -4
  329. package/dist/interface/ha/{esm-BGlkcEes.js → esm-BUN34MPG.js} +2 -2
  330. package/dist/interface/ha/{esm-6hnPZcZr.js → esm-Bih3VOl2.js} +1 -1
  331. package/dist/interface/ha/{esm-BKPZuThK.js → esm-CMQeJH3c.js} +2 -2
  332. package/dist/interface/ha/{esm-CvxDASXR.js → esm-CX7xaJ8m.js} +4 -4
  333. package/dist/interface/ha/{esm-XFPB9fYb.js → esm-CYrEjG_f.js} +2 -2
  334. package/dist/interface/ha/{esm-1sIZN4t7.js → esm-DHGj1GPK.js} +2 -2
  335. package/dist/interface/ha/{esm-BMx7MsZ_.js → esm-DIdsnkc_.js} +2 -2
  336. package/dist/interface/ha/{esm-CMTmAdHP.js → esm-DXHGazhG.js} +2 -2
  337. package/dist/interface/ha/{esm-B72ViJ7F.js → esm-Df31rl0C.js} +2 -2
  338. package/dist/interface/ha/{esm-CkoEL9YX.js → esm-WT4CLule.js} +2 -2
  339. package/dist/interface/ha/{esm-Demxl4zQ.js → esm-kzP5q0tS.js} +2 -2
  340. package/dist/interface/ha/{mqtt-DvoRfg48.js → mqtt-CSWN3zrE.js} +1 -1
  341. package/dist/interface/ha/{native-C8PbNqsJ.js → native-BVp2L4zs.js} +1 -1
  342. package/dist/interface/ha/{native-BaNeloQn.js → native-DpeL5PMH.js} +1 -1
  343. package/dist/interface/ha/{notifications-BXyPUJeI.js → notifications-B4jziVIo.js} +1 -1
  344. package/dist/interface/ha/{plugin-DAGqBiG_.js → plugin-l2y6Y_8_.js} +2 -2
  345. package/dist/interface/ha/{plugins-B7xVEI2U.js → plugins-BTBXmJqQ.js} +1 -1
  346. package/dist/interface/ha/{rooms-wdWj7L04.js → rooms-BxY9U6db.js} +1 -1
  347. package/dist/interface/ha/{server-BoeQx2s1.js → server-BxPWpMFK.js} +1 -1
  348. package/dist/interface/ha/{types-BLB8t9IM.js → types-D_Y5r1Yz.js} +1 -1
  349. package/dist/interface/ha/{ungrouped-BTlRpp_C.js → ungrouped-CpcBXTDQ.js} +1 -1
  350. package/dist/interface/ha/{updates-DJQ3mgFB.js → updates-Hyzkue_s.js} +5 -5
  351. package/dist/interface/ha/{useAppVersion-DBQHtFHV.js → useAppVersion-BME7p9Tn.js} +1 -1
  352. package/dist/interface/ha/{useLogsSocket-DUVEzjQv.js → useLogsSocket-9HYA1tN7.js} +1 -1
  353. package/dist/interface/ha/{useNavLayout-Tm6brv5T.js → useNavLayout-BP3bvHDX.js} +1 -1
  354. package/dist/interface/ha/{useServerRestart-qfZkaizw.js → useServerRestart-L0gugeHY.js} +1 -1
  355. package/dist/interface/ha/{useTabSwipe-DZZV2CAu.js → useTabSwipe-DKFPKAuu.js} +1 -1
  356. package/dist/interface/ha/{useUpdateChannel-CAAsjUty.js → useUpdateChannel-DgPBMvzK.js} +2 -2
  357. package/dist/interface/ha/{useUpdatesSocket-UVjukmiK.js → useUpdatesSocket-j4Sl2_YJ.js} +1 -1
  358. package/dist/interface/ha/{useUserOptions-fca_GryG.js → useUserOptions-BIVNeXD9.js} +1 -1
  359. package/dist/interface/ha/{web-B7Dt2zZN.js → web-BTc3X5b5.js} +2 -2
  360. package/dist/interface/ha/{web-BPBZBCtX.js → web-BXYQbRzG.js} +1 -1
  361. package/dist/interface/ha/{web-DtVT7WYt.js → web-BcNKpSQe.js} +1 -1
  362. package/dist/interface/ha/{web-BjKL51lK-qwJdIpM1.js → web-BjKL51lK-BaEnqwsB.js} +1 -1
  363. package/dist/interface/ha/{web-DqRMXrnx.js → web-C-wyOM11.js} +1 -1
  364. package/dist/interface/ha/{web-I7Urp4AE.js → web-CR01Y58E.js} +1 -1
  365. package/dist/interface/ha/{web-C01i9qI1.js → web-CyoXGIAe.js} +1 -1
  366. package/dist/interface/ha/{web-DxJQZCiR.js → web-D0dRLhy1.js} +2 -2
  367. package/dist/interface/ha/{web-aSaPk7kr.js → web-DbfBnw4i.js} +1 -1
  368. package/dist/interface/ha/{web-0Kyq65na.js → web-DdHWxSOZ.js} +1 -1
  369. package/dist/interface/ha/{web-pMey9p3Y.js → web-DhyFnSBX.js} +1 -1
  370. package/dist/interface/ha/{web-Cpm1-DVe.js → web-Dk8xCKUO.js} +1 -1
  371. package/dist/interface/ha/{web-CH3JeXWa.js → web-DyAa7xFA.js} +2 -2
  372. package/dist/interface/ha/{web-BNdrPSpb.js → web-_pDCYOmR.js} +1 -1
  373. package/dist/interface/index.html +48 -48
  374. package/dist/interface/sw.js +1 -1
  375. package/dist/server/package.json +4 -4
  376. package/dist/server/requirements.txt +1 -1
  377. package/dist/server/src/api/controllers/cameras.controller.js +1 -1
  378. package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
  379. package/dist/server/src/api/routes/sensors.routes.js +1 -1
  380. package/dist/server/src/api/routes/sensors.routes.js.map +1 -1
  381. package/dist/server/src/camera/controller.js +1 -1
  382. package/dist/server/src/camera/controller.js.map +1 -1
  383. package/dist/server/src/camera/decoder/detection-pipeline.d.ts +5 -1
  384. package/dist/server/src/camera/decoder/detection-pipeline.js +20 -0
  385. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  386. package/dist/server/src/camera/decoder/event-manager.js +8 -1
  387. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  388. package/dist/server/src/camera/decoder/nvr-sink.d.ts +1 -0
  389. package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
  390. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
  391. package/dist/server/src/camera/decoder/worker.d.ts +7 -0
  392. package/dist/server/src/camera/decoder/worker.js +74 -29
  393. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  394. package/package.json +4 -4
  395. package/dist/interface/assets/CuiBottomSheet-CNc2pbC7.js +0 -1
  396. package/dist/interface/assets/CuiCameraTable-Cgm7BoLZ.js +0 -1
  397. package/dist/interface/assets/CuiMarkdownContent-D2bWw1GN.js +0 -1
  398. package/dist/interface/assets/PluginSearch-C_4Txq7k.js +0 -1
  399. package/dist/interface/assets/SettingsAccount-DbArOHXx.js +0 -1
  400. package/dist/interface/assets/SettingsAppearance-CPrCyxBA.js +0 -1
  401. package/dist/interface/assets/VersionsHandler-DFef44HF.js +0 -7
  402. package/dist/interface/assets/api-Br1U09Hq.js +0 -4
  403. package/dist/interface/assets/cloudHandoff-Colhf5P9.js +0 -1
  404. package/dist/interface/assets/esm-BbJ0evRe.js +0 -1
  405. package/dist/interface/assets/esm-BhHeaCLC.js +0 -1
  406. package/dist/interface/assets/esm-BoDnt3g2.js +0 -1
  407. package/dist/interface/assets/esm-BvXpx-4p.js +0 -1
  408. package/dist/interface/assets/esm-BvcRUTNT.js +0 -1
  409. package/dist/interface/assets/esm-C0UOpApX.js +0 -1
  410. package/dist/interface/assets/esm-C43w04L-.js +0 -1
  411. package/dist/interface/assets/esm-CdrLDSBm.js +0 -1
  412. package/dist/interface/assets/esm-Cwg8vrH-.js +0 -1
  413. package/dist/interface/assets/esm-DKQwb4z2.js +0 -1
  414. package/dist/interface/assets/esm-DcJy8m_I.js +0 -1
  415. package/dist/interface/assets/esm-Dp7jb0si.js +0 -1
  416. package/dist/interface/assets/esm-cbRd6tNR.js +0 -1
  417. package/dist/interface/assets/esm-iDhBQslT.js +0 -1
  418. package/dist/interface/assets/native-BNjvFMoD.js +0 -1
  419. package/dist/interface/assets/native-XKbagpr7.js +0 -1
  420. package/dist/interface/assets/plugin-BStPT8lW.js +0 -1
  421. package/dist/interface/assets/useUserOptions-7qZi1YVO.js +0 -1
  422. package/dist/interface/assets/web-BFaZfzEP.js +0 -1
  423. package/dist/interface/assets/web-BdoMdiEl.js +0 -1
  424. package/dist/interface/assets/web-BjKL51lK-BiZEVgwj.js +0 -1
  425. package/dist/interface/assets/web-Bo0giiE9.js +0 -1
  426. package/dist/interface/assets/web-Bq6cS9c5.js +0 -1
  427. package/dist/interface/assets/web-Ckkk3gWT.js +0 -1
  428. package/dist/interface/assets/web-CsH298dH.js +0 -1
  429. package/dist/interface/assets/web-Cti9cQXr.js +0 -1
  430. package/dist/interface/assets/web-CtlJwfNS.js +0 -1
  431. package/dist/interface/assets/web-DUuNw0Ig.js +0 -1
  432. package/dist/interface/assets/web-Dz9QrW1k.js +0 -1
  433. package/dist/interface/assets/web-MA3uDo37.js +0 -1
  434. package/dist/interface/assets/web-UiUgCX6p.js +0 -1
  435. package/dist/interface/assets/web-zisLysQx.js +0 -1
  436. package/dist/interface/assets/workbox-window.prod.es5-CocanelX.js +0 -1
  437. package/dist/interface/ha/VersionsHandler-DL_zS-ms.js +0 -211
@@ -1 +1 @@
1
- import{Br as e,Ft as t,Gt as n,I as r,K as i,zt as a}from"./vendor-cameraui-C5_h4c-5.js";import{$ as o,An as s,Cr as c,D as l,Jn as u,R as d,Yn as f,_t as p,fr as m,g as h,gn as ee,h as g,i as _,j as te,l as ne,vt as re}from"./api-Br1U09Hq.js";import{$t as ie,An as ae,Cn as v,Kt as y,Mn as b,Pn as oe,Rn as se,Wn as ce,Xn as le,Yn as x,an as S,b as ue,dn as de,fn as C,hr as w,in as T,mn as E,nr as D,on as O,pr as k,rn as A,rr as j,sn as M,sr as N,ur as P,v as F,y as I,yn as L,yr as R}from"./vendor-AX0A8AMd.js";import{i as z,r as fe}from"./vendor-zod-CJ7LAMqQ.js";import{p as pe}from"./vendor-core-DeodbhZZ.js";import{K as me,L as he,R as ge,S as _e,a as ve,s as ye,u as be,z as xe}from"./vendor-primevue-C9-jpd5L.js";import{t as Se}from"./CuiDataTable-BozSktV7.js";import{t as Ce}from"./CuiQRCode-gqnAR_Zp.js";import{n as we,t as B}from"./auth-CUXeNcmI.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return b(),M(`svg`,V,[...t[0]||=[T(`path`,{fill:`currentColor`,d:`M7 14c-1.1 0-2-.9-2-2s.9-2 2-2s2 .9 2 2s-.9 2-2 2m5.6-4c-.8-2.3-3-4-5.6-4c-3.3 0-6 2.7-6 6s2.7 6 6 6c2.6 0 4.8-1.7 5.6-4H16v4h4v-4h3v-4z`},null,-1)]])}var Te=j({name:`mdi-key`,render:H}),U={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function W(e,t){return b(),M(`svg`,U,[...t[0]||=[T(`path`,{fill:`currentColor`,d:`M17 19H7V5h10m0-4H7c-1.11 0-2 .89-2 2v18a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2`},null,-1)]])}var Ee=j({name:`mdi-cellphone`,render:W}),G={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function K(e,t){return b(),M(`svg`,G,[...t[0]||=[T(`path`,{fill:`currentColor`,d:`M22 18v4h-4v-3h-3v-3h-3l-2.26-2.26c-.55.17-1.13.26-1.74.26a6 6 0 0 1-6-6a6 6 0 0 1 6-6a6 6 0 0 1 6 6c0 .61-.09 1.19-.26 1.74zM7 5a2 2 0 0 0-2 2a2 2 0 0 0 2 2a2 2 0 0 0 2-2a2 2 0 0 0-2-2`},null,-1)]])}var De=j({name:`mdi-key-variant`,render:K}),Oe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function ke(e,t){return b(),M(`svg`,Oe,[...t[0]||=[T(`path`,{fill:`currentColor`,d:`M4 6h16v10H4m16 2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4c-1.11 0-2 .89-2 2v10a2 2 0 0 0 2 2H0v2h24v-2z`},null,-1)]])}var Ae=j({name:`mdi-laptop`,render:ke}),je={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Me(e,t){return b(),M(`svg`,je,[...t[0]||=[T(`path`,{fill:`currentColor`,d:`M21 17H3V5h18m0-2H3a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2`},null,-1)]])}var Ne=j({name:`mdi-television`,render:Me}),Pe={class:`flex flex-col gap-6`},Fe={class:`token-box`},Ie={class:`token-value`},Le=s(E({__name:`ApiTokenCreated`,props:{token:{}},setup(t,{expose:r}){let i=t,o=c(),{t:s}=e(),{token:l}=k(i);async function u(){await _(l.value)?o.add({severity:`success`,detail:s(`components.toast.copied`),life:1500}):o.add({severity:`error`,detail:s(`components.toast.copy_failed`),life:3e3})}async function d(){}return r({onConfirm:d}),(e,t)=>{let r=xe,i=a,o=n;return b(),M(`div`,Pe,[C(r,{severity:`warn`},{default:x(()=>[de(R(e.$t(`views.settings.api_tokens.created_warning`)),1)]),_:1}),T(`div`,Fe,[T(`span`,Ie,R(w(l)),1),le((b(),S(i,{text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:u},{icon:x(()=>[C(w(p),{width:`100%`,height:`100%`})]),_:1})),[[o,{value:e.$t(`components.form.button.copy`)}]])])])}}}),[[`__scopeId`,`data-v-591cfcb4`]]),Re={class:`flex flex-col gap-2 w-full`},ze={for:`apiTokenName`,class:`cui-label`},Be={key:0,class:`text-xs text-red-500`},Ve=E({__name:`CreateApiToken`,props:{existingNames:{}},setup(e,{expose:t}){let n=e,i=N(``),a=A(()=>n.existingNames.includes(i.value.trim()));return t({onConfirm:async()=>{let e=i.value.trim();return!e||a.value?null:e}}),(e,t)=>{let n=r;return b(),M(`div`,Re,[T(`label`,ze,R(e.$t(`views.settings.api_tokens.name_label`)),1),C(n,{id:`apiTokenName`,modelValue:w(i),"onUpdate:modelValue":t[0]||=e=>D(i)?i.value=e:null,class:`w-full`,placeholder:e.$t(`views.settings.api_tokens.name_placeholder`),autofocus:``,invalid:w(a)},null,8,[`modelValue`,`placeholder`,`invalid`]),w(a)?(b(),M(`span`,Be,R(e.$t(`views.settings.api_tokens.name_exists`)),1)):O(``,!0)])}}}),He={class:`flex flex-col gap-6`},Ue={class:`backup-codes-grid`},We=s(E({__name:`TwoFactorBackupCodes`,props:{backupCodes:{}},setup(e,{expose:t}){let{backupCodes:n}=k(e);async function r(){}return t({onConfirm:r}),(e,t)=>{let r=xe;return b(),M(`div`,He,[C(r,{severity:`warn`},{default:x(()=>[de(R(e.$t(`views.settings.security.backup_warning`)),1)]),_:1}),T(`div`,Ue,[(b(!0),M(ie,null,oe(w(n),e=>(b(),M(`span`,{key:e,class:`backup-code`},R(e),1))),128))])])}}}),[[`__scopeId`,`data-v-0761a2ae`]]),Ge={class:`flex flex-col gap-6`},Ke={class:`text-muted`},qe={class:`flex flex-col gap-2 justify-center items-center mt-5`},Je={class:`cui-label`},Ye=E({__name:`TwoFactorDisable`,setup(t,{expose:n}){let r=new B,i=c(),{t:a}=e(),o=L(`dialogRefProps`),{mutateAsync:s,isPending:l}=r.disable2FAQuery(),u=N(``),d=A(()=>!!(o.loading?.value||l.value)),f=A(()=>u.value.length<6);async function p(){if(u.value.length<6)return null;try{await s({code:u.value}),i.add({severity:`success`,detail:a(`views.settings.security.2fa_disabled_success`),life:3e3})}catch(e){return i.add({severity:`error`,detail:e,life:3e3}),null}}return n({isLoading:d,isDisabled:f,onConfirm:p}),(e,t)=>{let n=be;return b(),M(`div`,Ge,[T(`p`,Ke,R(e.$t(`views.settings.security.disable_confirm`)),1),T(`div`,qe,[T(`label`,Je,R(e.$t(`views.settings.security.enter_code`)),1),C(n,{modelValue:w(u),"onUpdate:modelValue":t[0]||=e=>D(u)?u.value=e:null,length:6,"integer-only":``,class:`justify-center`},null,8,[`modelValue`])])])}}}),Xe={class:`flex flex-col gap-6`},Ze={class:`text-muted`},q={class:`flex flex-col gap-2 justify-center items-center mt-5`},J={class:`cui-label`},Qe=E({__name:`TwoFactorRegenerate`,props:{onBackupCodesGenerated:{type:Function}},setup(t,{expose:n}){let r=new B,i=t,a=c(),{t:o}=e(),s=L(`dialogRefProps`),{mutateAsync:l,isPending:u}=r.regenerateBackupCodesQuery(),d=N(``),f=A(()=>!!(s.loading?.value||u.value)),p=A(()=>d.value.length<6);async function m(){if(d.value.length<6)return null;try{let e=await l({code:d.value});a.add({severity:`success`,detail:o(`views.settings.security.backup_regenerated`),life:3e3}),i.onBackupCodesGenerated&&i.onBackupCodesGenerated(e.backupCodes)}catch(e){return a.add({severity:`error`,detail:e,life:3e3}),null}}return n({isLoading:f,isDisabled:p,onConfirm:m}),(e,t)=>{let n=be;return b(),M(`div`,Xe,[T(`p`,Ze,R(e.$t(`views.settings.security.regenerate_confirm`)),1),T(`div`,q,[T(`label`,J,R(e.$t(`views.settings.security.enter_code`)),1),C(n,{modelValue:w(d),"onUpdate:modelValue":t[0]||=e=>D(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=s(E({__name:`SettingsAccount`,props:{firststeps:{type:Boolean}},setup(s,{expose:oe}){let E=new B,j=s,L=o(),V=c(),{t:H}=e(),{firststeps:U}=k(j),W=h(),{user:G}=pe(W),{data:K,isLoading:Oe}=E.toggleQueryActivator(`get2FAStatusQuery`,!U.value).get2FAStatusQuery(),{mutateAsync:ke,isPending:je}=E.setup2FAQuery(),{mutateAsync:Me,isPending:Pe}=E.enable2FAQuery(),{data:Fe,isBusy:Ie}=E.toggleQueryActivator(`listSessionsQuery`,!U.value).listSessionsQuery({page:1,pageSize:-1}),{mutateAsync:Re}=E.revokeSessionQuery(),{mutateAsync:ze}=E.revokeOtherSessionsQuery(),{data:Be,isBusy:He}=E.toggleQueryActivator(`listApiTokensQuery`,!U.value).listApiTokensQuery(),{mutateAsync:Ue,isPending:Ge}=E.createApiTokenQuery(),{mutateAsync:Ke}=E.revokeApiTokenQuery(),qe=fe({password:l,passwordConfirm:z().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Je=fe({username:z().min(1),password:l,passwordConfirm:z().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Xe=ce(`formRef`),Ze=ce(`passwordFormRef`),q=P(),J=N(`avatar`),Y=N(G.value?.username??``),X=N(!1),Z=N(!1),Q=N(null),$=N(``),_n=N(null),vn=N(!1),yn=N(null);N(!1);let bn=N(!1),xn=N(!1),Sn=A(()=>!1),Cn={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},wn=A(()=>(Fe.value??[]).filter(e=>!e.is_current).length),Tn=A(()=>!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 _(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(){L.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){L.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){L.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(){L.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(){L.openComponentDialog(Ye,{data:{title:H(`views.settings.security.disable_2fa`),confirmText:H(`views.settings.security.disable_2fa`),confirmButtonProps:{severity:`danger`},contentProps:{}}})}function Ln(){L.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){L.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 g(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 te(m()),bn.value=!1,V.add({severity:`success`,detail:H(`views.settings.biometric.cleared`),life:3e3})}finally{xn.value=!1}}}return ae(()=>{Hn()}),oe({formRef:Xe}),(e,o)=>{let s=ee,c=r,l=ge,m=i,h=ye,g=a,_=t,te=Ce,ae=re,oe=he,ce=be,E=u,k=Te,A=f,j=xe,N=me,P=_e,L=d,z=Se,fe=ve,pe=we,B=n;return b(),M(`div`,null,[T(`div`,$e,[w(U)?(b(),S(w(ue),{key:0,ref_key:`formRef`,ref:Xe,"validation-schema":w(Je),class:`flex flex-col w-full gap-6`},{default:x(()=>[T(`div`,et,[T(`div`,tt,[T(`label`,nt,[C(s,{src:w(J),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),T(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:o[0]||=e=>zn(e)},null,32)])]),T(`span`,rt,R(e.$t(`views.settings.profile`)),1),C(m,{class:`cui-card`},{content:x(()=>[T(`div`,it,[C(w(I),{"model-value":w(G)?.username,name:`username`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:t,errors:n})=>[T(`label`,at,R(e.$t(`components.form.label.username`)),1),C(l,null,{default:x(()=>[C(c,v(t,{invalid:n.length>0,type:`text`}),null,16,[`invalid`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(F),{name:`username`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`])])]),_:1})]),T(`div`,null,[T(`span`,ot,R(e.$t(`views.settings.password`)),1),C(m,{class:`cui-card`},{content:x(()=>[T(`div`,st,[C(w(I),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:t,errors:n})=>[T(`label`,ct,R(e.$t(`components.form.label.new_password`)),1),C(l,null,{default:x(()=>[C(h,v({invalid:n.length>0},t,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(F),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),C(w(I),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:t,errors:n})=>[T(`label`,lt,R(e.$t(`components.form.label.new_password_confirm`)),1),C(l,null,{default:x(()=>[C(h,v({invalid:n.length>0},t,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(F),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1})])]),_:1})])]),_:1},8,[`validation-schema`])):(b(),M(ie,{key:1},[T(`div`,ut,[T(`div`,dt,[T(`label`,ft,[C(s,{src:w(J),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),T(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:o[1]||=e=>zn(e)},null,32)])]),T(`span`,pt,R(e.$t(`views.settings.profile`)),1),C(m,{class:`cui-card`},{content:x(()=>[T(`div`,mt,[T(`div`,ht,[T(`label`,gt,R(e.$t(`components.form.label.username`)),1),C(l,null,{default:x(()=>[C(c,{modelValue:w(Y),"onUpdate:modelValue":o[2]||=e=>D(Y)?Y.value=e:null,loading:w(X),type:`text`},null,8,[`modelValue`,`loading`])]),_:1})]),T(`div`,_t,[C(g,{loading:w(X),class:`cui-button-medium`,label:e.$t(`components.form.button.update_profile`),onClick:Bn},null,8,[`loading`,`label`])])])]),_:1})]),T(`div`,null,[T(`span`,vt,R(e.$t(`views.settings.password`)),1),C(m,{class:`cui-card`},{content:x(()=>[C(w(ue),{ref_key:`passwordFormRef`,ref:Ze,"validation-schema":w(qe),class:`flex flex-col gap-6`,onSubmit:o[3]||=e=>Vn(e)},{default:x(()=>[C(w(I),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:t,errors:n})=>[T(`label`,yt,R(e.$t(`components.form.label.new_password`)),1),C(l,null,{default:x(()=>[C(h,v({invalid:n.length>0},t,{loading:w(Z),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(F),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),C(w(I),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:t,errors:n})=>[T(`label`,bt,R(e.$t(`components.form.label.new_password_confirm`)),1),C(l,null,{default:x(()=>[C(h,v({invalid:n.length>0},t,{loading:w(Z),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(F),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1}),T(`div`,xt,[C(g,{type:`submit`,loading:w(Z),class:`cui-button-medium`,label:e.$t(`components.form.button.change_password`)},null,8,[`loading`,`label`])])]),_:1},8,[`validation-schema`])]),_:1})]),T(`div`,null,[T(`span`,St,R(e.$t(`views.settings.security.title`)),1),C(m,{class:`cui-card`},{content:x(()=>[w(Oe)?(b(),M(`div`,Ct,[C(_,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(b(),S(y,{key:1,name:`fade`,mode:`out-in`},{default:x(()=>[!w(K)?.enabled&&!w(Q)&&!w(je)?(b(),M(`div`,wt,[T(`div`,Tt,[T(`span`,Et,R(e.$t(`views.settings.security.2fa_title`)),1),T(`span`,Dt,R(e.$t(`views.settings.security.2fa_description`)),1)]),C(g,{class:`cui-button-medium ml-auto`,label:e.$t(`views.settings.security.setup_2fa`),onClick:Nn},null,8,[`label`])])):!w(K)?.enabled&&w(je)?(b(),M(`div`,Ot,[C(_,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`}),T(`span`,kt,R(e.$t(`views.settings.security.generating_qr`)),1)])):!w(K)?.enabled&&w(Q)?(b(),M(`div`,At,[T(`div`,jt,[C(te,{value:w(Tn),size:160,"logo-size":36},null,8,[`value`]),T(`p`,Mt,R(e.$t(`views.settings.security.scan_qr`)),1)]),T(`div`,Nt,[T(`div`,Pt,[T(`label`,Ft,R(e.$t(`views.settings.security.manual_entry`)),1),C(l,null,{default:x(()=>[C(c,{"model-value":w(Q)?.secret,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),C(oe,null,{default:x(()=>[C(ae,{"action-text":e.$t(`components.form.tooltip.copied`),icon:w(p),"button-props":{severity:`secondary`,text:!0},onAction:En},null,8,[`action-text`,`icon`])]),_:1})]),_:1})]),T(`div`,It,[T(`label`,Lt,R(e.$t(`views.settings.security.enter_code`)),1),C(ce,{modelValue:w($),"onUpdate:modelValue":o[4]||=e=>D($)?$.value=e:null,length:6,"integer-only":``},null,8,[`modelValue`])]),T(`div`,Rt,[C(g,{severity:`secondary`,class:`cui-button-medium`,label:e.$t(`components.form.button.cancel`),onClick:Pn},null,8,[`label`]),C(g,{class:`cui-button-medium`,label:e.$t(`views.settings.security.enable_2fa`),loading:w(Pe),disabled:w($).length<6,onClick:Fn},null,8,[`label`,`loading`,`disabled`])])])])):(b(),M(`div`,zt,[T(`div`,Bt,[T(`div`,Vt,[C(E,{class:`w-5 h-5`})]),T(`div`,Ht,[T(`span`,Ut,R(e.$t(`views.settings.security.2fa_enabled`)),1)])]),w(K)?.backupCodesCount===void 0?O(``,!0):(b(),M(`div`,Wt,[C(k,{class:`w-4 h-4`}),T(`span`,null,R(e.$t(`views.settings.security.backup_codes_remaining`,{count:w(K).backupCodesCount})),1)])),T(`div`,Gt,[C(g,{severity:`secondary`,class:`cui-button-medium`,label:e.$t(`views.settings.security.regenerate_backup`),onClick:Ln},null,8,[`label`]),C(g,{severity:`danger`,class:`cui-button-medium`,label:e.$t(`views.settings.security.disable_2fa`),onClick:In},null,8,[`label`])])]))]),_:1}))]),_:1})]),w(Sn)?(b(),M(`div`,Kt,[T(`span`,qt,R(e.$t(`views.settings.biometric.title`)),1),C(m,{class:`cui-card`},{content:x(()=>[T(`div`,Jt,[C(A,{class:`shrink-0 w-6 h-6 text-color`}),T(`div`,Yt,[T(`span`,Xt,R(e.$t(`views.settings.biometric.label`)),1),C(j,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:x(()=>[de(R(e.$t(`views.settings.biometric.description`)),1)]),_:1})]),C(N,{"model-value":w(bn),loading:w(xn),class:`ml-auto shrink-0`,"onUpdate:modelValue":Un},null,8,[`model-value`,`loading`])])]),_:1})])):O(``,!0),T(`div`,null,[T(`span`,Zt,R(e.$t(`views.settings.api_tokens.title`)),1),C(m,{class:`cui-card`},{content:x(()=>[T(`div`,Qt,[T(`span`,$t,R(e.$t(`views.settings.api_tokens.info`)),1),C(z,{value:w(Be)??[],"data-key":`id`,loading:w(He),pt:Cn,"striped-rows":``,scrollable:``},{loading:x(()=>[C(_,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:x(()=>[T(`span`,en,R(e.$t(`views.settings.api_tokens.empty`)),1)]),default:x(()=>[C(P,{field:`name`,header:e.$t(`views.settings.api_tokens.name_label`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:x(({data:e})=>[T(`div`,tn,[C(w(De),{class:`cui-session-icon`}),T(`div`,nn,[T(`span`,rn,R(e.name),1),T(`span`,an,R(e.token_hint),1)])])]),_:1},8,[`header`]),C(P,{field:`last_seen_at`,header:e.$t(`views.settings.api_tokens.last_used`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:x(({data:t})=>[T(`span`,on,R(t.last_seen_at>t.created_at?w(ne)(t.last_seen_at):e.$t(`views.settings.api_tokens.never`)),1)]),_:1},8,[`header`]),C(P,{field:`action`,"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7 text-right`},{body:x(({data:t})=>[le((b(),S(g,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:w(yn)===t.id,onClick:e=>jn(t)},{icon:x(()=>[C(L,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[B,{value:e.$t(`views.settings.api_tokens.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),T(`div`,sn,[C(g,{loading:w(Ge),class:`cui-button-medium mr-4 md:mr-0`,label:e.$t(`views.settings.api_tokens.create`),onClick:kn},null,8,[`loading`,`label`])])])]),_:1})]),T(`div`,null,[T(`span`,cn,R(e.$t(`views.settings.active_sessions.title`)),1),C(m,{class:`cui-card`},{content:x(()=>[T(`div`,ln,[C(z,{value:w(Fe)??[],"data-key":`id`,loading:w(Ie),pt:Cn,"striped-rows":``,scrollable:``},{loading:x(()=>[C(_,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:x(()=>[T(`span`,un,R(e.$t(`views.settings.active_sessions.empty`)),1)]),default:x(()=>[C(P,{field:`device`,header:e.$t(`views.settings.title_device`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:x(({data:t})=>[T(`div`,dn,[(b(),S(se(Dn(t.device.kind)),{class:`cui-session-icon`})),T(`div`,fn,[T(`div`,pn,[T(`span`,mn,R(t.device.name),1),t.is_current?(b(),S(fe,{key:0,severity:`success`,value:e.$t(`views.settings.active_sessions.this_device`),class:`cui-session-tag`},null,8,[`value`])):O(``,!0)]),T(`span`,hn,R(t.device.ip||`—`),1)])])]),_:1},8,[`header`]),C(P,{field:`action`,"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7 text-right`},{body:x(({data:t})=>[t.is_current?O(``,!0):le((b(),S(g,{key:0,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:w(_n)===t.id,onClick:e=>On(t.id)},{icon:x(()=>[C(pe,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[B,{value:e.$t(`views.settings.active_sessions.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),w(wn)>0?(b(),M(`div`,gn,[C(g,{loading:w(vn),class:`cui-button-medium mr-4 md:mr-0`,label:e.$t(`views.settings.active_sessions.revoke_all_others`,{count:w(wn)}),onClick:Mn},null,8,[`loading`,`label`])])):O(``,!0)])]),_:1})])],64))])])}}}),[[`__scopeId`,`data-v-de51a7b1`]]);export{Y as t};
1
+ import{Br as e,Ft as t,Gt as n,I as r,K as i,zt as a}from"./vendor-cameraui-B96_CDGO.js";import{$ as o,An as s,Cr as c,D as l,Jn as u,R as d,Yn as f,_t as p,fr as m,g as h,gn as ee,h as g,i as _,j as te,l as ne,vt as re}from"./api-CdT8ZD-n.js";import{$t as ie,An as ae,Cn as v,Kt as y,Mn as b,Pn as oe,Rn as se,Wn as ce,Xn as le,Yn as x,an as S,b as ue,dn as de,fn as C,hr as w,in as T,mn as E,nr as D,on as O,pr as k,rn as A,rr as j,sn as M,sr as N,ur as P,v as F,y as I,yn as L,yr as R}from"./vendor-nVfLT5jI.js";import{i as z,r as fe}from"./vendor-zod-CJ7LAMqQ.js";import{p as pe}from"./vendor-core-DFWGbWRD.js";import{K as me,L as he,R as ge,S as _e,a as ve,s as ye,u as be,z as xe}from"./vendor-primevue-uo78flP9.js";import{t as Se}from"./CuiDataTable-cN03N7lr.js";import{t as Ce}from"./CuiQRCode-CiWTLo9T.js";import{n as we,t as B}from"./auth-W2HVbsrF.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return b(),M(`svg`,V,[...t[0]||=[T(`path`,{fill:`currentColor`,d:`M7 14c-1.1 0-2-.9-2-2s.9-2 2-2s2 .9 2 2s-.9 2-2 2m5.6-4c-.8-2.3-3-4-5.6-4c-3.3 0-6 2.7-6 6s2.7 6 6 6c2.6 0 4.8-1.7 5.6-4H16v4h4v-4h3v-4z`},null,-1)]])}var Te=j({name:`mdi-key`,render:H}),U={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function W(e,t){return b(),M(`svg`,U,[...t[0]||=[T(`path`,{fill:`currentColor`,d:`M17 19H7V5h10m0-4H7c-1.11 0-2 .89-2 2v18a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2`},null,-1)]])}var Ee=j({name:`mdi-cellphone`,render:W}),G={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function K(e,t){return b(),M(`svg`,G,[...t[0]||=[T(`path`,{fill:`currentColor`,d:`M22 18v4h-4v-3h-3v-3h-3l-2.26-2.26c-.55.17-1.13.26-1.74.26a6 6 0 0 1-6-6a6 6 0 0 1 6-6a6 6 0 0 1 6 6c0 .61-.09 1.19-.26 1.74zM7 5a2 2 0 0 0-2 2a2 2 0 0 0 2 2a2 2 0 0 0 2-2a2 2 0 0 0-2-2`},null,-1)]])}var De=j({name:`mdi-key-variant`,render:K}),Oe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function ke(e,t){return b(),M(`svg`,Oe,[...t[0]||=[T(`path`,{fill:`currentColor`,d:`M4 6h16v10H4m16 2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4c-1.11 0-2 .89-2 2v10a2 2 0 0 0 2 2H0v2h24v-2z`},null,-1)]])}var Ae=j({name:`mdi-laptop`,render:ke}),je={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Me(e,t){return b(),M(`svg`,je,[...t[0]||=[T(`path`,{fill:`currentColor`,d:`M21 17H3V5h18m0-2H3a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2`},null,-1)]])}var Ne=j({name:`mdi-television`,render:Me}),Pe={class:`flex flex-col gap-6`},Fe={class:`token-box`},Ie={class:`token-value`},Le=s(E({__name:`ApiTokenCreated`,props:{token:{}},setup(t,{expose:r}){let i=t,o=c(),{t:s}=e(),{token:l}=k(i);async function u(){await _(l.value)?o.add({severity:`success`,detail:s(`components.toast.copied`),life:1500}):o.add({severity:`error`,detail:s(`components.toast.copy_failed`),life:3e3})}async function d(){}return r({onConfirm:d}),(e,t)=>{let r=xe,i=a,o=n;return b(),M(`div`,Pe,[C(r,{severity:`warn`},{default:x(()=>[de(R(e.$t(`views.settings.api_tokens.created_warning`)),1)]),_:1}),T(`div`,Fe,[T(`span`,Ie,R(w(l)),1),le((b(),S(i,{text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:u},{icon:x(()=>[C(w(p),{width:`100%`,height:`100%`})]),_:1})),[[o,{value:e.$t(`components.form.button.copy`)}]])])])}}}),[[`__scopeId`,`data-v-591cfcb4`]]),Re={class:`flex flex-col gap-2 w-full`},ze={for:`apiTokenName`,class:`cui-label`},Be={key:0,class:`text-xs text-red-500`},Ve=E({__name:`CreateApiToken`,props:{existingNames:{}},setup(e,{expose:t}){let n=e,i=N(``),a=A(()=>n.existingNames.includes(i.value.trim()));return t({onConfirm:async()=>{let e=i.value.trim();return!e||a.value?null:e}}),(e,t)=>{let n=r;return b(),M(`div`,Re,[T(`label`,ze,R(e.$t(`views.settings.api_tokens.name_label`)),1),C(n,{id:`apiTokenName`,modelValue:w(i),"onUpdate:modelValue":t[0]||=e=>D(i)?i.value=e:null,class:`w-full`,placeholder:e.$t(`views.settings.api_tokens.name_placeholder`),autofocus:``,invalid:w(a)},null,8,[`modelValue`,`placeholder`,`invalid`]),w(a)?(b(),M(`span`,Be,R(e.$t(`views.settings.api_tokens.name_exists`)),1)):O(``,!0)])}}}),He={class:`flex flex-col gap-6`},Ue={class:`backup-codes-grid`},We=s(E({__name:`TwoFactorBackupCodes`,props:{backupCodes:{}},setup(e,{expose:t}){let{backupCodes:n}=k(e);async function r(){}return t({onConfirm:r}),(e,t)=>{let r=xe;return b(),M(`div`,He,[C(r,{severity:`warn`},{default:x(()=>[de(R(e.$t(`views.settings.security.backup_warning`)),1)]),_:1}),T(`div`,Ue,[(b(!0),M(ie,null,oe(w(n),e=>(b(),M(`span`,{key:e,class:`backup-code`},R(e),1))),128))])])}}}),[[`__scopeId`,`data-v-0761a2ae`]]),Ge={class:`flex flex-col gap-6`},Ke={class:`text-muted`},qe={class:`flex flex-col gap-2 justify-center items-center mt-5`},Je={class:`cui-label`},Ye=E({__name:`TwoFactorDisable`,setup(t,{expose:n}){let r=new B,i=c(),{t:a}=e(),o=L(`dialogRefProps`),{mutateAsync:s,isPending:l}=r.disable2FAQuery(),u=N(``),d=A(()=>!!(o.loading?.value||l.value)),f=A(()=>u.value.length<6);async function p(){if(u.value.length<6)return null;try{await s({code:u.value}),i.add({severity:`success`,detail:a(`views.settings.security.2fa_disabled_success`),life:3e3})}catch(e){return i.add({severity:`error`,detail:e,life:3e3}),null}}return n({isLoading:d,isDisabled:f,onConfirm:p}),(e,t)=>{let n=be;return b(),M(`div`,Ge,[T(`p`,Ke,R(e.$t(`views.settings.security.disable_confirm`)),1),T(`div`,qe,[T(`label`,Je,R(e.$t(`views.settings.security.enter_code`)),1),C(n,{modelValue:w(u),"onUpdate:modelValue":t[0]||=e=>D(u)?u.value=e:null,length:6,"integer-only":``,class:`justify-center`},null,8,[`modelValue`])])])}}}),Xe={class:`flex flex-col gap-6`},Ze={class:`text-muted`},q={class:`flex flex-col gap-2 justify-center items-center mt-5`},J={class:`cui-label`},Qe=E({__name:`TwoFactorRegenerate`,props:{onBackupCodesGenerated:{type:Function}},setup(t,{expose:n}){let r=new B,i=t,a=c(),{t:o}=e(),s=L(`dialogRefProps`),{mutateAsync:l,isPending:u}=r.regenerateBackupCodesQuery(),d=N(``),f=A(()=>!!(s.loading?.value||u.value)),p=A(()=>d.value.length<6);async function m(){if(d.value.length<6)return null;try{let e=await l({code:d.value});a.add({severity:`success`,detail:o(`views.settings.security.backup_regenerated`),life:3e3}),i.onBackupCodesGenerated&&i.onBackupCodesGenerated(e.backupCodes)}catch(e){return a.add({severity:`error`,detail:e,life:3e3}),null}}return n({isLoading:f,isDisabled:p,onConfirm:m}),(e,t)=>{let n=be;return b(),M(`div`,Xe,[T(`p`,Ze,R(e.$t(`views.settings.security.regenerate_confirm`)),1),T(`div`,q,[T(`label`,J,R(e.$t(`views.settings.security.enter_code`)),1),C(n,{modelValue:w(d),"onUpdate:modelValue":t[0]||=e=>D(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=s(E({__name:`SettingsAccount`,props:{firststeps:{type:Boolean}},setup(s,{expose:oe}){let E=new B,j=s,L=o(),V=c(),{t:H}=e(),{firststeps:U}=k(j),W=h(),{user:G}=pe(W),{data:K,isLoading:Oe}=E.toggleQueryActivator(`get2FAStatusQuery`,!U.value).get2FAStatusQuery(),{mutateAsync:ke,isPending:je}=E.setup2FAQuery(),{mutateAsync:Me,isPending:Pe}=E.enable2FAQuery(),{data:Fe,isBusy:Ie}=E.toggleQueryActivator(`listSessionsQuery`,!U.value).listSessionsQuery({page:1,pageSize:-1}),{mutateAsync:Re}=E.revokeSessionQuery(),{mutateAsync:ze}=E.revokeOtherSessionsQuery(),{data:Be,isBusy:He}=E.toggleQueryActivator(`listApiTokensQuery`,!U.value).listApiTokensQuery(),{mutateAsync:Ue,isPending:Ge}=E.createApiTokenQuery(),{mutateAsync:Ke}=E.revokeApiTokenQuery(),qe=fe({password:l,passwordConfirm:z().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Je=fe({username:z().min(1),password:l,passwordConfirm:z().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Xe=ce(`formRef`),Ze=ce(`passwordFormRef`),q=P(),J=N(`avatar`),Y=N(G.value?.username??``),X=N(!1),Z=N(!1),Q=N(null),$=N(``),_n=N(null),vn=N(!1),yn=N(null);N(!1);let bn=N(!1),xn=N(!1),Sn=A(()=>!1),Cn={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},wn=A(()=>(Fe.value??[]).filter(e=>!e.is_current).length),Tn=A(()=>!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 _(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(){L.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){L.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){L.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(){L.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(){L.openComponentDialog(Ye,{data:{title:H(`views.settings.security.disable_2fa`),confirmText:H(`views.settings.security.disable_2fa`),confirmButtonProps:{severity:`danger`},contentProps:{}}})}function Ln(){L.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){L.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 g(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 te(m()),bn.value=!1,V.add({severity:`success`,detail:H(`views.settings.biometric.cleared`),life:3e3})}finally{xn.value=!1}}}return ae(()=>{Hn()}),oe({formRef:Xe}),(e,o)=>{let s=ee,c=r,l=ge,m=i,h=ye,g=a,_=t,te=Ce,ae=re,oe=he,ce=be,E=u,k=Te,A=f,j=xe,N=me,P=_e,L=d,z=Se,fe=ve,pe=we,B=n;return b(),M(`div`,null,[T(`div`,$e,[w(U)?(b(),S(w(ue),{key:0,ref_key:`formRef`,ref:Xe,"validation-schema":w(Je),class:`flex flex-col w-full gap-6`},{default:x(()=>[T(`div`,et,[T(`div`,tt,[T(`label`,nt,[C(s,{src:w(J),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),T(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:o[0]||=e=>zn(e)},null,32)])]),T(`span`,rt,R(e.$t(`views.settings.profile`)),1),C(m,{class:`cui-card`},{content:x(()=>[T(`div`,it,[C(w(I),{"model-value":w(G)?.username,name:`username`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:t,errors:n})=>[T(`label`,at,R(e.$t(`components.form.label.username`)),1),C(l,null,{default:x(()=>[C(c,v(t,{invalid:n.length>0,type:`text`}),null,16,[`invalid`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(F),{name:`username`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`])])]),_:1})]),T(`div`,null,[T(`span`,ot,R(e.$t(`views.settings.password`)),1),C(m,{class:`cui-card`},{content:x(()=>[T(`div`,st,[C(w(I),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:t,errors:n})=>[T(`label`,ct,R(e.$t(`components.form.label.new_password`)),1),C(l,null,{default:x(()=>[C(h,v({invalid:n.length>0},t,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(F),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),C(w(I),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:t,errors:n})=>[T(`label`,lt,R(e.$t(`components.form.label.new_password_confirm`)),1),C(l,null,{default:x(()=>[C(h,v({invalid:n.length>0},t,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(F),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1})])]),_:1})])]),_:1},8,[`validation-schema`])):(b(),M(ie,{key:1},[T(`div`,ut,[T(`div`,dt,[T(`label`,ft,[C(s,{src:w(J),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),T(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:o[1]||=e=>zn(e)},null,32)])]),T(`span`,pt,R(e.$t(`views.settings.profile`)),1),C(m,{class:`cui-card`},{content:x(()=>[T(`div`,mt,[T(`div`,ht,[T(`label`,gt,R(e.$t(`components.form.label.username`)),1),C(l,null,{default:x(()=>[C(c,{modelValue:w(Y),"onUpdate:modelValue":o[2]||=e=>D(Y)?Y.value=e:null,loading:w(X),type:`text`},null,8,[`modelValue`,`loading`])]),_:1})]),T(`div`,_t,[C(g,{loading:w(X),class:`cui-button-medium`,label:e.$t(`components.form.button.update_profile`),onClick:Bn},null,8,[`loading`,`label`])])])]),_:1})]),T(`div`,null,[T(`span`,vt,R(e.$t(`views.settings.password`)),1),C(m,{class:`cui-card`},{content:x(()=>[C(w(ue),{ref_key:`passwordFormRef`,ref:Ze,"validation-schema":w(qe),class:`flex flex-col gap-6`,onSubmit:o[3]||=e=>Vn(e)},{default:x(()=>[C(w(I),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:t,errors:n})=>[T(`label`,yt,R(e.$t(`components.form.label.new_password`)),1),C(l,null,{default:x(()=>[C(h,v({invalid:n.length>0},t,{loading:w(Z),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(F),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),C(w(I),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:t,errors:n})=>[T(`label`,bt,R(e.$t(`components.form.label.new_password_confirm`)),1),C(l,null,{default:x(()=>[C(h,v({invalid:n.length>0},t,{loading:w(Z),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(F),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1}),T(`div`,xt,[C(g,{type:`submit`,loading:w(Z),class:`cui-button-medium`,label:e.$t(`components.form.button.change_password`)},null,8,[`loading`,`label`])])]),_:1},8,[`validation-schema`])]),_:1})]),T(`div`,null,[T(`span`,St,R(e.$t(`views.settings.security.title`)),1),C(m,{class:`cui-card`},{content:x(()=>[w(Oe)?(b(),M(`div`,Ct,[C(_,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(b(),S(y,{key:1,name:`fade`,mode:`out-in`},{default:x(()=>[!w(K)?.enabled&&!w(Q)&&!w(je)?(b(),M(`div`,wt,[T(`div`,Tt,[T(`span`,Et,R(e.$t(`views.settings.security.2fa_title`)),1),T(`span`,Dt,R(e.$t(`views.settings.security.2fa_description`)),1)]),C(g,{class:`cui-button-medium ml-auto`,label:e.$t(`views.settings.security.setup_2fa`),onClick:Nn},null,8,[`label`])])):!w(K)?.enabled&&w(je)?(b(),M(`div`,Ot,[C(_,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`}),T(`span`,kt,R(e.$t(`views.settings.security.generating_qr`)),1)])):!w(K)?.enabled&&w(Q)?(b(),M(`div`,At,[T(`div`,jt,[C(te,{value:w(Tn),size:160,"logo-size":36},null,8,[`value`]),T(`p`,Mt,R(e.$t(`views.settings.security.scan_qr`)),1)]),T(`div`,Nt,[T(`div`,Pt,[T(`label`,Ft,R(e.$t(`views.settings.security.manual_entry`)),1),C(l,null,{default:x(()=>[C(c,{"model-value":w(Q)?.secret,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),C(oe,null,{default:x(()=>[C(ae,{"action-text":e.$t(`components.form.tooltip.copied`),icon:w(p),"button-props":{severity:`secondary`,text:!0},onAction:En},null,8,[`action-text`,`icon`])]),_:1})]),_:1})]),T(`div`,It,[T(`label`,Lt,R(e.$t(`views.settings.security.enter_code`)),1),C(ce,{modelValue:w($),"onUpdate:modelValue":o[4]||=e=>D($)?$.value=e:null,length:6,"integer-only":``},null,8,[`modelValue`])]),T(`div`,Rt,[C(g,{severity:`secondary`,class:`cui-button-medium`,label:e.$t(`components.form.button.cancel`),onClick:Pn},null,8,[`label`]),C(g,{class:`cui-button-medium`,label:e.$t(`views.settings.security.enable_2fa`),loading:w(Pe),disabled:w($).length<6,onClick:Fn},null,8,[`label`,`loading`,`disabled`])])])])):(b(),M(`div`,zt,[T(`div`,Bt,[T(`div`,Vt,[C(E,{class:`w-5 h-5`})]),T(`div`,Ht,[T(`span`,Ut,R(e.$t(`views.settings.security.2fa_enabled`)),1)])]),w(K)?.backupCodesCount===void 0?O(``,!0):(b(),M(`div`,Wt,[C(k,{class:`w-4 h-4`}),T(`span`,null,R(e.$t(`views.settings.security.backup_codes_remaining`,{count:w(K).backupCodesCount})),1)])),T(`div`,Gt,[C(g,{severity:`secondary`,class:`cui-button-medium`,label:e.$t(`views.settings.security.regenerate_backup`),onClick:Ln},null,8,[`label`]),C(g,{severity:`danger`,class:`cui-button-medium`,label:e.$t(`views.settings.security.disable_2fa`),onClick:In},null,8,[`label`])])]))]),_:1}))]),_:1})]),w(Sn)?(b(),M(`div`,Kt,[T(`span`,qt,R(e.$t(`views.settings.biometric.title`)),1),C(m,{class:`cui-card`},{content:x(()=>[T(`div`,Jt,[C(A,{class:`shrink-0 w-6 h-6 text-color`}),T(`div`,Yt,[T(`span`,Xt,R(e.$t(`views.settings.biometric.label`)),1),C(j,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:x(()=>[de(R(e.$t(`views.settings.biometric.description`)),1)]),_:1})]),C(N,{"model-value":w(bn),loading:w(xn),class:`ml-auto shrink-0`,"onUpdate:modelValue":Un},null,8,[`model-value`,`loading`])])]),_:1})])):O(``,!0),T(`div`,null,[T(`span`,Zt,R(e.$t(`views.settings.api_tokens.title`)),1),C(m,{class:`cui-card`},{content:x(()=>[T(`div`,Qt,[T(`span`,$t,R(e.$t(`views.settings.api_tokens.info`)),1),C(z,{value:w(Be)??[],"data-key":`id`,loading:w(He),pt:Cn,"striped-rows":``,scrollable:``},{loading:x(()=>[C(_,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:x(()=>[T(`span`,en,R(e.$t(`views.settings.api_tokens.empty`)),1)]),default:x(()=>[C(P,{field:`name`,header:e.$t(`views.settings.api_tokens.name_label`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:x(({data:e})=>[T(`div`,tn,[C(w(De),{class:`cui-session-icon`}),T(`div`,nn,[T(`span`,rn,R(e.name),1),T(`span`,an,R(e.token_hint),1)])])]),_:1},8,[`header`]),C(P,{field:`last_seen_at`,header:e.$t(`views.settings.api_tokens.last_used`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:x(({data:t})=>[T(`span`,on,R(t.last_seen_at>t.created_at?w(ne)(t.last_seen_at):e.$t(`views.settings.api_tokens.never`)),1)]),_:1},8,[`header`]),C(P,{field:`action`,"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7 text-right`},{body:x(({data:t})=>[le((b(),S(g,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:w(yn)===t.id,onClick:e=>jn(t)},{icon:x(()=>[C(L,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[B,{value:e.$t(`views.settings.api_tokens.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),T(`div`,sn,[C(g,{loading:w(Ge),class:`cui-button-medium mr-4 md:mr-0`,label:e.$t(`views.settings.api_tokens.create`),onClick:kn},null,8,[`loading`,`label`])])])]),_:1})]),T(`div`,null,[T(`span`,cn,R(e.$t(`views.settings.active_sessions.title`)),1),C(m,{class:`cui-card`},{content:x(()=>[T(`div`,ln,[C(z,{value:w(Fe)??[],"data-key":`id`,loading:w(Ie),pt:Cn,"striped-rows":``,scrollable:``},{loading:x(()=>[C(_,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:x(()=>[T(`span`,un,R(e.$t(`views.settings.active_sessions.empty`)),1)]),default:x(()=>[C(P,{field:`device`,header:e.$t(`views.settings.title_device`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:x(({data:t})=>[T(`div`,dn,[(b(),S(se(Dn(t.device.kind)),{class:`cui-session-icon`})),T(`div`,fn,[T(`div`,pn,[T(`span`,mn,R(t.device.name),1),t.is_current?(b(),S(fe,{key:0,severity:`success`,value:e.$t(`views.settings.active_sessions.this_device`),class:`cui-session-tag`},null,8,[`value`])):O(``,!0)]),T(`span`,hn,R(t.device.ip||`—`),1)])])]),_:1},8,[`header`]),C(P,{field:`action`,"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7 text-right`},{body:x(({data:t})=>[t.is_current?O(``,!0):le((b(),S(g,{key:0,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:w(_n)===t.id,onClick:e=>On(t.id)},{icon:x(()=>[C(pe,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[B,{value:e.$t(`views.settings.active_sessions.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),w(wn)>0?(b(),M(`div`,gn,[C(g,{loading:w(vn),class:`cui-button-medium mr-4 md:mr-0`,label:e.$t(`views.settings.active_sessions.revoke_all_others`,{count:w(wn)}),onClick:Mn},null,8,[`loading`,`label`])])):O(``,!0)])]),_:1})])],64))])])}}}),[[`__scopeId`,`data-v-de51a7b1`]]);export{Y as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./SettingsAppearance-NpsVIJUO.js";export{e as default};
@@ -1 +1 @@
1
- import{Br as e,K as t,ca as n}from"./vendor-cameraui-C5_h4c-5.js";import{Bn as r,Sn as ee,Vn as i,_ as a,v as o,yr as s}from"./api-Br1U09Hq.js";import{$t as te,Mn as c,Pn as ne,Yn as l,dn as u,fn as d,hr as f,in as p,jn as re,mn as m,nr as h,on as g,rn as _,sn as v,sr as y,yr as b}from"./vendor-AX0A8AMd.js";import{p as x}from"./vendor-core-DeodbhZZ.js";import{K as ie,j as ae,z as oe}from"./vendor-primevue-C9-jpd5L.js";import{n as se,r as ce}from"./useNavLayout-CB6pDWQI.js";import{n as le}from"./theme-BTgw7al1.js";var S={class:`flex flex-col w-full gap-6`},C={key:0},w={class:`card-title`},T={class:`flex flex-col gap-6`},E={class:`flex flex-col field-gap`},D={class:`cui-label`},O={class:`w-full flex flex-col gap-2`},k={class:`flex flex-col field-gap cui-toggle-switch`},A={class:`flex items-center gap-4`},j={class:`flex flex-col field-switch-gap`},M={class:`cui-label-switch`},N={key:1},P={class:`card-title`},F={class:`flex flex-col gap-6`},I={class:`flex flex-col field-gap`},L={class:`cui-label`},R={key:2},z={class:`card-title`},B={class:`flex flex-col gap-6`},V={class:`flex flex-col field-gap`},H={class:`cui-label`},U={key:0,class:`flex flex-col field-gap`},W={class:`cui-label`},ue={class:`flex flex-col field-gap`},de={class:`cui-label`},fe={class:`w-full flex flex-col gap-2`},pe={class:`flex flex-col field-gap cui-toggle-switch`},me={class:`flex items-center gap-4`},he={class:`flex flex-col field-switch-gap`},ge={class:`cui-label-switch`},_e={key:3},ve={class:`card-title`},ye={class:`w-full flex flex-col gap-2`},be={class:`flex flex-col field-gap cui-toggle-switch`},xe={class:`flex items-center gap-4`},Se={class:`flex flex-col field-switch-gap`},Ce={class:`cui-label-switch`},we={class:`flex items-center gap-4`},Te={class:`flex flex-col field-switch-gap`},Ee={class:`cui-label-switch`},De={class:`card-title`},Oe={class:`w-full flex flex-col gap-2`},ke={class:`flex flex-col field-gap cui-toggle-switch`},Ae={class:`flex items-center gap-4`},je={class:`flex flex-col field-switch-gap`},Me={class:`cui-label-switch`},Ne={class:`flex flex-col field-gap cui-toggle-switch`},Pe={class:`flex items-center gap-4`},Fe={class:`flex flex-col field-switch-gap`},Ie={class:`cui-label-switch`},G=m({__name:`SettingsAppearance`,props:{compact:{type:Boolean,default:!1}},setup(m){let{t:G}=e(),{settingsInNav:K,isCollapsible:Le,setCollapsible:Re,setSettingsInNav:ze}=ce(),Be=a(),{language:q,languageOptions:Ve}=x(Be),He=le(),{colors:Ue,theme:J,autoMode:Y}=x(He),We=i(),{uiSettings:X}=x(We),Z=y(n.isRecording()),Q=y(n.isDebug()),$=[5,10,15,25,50,100],Ge=_(()=>[...se,...K.value?[`settings`]:[]]),Ke=_(()=>o().map(e=>({label:G(`navigation.${e.meta.name}`),value:e.path}))),qe=_(()=>r.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 re(Je),(e,n)=>{let r=ae,i=oe,a=ie,o=t;return c(),v(`div`,null,[p(`div`,S,[f(s)()?g(``,!0):(c(),v(`div`,C,[p(`span`,w,b(e.$t(`views.settings.theme`)),1),d(o,{class:`cui-card`},{content:l(()=>[p(`div`,T,[p(`div`,E,[p(`label`,D,b(e.$t(`components.form.label.theme`)),1),d(r,{modelValue:f(J),"onUpdate:modelValue":n[0]||=e=>h(J)?J.value=e:null,options:f(Ue),disabled:f(Y)},null,8,[`modelValue`,`options`,`disabled`])]),p(`div`,O,[p(`div`,k,[p(`div`,A,[p(`div`,j,[p(`label`,M,b(e.$t(`components.form.label.system_preference`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.system_preference`)),1)]),_:1})]),d(a,{modelValue:f(Y),"onUpdate:modelValue":n[1]||=e=>h(Y)?Y.value=e:null,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})])),f(s)()?g(``,!0):(c(),v(`div`,N,[p(`span`,P,b(e.$t(`views.settings.locale`)),1),d(o,{class:`cui-card`},{content:l(()=>[p(`div`,F,[p(`div`,I,[p(`label`,L,b(e.$t(`components.form.label.language`)),1),d(r,{modelValue:f(q),"onUpdate:modelValue":n[2]||=e=>h(q)?q.value=e:null,options:f(Ve),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`])])])]),_:1})])),m.compact?g(``,!0):(c(),v(`div`,R,[p(`span`,z,b(e.$t(`views.settings.interface`)),1),d(o,{class:`cui-card`},{content:l(()=>[p(`div`,B,[p(`div`,V,[p(`label`,H,b(e.$t(`components.form.label.default_landing_page`)),1),d(r,{modelValue:f(X).interface.landingPage,"onUpdate:modelValue":n[3]||=e=>f(X).interface.landingPage=e,options:f(Ke),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.default_landing_page`)),1)]),_:1})]),(`hasPermission`in e?e.hasPermission:f(ee))(void 0,`admin`)?(c(),v(`div`,U,[p(`label`,W,b(e.$t(`components.form.label.default_settings_page`)),1),d(r,{modelValue:f(X).interface.selectedSettingsView,"onUpdate:modelValue":n[4]||=e=>f(X).interface.selectedSettingsView=e,options:f(qe),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.default_settings_page`)),1)]),_:1})])):g(``,!0),p(`div`,ue,[p(`label`,de,b(e.$t(`components.form.label.table_rows`)),1),d(r,{modelValue:f(X).interface.tableRows,"onUpdate:modelValue":n[5]||=e=>f(X).interface.tableRows=e,options:$},null,8,[`modelValue`]),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.table_rows`)),1)]),_:1})]),p(`div`,fe,[p(`div`,pe,[p(`div`,me,[p(`div`,he,[p(`label`,ge,b(e.$t(`components.form.label.navbar_stay_collapsed`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.navbar_stay_collapsed`)),1)]),_:1})]),d(a,{modelValue:f(X).interface.navbarStayCollapsed,"onUpdate:modelValue":n[6]||=e=>f(X).interface.navbarStayCollapsed=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})])),m.compact?g(``,!0):(c(),v(`div`,_e,[p(`span`,ve,b(e.$t(`views.settings.navigation`)),1),d(o,{class:`cui-card`},{content:l(()=>[p(`div`,ye,[p(`div`,be,[p(`div`,xe,[p(`div`,Se,[p(`label`,Ce,b(e.$t(`components.form.label.nav_settings_in_nav`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.nav_settings_in_nav`)),1)]),_:1})]),d(a,{"model-value":f(K),class:`ml-auto shrink-0`,"onUpdate:modelValue":n[7]||=e=>f(ze)(e)},null,8,[`model-value`])])]),(c(!0),v(te,null,ne(f(Ge),t=>(c(),v(`div`,{key:t,class:`flex flex-col field-gap cui-toggle-switch`},[p(`div`,we,[p(`div`,Te,[p(`label`,Ee,b(e.$t(`components.form.label.nav_group_collapsible`,{group:e.$t(`navigation.group_${t}`)})),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.nav_group_collapsible`,{group:e.$t(`navigation.group_${t}`)})),1)]),_:2},1024)]),d(a,{"model-value":f(Le)(t),class:`ml-auto shrink-0`,"onUpdate:modelValue":e=>f(Re)(t,e)},null,8,[`model-value`,`onUpdate:modelValue`])])]))),128))])]),_:1})])),p(`div`,null,[p(`span`,De,b(e.$t(`views.settings.debugging`)),1),d(o,{class:`cui-card`},{content:l(()=>[p(`div`,Oe,[p(`div`,ke,[p(`div`,Ae,[p(`div`,je,[p(`label`,Me,b(e.$t(`components.form.label.debug_verbose`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.debug_verbose`)),1)]),_:1})]),d(a,{"model-value":f(Q),class:`ml-auto shrink-0`,"onUpdate:modelValue":Xe},null,8,[`model-value`])])]),p(`div`,Ne,[p(`div`,Pe,[p(`div`,Fe,[p(`label`,Ie,b(e.$t(`components.form.label.record_logs`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.record_logs`)),1)]),_:1})]),d(a,{"model-value":f(Z),class:`ml-auto shrink-0`,"onUpdate:modelValue":Ye},null,8,[`model-value`])])])])]),_:1})])])])}}});export{G as t};
1
+ import{Br as e,K as t,ca as n}from"./vendor-cameraui-B96_CDGO.js";import{Bn as r,Sn as ee,Vn as i,_ as a,v as o,yr as s}from"./api-CdT8ZD-n.js";import{$t as te,Mn as c,Pn as ne,Yn as l,dn as u,fn as d,hr as f,in as p,jn as re,mn as m,nr as h,on as g,rn as _,sn as v,sr as y,yr as b}from"./vendor-nVfLT5jI.js";import{p as x}from"./vendor-core-DFWGbWRD.js";import{K as ie,j as ae,z as oe}from"./vendor-primevue-uo78flP9.js";import{n as se,r as ce}from"./useNavLayout-Ay4GP0IF.js";import{n as le}from"./theme-Cc5MIK4j.js";var S={class:`flex flex-col w-full gap-6`},C={key:0},w={class:`card-title`},T={class:`flex flex-col gap-6`},E={class:`flex flex-col field-gap`},D={class:`cui-label`},O={class:`w-full flex flex-col gap-2`},k={class:`flex flex-col field-gap cui-toggle-switch`},A={class:`flex items-center gap-4`},j={class:`flex flex-col field-switch-gap`},M={class:`cui-label-switch`},N={key:1},P={class:`card-title`},F={class:`flex flex-col gap-6`},I={class:`flex flex-col field-gap`},L={class:`cui-label`},R={key:2},z={class:`card-title`},B={class:`flex flex-col gap-6`},V={class:`flex flex-col field-gap`},H={class:`cui-label`},U={key:0,class:`flex flex-col field-gap`},W={class:`cui-label`},ue={class:`flex flex-col field-gap`},de={class:`cui-label`},fe={class:`w-full flex flex-col gap-2`},pe={class:`flex flex-col field-gap cui-toggle-switch`},me={class:`flex items-center gap-4`},he={class:`flex flex-col field-switch-gap`},ge={class:`cui-label-switch`},_e={key:3},ve={class:`card-title`},ye={class:`w-full flex flex-col gap-2`},be={class:`flex flex-col field-gap cui-toggle-switch`},xe={class:`flex items-center gap-4`},Se={class:`flex flex-col field-switch-gap`},Ce={class:`cui-label-switch`},we={class:`flex items-center gap-4`},Te={class:`flex flex-col field-switch-gap`},Ee={class:`cui-label-switch`},De={class:`card-title`},Oe={class:`w-full flex flex-col gap-2`},ke={class:`flex flex-col field-gap cui-toggle-switch`},Ae={class:`flex items-center gap-4`},je={class:`flex flex-col field-switch-gap`},Me={class:`cui-label-switch`},Ne={class:`flex flex-col field-gap cui-toggle-switch`},Pe={class:`flex items-center gap-4`},Fe={class:`flex flex-col field-switch-gap`},Ie={class:`cui-label-switch`},G=m({__name:`SettingsAppearance`,props:{compact:{type:Boolean,default:!1}},setup(m){let{t:G}=e(),{settingsInNav:K,isCollapsible:Le,setCollapsible:Re,setSettingsInNav:ze}=ce(),Be=a(),{language:q,languageOptions:Ve}=x(Be),He=le(),{colors:Ue,theme:J,autoMode:Y}=x(He),We=i(),{uiSettings:X}=x(We),Z=y(n.isRecording()),Q=y(n.isDebug()),$=[5,10,15,25,50,100],Ge=_(()=>[...se,...K.value?[`settings`]:[]]),Ke=_(()=>o().map(e=>({label:G(`navigation.${e.meta.name}`),value:e.path}))),qe=_(()=>r.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 re(Je),(e,n)=>{let r=ae,i=oe,a=ie,o=t;return c(),v(`div`,null,[p(`div`,S,[f(s)()?g(``,!0):(c(),v(`div`,C,[p(`span`,w,b(e.$t(`views.settings.theme`)),1),d(o,{class:`cui-card`},{content:l(()=>[p(`div`,T,[p(`div`,E,[p(`label`,D,b(e.$t(`components.form.label.theme`)),1),d(r,{modelValue:f(J),"onUpdate:modelValue":n[0]||=e=>h(J)?J.value=e:null,options:f(Ue),disabled:f(Y)},null,8,[`modelValue`,`options`,`disabled`])]),p(`div`,O,[p(`div`,k,[p(`div`,A,[p(`div`,j,[p(`label`,M,b(e.$t(`components.form.label.system_preference`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.system_preference`)),1)]),_:1})]),d(a,{modelValue:f(Y),"onUpdate:modelValue":n[1]||=e=>h(Y)?Y.value=e:null,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})])),f(s)()?g(``,!0):(c(),v(`div`,N,[p(`span`,P,b(e.$t(`views.settings.locale`)),1),d(o,{class:`cui-card`},{content:l(()=>[p(`div`,F,[p(`div`,I,[p(`label`,L,b(e.$t(`components.form.label.language`)),1),d(r,{modelValue:f(q),"onUpdate:modelValue":n[2]||=e=>h(q)?q.value=e:null,options:f(Ve),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`])])])]),_:1})])),m.compact?g(``,!0):(c(),v(`div`,R,[p(`span`,z,b(e.$t(`views.settings.interface`)),1),d(o,{class:`cui-card`},{content:l(()=>[p(`div`,B,[p(`div`,V,[p(`label`,H,b(e.$t(`components.form.label.default_landing_page`)),1),d(r,{modelValue:f(X).interface.landingPage,"onUpdate:modelValue":n[3]||=e=>f(X).interface.landingPage=e,options:f(Ke),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.default_landing_page`)),1)]),_:1})]),(`hasPermission`in e?e.hasPermission:f(ee))(void 0,`admin`)?(c(),v(`div`,U,[p(`label`,W,b(e.$t(`components.form.label.default_settings_page`)),1),d(r,{modelValue:f(X).interface.selectedSettingsView,"onUpdate:modelValue":n[4]||=e=>f(X).interface.selectedSettingsView=e,options:f(qe),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.default_settings_page`)),1)]),_:1})])):g(``,!0),p(`div`,ue,[p(`label`,de,b(e.$t(`components.form.label.table_rows`)),1),d(r,{modelValue:f(X).interface.tableRows,"onUpdate:modelValue":n[5]||=e=>f(X).interface.tableRows=e,options:$},null,8,[`modelValue`]),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.table_rows`)),1)]),_:1})]),p(`div`,fe,[p(`div`,pe,[p(`div`,me,[p(`div`,he,[p(`label`,ge,b(e.$t(`components.form.label.navbar_stay_collapsed`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.navbar_stay_collapsed`)),1)]),_:1})]),d(a,{modelValue:f(X).interface.navbarStayCollapsed,"onUpdate:modelValue":n[6]||=e=>f(X).interface.navbarStayCollapsed=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})])),m.compact?g(``,!0):(c(),v(`div`,_e,[p(`span`,ve,b(e.$t(`views.settings.navigation`)),1),d(o,{class:`cui-card`},{content:l(()=>[p(`div`,ye,[p(`div`,be,[p(`div`,xe,[p(`div`,Se,[p(`label`,Ce,b(e.$t(`components.form.label.nav_settings_in_nav`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.nav_settings_in_nav`)),1)]),_:1})]),d(a,{"model-value":f(K),class:`ml-auto shrink-0`,"onUpdate:modelValue":n[7]||=e=>f(ze)(e)},null,8,[`model-value`])])]),(c(!0),v(te,null,ne(f(Ge),t=>(c(),v(`div`,{key:t,class:`flex flex-col field-gap cui-toggle-switch`},[p(`div`,we,[p(`div`,Te,[p(`label`,Ee,b(e.$t(`components.form.label.nav_group_collapsible`,{group:e.$t(`navigation.group_${t}`)})),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.nav_group_collapsible`,{group:e.$t(`navigation.group_${t}`)})),1)]),_:2},1024)]),d(a,{"model-value":f(Le)(t),class:`ml-auto shrink-0`,"onUpdate:modelValue":e=>f(Re)(t,e)},null,8,[`model-value`,`onUpdate:modelValue`])])]))),128))])]),_:1})])),p(`div`,null,[p(`span`,De,b(e.$t(`views.settings.debugging`)),1),d(o,{class:`cui-card`},{content:l(()=>[p(`div`,Oe,[p(`div`,ke,[p(`div`,Ae,[p(`div`,je,[p(`label`,Me,b(e.$t(`components.form.label.debug_verbose`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.debug_verbose`)),1)]),_:1})]),d(a,{"model-value":f(Q),class:`ml-auto shrink-0`,"onUpdate:modelValue":Xe},null,8,[`model-value`])])]),p(`div`,Ne,[p(`div`,Pe,[p(`div`,Fe,[p(`label`,Ie,b(e.$t(`components.form.label.record_logs`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(e.$t(`components.form.hint.record_logs`)),1)]),_:1})]),d(a,{"model-value":f(Z),class:`ml-auto shrink-0`,"onUpdate:modelValue":Ye},null,8,[`model-value`])])])])]),_:1})])])])}}});export{G as t};
@@ -1 +1 @@
1
- import{Br as e,Ft as t,Gt as n,I as r,K as i,zt as a}from"./vendor-cameraui-C5_h4c-5.js";import{$ as o,Cr as s,On as c,s as l}from"./api-Br1U09Hq.js";import{$t as u,An as d,Mn as f,Pn as p,Qt as m,Rn as h,Wn as g,Xn as _,Yn as v,an as y,ar as b,dn as x,fn as S,hr as C,in as w,mn as T,on as E,pr as D,rn as O,rr as k,sn as A,sr as j,ur as M,yr as N}from"./vendor-AX0A8AMd.js";import{K as ee,M as P,U as F,_ as te,j as I,z as L}from"./vendor-primevue-C9-jpd5L.js";import{a as R,c as z,i as ne,n as re,o as ie,r as ae,s as oe}from"./useBackupRestore-ARFlxu4a.js";import{t as se}from"./theme-BTgw7al1.js";import{t as ce}from"./trash-can-outline-_aiv_oEu.js";import{t as B}from"./close-circle-B9jFTQT1.js";import{t as le}from"./download-CaV8-tw6.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return f(),A(`svg`,V,[...t[0]||=[w(`path`,{fill:`currentColor`,d:`M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H15v-8h5V8zm-1 7V3.5L18.5 9zm4 12.66V16h5.66v2h-2.24l2.95 2.95l-1.41 1.41L19 19.41v2.24h-2z`},null,-1)]])}var U=k({name:`ic-baseline-file-open`,render:H}),W={class:`flex flex-col gap-6 p-4 items-center justify-center w-full`},G={class:`flex flex-col justify-center items-center`},K={for:`restoreInput`,class:`cursor-pointer text-center`},q=[`accept`],J={key:0,class:`text-red`},Y={class:`mx-2`},X={class:`text-muted`},ue=T({__name:`CuiUploadFiles`,props:{multiple:{type:Boolean,default:!1},accept:{},icon:{default:U}},emits:[`files-uploaded`],setup(e,{expose:t,emit:n}){let r=e,i=n,{accept:o,multiple:s}=D(r),c=g(`fileInputRef`),l=M([]),u=j(!1),d=j(!1);function p(e){let t=l.value.findIndex(t=>t.name===e);t>-1&&(l.value.splice(t,1),x())}function _(e){if(u.value=!1,d.value=!1,l.value=[],e.dataTransfer){if(!s.value&&e.dataTransfer.files.length>1)d.value=!0;else{for(let[,t]of Object.entries(e.dataTransfer.files))l.value.push(t);i(`files-uploaded`,l.value)}}}function b(e){d.value=!1,l.value=[];let t=e.target;if(t&&t.files){if(!s.value&&t.files?.length>1)d.value=!0;else{for(let[,e]of Object.entries(t.files))l.value.push(e);i(`files-uploaded`,l.value)}}}function x(){c.value&&(c.value.value=``)}function T(){l.value=[],x()}return t({reset:T}),(t,n)=>{let r=B,i=a,s=F,g=P;return f(),A(`div`,{class:`file-upload-box`,onDrop:n[0]||=m(e=>_(e),[`prevent`]),onDragover:n[1]||=m(e=>u.value=!0,[`prevent`]),onDragenter:n[2]||=m(e=>u.value=!0,[`prevent`]),onDragleave:n[3]||=m(e=>u.value=!1,[`prevent`])},[w(`div`,W,[w(`div`,G,[(f(),y(h(e.icon),{class:`w-15 h-15`})),w(`label`,K,N(t.$t(`components.upload_files.drop_or_select_file`)),1),w(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:c,type:`file`,class:`hidden`,accept:C(o),onChange:b},null,40,q),C(d)?(f(),A(`p`,J,N(t.$t(`components.upload_files.only_one_file_allowed`)),1)):E(``,!0)]),C(l).length>0?(f(),y(g,{key:0,items:C(l),"item-size":50,"scroll-height":`50px`,"scroll-width":`100%`,class:`w-full`},{item:v(({item:e})=>[(f(),A(`div`,{key:e.name,class:`w-full flex flex-row items-center justify-start p-2`},[S(i,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t=>p(e.name)},{icon:v(()=>[S(r,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`]),w(`b`,Y,N(e.name),1),w(`span`,X,`(`+N(e.size)+` bytes)`,1)])),C(l).length>1?(f(),y(s,{key:0,class:`m-0 py-4`})):E(``,!0)]),_:1},8,[`items`])):E(``,!0)])],32)}}}),de={class:`flex flex-col w-full gap-6`},fe={class:`card-title`},pe={class:`flex flex-col gap-6`},me={class:`text-sm`},he={class:`card-title`},ge={class:`flex flex-col gap-6`},_e={class:`text-sm`},ve={class:`card-title`},ye={key:0,class:`flex w-full items-center justify-center py-6`},be={key:1,class:`flex flex-col gap-6`},xe={class:`flex items-center gap-4`},Z={class:`flex flex-col gap-1 min-w-0`},Se={class:`text-sm`},Ce={class:`text-xs text-muted`},we={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},Te={class:`flex flex-col field-gap`},Ee={for:`backupInterval`,class:`cui-label`},De={class:`flex flex-col field-gap`},Oe={for:`backupTime`,class:`cui-label`},ke={key:0,class:`flex flex-col field-gap`},Ae={for:`backupWeekday`,class:`cui-label`},je={key:1,class:`flex flex-col field-gap`},Me={for:`backupDayOfMonth`,class:`cui-label`},Ne={class:`flex flex-col field-gap`},Pe={for:`backupRetention`,class:`cui-label`},Fe={class:`flex flex-col field-gap`},Ie={for:`backupDestination`,class:`cui-label`},Le={class:`flex items-center gap-2`},Re={key:1,class:`flex flex-col gap-2`},ze={class:`text-sm font-semibold border-b-[1px] border-color pb-2`},Be={class:`flex flex-col min-w-0`},Ve={class:`text-sm truncate`},He={class:`text-xs text-muted`},Ue={class:`flex gap-1 ml-auto shrink-0`},Q=T({__name:`SettingsBackup`,setup(m){let h=o(),T=s(),{t:D,locale:k}=e(),P=g(`filesRef`),F=M([]),B=j(!1),V=j(!0),H=j(!1),U=j(!1),W=j(null),G=j([]),K=j(``),q=j(),J=b({enabled:!1,interval:`daily`,time:`03:00`,weekday:0,dayOfMonth:1,retention:7,destinationPath:``}),Y=O(()=>/^([01]\d|2[0-3]):[0-5]\d$/.test(J.time)),X=O(()=>[`daily`,`weekly`,`monthly`].map(e=>({label:D(`views.settings.backup_interval_${e}`),value:e}))),Q=O(()=>Array.from({length:7},(e,t)=>({label:new Intl.DateTimeFormat(k.value,{weekday:`long`}).format(new Date(Date.UTC(2024,0,7+t,12))),value:t}))),We=O(()=>{if(!q.value)return D(`views.settings.backup_last_run`,{info:D(`views.settings.backup_last_run_never`)});let e=new Date(q.value.timestamp).toLocaleString(),t=q.value.status===`success`?`✓`:`✗ ${q.value.message??``}`;return D(`views.settings.backup_last_run`,{info:`${e} ${t}`})});async function Ge(){B.value=!0;try{let e={},t=localStorage.getItem(`ui`);if(t)try{e.ui=JSON.parse(t)}catch{}let n=localStorage.getItem(`language`);n&&(e.language=n),localStorage.getItem(`theme`)&&(e.theme=se());let r=Date.now(),i=await ne(e);await c({blob:new Blob([i]),filename:`cameraui-backup-${r}.tar.gz`,mimeType:`application/gzip`})}catch(e){T.add({severity:`error`,detail:l(e),life:3e3})}B.value=!1}function Ke(){h.openTextDialog({data:{title:D(`components.dialog.title.confirm`),contentText:D(`components.dialog.message.confirm_restore`),confirmText:D(`components.form.button.restore_and_restart`),loading:B},onConfirm:qe})}async function qe(){let e=F.value[0];e&&(B.value=!0,await re().run(e),P.value?.reset(),B.value=!1)}function Je(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`,`TB`],n=e,r=-1;do n/=1024,r++;while(n>=1024&&r<t.length-1);return`${n.toFixed(1)} ${t[r]}`}async function $(){try{let e=await ie(),{lastRun:t,...n}=e.settings;Object.assign(J,n),q.value=t,G.value=e.backups,K.value=e.defaultDestination}catch(e){T.add({severity:`error`,detail: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,T.add({severity:`success`,detail:D(`components.toast.backup_scheduler_saved`),life:3e3})}catch(e){T.add({severity:`error`,detail:l(e),life:3e3})}finally{H.value=!1}}}async function Xe(){U.value=!0;try{let e=await z();q.value=e,T.add({severity:`success`,detail:D(`components.toast.backup_created`),life:3e3})}catch(e){T.add({severity:`error`,detail:l(e),life:3e3})}finally{U.value=!1,await $()}}async function Ze(e){W.value=e.filename;try{let t=await R(e.filename);await c({blob:new Blob([t]),filename:e.filename,mimeType:`application/gzip`})}catch(e){T.add({severity:`error`,detail:l(e),life:3e3})}finally{W.value=null}}function Qe(e){h.openTextDialog({data:{title:D(`components.dialog.title.confirm`),contentText:D(`components.dialog.message.confirm_delete_backup`,{filename:e.filename}),confirmText:D(`components.form.button.remove`)},onConfirm:async()=>{try{await ae(e.filename),T.add({severity:`success`,detail:D(`components.toast.backup_deleted`),life:3e3}),await $()}catch(e){T.add({severity:`error`,detail:l(e),life:3e3})}}})}return d($),(e,o)=>{let s=a,c=i,l=ue,d=t,m=ee,h=I,g=r,b=te,T=L,D=le,O=ce,k=n;return f(),A(`div`,null,[w(`div`,de,[w(`div`,null,[w(`span`,fe,N(e.$t(`views.settings.create_backup`)),1),S(c,{class:`cui-card`},{content:v(()=>[w(`div`,pe,[w(`span`,me,N(e.$t(`views.settings.create_backup_info`)),1),S(s,{loading:C(B),class:`ml-auto cui-button-medium`,label:e.$t(`components.form.button.download_backup_archive`),onClick:Ge},null,8,[`loading`,`label`])])]),_:1})]),w(`div`,null,[w(`span`,he,N(e.$t(`views.settings.restore_backup`)),1),S(c,{class:`cui-card`},{content:v(()=>[w(`div`,ge,[w(`span`,_e,N(e.$t(`views.settings.restore_backup_info`)),1),S(l,{ref_key:`filesRef`,ref:P,accept:`application/gzip, .tar, .tar.gz`,onFilesUploaded:o[0]||=e=>F.value=e},null,512),S(s,{loading:C(B),disabled:!C(F).length,class:`ml-auto cui-button-medium`,label:e.$t(`components.form.button.restore_backup_archive`),onClick:Ke},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),w(`div`,null,[w(`span`,ve,N(e.$t(`views.settings.scheduled_backup`)),1),S(c,{class:`cui-card`},{content:v(()=>[C(V)?(f(),A(`div`,ye,[S(d,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(f(),A(`div`,be,[w(`div`,xe,[w(`div`,Z,[w(`span`,Se,N(e.$t(`views.settings.scheduled_backup_info`)),1),w(`span`,Ce,N(C(We)),1)]),S(m,{modelValue:C(J).enabled,"onUpdate:modelValue":o[1]||=e=>C(J).enabled=e,disabled:C(H),class:`ml-auto shrink-0`},null,8,[`modelValue`,`disabled`])]),C(J).enabled?(f(),A(u,{key:0},[w(`div`,we,[w(`div`,Te,[w(`label`,Ee,N(e.$t(`views.settings.backup_interval`)),1),S(h,{modelValue:C(J).interval,"onUpdate:modelValue":o[2]||=e=>C(J).interval=e,"input-id":`backupInterval`,options:C(X),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])]),w(`div`,De,[w(`label`,Oe,N(e.$t(`views.settings.backup_time`)),1),S(g,{id:`backupTime`,modelValue:C(J).time,"onUpdate:modelValue":o[3]||=e=>C(J).time=e,placeholder:`03:00`,disabled:C(H),invalid:!C(Y)},null,8,[`modelValue`,`disabled`,`invalid`])]),C(J).interval===`weekly`?(f(),A(`div`,ke,[w(`label`,Ae,N(e.$t(`views.settings.backup_weekday`)),1),S(h,{modelValue:C(J).weekday,"onUpdate:modelValue":o[4]||=e=>C(J).weekday=e,"input-id":`backupWeekday`,options:C(Q),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])])):E(``,!0),C(J).interval===`monthly`?(f(),A(`div`,je,[w(`label`,Me,N(e.$t(`views.settings.backup_day_of_month`)),1),S(b,{modelValue:C(J).dayOfMonth,"onUpdate:modelValue":o[5]||=e=>C(J).dayOfMonth=e,"input-id":`backupDayOfMonth`,min:1,max:28,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`])])):E(``,!0),w(`div`,Ne,[w(`label`,Pe,N(e.$t(`views.settings.backup_retention`)),1),S(b,{modelValue:C(J).retention,"onUpdate:modelValue":o[6]||=e=>C(J).retention=e,"input-id":`backupRetention`,min:1,max:60,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`]),S(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[x(N(e.$t(`views.settings.backup_retention_hint`)),1)]),_:1})])]),w(`div`,Fe,[w(`label`,Ie,N(e.$t(`views.settings.backup_destination`)),1),S(g,{id:`backupDestination`,modelValue:C(J).destinationPath,"onUpdate:modelValue":o[7]||=e=>C(J).destinationPath=e,placeholder:C(K),disabled:C(H)},null,8,[`modelValue`,`placeholder`,`disabled`]),S(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[x(N(e.$t(`views.settings.backup_destination_hint`)),1)]),_:1})])],64)):E(``,!0),w(`div`,Le,[S(s,{severity:`secondary`,outlined:``,loading:C(U),disabled:C(H),class:`ml-auto cui-button-medium`,label:e.$t(`components.form.button.run_now`),onClick:Xe},null,8,[`loading`,`disabled`,`label`]),S(s,{loading:C(H),disabled:C(U)||!C(Y),class:`cui-button-medium`,label:e.$t(`components.form.button.save`),onClick:Ye},null,8,[`loading`,`disabled`,`label`])]),C(G).length?(f(),A(`div`,Re,[w(`span`,ze,N(e.$t(`views.settings.backup_existing`)),1),(f(!0),A(u,null,p(C(G),t=>(f(),A(`div`,{key:t.filename,class:`flex items-center gap-3 py-1 min-w-0`},[w(`div`,Be,[w(`span`,Ve,N(t.filename),1),w(`span`,He,N(new Date(t.timestamp).toLocaleString())+` · `+N(Je(t.size)),1)]),w(`div`,Ue,[_((f(),y(s,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,disabled:C(W)===t.filename,onClick:e=>Ze(t)},{icon:v(()=>[S(D,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[k,{value:e.$t(`components.form.button.download`)},void 0,{top:!0}]]),_((f(),y(s,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md`,onClick:e=>Qe(t)},{icon:v(()=>[S(O,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[k,{value:e.$t(`components.form.button.remove`)},void 0,{top:!0}]])])]))),128))])):E(``,!0)]))]),_:1})])])])}}});export{Q as default};
1
+ import{Br as e,Ft as t,Gt as n,I as r,K as i,zt as a}from"./vendor-cameraui-B96_CDGO.js";import{$ as o,Cr as s,On as c,s as l}from"./api-CdT8ZD-n.js";import{$t as u,An as d,Mn as f,Pn as p,Qt as m,Rn as h,Wn as g,Xn as _,Yn as v,an as y,ar as b,dn as x,fn as S,hr as C,in as w,mn as T,on as E,pr as D,rn as O,rr as k,sn as A,sr as j,ur as M,yr as N}from"./vendor-nVfLT5jI.js";import{K as ee,M as P,U as F,_ as te,j as I,z as L}from"./vendor-primevue-uo78flP9.js";import{a as R,c as z,i as ne,n as re,o as ie,r as ae,s as oe}from"./useBackupRestore-C9JlDbTt.js";import{t as se}from"./theme-Cc5MIK4j.js";import{t as ce}from"./trash-can-outline-wuIbai1c.js";import{t as B}from"./close-circle-BRfsyoFY.js";import{t as le}from"./download-Cg8JrPGl.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return f(),A(`svg`,V,[...t[0]||=[w(`path`,{fill:`currentColor`,d:`M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H15v-8h5V8zm-1 7V3.5L18.5 9zm4 12.66V16h5.66v2h-2.24l2.95 2.95l-1.41 1.41L19 19.41v2.24h-2z`},null,-1)]])}var U=k({name:`ic-baseline-file-open`,render:H}),W={class:`flex flex-col gap-6 p-4 items-center justify-center w-full`},G={class:`flex flex-col justify-center items-center`},K={for:`restoreInput`,class:`cursor-pointer text-center`},q=[`accept`],J={key:0,class:`text-red`},Y={class:`mx-2`},X={class:`text-muted`},ue=T({__name:`CuiUploadFiles`,props:{multiple:{type:Boolean,default:!1},accept:{},icon:{default:U}},emits:[`files-uploaded`],setup(e,{expose:t,emit:n}){let r=e,i=n,{accept:o,multiple:s}=D(r),c=g(`fileInputRef`),l=M([]),u=j(!1),d=j(!1);function p(e){let t=l.value.findIndex(t=>t.name===e);t>-1&&(l.value.splice(t,1),x())}function _(e){if(u.value=!1,d.value=!1,l.value=[],e.dataTransfer){if(!s.value&&e.dataTransfer.files.length>1)d.value=!0;else{for(let[,t]of Object.entries(e.dataTransfer.files))l.value.push(t);i(`files-uploaded`,l.value)}}}function b(e){d.value=!1,l.value=[];let t=e.target;if(t&&t.files){if(!s.value&&t.files?.length>1)d.value=!0;else{for(let[,e]of Object.entries(t.files))l.value.push(e);i(`files-uploaded`,l.value)}}}function x(){c.value&&(c.value.value=``)}function T(){l.value=[],x()}return t({reset:T}),(t,n)=>{let r=B,i=a,s=F,g=P;return f(),A(`div`,{class:`file-upload-box`,onDrop:n[0]||=m(e=>_(e),[`prevent`]),onDragover:n[1]||=m(e=>u.value=!0,[`prevent`]),onDragenter:n[2]||=m(e=>u.value=!0,[`prevent`]),onDragleave:n[3]||=m(e=>u.value=!1,[`prevent`])},[w(`div`,W,[w(`div`,G,[(f(),y(h(e.icon),{class:`w-15 h-15`})),w(`label`,K,N(t.$t(`components.upload_files.drop_or_select_file`)),1),w(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:c,type:`file`,class:`hidden`,accept:C(o),onChange:b},null,40,q),C(d)?(f(),A(`p`,J,N(t.$t(`components.upload_files.only_one_file_allowed`)),1)):E(``,!0)]),C(l).length>0?(f(),y(g,{key:0,items:C(l),"item-size":50,"scroll-height":`50px`,"scroll-width":`100%`,class:`w-full`},{item:v(({item:e})=>[(f(),A(`div`,{key:e.name,class:`w-full flex flex-row items-center justify-start p-2`},[S(i,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t=>p(e.name)},{icon:v(()=>[S(r,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`]),w(`b`,Y,N(e.name),1),w(`span`,X,`(`+N(e.size)+` bytes)`,1)])),C(l).length>1?(f(),y(s,{key:0,class:`m-0 py-4`})):E(``,!0)]),_:1},8,[`items`])):E(``,!0)])],32)}}}),de={class:`flex flex-col w-full gap-6`},fe={class:`card-title`},pe={class:`flex flex-col gap-6`},me={class:`text-sm`},he={class:`card-title`},ge={class:`flex flex-col gap-6`},_e={class:`text-sm`},ve={class:`card-title`},ye={key:0,class:`flex w-full items-center justify-center py-6`},be={key:1,class:`flex flex-col gap-6`},xe={class:`flex items-center gap-4`},Z={class:`flex flex-col gap-1 min-w-0`},Se={class:`text-sm`},Ce={class:`text-xs text-muted`},we={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},Te={class:`flex flex-col field-gap`},Ee={for:`backupInterval`,class:`cui-label`},De={class:`flex flex-col field-gap`},Oe={for:`backupTime`,class:`cui-label`},ke={key:0,class:`flex flex-col field-gap`},Ae={for:`backupWeekday`,class:`cui-label`},je={key:1,class:`flex flex-col field-gap`},Me={for:`backupDayOfMonth`,class:`cui-label`},Ne={class:`flex flex-col field-gap`},Pe={for:`backupRetention`,class:`cui-label`},Fe={class:`flex flex-col field-gap`},Ie={for:`backupDestination`,class:`cui-label`},Le={class:`flex items-center gap-2`},Re={key:1,class:`flex flex-col gap-2`},ze={class:`text-sm font-semibold border-b-[1px] border-color pb-2`},Be={class:`flex flex-col min-w-0`},Ve={class:`text-sm truncate`},He={class:`text-xs text-muted`},Ue={class:`flex gap-1 ml-auto shrink-0`},Q=T({__name:`SettingsBackup`,setup(m){let h=o(),T=s(),{t:D,locale:k}=e(),P=g(`filesRef`),F=M([]),B=j(!1),V=j(!0),H=j(!1),U=j(!1),W=j(null),G=j([]),K=j(``),q=j(),J=b({enabled:!1,interval:`daily`,time:`03:00`,weekday:0,dayOfMonth:1,retention:7,destinationPath:``}),Y=O(()=>/^([01]\d|2[0-3]):[0-5]\d$/.test(J.time)),X=O(()=>[`daily`,`weekly`,`monthly`].map(e=>({label:D(`views.settings.backup_interval_${e}`),value:e}))),Q=O(()=>Array.from({length:7},(e,t)=>({label:new Intl.DateTimeFormat(k.value,{weekday:`long`}).format(new Date(Date.UTC(2024,0,7+t,12))),value:t}))),We=O(()=>{if(!q.value)return D(`views.settings.backup_last_run`,{info:D(`views.settings.backup_last_run_never`)});let e=new Date(q.value.timestamp).toLocaleString(),t=q.value.status===`success`?`✓`:`✗ ${q.value.message??``}`;return D(`views.settings.backup_last_run`,{info:`${e} ${t}`})});async function Ge(){B.value=!0;try{let e={},t=localStorage.getItem(`ui`);if(t)try{e.ui=JSON.parse(t)}catch{}let n=localStorage.getItem(`language`);n&&(e.language=n),localStorage.getItem(`theme`)&&(e.theme=se());let r=Date.now(),i=await ne(e);await c({blob:new Blob([i]),filename:`cameraui-backup-${r}.tar.gz`,mimeType:`application/gzip`})}catch(e){T.add({severity:`error`,detail:l(e),life:3e3})}B.value=!1}function Ke(){h.openTextDialog({data:{title:D(`components.dialog.title.confirm`),contentText:D(`components.dialog.message.confirm_restore`),confirmText:D(`components.form.button.restore_and_restart`),loading:B},onConfirm:qe})}async function qe(){let e=F.value[0];e&&(B.value=!0,await re().run(e),P.value?.reset(),B.value=!1)}function Je(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`,`TB`],n=e,r=-1;do n/=1024,r++;while(n>=1024&&r<t.length-1);return`${n.toFixed(1)} ${t[r]}`}async function $(){try{let e=await ie(),{lastRun:t,...n}=e.settings;Object.assign(J,n),q.value=t,G.value=e.backups,K.value=e.defaultDestination}catch(e){T.add({severity:`error`,detail: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,T.add({severity:`success`,detail:D(`components.toast.backup_scheduler_saved`),life:3e3})}catch(e){T.add({severity:`error`,detail:l(e),life:3e3})}finally{H.value=!1}}}async function Xe(){U.value=!0;try{let e=await z();q.value=e,T.add({severity:`success`,detail:D(`components.toast.backup_created`),life:3e3})}catch(e){T.add({severity:`error`,detail:l(e),life:3e3})}finally{U.value=!1,await $()}}async function Ze(e){W.value=e.filename;try{let t=await R(e.filename);await c({blob:new Blob([t]),filename:e.filename,mimeType:`application/gzip`})}catch(e){T.add({severity:`error`,detail:l(e),life:3e3})}finally{W.value=null}}function Qe(e){h.openTextDialog({data:{title:D(`components.dialog.title.confirm`),contentText:D(`components.dialog.message.confirm_delete_backup`,{filename:e.filename}),confirmText:D(`components.form.button.remove`)},onConfirm:async()=>{try{await ae(e.filename),T.add({severity:`success`,detail:D(`components.toast.backup_deleted`),life:3e3}),await $()}catch(e){T.add({severity:`error`,detail:l(e),life:3e3})}}})}return d($),(e,o)=>{let s=a,c=i,l=ue,d=t,m=ee,h=I,g=r,b=te,T=L,D=le,O=ce,k=n;return f(),A(`div`,null,[w(`div`,de,[w(`div`,null,[w(`span`,fe,N(e.$t(`views.settings.create_backup`)),1),S(c,{class:`cui-card`},{content:v(()=>[w(`div`,pe,[w(`span`,me,N(e.$t(`views.settings.create_backup_info`)),1),S(s,{loading:C(B),class:`ml-auto cui-button-medium`,label:e.$t(`components.form.button.download_backup_archive`),onClick:Ge},null,8,[`loading`,`label`])])]),_:1})]),w(`div`,null,[w(`span`,he,N(e.$t(`views.settings.restore_backup`)),1),S(c,{class:`cui-card`},{content:v(()=>[w(`div`,ge,[w(`span`,_e,N(e.$t(`views.settings.restore_backup_info`)),1),S(l,{ref_key:`filesRef`,ref:P,accept:`application/gzip, .tar, .tar.gz`,onFilesUploaded:o[0]||=e=>F.value=e},null,512),S(s,{loading:C(B),disabled:!C(F).length,class:`ml-auto cui-button-medium`,label:e.$t(`components.form.button.restore_backup_archive`),onClick:Ke},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),w(`div`,null,[w(`span`,ve,N(e.$t(`views.settings.scheduled_backup`)),1),S(c,{class:`cui-card`},{content:v(()=>[C(V)?(f(),A(`div`,ye,[S(d,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(f(),A(`div`,be,[w(`div`,xe,[w(`div`,Z,[w(`span`,Se,N(e.$t(`views.settings.scheduled_backup_info`)),1),w(`span`,Ce,N(C(We)),1)]),S(m,{modelValue:C(J).enabled,"onUpdate:modelValue":o[1]||=e=>C(J).enabled=e,disabled:C(H),class:`ml-auto shrink-0`},null,8,[`modelValue`,`disabled`])]),C(J).enabled?(f(),A(u,{key:0},[w(`div`,we,[w(`div`,Te,[w(`label`,Ee,N(e.$t(`views.settings.backup_interval`)),1),S(h,{modelValue:C(J).interval,"onUpdate:modelValue":o[2]||=e=>C(J).interval=e,"input-id":`backupInterval`,options:C(X),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])]),w(`div`,De,[w(`label`,Oe,N(e.$t(`views.settings.backup_time`)),1),S(g,{id:`backupTime`,modelValue:C(J).time,"onUpdate:modelValue":o[3]||=e=>C(J).time=e,placeholder:`03:00`,disabled:C(H),invalid:!C(Y)},null,8,[`modelValue`,`disabled`,`invalid`])]),C(J).interval===`weekly`?(f(),A(`div`,ke,[w(`label`,Ae,N(e.$t(`views.settings.backup_weekday`)),1),S(h,{modelValue:C(J).weekday,"onUpdate:modelValue":o[4]||=e=>C(J).weekday=e,"input-id":`backupWeekday`,options:C(Q),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])])):E(``,!0),C(J).interval===`monthly`?(f(),A(`div`,je,[w(`label`,Me,N(e.$t(`views.settings.backup_day_of_month`)),1),S(b,{modelValue:C(J).dayOfMonth,"onUpdate:modelValue":o[5]||=e=>C(J).dayOfMonth=e,"input-id":`backupDayOfMonth`,min:1,max:28,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`])])):E(``,!0),w(`div`,Ne,[w(`label`,Pe,N(e.$t(`views.settings.backup_retention`)),1),S(b,{modelValue:C(J).retention,"onUpdate:modelValue":o[6]||=e=>C(J).retention=e,"input-id":`backupRetention`,min:1,max:60,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`]),S(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[x(N(e.$t(`views.settings.backup_retention_hint`)),1)]),_:1})])]),w(`div`,Fe,[w(`label`,Ie,N(e.$t(`views.settings.backup_destination`)),1),S(g,{id:`backupDestination`,modelValue:C(J).destinationPath,"onUpdate:modelValue":o[7]||=e=>C(J).destinationPath=e,placeholder:C(K),disabled:C(H)},null,8,[`modelValue`,`placeholder`,`disabled`]),S(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[x(N(e.$t(`views.settings.backup_destination_hint`)),1)]),_:1})])],64)):E(``,!0),w(`div`,Le,[S(s,{severity:`secondary`,outlined:``,loading:C(U),disabled:C(H),class:`ml-auto cui-button-medium`,label:e.$t(`components.form.button.run_now`),onClick:Xe},null,8,[`loading`,`disabled`,`label`]),S(s,{loading:C(H),disabled:C(U)||!C(Y),class:`cui-button-medium`,label:e.$t(`components.form.button.save`),onClick:Ye},null,8,[`loading`,`disabled`,`label`])]),C(G).length?(f(),A(`div`,Re,[w(`span`,ze,N(e.$t(`views.settings.backup_existing`)),1),(f(!0),A(u,null,p(C(G),t=>(f(),A(`div`,{key:t.filename,class:`flex items-center gap-3 py-1 min-w-0`},[w(`div`,Be,[w(`span`,Ve,N(t.filename),1),w(`span`,He,N(new Date(t.timestamp).toLocaleString())+` · `+N(Je(t.size)),1)]),w(`div`,Ue,[_((f(),y(s,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,disabled:C(W)===t.filename,onClick:e=>Ze(t)},{icon:v(()=>[S(D,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[k,{value:e.$t(`components.form.button.download`)},void 0,{top:!0}]]),_((f(),y(s,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md`,onClick:e=>Qe(t)},{icon:v(()=>[S(O,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[k,{value:e.$t(`components.form.button.remove`)},void 0,{top:!0}]])])]))),128))])):E(``,!0)]))]),_:1})])])])}}});export{Q as default};
@@ -1 +1 @@
1
- import{Br as e}from"./vendor-cameraui-C5_h4c-5.js";import{Sn as t,_n as n,b as r,xn as i}from"./api-Br1U09Hq.js";import{$t as a,Mn as o,Pn as s,Rn as c,Yn as l,an as u,dn as d,fn as f,hr as p,in as m,mn as h,rn as g,sn as _,yr as v}from"./vendor-AX0A8AMd.js";import{t as y}from"./CuiList-DRkSKm6_.js";var b={class:`card-title`},x=h({__name:`SettingsList`,setup(h){let{t:x}=e(),S=g(()=>r.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&t(e)).map(e=>({to:`/settings/${e.path}`,label:x(`navigation.${e.meta.name.toLowerCase()}`),icon:e.meta.settingsBar.icon.default,group:e.meta.settingsBar.group??`personal`}))),C=g(()=>[`personal`,`system`].map(e=>({key:e,items:S.value.filter(t=>t.group===e)})).filter(e=>e.items.length>0));return(e,t)=>{let r=i,h=n,g=y;return o(),_(`div`,null,[(o(!0),_(a,null,s(p(C),t=>(o(),_(a,{key:t.key},[m(`span`,b,v(e.$t(`views.settings.section_${t.key}`)),1),f(g,{size:`large`,dividers:``,class:`!h-auto mb-4`},{default:l(()=>[(o(!0),_(a,null,s(t.items,e=>(o(),u(h,{key:e.to,to:e.to},{prepend:l(()=>[(o(),u(c(e.icon),{class:`w-5 h-5 text-muted`}))]),append:l(()=>[f(r,{class:`w-5 h-5 text-muted`})]),default:l(()=>[d(` `+v(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:2},1024)],64))),128))])}}});export{x as default};
1
+ import{Br as e}from"./vendor-cameraui-B96_CDGO.js";import{Sn as t,_n as n,b as r,xn as i}from"./api-CdT8ZD-n.js";import{$t as a,Mn as o,Pn as s,Rn as c,Yn as l,an as u,dn as d,fn as f,hr as p,in as m,mn as h,rn as g,sn as _,yr as v}from"./vendor-nVfLT5jI.js";import{t as y}from"./CuiList-BI488Ne9.js";var b={class:`card-title`},x=h({__name:`SettingsList`,setup(h){let{t:x}=e(),S=g(()=>r.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&t(e)).map(e=>({to:`/settings/${e.path}`,label:x(`navigation.${e.meta.name.toLowerCase()}`),icon:e.meta.settingsBar.icon.default,group:e.meta.settingsBar.group??`personal`}))),C=g(()=>[`personal`,`system`].map(e=>({key:e,items:S.value.filter(t=>t.group===e)})).filter(e=>e.items.length>0));return(e,t)=>{let r=i,h=n,g=y;return o(),_(`div`,null,[(o(!0),_(a,null,s(p(C),t=>(o(),_(a,{key:t.key},[m(`span`,b,v(e.$t(`views.settings.section_${t.key}`)),1),f(g,{size:`large`,dividers:``,class:`!h-auto mb-4`},{default:l(()=>[(o(!0),_(a,null,s(t.items,e=>(o(),u(h,{key:e.to,to:e.to},{prepend:l(()=>[(o(),u(c(e.icon),{class:`w-5 h-5 text-muted`}))]),append:l(()=>[f(r,{class:`w-5 h-5 text-muted`})]),default:l(()=>[d(` `+v(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:2},1024)],64))),128))])}}});export{x as default};
@@ -1 +1 @@
1
- import{Br as e,Ft as t,I as n,K as ee,zt as te}from"./vendor-cameraui-C5_h4c-5.js";import{Cr as r,_t as i,i as a,mr as o,o as s,vt as ne}from"./api-Br1U09Hq.js";import{$t as c,Cn as l,Kn as u,Kt as d,Mn as f,Yn as p,an as m,b as re,dn as h,fn as g,hr as _,in as v,mn as y,nr as ie,on as b,rn as x,sn as S,sr as C,v as w,y as T,yr as E}from"./vendor-AX0A8AMd.js";import{J as D}from"./types-DJucLQEM.js";import{K as ae,L as oe,R as se,_ as ce,a as le,i as ue,j as de,s as fe,z as pe}from"./vendor-primevue-C9-jpd5L.js";import{t as O}from"./mqtt-Cotm4qW5.js";var me=D,k={class:`w-full h-full`},A={key:0,class:`w-full h-full flex items-center justify-center`},j={key:1,class:`flex flex-col w-full gap-6`},M={class:`card-title`},N={class:`flex items-center gap-4`},P={class:`flex flex-col field-switch-gap min-w-0`},F={class:`text-sm font-bold text-color`},I={class:`card-title`},L={class:`flex flex-col gap-6`},R={class:`flex items-center gap-4 cui-toggle-switch`},z={class:`flex flex-col field-switch-gap`},he={for:`enabled`,class:`cui-label-switch`},ge={class:`flex flex-col field-gap`},_e={for:`mode`,class:`cui-label`},ve={class:`flex flex-col sm:flex-row gap-6`},ye={for:`host`,class:`cui-label`},be={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},xe={for:`port`,class:`cui-label`},Se={class:`flex flex-col field-gap`},Ce={for:`protocol`,class:`cui-label`},we={class:`flex flex-col sm:flex-row gap-6`},Te={class:`flex flex-col field-gap flex-1 min-w-0`},Ee={for:`username`,class:`cui-label`},De={class:`flex flex-col field-gap flex-1 min-w-0`},Oe={for:`password`,class:`cui-label`},ke={class:`flex flex-col field-gap`},Ae={for:`brokerAddress`,class:`cui-label`},je={class:`flex flex-col sm:flex-row gap-6`},Me={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},Ne={for:`brokerPort`,class:`cui-label`},Pe={class:`flex flex-col field-gap flex-1 min-w-0`},Fe={for:`brokerUsername`,class:`cui-label`},Ie={class:`flex flex-col field-gap flex-1 min-w-0`},Le={for:`brokerPassword`,class:`cui-label`},B={class:`flex flex-col sm:flex-row gap-6`},Re={for:`clientId`,class:`cui-label`},ze={for:`topicPrefix`,class:`cui-label`},Be={class:`flex items-center gap-4 cui-toggle-switch`},Ve={class:`flex flex-col field-switch-gap`},He={for:`rejectUnauthorized`,class:`cui-label-switch`},Ue={class:`flex flex-col field-gap`},We={for:`tlsCa`,class:`cui-label`},Ge={class:`flex flex-col field-gap`},Ke={for:`tlsCert`,class:`cui-label`},qe={class:`flex flex-col field-gap`},Je={for:`tlsKey`,class:`cui-label`},Ye={class:`flex items-center gap-4 cui-toggle-switch`},Xe={class:`flex flex-col field-switch-gap`},Ze={for:`haDiscovery`,class:`cui-label-switch`},Qe={for:`haDiscovery.prefix`,class:`cui-label`},$e={class:`flex items-center gap-3`},V=y({__name:`SettingsMqtt`,setup(y){let D=new O,V=r(),{t:H}=e(),{data:U}=D.getMqttInfoQuery(),W=D.patchMqttInfoMutation(),G=D.testMqttConnectionMutation(),K=o(`/server`),et=[{label:`mqtt:// (TCP)`,value:`mqtt`},{label:`mqtts:// (TLS)`,value:`mqtts`}],tt=[{label:H(`views.settings.mqtt_mode_external`),value:`external`},{label:H(`views.settings.mqtt_mode_embedded`),value:`embedded`}],q=C(null),J=C(``),Y=C(null),X=x(()=>U.value?.passwordSet??!1),Z=x(()=>Y.value??U.value?.status??null),nt=x(()=>{switch(Z.value?.state){case`connected`:return`success`;case`connecting`:case`reconnecting`:return`warn`;case`error`:return`danger`;default:return`secondary`}}),rt=x(()=>{let e=Z.value?.state??`disabled`;return H(`views.settings.mqtt_state_${e}`)}),it=x(()=>Z.value?.lastError?Z.value.lastError:Z.value?.broker?.running?H(`views.settings.mqtt_broker_running`,{port:Z.value.broker.port}):H(`views.settings.mqtt_status_info`)),Q=x(()=>`mqtt://${window.location.hostname}:${q.value?.broker.port??1883}`);function $(){let e=s(q.value),t={enabled:e.enabled,mode:e.mode,broker:{port:e.broker.port,username:e.broker.username?.trim()?e.broker.username.trim():null,password:e.broker.password?.trim()?e.broker.password:null},host:e.host?.trim()?e.host.trim():null,port:e.port,protocol:e.protocol,username:e.username?.trim()?e.username.trim():null,clientId:e.clientId,topicPrefix:e.topicPrefix,tls:{rejectUnauthorized:e.tls.rejectUnauthorized,ca:e.tls.ca?.trim()?e.tls.ca:null,cert:e.tls.cert?.trim()?e.tls.cert:null,key:e.tls.key?.trim()?e.tls.key:null},haDiscovery:{enabled:e.haDiscovery.enabled,prefix:e.haDiscovery.prefix}};return J.value&&(t.password=J.value),t}async function at(){q.value&&(await W.mutateAsync($()),J.value=``)}async function ot(){if(!q.value)return;let e=await G.mutateAsync($());e.ok?V.add({severity:`success`,detail:H(`components.toast.mqtt_test_success`),life:3e3}):V.add({severity:`error`,detail:H(`components.toast.mqtt_test_failed`,{message:e.message??``}),life:5e3})}return u(U,e=>{e&&!q.value&&(q.value=s(e.settings))},{immediate:!0}),K.on(`mqtt-status`,e=>{Y.value=e}),K.onReady(async()=>{try{let e=await K.request(`get-mqtt-status`);e&&(Y.value=e)}catch{}}),(e,r)=>{let o=t,s=pe,u=le,y=ee,x=ae,C=de,D=n,O=ce,V=fe,H=ne,U=oe,K=se,Y=ue,Z=te;return f(),S(`div`,k,[_(q)?(f(),S(`div`,j,[v(`div`,null,[v(`span`,M,E(e.$t(`views.settings.status`)),1),g(y,{class:`cui-card`},{content:p(()=>[v(`div`,N,[v(`div`,P,[v(`span`,F,E(e.$t(`views.settings.mqtt_broker`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:p(()=>[h(E(_(it)),1)]),_:1})]),g(u,{class:`ml-auto shrink-0`,severity:_(nt),value:_(rt)},null,8,[`severity`,`value`])])]),_:1})]),g(_(re),{class:`flex flex-col w-full gap-6`,"validation-schema":_(me),onSubmit:at},{default:p(()=>[v(`div`,null,[v(`span`,I,E(e.$t(`views.settings.mqtt_broker`)),1),g(y,{class:`cui-card`},{content:p(()=>[v(`div`,L,[v(`div`,R,[v(`div`,z,[v(`label`,he,E(e.$t(`components.form.label.enabled`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_enabled_info`)),1)]),_:1})]),g(x,{modelValue:_(q).enabled,"onUpdate:modelValue":r[0]||=e=>_(q).enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),v(`div`,ge,[v(`label`,_e,E(e.$t(`views.settings.mqtt_mode_label`)),1),g(C,{modelValue:_(q).mode,"onUpdate:modelValue":r[1]||=e=>_(q).mode=e,options:tt,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`]),_(q).mode===`embedded`?(f(),m(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_mode_embedded_info`)),1)]),_:1})):b(``,!0)]),_(q).mode===`external`?(f(),S(c,{key:0},[v(`div`,ve,[g(_(T),{modelValue:_(q).host,"onUpdate:modelValue":r[2]||=e=>_(q).host=e,modelModifiers:{trim:!0},name:`host`,as:`div`,class:`flex flex-col field-gap flex-1 min-w-0`},{default:p(({field:t,errors:n})=>[v(`label`,ye,E(e.$t(`views.settings.mqtt_host_label`)),1),g(D,l(t,{invalid:n.length>0,type:`text`,placeholder:`192.168.1.10`,class:`w-full`}),null,16,[`invalid`]),g(d,{name:`fade`},{default:p(()=>[g(_(w),{name:`host`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),v(`div`,be,[v(`label`,xe,E(e.$t(`views.settings.mqtt_port_label`)),1),g(O,{modelValue:_(q).port,"onUpdate:modelValue":r[3]||=e=>_(q).port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])])]),v(`div`,Se,[v(`label`,Ce,E(e.$t(`views.settings.mqtt_protocol_label`)),1),g(C,{modelValue:_(q).protocol,"onUpdate:modelValue":r[4]||=e=>_(q).protocol=e,options:et,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`])]),v(`div`,we,[v(`div`,Te,[v(`label`,Ee,E(e.$t(`views.settings.mqtt_username_label`)),1),g(D,{modelValue:_(q).username,"onUpdate:modelValue":r[5]||=e=>_(q).username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),v(`div`,De,[v(`label`,Oe,E(e.$t(`views.settings.mqtt_password_label`)),1),g(V,{modelValue:_(J),"onUpdate:modelValue":r[6]||=e=>ie(J)?J.value=e:null,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:_(X)?`••••••••`:``},null,8,[`modelValue`,`placeholder`]),_(X)?(f(),m(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_password_keep_hint`)),1)]),_:1})):b(``,!0)])])],64)):(f(),S(c,{key:1},[v(`div`,ke,[v(`label`,Ae,E(e.$t(`views.settings.mqtt_broker_address`)),1),g(K,null,{default:p(()=>[g(D,{"model-value":_(Q),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),g(U,null,{default:p(()=>[g(H,{"action-text":e.$t(`components.form.tooltip.copied`),icon:_(i),"button-props":{severity:`secondary`,text:!0},onAction:r[7]||=e=>_(a)(_(Q))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_broker_address_hint`)),1)]),_:1})]),v(`div`,je,[v(`div`,Me,[v(`label`,Ne,E(e.$t(`views.settings.mqtt_port_label`)),1),g(O,{modelValue:_(q).broker.port,"onUpdate:modelValue":r[8]||=e=>_(q).broker.port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])]),v(`div`,Pe,[v(`label`,Fe,E(e.$t(`views.settings.mqtt_username_label`)),1),g(D,{modelValue:_(q).broker.username,"onUpdate:modelValue":r[9]||=e=>_(q).broker.username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),v(`div`,Ie,[v(`label`,Le,E(e.$t(`views.settings.mqtt_password_label`)),1),g(K,null,{default:p(()=>[g(V,{modelValue:_(q).broker.password,"onUpdate:modelValue":r[10]||=e=>_(q).broker.password=e,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`off`},null,8,[`modelValue`]),g(U,null,{default:p(()=>[g(H,{"action-text":e.$t(`components.form.tooltip.copied`),icon:_(i),"button-props":{severity:`secondary`,text:!0},onAction:r[11]||=e=>_(a)(_(q).broker.password??``)},null,8,[`action-text`,`icon`])]),_:1})]),_:1})])])],64)),v(`div`,B,[g(_(T),{modelValue:_(q).clientId,"onUpdate:modelValue":r[12]||=e=>_(q).clientId=e,modelModifiers:{trim:!0},name:`clientId`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:p(({field:t,errors:n})=>[v(`label`,Re,E(e.$t(`views.settings.mqtt_client_id_label`)),1),g(D,l(t,{invalid:n.length>0,type:`text`}),null,16,[`invalid`]),g(d,{name:`fade`},{default:p(()=>[g(_(w),{name:`clientId`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),g(_(T),{modelValue:_(q).topicPrefix,"onUpdate:modelValue":r[13]||=e=>_(q).topicPrefix=e,modelModifiers:{trim:!0},name:`topicPrefix`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:p(({field:t,errors:n})=>[v(`label`,ze,E(e.$t(`views.settings.mqtt_topic_prefix_label`)),1),g(D,l(t,{invalid:n.length>0,type:`text`}),null,16,[`invalid`]),g(d,{name:`fade`},{default:p(()=>[g(_(w),{name:`topicPrefix`,class:`cui-input-error`})]),_:1}),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_topic_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])]),_(q).mode===`external`&&_(q).protocol===`mqtts`?(f(),S(c,{key:2},[v(`div`,Be,[v(`div`,Ve,[v(`label`,He,E(e.$t(`views.settings.mqtt_tls_reject_unauthorized`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_tls_reject_unauthorized_info`)),1)]),_:1})]),g(x,{modelValue:_(q).tls.rejectUnauthorized,"onUpdate:modelValue":r[14]||=e=>_(q).tls.rejectUnauthorized=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),v(`div`,Ue,[v(`label`,We,E(e.$t(`views.settings.mqtt_tls_ca_label`)),1),g(Y,{modelValue:_(q).tls.ca,"onUpdate:modelValue":r[15]||=e=>_(q).tls.ca=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),v(`div`,Ge,[v(`label`,Ke,E(e.$t(`views.settings.mqtt_tls_cert_label`)),1),g(Y,{modelValue:_(q).tls.cert,"onUpdate:modelValue":r[16]||=e=>_(q).tls.cert=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),v(`div`,qe,[v(`label`,Je,E(e.$t(`views.settings.mqtt_tls_key_label`)),1),g(Y,{modelValue:_(q).tls.key,"onUpdate:modelValue":r[17]||=e=>_(q).tls.key=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])])],64)):b(``,!0),v(`div`,Ye,[v(`div`,Xe,[v(`label`,Ze,E(e.$t(`views.settings.mqtt_ha_discovery`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_ha_discovery_info`)),1)]),_:1})]),g(x,{modelValue:_(q).haDiscovery.enabled,"onUpdate:modelValue":r[18]||=e=>_(q).haDiscovery.enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),_(q).haDiscovery.enabled?(f(),m(_(T),{key:3,modelValue:_(q).haDiscovery.prefix,"onUpdate:modelValue":r[19]||=e=>_(q).haDiscovery.prefix=e,modelModifiers:{trim:!0},name:`haDiscovery.prefix`,as:`div`,class:`flex flex-col field-gap`},{default:p(({field:t,errors:n})=>[v(`label`,Qe,E(e.$t(`views.settings.mqtt_ha_prefix_label`)),1),g(D,l(t,{invalid:n.length>0,type:`text`,placeholder:`homeassistant`}),null,16,[`invalid`]),g(d,{name:`fade`},{default:p(()=>[g(_(w),{name:`haDiscovery.prefix`,class:`cui-input-error`})]),_:1}),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_ha_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])):b(``,!0),v(`div`,$e,[g(Z,{type:`button`,severity:`secondary`,loading:_(G).isPending.value,disabled:_(q).mode===`external`&&!_(q).host,class:`cui-button-medium`,label:e.$t(`views.settings.mqtt_test`),onClick:ot},null,8,[`loading`,`disabled`,`label`]),g(Z,{type:`submit`,loading:_(W).isPending.value,class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])])]),_:1})])]),_:1},8,[`validation-schema`])])):(f(),S(`div`,A,[g(o,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{V as default};
1
+ import{Br as e,Ft as t,I as n,K as ee,zt as te}from"./vendor-cameraui-B96_CDGO.js";import{Cr as r,_t as i,i as a,mr as o,o as s,vt as ne}from"./api-CdT8ZD-n.js";import{$t as c,Cn as l,Kn as u,Kt as d,Mn as f,Yn as p,an as m,b as re,dn as h,fn as g,hr as _,in as v,mn as y,nr as ie,on as b,rn as x,sn as S,sr as C,v as w,y as T,yr as E}from"./vendor-nVfLT5jI.js";import{J as D}from"./types-Br6AbfXl.js";import{K as ae,L as oe,R as se,_ as ce,a as le,i as ue,j as de,s as fe,z as pe}from"./vendor-primevue-uo78flP9.js";import{t as O}from"./mqtt-x7JvjSZ0.js";var me=D,k={class:`w-full h-full`},A={key:0,class:`w-full h-full flex items-center justify-center`},j={key:1,class:`flex flex-col w-full gap-6`},M={class:`card-title`},N={class:`flex items-center gap-4`},P={class:`flex flex-col field-switch-gap min-w-0`},F={class:`text-sm font-bold text-color`},I={class:`card-title`},L={class:`flex flex-col gap-6`},R={class:`flex items-center gap-4 cui-toggle-switch`},z={class:`flex flex-col field-switch-gap`},he={for:`enabled`,class:`cui-label-switch`},ge={class:`flex flex-col field-gap`},_e={for:`mode`,class:`cui-label`},ve={class:`flex flex-col sm:flex-row gap-6`},ye={for:`host`,class:`cui-label`},be={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},xe={for:`port`,class:`cui-label`},Se={class:`flex flex-col field-gap`},Ce={for:`protocol`,class:`cui-label`},we={class:`flex flex-col sm:flex-row gap-6`},Te={class:`flex flex-col field-gap flex-1 min-w-0`},Ee={for:`username`,class:`cui-label`},De={class:`flex flex-col field-gap flex-1 min-w-0`},Oe={for:`password`,class:`cui-label`},ke={class:`flex flex-col field-gap`},Ae={for:`brokerAddress`,class:`cui-label`},je={class:`flex flex-col sm:flex-row gap-6`},Me={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},Ne={for:`brokerPort`,class:`cui-label`},Pe={class:`flex flex-col field-gap flex-1 min-w-0`},Fe={for:`brokerUsername`,class:`cui-label`},Ie={class:`flex flex-col field-gap flex-1 min-w-0`},Le={for:`brokerPassword`,class:`cui-label`},B={class:`flex flex-col sm:flex-row gap-6`},Re={for:`clientId`,class:`cui-label`},ze={for:`topicPrefix`,class:`cui-label`},Be={class:`flex items-center gap-4 cui-toggle-switch`},Ve={class:`flex flex-col field-switch-gap`},He={for:`rejectUnauthorized`,class:`cui-label-switch`},Ue={class:`flex flex-col field-gap`},We={for:`tlsCa`,class:`cui-label`},Ge={class:`flex flex-col field-gap`},Ke={for:`tlsCert`,class:`cui-label`},qe={class:`flex flex-col field-gap`},Je={for:`tlsKey`,class:`cui-label`},Ye={class:`flex items-center gap-4 cui-toggle-switch`},Xe={class:`flex flex-col field-switch-gap`},Ze={for:`haDiscovery`,class:`cui-label-switch`},Qe={for:`haDiscovery.prefix`,class:`cui-label`},$e={class:`flex items-center gap-3`},V=y({__name:`SettingsMqtt`,setup(y){let D=new O,V=r(),{t:H}=e(),{data:U}=D.getMqttInfoQuery(),W=D.patchMqttInfoMutation(),G=D.testMqttConnectionMutation(),K=o(`/server`),et=[{label:`mqtt:// (TCP)`,value:`mqtt`},{label:`mqtts:// (TLS)`,value:`mqtts`}],tt=[{label:H(`views.settings.mqtt_mode_external`),value:`external`},{label:H(`views.settings.mqtt_mode_embedded`),value:`embedded`}],q=C(null),J=C(``),Y=C(null),X=x(()=>U.value?.passwordSet??!1),Z=x(()=>Y.value??U.value?.status??null),nt=x(()=>{switch(Z.value?.state){case`connected`:return`success`;case`connecting`:case`reconnecting`:return`warn`;case`error`:return`danger`;default:return`secondary`}}),rt=x(()=>{let e=Z.value?.state??`disabled`;return H(`views.settings.mqtt_state_${e}`)}),it=x(()=>Z.value?.lastError?Z.value.lastError:Z.value?.broker?.running?H(`views.settings.mqtt_broker_running`,{port:Z.value.broker.port}):H(`views.settings.mqtt_status_info`)),Q=x(()=>`mqtt://${window.location.hostname}:${q.value?.broker.port??1883}`);function $(){let e=s(q.value),t={enabled:e.enabled,mode:e.mode,broker:{port:e.broker.port,username:e.broker.username?.trim()?e.broker.username.trim():null,password:e.broker.password?.trim()?e.broker.password:null},host:e.host?.trim()?e.host.trim():null,port:e.port,protocol:e.protocol,username:e.username?.trim()?e.username.trim():null,clientId:e.clientId,topicPrefix:e.topicPrefix,tls:{rejectUnauthorized:e.tls.rejectUnauthorized,ca:e.tls.ca?.trim()?e.tls.ca:null,cert:e.tls.cert?.trim()?e.tls.cert:null,key:e.tls.key?.trim()?e.tls.key:null},haDiscovery:{enabled:e.haDiscovery.enabled,prefix:e.haDiscovery.prefix}};return J.value&&(t.password=J.value),t}async function at(){q.value&&(await W.mutateAsync($()),J.value=``)}async function ot(){if(!q.value)return;let e=await G.mutateAsync($());e.ok?V.add({severity:`success`,detail:H(`components.toast.mqtt_test_success`),life:3e3}):V.add({severity:`error`,detail:H(`components.toast.mqtt_test_failed`,{message:e.message??``}),life:5e3})}return u(U,e=>{e&&!q.value&&(q.value=s(e.settings))},{immediate:!0}),K.on(`mqtt-status`,e=>{Y.value=e}),K.onReady(async()=>{try{let e=await K.request(`get-mqtt-status`);e&&(Y.value=e)}catch{}}),(e,r)=>{let o=t,s=pe,u=le,y=ee,x=ae,C=de,D=n,O=ce,V=fe,H=ne,U=oe,K=se,Y=ue,Z=te;return f(),S(`div`,k,[_(q)?(f(),S(`div`,j,[v(`div`,null,[v(`span`,M,E(e.$t(`views.settings.status`)),1),g(y,{class:`cui-card`},{content:p(()=>[v(`div`,N,[v(`div`,P,[v(`span`,F,E(e.$t(`views.settings.mqtt_broker`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:p(()=>[h(E(_(it)),1)]),_:1})]),g(u,{class:`ml-auto shrink-0`,severity:_(nt),value:_(rt)},null,8,[`severity`,`value`])])]),_:1})]),g(_(re),{class:`flex flex-col w-full gap-6`,"validation-schema":_(me),onSubmit:at},{default:p(()=>[v(`div`,null,[v(`span`,I,E(e.$t(`views.settings.mqtt_broker`)),1),g(y,{class:`cui-card`},{content:p(()=>[v(`div`,L,[v(`div`,R,[v(`div`,z,[v(`label`,he,E(e.$t(`components.form.label.enabled`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_enabled_info`)),1)]),_:1})]),g(x,{modelValue:_(q).enabled,"onUpdate:modelValue":r[0]||=e=>_(q).enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),v(`div`,ge,[v(`label`,_e,E(e.$t(`views.settings.mqtt_mode_label`)),1),g(C,{modelValue:_(q).mode,"onUpdate:modelValue":r[1]||=e=>_(q).mode=e,options:tt,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`]),_(q).mode===`embedded`?(f(),m(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_mode_embedded_info`)),1)]),_:1})):b(``,!0)]),_(q).mode===`external`?(f(),S(c,{key:0},[v(`div`,ve,[g(_(T),{modelValue:_(q).host,"onUpdate:modelValue":r[2]||=e=>_(q).host=e,modelModifiers:{trim:!0},name:`host`,as:`div`,class:`flex flex-col field-gap flex-1 min-w-0`},{default:p(({field:t,errors:n})=>[v(`label`,ye,E(e.$t(`views.settings.mqtt_host_label`)),1),g(D,l(t,{invalid:n.length>0,type:`text`,placeholder:`192.168.1.10`,class:`w-full`}),null,16,[`invalid`]),g(d,{name:`fade`},{default:p(()=>[g(_(w),{name:`host`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),v(`div`,be,[v(`label`,xe,E(e.$t(`views.settings.mqtt_port_label`)),1),g(O,{modelValue:_(q).port,"onUpdate:modelValue":r[3]||=e=>_(q).port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])])]),v(`div`,Se,[v(`label`,Ce,E(e.$t(`views.settings.mqtt_protocol_label`)),1),g(C,{modelValue:_(q).protocol,"onUpdate:modelValue":r[4]||=e=>_(q).protocol=e,options:et,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`])]),v(`div`,we,[v(`div`,Te,[v(`label`,Ee,E(e.$t(`views.settings.mqtt_username_label`)),1),g(D,{modelValue:_(q).username,"onUpdate:modelValue":r[5]||=e=>_(q).username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),v(`div`,De,[v(`label`,Oe,E(e.$t(`views.settings.mqtt_password_label`)),1),g(V,{modelValue:_(J),"onUpdate:modelValue":r[6]||=e=>ie(J)?J.value=e:null,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:_(X)?`••••••••`:``},null,8,[`modelValue`,`placeholder`]),_(X)?(f(),m(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_password_keep_hint`)),1)]),_:1})):b(``,!0)])])],64)):(f(),S(c,{key:1},[v(`div`,ke,[v(`label`,Ae,E(e.$t(`views.settings.mqtt_broker_address`)),1),g(K,null,{default:p(()=>[g(D,{"model-value":_(Q),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),g(U,null,{default:p(()=>[g(H,{"action-text":e.$t(`components.form.tooltip.copied`),icon:_(i),"button-props":{severity:`secondary`,text:!0},onAction:r[7]||=e=>_(a)(_(Q))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_broker_address_hint`)),1)]),_:1})]),v(`div`,je,[v(`div`,Me,[v(`label`,Ne,E(e.$t(`views.settings.mqtt_port_label`)),1),g(O,{modelValue:_(q).broker.port,"onUpdate:modelValue":r[8]||=e=>_(q).broker.port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])]),v(`div`,Pe,[v(`label`,Fe,E(e.$t(`views.settings.mqtt_username_label`)),1),g(D,{modelValue:_(q).broker.username,"onUpdate:modelValue":r[9]||=e=>_(q).broker.username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),v(`div`,Ie,[v(`label`,Le,E(e.$t(`views.settings.mqtt_password_label`)),1),g(K,null,{default:p(()=>[g(V,{modelValue:_(q).broker.password,"onUpdate:modelValue":r[10]||=e=>_(q).broker.password=e,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`off`},null,8,[`modelValue`]),g(U,null,{default:p(()=>[g(H,{"action-text":e.$t(`components.form.tooltip.copied`),icon:_(i),"button-props":{severity:`secondary`,text:!0},onAction:r[11]||=e=>_(a)(_(q).broker.password??``)},null,8,[`action-text`,`icon`])]),_:1})]),_:1})])])],64)),v(`div`,B,[g(_(T),{modelValue:_(q).clientId,"onUpdate:modelValue":r[12]||=e=>_(q).clientId=e,modelModifiers:{trim:!0},name:`clientId`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:p(({field:t,errors:n})=>[v(`label`,Re,E(e.$t(`views.settings.mqtt_client_id_label`)),1),g(D,l(t,{invalid:n.length>0,type:`text`}),null,16,[`invalid`]),g(d,{name:`fade`},{default:p(()=>[g(_(w),{name:`clientId`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),g(_(T),{modelValue:_(q).topicPrefix,"onUpdate:modelValue":r[13]||=e=>_(q).topicPrefix=e,modelModifiers:{trim:!0},name:`topicPrefix`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:p(({field:t,errors:n})=>[v(`label`,ze,E(e.$t(`views.settings.mqtt_topic_prefix_label`)),1),g(D,l(t,{invalid:n.length>0,type:`text`}),null,16,[`invalid`]),g(d,{name:`fade`},{default:p(()=>[g(_(w),{name:`topicPrefix`,class:`cui-input-error`})]),_:1}),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_topic_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])]),_(q).mode===`external`&&_(q).protocol===`mqtts`?(f(),S(c,{key:2},[v(`div`,Be,[v(`div`,Ve,[v(`label`,He,E(e.$t(`views.settings.mqtt_tls_reject_unauthorized`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_tls_reject_unauthorized_info`)),1)]),_:1})]),g(x,{modelValue:_(q).tls.rejectUnauthorized,"onUpdate:modelValue":r[14]||=e=>_(q).tls.rejectUnauthorized=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),v(`div`,Ue,[v(`label`,We,E(e.$t(`views.settings.mqtt_tls_ca_label`)),1),g(Y,{modelValue:_(q).tls.ca,"onUpdate:modelValue":r[15]||=e=>_(q).tls.ca=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),v(`div`,Ge,[v(`label`,Ke,E(e.$t(`views.settings.mqtt_tls_cert_label`)),1),g(Y,{modelValue:_(q).tls.cert,"onUpdate:modelValue":r[16]||=e=>_(q).tls.cert=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),v(`div`,qe,[v(`label`,Je,E(e.$t(`views.settings.mqtt_tls_key_label`)),1),g(Y,{modelValue:_(q).tls.key,"onUpdate:modelValue":r[17]||=e=>_(q).tls.key=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])])],64)):b(``,!0),v(`div`,Ye,[v(`div`,Xe,[v(`label`,Ze,E(e.$t(`views.settings.mqtt_ha_discovery`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_ha_discovery_info`)),1)]),_:1})]),g(x,{modelValue:_(q).haDiscovery.enabled,"onUpdate:modelValue":r[18]||=e=>_(q).haDiscovery.enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),_(q).haDiscovery.enabled?(f(),m(_(T),{key:3,modelValue:_(q).haDiscovery.prefix,"onUpdate:modelValue":r[19]||=e=>_(q).haDiscovery.prefix=e,modelModifiers:{trim:!0},name:`haDiscovery.prefix`,as:`div`,class:`flex flex-col field-gap`},{default:p(({field:t,errors:n})=>[v(`label`,Qe,E(e.$t(`views.settings.mqtt_ha_prefix_label`)),1),g(D,l(t,{invalid:n.length>0,type:`text`,placeholder:`homeassistant`}),null,16,[`invalid`]),g(d,{name:`fade`},{default:p(()=>[g(_(w),{name:`haDiscovery.prefix`,class:`cui-input-error`})]),_:1}),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(e.$t(`views.settings.mqtt_ha_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])):b(``,!0),v(`div`,$e,[g(Z,{type:`button`,severity:`secondary`,loading:_(G).isPending.value,disabled:_(q).mode===`external`&&!_(q).host,class:`cui-button-medium`,label:e.$t(`views.settings.mqtt_test`),onClick:ot},null,8,[`loading`,`disabled`,`label`]),g(Z,{type:`submit`,loading:_(W).isPending.value,class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])])]),_:1})])]),_:1},8,[`validation-schema`])])):(f(),S(`div`,A,[g(o,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{V as default};
@@ -1 +1 @@
1
- import{Br as e,Ft as t,Gt as n,I as r,K as ee,P as te,zt as ne}from"./vendor-cameraui-C5_h4c-5.js";import{Cr as i,Sn as a,fr as o}from"./api-Br1U09Hq.js";import{$t as s,An as c,In as re,Kn as l,Mn as u,Pn as d,Xn as ie,Yn as f,Zt as ae,an as p,ar as m,dn as h,fn as g,hr as _,in as v,mn as y,on as b,rn as x,sn as S,sr as C,yr as w}from"./vendor-AX0A8AMd.js";import{i as T}from"./intercomService-CmFnb1sI.js";import{K as oe,S as se,T as ce,U as le,z as ue}from"./vendor-primevue-C9-jpd5L.js";import{t as E}from"./notifications-D4SOTDPx.js";import{t as D}from"./usePushRegistration-CR4ZsM1s.js";import{t as de}from"./delete-CiJ6ng5_.js";import{t as fe}from"./CuiDataTable-BozSktV7.js";import{t as O}from"./usePermissions-CKQU5_yK.js";var pe={class:`flex flex-col w-full gap-6`},me={class:`card-title`},he={class:`flex flex-col gap-6`},ge={class:`text-sm`},_e={key:1,class:`flex items-center justify-center py-8`},ve={class:`flex items-center gap-4`},ye={class:`flex flex-col field-switch-gap`},be={class:`cui-label-switch`},xe={key:0,class:`flex items-center gap-4`},Se={class:`flex flex-col field-switch-gap min-w-0`},Ce={class:`cui-label-switch`},we={key:1,class:`flex items-center gap-4`},Te={class:`flex flex-col field-switch-gap min-w-0`},Ee={class:`cui-label-switch`},De={key:2,class:`flex flex-col gap-2`},Oe={class:`flex items-center gap-4`},ke={class:`flex flex-col field-switch-gap`},Ae={class:`cui-label-switch`},je={key:0,class:`grid grid-cols-1 sm:grid-cols-3 gap-3 mt-2`},Me={class:`flex flex-col field-gap`},Ne={for:`qh-from`,class:`cui-label`},Pe={class:`flex flex-col field-gap`},Fe={for:`qh-to`,class:`cui-label`},Ie={class:`flex flex-col field-gap`},Le={for:`qh-tz`,class:`cui-label`},Re={key:0},ze={class:`card-title`},Be={class:`flex flex-col gap-6`},Ve={class:`text-sm`},He={key:0,class:`flex items-center justify-center py-8`},Ue={key:1,class:`text-sm text-muted text-center py-8`},We={key:2,class:`flex flex-col gap-3`},Ge={class:`flex items-center gap-4`},Ke={class:`flex flex-col field-switch-gap`},qe={class:`cui-label-switch`},Je={key:1},Ye={class:`card-title`},Xe={class:`flex flex-col gap-6`},Ze={class:`text-sm`},Qe={key:0,class:`flex items-center justify-center py-8`},$e={key:1,class:`text-sm text-muted text-center py-8`},et={key:2,class:`flex flex-col gap-3`},tt={class:`flex items-center gap-4`},nt={class:`flex flex-col field-switch-gap`},rt={class:`cui-label-switch`},it={key:2},at={class:`card-title`},ot={class:`flex flex-col gap-6`},st={class:`text-sm`},ct={key:0,class:`flex items-center justify-center py-8`},lt={key:1,class:`text-sm text-muted text-center py-8`},ut={key:3,class:`flex justify-end gap-2`},k=y({__name:`SettingsNotifications`,setup(y){let k=new E,{t:A,te:dt}=e(),j=i(),ft=a(void 0,`admin`),{registerForPush:pt,forgetIfThisDevice:mt,getSyncState:ht,restoreMarker:gt}=D(),{isElectronApp:M,electron:N}=T(),{states:_t,refresh:vt}=O(),{data:P,isLoading:yt}=k.getSettingsQuery(),{data:F,isLoading:bt}=k.listDevicesQuery(()=>!0),{data:I,isLoading:L}=k.listSourcesQuery(),{mutate:xt,isPending:St}=k.setSettingsQuery(),{mutateAsync:Ct}=k.setSettingsQuerySilent(),{mutate:wt}=k.revokeDeviceQuery(),{mutate:Tt}=k.updateDeviceQuery(),R=Intl.DateTimeFormat().resolvedOptions().timeZone||`UTC`,z=C(null),B=C(``),V=C(!1),H=C(!1),U=C(!1),W=C(!0),G=C(!1),K=C(null),q=m({}),J=C(null),Et=x(()=>!!z.value&&JSON.stringify(z.value)!==B.value),Y=x(()=>!!z.value?.enabled),X=x(()=>St.value),Dt=x(()=>Q(z.value?.quietHours?.from)),Ot=x(()=>Q(z.value?.quietHours?.to));function Z(e){e&&(z.value=JSON.parse(JSON.stringify(e)),B.value=JSON.stringify(e))}function kt(){Z(P.value)}function At(e){z.value&&(e?z.value.quietHours={from:`22:00`,to:`07:00`,timezone:R}:delete z.value.quietHours)}function Q(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 jt(e){return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:`00:00`}function $(e,t){z.value?.quietHours&&(z.value.quietHours[e]=jt(t))}function Mt(e){return z.value?.systemTypes?.[e]!==!1}function Nt(e,t){z.value&&(z.value.systemTypes||(z.value.systemTypes={}),t?delete z.value.systemTypes[e]:z.value.systemTypes[e]=!1)}function Pt(e){return z.value?.sources?.[e]!==!1}function Ft(e,t){z.value&&(z.value.sources||(z.value.sources={}),t?delete z.value.sources[e]:z.value.sources[e]=!1)}function It(e){let t=`views.settings.notifications.system_types.${e.type.replaceAll(`.`,`_`)}`;return dt(t)?A(t):e.label}function Lt(){z.value&&xt({settings:z.value},{onSuccess:e=>Z(e)})}async function Rt(e){if(!(!z.value||!P.value)){V.value=!0;try{Z(await Ct({settings:{...P.value,enabled:e}}))}catch(e){j.add({severity:`error`,detail:e,life:3e3})}finally{V.value=!1}}}async function zt(){let e=o(),t=e?await ht(e,F.value):{status:`unknown`};H.value=t.status===`registered`,t.status===`registered`&&t.device&&e&&await gt(e,t.device.id)}async function Bt(){if(!(!M||!N))try{W.value=await N.invoke(`get-desktop-notifications`)}catch{}}async function Vt(e){if(N){G.value=!0;try{W.value=await N.invoke(`set-desktop-notifications`,e)}catch(e){j.add({severity:`error`,detail:e,life:3e3})}finally{G.value=!1}}}async function Ht(){U.value=!0;try{await pt(),await zt(),await k.queryClient.invalidateQueries({queryKey:[`notifications`,`devices`]})}catch(e){j.add({severity:`error`,detail:e,life:3e3})}finally{U.value=!1}}function Ut(e){K.value=e;let t=o();wt({deviceId:e},{onSuccess:async()=>{t&&await mt(t,e),zt()},onSettled:()=>K.value=null})}function Wt(e){let t=q[e.id];if(t==null)return;let n=t.trim();if(!n||n===e.name){delete q[e.id];return}J.value=e.id,Tt({deviceId:e.id,patch:{name:n}},{onSuccess:()=>delete q[e.id],onSettled:()=>J.value=null})}function Gt(e,t){J.value=e,Tt({deviceId:e,patch:{active:t}},{onSettled:()=>J.value=null})}return l(P,Z,{immediate:!0}),l(F,()=>!1,{immediate:!0}),c(()=>{M&&Bt(),vt()}),(e,i)=>{let a=re(`RouterLink`),o=ue,c=t,l=oe,m=ne,y=te,x=r,C=ee,T=le,E=se,D=ce,O=de,k=fe,A=n;return u(),S(`div`,null,[v(`div`,pe,[v(`div`,null,[v(`span`,me,w(e.$t(`views.settings.notifications.general`)),1),g(C,{class:`cui-card`},{content:f(()=>[v(`div`,he,[v(`span`,ge,w(e.$t(`views.settings.notifications.general_info`)),1),_(_t).notifications===`denied`?(u(),p(o,{key:0,severity:`warn`,size:`small`},{default:f(()=>[h(w(e.$t(`views.settings.notifications.os_permission_denied`))+` `,1),g(a,{to:`/settings/permissions`,class:`underline`},{default:f(()=>[h(w(e.$t(`views.settings.notifications.os_permission_link`)),1)]),_:1})]),_:1})):b(``,!0),_(yt)&&!_(z)?(u(),S(`div`,_e,[g(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(z)?(u(),S(s,{key:2},[v(`div`,ve,[v(`div`,ye,[v(`label`,be,w(e.$t(`views.settings.notifications.enable`)),1),g(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(e.$t(`views.settings.notifications.enable_info`)),1)]),_:1})]),g(l,{"model-value":_(z).enabled,loading:_(V),class:`ml-auto shrink-0`,"onUpdate:modelValue":Rt},null,8,[`model-value`,`loading`])]),_(!1)&&_(z).enabled?(u(),S(`div`,xe,[v(`div`,Se,[v(`label`,Ce,w(e.$t(`views.settings.notifications.this_device`)),1),g(o,{severity:_(H)?`secondary`:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(_(H)?e.$t(`views.settings.notifications.this_device_synced`):e.$t(`views.settings.notifications.this_device_unsynced`)),1)]),_:1},8,[`severity`])]),g(m,{severity:_(H)?`secondary`:void 0,loading:_(U),class:`cui-button-small ml-auto shrink-0`,label:_(H)?e.$t(`views.settings.notifications.resync`):e.$t(`views.settings.notifications.sync`),onClick:Ht},null,8,[`severity`,`loading`,`label`])])):_(M)&&_(z).enabled?(u(),S(`div`,we,[v(`div`,Te,[v(`label`,Ee,w(e.$t(`views.settings.notifications.this_device`)),1),g(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(e.$t(`views.settings.notifications.this_device_desktop`)),1)]),_:1})]),g(l,{"model-value":_(W),loading:_(G),class:`ml-auto shrink-0`,"onUpdate:modelValue":Vt},null,8,[`model-value`,`loading`])])):b(``,!0),_(z).enabled?(u(),S(`div`,De,[v(`div`,Oe,[v(`div`,ke,[v(`label`,Ae,w(e.$t(`views.settings.notifications.quiet_hours`)),1),g(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(e.$t(`views.settings.notifications.quiet_hours_info`)),1)]),_:1})]),g(l,{"model-value":!!_(z).quietHours,class:`ml-auto shrink-0`,"onUpdate:modelValue":At},null,8,[`model-value`])]),_(z).quietHours?(u(),S(`div`,je,[v(`div`,Me,[v(`label`,Ne,w(e.$t(`views.settings.notifications.from`)),1),g(y,{"input-id":`qh-from`,"model-value":_(Dt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":i[0]||=e=>$(`from`,e)},null,8,[`model-value`])]),v(`div`,Pe,[v(`label`,Fe,w(e.$t(`views.settings.notifications.to`)),1),g(y,{"input-id":`qh-to`,"model-value":_(Ot),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":i[1]||=e=>$(`to`,e)},null,8,[`model-value`])]),v(`div`,Ie,[v(`label`,Le,w(e.$t(`views.settings.notifications.timezone`)),1),g(x,{id:`qh-tz`,modelValue:_(z).quietHours.timezone,"onUpdate:modelValue":i[2]||=e=>_(z).quietHours.timezone=e,placeholder:_(R)},null,8,[`modelValue`,`placeholder`])])])):b(``,!0)])):b(``,!0)],64)):b(``,!0)])]),_:1})]),_(Y)&&_(ft)?(u(),S(`div`,Re,[v(`span`,ze,w(e.$t(`views.settings.notifications.system_notifications`)),1),g(C,{class:`cui-card`},{content:f(()=>[v(`div`,Be,[v(`span`,Ve,w(e.$t(`views.settings.notifications.system_notifications_info`)),1),_(L)&&!_(I)?(u(),S(`div`,He,[g(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(I)?.system?.length?(u(),S(`div`,We,[(u(!0),S(s,null,d(_(I).system,(e,t)=>(u(),S(`div`,{key:e.type},[v(`div`,Ge,[v(`div`,Ke,[v(`label`,qe,w(It(e)),1),e.description?(u(),p(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(e.description),1)]),_:2},1024)):b(``,!0)]),g(l,{"model-value":Mt(e.type),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Nt(e.type,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<_(I).system.length-1?(u(),p(T,{key:0,class:`my-2`})):b(``,!0)]))),128))])):(u(),S(`div`,Ue,w(e.$t(`views.settings.notifications.no_system_types`)),1))])]),_:1})])):b(``,!0),_(Y)?(u(),S(`div`,Je,[v(`span`,Ye,w(e.$t(`views.settings.notifications.plugin_notifications`)),1),g(C,{class:`cui-card`},{content:f(()=>[v(`div`,Xe,[v(`span`,Ze,w(e.$t(`views.settings.notifications.plugin_notifications_info`)),1),_(L)&&!_(I)?(u(),S(`div`,Qe,[g(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(I)?.plugins?.length?(u(),S(`div`,et,[(u(!0),S(s,null,d(_(I).plugins,(e,t)=>(u(),S(`div`,{key:e.id},[v(`div`,tt,[v(`div`,nt,[v(`label`,rt,w(e.name),1)]),g(l,{"model-value":Pt(e.id),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Ft(e.id,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<_(I).plugins.length-1?(u(),p(T,{key:0,class:`my-2`})):b(``,!0)]))),128))])):(u(),S(`div`,$e,w(e.$t(`views.settings.notifications.no_plugin_sources`)),1))])]),_:1})])):b(``,!0),_(Y)?(u(),S(`div`,it,[v(`span`,at,w(e.$t(`views.settings.notifications.devices`)),1),g(C,{class:`cui-card`},{content:f(()=>[v(`div`,ot,[v(`span`,st,w(e.$t(`views.settings.notifications.devices_info`)),1),_(bt)&&!_(F)?(u(),S(`div`,ct,[g(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(F)?.length?(u(),p(k,{key:2,value:_(F),"striped-rows":``},{default:f(()=>[g(E,{field:`name`,header:e.$t(`views.settings.notifications.col_name`)},{body:f(({data:e})=>[g(x,{"model-value":_(q)[e.id]??e.name,disabled:_(J)===e.id,class:`w-full max-w-xs min-w-[150px]`,"onUpdate:modelValue":t=>_(q)[e.id]=t??``,onBlur:t=>Wt(e),onKeyup:ae(t=>Wt(e),[`enter`])},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`,`onBlur`,`onKeyup`])]),_:1},8,[`header`]),g(E,{field:`pluginName`,header:e.$t(`views.settings.notifications.col_plugin`)},{body:f(({data:e})=>[g(D,{label:e.pluginName,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`]),g(E,{field:`active`,header:e.$t(`views.settings.notifications.col_active`),style:{width:`7rem`}},{body:f(({data:e})=>[g(l,{"model-value":e.active,loading:_(J)===e.id,"onUpdate:modelValue":t=>Gt(e.id,t)},null,8,[`model-value`,`loading`,`onUpdate:modelValue`])]),_:1},8,[`header`]),g(E,{field:`actions`,header:``,style:{width:`6rem`}},{body:f(({data:t})=>[ie((u(),p(m,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:_(K)===t.id,onClick:e=>Ut(t.id)},{icon:f(()=>[g(O,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[A,{value:e.$t(`views.settings.notifications.revoke`)}]])]),_:1})]),_:1},8,[`value`])):(u(),S(`div`,lt,w(e.$t(`views.settings.notifications.no_devices`)),1))])]),_:1})])):b(``,!0),_(z)&&_(Et)?(u(),S(`div`,ut,[g(m,{severity:`secondary`,outlined:``,class:`cui-button-medium`,disabled:_(X),label:e.$t(`views.settings.notifications.reset`),onClick:kt},null,8,[`disabled`,`label`]),g(m,{severity:`success`,class:`cui-button-medium`,loading:_(X),label:e.$t(`views.settings.notifications.save`),onClick:Lt},null,8,[`loading`,`label`])])):b(``,!0)])])}}});export{k as default};
1
+ import{Br as e,Ft as t,Gt as n,I as r,K as ee,P as te,zt as ne}from"./vendor-cameraui-B96_CDGO.js";import{Cr as i,Sn as a,fr as o}from"./api-CdT8ZD-n.js";import{$t as s,An as c,In as re,Kn as l,Mn as u,Pn as d,Xn as ie,Yn as f,Zt as ae,an as p,ar as m,dn as h,fn as g,hr as _,in as v,mn as y,on as b,rn as x,sn as S,sr as C,yr as w}from"./vendor-nVfLT5jI.js";import{i as T}from"./intercomService-CT_KVjly.js";import{K as oe,S as se,T as ce,U as le,z as ue}from"./vendor-primevue-uo78flP9.js";import{t as E}from"./notifications-B_hY7DqC.js";import{t as D}from"./usePushRegistration-Cp-oFaYU.js";import{t as de}from"./delete-B_wgbT_W.js";import{t as fe}from"./CuiDataTable-cN03N7lr.js";import{t as O}from"./usePermissions-tvEa1N9y.js";var pe={class:`flex flex-col w-full gap-6`},me={class:`card-title`},he={class:`flex flex-col gap-6`},ge={class:`text-sm`},_e={key:1,class:`flex items-center justify-center py-8`},ve={class:`flex items-center gap-4`},ye={class:`flex flex-col field-switch-gap`},be={class:`cui-label-switch`},xe={key:0,class:`flex items-center gap-4`},Se={class:`flex flex-col field-switch-gap min-w-0`},Ce={class:`cui-label-switch`},we={key:1,class:`flex items-center gap-4`},Te={class:`flex flex-col field-switch-gap min-w-0`},Ee={class:`cui-label-switch`},De={key:2,class:`flex flex-col gap-2`},Oe={class:`flex items-center gap-4`},ke={class:`flex flex-col field-switch-gap`},Ae={class:`cui-label-switch`},je={key:0,class:`grid grid-cols-1 sm:grid-cols-3 gap-3 mt-2`},Me={class:`flex flex-col field-gap`},Ne={for:`qh-from`,class:`cui-label`},Pe={class:`flex flex-col field-gap`},Fe={for:`qh-to`,class:`cui-label`},Ie={class:`flex flex-col field-gap`},Le={for:`qh-tz`,class:`cui-label`},Re={key:0},ze={class:`card-title`},Be={class:`flex flex-col gap-6`},Ve={class:`text-sm`},He={key:0,class:`flex items-center justify-center py-8`},Ue={key:1,class:`text-sm text-muted text-center py-8`},We={key:2,class:`flex flex-col gap-3`},Ge={class:`flex items-center gap-4`},Ke={class:`flex flex-col field-switch-gap`},qe={class:`cui-label-switch`},Je={key:1},Ye={class:`card-title`},Xe={class:`flex flex-col gap-6`},Ze={class:`text-sm`},Qe={key:0,class:`flex items-center justify-center py-8`},$e={key:1,class:`text-sm text-muted text-center py-8`},et={key:2,class:`flex flex-col gap-3`},tt={class:`flex items-center gap-4`},nt={class:`flex flex-col field-switch-gap`},rt={class:`cui-label-switch`},it={key:2},at={class:`card-title`},ot={class:`flex flex-col gap-6`},st={class:`text-sm`},ct={key:0,class:`flex items-center justify-center py-8`},lt={key:1,class:`text-sm text-muted text-center py-8`},ut={key:3,class:`flex justify-end gap-2`},k=y({__name:`SettingsNotifications`,setup(y){let k=new E,{t:A,te:dt}=e(),j=i(),ft=a(void 0,`admin`),{registerForPush:pt,forgetIfThisDevice:mt,getSyncState:ht,restoreMarker:gt}=D(),{isElectronApp:M,electron:N}=T(),{states:_t,refresh:vt}=O(),{data:P,isLoading:yt}=k.getSettingsQuery(),{data:F,isLoading:bt}=k.listDevicesQuery(()=>!0),{data:I,isLoading:L}=k.listSourcesQuery(),{mutate:xt,isPending:St}=k.setSettingsQuery(),{mutateAsync:Ct}=k.setSettingsQuerySilent(),{mutate:wt}=k.revokeDeviceQuery(),{mutate:Tt}=k.updateDeviceQuery(),R=Intl.DateTimeFormat().resolvedOptions().timeZone||`UTC`,z=C(null),B=C(``),V=C(!1),H=C(!1),U=C(!1),W=C(!0),G=C(!1),K=C(null),q=m({}),J=C(null),Et=x(()=>!!z.value&&JSON.stringify(z.value)!==B.value),Y=x(()=>!!z.value?.enabled),X=x(()=>St.value),Dt=x(()=>Q(z.value?.quietHours?.from)),Ot=x(()=>Q(z.value?.quietHours?.to));function Z(e){e&&(z.value=JSON.parse(JSON.stringify(e)),B.value=JSON.stringify(e))}function kt(){Z(P.value)}function At(e){z.value&&(e?z.value.quietHours={from:`22:00`,to:`07:00`,timezone:R}:delete z.value.quietHours)}function Q(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 jt(e){return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:`00:00`}function $(e,t){z.value?.quietHours&&(z.value.quietHours[e]=jt(t))}function Mt(e){return z.value?.systemTypes?.[e]!==!1}function Nt(e,t){z.value&&(z.value.systemTypes||(z.value.systemTypes={}),t?delete z.value.systemTypes[e]:z.value.systemTypes[e]=!1)}function Pt(e){return z.value?.sources?.[e]!==!1}function Ft(e,t){z.value&&(z.value.sources||(z.value.sources={}),t?delete z.value.sources[e]:z.value.sources[e]=!1)}function It(e){let t=`views.settings.notifications.system_types.${e.type.replaceAll(`.`,`_`)}`;return dt(t)?A(t):e.label}function Lt(){z.value&&xt({settings:z.value},{onSuccess:e=>Z(e)})}async function Rt(e){if(!(!z.value||!P.value)){V.value=!0;try{Z(await Ct({settings:{...P.value,enabled:e}}))}catch(e){j.add({severity:`error`,detail:e,life:3e3})}finally{V.value=!1}}}async function zt(){let e=o(),t=e?await ht(e,F.value):{status:`unknown`};H.value=t.status===`registered`,t.status===`registered`&&t.device&&e&&await gt(e,t.device.id)}async function Bt(){if(!(!M||!N))try{W.value=await N.invoke(`get-desktop-notifications`)}catch{}}async function Vt(e){if(N){G.value=!0;try{W.value=await N.invoke(`set-desktop-notifications`,e)}catch(e){j.add({severity:`error`,detail:e,life:3e3})}finally{G.value=!1}}}async function Ht(){U.value=!0;try{await pt(),await zt(),await k.queryClient.invalidateQueries({queryKey:[`notifications`,`devices`]})}catch(e){j.add({severity:`error`,detail:e,life:3e3})}finally{U.value=!1}}function Ut(e){K.value=e;let t=o();wt({deviceId:e},{onSuccess:async()=>{t&&await mt(t,e),zt()},onSettled:()=>K.value=null})}function Wt(e){let t=q[e.id];if(t==null)return;let n=t.trim();if(!n||n===e.name){delete q[e.id];return}J.value=e.id,Tt({deviceId:e.id,patch:{name:n}},{onSuccess:()=>delete q[e.id],onSettled:()=>J.value=null})}function Gt(e,t){J.value=e,Tt({deviceId:e,patch:{active:t}},{onSettled:()=>J.value=null})}return l(P,Z,{immediate:!0}),l(F,()=>!1,{immediate:!0}),c(()=>{M&&Bt(),vt()}),(e,i)=>{let a=re(`RouterLink`),o=ue,c=t,l=oe,m=ne,y=te,x=r,C=ee,T=le,E=se,D=ce,O=de,k=fe,A=n;return u(),S(`div`,null,[v(`div`,pe,[v(`div`,null,[v(`span`,me,w(e.$t(`views.settings.notifications.general`)),1),g(C,{class:`cui-card`},{content:f(()=>[v(`div`,he,[v(`span`,ge,w(e.$t(`views.settings.notifications.general_info`)),1),_(_t).notifications===`denied`?(u(),p(o,{key:0,severity:`warn`,size:`small`},{default:f(()=>[h(w(e.$t(`views.settings.notifications.os_permission_denied`))+` `,1),g(a,{to:`/settings/permissions`,class:`underline`},{default:f(()=>[h(w(e.$t(`views.settings.notifications.os_permission_link`)),1)]),_:1})]),_:1})):b(``,!0),_(yt)&&!_(z)?(u(),S(`div`,_e,[g(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(z)?(u(),S(s,{key:2},[v(`div`,ve,[v(`div`,ye,[v(`label`,be,w(e.$t(`views.settings.notifications.enable`)),1),g(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(e.$t(`views.settings.notifications.enable_info`)),1)]),_:1})]),g(l,{"model-value":_(z).enabled,loading:_(V),class:`ml-auto shrink-0`,"onUpdate:modelValue":Rt},null,8,[`model-value`,`loading`])]),_(!1)&&_(z).enabled?(u(),S(`div`,xe,[v(`div`,Se,[v(`label`,Ce,w(e.$t(`views.settings.notifications.this_device`)),1),g(o,{severity:_(H)?`secondary`:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(_(H)?e.$t(`views.settings.notifications.this_device_synced`):e.$t(`views.settings.notifications.this_device_unsynced`)),1)]),_:1},8,[`severity`])]),g(m,{severity:_(H)?`secondary`:void 0,loading:_(U),class:`cui-button-small ml-auto shrink-0`,label:_(H)?e.$t(`views.settings.notifications.resync`):e.$t(`views.settings.notifications.sync`),onClick:Ht},null,8,[`severity`,`loading`,`label`])])):_(M)&&_(z).enabled?(u(),S(`div`,we,[v(`div`,Te,[v(`label`,Ee,w(e.$t(`views.settings.notifications.this_device`)),1),g(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(e.$t(`views.settings.notifications.this_device_desktop`)),1)]),_:1})]),g(l,{"model-value":_(W),loading:_(G),class:`ml-auto shrink-0`,"onUpdate:modelValue":Vt},null,8,[`model-value`,`loading`])])):b(``,!0),_(z).enabled?(u(),S(`div`,De,[v(`div`,Oe,[v(`div`,ke,[v(`label`,Ae,w(e.$t(`views.settings.notifications.quiet_hours`)),1),g(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(e.$t(`views.settings.notifications.quiet_hours_info`)),1)]),_:1})]),g(l,{"model-value":!!_(z).quietHours,class:`ml-auto shrink-0`,"onUpdate:modelValue":At},null,8,[`model-value`])]),_(z).quietHours?(u(),S(`div`,je,[v(`div`,Me,[v(`label`,Ne,w(e.$t(`views.settings.notifications.from`)),1),g(y,{"input-id":`qh-from`,"model-value":_(Dt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":i[0]||=e=>$(`from`,e)},null,8,[`model-value`])]),v(`div`,Pe,[v(`label`,Fe,w(e.$t(`views.settings.notifications.to`)),1),g(y,{"input-id":`qh-to`,"model-value":_(Ot),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":i[1]||=e=>$(`to`,e)},null,8,[`model-value`])]),v(`div`,Ie,[v(`label`,Le,w(e.$t(`views.settings.notifications.timezone`)),1),g(x,{id:`qh-tz`,modelValue:_(z).quietHours.timezone,"onUpdate:modelValue":i[2]||=e=>_(z).quietHours.timezone=e,placeholder:_(R)},null,8,[`modelValue`,`placeholder`])])])):b(``,!0)])):b(``,!0)],64)):b(``,!0)])]),_:1})]),_(Y)&&_(ft)?(u(),S(`div`,Re,[v(`span`,ze,w(e.$t(`views.settings.notifications.system_notifications`)),1),g(C,{class:`cui-card`},{content:f(()=>[v(`div`,Be,[v(`span`,Ve,w(e.$t(`views.settings.notifications.system_notifications_info`)),1),_(L)&&!_(I)?(u(),S(`div`,He,[g(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(I)?.system?.length?(u(),S(`div`,We,[(u(!0),S(s,null,d(_(I).system,(e,t)=>(u(),S(`div`,{key:e.type},[v(`div`,Ge,[v(`div`,Ke,[v(`label`,qe,w(It(e)),1),e.description?(u(),p(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(e.description),1)]),_:2},1024)):b(``,!0)]),g(l,{"model-value":Mt(e.type),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Nt(e.type,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<_(I).system.length-1?(u(),p(T,{key:0,class:`my-2`})):b(``,!0)]))),128))])):(u(),S(`div`,Ue,w(e.$t(`views.settings.notifications.no_system_types`)),1))])]),_:1})])):b(``,!0),_(Y)?(u(),S(`div`,Je,[v(`span`,Ye,w(e.$t(`views.settings.notifications.plugin_notifications`)),1),g(C,{class:`cui-card`},{content:f(()=>[v(`div`,Xe,[v(`span`,Ze,w(e.$t(`views.settings.notifications.plugin_notifications_info`)),1),_(L)&&!_(I)?(u(),S(`div`,Qe,[g(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(I)?.plugins?.length?(u(),S(`div`,et,[(u(!0),S(s,null,d(_(I).plugins,(e,t)=>(u(),S(`div`,{key:e.id},[v(`div`,tt,[v(`div`,nt,[v(`label`,rt,w(e.name),1)]),g(l,{"model-value":Pt(e.id),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Ft(e.id,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<_(I).plugins.length-1?(u(),p(T,{key:0,class:`my-2`})):b(``,!0)]))),128))])):(u(),S(`div`,$e,w(e.$t(`views.settings.notifications.no_plugin_sources`)),1))])]),_:1})])):b(``,!0),_(Y)?(u(),S(`div`,it,[v(`span`,at,w(e.$t(`views.settings.notifications.devices`)),1),g(C,{class:`cui-card`},{content:f(()=>[v(`div`,ot,[v(`span`,st,w(e.$t(`views.settings.notifications.devices_info`)),1),_(bt)&&!_(F)?(u(),S(`div`,ct,[g(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(F)?.length?(u(),p(k,{key:2,value:_(F),"striped-rows":``},{default:f(()=>[g(E,{field:`name`,header:e.$t(`views.settings.notifications.col_name`)},{body:f(({data:e})=>[g(x,{"model-value":_(q)[e.id]??e.name,disabled:_(J)===e.id,class:`w-full max-w-xs min-w-[150px]`,"onUpdate:modelValue":t=>_(q)[e.id]=t??``,onBlur:t=>Wt(e),onKeyup:ae(t=>Wt(e),[`enter`])},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`,`onBlur`,`onKeyup`])]),_:1},8,[`header`]),g(E,{field:`pluginName`,header:e.$t(`views.settings.notifications.col_plugin`)},{body:f(({data:e})=>[g(D,{label:e.pluginName,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`]),g(E,{field:`active`,header:e.$t(`views.settings.notifications.col_active`),style:{width:`7rem`}},{body:f(({data:e})=>[g(l,{"model-value":e.active,loading:_(J)===e.id,"onUpdate:modelValue":t=>Gt(e.id,t)},null,8,[`model-value`,`loading`,`onUpdate:modelValue`])]),_:1},8,[`header`]),g(E,{field:`actions`,header:``,style:{width:`6rem`}},{body:f(({data:t})=>[ie((u(),p(m,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:_(K)===t.id,onClick:e=>Ut(t.id)},{icon:f(()=>[g(O,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[A,{value:e.$t(`views.settings.notifications.revoke`)}]])]),_:1})]),_:1},8,[`value`])):(u(),S(`div`,lt,w(e.$t(`views.settings.notifications.no_devices`)),1))])]),_:1})])):b(``,!0),_(z)&&_(Et)?(u(),S(`div`,ut,[g(m,{severity:`secondary`,outlined:``,class:`cui-button-medium`,disabled:_(X),label:e.$t(`views.settings.notifications.reset`),onClick:kt},null,8,[`disabled`,`label`]),g(m,{severity:`success`,class:`cui-button-medium`,loading:_(X),label:e.$t(`views.settings.notifications.save`),onClick:Lt},null,8,[`loading`,`label`])])):b(``,!0)])])}}});export{k as default};
@@ -1 +1 @@
1
- import{K as e,ii as t,zt as n}from"./vendor-cameraui-C5_h4c-5.js";import{$t as r,An as i,Mn as a,Pn as o,Yn as s,an as c,dn as l,fn as u,hr as d,in as f,mn as p,on as m,sn as h,sr as g,yr as _}from"./vendor-AX0A8AMd.js";import{a as v,z as y}from"./vendor-primevue-C9-jpd5L.js";import{t as b}from"./usePermissions-CKQU5_yK.js";var x={class:`flex flex-col w-full gap-6`},S={class:`card-title`},C={class:`flex flex-col gap-6`},w={class:`text-sm`},T={class:`flex flex-col field-switch-gap min-w-0`},E={class:`cui-label-switch`},D={class:`flex items-center gap-2 ml-auto shrink-0`},O=p({__name:`SettingsPermissions`,setup(p){let{states:O,canOpenSettings:k,refresh:A,request:j,openSettings:M}=b(),N=[{name:`microphone`},{name:`location`},{name:`notifications`}],P=g(null);function F(e){return e===`granted`?`success`:e===`denied`?`danger`:e===`prompt`?`warn`:`secondary`}async function I(e){P.value=e;try{await j(e)}finally{P.value=null}}return t(document,`visibilitychange`,()=>{document.visibilityState===`visible`&&A()}),i(()=>{A()}),(t,i)=>{let p=y,g=v,b=n,A=e;return a(),h(`div`,null,[f(`div`,x,[f(`div`,null,[f(`span`,S,_(t.$t(`views.settings.permissions.general`)),1),u(A,{class:`cui-card`},{content:s(()=>[f(`div`,C,[f(`span`,w,_(t.$t(`views.settings.permissions.general_info`)),1),(a(),h(r,null,o(N,e=>f(`div`,{key:e.name,class:`flex items-center gap-4`},[f(`div`,T,[f(`label`,E,_(t.$t(`views.settings.permissions.${e.name}`)),1),u(p,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:s(()=>[l(_(t.$t(`views.settings.permissions.${e.name}_info`)),1)]),_:2},1024),d(O)[e.name]===`denied`&&!d(k)?(a(),c(p,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:s(()=>[l(_(t.$t(`views.settings.permissions.browser_hint`)),1)]),_:1})):m(``,!0)]),f(`div`,D,[u(g,{severity:F(d(O)[e.name]),value:t.$t(`views.settings.permissions.state_${d(O)[e.name]}`)},null,8,[`severity`,`value`]),d(O)[e.name]===`prompt`||d(O)[e.name]===`unknown`?(a(),c(b,{key:0,loading:d(P)===e.name,class:`cui-button-small`,label:t.$t(`views.settings.permissions.request`),onClick:t=>I(e.name)},null,8,[`loading`,`label`,`onClick`])):d(O)[e.name]===`denied`&&d(k)?(a(),c(b,{key:1,severity:`secondary`,class:`cui-button-small`,label:t.$t(`views.settings.permissions.open_settings`),onClick:d(M)},null,8,[`label`,`onClick`])):m(``,!0)])])),64))])]),_:1})])])])}}});export{O as default};
1
+ import{K as e,ii as t,zt as n}from"./vendor-cameraui-B96_CDGO.js";import{$t as r,An as i,Mn as a,Pn as o,Yn as s,an as c,dn as l,fn as u,hr as d,in as f,mn as p,on as m,sn as h,sr as g,yr as _}from"./vendor-nVfLT5jI.js";import{a as v,z as y}from"./vendor-primevue-uo78flP9.js";import{t as b}from"./usePermissions-tvEa1N9y.js";var x={class:`flex flex-col w-full gap-6`},S={class:`card-title`},C={class:`flex flex-col gap-6`},w={class:`text-sm`},T={class:`flex flex-col field-switch-gap min-w-0`},E={class:`cui-label-switch`},D={class:`flex items-center gap-2 ml-auto shrink-0`},O=p({__name:`SettingsPermissions`,setup(p){let{states:O,canOpenSettings:k,refresh:A,request:j,openSettings:M}=b(),N=[{name:`microphone`},{name:`location`},{name:`notifications`}],P=g(null);function F(e){return e===`granted`?`success`:e===`denied`?`danger`:e===`prompt`?`warn`:`secondary`}async function I(e){P.value=e;try{await j(e)}finally{P.value=null}}return t(document,`visibilitychange`,()=>{document.visibilityState===`visible`&&A()}),i(()=>{A()}),(t,i)=>{let p=y,g=v,b=n,A=e;return a(),h(`div`,null,[f(`div`,x,[f(`div`,null,[f(`span`,S,_(t.$t(`views.settings.permissions.general`)),1),u(A,{class:`cui-card`},{content:s(()=>[f(`div`,C,[f(`span`,w,_(t.$t(`views.settings.permissions.general_info`)),1),(a(),h(r,null,o(N,e=>f(`div`,{key:e.name,class:`flex items-center gap-4`},[f(`div`,T,[f(`label`,E,_(t.$t(`views.settings.permissions.${e.name}`)),1),u(p,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:s(()=>[l(_(t.$t(`views.settings.permissions.${e.name}_info`)),1)]),_:2},1024),d(O)[e.name]===`denied`&&!d(k)?(a(),c(p,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:s(()=>[l(_(t.$t(`views.settings.permissions.browser_hint`)),1)]),_:1})):m(``,!0)]),f(`div`,D,[u(g,{severity:F(d(O)[e.name]),value:t.$t(`views.settings.permissions.state_${d(O)[e.name]}`)},null,8,[`severity`,`value`]),d(O)[e.name]===`prompt`||d(O)[e.name]===`unknown`?(a(),c(b,{key:0,loading:d(P)===e.name,class:`cui-button-small`,label:t.$t(`views.settings.permissions.request`),onClick:t=>I(e.name)},null,8,[`loading`,`label`,`onClick`])):d(O)[e.name]===`denied`&&d(k)?(a(),c(b,{key:1,severity:`secondary`,class:`cui-button-small`,label:t.$t(`views.settings.permissions.open_settings`),onClick:d(M)},null,8,[`label`,`onClick`])):m(``,!0)])])),64))])]),_:1})])])])}}});export{O as default};
@@ -1 +1 @@
1
- import{Br as e,Ft as t,K as n,Tt as r,kt as i,y as a}from"./vendor-cameraui-C5_h4c-5.js";import{Cr as o,rn as ee}from"./api-Br1U09Hq.js";import{An as s,Kn as c,Mn as l,Yn as u,an as d,dn as f,fn as p,hr as m,in as h,mn as g,on as _,rn as v,sn as y,sr as b,yr as x}from"./vendor-AX0A8AMd.js";import{t as S}from"./alert-outline-DtiCgufF.js";import{z as C}from"./vendor-primevue-C9-jpd5L.js";import{t as w}from"./CuiSchema-Bhs017IB.js";import{t as te}from"./CuiPluginOAuthButton-Bbh4geGP.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=g({__name:`SettingsRecordings`,setup(g){let{t:z}=e(),B=o(),{stats:V,isLoading:H,refresh:U}=a(),{state:W,refresh:G}=r(R),{isConnected:K,isLoading:q,config:J,getConfig:Y,setConfig:X,setValue:Z,submitValue:Q}=i(R),$=b(!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 c(K,async e=>{e&&await Y()},{immediate:!0}),s(async()=>{try{await G()}finally{$.value=!0}}),(e,r)=>{let i=ee,a=S,o=C,s=n,c=t;return l(),y(`div`,null,[h(`div`,T,[m(V)&&m(V).paused===!0?(l(),y(`div`,E,[p(i,{class:`shrink-0 w-5 h-5`}),h(`span`,null,x(e.$t(`views.settings.recordings.disk_critical`)),1)])):m(V)&&m(V).diskFreePercent>0&&m(V).diskFreePercent<8?(l(),y(`div`,D,[p(a,{class:`shrink-0 w-5 h-5`}),h(`span`,null,x(e.$t(`views.settings.recordings.disk_warning`)),1)])):_(``,!0),m(V)&&m(V).smallVolume?(l(),y(`div`,O,[p(a,{class:`shrink-0 w-5 h-5`}),h(`span`,null,x(e.$t(`views.settings.recordings.disk_small_volume`)),1)])):_(``,!0),m($)&&m(W).status!==`connected`?(l(),d(o,{key:3,severity:`warn`,size:`small`},{default:u(()=>[f(x(e.$t(`views.settings.recordings.cloud_login_hint`)),1)]),_:1})):_(``,!0),h(`div`,null,[h(`span`,k,x(e.$t(`views.settings.recordings.license_title`)),1),p(s,{class:`cui-card`},{content:u(()=>[h(`div`,A,[h(`div`,j,[h(`p`,M,x(m(re)),1),h(`p`,N,x(e.$t(`views.settings.recordings.license_description`)),1)]),p(te,{"plugin-name":R,class:`flex-shrink-0`})])]),_:1})]),m(J)?(l(),d(w,{key:4,"schema-form":{schema:m(J).schema,config:m(J).config},loading:m(q),"groups-as-cards":``,"group-descriptions":m(ne),onOnAction:ie,onOnSubmit:ae,onOnFormSubmit:oe},null,8,[`schema-form`,`loading`,`group-descriptions`])):(l(),y(`div`,P,[h(`span`,F,x(e.$t(`views.settings.recordings.global_settings`)),1),p(s,{class:`cui-card`},{content:u(()=>[m(H)||m(q)?(l(),y(`div`,I,[p(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(l(),y(`div`,L,x(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})]))])])}}});export{z as default};
1
+ import{Br as e,Ft as t,K as n,Tt as r,kt as i,y as a}from"./vendor-cameraui-B96_CDGO.js";import{Cr as o,rn as ee}from"./api-CdT8ZD-n.js";import{An as s,Kn as c,Mn as l,Yn as u,an as d,dn as f,fn as p,hr as m,in as h,mn as g,on as _,rn as v,sn as y,sr as b,yr as x}from"./vendor-nVfLT5jI.js";import{t as S}from"./alert-outline-E6GK9c5n.js";import{z as C}from"./vendor-primevue-uo78flP9.js";import{t as w}from"./CuiSchema-DntSkCO2.js";import{t as te}from"./CuiPluginOAuthButton-BmdfXNce.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=g({__name:`SettingsRecordings`,setup(g){let{t:z}=e(),B=o(),{stats:V,isLoading:H,refresh:U}=a(),{state:W,refresh:G}=r(R),{isConnected:K,isLoading:q,config:J,getConfig:Y,setConfig:X,setValue:Z,submitValue:Q}=i(R),$=b(!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 c(K,async e=>{e&&await Y()},{immediate:!0}),s(async()=>{try{await G()}finally{$.value=!0}}),(e,r)=>{let i=ee,a=S,o=C,s=n,c=t;return l(),y(`div`,null,[h(`div`,T,[m(V)&&m(V).paused===!0?(l(),y(`div`,E,[p(i,{class:`shrink-0 w-5 h-5`}),h(`span`,null,x(e.$t(`views.settings.recordings.disk_critical`)),1)])):m(V)&&m(V).diskFreePercent>0&&m(V).diskFreePercent<8?(l(),y(`div`,D,[p(a,{class:`shrink-0 w-5 h-5`}),h(`span`,null,x(e.$t(`views.settings.recordings.disk_warning`)),1)])):_(``,!0),m(V)&&m(V).smallVolume?(l(),y(`div`,O,[p(a,{class:`shrink-0 w-5 h-5`}),h(`span`,null,x(e.$t(`views.settings.recordings.disk_small_volume`)),1)])):_(``,!0),m($)&&m(W).status!==`connected`?(l(),d(o,{key:3,severity:`warn`,size:`small`},{default:u(()=>[f(x(e.$t(`views.settings.recordings.cloud_login_hint`)),1)]),_:1})):_(``,!0),h(`div`,null,[h(`span`,k,x(e.$t(`views.settings.recordings.license_title`)),1),p(s,{class:`cui-card`},{content:u(()=>[h(`div`,A,[h(`div`,j,[h(`p`,M,x(m(re)),1),h(`p`,N,x(e.$t(`views.settings.recordings.license_description`)),1)]),p(te,{"plugin-name":R,class:`flex-shrink-0`})])]),_:1})]),m(J)?(l(),d(w,{key:4,"schema-form":{schema:m(J).schema,config:m(J).config},loading:m(q),"groups-as-cards":``,"group-descriptions":m(ne),onOnAction:ie,onOnSubmit:ae,onOnFormSubmit:oe},null,8,[`schema-form`,`loading`,`group-descriptions`])):(l(),y(`div`,P,[h(`span`,F,x(e.$t(`views.settings.recordings.global_settings`)),1),p(s,{class:`cui-card`},{content:u(()=>[m(H)||m(q)?(l(),y(`div`,I,[p(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(l(),y(`div`,L,x(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})]))])])}}});export{z as default};
@@ -1,2 +1,2 @@
1
- import{Br as e,Ft as t,Gt as n,I as r,K as ee,zt as te}from"./vendor-cameraui-C5_h4c-5.js";import{$ as i,An as a,Cr as o,Ir as ne,Mr as s,Nr as c,Tr as re,_t as l,i as u,kr as d,o as f,r as p,tr as ie,tt as ae,vt as oe,wr as m,xr as h}from"./api-Br1U09Hq.js";import{$t as g,Cn as _,Dn as se,J as ce,Kn as v,Kt as y,Mn as b,Pn as le,Rn as ue,U as x,Xn as de,Yn as S,an as C,b as fe,dn as w,fn as T,gr as pe,hr as E,in as D,mn as me,nr as he,on as O,rn as k,rr as A,sn as j,sr as M,v as N,y as P,yr as F}from"./vendor-AX0A8AMd.js";import{a as ge}from"./intercomService-CmFnb1sI.js";import{E as _e,V as I}from"./types-DJucLQEM.js";import{n as ve,r as ye,t as be}from"./lan-D9PCM8iA.js";import{K as xe,L as Se,R as Ce,a as we,j as Te,l as Ee,s as De,z as Oe}from"./vendor-primevue-C9-jpd5L.js";import{t as ke}from"./server-DWPgetQJ.js";import{t as Ae}from"./api-ZL-_Y0-o.js";import{t as je}from"./information-outline-CQ5e79wc.js";import{t as Me}from"./CuiQRCode-gqnAR_Zp.js";var Ne={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function L(e,t){return b(),j(`svg`,Ne,[...t[0]||=[D(`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 Pe=A({name:`material-symbols-light-cloud-off`,render:L}),Fe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ie(e,t){return b(),j(`svg`,Fe,[...t[0]||=[D(`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 Le=A({name:`material-symbols-check`,render:Ie}),R={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Re(e,t){return b(),j(`svg`,R,[...t[0]||=[D(`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 ze=A({name:`boxicons-computer-filled`,render:Re});async function Be({signal:e}){return(await s.get(`/remote`,{signal:e})).data}async function Ve(e){return(await s.patch(`/remote`,e)).data}async function He(e){return(await s.post(`/remote/pair/init`,e?{name:e}:{})).data}async function Ue({name:e}={}){return(await s.post(`/remote/pair/poll`,e?{name:e}:{})).data}async function We(){await s.delete(`/remote/unregister`)}async function Ge({signal:e}){return(await s.get(`/remote/status`,{signal:e})).data}async function Ke(e){await s.patch(`/remote/name`,{name:e})}async function qe({signal:e}){return(await s.get(`/remote/tunnel`,{signal:e})).data}async function z({signal:e}={}){return(await s.get(`/remote/connection-info`,{signal:e})).data}async function B(e){return(await s.post(`/remote/test/${e}`)).data}async function Je({signal:e}={}){return(await s.get(`/remote/cloudflare/managed/status`,{signal:e})).data}async function Ye(e){await s.post(`/remote/cloudflare/managed/connect`,{hostname:e})}async function Xe(){await s.post(`/remote/cloudflare/managed/cancel`)}async function Ze(){await s.post(`/remote/cloudflare/managed/disconnect`)}async function Qe(){await s.post(`/remote/cloudflare/managed/logout`)}var $e=class{_queryClient=ce();t=m.global.t;toast=o();queryActivator=M([{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 h({queryKey:[`remote`],queryFn:({signal:e})=>Be({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRemoteInfoQuery`&&e.enabled),staleTime:1e3})}patchRemoteInfoQuery(){return x({mutationFn:Ve,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 h({queryKey:[`remote`,`status`],queryFn:({signal:e})=>Ge({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRegistrationStatusQuery`&&e.enabled),staleTime:1e3})}pairInitMutation(){return x({mutationFn:He})}pairPollMutation(){return x({mutationFn:Ue,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 x({mutationFn:We,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 h({queryKey:[`remote`,`tunnel`],queryFn:({signal:e})=>qe({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getTunnelStatusQuery`&&e.enabled),refetchInterval:3e4,staleTime:1e4})}updateServerNameQuery(){return x({mutationFn:Ke,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 h({queryKey:[`remote`,`connection-info`],queryFn:({signal:e})=>z({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getConnectionInfoQuery`&&e.enabled),refetchInterval:1e4})}testRemoteModeMutation(){return x({mutationFn:B})}getCloudflareManagedStatusQuery(){return h({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 x({mutationFn:Ye,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedCancelMutation(){return x({mutationFn:Xe,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedDisconnectMutation(){return x({mutationFn:Ze,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedLogoutMutation(){return x({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=me({__name:`ConnectionDetails`,props:{currentType:{},currentAddress:{}},setup(t,{expose:n}){let r=t,ee=new Ae,te=o(),{t:i}=e(),{data:a}=ee.apiInfoQuery(),s=ne()?c():void 0,re=p(),l=k(()=>s?.attempts.rounds.value[0]),d=k(()=>s?.target.value?.endpoint.url??i(`components.connection_details.no_target`)),f=k(()=>{let e=s?.target.value?.endpoint;return e?ae(e):i(`components.connection_details.no_target`)}),ie=k(()=>l.value?.attempts.map(e=>({...e,modeLabel:ae({url:e.url,mode:e.mode})}))??[]);function ae(e){return ye(e,re)?i(`components.connection_details.mode_lan`):i(`components.connection_details.mode_wan`)}function oe(e){return e.outcome===`connected`&&e.url===d.value}function m(e){return oe(e)?`bg-green-500`:e.outcome===`failed`?`bg-red-500`:`bg-neutral-400`}function h(e){return e.durationMs===void 0?`…`:e.durationMs>=1e3?`${(e.durationMs/1e3).toFixed(1)} s`:`${e.durationMs} ms`}function _(e){return oe(e)?i(`components.connection_details.outcome_connected`):e.outcome===`connected`?i(`components.connection_details.outcome_reachable`):e.outcome===`superseded`?i(`components.connection_details.outcome_superseded`):e.outcome===`pending`?i(`components.connection_details.outcome_pending`):e.reason?.includes(`timeout`)?i(`components.connection_details.outcome_timeout`):e.reason??i(`components.connection_details.outcome_failed`)}async function se(){let e=[new Date().toISOString(),`camera.ui ${a.value?.version??`?`}`,``,`${f.value}: ${d.value}`,`server sees: ${r.currentType} ${r.currentAddress}`,``];for(let t of ie.value)e.push(`${oe(t)?`+`:`-`} ${t.modeLabel} ${t.url} ${h(t)} ${_(t)}`);if(l.value?.reason&&e.push(``,l.value.reason),await u(e.join(`
1
+ import{Br as e,Ft as t,Gt as n,I as r,K as ee,zt as te}from"./vendor-cameraui-B96_CDGO.js";import{$ as i,An as a,Cr as o,Ir as ne,Mr as s,Nr as c,Tr as re,_t as l,i as u,kr as d,o as f,r as p,tr as ie,tt as ae,vt as oe,wr as m,xr as h}from"./api-CdT8ZD-n.js";import{$t as g,Cn as _,Dn as se,J as ce,Kn as v,Kt as y,Mn as b,Pn as le,Rn as ue,U as x,Xn as de,Yn as S,an as C,b as fe,dn as w,fn as T,gr as pe,hr as E,in as D,mn as me,nr as he,on as O,rn as k,rr as A,sn as j,sr as M,v as N,y as P,yr as F}from"./vendor-nVfLT5jI.js";import{a as ge}from"./intercomService-CT_KVjly.js";import{E as _e,V as I}from"./types-Br6AbfXl.js";import{n as ve,r as ye,t as be}from"./lan-Cj3DpVaf.js";import{K as xe,L as Se,R as Ce,a as we,j as Te,l as Ee,s as De,z as Oe}from"./vendor-primevue-uo78flP9.js";import{t as ke}from"./server-CyCTaiWl.js";import{t as Ae}from"./api-CD4zuPhg.js";import{t as je}from"./information-outline-CdLdxg1d.js";import{t as Me}from"./CuiQRCode-CiWTLo9T.js";var Ne={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function L(e,t){return b(),j(`svg`,Ne,[...t[0]||=[D(`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 Pe=A({name:`material-symbols-light-cloud-off`,render:L}),Fe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ie(e,t){return b(),j(`svg`,Fe,[...t[0]||=[D(`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 Le=A({name:`material-symbols-check`,render:Ie}),R={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Re(e,t){return b(),j(`svg`,R,[...t[0]||=[D(`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 ze=A({name:`boxicons-computer-filled`,render:Re});async function Be({signal:e}){return(await s.get(`/remote`,{signal:e})).data}async function Ve(e){return(await s.patch(`/remote`,e)).data}async function He(e){return(await s.post(`/remote/pair/init`,e?{name:e}:{})).data}async function Ue({name:e}={}){return(await s.post(`/remote/pair/poll`,e?{name:e}:{})).data}async function We(){await s.delete(`/remote/unregister`)}async function Ge({signal:e}){return(await s.get(`/remote/status`,{signal:e})).data}async function Ke(e){await s.patch(`/remote/name`,{name:e})}async function qe({signal:e}){return(await s.get(`/remote/tunnel`,{signal:e})).data}async function z({signal:e}={}){return(await s.get(`/remote/connection-info`,{signal:e})).data}async function B(e){return(await s.post(`/remote/test/${e}`)).data}async function Je({signal:e}={}){return(await s.get(`/remote/cloudflare/managed/status`,{signal:e})).data}async function Ye(e){await s.post(`/remote/cloudflare/managed/connect`,{hostname:e})}async function Xe(){await s.post(`/remote/cloudflare/managed/cancel`)}async function Ze(){await s.post(`/remote/cloudflare/managed/disconnect`)}async function Qe(){await s.post(`/remote/cloudflare/managed/logout`)}var $e=class{_queryClient=ce();t=m.global.t;toast=o();queryActivator=M([{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 h({queryKey:[`remote`],queryFn:({signal:e})=>Be({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRemoteInfoQuery`&&e.enabled),staleTime:1e3})}patchRemoteInfoQuery(){return x({mutationFn:Ve,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 h({queryKey:[`remote`,`status`],queryFn:({signal:e})=>Ge({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRegistrationStatusQuery`&&e.enabled),staleTime:1e3})}pairInitMutation(){return x({mutationFn:He})}pairPollMutation(){return x({mutationFn:Ue,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 x({mutationFn:We,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 h({queryKey:[`remote`,`tunnel`],queryFn:({signal:e})=>qe({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getTunnelStatusQuery`&&e.enabled),refetchInterval:3e4,staleTime:1e4})}updateServerNameQuery(){return x({mutationFn:Ke,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 h({queryKey:[`remote`,`connection-info`],queryFn:({signal:e})=>z({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getConnectionInfoQuery`&&e.enabled),refetchInterval:1e4})}testRemoteModeMutation(){return x({mutationFn:B})}getCloudflareManagedStatusQuery(){return h({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 x({mutationFn:Ye,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedCancelMutation(){return x({mutationFn:Xe,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedDisconnectMutation(){return x({mutationFn:Ze,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedLogoutMutation(){return x({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=me({__name:`ConnectionDetails`,props:{currentType:{},currentAddress:{}},setup(t,{expose:n}){let r=t,ee=new Ae,te=o(),{t:i}=e(),{data:a}=ee.apiInfoQuery(),s=ne()?c():void 0,re=p(),l=k(()=>s?.attempts.rounds.value[0]),d=k(()=>s?.target.value?.endpoint.url??i(`components.connection_details.no_target`)),f=k(()=>{let e=s?.target.value?.endpoint;return e?ae(e):i(`components.connection_details.no_target`)}),ie=k(()=>l.value?.attempts.map(e=>({...e,modeLabel:ae({url:e.url,mode:e.mode})}))??[]);function ae(e){return ye(e,re)?i(`components.connection_details.mode_lan`):i(`components.connection_details.mode_wan`)}function oe(e){return e.outcome===`connected`&&e.url===d.value}function m(e){return oe(e)?`bg-green-500`:e.outcome===`failed`?`bg-red-500`:`bg-neutral-400`}function h(e){return e.durationMs===void 0?`…`:e.durationMs>=1e3?`${(e.durationMs/1e3).toFixed(1)} s`:`${e.durationMs} ms`}function _(e){return oe(e)?i(`components.connection_details.outcome_connected`):e.outcome===`connected`?i(`components.connection_details.outcome_reachable`):e.outcome===`superseded`?i(`components.connection_details.outcome_superseded`):e.outcome===`pending`?i(`components.connection_details.outcome_pending`):e.reason?.includes(`timeout`)?i(`components.connection_details.outcome_timeout`):e.reason??i(`components.connection_details.outcome_failed`)}async function se(){let e=[new Date().toISOString(),`camera.ui ${a.value?.version??`?`}`,``,`${f.value}: ${d.value}`,`server sees: ${r.currentType} ${r.currentAddress}`,``];for(let t of ie.value)e.push(`${oe(t)?`+`:`-`} ${t.modeLabel} ${t.url} ${h(t)} ${_(t)}`);if(l.value?.reason&&e.push(``,l.value.reason),await u(e.join(`
2
2
  `))){te.add({severity:`success`,detail:i(`components.connection_details.copied`),life:2e3});return}return te.add({severity:`error`,detail:i(`components.connection_details.copy_failed`),life:3e3}),null}return n({onConfirm:se}),(e,n)=>{let r=Oe;return b(),j(`div`,et,[D(`div`,tt,[D(`span`,nt,F(e.$t(`components.connection_details.current`)),1),D(`span`,V,F(E(f)),1),T(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint break-all`},{default:S(()=>[w(F(E(d)),1)]),_:1})]),D(`div`,H,[D(`span`,U,F(e.$t(`components.connection_details.server_view`)),1),D(`span`,W,F(t.currentType),1),T(r,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint break-all`},{default:S(()=>[w(F(t.currentAddress),1)]),_:1})]),D(`div`,G,[D(`span`,K,F(e.$t(`components.connection_details.last_attempt`)),1),E(ie).length===0?(b(),j(`p`,q,F(e.$t(`components.connection_details.no_attempts`)),1)):(b(),j(`div`,rt,[(b(!0),j(g,null,le(E(ie),e=>(b(),j(`div`,{key:e.url,class:`flex items-start gap-3`},[D(`span`,{class:pe([`mt-1.5 w-2 h-2 rounded-full shrink-0`,m(e)])},null,2),D(`div`,J,[D(`span`,Y,[w(F(e.modeLabel)+` `,1),n[0]||=D(`span`,{class:`text-muted`},`·`,-1),w(` `+F(h(e))+` `,1),n[1]||=D(`span`,{class:`text-muted`},`·`,-1),w(` `+F(_(e)),1)]),D(`span`,it,F(e.url),1)])]))),128))]))])])}}}),ot=I,st=_e,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=a(me({__name:`SettingsRemote`,setup(a){let ne=new ke,s=new $e,c=ge(),p=i(),m=o(),{t:h}=e(),{endpoint:ce,isOnline:le}=re(),{data:x,isBusy:me}=ne.getServerInfoQuery(),{data:A,isBusy:_e}=s.getRemoteInfoQuery(),{data:I,isBusy:ye}=s.getRegistrationStatusQuery(),{data:Ae,isLoading:Ne}=s.getTunnelStatusQuery(),{data:L}=s.getConnectionInfoQuery(),{mutateAsync:Fe,isPending:Ie}=ne.patchSystemInfoQuery(),{mutateAsync:R,isPending:Re}=s.patchRemoteInfoQuery(),{mutateAsync:Be,isPending:Ve}=s.pairInitMutation(),{mutateAsync:He}=s.pairPollMutation(),{mutateAsync:Ue,isPending:We}=s.unregisterServerQuery(),{mutateAsync:Ge,isPending:Ke}=s.updateServerNameQuery(),{mutateAsync:qe,isPending:z}=s.testRemoteModeMutation(),{data:B}=s.getCloudflareManagedStatusQuery(),{mutateAsync:Je,isPending:Ye}=s.cloudflareManagedConnectMutation(),{mutateAsync:Xe,isPending:Ze}=s.cloudflareManagedCancelMutation(),{mutateAsync:Qe,isPending:et}=s.cloudflareManagedDisconnectMutation(),{mutateAsync:tt,isPending:nt}=s.cloudflareManagedLogoutMutation(),V=M(),H=M(),U=M(``),W=M(``),G=M(`quick`),K=M(``),q=M(``),rt=M(!1),J=M(null),Y=M(``),it=M(null),In=M(2),Ln=M(``),Rn=null,zn=null,X=k(()=>Ie.value||Re.value||me.value||_e.value||ye.value||We.value),Bn=k(()=>!!(H.value?.enabled||H.value?.directEnabled)),Vn=k(()=>A.value?.directOverride??{active:!1,fallback:!1}),Z=k(()=>I.value?.isRegistered??!1),Hn=k(()=>I.value?.needsReauth??!1),Un=k(()=>!X.value),Wn=k(()=>{if(!Un.value)return!1;let e=U.value.trim();return!e||e.length>100?!1:e!==(I.value?.serverName??``)}),Gn=k(()=>{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!==(A.value?.remoteSettings.customDomain.url??``)}if(H.value.directMode===`cloudflare`){let e=A.value?.remoteSettings.cloudflare,t=A.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 ee=n.length>0;return t||e?.mode!==`token`||e?.hostname!==r||ee}return n===`managed`?t||e?.mode!==`managed`||e?.hostname!==r:!1}return H.value.directMode!==A.value?.remoteSettings.directMode}),Kn=k(()=>[{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`)}]),qn=k(()=>Kn.value.find(e=>e.value===H.value?.directMode)?.description??``),Jn=k(()=>[{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`)}]),Yn=k(()=>Jn.value.find(e=>e.value===G.value)?.description??``),Xn=k(()=>{if(G.value===`quick`)return!0;let e=A.value?.remoteSettings.cloudflare;return e?.mode===G.value&&!!e?.hostname}),Q=k(()=>B.value?.state??`idle`),Zn=k(()=>{if(Q.value!==`idle`)return!1;let e=K.value.trim();return!!e&&/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(e)}),Qn=k(()=>{let e=L.value?.currentConnection.type??`lan`;return h(`views.settings.connection_type.${e}`)}),$n=k(()=>{let e=L.value?.currentConnection.type;return e===`external`?ve:e===`local`?ze:be}),er=k(()=>{let e=L.value?.currentConnection.type;return e===`external`?`text-info`:e===`local`?`text-primary`:`text-success`});function tr(){p.openComponentDialog(at,{data:{title:h(`components.connection_details.title`),confirmText:h(`components.connection_details.copy`),cancelText:h(`components.form.button.close`),contentProps:{currentType:Qn,currentAddress:k(()=>L.value?.currentConnection.address??``)}}})}async function nr(){let e=U.value.trim();if(e)try{await Ge(e)}catch{}}function rr(){p.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 Ue()}catch{}}})}function ir(){Rn&&=(clearTimeout(Rn),null),zn&&=(clearInterval(zn),null)}function $(){ir(),J.value=null,Y.value=``,it.value=null,Ln.value=``}function ar(e){let t=Math.max(0,Math.floor(e/1e3));return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}function or(){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=ar(e)};e(),zn=setInterval(e,1e3)}function sr(){Rn&&clearTimeout(Rn),Rn=setTimeout(cr,In.value*1e3)}async function cr(){if(!J.value)return;let e=J.value;try{let t=await He({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)),sr()}catch(t){if(!J.value||J.value!==e)return;c.error(`pair poll failed:`,t),sr()}}async function lr(){$();try{let e=U.value.trim();if(e&&e!==(I.value?.serverName??``))try{await Ge(e)}catch{}let t=await Be(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),or(),sr()}catch(e){m.add({severity:`error`,detail:e,life:3e3})}}function ur(){$()}async function dr(){if(J.value)try{await u(J.value)}catch{}}async function fr(){if(Y.value)try{await u(Y.value)}catch{}}function pr(){Y.value&&window.open(Y.value,`_blank`,`noopener`)}function mr(e){let t=window.location.host===d||!1,n;n=e?`components.dialog.message.confirm_enable_cloud`:t?`components.dialog.message.confirm_disable_cloud_remote`:`components.dialog.message.confirm_disable_cloud_local`,p.openTextDialog({data:{title: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 R(e?{enabled:!0}:{enabled:!1})}catch{H.value&&(H.value.enabled=!e)}},onCancel:()=>{H.value&&(H.value.enabled=!e)}})}function hr(e){R({directEnabled:e}).catch(()=>{H.value&&(H.value.directEnabled=!e)})}function gr(e){H.value&&(H.value.directMode=e)}function _r(e){G.value=e}async function vr(){let e=K.value.trim();if(e)try{await R({directMode:`cloudflare`,cloudflare:{mode:`managed`,hostname:e}}),await Je(e)}catch{}}async function yr(){try{await Xe()}catch{}}async function br(){try{await Qe()}catch{}}async function xr(){try{await tt()}catch{}}async function Sr(e){try{await u(e)}catch{}}function Cr(e){window.open(e,`_blank`,`noopener`)}async function wr(e){try{let t=await qe(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 Tr(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 R(t)}catch{}}async function Er(e){try{await Fe(e)}catch{}}return v(()=>I.value?.serverName,e=>{e&&(U.value=e)},{immediate:!0}),v(Z,e=>{e&&J.value&&$()}),v([le,ce],([e])=>{e&&s.queryClient.refetchQueries({queryKey:[`remote`,`connection-info`],exact:!0})}),v(x,e=>{if(e){let t=f(e);V.value={...t,serverAddresses:(t.serverAddresses||[]).filter(Boolean),localUrl:t.localUrl??``}}},{deep:!0,immediate:!0}),v(A,e=>{if(e){let t=f(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}),se(()=>{ir()}),(e,i)=>{let a=t,o=Oe,ne=je,s=te,c=ee,re=xe,u=r,d=Le,f=Se,p=Ce,m=we,h=Me,se=oe,ce=ie,v=Pe,le=Te,me=De,k=Ee,A=n;return b(),j(`div`,ct,[!E(V)||!E(H)?(b(),j(`div`,lt,[T(a,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(b(),j(`div`,ut,[E(L)?(b(),j(`div`,dt,[D(`span`,ft,F(e.$t(`views.settings.connection_status`)),1),T(c,{class:`cui-card`},{content:S(()=>[D(`div`,pt,[(b(),C(ue(E($n)),{class:pe([`shrink-0 w-6 h-6`,E(er)])},null,8,[`class`])),D(`div`,mt,[D(`span`,ht,F(E(Qn)),1),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:S(()=>[w(F(E(L).currentConnection.address),1)]),_:1})]),de((b(),C(s,{rounded:``,text:``,severity:`secondary`,class:`ml-auto shrink-0`,"aria-label":e.$t(`components.connection_details.title`),onClick:tr},{icon:S(()=>[T(ne,{class:`w-5 h-5`})]),_:1},8,[`aria-label`])),[[A,{value:e.$t(`components.connection_details.title`)},void 0,{left:!0}]])])]),_:1})])):O(``,!0),T(E(fe),{ref:`remoteFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":E(ot),onSubmit:i[18]||=e=>Tr(e)},{default:S(()=>[D(`div`,null,[D(`span`,gt,F(e.$t(`views.settings.cloud`)),1),T(c,{class:`cui-card`},{content:S(()=>[D(`div`,_t,[T(E(P),{"model-value":E(H).enabled,value:!0,"unchecked-value":!1,type:`checkbox`,name:`enabled`,as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:S(({field:t,errors:n})=>[D(`div`,vt,[D(`div`,yt,[D(`label`,bt,F(e.$t(`components.form.label.enabled`)),1),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:S(()=>[w(F(e.$t(`components.form.hint.cloud_access_enabled_info`)),1)]),_:1}),T(y,{name:`fade`},{default:S(()=>[T(E(N),{name:`enabled`,class:`cui-input-switch-error`})]),_:1})]),T(re,_({"model-value":E(H).enabled},t,{invalid:n.length>0,loading:E(X),class:`ml-auto shrink-0`,onValueChange:i[0]||=e=>E(H).enabled=e,"onUpdate:modelValue":i[1]||=e=>mr(e)}),null,16,[`model-value`,`invalid`,`loading`])])]),_:1},8,[`model-value`]),D(`div`,xt,[D(`label`,St,F(e.$t(`views.settings.server_name_label`)),1),T(p,null,{default:S(()=>[T(u,{id:`serverName`,modelValue:E(U),"onUpdate:modelValue":i[2]||=e=>he(U)?U.value=e:null,modelModifiers:{trim:!0},disabled:!E(Un),loading:E(X),type:`text`,maxlength:100},null,8,[`modelValue`,`disabled`,`loading`]),T(f,null,{default:S(()=>[de((b(),C(s,{text:``,severity:`secondary`,loading:E(Ke),disabled:!E(Wn),type:`button`,onClick:nr},{icon:S(()=>[T(d)]),_:1},8,[`loading`,`disabled`])),[[A,{value:e.$t(`components.form.button.save`)}]])]),_:1})]),_:1}),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:S(()=>[w(F(e.$t(`views.settings.server_name_info`)),1)]),_:1})]),D(`div`,Ct,[D(`div`,wt,[D(`span`,Tt,F(e.$t(`views.settings.status`)),1),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:S(()=>[w(F(e.$t(`views.settings.status_info`)),1)]),_:1})]),D(`div`,Et,[E(X)?(b(),C(a,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):E(Hn)?(b(),j(`span`,Dt,F(e.$t(`views.settings.needs_reauth`)),1)):(b(),j(`span`,Ot,F(E(Z)?e.$t(`views.settings.registered`):e.$t(`views.settings.not_registered`)),1))])]),E(Z)?(b(),j(`div`,kt,[D(`div`,At,[D(`span`,jt,F(e.$t(`views.settings.tunnel_status`)),1),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:S(()=>[w(F(e.$t(`views.settings.tunnel_status_info`)),1)]),_:1})]),D(`div`,Mt,[E(Ne)?(b(),C(a,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(b(),C(m,{key:1,severity:E(Ae)?.connected?`success`:`secondary`,value:E(Ae)?.connected?e.$t(`views.settings.tunnel_connected`):e.$t(`views.settings.tunnel_disconnected`)},null,8,[`severity`,`value`]))])])):O(``,!0),T(y,{name:`fade`,mode:`out-in`},{default:S(()=>[E(J)?(b(),j(`div`,Nt,[T(o,{severity:`error`,variant:`simple`,size:`small`,class:`text-primary`},{default:S(()=>[w(F(e.$t(`views.settings.pair_instructions`)),1)]),_:1}),D(`div`,Pt,[D(`div`,Ft,[T(h,{value:E(Y),size:180,"logo-size":36},null,8,[`value`])]),D(`div`,It,[D(`div`,Lt,[D(`label`,Rt,F(e.$t(`views.settings.pair_code`)),1),T(p,null,{default:S(()=>[T(u,{"model-value":E(J),readonly:``,class:`font-mono text-lg text-center tracking-widest`},null,8,[`model-value`]),T(f,null,{default:S(()=>[T(se,{"action-text":e.$t(`components.form.tooltip.copied`),icon:E(l),"button-props":{severity:`secondary`,text:!0},onAction:dr},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:S(()=>[w(F(e.$t(`views.settings.pair_code_hint`)),1)]),_:1})]),D(`div`,zt,[D(`label`,Bt,F(e.$t(`views.settings.pair_url`)),1),T(p,null,{default:S(()=>[T(u,{"model-value":E(Y),readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),T(f,null,{default:S(()=>[T(se,{"action-text":e.$t(`components.form.tooltip.copied`),icon:E(l),"button-props":{severity:`secondary`,text:!0},onAction:fr},null,8,[`action-text`,`icon`])]),_:1}),T(f,null,{default:S(()=>[de((b(),C(s,{type:`button`,severity:`secondary`,text:``,onClick:pr},{icon:S(()=>[T(E(ae))]),_:1})),[[A,{value:e.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),D(`div`,Vt,[T(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),D(`span`,Ht,F(e.$t(`views.settings.pair_waiting`,{remaining:E(Ln)})),1),T(s,{type:`button`,severity:`secondary`,class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:ur},null,8,[`label`])])])])])):O(``,!0)]),_:1}),D(`div`,Ut,[D(`div`,Wt,[de((b(),C(s,{severity:`secondary`,rounded:``,class:`cui-icon-lg text-color`,disabled:!E(Z),onClick:i[3]||=t=>e.$router.absUrl(E(`https://cloud.cameraui.com`),!0)},{icon:S(()=>[E(Z)?(b(),C(ce,{key:0,width:`100%`,height:`100%`})):(b(),C(v,{key:1,width:`100%`,height:`100%`}))]),_:1},8,[`disabled`])),[[A,{value:E(Z)?e.$t(`views.settings.registered`):e.$t(`views.settings.not_registered`)}]])]),i[22]||=D(`div`,{class:`ml-auto`},null,-1),!E(Z)&&!E(J)?(b(),C(s,{key:0,loading:E(Ve),class:`cui-button-medium`,label:e.$t(`components.form.button.register_server`),onClick:lr},null,8,[`loading`,`label`])):O(``,!0),E(Hn)&&!E(J)?(b(),C(s,{key:1,loading:E(Ve),severity:`warn`,class:`cui-button-medium`,label:e.$t(`components.form.button.reconnect_server`),onClick:lr},null,8,[`loading`,`label`])):O(``,!0),E(Z)?(b(),C(s,{key:2,loading:E(X),severity:E(Hn)?`secondary`:void 0,text:E(Hn),class:`cui-button-medium`,label:e.$t(`components.form.button.unregister_server`),onClick:rr},null,8,[`loading`,`severity`,`text`,`label`])):O(``,!0)])])]),_:1})]),D(`div`,null,[D(`span`,Gt,F(e.$t(`views.settings.direct_connection`)),1),T(c,{class:`cui-card`},{content:S(()=>[D(`div`,Kt,[T(E(P),{"model-value":E(H).directEnabled,value:!0,"unchecked-value":!1,type:`checkbox`,name:`directEnabled`,as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:S(({field:t,errors:n})=>[D(`div`,qt,[D(`div`,Jt,[D(`label`,Yt,F(e.$t(`components.form.label.enabled`)),1),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:S(()=>[w(F(e.$t(`views.settings.direct_connection_info`)),1)]),_:1}),T(y,{name:`fade`},{default:S(()=>[T(E(N),{name:`directEnabled`,class:`cui-input-switch-error`})]),_:1})]),T(re,_({"model-value":E(Bn)},t,{invalid:n.length>0,loading:E(X),disabled:E(H).enabled,class:`ml-auto shrink-0`,onValueChange:i[4]||=e=>E(H).directEnabled=e,"onUpdate:modelValue":i[5]||=e=>hr(e)}),null,16,[`model-value`,`invalid`,`loading`,`disabled`])]),T(y,{name:`fade`},{default:S(()=>[E(Vn).active?(b(),C(o,{key:0,variant:`simple`,size:`small`,class:`cui-input-switch-hint text-primary`},{default:S(()=>[w(F(E(Vn).fallback?e.$t(`views.settings.direct_override_fallback`):e.$t(`views.settings.direct_override_active`)),1)]),_:1})):O(``,!0)]),_:1})]),_:1},8,[`model-value`]),E(Bn)?(b(),j(g,{key:0},[D(`div`,Xt,[D(`label`,Zt,F(e.$t(`views.settings.external_url`)),1),T(u,{readonly:``,type:`text`,value:E(L)?.externalUrl??e.$t(`components.form.label.disconnected`)},null,8,[`value`]),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:S(()=>[w(F(e.$t(`views.settings.external_url_info`)),1)]),_:1})]),T(E(P),{"model-value":E(H).directMode,name:`directMode`,as:`div`,class:`flex flex-col field-gap`},{default:S(({errors:t})=>[D(`label`,Qt,F(e.$t(`views.settings.connection_method`)),1),T(le,{"model-value":E(H).directMode,options:E(Kn),"option-label":`label`,"option-value":`value`,invalid:t.length>0,loading:E(X),"onUpdate:modelValue":i[6]||=e=>gr(e)},null,8,[`model-value`,`options`,`invalid`,`loading`]),T(y,{name:`fade`},{default:S(()=>[T(E(N),{name:`directMode`,class:`cui-input-error`})]),_:1}),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:S(()=>[w(F(E(qn)),1)]),_:1})]),_:1},8,[`model-value`]),E(H).directMode===`cloudflare`?(b(),j(`div`,$t,[D(`div`,en,[D(`label`,tn,F(e.$t(`components.form.label.cloudflare_variant`)),1),T(le,{"model-value":E(G),options:E(Jn),"option-label":`label`,"option-value":`value`,loading:E(X),"onUpdate:modelValue":i[7]||=e=>_r(e)},null,8,[`model-value`,`options`,`loading`]),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:S(()=>[w(F(E(Yn)),1)]),_:1})]),E(G)===`quick`?(b(),j(`div`,nn,[T(s,{type:`button`,severity:`secondary`,loading:E(z),class:`cui-button-small`,label:e.$t(`components.form.button.test_connection`),onClick:i[8]||=e=>wr(`cloudflare`)},null,8,[`loading`,`label`])])):E(G)===`token`?(b(),j(g,{key:1},[D(`div`,rn,[D(`label`,an,F(e.$t(`components.form.label.hostname`)),1),T(u,{id:`cloudflareHostname`,modelValue:E(K),"onUpdate:modelValue":i[9]||=e=>he(K)?K.value=e:null,modelModifiers:{trim:!0},loading:E(X),type:`text`,placeholder:`nvr.example.com`,maxlength:253},null,8,[`modelValue`,`loading`]),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:S(()=>[w(F(e.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),D(`div`,on,[D(`label`,sn,F(e.$t(`components.form.label.tunnel_token`)),1),T(me,{id:`cloudflareToken`,modelValue:E(q),"onUpdate:modelValue":i[10]||=e=>he(q)?q.value=e:null,modelModifiers:{trim:!0},loading:E(X),feedback:!1,"toggle-mask":``,fluid:``,placeholder:E(rt)?`••••••••••••`:`eyJ...`},null,8,[`modelValue`,`loading`,`placeholder`]),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:S(()=>[w(F(E(rt)?e.$t(`components.form.hint.cloudflare_token_already_set`):e.$t(`components.form.hint.cloudflare_token_info`)),1)]),_:1})]),D(`div`,cn,[T(s,{type:`button`,severity:`secondary`,loading:E(z),disabled:!E(Xn),class:`cui-button-small`,label:e.$t(`components.form.button.test_connection`),onClick:i[11]||=e=>wr(`cloudflare`)},null,8,[`loading`,`disabled`,`label`])])],64)):E(G)===`managed`?(b(),C(y,{key:2,name:`fade`,mode:`out-in`},{default:S(()=>[(b(),j(`div`,{key:E(Q),class:`flex flex-col gap-4`},[E(Q)===`idle`?(b(),j(g,{key:0},[D(`div`,ln,[D(`label`,un,F(e.$t(`components.form.label.hostname`)),1),T(u,{id:`cloudflareHostnameManaged`,modelValue:E(K),"onUpdate:modelValue":i[12]||=e=>he(K)?K.value=e:null,modelModifiers:{trim:!0},loading:E(X),type:`text`,placeholder:`nvr.example.com`,maxlength:253},null,8,[`modelValue`,`loading`]),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:S(()=>[w(F(e.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),E(B)?.lastError?(b(),C(o,{key:0,severity:`error`,variant:`simple`,size:`small`},{default:S(()=>[w(F(E(B).lastError),1)]),_:1})):O(``,!0),D(`div`,dn,[T(s,{type:`button`,loading:E(Ye),disabled:!E(Zn),class:`cui-button-medium`,label:e.$t(`components.form.button.connect_cloudflare`),onClick:vr},null,8,[`loading`,`disabled`,`label`])])],64)):E(Q)===`awaiting_login`?(b(),j(g,{key:1},[E(B)?.loginUrl?(b(),j(`div`,fn,[D(`div`,pn,[T(h,{value:E(B).loginUrl,size:160,"logo-size":32},null,8,[`value`])]),D(`div`,mn,[T(o,{variant:`simple`,size:`small`,class:`text-primary`},{default:S(()=>[w(F(e.$t(`components.form.hint.cloudflare_managed_awaiting_login`,{hostname:E(K)})),1)]),_:1}),D(`div`,hn,[D(`label`,gn,F(e.$t(`components.form.label.cloudflare_url`)),1),T(p,null,{default:S(()=>[T(u,{"model-value":E(B).loginUrl,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),T(f,null,{default:S(()=>[T(se,{"action-text":e.$t(`components.form.tooltip.copied`),icon:E(l),"button-props":{severity:`secondary`,text:!0},onAction:i[13]||=e=>Sr(E(B).loginUrl)},null,8,[`action-text`,`icon`])]),_:1}),T(f,null,{default:S(()=>[de((b(),C(s,{type:`button`,severity:`secondary`,text:``,onClick:i[14]||=e=>Cr(E(B).loginUrl)},{icon:S(()=>[T(E(ae))]),_:1})),[[A,{value:e.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),D(`div`,_n,[T(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),D(`span`,vn,F(e.$t(`views.settings.cloudflare_login_waiting`)),1),T(s,{type:`button`,severity:`secondary`,loading:E(Ze),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:yr},null,8,[`loading`,`label`])])])])):(b(),j(`div`,yn,[T(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),D(`span`,bn,F(e.$t(`views.settings.cloudflare_login_waiting`)),1),T(s,{type:`button`,severity:`secondary`,loading:E(Ze),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:yr},null,8,[`loading`,`label`])]))],64)):E(Q)===`creating_tunnel`||E(Q)===`setting_dns`?(b(),j(`div`,xn,[T(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),D(`span`,Sn,F(E(Q)===`creating_tunnel`?e.$t(`components.form.hint.cloudflare_managed_creating_tunnel`):e.$t(`components.form.hint.cloudflare_managed_setting_dns`,{hostname:E(K)})),1),T(s,{type:`button`,severity:`secondary`,loading:E(Ze),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:yr},null,8,[`loading`,`label`])])):E(Q)===`running`?(b(),j(g,{key:3},[D(`div`,Cn,[D(`label`,wn,F(e.$t(`components.form.label.hostname`)),1),T(u,{readonly:``,value:`https://${E(B)?.hostname??``}`,type:`text`},null,8,[`value`]),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:S(()=>[w(F(e.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),E(B)?.tunnelId?(b(),j(`div`,Tn,[D(`label`,En,F(e.$t(`components.form.label.tunnel_id`)),1),T(u,{readonly:``,value:E(B).tunnelId,type:`text`},null,8,[`value`]),T(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:S(()=>[w(F(e.$t(`components.form.hint.cloudflare_tunnel_id_info`)),1)]),_:1})])):O(``,!0),D(`div`,Dn,[T(s,{type:`button`,severity:`secondary`,loading:E(z),class:`cui-button-small`,label:e.$t(`components.form.button.test_connection`),onClick:i[15]||=e=>wr(`cloudflare`)},null,8,[`loading`,`label`]),T(s,{type:`button`,severity:`secondary`,loading:E(et),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.disconnect`),onClick:br},null,8,[`loading`,`label`]),T(s,{type:`button`,severity:`danger`,loading:E(nt),class:`cui-button-small`,label:e.$t(`components.form.button.logout`),onClick:xr},null,8,[`loading`,`label`])])],64)):O(``,!0)]))]),_:1})):O(``,!0)])):E(H).directMode===`customDomain`?(b(),j(`div`,On,[T(E(P),{modelValue:E(W),"onUpdate:modelValue":i[16]||=e=>he(W)?W.value=e:null,modelModifiers:{trim:!0},loading:E(X),name:`customDomain.url`,as:`div`,class:`flex flex-col field-gap`},{default:S(({field:t,errors:n})=>[D(`label`,kn,F(e.$t(`components.form.label.url`)),1),T(u,_(t,{invalid:n.length>0,loading:E(X),type:`text`,placeholder:`https://my.example.com`}),null,16,[`invalid`,`loading`]),T(y,{name:`fade`},{default:S(()=>[T(E(N),{name:`customDomain.url`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`loading`]),D(`div`,An,[T(s,{type:`button`,severity:`secondary`,loading:E(z),disabled:!E(W),class:`cui-button-small`,label:e.$t(`components.form.button.test_connection`),onClick:i[17]||=e=>wr(`customDomain`)},null,8,[`loading`,`disabled`,`label`])])])):O(``,!0),T(s,{type:`submit`,loading:E(X),disabled:!E(Gn),class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.save`)},null,8,[`loading`,`disabled`,`label`])],64)):O(``,!0)])]),_:1})])]),_:1},8,[`validation-schema`]),T(E(fe),{ref:`serverFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":E(st),onSubmit:i[21]||=e=>Er(e)},{default:S(()=>[D(`div`,null,[D(`span`,jn,F(e.$t(`views.settings.network`)),1),T(c,{class:`cui-card`},{content:S(()=>[D(`div`,Mn,[D(`span`,Nn,F(e.$t(`views.settings.network_info`)),1),T(E(P),{"model-value":E(V).serverAddresses,name:`serverAddresses`,as:`div`,class:`flex flex-col field-gap`},{default:S(({field:t,errors:n})=>[D(`label`,Pn,F(e.$t(`components.form.label.server_addresses`)),1),T(p,null,{default:S(()=>[T(k,_(t,{"model-value":E(V).serverAddresses,options:E(x)?.availableAddresses||[],invalid:n.length>0,loading:E(X),"max-selected-labels":2,"show-toggle-all":!1,"show-clear":``,"option-label":`address`,"option-value":`address`,type:`text`,display:`chip`,onValueChange:i[19]||=e=>E(V).serverAddresses=e}),null,16,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),T(y,{name:`fade`},{default:S(()=>[T(E(N),{name:`serverAddresses`,class:`cui-input-error`})]),_:1}),n.length?O(``,!0):(b(),C(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:S(()=>[w(F(e.$t(`components.form.hint.server_addresses`)),1)]),_:1}))]),_:1},8,[`model-value`]),T(E(P),{"model-value":E(V).localUrl,name:`localUrl`,as:`div`,class:`flex flex-col field-gap`},{default:S(({field:t,errors:n})=>[D(`label`,Fn,F(e.$t(`components.form.label.local_url`)),1),T(p,null,{default:S(()=>[T(u,_(t,{"model-value":E(V).localUrl,invalid:n.length>0,loading:E(X),placeholder:`https://camera.home.lan`,onValueChange:i[20]||=e=>E(V).localUrl=e}),null,16,[`model-value`,`invalid`,`loading`])]),_:2},1024),T(y,{name:`fade`},{default:S(()=>[T(E(N),{name:`localUrl`,class:`cui-input-error`})]),_:1}),n.length?O(``,!0):(b(),C(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:S(()=>[w(F(e.$t(`components.form.hint.local_url`)),1)]),_:1}))]),_:1},8,[`model-value`]),T(s,{type:`submit`,loading:E(X),class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])]),_:1})])]),_:1},8,[`validation-schema`])]))])}}}),[[`__scopeId`,`data-v-456d32b5`]]);export{In as default};