@camera.ui/server 2.1.4 → 2.1.6

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 (257) hide show
  1. package/dist/interface/assets/{404-6v3-U7nj.js → 404-EUyzR8Cu.js} +1 -1
  2. package/dist/interface/assets/{About-IMZSnCy7.js → About-BmfMwt66.js} +1 -1
  3. package/dist/interface/assets/{Automation-xs_GEpGx.js → Automation-DtTMxMlL.js} +3 -3
  4. package/dist/interface/assets/{AutomationImport-CR4fWWkU.js → AutomationImport-Cxrhgzer.js} +2 -2
  5. package/dist/interface/assets/{AutomationStore-rB-eVXdY.js → AutomationStore-aTGlzTcI.js} +2 -2
  6. package/dist/interface/assets/{AutomationStoreDetail-DzMg8IOO.js → AutomationStoreDetail-BtmSvtyE.js} +2 -2
  7. package/dist/interface/assets/Automations-CBeEWCad.js +2 -0
  8. package/dist/interface/assets/Camera-9tFj730F.js +2 -0
  9. package/dist/interface/assets/Camera-C5gF7yVN.css +1 -0
  10. package/dist/interface/assets/{CameraConsole-CQLrlDvb.js → CameraConsole-rCJr-qfx.js} +1 -1
  11. package/dist/interface/assets/Cameras-BZkbEN1q.css +1 -0
  12. package/dist/interface/assets/Cameras-DFuh9jxK.js +652 -0
  13. package/dist/interface/assets/Camview-C2byPDDS.js +1 -0
  14. package/dist/interface/assets/{Camview-UCj_OW0s.css → Camview-DxxONfeK.css} +1 -1
  15. package/dist/interface/assets/{Config-DxYeS7cY.js → Config-C_IAFeWx.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionCameraControl-Biu5BwNu.js → ConfigActionCameraControl-Caqlckcz.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionDelay-CK5j4XLw.js → ConfigActionDelay-CZeAJTj7.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionHttp-Dtvi3jZB.js → ConfigActionHttp-DcQCJ4zV.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionImageInput-Dh0A20j9.js → ConfigActionImageInput-DkgxdP2U.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionMqtt-DwZdnDlb.js → ConfigActionMqtt-Dp2-YpS9.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionNotification-BVqYxGu8.js → ConfigActionNotification-DDbDqLLs.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionNotificationControl-BTdnQqox.js → ConfigActionNotificationControl-CX83znhY.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionOutput-Dv745ppL.js → ConfigActionOutput-kMcDrgsm.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionPlugin-C9QdPDXC.js → ConfigActionPlugin-Bv2Ke9_L.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionSensor-D17wASao.js → ConfigActionSensor-CogS-K7S.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionSnapshot-CrbMLwuh.js → ConfigActionSnapshot-CdIciF5F.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionVariable-C0HobSMN.js → ConfigActionVariable-DS-nQLns.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionIfElse-DsedkGhY.js → ConfigConditionIfElse-BWYzHNnH.js} +1 -1
  29. package/dist/interface/assets/{ConfigConditionSensorState-rRLbA2_b.js → ConfigConditionSensorState-CxiaJpOs.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionSwitch-5nEVS-Oj.js → ConfigConditionSwitch-l01kWXVF.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionTime-CieLn-sp.js → ConfigConditionTime-0Du7w_QE.js} +1 -1
  32. package/dist/interface/assets/{ConfigSensorValueInput-CRRM_aBz.js → ConfigSensorValueInput-Dm9r6m8t.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerDetection-CMVgejZ3.js → ConfigTriggerDetection-CvK9Hvcd.js} +1 -1
  34. package/dist/interface/assets/ConfigTriggerGeofence-DQcdG6av.js +1 -0
  35. package/dist/interface/assets/{ConfigTriggerManual-Bd9H0AfP.js → ConfigTriggerManual-IAo9sbiS.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerMqtt-BIv5Ca91.js → ConfigTriggerMqtt-16hSjN-I.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSchedule-CzWWcnFW.js → ConfigTriggerSchedule-Ct_AN-xu.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerSensor-C5lsyxsh.js → ConfigTriggerSensor-DkVWre58.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerSystem-WipCRwTJ.js → ConfigTriggerSystem-BAd9IeRa.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerWebhook-Bl0O4RBX.js → ConfigTriggerWebhook-EmrFSoiV.js} +1 -1
  41. package/dist/interface/assets/Console-C7lP5TMv.js +1 -0
  42. package/dist/interface/assets/{CuiAutomationRunsDialog-CUPBuq_J.js → CuiAutomationRunsDialog-BoGUmS-Q.js} +1 -1
  43. package/dist/interface/assets/{CuiBottomSheet-K19nZQiG.js → CuiBottomSheet-DxrKqjWh.js} +1 -1
  44. package/dist/interface/assets/CuiBottomSheet-II-Ajj4k.js +1 -0
  45. package/dist/interface/assets/{CuiCameraPipCard-D3o29_wc.css → CuiCameraPipCard-BQKk4fxY.css} +1 -1
  46. package/dist/interface/assets/CuiCameraPipCard-C2nZsnPM.js +1 -0
  47. package/dist/interface/assets/CuiCameraRecordings-AA-sBtb4.css +1 -0
  48. package/dist/interface/assets/CuiCameraRecordings-B4pJPGOQ.js +1 -0
  49. package/dist/interface/assets/{CuiCameraShares-BTn5ys6X.js → CuiCameraShares-DBZ01JcG.js} +1 -1
  50. package/dist/interface/assets/{CuiCameraTable-DYvQ-GCz.js → CuiCameraTable-BlJHb3gX.js} +2 -2
  51. package/dist/interface/assets/CuiCameraTable-WOrw4_LR.js +1 -0
  52. package/dist/interface/assets/{CuiConsole-C4PawCou.js → CuiConsole-D56cxVKE.js} +2 -2
  53. package/dist/interface/assets/CuiDataTable-Ca51CpsO.js +1 -0
  54. package/dist/interface/assets/{CuiLightControl-BYkQ8Ue3.js → CuiLightControl-DP4pbkjr.js} +1 -1
  55. package/dist/interface/assets/{CuiList-BgZBIhXP.js → CuiList-psx5r57o.js} +1 -1
  56. package/dist/interface/assets/CuiMarkdownContent-DIycyLeP.js +1 -0
  57. package/dist/interface/assets/{CuiMarkdownContent-CCdOW_TM.js → CuiMarkdownContent-PSq4kE1G.js} +1 -1
  58. package/dist/interface/assets/{CuiPluginCard-C91rKOge.js → CuiPluginCard-DSQ7w6Nl.js} +2 -2
  59. package/dist/interface/assets/{CuiPluginCategoryChip-B_Zy4B42.js → CuiPluginCategoryChip-DiUXddOe.js} +1 -1
  60. package/dist/interface/assets/{CuiPluginOAuthButton-IXGedGWs.js → CuiPluginOAuthButton-ZRJJct-f.js} +2 -2
  61. package/dist/interface/assets/{CuiPluginTrustBadge-DTfM8Jjo.js → CuiPluginTrustBadge-DNjUDEtv.js} +1 -1
  62. package/dist/interface/assets/CuiQRCode-wxEwM1Sh.js +1 -0
  63. package/dist/interface/assets/CuiRecordingsGrid-DM5XDEMU.js +1 -0
  64. package/dist/interface/assets/CuiSchema-BJE7vHFH.js +1 -0
  65. package/dist/interface/assets/{CuiTopNavbarItem-DWLnn7Kh.js → CuiTopNavbarItem-DdFdvKkq.js} +1 -1
  66. package/dist/interface/assets/Faces-D4_QXhaT.js +1 -0
  67. package/dist/interface/assets/FirstSteps-CfKHB_uc.js +1 -0
  68. package/dist/interface/assets/Instances-DvAMsOPZ.js +1 -0
  69. package/dist/interface/assets/{Logs-Cii4oP8R.js → Logs-e3y9zMPD.js} +2 -2
  70. package/dist/interface/assets/Menu-DMLqFO8c.js +1 -0
  71. package/dist/interface/assets/Metrics-C3RI973t.js +1 -0
  72. package/dist/interface/assets/Metrics-DqBC-wEo.css +1 -0
  73. package/dist/interface/assets/{OAuthDeviceFlow-BZgtsIjF.js → OAuthDeviceFlow-C51WkjaT.js} +1 -1
  74. package/dist/interface/assets/Plugin-DcdVF_OG.js +1 -0
  75. package/dist/interface/assets/{PluginConsole-BFsCogtB.js → PluginConsole-D0n-Jf_E.js} +1 -1
  76. package/dist/interface/assets/PluginDetail-NOJPSqIS.js +2 -0
  77. package/dist/interface/assets/{PluginSchema-D45zblVz.js → PluginSchema-aG4DGAcH.js} +1 -1
  78. package/dist/interface/assets/PluginSearch-JGQTNibA.js +1 -0
  79. package/dist/interface/assets/PluginSearch-w9vvKCTP.js +2 -0
  80. package/dist/interface/assets/{PluginUpdateProgress-CsRGGH8J.js → PluginUpdateProgress-DkdoTjZY.js} +1 -1
  81. package/dist/interface/assets/Plugins-BzQvLNj7.js +1 -0
  82. package/dist/interface/assets/Recordings-_2r3gD4E.js +1 -0
  83. package/dist/interface/assets/{SensorEdit-D2ChsNDL.js → SensorEdit-qcv6KAap.js} +1 -1
  84. package/dist/interface/assets/{SensorHistory-B6ZKgot4.js → SensorHistory-C8vryAe_.js} +1 -1
  85. package/dist/interface/assets/Sensors-DnWG7VfR.js +2 -0
  86. package/dist/interface/assets/{Settings-DmZjKfDi.css → Settings-B1MnGPuf.css} +1 -1
  87. package/dist/interface/assets/Settings-BqcsLKll.js +1 -0
  88. package/dist/interface/assets/SettingsAccount-BrYKAfPE.js +1 -0
  89. package/dist/interface/assets/SettingsAccount-CNfGFQuq.js +1 -0
  90. package/dist/interface/assets/SettingsAppearance-B-smgzKL.js +1 -0
  91. package/dist/interface/assets/SettingsAppearance-eeRSh42a.js +1 -0
  92. package/dist/interface/assets/{SettingsBackup-8HCwVmDA.js → SettingsBackup-C0ekmlJy.js} +1 -1
  93. package/dist/interface/assets/SettingsList-DeP1LOjz.js +1 -0
  94. package/dist/interface/assets/SettingsMqtt-Bo4jZHMl.js +1 -0
  95. package/dist/interface/assets/{SettingsNotifications-fDDuqryh.js → SettingsNotifications-Dx3me91s.js} +1 -1
  96. package/dist/interface/assets/{SettingsPermissions-DYirYf1Z.js → SettingsPermissions-DU1XvFFc.js} +1 -1
  97. package/dist/interface/assets/SettingsRecordings-Dh-BqEba.js +1 -0
  98. package/dist/interface/assets/SettingsRemote-W3skn8qk.js +1 -0
  99. package/dist/interface/assets/{SettingsSystem-CVWkw449.js → SettingsSystem-DnQSlgu0.js} +2 -2
  100. package/dist/interface/assets/SettingsUsers-CFBTzA0j.js +1 -0
  101. package/dist/interface/assets/{Terminal-BgVnN-2g.js → Terminal-C7lDL745.js} +2 -2
  102. package/dist/interface/assets/{VariableInput-ZYn-Phl4.js → VariableInput-DKmWb9RP.js} +1 -1
  103. package/dist/interface/assets/{VariableSuggestions-BnzdQP6R.js → VariableSuggestions-CjlK2Uqx.js} +1 -1
  104. package/dist/interface/assets/{VersionsHandler-BvKvGOlF.js → VersionsHandler-CrHCAiKn.js} +1 -1
  105. package/dist/interface/assets/{VirtualSensorCreate-Dk_YYzxR.js → VirtualSensorCreate-DHhbE5iD.js} +1 -1
  106. package/dist/interface/assets/Workers-CY-3Ah4u.js +2 -0
  107. package/dist/interface/assets/api-Bj4QRftG.css +2 -0
  108. package/dist/interface/assets/api-CvO7u24f.js +2 -0
  109. package/dist/interface/assets/{api-36pS71R2.js → api-DwU_RUzW.js} +1 -1
  110. package/dist/interface/assets/auth-BhT4BtBc.js +1 -0
  111. package/dist/interface/assets/{automations-BOvDlvvx.js → automations-ya-5P8Jc.js} +1 -1
  112. package/dist/interface/assets/{cameras.schema-BvnUX82v.js → cameras.schema-BWH_Q16D.js} +1 -1
  113. package/dist/interface/assets/cloudHandoff-BPjQsq7k.js +1 -0
  114. package/dist/interface/assets/{config-DTGhJmsj.js → config-CgGpshGm.js} +1 -1
  115. package/dist/interface/assets/{flowSchema-zo1H4tnP.js → flowSchema-OrM5E_3R.js} +1 -1
  116. package/dist/interface/assets/main-Dd71JT_o.css +1 -0
  117. package/dist/interface/assets/main-rlz9T4Ug.js +3 -0
  118. package/dist/interface/assets/mqtt-CO84Q9sE.js +1 -0
  119. package/dist/interface/assets/{notifications-cHS8-1HN.js → notifications-DxDFtZSo.js} +1 -1
  120. package/dist/interface/assets/{plugins-CaKErv4E.js → plugins-g-qkx8GX.js} +1 -1
  121. package/dist/interface/assets/round-restart-alt-CmrjVFat.css +1 -0
  122. package/dist/interface/assets/round-restart-alt-YiDa63x6.js +1 -0
  123. package/dist/interface/assets/{sensorIcons-DepqfSoA.js → sensorIcons-4dvSmrEv.js} +1 -1
  124. package/dist/interface/assets/{sensors-CMpbwMO4.js → sensors-BFCE7rbx.js} +1 -1
  125. package/dist/interface/assets/{server-C-WV93FX.js → server-arWVymo1.js} +1 -1
  126. package/dist/interface/assets/{theme-BkwBz73p.js → theme-Dw9-CwMe.js} +1 -1
  127. package/dist/interface/assets/types-BCygqese.js +1 -0
  128. package/dist/interface/assets/{types-Cko7VOxd.js → types-D5c17URv.js} +1 -1
  129. package/dist/interface/assets/{useAppVersion-V1S18l98.js → useAppVersion-Cp6mZ-ge.js} +1 -1
  130. package/dist/interface/assets/useBackupRestore-Drc-2VXy.js +1 -0
  131. package/dist/interface/assets/{useCameraOptions-o1hYGLbC.js → useCameraOptions-BF3ASvVM.js} +1 -1
  132. package/dist/interface/assets/{useElectron-3ZJLtRk3.js → useElectron-BNGXeZEx.js} +1 -1
  133. package/dist/interface/assets/{useLogsSocket-DDgnQ_Dk.js → useLogsSocket-hJ9xUUtr.js} +1 -1
  134. package/dist/interface/assets/useNavLayout-CcDIO9RG.js +1 -0
  135. package/dist/interface/assets/{usePermissions-BWlj5SzG.js → usePermissions-C9kp5HQR.js} +1 -1
  136. package/dist/interface/assets/{usePluginUpdates-DI1p2NMc.js → usePluginUpdates-BJwtwD9v.js} +1 -1
  137. package/dist/interface/assets/{useServerRestart-D_ASBw_0.js → useServerRestart-DwpQyv5H.js} +1 -1
  138. package/dist/interface/assets/{useStreamStatus-BQJIFFLv.js → useStreamStatus-C5dH33U5.js} +1 -1
  139. package/dist/interface/assets/{useUpdateChannel-CyLSUSAY.js → useUpdateChannel-D7hnlzd5.js} +1 -1
  140. package/dist/interface/assets/{useUserOptions-Ds1Ybn7N.js → useUserOptions-DFgkIDv8.js} +1 -1
  141. package/dist/interface/assets/utils-gctUU5q_.js +1 -0
  142. package/dist/interface/assets/vendor-cameraui-GaXYUHUd.js +2326 -0
  143. package/dist/interface/assets/vendor-core-BNfYBWH3.js +1 -0
  144. package/dist/interface/assets/vendor-markdown-Bw_90xkF.js +14 -0
  145. package/dist/interface/assets/{vendor-primevue-DE-f4Z5f.js → vendor-primevue-CIRUBYsf.js} +1 -1
  146. package/dist/interface/index.html +26 -25
  147. package/dist/interface/sw.js +1 -1
  148. package/dist/server/package.json +4 -4
  149. package/dist/server/requirements.txt +1 -1
  150. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +2 -0
  151. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/notifier.py +6 -0
  152. package/dist/server/src/api/controllers/auth.controller.js +2 -0
  153. package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
  154. package/dist/server/src/api/controllers/notifications.controller.d.ts +5 -0
  155. package/dist/server/src/api/controllers/notifications.controller.js +27 -0
  156. package/dist/server/src/api/controllers/notifications.controller.js.map +1 -1
  157. package/dist/server/src/api/database/types.d.ts +3 -0
  158. package/dist/server/src/api/routes/notifications.routes.js +11 -0
  159. package/dist/server/src/api/routes/notifications.routes.js.map +1 -1
  160. package/dist/server/src/api/schemas/cameras.schema.d.ts +8 -0
  161. package/dist/server/src/api/schemas/cameras.schema.js +2 -0
  162. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  163. package/dist/server/src/api/schemas/users.schema.d.ts +65 -1
  164. package/dist/server/src/api/schemas/users.schema.js +23 -0
  165. package/dist/server/src/api/schemas/users.schema.js.map +1 -1
  166. package/dist/server/src/api/services/notifications.service.d.ts +1 -0
  167. package/dist/server/src/api/services/notifications.service.js +3 -0
  168. package/dist/server/src/api/services/notifications.service.js.map +1 -1
  169. package/dist/server/src/api/services/users.service.js +3 -1
  170. package/dist/server/src/api/services/users.service.js.map +1 -1
  171. package/dist/server/src/api/types/index.d.ts +8 -0
  172. package/dist/server/src/api/types/index.js.map +1 -1
  173. package/dist/server/src/api/websocket/nsp/metrics.d.ts +4 -0
  174. package/dist/server/src/api/websocket/nsp/metrics.js +50 -1
  175. package/dist/server/src/api/websocket/nsp/metrics.js.map +1 -1
  176. package/dist/server/src/api/websocket/nsp/server.d.ts +3 -0
  177. package/dist/server/src/api/websocket/nsp/server.js +17 -0
  178. package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
  179. package/dist/server/src/api/websocket/types.d.ts +17 -0
  180. package/dist/server/src/camera/decoder/child.d.ts +2 -0
  181. package/dist/server/src/camera/decoder/child.js +9 -0
  182. package/dist/server/src/camera/decoder/child.js.map +1 -1
  183. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +2 -1
  184. package/dist/server/src/camera/decoder/detection-coordinator.js +59 -24
  185. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  186. package/dist/server/src/camera/decoder/{debug/perf-tracker.d.ts → perf-tracker.d.ts} +9 -1
  187. package/dist/server/src/camera/decoder/{debug/perf-tracker.js → perf-tracker.js} +43 -17
  188. package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -0
  189. package/dist/server/src/camera/decoder/types.d.ts +20 -0
  190. package/dist/server/src/camera/decoder/worker.d.ts +2 -0
  191. package/dist/server/src/camera/decoder/worker.js +11 -0
  192. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  193. package/dist/server/src/manager/notificationManager.d.ts +2 -0
  194. package/dist/server/src/manager/notificationManager.js +23 -1
  195. package/dist/server/src/manager/notificationManager.js.map +1 -1
  196. package/dist/server/src/rpc/interfaces/frameworker.d.ts +2 -0
  197. package/dist/server/src/rpc/server.js +5 -0
  198. package/dist/server/src/rpc/server.js.map +1 -1
  199. package/dist/server/src/workers/manager.js +2 -0
  200. package/dist/server/src/workers/manager.js.map +1 -1
  201. package/package.json +4 -4
  202. package/dist/interface/assets/Adminpanel-jq9sK1Ey.js +0 -1
  203. package/dist/interface/assets/Automations-DWI8Q2TS.js +0 -2
  204. package/dist/interface/assets/Camera-BIppnvyN.js +0 -2
  205. package/dist/interface/assets/Camera-BfMZmurS.css +0 -1
  206. package/dist/interface/assets/Cameras-DIY20Wlh.css +0 -1
  207. package/dist/interface/assets/Cameras-kIN6bWi1.js +0 -652
  208. package/dist/interface/assets/Camview-4jdGGny8.js +0 -1
  209. package/dist/interface/assets/ConfigTriggerGeofence-cMhyndiz.js +0 -1
  210. package/dist/interface/assets/Console-GtK0GVLX.js +0 -1
  211. package/dist/interface/assets/CuiBottomSheet-DQNpk0mh.js +0 -1
  212. package/dist/interface/assets/CuiCameraPipCard-e3_uYELi.js +0 -1
  213. package/dist/interface/assets/CuiCameraRecordings-CPAMltfx.js +0 -1
  214. package/dist/interface/assets/CuiCameraRecordings-fB3X6kad.css +0 -1
  215. package/dist/interface/assets/CuiDataTable-CORQOWsf.js +0 -1
  216. package/dist/interface/assets/CuiMarkdownContent-ChezqgI1.js +0 -1
  217. package/dist/interface/assets/CuiQRCode-D5vwhyuQ.js +0 -1
  218. package/dist/interface/assets/CuiRecordingsGrid-yXEzhnc4.js +0 -1
  219. package/dist/interface/assets/CuiSchema-hK_tgUP9.js +0 -1
  220. package/dist/interface/assets/Faces-DzwTi8P1.js +0 -1
  221. package/dist/interface/assets/FirstSteps-0ojmFGSr.js +0 -1
  222. package/dist/interface/assets/Instances-DvoFBGMx.js +0 -1
  223. package/dist/interface/assets/Menu-pvtuFKFM.js +0 -1
  224. package/dist/interface/assets/Plugin-BKqpBWJy.js +0 -1
  225. package/dist/interface/assets/PluginDetail-Dl0OM6me.js +0 -2
  226. package/dist/interface/assets/PluginSearch-DdIcv9xA.js +0 -1
  227. package/dist/interface/assets/PluginSearch-DxoQUW8M.js +0 -2
  228. package/dist/interface/assets/Plugins-CGj8DSLJ.js +0 -1
  229. package/dist/interface/assets/Recordings-PojBH8L3.js +0 -1
  230. package/dist/interface/assets/Sensors-DyqWcB-G.js +0 -2
  231. package/dist/interface/assets/Settings-BFJO08mq.js +0 -1
  232. package/dist/interface/assets/SettingsAccount-DREZwvce.js +0 -1
  233. package/dist/interface/assets/SettingsAccount-QxmP0dzI.js +0 -1
  234. package/dist/interface/assets/SettingsAppearance-BejKI3_C.js +0 -1
  235. package/dist/interface/assets/SettingsAppearance-_zvMUQvn.js +0 -1
  236. package/dist/interface/assets/SettingsList-B4H786Cc.js +0 -1
  237. package/dist/interface/assets/SettingsMqtt-D7ajm1JA.js +0 -1
  238. package/dist/interface/assets/SettingsRecordings-4NxpAbu5.js +0 -1
  239. package/dist/interface/assets/SettingsRemote-DOQkaNzp.js +0 -1
  240. package/dist/interface/assets/SettingsUsers-Dc6L7Lt2.js +0 -1
  241. package/dist/interface/assets/Workers-CjEzGjy8.js +0 -2
  242. package/dist/interface/assets/api-CDvtqu1L.css +0 -2
  243. package/dist/interface/assets/api-DTFsk1zB.js +0 -2
  244. package/dist/interface/assets/arrow-right-outline-C24f5mwe.js +0 -1
  245. package/dist/interface/assets/auth-DYoO8jpd.js +0 -1
  246. package/dist/interface/assets/cloudHandoff-DNKMEHOI.js +0 -1
  247. package/dist/interface/assets/main-CcvCf5qj.js +0 -3
  248. package/dist/interface/assets/main-XQ5Vahbs.css +0 -1
  249. package/dist/interface/assets/mqtt-CYc8_9pb.js +0 -1
  250. package/dist/interface/assets/round-restart-alt-DPYbDt-x.js +0 -1
  251. package/dist/interface/assets/round-restart-alt-SpAgbSYJ.css +0 -1
  252. package/dist/interface/assets/types-ClTvDPjn.js +0 -1
  253. package/dist/interface/assets/useBackupRestore-BZ73vHrV.js +0 -1
  254. package/dist/interface/assets/vendor-cameraui-CQTIVF_m.js +0 -2326
  255. package/dist/interface/assets/vendor-core-DDtZhtY9.js +0 -1
  256. package/dist/interface/assets/vendor-markdown--U0EK8HV.js +0 -14
  257. package/dist/server/src/camera/decoder/debug/perf-tracker.js.map +0 -1
