@camera.ui/server 2.1.2 → 2.1.4

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 (552) hide show
  1. package/dist/interface/assets/{404-pb2fRn1r.js → 404-6v3-U7nj.js} +1 -1
  2. package/dist/interface/assets/{About-eljMnDub.js → About-IMZSnCy7.js} +1 -1
  3. package/dist/interface/assets/{Adminpanel-BtQdiyre.js → Adminpanel-jq9sK1Ey.js} +1 -1
  4. package/dist/interface/assets/{Automation-DOiLJcU_.js → Automation-xs_GEpGx.js} +3 -3
  5. package/dist/interface/assets/{AutomationImport-DflZNRBB.js → AutomationImport-CR4fWWkU.js} +2 -2
  6. package/dist/interface/assets/{AutomationStore-qF_NTNUf.js → AutomationStore-rB-eVXdY.js} +2 -2
  7. package/dist/interface/assets/{AutomationStoreDetail-CUw-jBBR.js → AutomationStoreDetail-DzMg8IOO.js} +2 -2
  8. package/dist/interface/assets/Automations-DWI8Q2TS.js +2 -0
  9. package/dist/interface/assets/Camera-BIppnvyN.js +2 -0
  10. package/dist/interface/assets/Camera-BfMZmurS.css +1 -0
  11. package/dist/interface/assets/{CameraConsole-CEARcJYc.js → CameraConsole-CQLrlDvb.js} +2 -2
  12. package/dist/interface/assets/{Cameras-C0oHuoTR.js → Cameras-kIN6bWi1.js} +2 -2
  13. package/dist/interface/assets/Camview-4jdGGny8.js +1 -0
  14. package/dist/interface/assets/Camview-UCj_OW0s.css +1 -0
  15. package/dist/interface/assets/Config-DxYeS7cY.js +2 -0
  16. package/dist/interface/assets/{ConfigActionCameraControl-De0qb88r.js → ConfigActionCameraControl-Biu5BwNu.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionDelay-nDK4i-AL.js → ConfigActionDelay-CK5j4XLw.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionHttp-DX-vapgv.js → ConfigActionHttp-Dtvi3jZB.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionImageInput-CS7U7BsI.js → ConfigActionImageInput-Dh0A20j9.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionMqtt-82swCx_F.js → ConfigActionMqtt-DwZdnDlb.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionNotification-t-1zN_1y.js → ConfigActionNotification-BVqYxGu8.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionNotificationControl-jz3ez2Uq.js → ConfigActionNotificationControl-BTdnQqox.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionOutput-B6uJheX1.js → ConfigActionOutput-Dv745ppL.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionPlugin-LyOIrZnv.js → ConfigActionPlugin-C9QdPDXC.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionSensor-BTqc1inw.js → ConfigActionSensor-D17wASao.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionSnapshot-DdPy_Ubu.js → ConfigActionSnapshot-CrbMLwuh.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionVariable-Csf7jPOm.js → ConfigActionVariable-C0HobSMN.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionIfElse-BvzwZ70p.js → ConfigConditionIfElse-DsedkGhY.js} +1 -1
  29. package/dist/interface/assets/ConfigConditionSensorState-rRLbA2_b.js +1 -0
  30. package/dist/interface/assets/{ConfigConditionSwitch-DJU2JC-3.js → ConfigConditionSwitch-5nEVS-Oj.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionTime-BxE2CJMA.js → ConfigConditionTime-CieLn-sp.js} +1 -1
  32. package/dist/interface/assets/ConfigSensorValueInput-CRRM_aBz.js +1 -0
  33. package/dist/interface/assets/{ConfigTriggerDetection-DpC8V8K8.js → ConfigTriggerDetection-CMVgejZ3.js} +1 -1
  34. package/dist/interface/assets/{ConfigTriggerGeofence-DTzax7bc.js → ConfigTriggerGeofence-cMhyndiz.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerManual-CtjnnQb1.js → ConfigTriggerManual-Bd9H0AfP.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerMqtt-C7J22EMe.js → ConfigTriggerMqtt-BIv5Ca91.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSchedule-DnYDDz3F.js → ConfigTriggerSchedule-CzWWcnFW.js} +1 -1
  38. package/dist/interface/assets/ConfigTriggerSensor-C5lsyxsh.js +1 -0
  39. package/dist/interface/assets/{ConfigTriggerSystem-D1JulYVd.js → ConfigTriggerSystem-WipCRwTJ.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerWebhook-BrKFtq7o.js → ConfigTriggerWebhook-Bl0O4RBX.js} +1 -1
  41. package/dist/interface/assets/Console-GtK0GVLX.js +1 -0
  42. package/dist/interface/assets/CuiAutomationRunsDialog-CUPBuq_J.js +1 -0
  43. package/dist/interface/assets/CuiBottomSheet-DQNpk0mh.js +1 -0
  44. package/dist/interface/assets/{CuiBottomSheet-C_1_moNo.js → CuiBottomSheet-K19nZQiG.js} +1 -1
  45. package/dist/interface/assets/CuiCameraPipCard-e3_uYELi.js +1 -0
  46. package/dist/interface/assets/CuiCameraRecordings-CPAMltfx.js +1 -0
  47. package/dist/interface/assets/CuiCameraRecordings-fB3X6kad.css +1 -0
  48. package/dist/interface/assets/{CuiCameraShares-XwN5kuC7.js → CuiCameraShares-BTn5ys6X.js} +1 -1
  49. package/dist/interface/assets/{CuiCameraTable-BeeHLaiQ.js → CuiCameraTable-DYvQ-GCz.js} +2 -2
  50. package/dist/interface/assets/{CuiConsole-B7R7U9UZ.js → CuiConsole-C4PawCou.js} +2 -2
  51. package/dist/interface/assets/{CuiDataTable-CQhCu0px.js → CuiDataTable-CORQOWsf.js} +1 -1
  52. package/dist/interface/assets/CuiLightControl-BYkQ8Ue3.js +1 -0
  53. package/dist/interface/assets/CuiList-BgZBIhXP.js +1 -0
  54. package/dist/interface/assets/CuiMarkdownContent-CCdOW_TM.js +1 -0
  55. package/dist/interface/assets/CuiMarkdownContent-ChezqgI1.js +1 -0
  56. package/dist/interface/assets/{CuiPluginCard-rkhmuumi.css → CuiPluginCard-C3ANAXSI.css} +1 -1
  57. package/dist/interface/assets/CuiPluginCard-C91rKOge.js +2 -0
  58. package/dist/interface/assets/{CuiPluginCategoryChip-JkdbQU4X.js → CuiPluginCategoryChip-B_Zy4B42.js} +1 -1
  59. package/dist/interface/assets/{CuiPluginOAuthButton-LYMFfb3v.js → CuiPluginOAuthButton-IXGedGWs.js} +2 -2
  60. package/dist/interface/assets/{CuiPluginTrustBadge-sZF0UKMD.js → CuiPluginTrustBadge-DTfM8Jjo.js} +1 -1
  61. package/dist/interface/assets/{CuiQRCode-B4ysluWR.js → CuiQRCode-D5vwhyuQ.js} +1 -1
  62. package/dist/interface/assets/CuiRecordingsGrid-Sv3uyj9a.css +1 -0
  63. package/dist/interface/assets/CuiRecordingsGrid-yXEzhnc4.js +1 -0
  64. package/dist/interface/assets/CuiSchema-hK_tgUP9.js +1 -0
  65. package/dist/interface/assets/{CuiTopNavbarItem-rMsWME9B.js → CuiTopNavbarItem-DWLnn7Kh.js} +1 -1
  66. package/dist/interface/assets/Faces-DzwTi8P1.js +1 -0
  67. package/dist/interface/assets/FirstSteps-0ojmFGSr.js +1 -0
  68. package/dist/interface/assets/Instances-DvoFBGMx.js +1 -0
  69. package/dist/interface/assets/{Logs-8onUmCYX.js → Logs-Cii4oP8R.js} +2 -2
  70. package/dist/interface/assets/Menu-pvtuFKFM.js +1 -0
  71. package/dist/interface/assets/OAuthDeviceFlow-BZgtsIjF.js +1 -0
  72. package/dist/interface/assets/Plugin-BDqNeTCT.css +1 -0
  73. package/dist/interface/assets/Plugin-BKqpBWJy.js +1 -0
  74. package/dist/interface/assets/{PluginConsole-JFcH_ZW0.js → PluginConsole-BFsCogtB.js} +1 -1
  75. package/dist/interface/assets/PluginDetail-Dl0OM6me.js +2 -0
  76. package/dist/interface/assets/{PluginSchema-Gfn_csMP.js → PluginSchema-D45zblVz.js} +1 -1
  77. package/dist/interface/assets/PluginSearch-DdIcv9xA.js +1 -0
  78. package/dist/interface/assets/{PluginSearch-CLjLT9JT.css → PluginSearch-Dlzc-aJ3.css} +1 -1
  79. package/dist/interface/assets/PluginSearch-DxoQUW8M.js +2 -0
  80. package/dist/interface/assets/{PluginUpdateProgress-DaI9bwSV.js → PluginUpdateProgress-CsRGGH8J.js} +1 -1
  81. package/dist/interface/assets/Plugins-CGj8DSLJ.js +1 -0
  82. package/dist/interface/assets/Recordings-PojBH8L3.js +1 -0
  83. package/dist/interface/assets/SensorEdit-D2ChsNDL.js +1 -0
  84. package/dist/interface/assets/{SensorHistory-2TmYLaL4.js → SensorHistory-B6ZKgot4.js} +1 -1
  85. package/dist/interface/assets/Sensors-B-Qhfr5i.css +1 -0
  86. package/dist/interface/assets/Sensors-DyqWcB-G.js +2 -0
  87. package/dist/interface/assets/{Settings-8yG5ny5r.js → Settings-BFJO08mq.js} +1 -1
  88. package/dist/interface/assets/SettingsAccount-DREZwvce.js +1 -0
  89. package/dist/interface/assets/SettingsAccount-QxmP0dzI.js +1 -0
  90. package/dist/interface/assets/SettingsAppearance-BejKI3_C.js +1 -0
  91. package/dist/interface/assets/{SettingsAppearance-WQtOksbk.js → SettingsAppearance-_zvMUQvn.js} +1 -1
  92. package/dist/interface/assets/SettingsBackup-8HCwVmDA.js +1 -0
  93. package/dist/interface/assets/SettingsList-B4H786Cc.js +1 -0
  94. package/dist/interface/assets/SettingsMqtt-D7ajm1JA.js +1 -0
  95. package/dist/interface/assets/{SettingsNotifications-BVGmt0eF.js → SettingsNotifications-fDDuqryh.js} +2 -2
  96. package/dist/interface/assets/{SettingsPermissions-BPqDIjVt.js → SettingsPermissions-DYirYf1Z.js} +1 -1
  97. package/dist/interface/assets/SettingsRecordings-4NxpAbu5.js +1 -0
  98. package/dist/interface/assets/SettingsRemote-DOQkaNzp.js +1 -0
  99. package/dist/interface/assets/SettingsSystem-CVWkw449.js +2 -0
  100. package/dist/interface/assets/{SettingsUsers-BtT17FNe.js → SettingsUsers-Dc6L7Lt2.js} +1 -1
  101. package/dist/interface/assets/Terminal-BgVnN-2g.js +4 -0
  102. package/dist/interface/assets/{VariableInput-CkXZ00Gc.js → VariableInput-ZYn-Phl4.js} +1 -1
  103. package/dist/interface/assets/{VariableSuggestions-BD1kOG5f.js → VariableSuggestions-BnzdQP6R.js} +1 -1
  104. package/dist/interface/assets/VersionsHandler-BvKvGOlF.js +7 -0
  105. package/dist/interface/assets/{VirtualSensorCreate-DcwJ_w-l.js → VirtualSensorCreate-Dk_YYzxR.js} +1 -1
  106. package/dist/interface/assets/Workers-CjEzGjy8.js +2 -0
  107. package/dist/interface/assets/{account-CY80SLLf.js → account-DuSFtIHf.js} +1 -1
  108. package/dist/interface/assets/{alert-circle-pDGfnZ4K.js → alert-circle-C2AU59aR.js} +1 -1
  109. package/dist/interface/assets/{alert-outline-CeoXcnQc.js → alert-outline-GrD7-zHq.js} +1 -1
  110. package/dist/interface/assets/{api-Mny5Elfn.js → api-36pS71R2.js} +1 -1
  111. package/dist/interface/assets/api-CDvtqu1L.css +2 -0
  112. package/dist/interface/assets/api-DTFsk1zB.js +2 -0
  113. package/dist/interface/assets/{arrow-left-D9jDhvK5.js → arrow-left-C1N6U6kZ.js} +1 -1
  114. package/dist/interface/assets/{arrow-right-outline-DF7tkKYk.js → arrow-right-outline-C24f5mwe.js} +1 -1
  115. package/dist/interface/assets/{auth-9_Jjlsh0.js → auth-DYoO8jpd.js} +1 -1
  116. package/dist/interface/assets/automations-BOvDlvvx.js +1 -0
  117. package/dist/interface/assets/{back-filled-DUUGErMw.js → back-filled-DcBDBvvP.js} +1 -1
  118. package/dist/interface/assets/{bell-ring-DV73JIre.js → bell-ring-DSX81yd4.js} +1 -1
  119. package/dist/interface/assets/cameras.schema-BvnUX82v.js +1 -0
  120. package/dist/interface/assets/{cctv-jy5ROx0o.js → cctv-BA5DvNlE.js} +1 -1
  121. package/dist/interface/assets/{check-circle-FwoylV5-.js → check-circle-Do_mBN_A.js} +1 -1
  122. package/dist/interface/assets/{chevron-down-umZ7i0mG.js → chevron-down-D111daTn.js} +1 -1
  123. package/dist/interface/assets/{clock-outline-CbvOAMhO.js → clock-outline-DF1wLNzs.js} +1 -1
  124. package/dist/interface/assets/{close-CtaDF28n.js → close-BNAWPz0y.js} +1 -1
  125. package/dist/interface/assets/{close-circle-FZ8IxGd4.js → close-circle-zhDWvz98.js} +1 -1
  126. package/dist/interface/assets/{cloud-check-CFSukfAF.js → cloud-check-pUK1Fpt9.js} +1 -1
  127. package/dist/interface/assets/cloudHandoff-DNKMEHOI.js +1 -0
  128. package/dist/interface/assets/{config-BZphegxi.js → config-DTGhJmsj.js} +1 -1
  129. package/dist/interface/assets/{copy-CFA_pDRv.js → copy-BPT84cDt.js} +1 -1
  130. package/dist/interface/assets/{cube-scan-DEuMi23T.js → cube-scan-DOe6W9mW.js} +1 -1
  131. package/dist/interface/assets/{delete-921w_nKy.js → delete-BF6keuqy.js} +1 -1
  132. package/dist/interface/assets/{deployed-code-update-CYS6eKfa.js → deployed-code-update-xHE-blDN.js} +1 -1
  133. package/dist/interface/assets/{dist-BwEXwXSw.js → dist-Yc5s0_JB.js} +1 -1
  134. package/dist/interface/assets/{download-C-LzNRmM.js → download-BCPfm6aN.js} +1 -1
  135. package/dist/interface/assets/esm-B3yVlCMw.js +1 -0
  136. package/dist/interface/assets/esm-BKQ7CQK7.js +1 -0
  137. package/dist/interface/assets/esm-BiSE05P9.js +1 -0
  138. package/dist/interface/assets/esm-BoPthGAl.js +1 -0
  139. package/dist/interface/assets/esm-C2ALrdyx.js +1 -0
  140. package/dist/interface/assets/esm-CKEGzys4.js +1 -0
  141. package/dist/interface/assets/esm-CctiCHtK.js +1 -0
  142. package/dist/interface/assets/esm-Cqq81lnk.js +1 -0
  143. package/dist/interface/assets/esm-CyrLQTu0.js +1 -0
  144. package/dist/interface/assets/esm-D6O-eZYo.js +1 -0
  145. package/dist/interface/assets/esm-DG1f0qwo.js +1 -0
  146. package/dist/interface/assets/esm-DGegIZMF.js +1 -0
  147. package/dist/interface/assets/esm-JGwpHVqo.js +1 -0
  148. package/dist/interface/assets/esm-TRigYTsA.js +1 -0
  149. package/dist/interface/assets/{eye-off-DESV3QdF.js → eye-off-CaRq7Ks2.js} +1 -1
  150. package/dist/interface/assets/{flowSchema-_RiPAgMv.js → flowSchema-zo1H4tnP.js} +1 -1
  151. package/dist/interface/assets/{history-60iCpGvQ.js → history-SuH8IHAj.js} +1 -1
  152. package/dist/interface/assets/{home-w5iY2RUg.js → home-CUykMSBW.js} +1 -1
  153. package/dist/interface/assets/{information-outline-CvBsGtDu.js → information-outline-BQDq8w2t.js} +1 -1
  154. package/dist/interface/assets/{lightbulb-outline-DLrnCPG5.js → lightbulb-outline-ClK17CO6.js} +1 -1
  155. package/dist/interface/assets/main-CcvCf5qj.js +3 -0
  156. package/dist/interface/assets/{main-DJb49Tjp.css → main-XQ5Vahbs.css} +1 -1
  157. package/dist/interface/assets/{microphone-DUVI-s2_.js → microphone-C0weJY9W.js} +1 -1
  158. package/dist/interface/assets/minus-RI3VlDe8.js +1 -0
  159. package/dist/interface/assets/mqtt-CYc8_9pb.js +1 -0
  160. package/dist/interface/assets/native-B01iGjCh.js +1 -0
  161. package/dist/interface/assets/native-D381pxlG.js +1 -0
  162. package/dist/interface/assets/{nodeDefinitions-BecZ8I2Q.js → nodeDefinitions-DQQlFmPN.js} +1 -1
  163. package/dist/interface/assets/{notifications-CK6XQBF-.js → notifications-cHS8-1HN.js} +1 -1
  164. package/dist/interface/assets/{pencil-outline-BrOrbuzc.js → pencil-outline-D7aD4cCo.js} +1 -1
  165. package/dist/interface/assets/plugin-W20ihuog.js +1 -0
  166. package/dist/interface/assets/plugins-CaKErv4E.js +1 -0
  167. package/dist/interface/assets/{plus-Dd-XLT76.js → plus-CA5o30dE.js} +1 -1
  168. package/dist/interface/assets/{plus-CL6KSxf8.js → plus-DHwFyXkb.js} +1 -1
  169. package/dist/interface/assets/{power-lCbm_7y7.js → power-C9UIp2oO.js} +1 -1
  170. package/dist/interface/assets/{ring-resize-CEqUkpxT.js → ring-resize-DkY5EgVl.js} +1 -1
  171. package/dist/interface/assets/{round-alt-arrow-left-bold-CwaLYdW5.js → round-alt-arrow-left-bold-BxX4ufd0.js} +1 -1
  172. package/dist/interface/assets/{round-restart-alt-BFgY3k77.js → round-restart-alt-DPYbDt-x.js} +1 -1
  173. package/dist/interface/assets/{search-CT2BLw7G.js → search-BZkSqZO5.js} +1 -1
  174. package/dist/interface/assets/sensorIcons-DepqfSoA.js +1 -0
  175. package/dist/interface/assets/sensors-CMpbwMO4.js +1 -0
  176. package/dist/interface/assets/{server-BSYs0zoo.js → server-C-WV93FX.js} +1 -1
  177. package/dist/interface/assets/{settings-CzS4dvIO.js → settings-BUEZ5iRE.js} +1 -1
  178. package/dist/interface/assets/{source-branch-C6p1G3a9.js → source-branch-ztDB0e13.js} +1 -1
  179. package/dist/interface/assets/{table-2-line-_VC4NuFA.js → table-2-line-B-z0xvbG.js} +1 -1
  180. package/dist/interface/assets/{theme-Dr_YO8-0.js → theme-BkwBz73p.js} +1 -1
  181. package/dist/interface/assets/{trash-2-DcOYT3oH.js → trash-2-DMMlSPXn.js} +1 -1
  182. package/dist/interface/assets/{trash-can-outline-cphfB8Jh.js → trash-can-outline-DLKniIWM.js} +1 -1
  183. package/dist/interface/assets/{trash-fill-CRBaUdPn.js → trash-fill-DevIK050.js} +1 -1
  184. package/dist/interface/assets/{trash2-CvhB8xOW.js → trash2-BLScx4HX.js} +1 -1
  185. package/dist/interface/assets/{types-3mdj4rRK.js → types-Cko7VOxd.js} +1 -1
  186. package/dist/interface/assets/types-ClTvDPjn.js +1 -0
  187. package/dist/interface/assets/{types-YwmhC3Ej.js → types-vaT6wuY0.js} +1 -1
  188. package/dist/interface/assets/{upload-DeN3O-ua.js → upload-ClkX9wUX.js} +1 -1
  189. package/dist/interface/assets/{useAppVersion-UIA6seZv.js → useAppVersion-V1S18l98.js} +1 -1
  190. package/dist/interface/assets/useBackupRestore-BZ73vHrV.js +1 -0
  191. package/dist/interface/assets/{useCameraOptions-Dx-zyqdH.js → useCameraOptions-o1hYGLbC.js} +1 -1
  192. package/dist/interface/assets/{useElectron-BXVcamD0.js → useElectron-3ZJLtRk3.js} +1 -1
  193. package/dist/interface/assets/{useLogsSocket-DSxzAvQF.js → useLogsSocket-DDgnQ_Dk.js} +1 -1
  194. package/dist/interface/assets/{usePermissions-B_C-zX5H.js → usePermissions-BWlj5SzG.js} +1 -1
  195. package/dist/interface/assets/{usePluginUpdates-QU3U82S_.js → usePluginUpdates-DI1p2NMc.js} +1 -1
  196. package/dist/interface/assets/{useServerRestart-BxDBO7k-.js → useServerRestart-D_ASBw_0.js} +1 -1
  197. package/dist/interface/assets/{useStreamStatus-DY4NM_Ua.js → useStreamStatus-BQJIFFLv.js} +1 -1
  198. package/dist/interface/assets/useUpdateChannel-CyLSUSAY.js +1 -0
  199. package/dist/interface/assets/useUserOptions-Ds1Ybn7N.js +1 -0
  200. package/dist/interface/assets/{variable-oLSsiEtj.js → variable-CCMnQpL2.js} +1 -1
  201. package/dist/interface/assets/{vendor-JQXDMBA-.js → vendor-BaiDFVEr.js} +17 -16
  202. package/dist/interface/assets/vendor-cameraui-CQTIVF_m.js +2326 -0
  203. package/dist/interface/assets/{vendor-capacitor-CDwgXF4b.js → vendor-capacitor-4nn-eF9U.js} +2 -2
  204. package/dist/interface/assets/{vendor-chart-KrNcA52y.js → vendor-chart-DtwjR6yw.js} +1 -1
  205. package/dist/interface/assets/vendor-core-DDtZhtY9.js +1 -0
  206. package/dist/interface/assets/{vendor-dnd-Jch9IvL6.js → vendor-dnd-ChrDrMuz.js} +1 -1
  207. package/dist/interface/assets/{vendor-draggabilly-Cn-knCpG.js → vendor-draggabilly-DSeIE_bQ.js} +1 -1
  208. package/dist/interface/assets/{vendor-markdown-BhFLJolW.js → vendor-markdown--U0EK8HV.js} +1 -1
  209. package/dist/interface/assets/{vendor-primevue-C0acGg0Y.js → vendor-primevue-DE-f4Z5f.js} +76 -76
  210. package/dist/interface/assets/{vendor-vueflow-DQrTmoNS.js → vendor-vueflow-CLJNLJXc.js} +1 -1
  211. package/dist/interface/assets/web-BNRwhIOt.js +1 -0
  212. package/dist/interface/assets/web-BPkOXv4d.js +1 -0
  213. package/dist/interface/assets/web-BZIx_2d3.js +1 -0
  214. package/dist/interface/assets/web-BjKL51lK-BwChM7zd.js +1 -0
  215. package/dist/interface/assets/web-BkmtZjSt.js +1 -0
  216. package/dist/interface/assets/web-C6RgriWz.js +1 -0
  217. package/dist/interface/assets/web-CQFMLa0a.js +1 -0
  218. package/dist/interface/assets/web-CZGnd6VE.js +1 -0
  219. package/dist/interface/assets/web-Cfzay11X.js +1 -0
  220. package/dist/interface/assets/web-DAgBwKL-.js +1 -0
  221. package/dist/interface/assets/web-DgVHh5ek.js +1 -0
  222. package/dist/interface/assets/web-DlSXwZBR.js +1 -0
  223. package/dist/interface/assets/web-eDYxVGH7.js +1 -0
  224. package/dist/interface/assets/web-h4k3EoRQ.js +1 -0
  225. package/dist/interface/assets/{webhook-CMAB4nTl.js → webhook-DQiZUPv8.js} +1 -1
  226. package/dist/interface/assets/workbox-window.prod.es5-CcJiPjAS.js +1 -0
  227. package/dist/interface/assets/{zoom-in-STm8SNt2.js → zoom-in-Du1IB9oA.js} +1 -1
  228. package/dist/interface/index.html +42 -41
  229. package/dist/interface/sw.js +1 -1
  230. package/dist/server/package.json +14 -14
  231. package/dist/server/requirements.txt +2 -2
  232. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +6 -0
  233. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/__init__.py +0 -2
  234. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/events.py +11 -47
  235. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/frames.py +2 -4
  236. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/sensor_rpc.py +6 -0
  237. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +1 -1
  238. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/notifier.py +7 -0
  239. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +18 -1
  240. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/classifier.py +14 -8
  241. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face.py +23 -7
  242. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/license_plate.py +23 -7
  243. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/storage/__init__.py +60 -2
  244. package/dist/server/src/api/controllers/automations.controller.d.ts +3 -1
  245. package/dist/server/src/api/controllers/automations.controller.js +27 -0
  246. package/dist/server/src/api/controllers/automations.controller.js.map +1 -1
  247. package/dist/server/src/api/controllers/cameras.controller.d.ts +3 -2
  248. package/dist/server/src/api/controllers/cameras.controller.js +26 -1
  249. package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
  250. package/dist/server/src/api/controllers/instances.controller.d.ts +2 -1
  251. package/dist/server/src/api/controllers/instances.controller.js +9 -0
  252. package/dist/server/src/api/controllers/instances.controller.js.map +1 -1
  253. package/dist/server/src/api/controllers/nvr.controller.d.ts +0 -3
  254. package/dist/server/src/api/controllers/nvr.controller.js +8 -38
  255. package/dist/server/src/api/controllers/nvr.controller.js.map +1 -1
  256. package/dist/server/src/api/controllers/plugins.controller.d.ts +9 -2
  257. package/dist/server/src/api/controllers/plugins.controller.js +156 -99
  258. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  259. package/dist/server/src/api/controllers/sensors.controller.d.ts +3 -1
  260. package/dist/server/src/api/controllers/sensors.controller.js +31 -0
  261. package/dist/server/src/api/controllers/sensors.controller.js.map +1 -1
  262. package/dist/server/src/api/database/index.d.ts +3 -2
  263. package/dist/server/src/api/database/index.js +12 -2
  264. package/dist/server/src/api/database/index.js.map +1 -1
  265. package/dist/server/src/api/database/migrations/v2-0-50.js +2 -1
  266. package/dist/server/src/api/database/migrations/v2-0-50.js.map +1 -1
  267. package/dist/server/src/api/database/migrations/v2-1-1.d.ts +3 -0
  268. package/dist/server/src/api/database/migrations/v2-1-1.js +35 -0
  269. package/dist/server/src/api/database/migrations/v2-1-1.js.map +1 -0
  270. package/dist/server/src/api/database/migrations/v2-1-4.d.ts +3 -0
  271. package/dist/server/src/api/database/migrations/v2-1-4.js +32 -0
  272. package/dist/server/src/api/database/migrations/v2-1-4.js.map +1 -0
  273. package/dist/server/src/api/database/record-schemas.d.ts +3 -0
  274. package/dist/server/src/api/database/record-schemas.js +1 -0
  275. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  276. package/dist/server/src/api/database/types.d.ts +5 -0
  277. package/dist/server/src/api/routes/automations.routes.js +23 -1
  278. package/dist/server/src/api/routes/automations.routes.js.map +1 -1
  279. package/dist/server/src/api/routes/cameras.routes.js +15 -3
  280. package/dist/server/src/api/routes/cameras.routes.js.map +1 -1
  281. package/dist/server/src/api/routes/instances.routes.js +12 -1
  282. package/dist/server/src/api/routes/instances.routes.js.map +1 -1
  283. package/dist/server/src/api/routes/plugins.routes.js +36 -2
  284. package/dist/server/src/api/routes/plugins.routes.js.map +1 -1
  285. package/dist/server/src/api/routes/sensors.routes.js +23 -1
  286. package/dist/server/src/api/routes/sensors.routes.js.map +1 -1
  287. package/dist/server/src/api/schemas/automations.schema.d.ts +11 -0
  288. package/dist/server/src/api/schemas/automations.schema.js +7 -0
  289. package/dist/server/src/api/schemas/automations.schema.js.map +1 -1
  290. package/dist/server/src/api/schemas/cameras.schema.d.ts +33 -24
  291. package/dist/server/src/api/schemas/cameras.schema.js +18 -5
  292. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  293. package/dist/server/src/api/schemas/config.schema.d.ts +1 -0
  294. package/dist/server/src/api/schemas/config.schema.js +1 -0
  295. package/dist/server/src/api/schemas/config.schema.js.map +1 -1
  296. package/dist/server/src/api/schemas/instances.schema.d.ts +4 -0
  297. package/dist/server/src/api/schemas/instances.schema.js +3 -0
  298. package/dist/server/src/api/schemas/instances.schema.js.map +1 -1
  299. package/dist/server/src/api/schemas/plugins.schema.d.ts +11 -0
  300. package/dist/server/src/api/schemas/plugins.schema.js +6 -0
  301. package/dist/server/src/api/schemas/plugins.schema.js.map +1 -1
  302. package/dist/server/src/api/schemas/sensors.schema.d.ts +11 -0
  303. package/dist/server/src/api/schemas/sensors.schema.js +7 -0
  304. package/dist/server/src/api/schemas/sensors.schema.js.map +1 -1
  305. package/dist/server/src/api/schemas/users.schema.d.ts +12 -0
  306. package/dist/server/src/api/schemas/users.schema.js +4 -0
  307. package/dist/server/src/api/schemas/users.schema.js.map +1 -1
  308. package/dist/server/src/api/services/auth.service.js +28 -23
  309. package/dist/server/src/api/services/auth.service.js.map +1 -1
  310. package/dist/server/src/api/services/automations.service.js +36 -36
  311. package/dist/server/src/api/services/automations.service.js.map +1 -1
  312. package/dist/server/src/api/services/backup.service.js +29 -26
  313. package/dist/server/src/api/services/backup.service.js.map +1 -1
  314. package/dist/server/src/api/services/backupScheduler.service.js +1 -2
  315. package/dist/server/src/api/services/backupScheduler.service.js.map +1 -1
  316. package/dist/server/src/api/services/cameras.service.js +222 -173
  317. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  318. package/dist/server/src/api/services/instances.service.d.ts +7 -0
  319. package/dist/server/src/api/services/instances.service.js +17 -0
  320. package/dist/server/src/api/services/instances.service.js.map +1 -1
  321. package/dist/server/src/api/services/mqtt.service.js +1 -2
  322. package/dist/server/src/api/services/mqtt.service.js.map +1 -1
  323. package/dist/server/src/api/services/notifications.service.d.ts +1 -0
  324. package/dist/server/src/api/services/notifications.service.js +3 -0
  325. package/dist/server/src/api/services/notifications.service.js.map +1 -1
  326. package/dist/server/src/api/services/plugins.service.js +1 -1
  327. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  328. package/dist/server/src/api/services/remote.service.js +26 -25
  329. package/dist/server/src/api/services/remote.service.js.map +1 -1
  330. package/dist/server/src/api/services/sensors.service.d.ts +1 -0
  331. package/dist/server/src/api/services/sensors.service.js +1 -0
  332. package/dist/server/src/api/services/sensors.service.js.map +1 -1
  333. package/dist/server/src/api/services/server.service.js +9 -7
  334. package/dist/server/src/api/services/server.service.js.map +1 -1
  335. package/dist/server/src/api/services/shares.service.js +19 -14
  336. package/dist/server/src/api/services/shares.service.js.map +1 -1
  337. package/dist/server/src/api/services/users.service.js +159 -105
  338. package/dist/server/src/api/services/users.service.js.map +1 -1
  339. package/dist/server/src/api/services/workers.service.d.ts +1 -0
  340. package/dist/server/src/api/services/workers.service.js +55 -45
  341. package/dist/server/src/api/services/workers.service.js.map +1 -1
  342. package/dist/server/src/api/types/index.d.ts +38 -5
  343. package/dist/server/src/api/types/index.js.map +1 -1
  344. package/dist/server/src/api/utils/bulk.d.ts +9 -0
  345. package/dist/server/src/api/utils/bulk.js +27 -0
  346. package/dist/server/src/api/utils/bulk.js.map +1 -0
  347. package/dist/server/src/api/utils/cert.js +8 -0
  348. package/dist/server/src/api/utils/cert.js.map +1 -1
  349. package/dist/server/src/api/websocket/nsp/server.js +1 -1
  350. package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
  351. package/dist/server/src/automations/conditions/sensorState.js +9 -0
  352. package/dist/server/src/automations/conditions/sensorState.js.map +1 -1
  353. package/dist/server/src/camera/controller.d.ts +1 -1
  354. package/dist/server/src/camera/controller.js +12 -11
  355. package/dist/server/src/camera/controller.js.map +1 -1
  356. package/dist/server/src/camera/decoder/child.d.ts +1 -0
  357. package/dist/server/src/camera/decoder/child.js +14 -1
  358. package/dist/server/src/camera/decoder/child.js.map +1 -1
  359. package/dist/server/src/camera/decoder/debug/detection-record.d.ts +42 -0
  360. package/dist/server/src/camera/decoder/debug/detection-record.js +103 -0
  361. package/dist/server/src/camera/decoder/debug/detection-record.js.map +1 -0
  362. package/dist/server/src/camera/decoder/debug/perf-tracker.d.ts +20 -0
  363. package/dist/server/src/camera/decoder/debug/perf-tracker.js +82 -0
  364. package/dist/server/src/camera/decoder/debug/perf-tracker.js.map +1 -0
  365. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +28 -6
  366. package/dist/server/src/camera/decoder/detection-coordinator.js +452 -76
  367. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  368. package/dist/server/src/camera/decoder/detection-pipeline.d.ts +7 -20
  369. package/dist/server/src/camera/decoder/detection-pipeline.js +67 -127
  370. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  371. package/dist/server/src/camera/decoder/event-manager.d.ts +42 -14
  372. package/dist/server/src/camera/decoder/event-manager.js +304 -217
  373. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  374. package/dist/server/src/camera/decoder/event-thumbnailer.d.ts +5 -8
  375. package/dist/server/src/camera/decoder/event-thumbnailer.js +11 -21
  376. package/dist/server/src/camera/decoder/event-thumbnailer.js.map +1 -1
  377. package/dist/server/src/camera/decoder/frame-scaler.d.ts +2 -1
  378. package/dist/server/src/camera/decoder/frame-scaler.js +9 -0
  379. package/dist/server/src/camera/decoder/frame-scaler.js.map +1 -1
  380. package/dist/server/src/camera/decoder/moment-crop.d.ts +30 -0
  381. package/dist/server/src/camera/decoder/moment-crop.js +86 -0
  382. package/dist/server/src/camera/decoder/moment-crop.js.map +1 -0
  383. package/dist/server/src/camera/decoder/nvr-sink.d.ts +38 -0
  384. package/dist/server/src/camera/decoder/nvr-sink.js +36 -0
  385. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -0
  386. package/dist/server/src/camera/decoder/secondary-stage.d.ts +4 -2
  387. package/dist/server/src/camera/decoder/secondary-stage.js +58 -96
  388. package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
  389. package/dist/server/src/camera/decoder/sources/analysis-source.d.ts +10 -0
  390. package/dist/server/src/camera/decoder/sources/analysis-source.js +2 -0
  391. package/dist/server/src/camera/decoder/sources/analysis-source.js.map +1 -0
  392. package/dist/server/src/camera/decoder/sources/{snapshot-source.d.ts → buffered-source.d.ts} +17 -5
  393. package/dist/server/src/camera/decoder/sources/{snapshot-source.js → buffered-source.js} +81 -24
  394. package/dist/server/src/camera/decoder/sources/buffered-source.js.map +1 -0
  395. package/dist/server/src/camera/decoder/sources/frame-source.d.ts +4 -7
  396. package/dist/server/src/camera/decoder/sources/frame-source.js +4 -7
  397. package/dist/server/src/camera/decoder/sources/frame-source.js.map +1 -1
  398. package/dist/server/src/camera/decoder/types.d.ts +1 -0
  399. package/dist/server/src/camera/decoder/types.js.map +1 -1
  400. package/dist/server/src/camera/decoder/worker.js +15 -3
  401. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  402. package/dist/server/src/internal-bus.d.ts +1 -1
  403. package/dist/server/src/internal-bus.js.map +1 -1
  404. package/dist/server/src/main.js +1 -1
  405. package/dist/server/src/main.js.map +1 -1
  406. package/dist/server/src/manager/discoveryManager.js +0 -11
  407. package/dist/server/src/manager/discoveryManager.js.map +1 -1
  408. package/dist/server/src/manager/notificationManager.d.ts +1 -1
  409. package/dist/server/src/manager/notificationManager.js +60 -41
  410. package/dist/server/src/manager/notificationManager.js.map +1 -1
  411. package/dist/server/src/mqtt/bridge.d.ts +2 -0
  412. package/dist/server/src/mqtt/bridge.js +39 -35
  413. package/dist/server/src/mqtt/bridge.js.map +1 -1
  414. package/dist/server/src/plugins/nvr.d.ts +2 -0
  415. package/dist/server/src/plugins/nvr.js +17 -0
  416. package/dist/server/src/plugins/nvr.js.map +1 -0
  417. package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js +1 -1
  418. package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js.map +1 -1
  419. package/dist/server/src/plugins/runtime/python/storage.py +18 -1
  420. package/dist/server/src/plugins/runtime/python/store.py +7 -1
  421. package/dist/server/src/plugins/schema.d.ts +2 -1
  422. package/dist/server/src/plugins/schema.js +66 -6
  423. package/dist/server/src/plugins/schema.js.map +1 -1
  424. package/dist/server/src/plugins/store/storeFile.js +10 -2
  425. package/dist/server/src/plugins/store/storeFile.js.map +1 -1
  426. package/dist/server/src/remote/services/index.js +1 -1
  427. package/dist/server/src/remote/services/index.js.map +1 -1
  428. package/dist/server/src/rpc/interfaces/frameworker.d.ts +1 -0
  429. package/dist/server/src/rpc/interfaces/sensor.d.ts +2 -0
  430. package/dist/server/src/rpc/server.js +2 -0
  431. package/dist/server/src/rpc/server.js.map +1 -1
  432. package/dist/server/src/sensors/registry.js +7 -2
  433. package/dist/server/src/sensors/registry.js.map +1 -1
  434. package/dist/server/src/sensors/sensor.js +13 -1
  435. package/dist/server/src/sensors/sensor.js.map +1 -1
  436. package/dist/server/src/services/config/constants.js +1 -0
  437. package/dist/server/src/services/config/constants.js.map +1 -1
  438. package/dist/server/src/services/config/index.d.ts +5 -2
  439. package/dist/server/src/services/config/index.js +38 -5
  440. package/dist/server/src/services/config/index.js.map +1 -1
  441. package/dist/server/src/services/config/types.d.ts +4 -0
  442. package/dist/server/src/utils/path.d.ts +1 -0
  443. package/dist/server/src/utils/path.js +33 -0
  444. package/dist/server/src/utils/path.js.map +1 -1
  445. package/dist/server/src/workers/capabilities/frame-decoding.js +1 -1
  446. package/dist/server/src/workers/capabilities/frame-decoding.js.map +1 -1
  447. package/package.json +14 -14
  448. package/dist/interface/assets/Automations-DBjwNb3F.js +0 -2
  449. package/dist/interface/assets/Camera-BfvpjkW3.js +0 -2
  450. package/dist/interface/assets/Camera-yUrhUGmO.css +0 -1
  451. package/dist/interface/assets/Camview-DArvg940.js +0 -1
  452. package/dist/interface/assets/Camview-mLCaY0ld.css +0 -1
  453. package/dist/interface/assets/Config-Ccp5Acpv.js +0 -2
  454. package/dist/interface/assets/ConfigConditionSensorState-lI9dzHiT.js +0 -1
  455. package/dist/interface/assets/ConfigSensorValueInput-DW4er753.js +0 -1
  456. package/dist/interface/assets/ConfigTriggerSensor-vhwPNmPj.js +0 -1
  457. package/dist/interface/assets/Console-C6yUdEaM.js +0 -1
  458. package/dist/interface/assets/CuiAutomationRunsDialog-C4i7y1Re.js +0 -1
  459. package/dist/interface/assets/CuiBottomSheet-C2zU_iyj.js +0 -1
  460. package/dist/interface/assets/CuiCameraPipCard-CZ-oDxzy.js +0 -1
  461. package/dist/interface/assets/CuiCameraRecordings-BHj7CUE7.css +0 -1
  462. package/dist/interface/assets/CuiCameraRecordings-mY_giLEi.js +0 -1
  463. package/dist/interface/assets/CuiLightControl-CEpcKss7.js +0 -1
  464. package/dist/interface/assets/CuiMarkdownContent-C2uBepC1.js +0 -1
  465. package/dist/interface/assets/CuiMarkdownContent-QxLR7_qs.js +0 -1
  466. package/dist/interface/assets/CuiPluginCard-1dSDwOCf.js +0 -2
  467. package/dist/interface/assets/CuiRecordingsGrid-COHg3ZCT.css +0 -1
  468. package/dist/interface/assets/CuiRecordingsGrid-CkwE3jcR.js +0 -1
  469. package/dist/interface/assets/CuiSchema-DKATswRc.js +0 -1
  470. package/dist/interface/assets/Faces-BeeZrFV-.js +0 -1
  471. package/dist/interface/assets/FirstSteps-DWT6Tt_T.js +0 -1
  472. package/dist/interface/assets/Instances-CJlFo8ni.js +0 -1
  473. package/dist/interface/assets/Menu-DP0aMICW.js +0 -1
  474. package/dist/interface/assets/OAuthDeviceFlow-CcSkntGk.js +0 -1
  475. package/dist/interface/assets/Plugin-8dbt_8iG.js +0 -1
  476. package/dist/interface/assets/Plugin-BLqyZrJP.css +0 -1
  477. package/dist/interface/assets/PluginDetail-C9dR9jrw.js +0 -2
  478. package/dist/interface/assets/PluginSearch-BVAtgBZs.js +0 -1
  479. package/dist/interface/assets/PluginSearch-HEf_6CrR.js +0 -2
  480. package/dist/interface/assets/Plugins-CQJhji6o.js +0 -1
  481. package/dist/interface/assets/Recordings-AD78njIA.js +0 -1
  482. package/dist/interface/assets/SensorEdit-rC02usEO.js +0 -1
  483. package/dist/interface/assets/Sensors-CFfII3-e.css +0 -1
  484. package/dist/interface/assets/Sensors-Vwr7MYz6.js +0 -2
  485. package/dist/interface/assets/SettingsAccount-BBsivYFf.js +0 -1
  486. package/dist/interface/assets/SettingsAccount-CN9Xcgt-.js +0 -1
  487. package/dist/interface/assets/SettingsAppearance-Qh1cw9iX.js +0 -1
  488. package/dist/interface/assets/SettingsBackup-DNDDU6a1.js +0 -1
  489. package/dist/interface/assets/SettingsList-tFKUMnsB.js +0 -1
  490. package/dist/interface/assets/SettingsMqtt-BYVV1Mew.js +0 -1
  491. package/dist/interface/assets/SettingsRecordings-B4DDJSKe.js +0 -1
  492. package/dist/interface/assets/SettingsRemote-Bib7kXto.js +0 -1
  493. package/dist/interface/assets/SettingsSystem-DIe7CSgH.js +0 -2
  494. package/dist/interface/assets/Terminal-DuJHIlLe.js +0 -4
  495. package/dist/interface/assets/VersionsHandler-D9sDkGXx.js +0 -7
  496. package/dist/interface/assets/Workers-fV_NEZ7U.js +0 -2
  497. package/dist/interface/assets/api-Draww2tC.js +0 -2
  498. package/dist/interface/assets/api-eELh8KCM.css +0 -2
  499. package/dist/interface/assets/automations-BfsdbSPC.js +0 -1
  500. package/dist/interface/assets/cameras.schema-DMY4SYte.js +0 -1
  501. package/dist/interface/assets/chevron-right-AhqYJOFy.js +0 -1
  502. package/dist/interface/assets/cloudHandoff-BQsDy9yp.js +0 -1
  503. package/dist/interface/assets/esm-B1LZs0VG.js +0 -1
  504. package/dist/interface/assets/esm-BB4SBaek.js +0 -1
  505. package/dist/interface/assets/esm-BGA8Ydne.js +0 -1
  506. package/dist/interface/assets/esm-BHI_KH7L.js +0 -1
  507. package/dist/interface/assets/esm-BQ0EuuZe.js +0 -1
  508. package/dist/interface/assets/esm-Bfb-tuKt.js +0 -1
  509. package/dist/interface/assets/esm-BzR_6ma5.js +0 -1
  510. package/dist/interface/assets/esm-CCIqNfsh.js +0 -1
  511. package/dist/interface/assets/esm-CSMN-8o1.js +0 -1
  512. package/dist/interface/assets/esm-CxWbrBxP.js +0 -1
  513. package/dist/interface/assets/esm-DBTrmJK6.js +0 -1
  514. package/dist/interface/assets/esm-DRswZUWf.js +0 -1
  515. package/dist/interface/assets/esm-Dk7gxPHs.js +0 -1
  516. package/dist/interface/assets/esm-P0RCkAtk.js +0 -1
  517. package/dist/interface/assets/main-CV7qCZ5i.js +0 -3
  518. package/dist/interface/assets/mqtt-BPfLOT7L.js +0 -1
  519. package/dist/interface/assets/native-Cr4dkfqy.js +0 -1
  520. package/dist/interface/assets/native-D1Vvlhds.js +0 -1
  521. package/dist/interface/assets/plugin-937qnq7E.js +0 -1
  522. package/dist/interface/assets/plugins-BU7TQh_f.js +0 -1
  523. package/dist/interface/assets/sensorIcons-DtJEfoU4.js +0 -1
  524. package/dist/interface/assets/sensors-DjgfMS8S.js +0 -1
  525. package/dist/interface/assets/types-BGMvANrz.js +0 -1
  526. package/dist/interface/assets/useBackupRestore-E3pVEOvA.js +0 -1
  527. package/dist/interface/assets/useCardSelection-DGPLn1ZH.js +0 -1
  528. package/dist/interface/assets/useUserOptions-BL53bECb.js +0 -1
  529. package/dist/interface/assets/vendor-cameraui-DojVuZ2L.js +0 -2326
  530. package/dist/interface/assets/vendor-core-ZDcIKAw9.js +0 -1
  531. package/dist/interface/assets/web-BQtDHNew.js +0 -1
  532. package/dist/interface/assets/web-BY9kjyTj.js +0 -1
  533. package/dist/interface/assets/web-BcQtDSat.js +0 -1
  534. package/dist/interface/assets/web-BgrRQzLO.js +0 -1
  535. package/dist/interface/assets/web-BjKL51lK-CJYmHsnY.js +0 -1
  536. package/dist/interface/assets/web-BxvsJylk.js +0 -1
  537. package/dist/interface/assets/web-C-3iwDhG.js +0 -1
  538. package/dist/interface/assets/web-C9XOwu07.js +0 -1
  539. package/dist/interface/assets/web-CPCxRDtw.js +0 -1
  540. package/dist/interface/assets/web-D0U5B2i2.js +0 -1
  541. package/dist/interface/assets/web-DtxjXJdS.js +0 -1
  542. package/dist/interface/assets/web-Duf-oV4e.js +0 -1
  543. package/dist/interface/assets/web-jy45nBi_.js +0 -1
  544. package/dist/interface/assets/web-vWx_-Iq5.js +0 -1
  545. package/dist/interface/assets/workbox-window.prod.es5-Dlqax_Po.js +0 -1
  546. package/dist/server/src/api/utils/moveFiles.d.ts +0 -4
  547. package/dist/server/src/api/utils/moveFiles.js +0 -37
  548. package/dist/server/src/api/utils/moveFiles.js.map +0 -1
  549. package/dist/server/src/camera/decoder/sources/snapshot-source.js.map +0 -1
  550. package/dist/server/src/camera/decoder/stationary-suppressor.d.ts +0 -38
  551. package/dist/server/src/camera/decoder/stationary-suppressor.js +0 -308
  552. package/dist/server/src/camera/decoder/stationary-suppressor.js.map +0 -1
@@ -1 +0,0 @@
1
- import{t as e}from"./SettingsAppearance-WQtOksbk.js";export{e as default};
@@ -1 +0,0 @@
1
- import{Mr as e,Mt as t,Ot as n,Rt as r,k as i,z as a}from"./vendor-cameraui-DojVuZ2L.js";import{ar as o,fn as s,nt as c,s as l}from"./api-Draww2tC.js";import{$t as u,Fn as d,Gn as f,Nn as p,Xn as m,Zn as h,an as g,br as _,cn as v,cr as y,dr as b,en as x,fn as S,gr as C,hn as w,in as T,ir as E,jn as D,mr as O,on as k,or as ee,pn as A,sn as j,zn as M}from"./vendor-JQXDMBA-.js";import{K as N,M as P,U as F,_ as I,j as L,z as R}from"./vendor-primevue-C0acGg0Y.js";import{a as z,c as te,i as ne,n as re,o as ie,r as ae,s as oe}from"./useBackupRestore-E3pVEOvA.js";import{t as se}from"./trash-can-outline-cphfB8Jh.js";import{t as B}from"./close-circle-FZ8IxGd4.js";import{t as ce}from"./download-C-LzNRmM.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return p(),v(`svg`,V,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H15v-8h5V8zm-1 7V3.5L18.5 9zm4 12.66V16h5.66v2h-2.24l2.95 2.95l-1.41 1.41L19 19.41v2.24h-2z`},null,-1)]])}var U=E({name:`ic-baseline-file-open`,render:H}),W={class:`flex flex-col gap-6 p-4 items-center justify-center w-full`},G={class:`flex flex-col justify-center items-center`},K={for:`restoreInput`,class:`cursor-pointer text-center`},q=[`accept`],J={key:0,class:`text-red`},Y={class:`mx-2`},X={class:`text-muted`},le=w({__name:`CuiUploadFiles`,props:{multiple:{type:Boolean,default:!1},accept:{},icon:{default:U}},emits:[`files-uploaded`],setup(e,{expose:n,emit:r}){let i=e,a=r,{accept:o,multiple:s}=O(i),c=f(`fileInputRef`),l=b([]),d=y(!1),h=y(!1);function x(e){let t=l.value.findIndex(t=>t.name===e);t>-1&&(l.value.splice(t,1),T())}function S(e){if(d.value=!1,h.value=!1,l.value=[],e.dataTransfer)if(!s.value&&e.dataTransfer.files.length>1)h.value=!0;else{for(let[,t]of Object.entries(e.dataTransfer.files))l.value.push(t);a(`files-uploaded`,l.value)}}function w(e){h.value=!1,l.value=[];let t=e.target;if(t&&t.files)if(!s.value&&t.files?.length>1)h.value=!0;else{for(let[,e]of Object.entries(t.files))l.value.push(e);a(`files-uploaded`,l.value)}}function T(){c.value&&(c.value.value=``)}function E(){l.value=[],T()}return n({reset:E}),(n,r)=>{let i=B,a=t,s=F,f=P;return p(),v(`div`,{class:`file-upload-box`,onDrop:r[0]||=u(e=>S(e),[`prevent`]),onDragover:r[1]||=u(e=>d.value=!0,[`prevent`]),onDragenter:r[2]||=u(e=>d.value=!0,[`prevent`]),onDragleave:r[3]||=u(e=>d.value=!1,[`prevent`])},[g(`div`,W,[g(`div`,G,[(p(),k(M(e.icon),{class:`w-15 h-15`})),g(`label`,K,_(n.$t(`components.upload_files.drop_or_select_file`)),1),g(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:c,type:`file`,class:`hidden`,accept:C(o),onChange:w},null,40,q),C(h)?(p(),v(`p`,J,_(n.$t(`components.upload_files.only_one_file_allowed`)),1)):j(``,!0)]),C(l).length>0?(p(),k(f,{key:0,items:C(l),"item-size":50,"scroll-height":`50px`,"scroll-width":`100%`,class:`w-full`},{item:m(({item:e})=>[(p(),v(`div`,{key:e.name,class:`w-full flex flex-row items-center justify-start p-2`},[A(a,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t=>x(e.name)},{icon:m(()=>[A(i,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`]),g(`b`,Y,_(e.name),1),g(`span`,X,`(`+_(e.size)+` bytes)`,1)])),C(l).length>1?(p(),k(s,{key:0,class:`m-0 py-4`})):j(``,!0)]),_:1},8,[`items`])):j(``,!0)])],32)}}}),ue={class:`flex flex-col w-full gap-6`},de={class:`card-title`},fe={class:`flex flex-col gap-6`},pe={class:`text-sm`},me={class:`card-title`},he={class:`flex flex-col gap-6`},ge={class:`text-sm`},_e={class:`card-title`},ve={key:0,class:`flex w-full items-center justify-center py-6`},ye={key:1,class:`flex flex-col gap-6`},be={class:`flex items-center gap-4`},xe={class:`flex flex-col gap-1 min-w-0`},Se={class:`text-sm`},Ce={class:`text-xs text-muted`},we={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},Te={class:`flex flex-col field-gap`},Ee={for:`backupInterval`,class:`cui-label`},De={class:`flex flex-col field-gap`},Oe={for:`backupTime`,class:`cui-label`},ke={key:0,class:`flex flex-col field-gap`},Ae={for:`backupWeekday`,class:`cui-label`},je={key:1,class:`flex flex-col field-gap`},Me={for:`backupDayOfMonth`,class:`cui-label`},Ne={class:`flex flex-col field-gap`},Pe={for:`backupRetention`,class:`cui-label`},Fe={class:`flex flex-col field-gap`},Ie={for:`backupDestination`,class:`cui-label`},Le={class:`flex items-center gap-2`},Re={key:1,class:`flex flex-col gap-2`},ze={class:`text-sm font-semibold border-b-[1px] border-color pb-2`},Be={class:`flex flex-col min-w-0`},Ve={class:`text-sm truncate`},He={class:`text-xs text-muted`},Z={class:`flex gap-1 ml-auto shrink-0`},Q=w({__name:`SettingsBackup`,setup(u){let w=c(),E=o(),{t:O,locale:M}=e(),P=f(`filesRef`),F=b([]),B=y(!1),V=y(!0),H=y(!1),U=y(!1),W=y(null),G=y([]),K=y(``),q=y(),J=ee({enabled:!1,interval:`daily`,time:`03:00`,weekday:0,dayOfMonth:1,retention:7,destinationPath:``}),Y=T(()=>/^([01]\d|2[0-3]):[0-5]\d$/.test(J.time)),X=T(()=>[`daily`,`weekly`,`monthly`].map(e=>({label:O(`views.settings.backup_interval_${e}`),value:e}))),Q=T(()=>Array.from({length:7},(e,t)=>({label:new Intl.DateTimeFormat(M.value,{weekday:`long`}).format(new Date(Date.UTC(2024,0,7+t,12))),value:t}))),Ue=T(()=>{if(!q.value)return O(`views.settings.backup_last_run`,{info:O(`views.settings.backup_last_run_never`)});let e=new Date(q.value.timestamp).toLocaleString(),t=q.value.status===`success`?`✓`:`✗ ${q.value.message??``}`;return O(`views.settings.backup_last_run`,{info:`${e} ${t}`})});async function We(){B.value=!0;try{let e={};if(localStorage.getItem(`ui`)){let t=localStorage.getItem(`ui`);e.ui=JSON.parse(t)}if(localStorage.getItem(`language`)&&(e.language=localStorage.getItem(`language`)),localStorage.getItem(`theme`)){let t=localStorage.getItem(`theme`);e.theme=JSON.parse(t)}let t=Date.now(),n=await ne(e);await s({blob:new Blob([n]),filename:`cameraui-backup-${t}.tar.gz`,mimeType:`application/gzip`})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}B.value=!1}function Ge(){w.openTextDialog({data:{title:O(`components.dialog.title.confirm`),contentText:O(`components.dialog.message.confirm_restore`),confirmText:O(`components.form.button.restore_and_restart`),loading:B},onConfirm:Ke})}async function Ke(){let e=F.value[0];e&&(B.value=!0,await re().run(e),P.value?.reset(),B.value=!1)}function qe(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`,`TB`],n=e,r=-1;do n/=1024,r++;while(n>=1024&&r<t.length-1);return`${n.toFixed(1)} ${t[r]}`}async function $(){try{let e=await ie(),{lastRun:t,...n}=e.settings;Object.assign(J,n),q.value=t,G.value=e.backups,K.value=e.defaultDestination}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{V.value=!1}}async function Je(){if(Y.value){H.value=!0;try{let e=await oe({...J});q.value=e.lastRun,E.add({severity:`success`,detail:O(`components.toast.backup_scheduler_saved`),life:3e3})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{H.value=!1}}}async function Ye(){U.value=!0;try{let e=await te();q.value=e,E.add({severity:`success`,detail:O(`components.toast.backup_created`),life:3e3})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{U.value=!1,await $()}}async function Xe(e){W.value=e.filename;try{let t=await z(e.filename);await s({blob:new Blob([t]),filename:e.filename,mimeType:`application/gzip`})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{W.value=null}}function Ze(e){w.openTextDialog({data:{title:O(`components.dialog.title.confirm`),contentText:O(`components.dialog.message.confirm_delete_backup`,{filename:e.filename}),confirmText:O(`components.form.button.remove`)},onConfirm:async()=>{try{await ae(e.filename),E.add({severity:`success`,detail:O(`components.toast.backup_deleted`),life:3e3}),await $()}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}}})}return D($),(e,o)=>{let s=t,c=a,l=le,u=n,f=N,y=L,b=i,w=I,T=R,E=ce,D=se,O=r;return p(),v(`div`,null,[g(`div`,ue,[g(`div`,null,[g(`span`,de,_(e.$t(`views.settings.create_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[g(`div`,fe,[g(`span`,pe,_(e.$t(`views.settings.create_backup_info`)),1),A(s,{loading:C(B),class:`ml-auto cui-button-medium`,label:e.$t(`components.form.button.download_backup_archive`),onClick:We},null,8,[`loading`,`label`])])]),_:1})]),g(`div`,null,[g(`span`,me,_(e.$t(`views.settings.restore_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[g(`div`,he,[g(`span`,ge,_(e.$t(`views.settings.restore_backup_info`)),1),A(l,{ref_key:`filesRef`,ref:P,accept:`application/gzip, .tar, .tar.gz`,onFilesUploaded:o[0]||=e=>F.value=e},null,512),A(s,{loading:C(B),disabled:!C(F).length,class:`ml-auto cui-button-medium`,label:e.$t(`components.form.button.restore_backup_archive`),onClick:Ge},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),g(`div`,null,[g(`span`,_e,_(e.$t(`views.settings.scheduled_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[C(V)?(p(),v(`div`,ve,[A(u,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(p(),v(`div`,ye,[g(`div`,be,[g(`div`,xe,[g(`span`,Se,_(e.$t(`views.settings.scheduled_backup_info`)),1),g(`span`,Ce,_(C(Ue)),1)]),A(f,{modelValue:C(J).enabled,"onUpdate:modelValue":o[1]||=e=>C(J).enabled=e,disabled:C(H),class:`ml-auto shrink-0`},null,8,[`modelValue`,`disabled`])]),C(J).enabled?(p(),v(x,{key:0},[g(`div`,we,[g(`div`,Te,[g(`label`,Ee,_(e.$t(`views.settings.backup_interval`)),1),A(y,{modelValue:C(J).interval,"onUpdate:modelValue":o[2]||=e=>C(J).interval=e,"input-id":`backupInterval`,options:C(X),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])]),g(`div`,De,[g(`label`,Oe,_(e.$t(`views.settings.backup_time`)),1),A(b,{id:`backupTime`,modelValue:C(J).time,"onUpdate:modelValue":o[3]||=e=>C(J).time=e,placeholder:`03:00`,disabled:C(H),invalid:!C(Y)},null,8,[`modelValue`,`disabled`,`invalid`])]),C(J).interval===`weekly`?(p(),v(`div`,ke,[g(`label`,Ae,_(e.$t(`views.settings.backup_weekday`)),1),A(y,{modelValue:C(J).weekday,"onUpdate:modelValue":o[4]||=e=>C(J).weekday=e,"input-id":`backupWeekday`,options:C(Q),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])])):j(``,!0),C(J).interval===`monthly`?(p(),v(`div`,je,[g(`label`,Me,_(e.$t(`views.settings.backup_day_of_month`)),1),A(w,{modelValue:C(J).dayOfMonth,"onUpdate:modelValue":o[5]||=e=>C(J).dayOfMonth=e,"input-id":`backupDayOfMonth`,min:1,max:28,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`])])):j(``,!0),g(`div`,Ne,[g(`label`,Pe,_(e.$t(`views.settings.backup_retention`)),1),A(w,{modelValue:C(J).retention,"onUpdate:modelValue":o[6]||=e=>C(J).retention=e,"input-id":`backupRetention`,min:1,max:60,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`]),A(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[S(_(e.$t(`views.settings.backup_retention_hint`)),1)]),_:1})])]),g(`div`,Fe,[g(`label`,Ie,_(e.$t(`views.settings.backup_destination`)),1),A(b,{id:`backupDestination`,modelValue:C(J).destinationPath,"onUpdate:modelValue":o[7]||=e=>C(J).destinationPath=e,placeholder:C(K),disabled:C(H)},null,8,[`modelValue`,`placeholder`,`disabled`]),A(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[S(_(e.$t(`views.settings.backup_destination_hint`)),1)]),_:1})])],64)):j(``,!0),g(`div`,Le,[A(s,{severity:`secondary`,outlined:``,loading:C(U),disabled:C(H),class:`ml-auto cui-button-medium`,label:e.$t(`components.form.button.run_now`),onClick:Ye},null,8,[`loading`,`disabled`,`label`]),A(s,{loading:C(H),disabled:C(U)||!C(Y),class:`cui-button-medium`,label:e.$t(`components.form.button.save`),onClick:Je},null,8,[`loading`,`disabled`,`label`])]),C(G).length?(p(),v(`div`,Re,[g(`span`,ze,_(e.$t(`views.settings.backup_existing`)),1),(p(!0),v(x,null,d(C(G),t=>(p(),v(`div`,{key:t.filename,class:`flex items-center gap-3 py-1 min-w-0`},[g(`div`,Be,[g(`span`,Ve,_(t.filename),1),g(`span`,He,_(new Date(t.timestamp).toLocaleString())+` · `+_(qe(t.size)),1)]),g(`div`,Z,[h((p(),k(s,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,disabled:C(W)===t.filename,onClick:e=>Xe(t)},{icon:m(()=>[A(E,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[O,{value:e.$t(`components.form.button.download`)},void 0,{top:!0}]]),h((p(),k(s,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md`,onClick:e=>Ze(t)},{icon:m(()=>[A(D,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[O,{value:e.$t(`components.form.button.remove`)},void 0,{top:!0}]])])]))),128))])):j(``,!0)]))]),_:1})])])])}}});export{Q as default};
@@ -1 +0,0 @@
1
- import{Mr as e}from"./vendor-cameraui-DojVuZ2L.js";import{b as t,on as n,rn as r}from"./api-Draww2tC.js";import{Fn as i,Nn as a,Xn as o,br as s,cn as c,en as l,fn as u,gr as d,hn as f,in as p,on as m,pn as h,zn as g}from"./vendor-JQXDMBA-.js";import{n as _,t as v}from"./chevron-right-AhqYJOFy.js";var y=f({__name:`SettingsList`,setup(f){let{t:y}=e(),b=p(()=>t.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&n(e)).map(e=>({to:`/settings/${e.path}`,label:y(`navigation.${e.meta.name.toLowerCase()}`),icon:e.meta.settingsBar.icon.default})));return(e,t)=>{let n=v,f=r,p=_;return a(),c(`div`,null,[h(p,{size:`large`,dividers:``,class:`!h-auto`},{default:o(()=>[(a(!0),c(l,null,i(d(b),e=>(a(),m(f,{key:e.to,to:e.to},{prepend:o(()=>[(a(),m(g(e.icon),{class:`w-5 h-5 text-muted`}))]),append:o(()=>[h(n,{class:`w-5 h-5 text-muted`})]),default:o(()=>[u(` `+s(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:1})])}}});export{y as default};
@@ -1 +0,0 @@
1
- import{Mr as e,Mt as t,Ot as n,k as ee,z as te}from"./vendor-cameraui-DojVuZ2L.js";import{Zn as r,ar as i,dt as ne,i as a,o,ut as s}from"./api-Draww2tC.js";import{Nn as c,Xn as l,an as u,b as re,br as d,cn as f,cr as p,en as m,fn as h,gr as g,hn as _,in as v,on as y,pn as b,qn as x,qt as S,rr as ie,sn as C,v as w,wn as T,y as E}from"./vendor-JQXDMBA-.js";import{q as D}from"./types-BGMvANrz.js";import{K as ae,L as oe,R as se,_ as ce,a as le,i as ue,j as de,s as fe,z as pe}from"./vendor-primevue-C0acGg0Y.js";import{t as O}from"./mqtt-BPfLOT7L.js";var me=D,k={class:`w-full h-full`},A={key:0,class:`w-full h-full flex items-center justify-center`},j={key:1,class:`flex flex-col w-full gap-6`},M={class:`card-title`},N={class:`flex items-center gap-4`},P={class:`flex flex-col field-switch-gap min-w-0`},F={class:`text-sm font-bold text-color`},I={class:`card-title`},L={class:`flex flex-col gap-6`},R={class:`flex items-center gap-4 cui-toggle-switch`},z={class:`flex flex-col field-switch-gap`},he={for:`enabled`,class:`cui-label-switch`},ge={class:`flex flex-col field-gap`},_e={for:`mode`,class:`cui-label`},ve={class:`flex flex-col sm:flex-row gap-6`},ye={for:`host`,class:`cui-label`},B={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},be={for:`port`,class:`cui-label`},xe={class:`flex flex-col field-gap`},Se={for:`protocol`,class:`cui-label`},Ce={class:`flex flex-col sm:flex-row gap-6`},we={class:`flex flex-col field-gap flex-1 min-w-0`},Te={for:`username`,class:`cui-label`},Ee={class:`flex flex-col field-gap flex-1 min-w-0`},De={for:`password`,class:`cui-label`},Oe={class:`flex flex-col field-gap`},ke={for:`brokerAddress`,class:`cui-label`},Ae={class:`flex flex-col sm:flex-row gap-6`},je={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},Me={for:`brokerPort`,class:`cui-label`},Ne={class:`flex flex-col field-gap flex-1 min-w-0`},Pe={for:`brokerUsername`,class:`cui-label`},Fe={class:`flex flex-col field-gap flex-1 min-w-0`},Ie={for:`brokerPassword`,class:`cui-label`},Le={class:`flex flex-col sm:flex-row gap-6`},Re={for:`clientId`,class:`cui-label`},ze={for:`topicPrefix`,class:`cui-label`},Be={class:`flex items-center gap-4 cui-toggle-switch`},Ve={class:`flex flex-col field-switch-gap`},He={for:`rejectUnauthorized`,class:`cui-label-switch`},Ue={class:`flex flex-col field-gap`},We={for:`tlsCa`,class:`cui-label`},Ge={class:`flex flex-col field-gap`},Ke={for:`tlsCert`,class:`cui-label`},qe={class:`flex flex-col field-gap`},Je={for:`tlsKey`,class:`cui-label`},Ye={class:`flex items-center gap-4 cui-toggle-switch`},Xe={class:`flex flex-col field-switch-gap`},Ze={for:`haDiscovery`,class:`cui-label-switch`},Qe={for:`haDiscovery.prefix`,class:`cui-label`},$e={class:`flex items-center gap-3`},V=_({__name:`SettingsMqtt`,setup(_){let D=new O,V=i(),{t:H}=e(),{data:U}=D.getMqttInfoQuery(),W=D.patchMqttInfoMutation(),G=D.testMqttConnectionMutation(),K=r(`/server`),et=[{label:`mqtt:// (TCP)`,value:`mqtt`},{label:`mqtts:// (TLS)`,value:`mqtts`}],tt=[{label:H(`views.settings.mqtt_mode_external`),value:`external`},{label:H(`views.settings.mqtt_mode_embedded`),value:`embedded`}],q=p(null),J=p(``),Y=p(null),X=v(()=>U.value?.passwordSet??!1),Z=v(()=>Y.value??U.value?.status??null),nt=v(()=>{switch(Z.value?.state){case`connected`:return`success`;case`connecting`:case`reconnecting`:return`warn`;case`error`:return`danger`;default:return`secondary`}}),rt=v(()=>{let e=Z.value?.state??`disabled`;return H(`views.settings.mqtt_state_${e}`)}),it=v(()=>Z.value?.lastError?Z.value.lastError:Z.value?.broker?.running?H(`views.settings.mqtt_broker_running`,{port:Z.value.broker.port}):H(`views.settings.mqtt_status_info`)),Q=v(()=>`mqtt://${window.location.hostname}:${q.value?.broker.port??1883}`);function $(){let e=o(q.value),t={enabled:e.enabled,mode:e.mode,broker:{port:e.broker.port,username:e.broker.username?.trim()?e.broker.username.trim():null,password:e.broker.password?.trim()?e.broker.password:null},host:e.host?.trim()?e.host.trim():null,port:e.port,protocol:e.protocol,username:e.username?.trim()?e.username.trim():null,clientId:e.clientId,topicPrefix:e.topicPrefix,tls:{rejectUnauthorized:e.tls.rejectUnauthorized,ca:e.tls.ca?.trim()?e.tls.ca:null,cert:e.tls.cert?.trim()?e.tls.cert:null,key:e.tls.key?.trim()?e.tls.key:null},haDiscovery:{enabled:e.haDiscovery.enabled,prefix:e.haDiscovery.prefix}};return J.value&&(t.password=J.value),t}async function at(){q.value&&(await W.mutateAsync($()),J.value=``)}async function ot(){if(!q.value)return;let e=await G.mutateAsync($());e.ok?V.add({severity:`success`,detail:H(`components.toast.mqtt_test_success`),life:3e3}):V.add({severity:`error`,detail:H(`components.toast.mqtt_test_failed`,{message:e.message??``}),life:5e3})}return x(U,e=>{e&&!q.value&&(q.value=o(e.settings))},{immediate:!0}),K.on(`mqtt-status`,e=>{Y.value=e}),K.onReady(async()=>{try{let e=await K.request(`get-mqtt-status`);e&&(Y.value=e)}catch{}}),(e,r)=>{let i=n,o=pe,p=le,_=te,v=ae,x=de,D=ee,O=ce,V=fe,H=ne,U=oe,K=se,Y=ue,Z=t;return c(),f(`div`,k,[g(q)?(c(),f(`div`,j,[u(`div`,null,[u(`span`,M,d(e.$t(`views.settings.status`)),1),b(_,{class:`cui-card`},{content:l(()=>[u(`div`,N,[u(`div`,P,[u(`span`,F,d(e.$t(`views.settings.mqtt_broker`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:l(()=>[h(d(g(it)),1)]),_:1})]),b(p,{class:`ml-auto shrink-0`,severity:g(nt),value:g(rt)},null,8,[`severity`,`value`])])]),_:1})]),b(g(re),{class:`flex flex-col w-full gap-6`,"validation-schema":g(me),onSubmit:at},{default:l(()=>[u(`div`,null,[u(`span`,I,d(e.$t(`views.settings.mqtt_broker`)),1),b(_,{class:`cui-card`},{content:l(()=>[u(`div`,L,[u(`div`,R,[u(`div`,z,[u(`label`,he,d(e.$t(`components.form.label.enabled`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_enabled_info`)),1)]),_:1})]),b(v,{modelValue:g(q).enabled,"onUpdate:modelValue":r[0]||=e=>g(q).enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),u(`div`,ge,[u(`label`,_e,d(e.$t(`views.settings.mqtt_mode_label`)),1),b(x,{modelValue:g(q).mode,"onUpdate:modelValue":r[1]||=e=>g(q).mode=e,options:tt,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`]),g(q).mode===`embedded`?(c(),y(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_mode_embedded_info`)),1)]),_:1})):C(``,!0)]),g(q).mode===`external`?(c(),f(m,{key:0},[u(`div`,ve,[b(g(E),{modelValue:g(q).host,"onUpdate:modelValue":r[2]||=e=>g(q).host=e,modelModifiers:{trim:!0},name:`host`,as:`div`,class:`flex flex-col field-gap flex-1 min-w-0`},{default:l(({field:t,errors:n})=>[u(`label`,ye,d(e.$t(`views.settings.mqtt_host_label`)),1),b(D,T(t,{invalid:n.length>0,type:`text`,placeholder:`192.168.1.10`,class:`w-full`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`host`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),u(`div`,B,[u(`label`,be,d(e.$t(`views.settings.mqtt_port_label`)),1),b(O,{modelValue:g(q).port,"onUpdate:modelValue":r[3]||=e=>g(q).port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])])]),u(`div`,xe,[u(`label`,Se,d(e.$t(`views.settings.mqtt_protocol_label`)),1),b(x,{modelValue:g(q).protocol,"onUpdate:modelValue":r[4]||=e=>g(q).protocol=e,options:et,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`])]),u(`div`,Ce,[u(`div`,we,[u(`label`,Te,d(e.$t(`views.settings.mqtt_username_label`)),1),b(D,{modelValue:g(q).username,"onUpdate:modelValue":r[5]||=e=>g(q).username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),u(`div`,Ee,[u(`label`,De,d(e.$t(`views.settings.mqtt_password_label`)),1),b(V,{modelValue:g(J),"onUpdate:modelValue":r[6]||=e=>ie(J)?J.value=e:null,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:g(X)?`••••••••`:``},null,8,[`modelValue`,`placeholder`]),g(X)?(c(),y(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_password_keep_hint`)),1)]),_:1})):C(``,!0)])])],64)):(c(),f(m,{key:1},[u(`div`,Oe,[u(`label`,ke,d(e.$t(`views.settings.mqtt_broker_address`)),1),b(K,null,{default:l(()=>[b(D,{"model-value":g(Q),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),b(U,null,{default:l(()=>[b(H,{"action-text":e.$t(`components.form.tooltip.copied`),icon:g(s),"button-props":{severity:`secondary`,text:!0},onAction:r[7]||=e=>g(a)(g(Q))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_broker_address_hint`)),1)]),_:1})]),u(`div`,Ae,[u(`div`,je,[u(`label`,Me,d(e.$t(`views.settings.mqtt_port_label`)),1),b(O,{modelValue:g(q).broker.port,"onUpdate:modelValue":r[8]||=e=>g(q).broker.port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])]),u(`div`,Ne,[u(`label`,Pe,d(e.$t(`views.settings.mqtt_username_label`)),1),b(D,{modelValue:g(q).broker.username,"onUpdate:modelValue":r[9]||=e=>g(q).broker.username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),u(`div`,Fe,[u(`label`,Ie,d(e.$t(`views.settings.mqtt_password_label`)),1),b(K,null,{default:l(()=>[b(V,{modelValue:g(q).broker.password,"onUpdate:modelValue":r[10]||=e=>g(q).broker.password=e,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`off`},null,8,[`modelValue`]),b(U,null,{default:l(()=>[b(H,{"action-text":e.$t(`components.form.tooltip.copied`),icon:g(s),"button-props":{severity:`secondary`,text:!0},onAction:r[11]||=e=>g(a)(g(q).broker.password??``)},null,8,[`action-text`,`icon`])]),_:1})]),_:1})])])],64)),u(`div`,Le,[b(g(E),{modelValue:g(q).clientId,"onUpdate:modelValue":r[12]||=e=>g(q).clientId=e,modelModifiers:{trim:!0},name:`clientId`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:l(({field:t,errors:n})=>[u(`label`,Re,d(e.$t(`views.settings.mqtt_client_id_label`)),1),b(D,T(t,{invalid:n.length>0,type:`text`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`clientId`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),b(g(E),{modelValue:g(q).topicPrefix,"onUpdate:modelValue":r[13]||=e=>g(q).topicPrefix=e,modelModifiers:{trim:!0},name:`topicPrefix`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:l(({field:t,errors:n})=>[u(`label`,ze,d(e.$t(`views.settings.mqtt_topic_prefix_label`)),1),b(D,T(t,{invalid:n.length>0,type:`text`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`topicPrefix`,class:`cui-input-error`})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_topic_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])]),g(q).mode===`external`&&g(q).protocol===`mqtts`?(c(),f(m,{key:2},[u(`div`,Be,[u(`div`,Ve,[u(`label`,He,d(e.$t(`views.settings.mqtt_tls_reject_unauthorized`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_tls_reject_unauthorized_info`)),1)]),_:1})]),b(v,{modelValue:g(q).tls.rejectUnauthorized,"onUpdate:modelValue":r[14]||=e=>g(q).tls.rejectUnauthorized=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),u(`div`,Ue,[u(`label`,We,d(e.$t(`views.settings.mqtt_tls_ca_label`)),1),b(Y,{modelValue:g(q).tls.ca,"onUpdate:modelValue":r[15]||=e=>g(q).tls.ca=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),u(`div`,Ge,[u(`label`,Ke,d(e.$t(`views.settings.mqtt_tls_cert_label`)),1),b(Y,{modelValue:g(q).tls.cert,"onUpdate:modelValue":r[16]||=e=>g(q).tls.cert=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),u(`div`,qe,[u(`label`,Je,d(e.$t(`views.settings.mqtt_tls_key_label`)),1),b(Y,{modelValue:g(q).tls.key,"onUpdate:modelValue":r[17]||=e=>g(q).tls.key=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])])],64)):C(``,!0),u(`div`,Ye,[u(`div`,Xe,[u(`label`,Ze,d(e.$t(`views.settings.mqtt_ha_discovery`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_ha_discovery_info`)),1)]),_:1})]),b(v,{modelValue:g(q).haDiscovery.enabled,"onUpdate:modelValue":r[18]||=e=>g(q).haDiscovery.enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),g(q).haDiscovery.enabled?(c(),y(g(E),{key:3,modelValue:g(q).haDiscovery.prefix,"onUpdate:modelValue":r[19]||=e=>g(q).haDiscovery.prefix=e,modelModifiers:{trim:!0},name:`haDiscovery.prefix`,as:`div`,class:`flex flex-col field-gap`},{default:l(({field:t,errors:n})=>[u(`label`,Qe,d(e.$t(`views.settings.mqtt_ha_prefix_label`)),1),b(D,T(t,{invalid:n.length>0,type:`text`,placeholder:`homeassistant`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`haDiscovery.prefix`,class:`cui-input-error`})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_ha_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])):C(``,!0),u(`div`,$e,[b(Z,{type:`button`,severity:`secondary`,loading:g(G).isPending.value,disabled:g(q).mode===`external`&&!g(q).host,class:`cui-button-medium`,label:e.$t(`views.settings.mqtt_test`),onClick:ot},null,8,[`loading`,`disabled`,`label`]),b(Z,{type:`submit`,loading:g(W).isPending.value,class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])])]),_:1})])]),_:1},8,[`validation-schema`])])):(c(),f(`div`,A,[b(i,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{V as default};
@@ -1 +0,0 @@
1
- import{Mr as e,Ot as t,Pt as n,Rt as r,St as ee,h as i,vt as a,z as te}from"./vendor-cameraui-DojVuZ2L.js";import{Rt as o,ar as s,ft as c}from"./api-Draww2tC.js";import{Nn as l,Xn as u,Zn as ne,an as d,br as f,cn as p,fn as m,gr as h,hn as g,in as _,on as v,pn as y,qn as b,sn as x,yr as re}from"./vendor-JQXDMBA-.js";import{S as ie,T as ae}from"./vendor-primevue-C0acGg0Y.js";import{t as oe}from"./CuiSchema-DKATswRc.js";import{t as se}from"./CuiDataTable-CQhCu0px.js";import{t as ce}from"./alert-outline-CeoXcnQc.js";import{l as S,n as le,o as C,r as ue,s as de}from"./vendor-chart-KrNcA52y.js";import{t as fe}from"./CuiPluginOAuthButton-LYMFfb3v.js";var w={class:`flex flex-col w-full gap-6`},T={key:0,class:`cui-banner cui-banner-error`},E={key:1,class:`cui-banner cui-banner-warn`},D={key:2,class:`cui-banner cui-banner-warn`},O={class:`card-title`},k={class:`flex items-center justify-between gap-4`},A={class:`min-w-0`},j={class:`text-sm`},M={class:`text-xs text-muted-color mt-1`},N={class:`card-title`},P={key:0,class:`flex items-center justify-center py-8`},F={key:1,class:`text-sm text-muted text-center py-8`},I={key:2,class:`flex flex-col sm:flex-row items-center gap-6`},L={class:`shrink-0`,style:{width:`180px`,height:`180px`}},R={class:`text-color`},z={class:`font-medium`},B={class:`card-title`},V={key:1,class:`flex items-center justify-center py-8`},pe={key:2,class:`text-sm text-muted text-center py-8`},me={class:`card-title`},he={key:0,class:`flex items-center justify-center py-8`},ge={key:1,class:`text-sm text-muted text-center py-8`},_e={class:`flex items-center justify-center`},ve={class:`font-medium`},ye={class:`text-muted text-sm`},H=`@camera.ui/camera-ui-nvr`,U=g({__name:`SettingsRecordings`,setup(g){C.register(de,ue,S);let U=new c,{t:W}=e(),G=s(),{stats:K,isLoading:q,refresh:J}=i(),{state:Y}=a(H),{isConnected:be,isLoading:X,config:Z,getConfig:xe,setConfig:Se,setValue:Ce,submitValue:we}=ee(H),Te=_(()=>{switch(Y.value.status){case`connected`:return W(`components.oauth.connected_as`,{email:Y.value.userEmail||`—`});case`awaiting_user`:case`polling`:return W(`components.oauth.tooltip_authorizing`);case`error`:return W(`components.oauth.error_generic`);default:return W(`views.settings.recordings.license_disconnected`)}}),{data:Ee}=U.getCamerasQuery({page:1,pageSize:-1}),Q={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},De=_(()=>{let e=new Map;for(let t of Ee.value?.result??[])e.set(t._id,t.name);return e}),Oe=_(()=>K.value?.cameras?Object.entries(K.value.cameras).map(([e,t])=>({id:e,name:De.value.get(e)||e,usedBytes:t.usedBytes,segmentCount:t.segmentCount,oldestDay:t.oldestDay,newestDay:t.newestDay,daysCount:t.daysCount,bandwidthMBh:t.bandwidthMBh,recordingMode:t.recordingMode,isRecording:t.isRecording})).sort((e,t)=>t.usedBytes-e.usedBytes):[]),ke=_(()=>K.value?[{label:W(`views.settings.recordings.disk_total`),value:$(K.value.diskTotalGB)},{label:W(`views.settings.recordings.nvr_usage`),value:$(K.value.nvrUsedGB)},{label:W(`views.settings.recordings.quota`),value:K.value.nvrQuotaGB>0?$(K.value.nvrQuotaGB):W(`views.settings.recordings.unlimited`)},{label:W(`views.settings.recordings.retention`),value:K.value.retentionDays>0?W(`views.settings.recordings.days_count`,{count:K.value.retentionDays}):W(`views.settings.recordings.unlimited`)},{label:W(`views.settings.recordings.disk_free`),value:`${$(K.value.diskFreeGB)} (${K.value.diskFreePercent.toFixed(1)}%)`}]:[]),Ae=_(()=>{let e=K.value?.nvrUsedGB??0,t=K.value?.diskFreeGB??0,n=Math.max(0,(K.value?.diskUsedGB??0)-e),r=e===0&&n===0&&t===0;return{labels:[W(`views.settings.recordings.chart_nvr`),W(`views.settings.recordings.chart_other`),W(`views.settings.recordings.chart_free`)],datasets:[{data:r?[0,0,1]:[e,n,t],backgroundColor:[`#df2a4c`,`rgba(223,42,76,0.35)`,`rgba(223,42,76,0.10)`],borderWidth:0}]}}),je=_(()=>({responsive:!0,maintainAspectRatio:!0,cutout:`65%`,animation:!1,plugins:{legend:{display:!1},tooltip:{callbacks:{label:e=>`${e.label}: ${$(e.parsed)}`}}}}));async function Me(e){try{await Ce(e.key,void 0),G.add({severity:`success`,detail:W(`components.toast.config_updated`),life:3e3}),J()}catch(e){G.add({severity:`error`,detail:e,life:3e3})}}async function Ne(e){try{let t=await we(e.key,e.payload);t?.toast?G.add({severity:t.toast.type,detail:t.toast.message,life:3e3}):G.add({severity:`success`,detail:W(`components.toast.config_updated`),life:3e3}),J()}catch(e){G.add({severity:`error`,detail:e,life:3e3})}}async function Pe(e){try{await Se(e),G.add({severity:`success`,detail:W(`components.toast.config_updated`),life:3e3}),J()}catch(e){G.add({severity:`error`,detail:e,life:3e3})}}function $(e){return e>=1e3?`${(e/1e3).toFixed(2)} TB`:e>=1?`${e.toFixed(2)} GB`:`${(e*1e3).toFixed(0)} MB`}function Fe(e){return e>=0xe8d4a51000?`${(e/0xe8d4a51000).toFixed(2)} TB`:e>=1e9?`${(e/1e9).toFixed(2)} GB`:e>=1e6?`${(e/1e6).toFixed(0)} MB`:`${(e/1e3).toFixed(0)} KB`}function Ie(e){let t=e*24/1e3;return t>=1?`${t.toFixed(1)} GB/d`:`${(t*1e3).toFixed(0)} MB/d`}return b(be,async e=>{e&&await xe()},{immediate:!0}),(e,ee)=>{let i=o,a=ce,s=te,c=t,g=ie,_=se,b=n,S=ae,C=r;return l(),p(`div`,null,[d(`div`,w,[h(K)&&h(K).paused===!0?(l(),p(`div`,T,[y(i,{class:`shrink-0 w-5 h-5`}),d(`span`,null,f(e.$t(`views.settings.recordings.disk_critical`)),1)])):h(K)&&h(K).diskFreePercent>0&&h(K).diskFreePercent<8?(l(),p(`div`,E,[y(a,{class:`shrink-0 w-5 h-5`}),d(`span`,null,f(e.$t(`views.settings.recordings.disk_warning`)),1)])):x(``,!0),h(K)&&h(K).smallVolume?(l(),p(`div`,D,[y(a,{class:`shrink-0 w-5 h-5`}),d(`span`,null,f(e.$t(`views.settings.recordings.disk_small_volume`)),1)])):x(``,!0),d(`div`,null,[d(`span`,O,f(e.$t(`views.settings.recordings.license_title`)),1),y(s,{class:`cui-card`},{content:u(()=>[d(`div`,k,[d(`div`,A,[d(`p`,j,f(h(Te)),1),d(`p`,M,f(e.$t(`views.settings.recordings.license_description`)),1)]),y(fe,{"plugin-name":H,class:`flex-shrink-0`})])]),_:1})]),d(`div`,null,[d(`span`,N,f(e.$t(`views.settings.recordings.storage_overview`)),1),y(s,{class:`cui-card`},{content:u(()=>[h(q)&&!h(K)?(l(),p(`div`,P,[y(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):h(K)?(l(),p(`div`,I,[d(`div`,L,[y(h(le),{data:h(Ae),options:h(je)},null,8,[`data`,`options`])]),y(_,{value:h(ke),pt:Q,"striped-rows":``,"show-headers":!1,class:`w-full`},{default:u(()=>[y(g,{field:`label`},{body:u(({data:e})=>[d(`span`,R,f(e.label),1)]),_:1}),y(g,{field:`value`,style:{"text-align":`right`}},{body:u(({data:e})=>[d(`span`,z,f(e.value),1)]),_:1})]),_:1},8,[`value`])])):(l(),p(`div`,F,f(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})]),d(`div`,null,[d(`span`,B,f(e.$t(`views.settings.recordings.global_settings`)),1),y(s,{class:`cui-card`},{content:u(()=>[h(Z)?(l(),v(oe,{key:0,"schema-form":{schema:h(Z).schema,config:h(Z).config},loading:h(X),"save-button-color":`success`,onOnAction:Me,onOnSubmit:Ne,onOnFormSubmit:Pe},null,8,[`schema-form`,`loading`])):h(q)||h(X)?(l(),p(`div`,V,[y(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(l(),p(`div`,pe,f(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})]),d(`div`,null,[d(`span`,me,f(e.$t(`views.settings.recordings.camera_storage`)),1),y(s,{class:`cui-card`},{content:u(()=>[h(q)&&!h(K)?(l(),p(`div`,he,[y(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):h(K)?(l(),v(_,{key:2,value:h(Oe),pt:Q,"striped-rows":``,scrollable:``},{empty:u(()=>[d(`span`,ye,f(e.$t(`views.settings.recordings.no_cameras`)),1)]),default:u(()=>[y(g,{field:`status`,header:``,style:{width:`3rem`}},{body:u(({data:t})=>[d(`div`,_e,[ne(y(b,{style:re({background:t.isRecording?`green`:`gray`})},null,8,[`style`]),[[C,{value:t.isRecording?e.$t(`views.settings.recordings.status_recording`):e.$t(`views.settings.recordings.status_stopped`)}]])])]),_:1}),y(g,{field:`name`,header:e.$t(`views.settings.recordings.col_camera`)},{body:u(({data:e})=>[d(`span`,ve,f(e.name),1)]),_:1},8,[`header`]),y(g,{field:`size`,header:e.$t(`views.settings.recordings.col_size`)},{body:u(({data:e})=>[m(f(Fe(e.usedBytes)),1)]),_:1},8,[`header`]),y(g,{field:`daysCount`,header:e.$t(`views.settings.recordings.col_days`)},null,8,[`header`]),y(g,{field:`rate`,header:e.$t(`views.settings.recordings.col_rate`)},{body:u(({data:e})=>[m(f(e.bandwidthMBh>0?Ie(e.bandwidthMBh):`-`),1)]),_:1},8,[`header`]),y(g,{field:`recordingMode`,header:e.$t(`views.settings.recordings.col_mode`)},{body:u(({data:e})=>[y(S,{label:e.recordingMode,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`])]),_:1},8,[`value`])):(l(),p(`div`,ge,f(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})])])])}}});export{U as default};
@@ -1 +0,0 @@
1
- import{Mr as e,Mt as t,Ot as n,Rt as r,k as ee,z as te}from"./vendor-cameraui-DojVuZ2L.js";import{In as i,Ln as ne,ar as a,dr as o,dt as re,i as s,it as ie,mn as ae,mr as c,nt as oe,o as l,or as u,rr as d,ut as se}from"./api-Draww2tC.js";import{Nn as f,On as ce,U as p,Xn as m,Zn as le,_r as ue,an as h,b as de,br as g,cn as _,cr as v,en as y,fn as b,gr as x,hn as S,in as C,ir as w,on as T,pn as E,q as fe,qn as D,qt as O,rr as k,sn as A,v as j,wn as pe,y as M,zn as me}from"./vendor-JQXDMBA-.js";import{a as he}from"./useElectron-BXVcamD0.js";import{B as N,z as P}from"./types-BGMvANrz.js";import{K as ge,L as _e,R as ve,a as ye,j as be,l as xe,s as Se,z as Ce}from"./vendor-primevue-C0acGg0Y.js";import{t as we}from"./server-BSYs0zoo.js";import{t as Te}from"./CuiQRCode-B4ysluWR.js";var Ee={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function F(e,t){return f(),_(`svg`,Ee,[...t[0]||=[h(`path`,{fill:`currentColor`,d:`M20.454 21.87L17.612 19H6.5q-1.896 0-3.198-1.302T2 14.5q0-1.829 1.226-3.098t2.87-1.368q.018-.373.208-.925q.19-.553.438-.951l-3.88-3.881l.707-.708l17.593 17.593zm.454-3.812L8.78 5.937q.875-.523 1.612-.73T12 5q2.502 0 4.251 1.749T18 11v1h.616q1.436.046 2.41 1.055T22 15.5q0 .687-.25 1.332t-.842 1.226`},null,-1)]])}var De=w({name:`material-symbols-light-cloud-off`,render:F}),Oe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function ke(e,t){return f(),_(`svg`,Oe,[...t[0]||=[h(`path`,{fill:`currentColor`,d:`m9.55 18l-5.7-5.7l1.425-1.425L9.55 15.15l9.175-9.175L20.15 7.4z`},null,-1)]])}var Ae=w({name:`material-symbols-check`,render:ke}),je={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function I(e,t){return f(),_(`svg`,je,[...t[0]||=[h(`path`,{fill:`currentColor`,d:`M20.5 16H15v-1h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h4v1H3.5c-.83 0-1.5.67-1.5 1.5v3c0 .83.67 1.5 1.5 1.5h17c.83 0 1.5-.67 1.5-1.5v-3c0-.83-.67-1.5-1.5-1.5M5 4h14v9H5zm10 16H5v-2h10zm3 0c-.55 0-1-.45-1-1s.45-1 1-1s1 .45 1 1s-.45 1-1 1`,class:`b`},null,-1)]])}var Me=w({name:`boxicons-computer-filled`,render:I}),Ne={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Pe(e,t){return f(),_(`svg`,Ne,[...t[0]||=[h(`path`,{fill:`currentColor`,d:`M17.9 17.39c-.26-.8-1.01-1.39-1.9-1.39h-1v-3a1 1 0 0 0-1-1H8v-2h2a1 1 0 0 0 1-1V7h2a2 2 0 0 0 2-2v-.41a7.984 7.984 0 0 1 2.9 12.8M11 19.93c-3.95-.49-7-3.85-7-7.93c0-.62.08-1.22.21-1.79L9 15v1a2 2 0 0 0 2 2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2`},null,-1)]])}var Fe=w({name:`mdi-earth`,render:Pe}),Ie={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Le(e,t){return f(),_(`svg`,Ie,[...t[0]||=[h(`path`,{fill:`currentColor`,d:`M10 2c-1.11 0-2 .89-2 2v3c0 1.11.89 2 2 2h1v2H2v2h4v2H5c-1.11 0-2 .89-2 2v3c0 1.11.89 2 2 2h4c1.11 0 2-.89 2-2v-3c0-1.11-.89-2-2-2H8v-2h8v2h-1c-1.11 0-2 .89-2 2v3c0 1.11.89 2 2 2h4c1.11 0 2-.89 2-2v-3c0-1.11-.89-2-2-2h-1v-2h4v-2h-9V9h1c1.11 0 2-.89 2-2V4c0-1.11-.89-2-2-2zm0 2h4v3h-4zM5 17h4v3H5zm10 0h4v3h-4z`},null,-1)]])}var Re=w({name:`mdi-lan`,render:Le});async function ze({signal:e}){return(await c.get(`/remote`,{signal:e})).data}async function Be(e){return(await c.patch(`/remote`,e)).data}async function Ve(e){return(await c.post(`/remote/pair/init`,e?{name:e}:{})).data}async function He({name:e}={}){return(await c.post(`/remote/pair/poll`,e?{name:e}:{})).data}async function Ue(){await c.delete(`/remote/unregister`)}async function We({signal:e}){return(await c.get(`/remote/status`,{signal:e})).data}async function Ge(e){await c.patch(`/remote/name`,{name:e})}async function Ke({signal:e}){return(await c.get(`/remote/tunnel`,{signal:e})).data}async function L({signal:e}={}){return(await c.get(`/remote/connection-info`,{signal:e})).data}async function R(e){return(await c.post(`/remote/test/${e}`)).data}async function qe({signal:e}={}){return(await c.get(`/remote/cloudflare/managed/status`,{signal:e})).data}async function Je(e){await c.post(`/remote/cloudflare/managed/connect`,{hostname:e})}async function Ye(){await c.post(`/remote/cloudflare/managed/cancel`)}async function Xe(){await c.post(`/remote/cloudflare/managed/disconnect`)}async function Ze(){await c.post(`/remote/cloudflare/managed/logout`)}var Qe=class{_queryClient=fe();t=u.global.t;toast=a();queryActivator=v([{name:`getRemoteInfoQuery`,enabled:!0},{name:`getRegistrationStatusQuery`,enabled:!0},{name:`getTunnelStatusQuery`,enabled:!0},{name:`getConnectionInfoQuery`,enabled:!0},{name:`getCloudflareManagedStatusQuery`,enabled:!0}]);get queryClient(){return this._queryClient}getRemoteInfoQuery(){return d({queryKey:[`remote`],queryFn:({signal:e})=>ze({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRemoteInfoQuery`&&e.enabled),staleTime:1e3})}patchRemoteInfoQuery(){return p({mutationFn:Be,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.remote_updated`),life:3e3})}})}getRegistrationStatusQuery(){return d({queryKey:[`remote`,`status`],queryFn:({signal:e})=>We({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRegistrationStatusQuery`&&e.enabled),staleTime:1e3})}pairInitMutation(){return p({mutationFn:Ve})}pairPollMutation(){return p({mutationFn:He,onSuccess:async e=>{e.state===`confirmed`&&(await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`status`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.remote_registered`),life:3e3}))}})}unregisterServerQuery(){return p({mutationFn:Ue,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`status`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.remote_unregistered`),life:3e3})}})}getTunnelStatusQuery(){return d({queryKey:[`remote`,`tunnel`],queryFn:({signal:e})=>Ke({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getTunnelStatusQuery`&&e.enabled),refetchInterval:3e4,staleTime:1e4})}updateServerNameQuery(){return p({mutationFn:Ge,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`status`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.server_name_updated`),life:3e3})}})}getConnectionInfoQuery(){return d({queryKey:[`remote`,`connection-info`],queryFn:({signal:e})=>L({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getConnectionInfoQuery`&&e.enabled),refetchInterval:1e4})}testRemoteModeMutation(){return p({mutationFn:R})}getCloudflareManagedStatusQuery(){return d({queryKey:[`remote`,`cloudflare`,`managed`],queryFn:({signal:e})=>qe({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCloudflareManagedStatusQuery`&&e.enabled),refetchInterval:e=>{let t=e.state.data?.state;return t===`awaiting_login`||t===`creating_tunnel`||t===`setting_dns`?2e3:!1},refetchOnWindowFocus:!0,staleTime:1e3})}cloudflareManagedConnectMutation(){return p({mutationFn:Je,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedCancelMutation(){return p({mutationFn:Ye,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedDisconnectMutation(){return p({mutationFn:Xe,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedLogoutMutation(){return p({mutationFn:Ze,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}},$e=N,et=P,tt={class:`w-full h-full`},nt={key:0,class:`w-full h-full flex items-center justify-center`},rt={key:1,class:`flex flex-col w-full gap-6`},it={key:0},at={class:`card-title`},ot={class:`flex items-center gap-4`},st={class:`flex flex-col field-switch-gap min-w-0`},ct={class:`text-sm font-bold text-color`},lt={class:`card-title`},ut={class:`flex flex-col gap-6`},dt={class:`flex items-center gap-4`},ft={class:`flex flex-col field-switch-gap`},pt={for:`enabled`,class:`cui-label-switch`},mt={class:`flex flex-col field-gap`},ht={for:`serverName`,class:`cui-label`},gt={class:`flex items-center gap-4`},_t={class:`flex flex-col field-switch-gap`},vt={class:`text-sm`},yt={class:`ml-auto shrink-0`},bt={key:1,class:`text-sm font-bold text-amber-500`},xt={key:2,class:`text-sm font-bold`},St={key:0,class:`flex items-center gap-4`},Ct={class:`flex flex-col field-switch-gap`},wt={class:`text-sm`},Tt={class:`ml-auto shrink-0`},Et={key:`pairing`,class:`cui-toggle-switch flex flex-col gap-4`},Dt={class:`cui-pair-layout`},Ot={class:`cui-pair-qr`},kt={class:`flex flex-col gap-4 flex-1 min-w-0`},At={class:`flex flex-col field-gap`},jt={class:`cui-label`},Mt={class:`flex flex-col field-gap`},Nt={class:`cui-label`},Pt={class:`flex items-center gap-3`},Ft={class:`text-sm`},It={class:`flex items-center gap-4`},Lt={class:`flex`},Rt={class:`card-title`},zt={class:`flex flex-col gap-6`},Bt={class:`flex items-center gap-4`},Vt={class:`flex flex-col field-switch-gap`},Ht={for:`directEnabled`,class:`cui-label-switch`},Ut={class:`flex flex-col field-gap`},Wt={class:`cui-label`},Gt={for:`directMode`,class:`cui-label`},Kt={key:0,class:`cui-toggle-switch flex flex-col gap-4`},qt={class:`flex flex-col field-gap`},Jt={for:`cloudflareVariant`,class:`cui-label`},Yt={key:0,class:`flex items-center gap-3`},Xt={class:`flex flex-col field-gap`},Zt={for:`cloudflareHostname`,class:`cui-label`},Qt={class:`flex flex-col field-gap`},$t={for:`cloudflareToken`,class:`cui-label`},en={class:`flex items-center gap-3`},tn={class:`flex flex-col field-gap`},nn={for:`cloudflareHostnameManaged`,class:`cui-label`},rn={class:`flex items-center gap-3`},an={key:0,class:`cf-login-setup`},on={class:`cf-login-qr`},sn={class:`flex flex-col gap-4 flex-1 min-w-0`},cn={class:`flex flex-col field-gap`},ln={class:`cui-label`},un={class:`flex items-center gap-3`},dn={class:`text-sm`},fn={key:1,class:`flex items-center gap-3`},pn={class:`text-sm`},mn={key:2,class:`flex items-center gap-3`},hn={class:`text-sm`},gn={class:`flex flex-col field-gap`},_n={class:`cui-label`},vn={key:0,class:`flex flex-col field-gap`},yn={class:`cui-label`},bn={class:`flex items-center gap-3`},xn={key:1,class:`cui-toggle-switch flex flex-col gap-4`},Sn={for:`customDomain.url`,class:`cui-label`},Cn={class:`flex items-center gap-3`},wn={class:`card-title`},Tn={class:`flex flex-col gap-6`},En={class:`text-sm`},Dn={for:`serverAddresses`,class:`cui-label`},On=ae(S({__name:`SettingsRemote`,setup(ae){let c=new we,u=new Qe,d=he(),p=oe(),S=a(),{t:w}=e(),{data:fe,isBusy:N}=c.getServerInfoQuery(),{data:P,isBusy:Ee}=u.getRemoteInfoQuery(),{data:F,isBusy:Oe}=u.getRegistrationStatusQuery(),{data:ke,isLoading:je}=u.getTunnelStatusQuery(),{data:I}=u.getConnectionInfoQuery(),{mutateAsync:Ne,isPending:Pe}=c.patchSystemInfoQuery(),{mutateAsync:Ie,isPending:Le}=u.patchRemoteInfoQuery(),{mutateAsync:ze,isPending:Be}=u.pairInitMutation(),{mutateAsync:Ve}=u.pairPollMutation(),{mutateAsync:He,isPending:Ue}=u.unregisterServerQuery(),{mutateAsync:We,isPending:Ge}=u.updateServerNameQuery(),{mutateAsync:Ke,isPending:L}=u.testRemoteModeMutation(),{data:R}=u.getCloudflareManagedStatusQuery(),{mutateAsync:qe,isPending:Je}=u.cloudflareManagedConnectMutation(),{mutateAsync:Ye,isPending:Xe}=u.cloudflareManagedCancelMutation(),{mutateAsync:Ze,isPending:On}=u.cloudflareManagedDisconnectMutation(),{mutateAsync:kn,isPending:An}=u.cloudflareManagedLogoutMutation(),z=v(),B=v(),V=v(``),H=v(``),U=v(`quick`),W=v(``),G=v(``),jn=v(!1),K=v(null),q=v(``),Mn=v(null),Nn=v(2),Pn=v(``),J=null,Y=null,X=C(()=>Pe.value||Le.value||N.value||Ee.value||Oe.value||Ue.value),Fn=C(()=>!!(B.value?.enabled||B.value?.directEnabled)),In=C(()=>P.value?.directOverride??{active:!1,fallback:!1}),Z=C(()=>F.value?.isRegistered??!1),Ln=C(()=>F.value?.needsReauth??!1),Rn=C(()=>!X.value),zn=C(()=>{if(!Rn.value)return!1;let e=V.value.trim();return!e||e.length>100?!1:e!==(F.value?.serverName??``)}),Bn=C(()=>{if(!B.value)return!1;if(B.value.directMode===`customDomain`){let e=H.value.trim();if(!e)return!1;try{new URL(e)}catch{return!1}return e!==(P.value?.remoteSettings.customDomain.url??``)}if(B.value.directMode===`cloudflare`){let e=P.value?.remoteSettings.cloudflare,t=P.value?.remoteSettings.directMode!==`cloudflare`,n=U.value;if(n===`quick`)return t||e?.mode!==`quick`;let r=W.value.trim();if(!r||!/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(r))return!1;if(n===`token`){let n=G.value.trim();if(!n&&!jn.value)return!1;let ee=n.length>0;return t||e?.mode!==`token`||e?.hostname!==r||ee}return n===`managed`?t||e?.mode!==`managed`||e?.hostname!==r:!1}return B.value.directMode!==P.value?.remoteSettings.directMode}),Vn=C(()=>[{value:`cloudflare`,label:w(`components.form.label.cloudflare`),description:w(`components.form.hint.cloudflare_mode_info`)},{value:`customDomain`,label:w(`components.form.label.custom_domain`),description:w(`components.form.hint.custom_domain_mode_info`)}]),Hn=C(()=>Vn.value.find(e=>e.value===B.value?.directMode)?.description??``),Un=C(()=>[{value:`quick`,label:w(`components.form.label.cloudflare_variant_quick`),description:w(`components.form.hint.cloudflare_variant_quick`)},{value:`token`,label:w(`components.form.label.cloudflare_variant_token`),description:w(`components.form.hint.cloudflare_variant_token`)},{value:`managed`,label:w(`components.form.label.cloudflare_variant_managed`),description:w(`components.form.hint.cloudflare_variant_managed`)}]),Wn=C(()=>Un.value.find(e=>e.value===U.value)?.description??``),Gn=C(()=>{if(U.value===`quick`)return!0;let e=P.value?.remoteSettings.cloudflare;return e?.mode===U.value&&!!e?.hostname}),Q=C(()=>R.value?.state??`idle`),Kn=C(()=>{if(Q.value!==`idle`)return!1;let e=W.value.trim();return!!e&&/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(e)}),qn=C(()=>{let e=I.value?.currentConnection.type??`lan`;return w(`views.settings.connection_type.${e}`)}),Jn=C(()=>{let e=I.value?.currentConnection.type;return e===`cloud`?i:e===`external`?Fe:e===`local`?Me:Re}),Yn=C(()=>{let e=I.value?.currentConnection.type;return e===`cloud`?`text-warning`:e===`external`?`text-info`:e===`local`?`text-primary`:`text-success`});async function Xn(){let e=V.value.trim();if(e)try{await We(e)}catch{}}function Zn(){p.openTextDialog({data:{title:w(`components.dialog.title.unregister_server`),confirmText:w(`components.form.button.unregister`),contentText:w(`components.dialog.message.confirm_unregister_server`),loading:X},onConfirm:async()=>{try{await He()}catch{}}})}function Qn(){J&&=(clearTimeout(J),null),Y&&=(clearInterval(Y),null)}function $(){Qn(),K.value=null,q.value=``,Mn.value=null,Pn.value=``}function $n(e){let t=Math.max(0,Math.floor(e/1e3));return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}function er(){Y&&clearInterval(Y);let e=()=>{if(!Mn.value)return;let e=Mn.value-Date.now();if(e<=0){$(),S.add({severity:`warn`,detail:w(`components.toast.pair_expired`),life:3e3});return}Pn.value=$n(e)};e(),Y=setInterval(e,1e3)}function tr(){J&&clearTimeout(J),J=setTimeout(nr,Nn.value*1e3)}async function nr(){if(!K.value)return;let e=K.value;try{let t=await Ve({name:V.value.trim()||void 0});if(!K.value||K.value!==e)return;if(t.state===`confirmed`){$();return}if(t.state===`expired`){$(),S.add({severity:`warn`,detail:w(`components.toast.pair_expired`),life:3e3});return}if(t.state===`denied`){$(),S.add({severity:`warn`,detail:w(`components.toast.pair_denied`),life:3e3});return}t.state===`slow_down`&&(Nn.value=Math.min(Nn.value+2,10)),tr()}catch(t){if(!K.value||K.value!==e)return;d.error(`pair poll failed:`,t),tr()}}async function rr(){$();try{let e=V.value.trim();if(e&&e!==(F.value?.serverName??``))try{await We(e)}catch{}let t=await ze(e||void 0);K.value=t.userCode,q.value=t.verificationUriComplete,Mn.value=Date.now()+t.expiresIn*1e3,Nn.value=Math.max(1,t.pollInterval),er(),tr()}catch(e){S.add({severity:`error`,detail:e,life:3e3})}}function ir(){$()}async function ar(){if(K.value)try{await s(K.value)}catch{}}async function or(){if(q.value)try{await s(q.value)}catch{}}function sr(){q.value&&window.open(q.value,`_blank`,`noopener`)}function cr(e){let t=window.location.host===o||!1,n;n=e?`components.dialog.message.confirm_enable_cloud`:t?`components.dialog.message.confirm_disable_cloud_remote`:`components.dialog.message.confirm_disable_cloud_local`,p.openTextDialog({data:{title:w(`components.dialog.title.confirm`),contentText:w(n),confirmText:w(e?`components.form.button.enable`:`components.form.button.disable`),loading:X,confirmButtonProps:e?void 0:{severity:`danger`}},onConfirm:async()=>{try{await Ie(e?{enabled:!0}:{enabled:!1})}catch{B.value&&(B.value.enabled=!e)}},onCancel:()=>{B.value&&(B.value.enabled=!e)}})}function lr(e){Ie({directEnabled:e}).catch(()=>{B.value&&(B.value.directEnabled=!e)})}function ur(e){B.value&&(B.value.directMode=e)}function dr(e){U.value=e}async function fr(){let e=W.value.trim();if(e)try{await Ie({directMode:`cloudflare`,cloudflare:{mode:`managed`,hostname:e}}),await qe(e)}catch{}}async function pr(){try{await Ye()}catch{}}async function mr(){try{await Ze()}catch{}}async function hr(){try{await kn()}catch{}}async function gr(e){try{await s(e)}catch{}}function _r(e){window.open(e,`_blank`,`noopener`)}async function vr(e){try{let t=await Ke(e);t.ok?S.add({severity:`success`,detail:w(`components.toast.remote_test_success`),life:3e3}):S.add({severity:`error`,detail:w(`components.toast.remote_test_failed`,{message:t.message??``}),life:5e3})}catch(e){S.add({severity:`error`,detail:w(`components.toast.remote_test_failed`,{message:e?.message??``}),life:5e3})}}async function yr(e){let t={directMode:e.directMode};if(e.directMode===`customDomain`)t.customDomain={url:H.value.trim()};else if(e.directMode===`cloudflare`){let e=U.value;if(e===`quick`)t.cloudflare={mode:`quick`,hostname:null,token:null};else if(e===`token`){let e=G.value.trim();t.cloudflare={mode:`token`,hostname:W.value.trim(),...e?{token:e}:{}}}else e===`managed`&&(t.cloudflare={mode:`managed`,hostname:W.value.trim(),token:null})}try{await Ie(t)}catch{}}async function br(e){try{await Ne(e)}catch{}}return D(()=>F.value?.serverName,e=>{e&&(V.value=e)},{immediate:!0}),D(Z,e=>{e&&K.value&&$()}),D(fe,e=>{if(e){let t=l(e);z.value={...t,serverAddresses:(t.serverAddresses||[]).filter(Boolean)}}},{deep:!0,immediate:!0}),D(P,e=>{if(e){let t=l(e);B.value={...t.remoteSettings},H.value=t.remoteSettings.customDomain.url??``;let n=t.remoteSettings.cloudflare;U.value=n?.mode??`quick`,W.value=n?.hostname??``,G.value=``,jn.value=t.cloudflareTokenSet??!1}},{deep:!0,immediate:!0}),ce(()=>{Qn()}),(e,i)=>{let a=n,o=Ce,s=te,ae=ge,c=ee,oe=Ae,l=t,u=_e,d=ve,ce=ye,p=Te,v=re,S=ne,C=De,w=be,D=Se,he=xe,N=r;return f(),_(`div`,tt,[!x(z)||!x(B)?(f(),_(`div`,nt,[E(a,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(f(),_(`div`,rt,[x(I)?(f(),_(`div`,it,[h(`span`,at,g(e.$t(`views.settings.connection_status`)),1),E(s,{class:`cui-card`},{content:m(()=>[h(`div`,ot,[(f(),T(me(x(Jn)),{class:ue([`shrink-0 w-6 h-6`,x(Yn)])},null,8,[`class`])),h(`div`,st,[h(`span`,ct,g(x(qn)),1),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:m(()=>[b(g(x(I).currentConnection.address),1)]),_:1})])])]),_:1})])):A(``,!0),E(x(de),{ref:`remoteFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":x($e),onSubmit:i[18]||=e=>yr(e)},{default:m(()=>[h(`div`,null,[h(`span`,lt,g(e.$t(`views.settings.cloud`)),1),E(s,{class:`cui-card`},{content:m(()=>[h(`div`,ut,[E(x(M),{"model-value":x(B).enabled,value:!0,"unchecked-value":!1,type:`checkbox`,name:`enabled`,as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:m(({field:t,errors:n})=>[h(`div`,dt,[h(`div`,ft,[h(`label`,pt,g(e.$t(`components.form.label.enabled`)),1),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[b(g(e.$t(`components.form.hint.cloud_access_enabled_info`)),1)]),_:1}),E(O,{name:`fade`},{default:m(()=>[E(x(j),{name:`enabled`,class:`cui-input-switch-error`})]),_:1})]),E(ae,pe({"model-value":x(B).enabled},t,{invalid:n.length>0,loading:x(X),class:`ml-auto shrink-0`,onValueChange:i[0]||=e=>x(B).enabled=e,"onUpdate:modelValue":i[1]||=e=>cr(e)}),null,16,[`model-value`,`invalid`,`loading`])])]),_:1},8,[`model-value`]),h(`div`,mt,[h(`label`,ht,g(e.$t(`views.settings.server_name_label`)),1),E(d,null,{default:m(()=>[E(c,{id:`serverName`,modelValue:x(V),"onUpdate:modelValue":i[2]||=e=>k(V)?V.value=e:null,modelModifiers:{trim:!0},disabled:!x(Rn),loading:x(X),type:`text`,maxlength:100},null,8,[`modelValue`,`disabled`,`loading`]),E(u,null,{default:m(()=>[le((f(),T(l,{text:``,severity:`secondary`,loading:x(Ge),disabled:!x(zn),type:`button`,onClick:Xn},{icon:m(()=>[E(oe)]),_:1},8,[`loading`,`disabled`])),[[N,{value:e.$t(`components.form.button.save`)}]])]),_:1})]),_:1}),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[b(g(e.$t(`views.settings.server_name_info`)),1)]),_:1})]),h(`div`,gt,[h(`div`,_t,[h(`span`,vt,g(e.$t(`views.settings.status`)),1),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[b(g(e.$t(`views.settings.status_info`)),1)]),_:1})]),h(`div`,yt,[x(X)?(f(),T(a,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):x(Ln)?(f(),_(`span`,bt,g(e.$t(`views.settings.needs_reauth`)),1)):(f(),_(`span`,xt,g(x(Z)?e.$t(`views.settings.registered`):e.$t(`views.settings.not_registered`)),1))])]),x(Z)?(f(),_(`div`,St,[h(`div`,Ct,[h(`span`,wt,g(e.$t(`views.settings.tunnel_status`)),1),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[b(g(e.$t(`views.settings.tunnel_status_info`)),1)]),_:1})]),h(`div`,Tt,[x(je)?(f(),T(a,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(f(),T(ce,{key:1,severity:x(ke)?.connected?`success`:`secondary`,value:x(ke)?.connected?e.$t(`views.settings.tunnel_connected`):e.$t(`views.settings.tunnel_disconnected`)},null,8,[`severity`,`value`]))])])):A(``,!0),E(O,{name:`fade`,mode:`out-in`},{default:m(()=>[x(K)?(f(),_(`div`,Et,[E(o,{severity:`error`,variant:`simple`,size:`small`,class:`text-primary`},{default:m(()=>[b(g(e.$t(`views.settings.pair_instructions`)),1)]),_:1}),h(`div`,Dt,[h(`div`,Ot,[E(p,{value:x(q),size:180,"logo-size":36},null,8,[`value`])]),h(`div`,kt,[h(`div`,At,[h(`label`,jt,g(e.$t(`views.settings.pair_code`)),1),E(d,null,{default:m(()=>[E(c,{"model-value":x(K),readonly:``,class:`font-mono text-lg text-center tracking-widest`},null,8,[`model-value`]),E(u,null,{default:m(()=>[E(v,{"action-text":e.$t(`components.form.tooltip.copied`),icon:x(se),"button-props":{severity:`secondary`,text:!0},onAction:ar},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(e.$t(`views.settings.pair_code_hint`)),1)]),_:1})]),h(`div`,Mt,[h(`label`,Nt,g(e.$t(`views.settings.pair_url`)),1),E(d,null,{default:m(()=>[E(c,{"model-value":x(q),readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),E(u,null,{default:m(()=>[E(v,{"action-text":e.$t(`components.form.tooltip.copied`),icon:x(se),"button-props":{severity:`secondary`,text:!0},onAction:or},null,8,[`action-text`,`icon`])]),_:1}),E(u,null,{default:m(()=>[le((f(),T(l,{type:`button`,severity:`secondary`,text:``,onClick:sr},{icon:m(()=>[E(x(ie))]),_:1})),[[N,{value:e.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),h(`div`,Pt,[E(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),h(`span`,Ft,g(e.$t(`views.settings.pair_waiting`,{remaining:x(Pn)})),1),E(l,{type:`button`,severity:`secondary`,class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:ir},null,8,[`label`])])])])])):A(``,!0)]),_:1}),h(`div`,It,[h(`div`,Lt,[le((f(),T(l,{severity:`secondary`,rounded:``,class:`cui-icon-lg text-color`,disabled:!x(Z),onClick:i[3]||=t=>e.$router.absUrl(x(`https://cloud.cameraui.com`),!0)},{icon:m(()=>[x(Z)?(f(),T(S,{key:0,width:`100%`,height:`100%`})):(f(),T(C,{key:1,width:`100%`,height:`100%`}))]),_:1},8,[`disabled`])),[[N,{value:x(Z)?e.$t(`views.settings.registered`):e.$t(`views.settings.not_registered`)}]])]),i[21]||=h(`div`,{class:`ml-auto`},null,-1),!x(Z)&&!x(K)?(f(),T(l,{key:0,loading:x(Be),class:`cui-button-medium`,label:e.$t(`components.form.button.register_server`),onClick:rr},null,8,[`loading`,`label`])):A(``,!0),x(Ln)&&!x(K)?(f(),T(l,{key:1,loading:x(Be),severity:`warn`,class:`cui-button-medium`,label:e.$t(`components.form.button.reconnect_server`),onClick:rr},null,8,[`loading`,`label`])):A(``,!0),x(Z)?(f(),T(l,{key:2,loading:x(X),severity:x(Ln)?`secondary`:void 0,text:x(Ln),class:`cui-button-medium`,label:e.$t(`components.form.button.unregister_server`),onClick:Zn},null,8,[`loading`,`severity`,`text`,`label`])):A(``,!0)])])]),_:1})]),h(`div`,null,[h(`span`,Rt,g(e.$t(`views.settings.direct_connection`)),1),E(s,{class:`cui-card`},{content:m(()=>[h(`div`,zt,[E(x(M),{"model-value":x(B).directEnabled,value:!0,"unchecked-value":!1,type:`checkbox`,name:`directEnabled`,as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:m(({field:t,errors:n})=>[h(`div`,Bt,[h(`div`,Vt,[h(`label`,Ht,g(e.$t(`components.form.label.enabled`)),1),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[b(g(e.$t(`views.settings.direct_connection_info`)),1)]),_:1}),E(O,{name:`fade`},{default:m(()=>[E(x(j),{name:`directEnabled`,class:`cui-input-switch-error`})]),_:1})]),E(ae,pe({"model-value":x(Fn)},t,{invalid:n.length>0,loading:x(X),disabled:x(B).enabled,class:`ml-auto shrink-0`,onValueChange:i[4]||=e=>x(B).directEnabled=e,"onUpdate:modelValue":i[5]||=e=>lr(e)}),null,16,[`model-value`,`invalid`,`loading`,`disabled`])]),E(O,{name:`fade`},{default:m(()=>[x(In).active?(f(),T(o,{key:0,variant:`simple`,size:`small`,class:`cui-input-switch-hint text-primary`},{default:m(()=>[b(g(x(In).fallback?e.$t(`views.settings.direct_override_fallback`):e.$t(`views.settings.direct_override_active`)),1)]),_:1})):A(``,!0)]),_:1})]),_:1},8,[`model-value`]),x(Fn)?(f(),_(y,{key:0},[h(`div`,Ut,[h(`label`,Wt,g(e.$t(`views.settings.external_url`)),1),E(c,{readonly:``,type:`text`,value:x(I)?.externalUrl??e.$t(`components.form.label.disconnected`)},null,8,[`value`]),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(e.$t(`views.settings.external_url_info`)),1)]),_:1})]),E(x(M),{"model-value":x(B).directMode,name:`directMode`,as:`div`,class:`flex flex-col field-gap`},{default:m(({errors:t})=>[h(`label`,Gt,g(e.$t(`views.settings.connection_method`)),1),E(w,{"model-value":x(B).directMode,options:x(Vn),"option-label":`label`,"option-value":`value`,invalid:t.length>0,loading:x(X),"onUpdate:modelValue":i[6]||=e=>ur(e)},null,8,[`model-value`,`options`,`invalid`,`loading`]),E(O,{name:`fade`},{default:m(()=>[E(x(j),{name:`directMode`,class:`cui-input-error`})]),_:1}),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(x(Hn)),1)]),_:1})]),_:1},8,[`model-value`]),x(B).directMode===`cloudflare`?(f(),_(`div`,Kt,[h(`div`,qt,[h(`label`,Jt,g(e.$t(`components.form.label.cloudflare_variant`)),1),E(w,{"model-value":x(U),options:x(Un),"option-label":`label`,"option-value":`value`,loading:x(X),"onUpdate:modelValue":i[7]||=e=>dr(e)},null,8,[`model-value`,`options`,`loading`]),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(x(Wn)),1)]),_:1})]),x(U)===`quick`?(f(),_(`div`,Yt,[E(l,{type:`button`,severity:`secondary`,loading:x(L),class:`cui-button-small`,label:e.$t(`components.form.button.test_connection`),onClick:i[8]||=e=>vr(`cloudflare`)},null,8,[`loading`,`label`])])):x(U)===`token`?(f(),_(y,{key:1},[h(`div`,Xt,[h(`label`,Zt,g(e.$t(`components.form.label.hostname`)),1),E(c,{id:`cloudflareHostname`,modelValue:x(W),"onUpdate:modelValue":i[9]||=e=>k(W)?W.value=e:null,modelModifiers:{trim:!0},loading:x(X),type:`text`,placeholder:`nvr.example.com`,maxlength:253},null,8,[`modelValue`,`loading`]),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(e.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),h(`div`,Qt,[h(`label`,$t,g(e.$t(`components.form.label.tunnel_token`)),1),E(D,{id:`cloudflareToken`,modelValue:x(G),"onUpdate:modelValue":i[10]||=e=>k(G)?G.value=e:null,modelModifiers:{trim:!0},loading:x(X),feedback:!1,"toggle-mask":``,fluid:``,placeholder:x(jn)?`••••••••••••`:`eyJ...`},null,8,[`modelValue`,`loading`,`placeholder`]),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(x(jn)?e.$t(`components.form.hint.cloudflare_token_already_set`):e.$t(`components.form.hint.cloudflare_token_info`)),1)]),_:1})]),h(`div`,en,[E(l,{type:`button`,severity:`secondary`,loading:x(L),disabled:!x(Gn),class:`cui-button-small`,label:e.$t(`components.form.button.test_connection`),onClick:i[11]||=e=>vr(`cloudflare`)},null,8,[`loading`,`disabled`,`label`])])],64)):x(U)===`managed`?(f(),T(O,{key:2,name:`fade`,mode:`out-in`},{default:m(()=>[(f(),_(`div`,{key:x(Q),class:`flex flex-col gap-4`},[x(Q)===`idle`?(f(),_(y,{key:0},[h(`div`,tn,[h(`label`,nn,g(e.$t(`components.form.label.hostname`)),1),E(c,{id:`cloudflareHostnameManaged`,modelValue:x(W),"onUpdate:modelValue":i[12]||=e=>k(W)?W.value=e:null,modelModifiers:{trim:!0},loading:x(X),type:`text`,placeholder:`nvr.example.com`,maxlength:253},null,8,[`modelValue`,`loading`]),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(e.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),x(R)?.lastError?(f(),T(o,{key:0,severity:`error`,variant:`simple`,size:`small`},{default:m(()=>[b(g(x(R).lastError),1)]),_:1})):A(``,!0),h(`div`,rn,[E(l,{type:`button`,loading:x(Je),disabled:!x(Kn),class:`cui-button-medium`,label:e.$t(`components.form.button.connect_cloudflare`),onClick:fr},null,8,[`loading`,`disabled`,`label`])])],64)):x(Q)===`awaiting_login`?(f(),_(y,{key:1},[x(R)?.loginUrl?(f(),_(`div`,an,[h(`div`,on,[E(p,{value:x(R).loginUrl,size:160,"logo-size":32},null,8,[`value`])]),h(`div`,sn,[E(o,{variant:`simple`,size:`small`,class:`text-primary`},{default:m(()=>[b(g(e.$t(`components.form.hint.cloudflare_managed_awaiting_login`,{hostname:x(W)})),1)]),_:1}),h(`div`,cn,[h(`label`,ln,g(e.$t(`components.form.label.cloudflare_url`)),1),E(d,null,{default:m(()=>[E(c,{"model-value":x(R).loginUrl,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),E(u,null,{default:m(()=>[E(v,{"action-text":e.$t(`components.form.tooltip.copied`),icon:x(se),"button-props":{severity:`secondary`,text:!0},onAction:i[13]||=e=>gr(x(R).loginUrl)},null,8,[`action-text`,`icon`])]),_:1}),E(u,null,{default:m(()=>[le((f(),T(l,{type:`button`,severity:`secondary`,text:``,onClick:i[14]||=e=>_r(x(R).loginUrl)},{icon:m(()=>[E(x(ie))]),_:1})),[[N,{value:e.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),h(`div`,un,[E(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),h(`span`,dn,g(e.$t(`views.settings.cloudflare_login_waiting`)),1),E(l,{type:`button`,severity:`secondary`,loading:x(Xe),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])])])])):(f(),_(`div`,fn,[E(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),h(`span`,pn,g(e.$t(`views.settings.cloudflare_login_waiting`)),1),E(l,{type:`button`,severity:`secondary`,loading:x(Xe),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])]))],64)):x(Q)===`creating_tunnel`||x(Q)===`setting_dns`?(f(),_(`div`,mn,[E(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),h(`span`,hn,g(x(Q)===`creating_tunnel`?e.$t(`components.form.hint.cloudflare_managed_creating_tunnel`):e.$t(`components.form.hint.cloudflare_managed_setting_dns`,{hostname:x(W)})),1),E(l,{type:`button`,severity:`secondary`,loading:x(Xe),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])])):x(Q)===`running`?(f(),_(y,{key:3},[h(`div`,gn,[h(`label`,_n,g(e.$t(`components.form.label.hostname`)),1),E(c,{readonly:``,value:`https://${x(R)?.hostname??``}`,type:`text`},null,8,[`value`]),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(e.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),x(R)?.tunnelId?(f(),_(`div`,vn,[h(`label`,yn,g(e.$t(`components.form.label.tunnel_id`)),1),E(c,{readonly:``,value:x(R).tunnelId,type:`text`},null,8,[`value`]),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(e.$t(`components.form.hint.cloudflare_tunnel_id_info`)),1)]),_:1})])):A(``,!0),h(`div`,bn,[E(l,{type:`button`,severity:`secondary`,loading:x(L),class:`cui-button-small`,label:e.$t(`components.form.button.test_connection`),onClick:i[15]||=e=>vr(`cloudflare`)},null,8,[`loading`,`label`]),E(l,{type:`button`,severity:`secondary`,loading:x(On),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.disconnect`),onClick:mr},null,8,[`loading`,`label`]),E(l,{type:`button`,severity:`danger`,loading:x(An),class:`cui-button-small`,label:e.$t(`components.form.button.logout`),onClick:hr},null,8,[`loading`,`label`])])],64)):A(``,!0)]))]),_:1})):A(``,!0)])):x(B).directMode===`customDomain`?(f(),_(`div`,xn,[E(x(M),{modelValue:x(H),"onUpdate:modelValue":i[16]||=e=>k(H)?H.value=e:null,modelModifiers:{trim:!0},loading:x(X),name:`customDomain.url`,as:`div`,class:`flex flex-col field-gap`},{default:m(({field:t,errors:n})=>[h(`label`,Sn,g(e.$t(`components.form.label.url`)),1),E(c,pe(t,{invalid:n.length>0,loading:x(X),type:`text`,placeholder:`https://my.example.com`}),null,16,[`invalid`,`loading`]),E(O,{name:`fade`},{default:m(()=>[E(x(j),{name:`customDomain.url`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`loading`]),h(`div`,Cn,[E(l,{type:`button`,severity:`secondary`,loading:x(L),disabled:!x(H),class:`cui-button-small`,label:e.$t(`components.form.button.test_connection`),onClick:i[17]||=e=>vr(`customDomain`)},null,8,[`loading`,`disabled`,`label`])])])):A(``,!0),E(l,{type:`submit`,loading:x(X),disabled:!x(Bn),class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.save`)},null,8,[`loading`,`disabled`,`label`])],64)):A(``,!0)])]),_:1})])]),_:1},8,[`validation-schema`]),E(x(de),{ref:`serverFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":x(et),onSubmit:i[20]||=e=>br(e)},{default:m(()=>[h(`div`,null,[h(`span`,wn,g(e.$t(`views.settings.network`)),1),E(s,{class:`cui-card`},{content:m(()=>[h(`div`,Tn,[h(`span`,En,g(e.$t(`views.settings.network_info`)),1),E(x(M),{"model-value":x(z).serverAddresses,name:`serverAddresses`,as:`div`,class:`flex flex-col field-gap`},{default:m(({field:t,errors:n})=>[h(`label`,Dn,g(e.$t(`components.form.label.server_addresses`)),1),E(d,null,{default:m(()=>[E(he,pe(t,{"model-value":x(z).serverAddresses,options:x(fe)?.availableAddresses||[],invalid:n.length>0,loading:x(X),"max-selected-labels":2,"show-toggle-all":!1,"show-clear":``,"option-label":`address`,"option-value":`address`,type:`text`,display:`chip`,onValueChange:i[19]||=e=>x(z).serverAddresses=e}),null,16,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),E(O,{name:`fade`},{default:m(()=>[E(x(j),{name:`serverAddresses`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`]),E(l,{type:`submit`,loading:x(X),class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])]),_:1})])]),_:1},8,[`validation-schema`])]))])}}}),[[`__scopeId`,`data-v-788da547`]]);export{On as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./VersionsHandler-D9sDkGXx.js","./vendor-cameraui-DojVuZ2L.js","./rolldown-runtime-C0FnF6B9.js","./vendor-JQXDMBA-.js","./api-Draww2tC.js","./useElectron-BXVcamD0.js","./vendor-zod-Dbq0fBXY.js","./types-BGMvANrz.js","./lightbulb-outline-DLrnCPG5.js","./vendor-core-ZDcIKAw9.js","./vendor-primevue-C0acGg0Y.js","./vendor-dnd-Jch9IvL6.js","./close-CtaDF28n.js","./vendor-draggabilly-Cn-knCpG.js","./api-eELh8KCM.css","./server-BSYs0zoo.js","./useServerRestart-BxDBO7k-.js","./plugins-BU7TQh_f.js","./CuiConsole-B7R7U9UZ.js","./vendor-xterm-BafMBqaV.js","./vendor-xterm-BrP-ENHg.css","./CuiConsole-CoA-Nq-_.css","./useLogsSocket-DSxzAvQF.js","./CuiMarkdownContent-C2uBepC1.js","./vendor-markdown-BhFLJolW.js","./vendor-markdown-DtOhvyRx.css","./alert-circle-pDGfnZ4K.js","./platformLabels-D-cF6OTP.js","./config-BZphegxi.js"])))=>i.map(i=>d[i]);
2
- import{Mr as e,Mt as t,Ot as n,z as ee}from"./vendor-cameraui-DojVuZ2L.js";import{C as r,fn as i,g as te,nt as a,on as ne,rt as o,sr as s}from"./api-Draww2tC.js";import{Nn as c,On as re,Rt as ie,Xn as l,an as u,br as d,cn as f,cr as p,en as ae,fn as m,gr as h,hn as oe,in as g,jn as se,on as _,pn as v,qn as y,sn as b,t as x}from"./vendor-JQXDMBA-.js";import{a as ce,t as le}from"./useElectron-BXVcamD0.js";import{K as ue,z as de}from"./vendor-primevue-C0acGg0Y.js";import{r as fe,t as pe}from"./server-BSYs0zoo.js";import{n as me}from"./useServerRestart-BxDBO7k-.js";import{n as he,t as ge}from"./api-Mny5Elfn.js";import{t as _e}from"./useAppVersion-UIA6seZv.js";var ve={class:`flex flex-col w-full gap-6`},ye={key:0},be={class:`flex items-center gap-4`},xe={class:`flex flex-col field-switch-gap`},Se={for:`betaChannel`,class:`cui-label-switch`},Ce={class:`flex flex-col gap-6`},we={key:0,class:`flex flex-row items-center justify-between`},Te={class:`text-sm`},Ee={key:1,class:`text-sm font-bold`},De={key:1,class:`flex flex-row items-center justify-between`},Oe={class:`text-sm`},ke={class:`text-sm font-bold`},Ae={key:0,class:`text-muted font-normal`},je={class:`flex flex-row items-center justify-between`},Me={class:`text-sm`},Ne={key:1,class:`text-sm font-bold`},Pe={key:2,class:`flex w-full items-center gap-2`},Fe={key:1},Ie={class:`card-title`},Le={class:`flex flex-col gap-6`},Re={class:`text-sm`},ze={class:`card-title`},Be={class:`flex flex-col gap-6`},Ve={class:`text-sm`},He={key:2},Ue={class:`card-title`},We={class:`flex flex-col gap-6`},Ge={class:`text-sm`},S=oe({__name:`SettingsSystem`,setup(oe){let S=o(()=>ie(()=>import(`./VersionsHandler-D9sDkGXx.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28]),import.meta.url)),C=new ge,w=new pe,T=ce(),E=a(),{t:D}=e(),{isElectronApp:O,electron:k}=le(),{isOnline:A}=s(),{restarting:j,beginServerRestart:Ke}=me(),{isBeta:M,setChannel:qe}=r(),{appVersion:N,nativeVersion:P,refreshAppVersion:Je}=_e(),Ye=te();w.toggleQueryActivator(`checkVersionQuery`,!1);let{data:F,isBusy:Xe}=C.apiInfoQuery(),{data:I,isBusy:Ze}=w.checkVersionQuery(),{mutate:Qe,isPending:$e}=w.restartServerQuery(),{mutateAsync:et,isPending:tt}=w.resetServerQuery(),L=p(D(`views.settings.unknown`)),R=p(D(`views.settings.unknown`)),z=p(),B=p(),V=p(),H=p(),U=p(!1),W=p(!1),nt=p(!1),G=p(!1),K=0,q=g(()=>F.value?.electron??!1),J=g(()=>$e.value||tt.value||Xe.value||Ze.value||G.value||W.value),Y=g(()=>F.value?.installedVersion||F.value?.version),X=g(()=>F.value?.restartRequired??!1),Z=g(()=>J.value||!A.value||j.value),rt=g(()=>Y.value&&V.value?x(V.value,Y.value)===1:!1),it=g(()=>Y.value&&z.value?x(z.value,Y.value)===1:!1),at=g(()=>M.value&&Y.value&&B.value?x(B.value,Y.value)===1:!1),Q=g(()=>{let e=[rt.value?V.value:void 0,at.value?B.value:void 0,it.value?z.value:void 0].filter(e=>!!e);if(e.length)return e.sort((e,t)=>x(t,e))[0]});function ot(e){qe(e===!0?`beta`:`production`)}async function st(){if(!U.value){U.value=!0;try{let e=await fe(),t=new Blob([e],{type:`application/x-x509-ca-cert`});await i({blob:t,filename:`cert.pem`,mimeType:`application/x-x509-ca-cert`})}catch(e){T.error(e)}U.value=!1}}function ct(){Ke(),Qe()}function $(e){switch(e){case`restart`:E.openTextDialog({data:{title:D(`components.dialog.title.restart`),confirmText:D(`components.form.button.restart`),contentText:D(`components.dialog.message.confirm_restart_server`),loading:J},onConfirm:ct});break;case`reset`:E.openTextDialog({data:{title:D(`components.dialog.title.reset_server`),confirmText:D(`components.form.button.reset`),contentText:D(`components.dialog.message.confirm_reset_server`),loading:J},onConfirm:async()=>{try{await et()}catch{}finally{Ye.logout()}}});break;case`versions`:case`install`:E.openComponentDialog(S,{data:{title:D(`components.dialog.title.install_version`),confirmText:D(e===`install`?`components.form.button.update`:`components.form.button.install`),loading:J,contentProps:{target:{type:`server`},installVersion:e===`install`?Q.value:void 0}}})}}async function lt(){if(O)try{nt.value=!0,R.value=await k.invoke(`get-app-version`)??D(`views.settings.unknown`)}catch(e){T.error(`Error getting electron app version:`,e)}finally{nt.value=!1}}async function ut(){if(O)try{G.value=!0;let e=await k.invoke(`get-update-available`);H.value=e.isUpdateAvailable?e.version:void 0}catch(e){T.error(`Error checking for electron updates:`,e)}finally{G.value=!1}}async function dt(){if(O)try{W.value=!0,await k.invoke(`quit-and-install`)}catch(e){T.error(`Error installing electron update:`,e)}finally{W.value=!1}}async function ft(){let e=++K;for(let t=0;t<30;t++)try{if(await he({signal:AbortSignal.timeout(5e3)}),e!==K)return;C.queryClient.invalidateQueries({queryKey:[`api`]}),w.queryClient.invalidateQueries({queryKey:[`version`]});return}catch{if(await new Promise(e=>setTimeout(e,2e3)),e!==K||!A.value)return}}return y(F,()=>{L.value=F.value?.version||D(`views.settings.unknown`),F.value&&w.toggleQueryActivator(`checkVersionQuery`,!q.value)},{deep:!0,immediate:!0}),y(I,()=>{V.value=I.value?.[`dist-tags`].latest,z.value=I.value?.[`dist-tags`].alpha,B.value=I.value?.[`dist-tags`].beta},{deep:!0,immediate:!0}),y([A,j],([e,t],[n,ee])=>{q.value||(e&&!n||ee&&!t&&e)&&ft()}),re(()=>{K++}),se(()=>{O&&(lt(),ut())}),(e,r)=>{let i=de,te=ue,a=ee,o=n,s=t;return c(),f(`div`,null,[u(`div`,ve,[h(q)?b(``,!0):(c(),f(`div`,ye,[v(a,{class:`cui-card`},{content:l(()=>[u(`div`,null,[u(`div`,be,[u(`div`,xe,[u(`label`,Se,d(e.$t(`views.settings.beta_updates`)),1),v(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[m(d(e.$t(`views.settings.beta_updates_info`)),1)]),_:1})]),v(te,{"input-id":`betaChannel`,"model-value":h(M),class:`ml-auto shrink-0`,"onUpdate:modelValue":ot},null,8,[`model-value`])])])]),_:1})])),u(`div`,null,[r[6]||=u(`span`,{class:`card-title`},`camera.ui`,-1),v(a,{class:`cui-card`},{content:l(()=>[u(`div`,Ce,[h(O)?(c(),f(`div`,we,[u(`span`,Te,d(e.$t(`views.settings.app`)),1),h(J)?(c(),_(o,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(c(),f(`span`,Ee,`v`+d(h(R)),1))])):b(``,!0),h(!1)&&h(N)?(c(),f(`div`,De,[u(`span`,Oe,d(e.$t(`views.settings.app`)),1),u(`span`,ke,[m(` v`+d(h(N)),1),h(P)&&h(P)!==h(N)?(c(),f(`span`,Ae,` (`+d(h(P))+`)`,1)):b(``,!0)])])):b(``,!0),u(`div`,je,[u(`span`,Me,d(e.$t(`views.settings.server`)),1),h(J)?(c(),_(o,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(c(),f(`span`,Ne,[m(` v`+d(h(L)),1),h(X)?(c(),f(ae,{key:0},[m(` → v`+d(h(Y)),1)],64)):b(``,!0)]))]),h(O)&&h(H)||!h(q)?(c(),f(`div`,Pe,[r[5]||=u(`div`,{class:`ml-auto`},null,-1),h(O)&&h(H)?(c(),_(s,{key:0,disabled:!h(O),loading:h(J),class:`cui-button-medium`,label:`${e.$t(`components.form.button.update`)} (v${h(H)})`,onClick:dt},null,8,[`disabled`,`loading`,`label`])):b(``,!0),!h(q)&&h(X)?(c(),_(s,{key:1,loading:h(J),disabled:h(Z),class:`cui-button-medium`,label:`${e.$t(`components.form.button.restart`)} (v${h(Y)})`,onClick:r[0]||=e=>$(`restart`)},null,8,[`loading`,`disabled`,`label`])):!h(q)&&h(Q)?(c(),_(s,{key:2,loading:h(J),disabled:h(Z),class:`cui-button-medium`,label:`${e.$t(`components.form.button.update`)} (v${h(Q)})`,onClick:r[1]||=e=>$(`install`)},null,8,[`loading`,`disabled`,`label`])):b(``,!0),h(q)?b(``,!0):(c(),_(s,{key:3,loading:h(J),disabled:h(Z),class:`cui-button-medium`,label:e.$t(`components.form.button.manage`),onClick:r[2]||=e=>$(`versions`)},null,8,[`loading`,`disabled`,`label`]))])):b(``,!0)])]),_:1})]),h(O)?b(``,!0):(c(),f(`div`,Fe,[u(`span`,Ie,d(e.$t(`views.settings.certificate`)),1),v(a,{class:`cui-card`},{content:l(()=>[u(`div`,Le,[u(`span`,Re,d(e.$t(`views.settings.certificate_info`)),1),v(s,{loading:h(U)||h(J),disabled:h(Z),class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.download`),onClick:st},null,8,[`loading`,`disabled`,`label`])])]),_:1})])),u(`div`,null,[u(`span`,ze,d(e.$t(`views.settings.restart_server`)),1),v(a,{class:`cui-card`},{content:l(()=>[u(`div`,Be,[u(`span`,Ve,d(e.$t(`views.settings.restart_server_info`)),1),v(s,{loading:h(J),disabled:h(Z),class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.restart`),onClick:r[3]||=e=>$(`restart`)},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),(`hasPermission`in e?e.hasPermission:h(ne))(void 0,`master`)?(c(),f(`div`,He,[u(`span`,Ue,d(e.$t(`views.settings.reset_server`)),1),v(a,{class:`cui-card !border-red-900`},{content:l(()=>[u(`div`,We,[u(`span`,Ge,d(e.$t(`views.settings.reset_server_info`)),1),v(s,{loading:h(J),disabled:h(Z),class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.reset`),onClick:r[4]||=e=>$(`reset`)},null,8,[`loading`,`disabled`,`label`])])]),_:1})])):b(``,!0)])])}}});export{S as default};
@@ -1,4 +0,0 @@
1
- import{Et as e,Kr as t,Mr as n,Mt as r,Qr as i,Rt as a,xi as o}from"./vendor-cameraui-DojVuZ2L.js";import{B as s,Tn as c,_n as l,m as u,mn as d}from"./api-Draww2tC.js";import{$t as f,Fn as p,Gn as m,Mn as h,Nn as g,Tn as _,Xn as v,Zn as y,Zt as b,_r as x,an as S,br as C,cn as w,cr as T,dr as ee,en as E,gr as D,hn as O,in as k,ir as A,jn as te,mr as j,on as M,or as N,pn as P,qn as F,sn as I,wn as ne,yr as L,zn as R}from"./vendor-JQXDMBA-.js";import{a as re}from"./useElectron-BXVcamD0.js";import{p as z}from"./vendor-core-ZDcIKAw9.js";import{o as B}from"./vendor-primevue-C0acGg0Y.js";import{a as V,i as H,n as U,r as W,t as G}from"./vendor-xterm-BafMBqaV.js";import{t as ie}from"./back-filled-DUUGErMw.js";import{t as K}from"./settings-CzS4dvIO.js";import{n as ae,t as oe}from"./zoom-in-STm8SNt2.js";import{n as se,t as ce}from"./CuiTopNavbarItem-rMsWME9B.js";import{t as le}from"./trash-2-DcOYT3oH.js";var q={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function ue(e,t){return g(),w(`svg`,q,[...t[0]||=[S(`path`,{fill:`currentColor`,d:`M18 28A12 12 0 1 0 6 16v6.2l-3.6-3.6L1 20l6 6l6-6l-1.4-1.4L8 22.2V16a10 10 0 1 1 10 10Z`},null,-1)]])}var de=A({name:`carbon-reset`,render:ue}),fe={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function J(e,t){return g(),w(`svg`,fe,[...t[0]||=[S(`path`,{fill:`currentColor`,d:`M17 15V8h-2v7H8v2h7v7h2v-7h7v-2z`},null,-1)]])}var pe=A({name:`carbon-add`,render:J}),me=d(O({__name:`CuiTerminal`,props:{autoConnect:{type:Boolean,default:!0},cwd:{},shell:{},options:{default:()=>({fontSize:14})},inputTransform:{}},emits:[`connected`,`disconnected`,`error`],setup(n,{expose:r,emit:i}){let a=n,s=i,{isConnected:c,isConnecting:l,isClientConnected:u,error:d,connect:f,write:p,resize:v,close:y}=e(),{options:b}=j(a),x={fontSize:14,scrollback:5e3,allowTransparency:!1,disableStdin:!1,cursorBlink:!0,allowProposedApi:!0,theme:{background:`#000000`}},S={"\x1B[A":`\x1BOA`,"\x1B[B":`\x1BOB`,"\x1B[C":`\x1BOC`,"\x1B[D":`\x1BOD`,"\x1B[H":`\x1BOH`,"\x1B[F":`\x1BOF`},C=m(`terminalContainerRef`),T=ee(null),E=null,D=null,O=null,k=null,A=t(C);function M(e){c.value&&p(a.inputTransform?a.inputTransform(e):e)}function N(e){T.value&&T.value.write(e)}function P(){if(!(!T.value||!E))try{E.fit()}catch{}}function I(){P(),c.value&&T.value&&v({cols:T.value.cols,rows:T.value.rows})}function ne(){T.value&&_(()=>{P(),T.value&&(T.value.refresh(0,T.value.rows-1),T.value.focus())})}let L=o(I,100);function R(e){if(e)try{e.dispose()}catch{}}function re(){C.value&&(T.value=new G({...x,...b.value}),E=new V,k=new U,D=new H,O=new W,T.value.loadAddon(D),T.value.loadAddon(O),T.value.loadAddon(k),T.value.loadAddon(E),T.value.open(C.value),T.value.onData(M),T.value.onResize(({cols:e,rows:t})=>{c.value&&v({cols:e,rows:t})}),k.onContextLoss(()=>{R(k),k=null}),I())}async function z(){T.value&&await f({cols:T.value.cols,rows:T.value.rows,cwd:a.cwd,shell:a.shell,onData:N,onClose:()=>{T.value?.write(`\r
2
- \x1B[33mSession closed.\x1B[0m\r
3
- `)},onError:e=>{s(`error`,e)}})}async function B(){await y()}function ie(){T.value?.clear()}function K(){T.value?.focus()}function ae(e){T.value?.modes.applicationCursorKeysMode&&(e=S[e]??e),M(e)}return F(b,()=>{T.value&&(T.value.options={...x,...b.value},L())},{deep:!0}),F(c,e=>{e?(s(`connected`),_(()=>T.value?.focus())):s(`disconnected`)}),F([A.height,A.width],()=>{L()}),te(()=>{re(),a.autoConnect&&z()}),h(()=>{y(),R(E),R(k),R(D),R(O),R(T.value)}),r({connect:z,disconnect:B,clear:ie,focus:K,resize:I,refresh:ne,sendInput:ae,isConnected:c,isConnecting:l,isClientConnected:u,error:d,term:T}),(e,t)=>(g(),w(`div`,{ref_key:`terminalContainerRef`,ref:C,class:`cui-terminal w-full h-full bg-black overflow-hidden p-2 min-w-0`},null,512))}}),[[`__scopeId`,`data-v-82bcb47c`]]),Y=[{id:`esc`,label:`Esc`,sequence:`\x1B`},{id:`tab`,label:`Tab`,sequence:` `},{id:`ctrl`,label:`Ctrl`,sequence:``,modifier:!0},{id:`alt`,label:`Alt`,sequence:``,modifier:!0},{id:`home`,label:`Home`,sequence:`\x1B[H`},{id:`end`,label:`End`,sequence:`\x1B[F`},{id:`up`,label:`↑`,sequence:`\x1B[A`},{id:`down`,label:`↓`,sequence:`\x1B[B`},{id:`left`,label:`←`,sequence:`\x1B[D`},{id:`right`,label:`→`,sequence:`\x1B[C`},{id:`pgup`,label:`PgUp`,sequence:`\x1B[5~`},{id:`pgdn`,label:`PgDn`,sequence:`\x1B[6~`},{id:`del`,label:`Del`,sequence:`\x1B[3~`},{id:`slash`,label:`/`,sequence:`/`},{id:`dash`,label:`-`,sequence:`-`},{id:`pipe`,label:`|`,sequence:`|`},{id:`tilde`,label:`~`,sequence:`~`},{id:`underscore`,label:`_`,sequence:`_`}],X=[`tab`,`ctrl`,`up`,`down`,`left`,`right`],Z={a:``,b:``,c:``,d:``,e:``,f:``,g:`\x07`,h:`\b`,i:` `,j:`
4
- `,k:`\v`,l:`\f`,m:`\r`,n:``,o:``,p:``,q:``,r:``,s:``,t:``,u:``,v:``,w:``,x:``,y:``,z:``},he=[`onPointerdown`],Q={key:0,class:`flex flex-wrap gap-1.5 px-2 py-2 bg-black/90 border-t border-white/10`},ge=[`onClick`],_e=d(O({__name:`CuiTerminalToolbar`,emits:[`send`],setup(e,{expose:t,emit:n}){let r=n,{smBreakpoint:a}=l(),o=Y,s=i(`cui-terminal-toolbar-keys`,X),c=T(!1),u=N(new Set),d=k(()=>s.value.map(e=>o.find(t=>t.id===e)).filter(Boolean));function m(e){if(u.has(`ctrl`)&&e.length===1){let t=Z[e.toLowerCase()];if(t)return t}return u.has(`alt`)&&e.length===1?`\x1b${e}`:e}function h(e){if(e.modifier){u.has(e.id)?u.delete(e.id):u.add(e.id);return}let t=m(e.sequence);r(`send`,t),u.clear()}function _(e){let t=s.value.indexOf(e);t>=0?s.value.splice(t,1):s.value.push(e)}return t({activeModifiers:u,applyModifiers:m}),(e,t)=>{let n=K;return g(),w(`div`,null,[S(`div`,{class:x([`cui-terminal-toolbar flex items-center gap-1 px-2 py-1.5 bg-black/80 border-t border-white/10 overflow-x-auto no-scrollbar`,{"pt-3":!D(a)}])},[(g(!0),w(E,null,p(D(d),e=>(g(),w(`button`,{key:e.id,class:x([`toolbar-key flex-shrink-0 px-2.5 py-1.5 rounded text-xs font-mono select-none transition-colors duration-100 border min-w-[32px] text-center cursor-pointer`,{"bg-white/20 border-white/30 text-white":e.modifier&&D(u).has(e.id),"bg-white/5 border-white/10 text-white/70 hover:bg-white/15 hover:text-white active:bg-white/25":!(e.modifier&&D(u).has(e.id))}]),onPointerdown:f(t=>h(e),[`prevent`])},C(e.label),43,he))),128)),S(`button`,{class:x([`toolbar-key flex-shrink-0 px-2 py-1.5 rounded text-xs select-none transition-colors duration-100 border ml-auto`,{"bg-white/20 border-white/30 text-white":D(c),"bg-white/5 border-white/10 text-white/50 hover:bg-white/15 hover:text-white":!D(c)}]),onPointerdown:t[0]||=f(e=>c.value=!D(c),[`prevent`])},[P(n,{class:`w-3.5 h-3.5`})],34)],2),D(c)?(g(),w(`div`,Q,[(g(!0),w(E,null,p(D(o),e=>(g(),w(`button`,{key:e.id,class:x([`px-2.5 py-1 rounded text-xs font-mono select-none transition-colors duration-100 border`,{"bg-white/20 border-white/30 text-white":D(s).includes(e.id),"bg-white/5 border-white/10 text-white/30":!D(s).includes(e.id)}]),onClick:t=>_(e.id)},C(e.label),11,ge))),128))])):I(``,!0)])}}}),[[`__scopeId`,`data-v-e111c595`]]),ve={class:`h-full w-full dark-mode relative overflow-hidden`},ye={class:`relative w-6 h-6`},$=O({__name:`Terminal`,props:{navbarWidth:{default:0},navbarLeft:{default:0}},setup(e){let i=e,o=re(),{t:l}=n(),d=c(),{uiSettings:f}=z(d),{navbarWidth:C,navbarLeft:ee}=j(i),O=m(`toolbar`),A=T([]),N=T(``),F=T(0),I=new Map,V=window.innerHeight,H=0,U=t(O),W=k(()=>C.value+ee.value),G=k(()=>{let e=document.getElementById(`container`);return e&&parseFloat(getComputedStyle(e).paddingBottom)||0}),K=k(()=>F.value<=0?0:Math.max(0,F.value-G.value)),q=k(()=>A.value.find(e=>e.id===N.value)),ue=k(()=>({fontSize:f.value.console.zoom})),fe=T([{label:l(`components.form.tooltip.clear`),icon:le,buttonProps:{severity:`danger`},command:()=>{Q()?.clear()}},{label:l(`components.form.tooltip.zoom_out`),icon:ae,command:()=>{ke()}},{label:l(`components.form.tooltip.zoom_in`),icon:oe,command:()=>{Oe()}}]);function J(){V=window.innerHeight,Y()}function Y(){let e=window.visualViewport;if(!e)return;let t=Math.max(0,V-e.height-e.offsetTop);t!==F.value&&(F.value=t,Z(t>0))}function X(e){e.target?.closest?.(`.cui-terminal-toolbar`)||e.preventDefault()}function Z(e){e?(document.addEventListener(`touchmove`,X,{passive:!1}),document.documentElement.style.overscrollBehavior=`none`):(document.removeEventListener(`touchmove`,X),document.documentElement.style.overscrollBehavior=``)}function he(e,t){t?I.set(e,t):I.delete(e)}function Q(){return I.get(N.value)}function ge(){return H++,{id:u(12),name:`Terminal ${H}`,isConnected:!1,isConnecting:!0}}function $(){let e=ge();A.value.push(e),N.value=e.id}async function be(e){let t=A.value.findIndex(t=>t.id===e);if(t===-1)return;let n=I.get(e);if(n&&await n.disconnect(),A.value.splice(t,1),I.delete(e),N.value===e&&A.value.length>0){let e=Math.min(t,A.value.length-1);N.value=A.value[e].id,_(()=>{Q()?.refresh()})}}function xe(e){N.value=e,_(()=>{I.get(e)?.refresh()})}function Se(e){if(!O.value?.activeModifiers?.size)return e;let t=O.value.applyModifiers(e);return O.value.activeModifiers.clear(),t}function Ce(e){Q()?.sendInput(e)}async function we(){let e=Q();e&&(await e.disconnect(),await e.connect())}function Te(e){let t=A.value.find(t=>t.id===e);t&&(t.isConnected=!0,t.isConnecting=!1),e===N.value&&_(()=>{Q()?.refresh()})}function Ee(e){let t=A.value.find(t=>t.id===e);t&&(t.isConnected=!1,t.isConnecting=!1)}function De(e,t){o.error(`Terminal ${e} error:`,t);let n=A.value.find(t=>t.id===e);n&&(n.isConnected=!1,n.isConnecting=!1)}function Oe(){f.value.console.zoom!==20&&(f.value.console.zoom++,_(()=>{Q()?.resize()}))}function ke(){f.value.console.zoom!==8&&(f.value.console.zoom--,_(()=>{Q()?.resize()}))}return te(()=>{window.addEventListener(`resize`,J);let e=window.visualViewport;e&&(e.addEventListener(`resize`,Y),e.addEventListener(`scroll`,Y)),$()}),h(()=>{window.removeEventListener(`resize`,J);let e=window.visualViewport;e&&(e.removeEventListener(`resize`,Y),e.removeEventListener(`scroll`,Y)),Z(!1)}),(e,t)=>{let n=ie,i=r,o=s,c=ce,u=pe,d=se,f=B,m=de,h=a;return g(),w(`div`,ve,[P(o,{position:`left`},{default:v(()=>[P(i,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:t[0]||=t=>e.$router.push(`/menu`)},{icon:v(()=>[P(n,{class:`w-6 h-6`})]),_:1})]),_:1}),P(d,{scrollable:``,"left-offset":D(W),animate:``},{left:v(()=>[(g(!0),w(E,null,p(D(A),e=>(g(),M(c,{key:e.id,type:`tab`,label:e.name,active:D(N)===e.id,status:e.isConnected?`connected`:e.isConnecting?`connecting`:`disconnected`,closeable:D(A).length>1,onClick:t=>xe(e.id),onClose:t=>be(e.id)},null,8,[`label`,`active`,`status`,`closeable`,`onClick`,`onClose`]))),128)),y((g(),M(c,{type:`button`,onClick:$},{icon:v(()=>[P(u,{class:`w-4 h-4`})]),_:1})),[[h,D(l)(`views.terminal.new_tab`)]])]),_:1},8,[`left-offset`]),S(`div`,{class:`w-full flex flex-col relative`,style:L({paddingTop:`${D(55)}px`,height:`calc(100% - ${D(K)}px)`,transition:`height 150ms ease-out`})},[S(`div`,{class:x([`flex-1 relative min-h-0 overflow-hidden`,{"pb-1":D(F)>0}])},[(g(!0),w(E,null,p(D(A),e=>y((g(),M(me,{key:e.id,ref_for:!0,ref:t=>he(e.id,t),options:D(ue),"input-transform":Se,"auto-connect":``,onConnected:()=>Te(e.id),onDisconnected:()=>Ee(e.id),onError:t=>De(e.id,t)},null,8,[`options`,`onConnected`,`onDisconnected`,`onError`])),[[b,D(N)===e.id]])),128))],2),P(_e,{ref_key:`toolbar`,ref:O,onSend:Ce},null,512)],4),P(f,{model:D(fe),direction:`up`,"transition-delay":80,"tooltip-options":{position:`left`,event:void 0},class:`absolute right-3 z-11`,pt:{root:{style:`pointer-events: none`}},style:L({bottom:`calc(0.75rem + ${D(U).height.value}px + ${D(K)}px)`,transition:`bottom 150ms ease-out`})},{button:v(({visible:e,toggleCallback:t})=>[P(i,{severity:`secondary`,class:x([`dark-mode opacity-40 hover:opacity-100 active:opacity-100 focus:opacity-100 transition pointer-events-auto`,{"opacity-100":e}]),rounded:``,onClick:t},{icon:v(()=>[S(`div`,ye,[S(`div`,{class:x([`absolute top-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full transform transition-all duration-100 origin-center`,{"w-4 h-[2px] rotate-45 top-1/2 -translate-y-1/2 rounded-none":e}]),style:{backgroundColor:`var(--text-color)`}},null,2),S(`div`,{class:x([`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-1.5 h-1.5 rounded-full transition-all duration-100`,{"opacity-0 scale-0":e}]),style:{backgroundColor:`var(--text-color)`}},null,2),S(`div`,{class:x([`absolute bottom-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full transform transition-all duration-100 origin-center`,{"w-4 h-[2px] -rotate-45 bottom-1/2 translate-y-1/2 rounded-none":e}]),style:{backgroundColor:`var(--text-color)`}},null,2)])]),_:2},1032,[`class`,`onClick`])]),item:v(({item:e,toggleCallback:t})=>[y((g(),M(i,ne({severity:`secondary`},e.buttonProps,{rounded:``,onClick:t}),{icon:v(()=>[(g(),M(R(e.icon)))]),_:2},1040,[`onClick`])),[[h,{value:e.label}]])]),_:1},8,[`model`,`style`]),y((g(),M(i,{class:x([`opacity-40 hover:opacity-100 active:opacity-100 focus:opacity-100 transition absolute right-14 z-11`,{"!opacity-20 pointer-events-none":D(q)?.isConnected||D(q)?.isConnecting}]),style:L({bottom:`calc(0.75rem + ${D(U).height.value}px + ${D(K)}px)`,transition:`bottom 150ms ease-out`}),rounded:``,disabled:D(q)?.isConnected||D(q)?.isConnecting,onClick:we},{icon:v(()=>[P(m,{class:`text-white`})]),_:1},8,[`class`,`style`,`disabled`])),[[h,D(l)(`views.terminal.reconnect`)]])])}}});export{$ as default};
@@ -1,7 +0,0 @@
1
- import{Mr as e,Ot as t}from"./vendor-cameraui-DojVuZ2L.js";import{C as n,_n as r,ar as i}from"./api-Draww2tC.js";import{Fn as ee,Gn as a,Mn as o,Nn as s,an as c,bn as l,br as u,cn as d,cr as f,en as te,fn as ne,gr as p,hn as m,in as h,jn as re,mr as ie,pn as g,q as ae,qn as _,rr as v,sn as y,t as oe}from"./vendor-JQXDMBA-.js";import{K as se,j as ce}from"./vendor-primevue-C0acGg0Y.js";import{t as le}from"./server-BSYs0zoo.js";import{n as ue}from"./useServerRestart-BxDBO7k-.js";import{t as de}from"./plugins-BU7TQh_f.js";import{t as fe}from"./CuiConsole-B7R7U9UZ.js";import{t as pe}from"./useLogsSocket-DSxzAvQF.js";import{t as me}from"./CuiMarkdownContent-C2uBepC1.js";import{t as he}from"./alert-circle-pDGfnZ4K.js";import{t as ge}from"./platformLabels-D-cF6OTP.js";import{t as _e}from"./config-BZphegxi.js";function b(e){return`id`in e&&!(`type`in e)}function x(e){return`type`in e}var ve={key:0},ye={key:0,class:`flex items-start gap-3 px-4 py-3 rounded-xl bg-orange-500/10 border border-orange-500/30 mb-3`},be={class:`flex flex-col gap-1 min-w-0`},xe={class:`text-sm font-semibold text-orange-400`},Se={key:0},Ce={class:`text-xs text-orange-600 dark:text-orange-300`},we={class:`text-sm text-orange-400`},Te={key:1},Ee={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},De={key:2},Oe={class:`text-muted`},ke={class:`flex items-center gap-4 mt-4 px-4 py-3 rounded-xl bg-orange-500/10 border border-orange-500/30`},Ae={class:`flex flex-col gap-1 min-w-0`},je={class:`text-sm font-semibold text-orange-400`},Me={class:`text-xs text-orange-600 dark:text-orange-300`},Ne={key:3},Pe={class:`cui-label`},Fe={key:4,class:`w-full h-full relative`},Ie={key:5,class:`w-full h-full p-4 flex items-center justify-center`},Le=`2.0.0`,S=m({__name:`VersionsHandler`,props:{target:{},installVersion:{},action:{}},setup(m,{expose:S}){let C=new de,w=new le,Re=new _e,ze=ae(),T=m,E=i(),{t:D}=e(),{mdBreakpoint:O}=r(),{beginServerRestart:Be}=ue(),{isBeta:Ve}=n(),k=l(`dialogRef`),A=l(`dialogRefProps`),{target:j,installVersion:M}=ie(T),N=f();C.toggleQueryActivator(`getPluginVersionsQuery`,!1),C.toggleQueryActivator(`getPluginChangelogQuery`,!1),C.toggleQueryActivator(`getPluginCompatQuery`,!1),w.toggleQueryActivator(`checkVersionQuery`,!1),w.toggleQueryActivator(`getServerChangelogQuery`,!1);let He=h(()=>b(j.value)?j.value.pluginName:`server`),P=h(()=>T.action===`uninstall`&&b(j.value)),F=pe({target:He.value,onStdout:e=>B.value?.writeTerminal(e),onDisconnect:()=>B.value?.writeTerminal(`
2
- \rWebsocket failed to connect! Is the server running?\r
3
- \r
4
- `),onClearLog:()=>B.value?.clearTerminal(),onReconnected:()=>{B.value?.writeTerminal(`\r
5
- --- Reconnected ---\r
6
- \r
7
- `)}}),I=h(()=>({pluginversion:N.value||M.value})),Ue=h(()=>N.value||M.value||``),{data:We,isBusy:L}=w.checkVersionQuery(),{data:Ge}=Re.getConfigQuery(!0),{data:Ke,isBusy:R}=C.getPluginVersionsQuery(b(j.value)?j.value.pluginName:``),{data:qe,isBusy:Je,suspense:Ye}=C.getPluginChangelogQuery(b(j.value)?j.value.pluginName:``,I),{data:Xe,isBusy:Ze,suspense:Qe}=w.getServerChangelogQuery(Ue),{data:z,suspense:$e}=C.getPluginCompatQuery(b(j.value)?j.value.pluginName:``,I),{mutate:et,isPending:tt}=w.restartServerQuery(),{mutateAsync:nt,isPending:rt}=C.installPluginQuery(),{mutateAsync:it,isPending:at}=C.uninstallPluginQuery(),{mutateAsync:ot,isPending:st}=w.updateServerQuery(),B=a(`consoleRef`),V=f(!1),H=f(!1),U=f(!1),W=f(!1),G=f(!1),K=f(!1),q=f(!1),J=f(!1),Y=f(!1),ct=h(()=>R.value||L.value),lt=h(()=>!!(A.loading?.value||R.value||L.value||Je.value||Ze.value||rt.value||at.value||st.value||tt.value)),ut=h(()=>{let e=Ge.value;return e&&typeof e!=`string`?e.plugins?.betaVersions??!1:!1}),X=h(()=>b(j.value)?(Ke.value?.versions||[]).filter(e=>ut.value||!e.includes(`-`)):x(j.value)?(We.value?.versions||[]).filter(e=>oe(e,Le)>=0).filter(e=>Ve.value||!e.includes(`-`)):[]),Z=h(()=>z.value?.issues??[]),dt=h(()=>z.value?.platformCompatible===!1),ft=h(()=>ge(z.value?.os,z.value?.cpu)),pt=h(()=>b(j.value)?qe.value:Xe.value),mt=h(()=>({fontSize:O.value?12:14}));function Q(){V.value=!0,F.connect()}async function ht(){if(b(j.value))try{C.toggleQueryActivator(`getPluginChangelogQuery`,!0);let{isError:e}=await Ye();if(e)throw Error(`Failed to fetch changelog`);H.value=!0}catch{}else if(x(j.value))try{w.toggleQueryActivator(`getServerChangelogQuery`,!0);let{isError:e}=await Qe();if(e)throw Error(`Failed to fetch changelog`);H.value=!0}catch{}}async function gt(){if(b(j.value))try{C.toggleQueryActivator(`getPluginCompatQuery`,!0),await $e(),(Z.value.length||dt.value)&&(q.value=!0)}catch{}}function _t(e){return x(j.value)?!0:!(!b(j.value)||j.value.private||e===j.value.installedVersion)}async function $(e){if(!H.value&&_t(e)&&(await ht(),H.value)){A.confirmText&&(A.confirmText.value=D(`components.form.button.continue`)),K.value=!0;return}if(!J.value&&(J.value=!0,await gt(),q.value)){A.confirmText&&(A.confirmText.value=D(`components.form.button.continue`)),Y.value=!0;return}Q();try{if(b(j.value))await nt({pluginData:{pluginname:j.value.pluginName,pluginversion:e}});else if(x(j.value)){await ot({serverData:{version:e}}),ze.invalidateQueries({queryKey:[`api`]}),Be(),et(),k.value.close();return}U.value=!0,A.confirmText&&(A.confirmText.value=D(`components.form.button.finish`))}catch(e){E.add({severity:`error`,detail:e,life:3e3})}}async function vt(){if(b(j.value)){Q();try{await it({pluginName:j.value.pluginName,removeStorage:G.value}),W.value=!0,A.confirmText&&(A.confirmText.value=D(`components.form.button.finish`))}catch(e){E.add({severity:`error`,detail:e,life:3e3})}}}async function yt(){if(P.value)return W.value?void 0:(await vt(),null);if(!U.value)return K.value?(K.value=!1,M.value?await $(M.value):N.value&&await $(N.value),null):Y.value?(Y.value=!1,M.value?await $(M.value):N.value&&await $(N.value),null):M.value?(await $(M.value),null):N.value?(await $(N.value),null):(E.add({severity:`error`,detail:D(`components.toast.no_version_selected`),life:3e3}),null)}return _(X,e=>{e.length&&(N.value=e[0])},{immediate:!0,deep:!0}),_(V,e=>{e?k.value.data.dialogContentClass=`not-md:px-0 h-full md:h-[50vh]`:delete k.value.data.dialogContentClass}),_(O,e=>{!e&&(V.value||H.value)&&k.value.options.props&&(k.value.options.props.style.height=`60vh`,k.value.options.props.style.width=`70vh`,k.value.options.props.style.maxWidth=`100%`)}),re(()=>{P.value||(M.value?$(M.value):b(j.value)?C.toggleQueryActivator(`getPluginVersionsQuery`,!0):x(j.value)&&w.toggleQueryActivator(`checkVersionQuery`,!0))}),o(()=>{F.disconnect()}),S({isLoading:lt,onConfirm:yt}),(e,n)=>{let r=he,i=me,a=se,o=ce,l=fe,f=t;return s(),d(`div`,null,[p(q)&&!p(V)?(s(),d(`div`,ve,[p(dt)?(s(),d(`div`,ye,[g(r,{class:`w-5 h-5 shrink-0 text-orange-400 mt-0.5`}),c(`div`,be,[c(`span`,xe,[ne(u(e.$t(`components.plugin_search.incompatible_system`)),1),p(ft)?(s(),d(`span`,Se,` — `+u(p(ft)),1)):y(``,!0)]),c(`span`,Ce,u(e.$t(`components.plugin_search.incompatible_worker_hint`)),1)])])):y(``,!0),(s(!0),d(te,null,ee(p(Z),t=>(s(),d(`div`,{key:t.engine,class:`flex items-start gap-3 px-4 py-3 rounded-xl bg-orange-500/10 border border-orange-500/30 mb-3`},[g(r,{class:`w-5 h-5 shrink-0 text-orange-400 mt-0.5`}),c(`span`,we,u(e.$t(`components.dialog.message.compatibility_engine`,{engine:t.engine,required:t.required,current:t.current})),1)]))),128))])):p(H)&&p(pt)&&!p(V)?(s(),d(`div`,Te,[c(`h3`,Ee,u(e.$t(`components.form.label.changelog`)),1),g(i,{content:p(pt)},null,8,[`content`])])):p(P)&&!p(V)?(s(),d(`div`,De,[c(`p`,Oe,u(e.$t(`components.dialog.message.confirm_uninstall_plugin`)),1),c(`div`,ke,[c(`div`,Ae,[c(`span`,je,u(e.$t(`components.dialog.message.uninstall_remove_storage`)),1),c(`span`,Me,u(e.$t(`components.dialog.message.uninstall_remove_storage_hint`)),1)]),g(a,{modelValue:p(G),"onUpdate:modelValue":n[0]||=e=>v(G)?G.value=e:null,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])):!p(M)&&!p(V)&&!p(H)?(s(),d(`div`,Ne,[c(`label`,Pe,u(e.$t(`components.form.label.version`)),1),g(o,{modelValue:p(N),"onUpdate:modelValue":n[1]||=e=>v(N)?N.value=e:null,options:p(X),loading:p(ct),class:`w-full mt-2`},null,8,[`modelValue`,`options`,`loading`])])):p(V)?(s(),d(`div`,Fe,[g(l,{ref_key:`consoleRef`,ref:B,options:p(mt),class:`bg-black !w-full`,"ignore-breakpoint":``,onResize:p(F).reportSize},null,8,[`options`,`onResize`])])):(s(),d(`div`,Ie,[g(f,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{S as default};
@@ -1,2 +0,0 @@
1
- import{Mr as e,Mt as t,Ot as n,k as r,z as i}from"./vendor-cameraui-DojVuZ2L.js";import{B as a,R as o,Zn as s,_n as c,ar as l,dt as ee,ft as u,i as te,mn as d,mr as f,nt as ne,rr as p,ut as re,zn as ie}from"./api-Draww2tC.js";import{$n as m,Dn as h,Mn as g,Nn as _,Tn as ae,U as v,Xn as y,an as b,br as x,cn as S,cr as C,en as oe,fn as w,gr as T,hn as E,in as D,on as O,or as k,pn as A,q as se,qn as j,rr as M,sn as N}from"./vendor-JQXDMBA-.js";import{K as ce,L as le,R as ue,S as de,_ as fe,j as pe,z as me}from"./vendor-primevue-C0acGg0Y.js";import{t as he}from"./api-Mny5Elfn.js";import{t as ge}from"./plugins-BU7TQh_f.js";import{t as _e}from"./CuiDataTable-CQhCu0px.js";import{t as ve}from"./back-filled-DUUGErMw.js";import{n as ye,t as be}from"./round-restart-alt-BFgY3k77.js";import{t as xe}from"./pencil-outline-BrOrbuzc.js";import{t as Se}from"./deployed-code-update-CYS6eKfa.js";async function Ce(){return(await f.get(`/workers/config`)).data}async function we(e){return(await f.patch(`/workers/config`,e)).data}async function Te(){return(await f.post(`/workers/pairings`)).data}async function P(e){await f.delete(`/workers/${e}`)}async function Ee(e){await f.post(`/workers/${e}/restart`)}async function De(e){await f.post(`/workers/${e}/update`)}async function Oe({agentId:e,name:t}){await f.patch(`/workers/${e}`,{name:t})}async function ke({cameraId:e,agentId:t}){return(await f.post(`/workers/assign`,{cameraId:e,agentId:t})).data}async function F({cameraId:e}){return(await f.post(`/workers/unassign`,{cameraId:e})).data}async function I({pluginName:e,agentId:t}){return(await f.post(`/workers/assign-plugin`,{pluginName:e,agentId:t})).data}async function L({pluginName:e}){return(await f.post(`/workers/unassign-plugin`,{pluginName:e})).data}var Ae=class{_queryClient=se();toast=l();getConfigQuery(){return p({queryKey:[`workersConfig`],queryFn:()=>Ce(),retry:!1})}patchConfigQuery(){return v({mutationFn:we,onSuccess:()=>this._queryClient.invalidateQueries({queryKey:[`workersConfig`]}),onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})}})}createPairingQuery(){return v({mutationFn:Te})}removeWorkerQuery(){return v({mutationFn:P,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`camerasList`]})})}assignCameraQuery(){return v({mutationFn:ke,onMutate:({cameraId:e,agentId:t})=>this.patchCameraWorker(e,t),onError:(e,t,n)=>{n?.rollback(),this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`camerasList`]})})}unassignCameraQuery(){return v({mutationFn:F,onMutate:({cameraId:e})=>this.patchCameraWorker(e,void 0),onError:(e,t,n)=>{n?.rollback(),this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`camerasList`]})})}restartWorkerQuery(){return v({mutationFn:Ee})}updateWorkerQuery(){return v({mutationFn:De,onError:e=>{this.toast.add({severity:`error`,detail:e,life:5e3})}})}renameWorkerQuery(){return v({mutationFn:Oe,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})}})}assignPluginQuery(){return v({mutationFn:I,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`pluginsList`]})})}unassignPluginQuery(){return v({mutationFn:L,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`pluginsList`]})})}patchCameraWorker(e,t){let n=[];for(let[r,i]of this._queryClient.getQueriesData({queryKey:[`camerasList`]}))i?.result&&(n.push([r,i]),this._queryClient.setQueryData(r,{...i,result:i.result.map(n=>n._id===e?{...n,workerAgentId:t}:n)}));return{rollback:()=>{for(let[e,t]of n)this._queryClient.setQueryData(e,t)}}}},je={class:`flex flex-col gap-2 w-full`},Me={for:`workerName`,class:`cui-label`},Ne=E({__name:`RenameWorker`,props:{currentName:{}},setup(e,{expose:t}){let n=C(e.currentName);return t({onConfirm:async()=>n.value.trim()||null}),(e,t)=>{let i=r;return _(),S(`div`,je,[b(`label`,Me,x(e.$t(`views.workers.name`)),1),A(i,{id:`workerName`,modelValue:T(n),"onUpdate:modelValue":t[0]||=e=>M(n)?n.value=e:null,class:`w-full`,autofocus:``},null,8,[`modelValue`])])}}}),R=k({workers:[],workerHistory:{}}),z=null,B=null;function Pe(e){let t=R.workers.findIndex(t=>t.agentId===e.agentId);if(t!==-1){let n=[...R.workers];n[t]=e,R.workers=n}else R.workers=[...R.workers,e];let n=R.workerHistory[e.agentId]??[];R.workerHistory={...R.workerHistory,[e.agentId]:[...n,e].slice(-30)}}async function Fe(){if(B?.ready.value)try{R.workers=await B.request(`get-workers`)}catch{}}async function Ie(){if(B?.ready.value)try{R.workerHistory=await B.request(`get-worker-history`)}catch{}}async function V(){await Promise.all([Fe(),Ie()])}function Le(){return B||(z=m(!0),z.run(()=>{let e=s(`/workers`);B=e,e.on(`worker-update`,e=>Pe(e)),e.on(`worker-removed`,({agentId:e})=>{R.workers=R.workers.filter(t=>t.agentId!==e);let t={...R.workerHistory};delete t[e],R.workerHistory=t}),e.onReady(()=>{V()})}),B)}function Re(){function e(){Le()}function t(){}return{isConnected:D(()=>B?.connected.value??!1),workers:D(()=>R.workers),workerHistory:D(()=>R.workerHistory),connect:e,disconnect:t,loadAll:V}}var ze={key:0,class:`page-title`},Be={key:1,class:`w-full h-full flex items-center justify-center`},Ve={key:2,class:`flex flex-col w-full gap-6`},He={class:`card-title`},Ue={class:`flex flex-col gap-6`},We={class:`flex items-center gap-4`},Ge={class:`flex flex-col field-switch-gap`},Ke={class:`cui-label-switch`},qe={class:`flex flex-col field-gap`},Je={for:`master-address`,class:`cui-label`},Ye={class:`flex flex-col field-gap`},Xe={for:`leaf-port`,class:`cui-label`},Ze={class:`flex flex-row items-end justify-end`},Qe={key:0},$e={class:`card-title`},et={class:`flex flex-col items-center justify-center gap-4 py-6`},tt={class:`text-muted text-sm`},nt={key:1},rt={class:`card-title`},it={class:`text-sm block mb-6`},at={class:`text-muted text-sm`},ot={class:`font-bold text-color text-sm`},st={key:2},ct={class:`card-title`},lt={class:`text-sm block mb-6`},ut={class:`text-muted text-sm`},dt={class:`flex flex-col`},ft={class:`font-bold text-color text-sm`},pt={key:0,class:`text-muted text-xs`},mt={key:3},ht={class:`card-title`},gt={class:`flex flex-col gap-6`},_t={class:`text-sm`},vt={class:`flex flex-col field-gap`},yt={class:`cui-label`},bt={class:`flex flex-col field-gap`},xt={class:`flex flex-row items-center justify-between`},St={class:`cui-label`},Ct={class:`pairing-snippet`},wt={class:`flex flex-row items-end justify-end`},Tt=d(E({__name:`Workers`,setup(s){let{t:d}=e(),{smBreakpoint:f}=c(),p=ne(),m=l(),v=Re(),{workers:E,workerHistory:k,isConnected:se}=v,Ce=new he,we=new u,Te=new ge,P=new Ae,{data:Ee,isLoading:De}=we.getCamerasQuery(C({page:1,pageSize:999})),{data:Oe,isLoading:ke}=Te.getPluginsQuery(C({page:1,pageSize:999})),{data:F}=P.getConfigQuery(),{mutateAsync:I,isPending:L}=P.patchConfigQuery(),{mutateAsync:je}=P.assignCameraQuery(),{mutateAsync:Me}=P.unassignCameraQuery(),{mutateAsync:R}=P.restartWorkerQuery(),{mutateAsync:z}=P.updateWorkerQuery(),{mutateAsync:B,isPending:Pe}=P.createPairingQuery(),{mutateAsync:Fe}=P.removeWorkerQuery(),{mutateAsync:Ie}=P.assignPluginQuery(),{mutateAsync:V}=P.unassignPluginQuery(),{mutateAsync:Le}=P.renameWorkerQuery(),{data:Tt}=Ce.apiInfoQuery(),Et={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm font-semibold`}}},Dt=C(!1),H=C([]),U=C([]),W=C([]),G=C(new Set),K=C(new Set),q=C(null),J=C(``),Y=C(7422),Ot=!1,X=new Map,kt=D(()=>Ee.value?.result??[]),At=D(()=>Oe.value?.result??[]),Z=D(()=>F.value?.enabled??!1),jt=D(()=>(F.value?.suggestedAddresses??[]).map(e=>({label:e,value:e}))),Mt=D(()=>Y.value!==(F.value?.port??7422)),Nt=D(()=>J.value!==(F.value?.address??``)||Mt.value),Pt=D(()=>new Set(E.value.map(e=>e.agentId))),Q=D(()=>Tt.value?.version),Ft=D(()=>q.value?Math.max(0,Math.round((q.value.expiresAt-Date.now())/6e4)):0),It=D(()=>q.value?[`worker:`,` master: ${q.value.address||`<MASTER_IP>`}`,` apiPort: ${q.value.apiPort}`,` pairingCode: ${q.value.code}`,` name: my-worker`,` capabilities:`,` - frameDecoding`,` - pluginHost`].join(`
2
- `):``),Lt=D(()=>[{type:`indicator`,field:`status`,columnProps:{headerClass:`w-5 max-w-5`,class:`w-5 max-w-5`},color(e){return e.online?e.versionMismatch?`orange`:`green`:`red`},tooltip(e){return e.online?e.update?.error?d(`views.workers.update_failed`,{error:e.update.error}):e.update?.updating?d(`views.workers.updating`):e.versionMismatch?d(`views.workers.version_mismatch`,{version:e.version||`?`}):d(`views.workers.online`):d(`views.workers.offline`)}},{type:`category`,field:`name`,name:d(`views.workers.name`),columnProps:{headerClass:`w-40 min-w-40 max-w-40`,class:`w-40 min-w-40 max-w-40`},props:{class:`font-bold text-color`}},{type:`category`,field:e=>e.version?e.versionMismatch&&Q.value?`v${e.version} → v${Q.value}`:`v${e.version}`:`—`,name:d(`views.workers.version`),asChip:!0,columnProps:{headerClass:`min-w-30`,class:`min-w-30`}},{type:`category`,field:e=>e.platform?`${e.platform.os}/${e.platform.arch}`:`—`,name:d(`views.workers.platform`),asChip:!0,columnProps:{headerClass:`min-w-40`,class:`min-w-40`}},{type:`category`,field:e=>e.pid?.toString()??`—`,name:d(`views.workers.pid`),columnProps:{headerClass:`min-w-20`,class:`min-w-20`}},{type:`category`,field:e=>e.cpuLoad===void 0?`—`:`${e.cpuLoad}%`,name:d(`views.workers.cpu`),asChip:!0,columnProps:{headerClass:`min-w-30`,class:`min-w-30`}},{type:`chart`,field:`cpu_chart`,for:`cpuLoad`,columnProps:{headerClass:`min-w-[250px]`,class:`min-w-[250px]`}},{type:`category`,field:e=>e.memLoad===void 0?`—`:`${e.memLoad}%`,name:d(`views.workers.memory`),asChip:!0,columnProps:{headerClass:`min-w-30`,class:`min-w-30`}},{type:`chart`,field:`memory_chart`,for:`memLoad`,columnProps:{headerClass:`min-w-[250px]`,class:`min-w-[250px]`}},{type:`action`,field:`actions`,columnProps:{class:`text-right`},buttons:[{icon:xe,buttonProps:{severity:`secondary`},tooltip:()=>d(`views.workers.rename_worker`),action:e=>zt(e)},{icon:Se,buttonProps:{severity:`secondary`},loading:e=>e.update?.updating||W.value.includes(e.agentId),disabled:e=>!e.online||!e.versionMismatch||!e.update?.updatable,tooltip:e=>Bt(e),action:e=>Vt(e.agentId)},{icon:be,buttonProps:{severity:`secondary`},loading:e=>H.value.includes(e.name),disabled:e=>!e.online,tooltip:()=>d(`views.workers.restart_worker`),action:e=>Ht(e.name,e.agentId)},{icon:o,buttonProps:{severity:`danger`},loading:e=>U.value.includes(e.agentId),tooltip:()=>d(`views.workers.remove_worker`),action:e=>tn(e)}]}]),Rt=D(()=>{let e=k.value;return E.value.reduce((t,n)=>{for(let r of[`cpuLoad`,`memLoad`]){let i=e[n.agentId]??[],a=i.slice(-30).filter(e=>e[r]!==void 0).map(e=>parseFloat(e[r])),o=i.slice(-30).map(e=>e.lastHeartbeat),s=[...a,...Array(30-a.length).fill(0)],c=[...o,...Array(30-o.length).fill(null)];t[`${n.name}_${r}`]={labels:c,datasets:[{data:s,backgroundColor:e=>{let t=e.raw;return t>=90?`#FA5252`:t>=50?`#FF9966`:`#df2a4c`},borderWidth:0,borderRadius:3,barPercentage:.8,categoryPercentage:.8,maxBarThickness:4,barThickness:4}]}}return t},{})});function zt(e){p.openComponentDialog(Ne,{data:{title:d(`views.workers.rename_worker`),confirmText:d(`views.workers.save`),contentProps:{currentName:e.name}},onConfirm:async t=>{!t||t===e.name||await Le({agentId:e.agentId,name:t})}})}function Bt(e){return e.update?.updating?d(`views.workers.updating`):Q.value?d(`views.workers.update_worker`,{version:Q.value}):d(`views.workers.update_worker_short`)}async function Vt(e){X.delete(e),W.value.push(e);try{await z(e)}finally{W.value=W.value.filter(t=>t!==e)}}async function Ht(e,t){H.value.push(e);try{await R(t)}finally{H.value=H.value.filter(t=>t!==e)}}function Ut(){let e=[];for(let t of E.value){let n=t.online?t.name:`${t.name} (${d(`views.workers.offline`).toLowerCase()})`;e.push({label:n,value:t.agentId})}return e}function $(e){return e&&Pt.value.has(e)?e:null}function Wt(e,t){if(!e?.length)return!0;let n=e.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1)),r=e.filter(e=>!e.startsWith(`!`));return n.includes(t)?!1:r.length===0||r.includes(t)}function Gt(e,t){return!t.platform||Wt(e.os,t.platform.os)&&Wt(e.cpu,t.platform.arch)}function Kt(e){let t=[];return e.os?.length&&t.push(`os: ${e.os.join(`, `)}`),e.cpu?.length&&t.push(`cpu: ${e.cpu.join(`, `)}`),t.join(` · `)}function qt(e){let t=[];for(let n of E.value){let r=Gt(e,n),i=n.online?``:` (${d(`views.workers.offline`).toLowerCase()})`,a=r?``:` — ${d(`views.workers.incompatible`)}`;t.push({label:`${n.name}${i}${a}`,value:n.agentId,disabled:!r})}return t}function Jt(e){return K.value.has(e)}async function Yt(e,t){if(t===$(e.workerAgentId))return;let n=new Set(K.value);n.add(e.pluginName),K.value=n;try{t?await Ie({pluginName:e.pluginName,agentId:t}):await V({pluginName:e.pluginName})}catch{}finally{let t=new Set(K.value);t.delete(e.pluginName),K.value=t}}function Xt(e){return G.value.has(e)}async function Zt(e,t){if(t===$(e.workerAgentId))return;let n=new Set(G.value);n.add(e._id),G.value=n;try{t?await je({cameraId:e._id,agentId:t}):await Me({cameraId:e._id})}catch{}finally{let t=new Set(G.value);t.delete(e._id),G.value=t}}async function Qt(){try{q.value=await B()}catch{}}async function $t(e){if(e&&!J.value&&(J.value=F.value?.suggestedAddresses?.[0]??``,!J.value)){p.openTextDialog({data:{title:d(`views.workers.enable_workers`),contentText:d(`views.workers.address_required`),confirmText:d(`views.workers.ok`)}});return}try{await I(e?{enabled:!0,address:J.value,port:Y.value}:{enabled:!1})}catch{}}async function en(){try{await I({address:J.value,port:Y.value})}catch{}}function tn(e){p.openTextDialog({data:{title:d(`views.workers.remove_worker`),confirmText:d(`views.workers.remove`),contentText:d(`views.workers.remove_worker_confirm`,{name:e.name}),confirmButtonProps:{severity:`danger`}},dialogSize:{desktop:{width:`auto`,maxWidth:`560px`,maxHeight:`90vh`}},onConfirm:async()=>{U.value.push(e.agentId);try{await Fe(e.agentId)}finally{U.value=U.value.filter(t=>t!==e.agentId)}}})}return h(async()=>{v.connect(),await ae(),v.loadAll(),Dt.value=!0}),j(F,e=>{e&&(J.value=e.address,Y.value=e.port)},{immediate:!0}),j(E,e=>{if(!Ot){if(!e.length)return;for(let t of e)t.update?.error&&X.set(t.agentId,t.update.error);Ot=!0;return}for(let t of e){if(t.update?.updating){X.delete(t.agentId);continue}let e=t.update?.error;if(!e){X.delete(t.agentId);continue}X.get(t.agentId)!==e&&(X.set(t.agentId,e),m.add({severity:`error`,summary:t.name,detail:d(`views.workers.update_failed`,{error:e}),life:6e3}))}}),g(()=>{v.disconnect()}),(e,o)=>{let s=ve,c=t,l=a,u=n,d=me,ne=ce,p=pe,m=fe,h=i,g=ye,ae=ie,v=de,C=_e,D=r,k=ee,j=le,he=ue;return _(),S(`div`,null,[T(f)?N(``,!0):(_(),S(`h1`,ze,x(e.$t(`views.workers.title`)),1)),A(l,{position:`left`},{default:y(()=>[A(c,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:o[0]||=t=>e.$router.push(`/menu`)},{icon:y(()=>[A(s,{class:`w-6 h-6`})]),_:1})]),_:1}),!T(Dt)||!T(se)?(_(),S(`div`,Be,[A(u,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(_(),S(`div`,Ve,[b(`div`,null,[b(`span`,He,x(e.$t(`views.workers.configuration`)),1),A(h,{class:`cui-card`},{content:y(()=>[b(`div`,Ue,[b(`div`,We,[b(`div`,Ge,[b(`label`,Ke,x(e.$t(`views.workers.enable_workers`)),1),A(d,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:y(()=>[w(x(e.$t(`views.workers.enable_workers_description`)),1)]),_:1})]),A(ne,{"model-value":T(Z),disabled:T(L),class:`ml-auto shrink-0`,"onUpdate:modelValue":$t},null,8,[`model-value`,`disabled`])]),T(Z)?(_(),S(oe,{key:0},[b(`div`,qe,[b(`label`,Je,x(e.$t(`views.workers.master_address`)),1),A(p,{modelValue:T(J),"onUpdate:modelValue":o[1]||=e=>M(J)?J.value=e:null,"input-id":`master-address`,options:T(jt),editable:``,"option-label":`label`,"option-value":`value`,placeholder:e.$t(`views.workers.master_address_placeholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),A(d,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:y(()=>[w(x(e.$t(`views.workers.master_address_hint`)),1)]),_:1})]),b(`div`,Ye,[b(`label`,Xe,x(e.$t(`views.workers.leaf_port`)),1),A(m,{modelValue:T(Y),"onUpdate:modelValue":o[2]||=e=>M(Y)?Y.value=e:null,"input-id":`leaf-port`,min:1024,max:65535,"use-grouping":!1,class:`w-full`},null,8,[`modelValue`]),T(Mt)&&(T(F)?.pairedWorkers??0)>0?(_(),O(d,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:y(()=>[w(x(e.$t(`views.workers.port_change_warning`)),1)]),_:1})):N(``,!0)]),b(`div`,Ze,[A(c,{class:`cui-button-medium`,label:e.$t(`views.workers.save`),loading:T(L),disabled:!T(Nt),onClick:en},null,8,[`label`,`loading`,`disabled`])])],64)):N(``,!0)])]),_:1})]),T(Z)?(_(),S(`div`,Qe,[b(`span`,$e,x(e.$t(`views.workers.workers`)),1),T(E).length?(_(),O(g,{key:0,items:T(E),headers:T(Lt),"chart-data":T(Rt)},null,8,[`items`,`headers`,`chart-data`])):(_(),O(h,{key:1,class:`cui-card`,pt:{root:{class:`h-full`}}},{content:y(()=>[b(`div`,et,[A(ae,{class:`w-12 h-12 text-muted`}),b(`span`,tt,x(e.$t(`views.workers.no_workers`)),1)])]),_:1}))])):N(``,!0),T(Z)&&T(E).length?(_(),S(`div`,nt,[b(`span`,rt,x(e.$t(`views.workers.camera_assignments`)),1),A(h,{class:`cui-card`},{content:y(()=>[b(`span`,it,x(e.$t(`views.workers.camera_assignments_description`)),1),A(C,{value:T(kt),loading:T(De),pt:Et,"striped-rows":``,class:`w-full`},{loading:y(()=>[A(u,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:y(()=>[b(`span`,at,x(e.$t(`views.workers.no_cameras`)),1)]),default:y(()=>[A(v,{field:`name`,header:e.$t(`views.workers.camera`),"header-class":`p-2 min-w-40`,class:`p-2 min-w-40`},{body:y(({data:e})=>[b(`span`,ot,x(e.name),1)]),_:1},8,[`header`]),A(v,{header:e.$t(`views.workers.workers`),"header-class":`p-2 w-full`,class:`p-2 w-full`},{body:y(({data:t})=>[A(p,{"model-value":$(t.workerAgentId),options:Ut(),"option-label":`label`,"option-value":`value`,placeholder:e.$t(`views.workers.local`),class:`w-full`,"show-clear":``,loading:Xt(t._id),disabled:Xt(t._id),"onUpdate:modelValue":e=>Zt(t,e)},null,8,[`model-value`,`options`,`placeholder`,`loading`,`disabled`,`onUpdate:modelValue`])]),_:1},8,[`header`])]),_:1},8,[`value`,`loading`])]),_:1})])):N(``,!0),T(Z)&&T(E).length?(_(),S(`div`,st,[b(`span`,ct,x(e.$t(`views.workers.plugin_assignments`)),1),A(h,{class:`cui-card`},{content:y(()=>[b(`span`,lt,x(e.$t(`views.workers.plugin_assignments_description`)),1),A(C,{value:T(At),loading:T(ke),pt:Et,"striped-rows":``,class:`w-full`},{loading:y(()=>[A(u,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:y(()=>[b(`span`,ut,x(e.$t(`views.workers.no_plugins`)),1)]),default:y(()=>[A(v,{field:`displayName`,header:e.$t(`views.workers.plugin`),"header-class":`p-2 min-w-40`,class:`p-2 min-w-40`},{body:y(({data:e})=>[b(`div`,dt,[b(`span`,ft,x(e.displayName),1),Kt(e)?(_(),S(`span`,pt,x(Kt(e)),1)):N(``,!0)])]),_:1},8,[`header`]),A(v,{header:e.$t(`views.workers.workers`),"header-class":`p-2 w-full`,class:`p-2 w-full`},{body:y(({data:t})=>[A(p,{"model-value":$(t.workerAgentId),options:qt(t),"option-label":`label`,"option-value":`value`,"option-disabled":`disabled`,placeholder:e.$t(`views.workers.local`),class:`w-full`,"show-clear":``,loading:Jt(t.pluginName),disabled:Jt(t.pluginName),"onUpdate:modelValue":e=>Yt(t,e)},null,8,[`model-value`,`options`,`placeholder`,`loading`,`disabled`,`onUpdate:modelValue`])]),_:1},8,[`header`])]),_:1},8,[`value`,`loading`])]),_:1})])):N(``,!0),T(Z)?(_(),S(`div`,mt,[b(`span`,ht,x(e.$t(`views.workers.pair_worker`)),1),A(h,{class:`cui-card`},{content:y(()=>[b(`div`,gt,[b(`span`,_t,x(e.$t(`views.workers.pair_worker_description`)),1),T(q)?(_(),S(oe,{key:0},[b(`div`,vt,[b(`label`,yt,x(e.$t(`views.workers.pairing_code`)),1),A(he,null,{default:y(()=>[A(D,{"model-value":T(q).code,readonly:``,type:`text`},null,8,[`model-value`]),A(j,null,{default:y(()=>[A(k,{"action-text":e.$t(`views.workers.copied`),icon:T(re),"button-props":{severity:`secondary`,text:!0},onAction:o[3]||=e=>T(te)(T(q).code)},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),A(d,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:y(()=>[w(x(e.$t(`views.workers.pairing_expires`,{minutes:T(Ft)})),1)]),_:1})]),b(`div`,bt,[b(`div`,xt,[b(`label`,St,x(e.$t(`views.workers.pairing_snippet`)),1),A(k,{"action-text":e.$t(`views.workers.copied`),icon:T(re),"button-props":{severity:`secondary`,text:!0},onAction:o[4]||=e=>T(te)(T(It))},null,8,[`action-text`,`icon`])]),b(`pre`,Ct,x(T(It)),1),A(d,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:y(()=>[w(x(e.$t(`views.workers.pairing_snippet_hint`)),1)]),_:1})])],64)):N(``,!0),b(`div`,wt,[A(c,{class:`cui-button-medium`,label:e.$t(`views.workers.generate_code`),loading:T(Pe),onClick:Qt},null,8,[`label`,`loading`])])])]),_:1})])):N(``,!0)]))])}}}),[[`__scopeId`,`data-v-94ca58a2`]]);export{Tt as default};