@@ -1 +0,0 @@
1
- import{Fr as e,Ft as t,H as n,M as r,Vt as ee,jt as te}from"./vendor-cameraui-CQTIVF_m.js";import{Un as i,Wn as ne,fr as a,gt as re,ht as ie,i as o,lt as ae,o as s,pr as oe,st as c,ur as l,vr as u,xn as d,xr as f}from"./api-DTFsk1zB.js";import{Nn as p,On as se,U as m,Xn as h,Zn as ce,_r as le,an as g,b as ue,br as _,cn as v,cr as y,en as b,fn as x,gr as S,hn as C,in as w,ir as T,on as E,pn as D,q as de,qn as O,qt as k,rr as fe,sn as A,v as j,wn as pe,y as M,zn as me}from"./vendor-BaiDFVEr.js";import{a as he}from"./useElectron-3ZJLtRk3.js";import{B as N,V as P}from"./types-ClTvDPjn.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-DE-f4Z5f.js";import{t as we}from"./server-C-WV93FX.js";import{t as Te}from"./CuiQRCode-D5vwhyuQ.js";var Ee={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function F(e,t){return p(),v(`svg`,Ee,[...t[0]||=[g(`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=T({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 p(),v(`svg`,Oe,[...t[0]||=[g(`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=T({name:`material-symbols-check`,render:ke}),je={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function I(e,t){return p(),v(`svg`,je,[...t[0]||=[g(`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=T({name:`boxicons-computer-filled`,render:I}),Ne={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Pe(e,t){return p(),v(`svg`,Ne,[...t[0]||=[g(`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=T({name:`mdi-earth`,render:Pe}),L={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ie(e,t){return p(),v(`svg`,L,[...t[0]||=[g(`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 Le=T({name:`mdi-lan`,render:Ie});async function Re({signal:e}){return(await f.get(`/remote`,{signal:e})).data}async function ze(e){return(await f.patch(`/remote`,e)).data}async function Be(e){return(await f.post(`/remote/pair/init`,e?{name:e}:{})).data}async function Ve({name:e}={}){return(await f.post(`/remote/pair/poll`,e?{name:e}:{})).data}async function He(){await f.delete(`/remote/unregister`)}async function Ue({signal:e}){return(await f.get(`/remote/status`,{signal:e})).data}async function We(e){await f.patch(`/remote/name`,{name:e})}async function Ge({signal:e}){return(await f.get(`/remote/tunnel`,{signal:e})).data}async function Ke({signal:e}={}){return(await f.get(`/remote/connection-info`,{signal:e})).data}async function R(e){return(await f.post(`/remote/test/${e}`)).data}async function qe({signal:e}={}){return(await f.get(`/remote/cloudflare/managed/status`,{signal:e})).data}async function Je(e){await f.post(`/remote/cloudflare/managed/connect`,{hostname:e})}async function Ye(){await f.post(`/remote/cloudflare/managed/cancel`)}async function Xe(){await f.post(`/remote/cloudflare/managed/disconnect`)}async function Ze(){await f.post(`/remote/cloudflare/managed/logout`)}var Qe=class{_queryClient=de();t=oe.global.t;toast=a();queryActivator=y([{name:`getRemoteInfoQuery`,enabled:!0},{name:`getRegistrationStatusQuery`,enabled:!0},{name:`getTunnelStatusQuery`,enabled:!0},{name:`getConnectionInfoQuery`,enabled:!0},{name:`getCloudflareManagedStatusQuery`,enabled:!0}]);get queryClient(){return this._queryClient}getRemoteInfoQuery(){return l({queryKey:[`remote`],queryFn:({signal:e})=>Re({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRemoteInfoQuery`&&e.enabled),staleTime:1e3})}patchRemoteInfoQuery(){return m({mutationFn:ze,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.remote_updated`),life:3e3})}})}getRegistrationStatusQuery(){return l({queryKey:[`remote`,`status`],queryFn:({signal:e})=>Ue({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRegistrationStatusQuery`&&e.enabled),staleTime:1e3})}pairInitMutation(){return m({mutationFn:Be})}pairPollMutation(){return m({mutationFn:Ve,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 m({mutationFn:He,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`status`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.remote_unregistered`),life:3e3})}})}getTunnelStatusQuery(){return l({queryKey:[`remote`,`tunnel`],queryFn:({signal:e})=>Ge({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getTunnelStatusQuery`&&e.enabled),refetchInterval:3e4,staleTime:1e4})}updateServerNameQuery(){return m({mutationFn:We,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`status`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.server_name_updated`),life:3e3})}})}getConnectionInfoQuery(){return l({queryKey:[`remote`,`connection-info`],queryFn:({signal:e})=>Ke({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getConnectionInfoQuery`&&e.enabled),refetchInterval:1e4})}testRemoteModeMutation(){return m({mutationFn:R})}getCloudflareManagedStatusQuery(){return l({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 m({mutationFn:Je,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedCancelMutation(){return m({mutationFn:Ye,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedDisconnectMutation(){return m({mutationFn:Xe,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedLogoutMutation(){return m({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=P,et=N,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=d(C({__name:`SettingsRemote`,setup(oe){let l=new we,d=new Qe,f=he(),m=c(),C=a(),{t:T}=e(),{data:de,isBusy:N}=l.getServerInfoQuery(),{data:P,isBusy:Ee}=d.getRemoteInfoQuery(),{data:F,isBusy:Oe}=d.getRegistrationStatusQuery(),{data:ke,isLoading:je}=d.getTunnelStatusQuery(),{data:I}=d.getConnectionInfoQuery(),{mutateAsync:Ne,isPending:Pe}=l.patchSystemInfoQuery(),{mutateAsync:L,isPending:Ie}=d.patchRemoteInfoQuery(),{mutateAsync:Re,isPending:ze}=d.pairInitMutation(),{mutateAsync:Be}=d.pairPollMutation(),{mutateAsync:Ve,isPending:He}=d.unregisterServerQuery(),{mutateAsync:Ue,isPending:We}=d.updateServerNameQuery(),{mutateAsync:Ge,isPending:Ke}=d.testRemoteModeMutation(),{data:R}=d.getCloudflareManagedStatusQuery(),{mutateAsync:qe,isPending:Je}=d.cloudflareManagedConnectMutation(),{mutateAsync:Ye,isPending:Xe}=d.cloudflareManagedCancelMutation(),{mutateAsync:Ze,isPending:On}=d.cloudflareManagedDisconnectMutation(),{mutateAsync:kn,isPending:An}=d.cloudflareManagedLogoutMutation(),z=y(),B=y(),V=y(``),H=y(``),U=y(`quick`),W=y(``),G=y(``),jn=y(!1),K=y(null),q=y(``),Mn=y(null),Nn=y(2),Pn=y(``),J=null,Y=null,X=w(()=>Pe.value||Ie.value||N.value||Ee.value||Oe.value||He.value),Fn=w(()=>!!(B.value?.enabled||B.value?.directEnabled)),In=w(()=>P.value?.directOverride??{active:!1,fallback:!1}),Z=w(()=>F.value?.isRegistered??!1),Ln=w(()=>F.value?.needsReauth??!1),Rn=w(()=>!X.value),zn=w(()=>{if(!Rn.value)return!1;let e=V.value.trim();return!e||e.length>100?!1:e!==(F.value?.serverName??``)}),Bn=w(()=>{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=w(()=>[{value:`cloudflare`,label:T(`components.form.label.cloudflare`),description:T(`components.form.hint.cloudflare_mode_info`)},{value:`customDomain`,label:T(`components.form.label.custom_domain`),description:T(`components.form.hint.custom_domain_mode_info`)}]),Hn=w(()=>Vn.value.find(e=>e.value===B.value?.directMode)?.description??``),Un=w(()=>[{value:`quick`,label:T(`components.form.label.cloudflare_variant_quick`),description:T(`components.form.hint.cloudflare_variant_quick`)},{value:`token`,label:T(`components.form.label.cloudflare_variant_token`),description:T(`components.form.hint.cloudflare_variant_token`)},{value:`managed`,label:T(`components.form.label.cloudflare_variant_managed`),description:T(`components.form.hint.cloudflare_variant_managed`)}]),Wn=w(()=>Un.value.find(e=>e.value===U.value)?.description??``),Gn=w(()=>{if(U.value===`quick`)return!0;let e=P.value?.remoteSettings.cloudflare;return e?.mode===U.value&&!!e?.hostname}),Q=w(()=>R.value?.state??`idle`),Kn=w(()=>{if(Q.value!==`idle`)return!1;let e=W.value.trim();return!!e&&/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(e)}),qn=w(()=>{let e=I.value?.currentConnection.type??`lan`;return T(`views.settings.connection_type.${e}`)}),Jn=w(()=>{let e=I.value?.currentConnection.type;return e===`cloud`?i:e===`external`?Fe:e===`local`?Me:Le}),Yn=w(()=>{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 Ue(e)}catch{}}function Zn(){m.openTextDialog({data:{title:T(`components.dialog.title.unregister_server`),confirmText:T(`components.form.button.unregister`),contentText:T(`components.dialog.message.confirm_unregister_server`),loading:X},onConfirm:async()=>{try{await Ve()}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){$(),C.add({severity:`warn`,detail:T(`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 Be({name:V.value.trim()||void 0});if(!K.value||K.value!==e)return;if(t.state===`confirmed`){$();return}if(t.state===`expired`){$(),C.add({severity:`warn`,detail:T(`components.toast.pair_expired`),life:3e3});return}if(t.state===`denied`){$(),C.add({severity:`warn`,detail:T(`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;f.error(`pair poll failed:`,t),tr()}}async function rr(){$();try{let e=V.value.trim();if(e&&e!==(F.value?.serverName??``))try{await Ue(e)}catch{}let t=await Re(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){C.add({severity:`error`,detail:e,life:3e3})}}function ir(){$()}async function ar(){if(K.value)try{await o(K.value)}catch{}}async function or(){if(q.value)try{await o(q.value)}catch{}}function sr(){q.value&&window.open(q.value,`_blank`,`noopener`)}function cr(e){let t=window.location.host===u||!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`,m.openTextDialog({data:{title:T(`components.dialog.title.confirm`),contentText:T(n),confirmText:T(e?`components.form.button.enable`:`components.form.button.disable`),loading:X,confirmButtonProps:e?void 0:{severity:`danger`}},onConfirm:async()=>{try{await L(e?{enabled:!0}:{enabled:!1})}catch{B.value&&(B.value.enabled=!e)}},onCancel:()=>{B.value&&(B.value.enabled=!e)}})}function lr(e){L({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 L({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 o(e)}catch{}}function _r(e){window.open(e,`_blank`,`noopener`)}async function vr(e){try{let t=await Ge(e);t.ok?C.add({severity:`success`,detail:T(`components.toast.remote_test_success`),life:3e3}):C.add({severity:`error`,detail:T(`components.toast.remote_test_failed`,{message:t.message??``}),life:5e3})}catch(e){C.add({severity:`error`,detail:T(`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 L(t)}catch{}}async function br(e){try{await Ne(e)}catch{}}return O(()=>F.value?.serverName,e=>{e&&(V.value=e)},{immediate:!0}),O(Z,e=>{e&&K.value&&$()}),O(de,e=>{if(e){let t=s(e);z.value={...t,serverAddresses:(t.serverAddresses||[]).filter(Boolean)}}},{deep:!0,immediate:!0}),O(P,e=>{if(e){let t=s(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}),se(()=>{Qn()}),(e,i)=>{let a=te,o=Ce,s=n,oe=ge,c=r,l=Ae,u=t,d=_e,f=ve,se=ye,m=Te,y=re,C=ne,w=De,T=be,O=Se,he=xe,N=ee;return p(),v(`div`,tt,[!S(z)||!S(B)?(p(),v(`div`,nt,[D(a,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(p(),v(`div`,rt,[S(I)?(p(),v(`div`,it,[g(`span`,at,_(e.$t(`views.settings.connection_status`)),1),D(s,{class:`cui-card`},{content:h(()=>[g(`div`,ot,[(p(),E(me(S(Jn)),{class:le([`shrink-0 w-6 h-6`,S(Yn)])},null,8,[`class`])),g(`div`,st,[g(`span`,ct,_(S(qn)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:h(()=>[x(_(S(I).currentConnection.address),1)]),_:1})])])]),_:1})])):A(``,!0),D(S(ue),{ref:`remoteFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":S($e),onSubmit:i[18]||=e=>yr(e)},{default:h(()=>[g(`div`,null,[g(`span`,lt,_(e.$t(`views.settings.cloud`)),1),D(s,{class:`cui-card`},{content:h(()=>[g(`div`,ut,[D(S(M),{"model-value":S(B).enabled,value:!0,"unchecked-value":!1,type:`checkbox`,name:`enabled`,as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:h(({field:t,errors:n})=>[g(`div`,dt,[g(`div`,ft,[g(`label`,pt,_(e.$t(`components.form.label.enabled`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(e.$t(`components.form.hint.cloud_access_enabled_info`)),1)]),_:1}),D(k,{name:`fade`},{default:h(()=>[D(S(j),{name:`enabled`,class:`cui-input-switch-error`})]),_:1})]),D(oe,pe({"model-value":S(B).enabled},t,{invalid:n.length>0,loading:S(X),class:`ml-auto shrink-0`,onValueChange:i[0]||=e=>S(B).enabled=e,"onUpdate:modelValue":i[1]||=e=>cr(e)}),null,16,[`model-value`,`invalid`,`loading`])])]),_:1},8,[`model-value`]),g(`div`,mt,[g(`label`,ht,_(e.$t(`views.settings.server_name_label`)),1),D(f,null,{default:h(()=>[D(c,{id:`serverName`,modelValue:S(V),"onUpdate:modelValue":i[2]||=e=>fe(V)?V.value=e:null,modelModifiers:{trim:!0},disabled:!S(Rn),loading:S(X),type:`text`,maxlength:100},null,8,[`modelValue`,`disabled`,`loading`]),D(d,null,{default:h(()=>[ce((p(),E(u,{text:``,severity:`secondary`,loading:S(We),disabled:!S(zn),type:`button`,onClick:Xn},{icon:h(()=>[D(l)]),_:1},8,[`loading`,`disabled`])),[[N,{value:e.$t(`components.form.button.save`)}]])]),_:1})]),_:1}),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(e.$t(`views.settings.server_name_info`)),1)]),_:1})]),g(`div`,gt,[g(`div`,_t,[g(`span`,vt,_(e.$t(`views.settings.status`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(e.$t(`views.settings.status_info`)),1)]),_:1})]),g(`div`,yt,[S(X)?(p(),E(a,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):S(Ln)?(p(),v(`span`,bt,_(e.$t(`views.settings.needs_reauth`)),1)):(p(),v(`span`,xt,_(S(Z)?e.$t(`views.settings.registered`):e.$t(`views.settings.not_registered`)),1))])]),S(Z)?(p(),v(`div`,St,[g(`div`,Ct,[g(`span`,wt,_(e.$t(`views.settings.tunnel_status`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(e.$t(`views.settings.tunnel_status_info`)),1)]),_:1})]),g(`div`,Tt,[S(je)?(p(),E(a,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(p(),E(se,{key:1,severity:S(ke)?.connected?`success`:`secondary`,value:S(ke)?.connected?e.$t(`views.settings.tunnel_connected`):e.$t(`views.settings.tunnel_disconnected`)},null,8,[`severity`,`value`]))])])):A(``,!0),D(k,{name:`fade`,mode:`out-in`},{default:h(()=>[S(K)?(p(),v(`div`,Et,[D(o,{severity:`error`,variant:`simple`,size:`small`,class:`text-primary`},{default:h(()=>[x(_(e.$t(`views.settings.pair_instructions`)),1)]),_:1}),g(`div`,Dt,[g(`div`,Ot,[D(m,{value:S(q),size:180,"logo-size":36},null,8,[`value`])]),g(`div`,kt,[g(`div`,At,[g(`label`,jt,_(e.$t(`views.settings.pair_code`)),1),D(f,null,{default:h(()=>[D(c,{"model-value":S(K),readonly:``,class:`font-mono text-lg text-center tracking-widest`},null,8,[`model-value`]),D(d,null,{default:h(()=>[D(y,{"action-text":e.$t(`components.form.tooltip.copied`),icon:S(ie),"button-props":{severity:`secondary`,text:!0},onAction:ar},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(e.$t(`views.settings.pair_code_hint`)),1)]),_:1})]),g(`div`,Mt,[g(`label`,Nt,_(e.$t(`views.settings.pair_url`)),1),D(f,null,{default:h(()=>[D(c,{"model-value":S(q),readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),D(d,null,{default:h(()=>[D(y,{"action-text":e.$t(`components.form.tooltip.copied`),icon:S(ie),"button-props":{severity:`secondary`,text:!0},onAction:or},null,8,[`action-text`,`icon`])]),_:1}),D(d,null,{default:h(()=>[ce((p(),E(u,{type:`button`,severity:`secondary`,text:``,onClick:sr},{icon:h(()=>[D(S(ae))]),_:1})),[[N,{value:e.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),g(`div`,Pt,[D(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),g(`span`,Ft,_(e.$t(`views.settings.pair_waiting`,{remaining:S(Pn)})),1),D(u,{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}),g(`div`,It,[g(`div`,Lt,[ce((p(),E(u,{severity:`secondary`,rounded:``,class:`cui-icon-lg text-color`,disabled:!S(Z),onClick:i[3]||=t=>e.$router.absUrl(S(`https://cloud.cameraui.com`),!0)},{icon:h(()=>[S(Z)?(p(),E(C,{key:0,width:`100%`,height:`100%`})):(p(),E(w,{key:1,width:`100%`,height:`100%`}))]),_:1},8,[`disabled`])),[[N,{value:S(Z)?e.$t(`views.settings.registered`):e.$t(`views.settings.not_registered`)}]])]),i[21]||=g(`div`,{class:`ml-auto`},null,-1),!S(Z)&&!S(K)?(p(),E(u,{key:0,loading:S(ze),class:`cui-button-medium`,label:e.$t(`components.form.button.register_server`),onClick:rr},null,8,[`loading`,`label`])):A(``,!0),S(Ln)&&!S(K)?(p(),E(u,{key:1,loading:S(ze),severity:`warn`,class:`cui-button-medium`,label:e.$t(`components.form.button.reconnect_server`),onClick:rr},null,8,[`loading`,`label`])):A(``,!0),S(Z)?(p(),E(u,{key:2,loading:S(X),severity:S(Ln)?`secondary`:void 0,text:S(Ln),class:`cui-button-medium`,label:e.$t(`components.form.button.unregister_server`),onClick:Zn},null,8,[`loading`,`severity`,`text`,`label`])):A(``,!0)])])]),_:1})]),g(`div`,null,[g(`span`,Rt,_(e.$t(`views.settings.direct_connection`)),1),D(s,{class:`cui-card`},{content:h(()=>[g(`div`,zt,[D(S(M),{"model-value":S(B).directEnabled,value:!0,"unchecked-value":!1,type:`checkbox`,name:`directEnabled`,as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:h(({field:t,errors:n})=>[g(`div`,Bt,[g(`div`,Vt,[g(`label`,Ht,_(e.$t(`components.form.label.enabled`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(e.$t(`views.settings.direct_connection_info`)),1)]),_:1}),D(k,{name:`fade`},{default:h(()=>[D(S(j),{name:`directEnabled`,class:`cui-input-switch-error`})]),_:1})]),D(oe,pe({"model-value":S(Fn)},t,{invalid:n.length>0,loading:S(X),disabled:S(B).enabled,class:`ml-auto shrink-0`,onValueChange:i[4]||=e=>S(B).directEnabled=e,"onUpdate:modelValue":i[5]||=e=>lr(e)}),null,16,[`model-value`,`invalid`,`loading`,`disabled`])]),D(k,{name:`fade`},{default:h(()=>[S(In).active?(p(),E(o,{key:0,variant:`simple`,size:`small`,class:`cui-input-switch-hint text-primary`},{default:h(()=>[x(_(S(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`]),S(Fn)?(p(),v(b,{key:0},[g(`div`,Ut,[g(`label`,Wt,_(e.$t(`views.settings.external_url`)),1),D(c,{readonly:``,type:`text`,value:S(I)?.externalUrl??e.$t(`components.form.label.disconnected`)},null,8,[`value`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(e.$t(`views.settings.external_url_info`)),1)]),_:1})]),D(S(M),{"model-value":S(B).directMode,name:`directMode`,as:`div`,class:`flex flex-col field-gap`},{default:h(({errors:t})=>[g(`label`,Gt,_(e.$t(`views.settings.connection_method`)),1),D(T,{"model-value":S(B).directMode,options:S(Vn),"option-label":`label`,"option-value":`value`,invalid:t.length>0,loading:S(X),"onUpdate:modelValue":i[6]||=e=>ur(e)},null,8,[`model-value`,`options`,`invalid`,`loading`]),D(k,{name:`fade`},{default:h(()=>[D(S(j),{name:`directMode`,class:`cui-input-error`})]),_:1}),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(S(Hn)),1)]),_:1})]),_:1},8,[`model-value`]),S(B).directMode===`cloudflare`?(p(),v(`div`,Kt,[g(`div`,qt,[g(`label`,Jt,_(e.$t(`components.form.label.cloudflare_variant`)),1),D(T,{"model-value":S(U),options:S(Un),"option-label":`label`,"option-value":`value`,loading:S(X),"onUpdate:modelValue":i[7]||=e=>dr(e)},null,8,[`model-value`,`options`,`loading`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(S(Wn)),1)]),_:1})]),S(U)===`quick`?(p(),v(`div`,Yt,[D(u,{type:`button`,severity:`secondary`,loading:S(Ke),class:`cui-button-small`,label:e.$t(`components.form.button.test_connection`),onClick:i[8]||=e=>vr(`cloudflare`)},null,8,[`loading`,`label`])])):S(U)===`token`?(p(),v(b,{key:1},[g(`div`,Xt,[g(`label`,Zt,_(e.$t(`components.form.label.hostname`)),1),D(c,{id:`cloudflareHostname`,modelValue:S(W),"onUpdate:modelValue":i[9]||=e=>fe(W)?W.value=e:null,modelModifiers:{trim:!0},loading:S(X),type:`text`,placeholder:`nvr.example.com`,maxlength:253},null,8,[`modelValue`,`loading`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(e.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),g(`div`,Qt,[g(`label`,$t,_(e.$t(`components.form.label.tunnel_token`)),1),D(O,{id:`cloudflareToken`,modelValue:S(G),"onUpdate:modelValue":i[10]||=e=>fe(G)?G.value=e:null,modelModifiers:{trim:!0},loading:S(X),feedback:!1,"toggle-mask":``,fluid:``,placeholder:S(jn)?`••••••••••••`:`eyJ...`},null,8,[`modelValue`,`loading`,`placeholder`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(S(jn)?e.$t(`components.form.hint.cloudflare_token_already_set`):e.$t(`components.form.hint.cloudflare_token_info`)),1)]),_:1})]),g(`div`,en,[D(u,{type:`button`,severity:`secondary`,loading:S(Ke),disabled:!S(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)):S(U)===`managed`?(p(),E(k,{key:2,name:`fade`,mode:`out-in`},{default:h(()=>[(p(),v(`div`,{key:S(Q),class:`flex flex-col gap-4`},[S(Q)===`idle`?(p(),v(b,{key:0},[g(`div`,tn,[g(`label`,nn,_(e.$t(`components.form.label.hostname`)),1),D(c,{id:`cloudflareHostnameManaged`,modelValue:S(W),"onUpdate:modelValue":i[12]||=e=>fe(W)?W.value=e:null,modelModifiers:{trim:!0},loading:S(X),type:`text`,placeholder:`nvr.example.com`,maxlength:253},null,8,[`modelValue`,`loading`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(e.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),S(R)?.lastError?(p(),E(o,{key:0,severity:`error`,variant:`simple`,size:`small`},{default:h(()=>[x(_(S(R).lastError),1)]),_:1})):A(``,!0),g(`div`,rn,[D(u,{type:`button`,loading:S(Je),disabled:!S(Kn),class:`cui-button-medium`,label:e.$t(`components.form.button.connect_cloudflare`),onClick:fr},null,8,[`loading`,`disabled`,`label`])])],64)):S(Q)===`awaiting_login`?(p(),v(b,{key:1},[S(R)?.loginUrl?(p(),v(`div`,an,[g(`div`,on,[D(m,{value:S(R).loginUrl,size:160,"logo-size":32},null,8,[`value`])]),g(`div`,sn,[D(o,{variant:`simple`,size:`small`,class:`text-primary`},{default:h(()=>[x(_(e.$t(`components.form.hint.cloudflare_managed_awaiting_login`,{hostname:S(W)})),1)]),_:1}),g(`div`,cn,[g(`label`,ln,_(e.$t(`components.form.label.cloudflare_url`)),1),D(f,null,{default:h(()=>[D(c,{"model-value":S(R).loginUrl,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),D(d,null,{default:h(()=>[D(y,{"action-text":e.$t(`components.form.tooltip.copied`),icon:S(ie),"button-props":{severity:`secondary`,text:!0},onAction:i[13]||=e=>gr(S(R).loginUrl)},null,8,[`action-text`,`icon`])]),_:1}),D(d,null,{default:h(()=>[ce((p(),E(u,{type:`button`,severity:`secondary`,text:``,onClick:i[14]||=e=>_r(S(R).loginUrl)},{icon:h(()=>[D(S(ae))]),_:1})),[[N,{value:e.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),g(`div`,un,[D(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),g(`span`,dn,_(e.$t(`views.settings.cloudflare_login_waiting`)),1),D(u,{type:`button`,severity:`secondary`,loading:S(Xe),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])])])])):(p(),v(`div`,fn,[D(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),g(`span`,pn,_(e.$t(`views.settings.cloudflare_login_waiting`)),1),D(u,{type:`button`,severity:`secondary`,loading:S(Xe),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])]))],64)):S(Q)===`creating_tunnel`||S(Q)===`setting_dns`?(p(),v(`div`,mn,[D(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),g(`span`,hn,_(S(Q)===`creating_tunnel`?e.$t(`components.form.hint.cloudflare_managed_creating_tunnel`):e.$t(`components.form.hint.cloudflare_managed_setting_dns`,{hostname:S(W)})),1),D(u,{type:`button`,severity:`secondary`,loading:S(Xe),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])])):S(Q)===`running`?(p(),v(b,{key:3},[g(`div`,gn,[g(`label`,_n,_(e.$t(`components.form.label.hostname`)),1),D(c,{readonly:``,value:`https://${S(R)?.hostname??``}`,type:`text`},null,8,[`value`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(e.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),S(R)?.tunnelId?(p(),v(`div`,vn,[g(`label`,yn,_(e.$t(`components.form.label.tunnel_id`)),1),D(c,{readonly:``,value:S(R).tunnelId,type:`text`},null,8,[`value`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(e.$t(`components.form.hint.cloudflare_tunnel_id_info`)),1)]),_:1})])):A(``,!0),g(`div`,bn,[D(u,{type:`button`,severity:`secondary`,loading:S(Ke),class:`cui-button-small`,label:e.$t(`components.form.button.test_connection`),onClick:i[15]||=e=>vr(`cloudflare`)},null,8,[`loading`,`label`]),D(u,{type:`button`,severity:`secondary`,loading:S(On),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.disconnect`),onClick:mr},null,8,[`loading`,`label`]),D(u,{type:`button`,severity:`danger`,loading:S(An),class:`cui-button-small`,label:e.$t(`components.form.button.logout`),onClick:hr},null,8,[`loading`,`label`])])],64)):A(``,!0)]))]),_:1})):A(``,!0)])):S(B).directMode===`customDomain`?(p(),v(`div`,xn,[D(S(M),{modelValue:S(H),"onUpdate:modelValue":i[16]||=e=>fe(H)?H.value=e:null,modelModifiers:{trim:!0},loading:S(X),name:`customDomain.url`,as:`div`,class:`flex flex-col field-gap`},{default:h(({field:t,errors:n})=>[g(`label`,Sn,_(e.$t(`components.form.label.url`)),1),D(c,pe(t,{invalid:n.length>0,loading:S(X),type:`text`,placeholder:`https://my.example.com`}),null,16,[`invalid`,`loading`]),D(k,{name:`fade`},{default:h(()=>[D(S(j),{name:`customDomain.url`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`loading`]),g(`div`,Cn,[D(u,{type:`button`,severity:`secondary`,loading:S(Ke),disabled:!S(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),D(u,{type:`submit`,loading:S(X),disabled:!S(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`]),D(S(ue),{ref:`serverFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":S(et),onSubmit:i[20]||=e=>br(e)},{default:h(()=>[g(`div`,null,[g(`span`,wn,_(e.$t(`views.settings.network`)),1),D(s,{class:`cui-card`},{content:h(()=>[g(`div`,Tn,[g(`span`,En,_(e.$t(`views.settings.network_info`)),1),D(S(M),{"model-value":S(z).serverAddresses,name:`serverAddresses`,as:`div`,class:`flex flex-col field-gap`},{default:h(({field:t,errors:n})=>[g(`label`,Dn,_(e.$t(`components.form.label.server_addresses`)),1),D(f,null,{default:h(()=>[D(he,pe(t,{"model-value":S(z).serverAddresses,options:S(de)?.availableAddresses||[],invalid:n.length>0,loading:S(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=>S(z).serverAddresses=e}),null,16,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),D(k,{name:`fade`},{default:h(()=>[D(S(j),{name:`serverAddresses`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`]),D(u,{type:`submit`,loading:S(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 +0,0 @@
1
- import{Fr as e,Ft as t,H as n,M as r,jt as i}from"./vendor-cameraui-CQTIVF_m.js";import{E as a,O as o,fr as s,lr as c,on as l,sn as u,st as d,wn as f}from"./api-DTFsk1zB.js";import{Gn as p,Nn as m,Xn as h,_r as g,an as _,b as v,bn as y,br as b,cn as x,cr as S,fr as C,gr as w,hn as T,in as E,ir as D,mr as O,on as k,pn as A,qt as j,rr as M,sn as N,v as P,wn as F,y as I}from"./vendor-BaiDFVEr.js";import{a as L}from"./useElectron-3ZJLtRk3.js";import{I as R,R as z,S as B,j as V,s as H}from"./vendor-primevue-DE-f4Z5f.js";import{t as U}from"./delete-BF6keuqy.js";import{t as W}from"./CuiDataTable-CORQOWsf.js";var G={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function K(e,t){return m(),x(`svg`,G,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`m21.7 13.35l-1 1l-2.05-2.05l1-1a.55.55 0 0 1 .77 0l1.28 1.28c.21.21.21.56 0 .77M12 18.94l6.06-6.06l2.05 2.05L14.06 21H12zM12 14c-4.42 0-8 1.79-8 4v2h6v-1.89l4-4c-.66-.08-1.33-.11-2-.11m0-10a4 4 0 0 0-4 4a4 4 0 0 0 4 4a4 4 0 0 0 4-4a4 4 0 0 0-4-4`},null,-1)]])}var q=D({name:`mdi-account-edit`,render:K}),J={for:`username`,class:`cui-label`},Y={for:`password`,class:`cui-label`},X={for:`passwordConfirm`,class:`cui-label`},Z={for:`role`,class:`cui-label`},Q=T({__name:`UserForm`,props:{user:{}},setup(t,{expose:n}){let i=new c,l=t,u=L(),d=s(),{t:f}=e(),g=y(`dialogRefProps`),{mutateAsync:x,isPending:C}=i.createUserQuery(),{mutateAsync:T,isPending:D}=i.patchUserQuery(),{user:M}=O(l),R=p(`formRef`),B=S({}),U=S([`user`,`admin`]),W=E(()=>!!(g.loading?.value||C.value||D.value));async function G(){let e=await R.value?.validate();if(!e?.valid)return u.error(`Validation failed`,e),d.add({severity:`error`,detail:f(`components.toast.validation_failed`),life:3e3}),null;M.value?await T({username:M.value.username,userData:B.value}):await x({userData:B.value})}return n({isLoading:W,onConfirm:G}),(e,t)=>{let n=r,i=z,s=H,c=V;return m(),k(w(v),{ref_key:`formRef`,ref:R,class:`flex flex-col gap-6`,"validation-schema":w(M)?w(o):w(a)},{default:h(()=>[A(w(I),{modelValue:w(B).username,"onUpdate:modelValue":t[0]||=e=>w(B).username=e,modelModifiers:{trim:!0},value:w(M)?.username??w(B).username,name:`username`,as:`div`,class:`flex flex-col field-gap`},{default:h(({field:t,errors:r})=>[_(`label`,J,b(e.$t(`components.form.label.username`)),1),A(i,null,{default:h(()=>[A(n,F(t,{invalid:r.length>0,loading:w(W),type:`text`}),null,16,[`invalid`,`loading`])]),_:2},1024),A(j,{name:`fade`},{default:h(()=>[A(w(P),{name:`username`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`value`]),A(w(I),{modelValue:w(B).password,"onUpdate:modelValue":t[1]||=e=>w(B).password=e,name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:h(({field:t,errors:n})=>[_(`label`,Y,b(e.$t(`components.form.label.new_password`)),1),A(i,null,{default:h(()=>[A(s,F({invalid:n.length>0},t,{loading:w(W),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),A(j,{name:`fade`},{default:h(()=>[A(w(P),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),A(w(I),{modelValue:w(B).passwordConfirm,"onUpdate:modelValue":t[2]||=e=>w(B).passwordConfirm=e,name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:h(({field:t,errors:n})=>[_(`label`,X,b(e.$t(`components.form.label.new_password_confirm`)),1),A(i,null,{default:h(()=>[A(s,F({invalid:n.length>0},t,{loading:w(W),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),A(j,{name:`fade`},{default:h(()=>[A(w(P),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),w(M)?.role===`master`?N(``,!0):(m(),k(w(I),{key:0,"model-value":w(B).role,name:`role`,as:`div`,class:`flex flex-col field-gap`},{default:h(({errors:n})=>[_(`label`,Z,b(e.$t(`components.form.label.role`)),1),A(i,null,{default:h(()=>[A(c,{"model-value":w(M)?.role??w(B).role,options:w(U),invalid:n.length>0,loading:w(W),type:`text`,onValueChange:t[3]||=e=>w(B).role=e},null,8,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),A(j,{name:`fade`},{default:h(()=>[A(w(P),{name:`role`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`]))]),_:1},8,[`validation-schema`])}}}),$={class:`flex flex-col w-full gap-6`},ee={class:`card-title`},te={class:`flex flex-col gap-6`},ne={class:`flex items-center gap-2`},re={class:`flex flex-col`},ie={class:`text-sm font-semibold text-color`},ae={class:`text-xs text-muted`},oe={class:`relative w-6 h-6`},se={class:`flex flex-row items-end justify-end gap-2`},ce=T({__name:`SettingsUsers`,setup(r){let a=new c,o=d(),{mdBreakpoint:s}=f(),{t:v}=e(),y=S({pageSize:15,page:1}),{data:T,isBusy:D}=a.getUsersQuery(y),{mutate:O,isPending:k}=a.removeUserQuery(),j={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},N=S({global:{value:null,matchMode:R.CONTAINS}}),P=p(`menuRef`),F=E(()=>D.value||k.value),I=E(()=>[{label:v(`views.settings.edit`),icon:q,buttonProps:{disabled:F.value},onClick:e=>{L(e)}},{label:v(`views.settings.remove`),icon:U,iconProps:{class:`text-red-500`},labelProps:{class:`text-red-500`},buttonProps:{disabled:F.value,severity:`danger`},onClick:e=>{O({username:e.username})}}]);function L(e){o.openComponentDialog(Q,{data:{title:v(e?`components.dialog.title.edit_user`:`components.dialog.title.create_new_user`),confirmText:v(e?`components.form.button.save`:`components.form.button.add`),loading:F,contentProps:{user:C(e)}}})}return(e,r)=>{let a=i,o=u,c=B,d=t,f=W,p=n;return m(),x(`div`,null,[_(`div`,$,[_(`div`,null,[_(`span`,ee,b(e.$t(`views.settings.registered_users`)),1),A(p,{class:`cui-card`},{content:h(()=>[_(`div`,te,[A(f,{filters:w(N),"onUpdate:filters":r[0]||=e=>M(N)?N.value=e:null,value:w(T)?.result,paginator:w(y).page>1||w(T)?.result&&w(T).result.length>15,"data-key":`id`,"filter-display":`menu`,loading:w(F),"global-filter-fields":[`username`],pt:j,"striped-rows":``,scrollable:``},{loading:h(()=>[A(a,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),default:h(()=>[A(c,{field:`username`,"align-frozen":`left`,frozen:!w(s),header:e.$t(`views.settings.title_user`),"header-class":`p-2 h-7 min-h-7 max-h-7 w-40 min-w-40 max-w-40`,class:`p-2 h-7 min-h-7 max-h-7 w-40 min-w-40 max-w-40`},{body:h(({data:e})=>[_(`div`,ne,[A(o,{src:e.avatar,size:54},null,8,[`src`]),_(`div`,re,[_(`span`,ie,b(e.username),1),_(`span`,ae,b(e.role),1)])])]),_:1},8,[`frozen`,`header`]),A(c,{field:`action`,"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7 text-right`},{body:h(({data:e})=>[_(`div`,null,[A(d,{severity:`secondary`,text:``,rounded:``,loading:w(F),class:`cui-icon-md`,onClick:t=>w(P)?.toggleMenu(t,void 0,e)},{icon:h(()=>[_(`div`,oe,[_(`div`,{class:g([`absolute top-1 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full transform transition-all duration-100 origin-center bg-current`,{"w-4 h-[2px] rotate-45 top-1/2 -translate-y-1/2 rounded-none":w(P)?.isOpen&&w(P)?.data?._id===e._id}])},null,2),_(`div`,{class:g([`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-1 h-1 rounded-full transition-all duration-100 bg-current`,{"opacity-0 scale-0":w(P)?.isOpen&&w(P)?.data?._id===e._id}])},null,2),_(`div`,{class:g([`absolute bottom-1 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full transform transition-all duration-100 origin-center bg-current`,{"w-4 h-[2px] -rotate-45 bottom-1/2 translate-y-1/2 rounded-none":w(P)?.isOpen&&w(P)?.data?._id===e._id}])},null,2)])]),_:2},1032,[`loading`,`onClick`])])]),_:1})]),_:1},8,[`filters`,`value`,`paginator`,`loading`]),_(`div`,se,[A(d,{severity:`success`,loading:w(F),class:`cui-button-medium mr-4 md:mr-0`,label:e.$t(`components.form.button.create_new_user`),onClick:r[1]||=e=>L()},null,8,[`loading`,`label`])])])]),_:1})])]),A(l,{ref_key:`menuRef`,ref:P,items:w(I),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}});export{ce as default};
@@ -1,2 +0,0 @@
1
- import{Fr as e,Ft as t,H as n,M as r,jt as i}from"./vendor-cameraui-CQTIVF_m.js";import{B as a,Kn as o,R as s,_t as c,fr as l,gt as ee,ht as te,i as ne,ir as re,st as u,ur as d,wn as ie,xn as ae,xr as f}from"./api-DTFsk1zB.js";import{$n as p,Dn as m,Mn as oe,Nn as h,Tn as se,U as g,Xn as _,an as v,br as y,cn as b,cr as x,en as ce,fn as S,gr as C,hn as w,in as T,on as E,or as D,pn as O,q as k,qn as A,rr as j,sn as M}from"./vendor-BaiDFVEr.js";import{K as le,L as ue,R as de,S as fe,_ as pe,j as me,z as he}from"./vendor-primevue-DE-f4Z5f.js";import{t as ge}from"./api-36pS71R2.js";import{t as _e}from"./plugins-CaKErv4E.js";import{t as ve}from"./CuiDataTable-CORQOWsf.js";import{t as ye}from"./back-filled-DcBDBvvP.js";import{n as be,t as xe}from"./round-restart-alt-DPYbDt-x.js";import{t as Se}from"./pencil-outline-D7aD4cCo.js";import{t as Ce}from"./deployed-code-update-xHE-blDN.js";async function we(){return(await f.get(`/workers/config`)).data}async function Te(e){return(await f.patch(`/workers/config`,e)).data}async function Ee(){return(await f.post(`/workers/pairings`)).data}async function N(e){await f.delete(`/workers/${e}`)}async function De(e){await f.post(`/workers/${e}/restart`)}async function Oe(e){await f.post(`/workers/${e}/update`)}async function ke({agentId:e,name:t}){await f.patch(`/workers/${e}`,{name:t})}async function Ae({cameraId:e,agentId:t}){return(await f.post(`/workers/assign`,{cameraId:e,agentId:t})).data}async function P({cameraId:e}){return(await f.post(`/workers/unassign`,{cameraId:e})).data}async function F({pluginName:e,agentId:t}){return(await f.post(`/workers/assign-plugin`,{pluginName:e,agentId:t})).data}async function I({pluginName:e}){return(await f.post(`/workers/unassign-plugin`,{pluginName:e})).data}var je=class{_queryClient=k();toast=l();getConfigQuery(){return d({queryKey:[`workersConfig`],queryFn:()=>we(),retry:!1})}patchConfigQuery(){return g({mutationFn:Te,onSuccess:()=>this._queryClient.invalidateQueries({queryKey:[`workersConfig`]}),onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})}})}createPairingQuery(){return g({mutationFn:Ee})}removeWorkerQuery(){return g({mutationFn:N,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`camerasList`]})})}assignCameraQuery(){return g({mutationFn:Ae,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 g({mutationFn:P,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 g({mutationFn:De})}updateWorkerQuery(){return g({mutationFn:Oe,onError:e=>{this.toast.add({severity:`error`,detail:e,life:5e3})}})}renameWorkerQuery(){return g({mutationFn:ke,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})}})}assignPluginQuery(){return g({mutationFn:F,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`pluginsList`]})})}unassignPluginQuery(){return g({mutationFn:I,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)}}}},Me={class:`flex flex-col gap-2 w-full`},Ne={for:`workerName`,class:`cui-label`},Pe=w({__name:`RenameWorker`,props:{currentName:{}},setup(e,{expose:t}){let n=x(e.currentName);return t({onConfirm:async()=>n.value.trim()||null}),(e,t)=>{let i=r;return h(),b(`div`,Me,[v(`label`,Ne,y(e.$t(`views.workers.name`)),1),O(i,{id:`workerName`,modelValue:C(n),"onUpdate:modelValue":t[0]||=e=>j(n)?n.value=e:null,class:`w-full`,autofocus:``},null,8,[`modelValue`])])}}}),L=D({workers:[],workerHistory:{}}),R=null,z=null;function Fe(e){let t=L.workers.findIndex(t=>t.agentId===e.agentId);if(t!==-1){let n=[...L.workers];n[t]=e,L.workers=n}else L.workers=[...L.workers,e];let n=L.workerHistory[e.agentId]??[];L.workerHistory={...L.workerHistory,[e.agentId]:[...n,e].slice(-30)}}async function Ie(){if(z?.ready.value)try{L.workers=await z.request(`get-workers`)}catch{}}async function B(){if(z?.ready.value)try{L.workerHistory=await z.request(`get-worker-history`)}catch{}}async function V(){await Promise.all([Ie(),B()])}function Le(){return z||(R=p(!0),R.run(()=>{let e=re(`/workers`);z=e,e.on(`worker-update`,e=>Fe(e)),e.on(`worker-removed`,({agentId:e})=>{L.workers=L.workers.filter(t=>t.agentId!==e);let t={...L.workerHistory};delete t[e],L.workerHistory=t}),e.onReady(()=>{V()})}),z)}function Re(){function e(){Le()}function t(){}return{isConnected:T(()=>z?.connected.value??!1),workers:T(()=>L.workers),workerHistory:T(()=>L.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=ae(w({__name:`Workers`,setup(re){let{t:d}=e(),{smBreakpoint:ae}=ie(),f=u(),p=l(),g=Re(),{workers:w,workerHistory:D,isConnected:k}=g,we=new ge,Te=new c,Ee=new _e,N=new je,{data:De,isLoading:Oe}=Te.getCamerasQuery(x({page:1,pageSize:999})),{data:ke,isLoading:Ae}=Ee.getPluginsQuery(x({page:1,pageSize:999})),{data:P}=N.getConfigQuery(),{mutateAsync:F,isPending:I}=N.patchConfigQuery(),{mutateAsync:Me}=N.assignCameraQuery(),{mutateAsync:Ne}=N.unassignCameraQuery(),{mutateAsync:L}=N.restartWorkerQuery(),{mutateAsync:R}=N.updateWorkerQuery(),{mutateAsync:z,isPending:Fe}=N.createPairingQuery(),{mutateAsync:Ie}=N.removeWorkerQuery(),{mutateAsync:B}=N.assignPluginQuery(),{mutateAsync:V}=N.unassignPluginQuery(),{mutateAsync:Le}=N.renameWorkerQuery(),{data:Tt}=we.apiInfoQuery(),Et={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm font-semibold`}}},Dt=x(!1),H=x([]),U=x([]),W=x([]),G=x(new Set),K=x(new Set),q=x(null),J=x(``),Y=x(7422),Ot=!1,X=new Map,kt=T(()=>De.value?.result??[]),At=T(()=>ke.value?.result??[]),Z=T(()=>P.value?.enabled??!1),jt=T(()=>(P.value?.suggestedAddresses??[]).map(e=>({label:e,value:e}))),Mt=T(()=>Y.value!==(P.value?.port??7422)),Nt=T(()=>J.value!==(P.value?.address??``)||Mt.value),Pt=T(()=>new Set(w.value.map(e=>e.agentId))),Q=T(()=>Tt.value?.version),Ft=T(()=>q.value?Math.max(0,Math.round((q.value.expiresAt-Date.now())/6e4)):0),It=T(()=>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=T(()=>[{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:Se,buttonProps:{severity:`secondary`},tooltip:()=>d(`views.workers.rename_worker`),action:e=>zt(e)},{icon:Ce,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:xe,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:s,buttonProps:{severity:`danger`},loading:e=>U.value.includes(e.agentId),tooltip:()=>d(`views.workers.remove_worker`),action:e=>tn(e)}]}]),Rt=T(()=>{let e=D.value;return w.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){f.openComponentDialog(Pe,{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 R(e)}finally{W.value=W.value.filter(t=>t!==e)}}async function Ht(e,t){H.value.push(e);try{await L(t)}finally{H.value=H.value.filter(t=>t!==e)}}function Ut(){let e=[];for(let t of w.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 w.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 B({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 Me({cameraId:e._id,agentId:t}):await Ne({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 z()}catch{}}async function $t(e){if(e&&!J.value&&(J.value=P.value?.suggestedAddresses?.[0]??``,!J.value)){f.openTextDialog({data:{title:d(`views.workers.enable_workers`),contentText:d(`views.workers.address_required`),confirmText:d(`views.workers.ok`)}});return}try{await F(e?{enabled:!0,address:J.value,port:Y.value}:{enabled:!1})}catch{}}async function en(){try{await F({address:J.value,port:Y.value})}catch{}}function tn(e){f.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 Ie(e.agentId)}finally{U.value=U.value.filter(t=>t!==e.agentId)}}})}return m(async()=>{g.connect(),await se(),g.loadAll(),Dt.value=!0}),A(P,e=>{e&&(J.value=e.address,Y.value=e.port)},{immediate:!0}),A(w,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),p.add({severity:`error`,summary:t.name,detail:d(`views.workers.update_failed`,{error:e}),life:6e3}))}}),oe(()=>{g.disconnect()}),(e,s)=>{let c=ye,l=t,re=a,u=i,d=he,ie=le,f=me,p=pe,m=n,oe=be,se=o,g=fe,x=ve,T=r,D=ee,A=ue,ge=de;return h(),b(`div`,null,[C(ae)?M(``,!0):(h(),b(`h1`,ze,y(e.$t(`views.workers.title`)),1)),O(re,{position:`left`},{default:_(()=>[O(l,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:s[0]||=t=>e.$router.push(`/menu`)},{icon:_(()=>[O(c,{class:`w-6 h-6`})]),_:1})]),_:1}),!C(Dt)||!C(k)?(h(),b(`div`,Be,[O(u,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(h(),b(`div`,Ve,[v(`div`,null,[v(`span`,He,y(e.$t(`views.workers.configuration`)),1),O(m,{class:`cui-card`},{content:_(()=>[v(`div`,Ue,[v(`div`,We,[v(`div`,Ge,[v(`label`,Ke,y(e.$t(`views.workers.enable_workers`)),1),O(d,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:_(()=>[S(y(e.$t(`views.workers.enable_workers_description`)),1)]),_:1})]),O(ie,{"model-value":C(Z),disabled:C(I),class:`ml-auto shrink-0`,"onUpdate:modelValue":$t},null,8,[`model-value`,`disabled`])]),C(Z)?(h(),b(ce,{key:0},[v(`div`,qe,[v(`label`,Je,y(e.$t(`views.workers.master_address`)),1),O(f,{modelValue:C(J),"onUpdate:modelValue":s[1]||=e=>j(J)?J.value=e:null,"input-id":`master-address`,options:C(jt),editable:``,"option-label":`label`,"option-value":`value`,placeholder:e.$t(`views.workers.master_address_placeholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),O(d,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[S(y(e.$t(`views.workers.master_address_hint`)),1)]),_:1})]),v(`div`,Ye,[v(`label`,Xe,y(e.$t(`views.workers.leaf_port`)),1),O(p,{modelValue:C(Y),"onUpdate:modelValue":s[2]||=e=>j(Y)?Y.value=e:null,"input-id":`leaf-port`,min:1024,max:65535,"use-grouping":!1,class:`w-full`},null,8,[`modelValue`]),C(Mt)&&(C(P)?.pairedWorkers??0)>0?(h(),E(d,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[S(y(e.$t(`views.workers.port_change_warning`)),1)]),_:1})):M(``,!0)]),v(`div`,Ze,[O(l,{class:`cui-button-medium`,label:e.$t(`views.workers.save`),loading:C(I),disabled:!C(Nt),onClick:en},null,8,[`label`,`loading`,`disabled`])])],64)):M(``,!0)])]),_:1})]),C(Z)?(h(),b(`div`,Qe,[v(`span`,$e,y(e.$t(`views.workers.workers`)),1),C(w).length?(h(),E(oe,{key:0,items:C(w),headers:C(Lt),"chart-data":C(Rt)},null,8,[`items`,`headers`,`chart-data`])):(h(),E(m,{key:1,class:`cui-card`,pt:{root:{class:`h-full`}}},{content:_(()=>[v(`div`,et,[O(se,{class:`w-12 h-12 text-muted`}),v(`span`,tt,y(e.$t(`views.workers.no_workers`)),1)])]),_:1}))])):M(``,!0),C(Z)&&C(w).length?(h(),b(`div`,nt,[v(`span`,rt,y(e.$t(`views.workers.camera_assignments`)),1),O(m,{class:`cui-card`},{content:_(()=>[v(`span`,it,y(e.$t(`views.workers.camera_assignments_description`)),1),O(x,{value:C(kt),loading:C(Oe),pt:Et,"striped-rows":``,class:`w-full`},{loading:_(()=>[O(u,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:_(()=>[v(`span`,at,y(e.$t(`views.workers.no_cameras`)),1)]),default:_(()=>[O(g,{field:`name`,header:e.$t(`views.workers.camera`),"header-class":`p-2 min-w-40`,class:`p-2 min-w-40`},{body:_(({data:e})=>[v(`span`,ot,y(e.name),1)]),_:1},8,[`header`]),O(g,{header:e.$t(`views.workers.workers`),"header-class":`p-2 w-full`,class:`p-2 w-full`},{body:_(({data:t})=>[O(f,{"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})])):M(``,!0),C(Z)&&C(w).length?(h(),b(`div`,st,[v(`span`,ct,y(e.$t(`views.workers.plugin_assignments`)),1),O(m,{class:`cui-card`},{content:_(()=>[v(`span`,lt,y(e.$t(`views.workers.plugin_assignments_description`)),1),O(x,{value:C(At),loading:C(Ae),pt:Et,"striped-rows":``,class:`w-full`},{loading:_(()=>[O(u,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:_(()=>[v(`span`,ut,y(e.$t(`views.workers.no_plugins`)),1)]),default:_(()=>[O(g,{field:`displayName`,header:e.$t(`views.workers.plugin`),"header-class":`p-2 min-w-40`,class:`p-2 min-w-40`},{body:_(({data:e})=>[v(`div`,dt,[v(`span`,ft,y(e.displayName),1),Kt(e)?(h(),b(`span`,pt,y(Kt(e)),1)):M(``,!0)])]),_:1},8,[`header`]),O(g,{header:e.$t(`views.workers.workers`),"header-class":`p-2 w-full`,class:`p-2 w-full`},{body:_(({data:t})=>[O(f,{"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})])):M(``,!0),C(Z)?(h(),b(`div`,mt,[v(`span`,ht,y(e.$t(`views.workers.pair_worker`)),1),O(m,{class:`cui-card`},{content:_(()=>[v(`div`,gt,[v(`span`,_t,y(e.$t(`views.workers.pair_worker_description`)),1),C(q)?(h(),b(ce,{key:0},[v(`div`,vt,[v(`label`,yt,y(e.$t(`views.workers.pairing_code`)),1),O(ge,null,{default:_(()=>[O(T,{"model-value":C(q).code,readonly:``,type:`text`},null,8,[`model-value`]),O(A,null,{default:_(()=>[O(D,{"action-text":e.$t(`views.workers.copied`),icon:C(te),"button-props":{severity:`secondary`,text:!0},onAction:s[3]||=e=>C(ne)(C(q).code)},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),O(d,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[S(y(e.$t(`views.workers.pairing_expires`,{minutes:C(Ft)})),1)]),_:1})]),v(`div`,bt,[v(`div`,xt,[v(`label`,St,y(e.$t(`views.workers.pairing_snippet`)),1),O(D,{"action-text":e.$t(`views.workers.copied`),icon:C(te),"button-props":{severity:`secondary`,text:!0},onAction:s[4]||=e=>C(ne)(C(It))},null,8,[`action-text`,`icon`])]),v(`pre`,Ct,y(C(It)),1),O(d,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[S(y(e.$t(`views.workers.pairing_snippet_hint`)),1)]),_:1})])],64)):M(``,!0),v(`div`,wt,[O(l,{class:`cui-button-medium`,label:e.$t(`views.workers.generate_code`),loading:C(Fe),onClick:Qt},null,8,[`label`,`loading`])])])]),_:1})])):M(``,!0)]))])}}}),[[`__scopeId`,`data-v-94ca58a2`]]);export{Tt as default};