@camera.ui/server 2.1.6 → 2.1.7

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 (213) hide show
  1. package/dist/interface/assets/{404-EUyzR8Cu.js → 404-D0lfw52Y.js} +1 -1
  2. package/dist/interface/assets/{About-BmfMwt66.js → About-DaaVZ9Cn.js} +1 -1
  3. package/dist/interface/assets/{Automation-DtTMxMlL.js → Automation-DQyPNAzK.js} +3 -3
  4. package/dist/interface/assets/{AutomationImport-Cxrhgzer.js → AutomationImport-BDD_LuC1.js} +2 -2
  5. package/dist/interface/assets/{AutomationStore-aTGlzTcI.js → AutomationStore-CeRF0iz6.js} +2 -2
  6. package/dist/interface/assets/{AutomationStoreDetail-BtmSvtyE.js → AutomationStoreDetail-DcCFUBJf.js} +2 -2
  7. package/dist/interface/assets/{Automations-CBeEWCad.js → Automations-GMWeSNQv.js} +2 -2
  8. package/dist/interface/assets/{Camera-9tFj730F.js → Camera-CYxRoESX.js} +2 -2
  9. package/dist/interface/assets/{CameraConsole-rCJr-qfx.js → CameraConsole-B0crXI59.js} +1 -1
  10. package/dist/interface/assets/{Cameras-DFuh9jxK.js → Cameras-V_twilcC.js} +2 -2
  11. package/dist/interface/assets/{Camview-C2byPDDS.js → Camview-CSb2iVBf.js} +1 -1
  12. package/dist/interface/assets/Config-BKuXgZxF.js +2 -0
  13. package/dist/interface/assets/{ConfigActionCameraControl-Caqlckcz.js → ConfigActionCameraControl-TFe1_K6j.js} +1 -1
  14. package/dist/interface/assets/{ConfigActionDelay-CZeAJTj7.js → ConfigActionDelay-DjFp5qpw.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionHttp-DcQCJ4zV.js → ConfigActionHttp-Cmjz4iAV.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionImageInput-DkgxdP2U.js → ConfigActionImageInput-B0Hll2M3.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionMqtt-Dp2-YpS9.js → ConfigActionMqtt-D2boY4u0.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionNotification-DDbDqLLs.js → ConfigActionNotification-7iRd0L5l.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionNotificationControl-CX83znhY.js → ConfigActionNotificationControl-DI_t2wHh.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionOutput-kMcDrgsm.js → ConfigActionOutput-BTGUzNQW.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionPlugin-Bv2Ke9_L.js → ConfigActionPlugin-CzspRdJx.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionSensor-CogS-K7S.js → ConfigActionSensor-CPK-s1E2.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionSnapshot-CdIciF5F.js → ConfigActionSnapshot-CcSw9Yw-.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionVariable-DS-nQLns.js → ConfigActionVariable-BCDtM13I.js} +1 -1
  25. package/dist/interface/assets/{ConfigConditionIfElse-BWYzHNnH.js → ConfigConditionIfElse-DZJkBeHI.js} +1 -1
  26. package/dist/interface/assets/{ConfigConditionSensorState-CxiaJpOs.js → ConfigConditionSensorState-CxWutq1T.js} +1 -1
  27. package/dist/interface/assets/{ConfigConditionSwitch-l01kWXVF.js → ConfigConditionSwitch-DBRR9cW4.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionTime-0Du7w_QE.js → ConfigConditionTime-B-5s6QW2.js} +1 -1
  29. package/dist/interface/assets/{ConfigSensorValueInput-Dm9r6m8t.js → ConfigSensorValueInput-B9MmHF-E.js} +1 -1
  30. package/dist/interface/assets/{ConfigTriggerDetection-CvK9Hvcd.js → ConfigTriggerDetection-DlY8ne3V.js} +1 -1
  31. package/dist/interface/assets/ConfigTriggerGeofence-DJt-3FpV.js +1 -0
  32. package/dist/interface/assets/{ConfigTriggerManual-IAo9sbiS.js → ConfigTriggerManual-BSxA9fGt.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerMqtt-16hSjN-I.js → ConfigTriggerMqtt-C7sFSgYi.js} +1 -1
  34. package/dist/interface/assets/{ConfigTriggerSchedule-Ct_AN-xu.js → ConfigTriggerSchedule-fqVY5k3V.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerSensor-DkVWre58.js → ConfigTriggerSensor-BMZ74d8e.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerSystem-BAd9IeRa.js → ConfigTriggerSystem-B8zwJpaY.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerWebhook-EmrFSoiV.js → ConfigTriggerWebhook-SklqcrZq.js} +1 -1
  38. package/dist/interface/assets/Console-BZB3MZKj.js +1 -0
  39. package/dist/interface/assets/CuiAutomationRunsDialog-N6NFABq2.js +1 -0
  40. package/dist/interface/assets/CuiBottomSheet-BnKYWBBA.js +1 -0
  41. package/dist/interface/assets/{CuiBottomSheet-DxrKqjWh.js → CuiBottomSheet-BuK_lFkK.js} +1 -1
  42. package/dist/interface/assets/{CuiCameraPipCard-C2nZsnPM.js → CuiCameraPipCard-DaJlFY1g.js} +1 -1
  43. package/dist/interface/assets/CuiCameraRecordings-z4WblFJ9.js +1 -0
  44. package/dist/interface/assets/{CuiCameraShares-DBZ01JcG.js → CuiCameraShares-CvKMe_kX.js} +1 -1
  45. package/dist/interface/assets/{CuiCameraTable-BlJHb3gX.js → CuiCameraTable-DOPSHZ28.js} +1 -1
  46. package/dist/interface/assets/CuiCameraTable-_7KwbPyM.js +1 -0
  47. package/dist/interface/assets/{CuiConsole-D56cxVKE.js → CuiConsole-BOfQ5I3b.js} +2 -2
  48. package/dist/interface/assets/{CuiDataTable-Ca51CpsO.js → CuiDataTable-DBNU5MJ_.js} +1 -1
  49. package/dist/interface/assets/{CuiLightControl-DP4pbkjr.js → CuiLightControl-CCwkaMEn.js} +1 -1
  50. package/dist/interface/assets/{CuiList-psx5r57o.js → CuiList-BOMdGNXj.js} +1 -1
  51. package/dist/interface/assets/{CuiPluginCard-DSQ7w6Nl.js → CuiPluginCard-CvNfBRhG.js} +2 -2
  52. package/dist/interface/assets/{CuiPluginCategoryChip-DiUXddOe.js → CuiPluginCategoryChip-JG_8D7Wt.js} +1 -1
  53. package/dist/interface/assets/{CuiPluginOAuthButton-ZRJJct-f.js → CuiPluginOAuthButton-6HQLdlfg.js} +2 -2
  54. package/dist/interface/assets/{CuiPluginTrustBadge-DNjUDEtv.js → CuiPluginTrustBadge-BS9iEcZr.js} +1 -1
  55. package/dist/interface/assets/{CuiQRCode-wxEwM1Sh.js → CuiQRCode-Vd-1ssJK.js} +1 -1
  56. package/dist/interface/assets/{CuiRecordingsGrid-DM5XDEMU.js → CuiRecordingsGrid-skKnK074.js} +1 -1
  57. package/dist/interface/assets/{CuiSchema-BJE7vHFH.js → CuiSchema-DvY3Bdnz.js} +1 -1
  58. package/dist/interface/assets/{CuiTopNavbarItem-DdFdvKkq.js → CuiTopNavbarItem-MCdYsYHh.js} +1 -1
  59. package/dist/interface/assets/Faces-DDTbgPtz.js +1 -0
  60. package/dist/interface/assets/{FirstSteps-CfKHB_uc.js → FirstSteps-T4ra4jxE.js} +1 -1
  61. package/dist/interface/assets/{Instances-DvAMsOPZ.js → Instances-D_Td0oJ-.js} +1 -1
  62. package/dist/interface/assets/{Logs-e3y9zMPD.js → Logs-DEQlc2WM.js} +2 -2
  63. package/dist/interface/assets/{Menu-DMLqFO8c.js → Menu-0EVo1-xs.js} +1 -1
  64. package/dist/interface/assets/Metrics-BstlZavQ.css +1 -0
  65. package/dist/interface/assets/Metrics-FFvFP2kR.js +1 -0
  66. package/dist/interface/assets/{OAuthDeviceFlow-C51WkjaT.js → OAuthDeviceFlow--YqcKa9u.js} +1 -1
  67. package/dist/interface/assets/{Plugin-DcdVF_OG.js → Plugin-CKcptqV9.js} +1 -1
  68. package/dist/interface/assets/{PluginConsole-D0n-Jf_E.js → PluginConsole-BB_dbd25.js} +1 -1
  69. package/dist/interface/assets/{PluginDetail-NOJPSqIS.js → PluginDetail-Y_jg8hAX.js} +2 -2
  70. package/dist/interface/assets/{PluginSchema-aG4DGAcH.js → PluginSchema-C4dQGJOV.js} +1 -1
  71. package/dist/interface/assets/PluginSearch-D2efYsof.js +1 -0
  72. package/dist/interface/assets/{PluginSearch-w9vvKCTP.js → PluginSearch-gY-PHMyu.js} +2 -2
  73. package/dist/interface/assets/{PluginUpdateProgress-DkdoTjZY.js → PluginUpdateProgress-BjeH5abL.js} +1 -1
  74. package/dist/interface/assets/{Plugins-BzQvLNj7.js → Plugins-Kz1A-VUA.js} +1 -1
  75. package/dist/interface/assets/Recordings-BlBmyZlM.js +1 -0
  76. package/dist/interface/assets/SensorEdit-CZyv_BYp.js +1 -0
  77. package/dist/interface/assets/{SensorHistory-C8vryAe_.js → SensorHistory-Mr03IqiL.js} +1 -1
  78. package/dist/interface/assets/Sensors-CHbtecpf.js +2 -0
  79. package/dist/interface/assets/{Settings-BqcsLKll.js → Settings-CIv_iZ_m.js} +1 -1
  80. package/dist/interface/assets/{SettingsAccount-CNfGFQuq.js → SettingsAccount-DA67jXmp.js} +1 -1
  81. package/dist/interface/assets/SettingsAccount-DPPwXOlM.js +1 -0
  82. package/dist/interface/assets/SettingsAppearance-C92Nlobb.js +1 -0
  83. package/dist/interface/assets/{SettingsAppearance-B-smgzKL.js → SettingsAppearance-DEQyCR5b.js} +1 -1
  84. package/dist/interface/assets/{SettingsBackup-C0ekmlJy.js → SettingsBackup-4y9MuseJ.js} +1 -1
  85. package/dist/interface/assets/{SettingsList-DeP1LOjz.js → SettingsList-DqyvUuS3.js} +1 -1
  86. package/dist/interface/assets/{SettingsMqtt-Bo4jZHMl.js → SettingsMqtt-CuTZBTrA.js} +1 -1
  87. package/dist/interface/assets/SettingsNotifications-D7Vs6NoU.js +1 -0
  88. package/dist/interface/assets/SettingsPermissions-C_8g_nff.js +1 -0
  89. package/dist/interface/assets/{SettingsRecordings-Dh-BqEba.js → SettingsRecordings-r9AwjQZX.js} +1 -1
  90. package/dist/interface/assets/{SettingsRemote-W3skn8qk.js → SettingsRemote-oDVzvhmy.js} +1 -1
  91. package/dist/interface/assets/{SettingsSystem-DnQSlgu0.js → SettingsSystem-QfBIPq4i.js} +2 -2
  92. package/dist/interface/assets/{SettingsUsers-CFBTzA0j.js → SettingsUsers-CqRJ8-7H.js} +1 -1
  93. package/dist/interface/assets/{Terminal-C7lDL745.js → Terminal-Xo2uy0RX.js} +3 -3
  94. package/dist/interface/assets/{VariableInput-DKmWb9RP.js → VariableInput-C3Jbe-vC.js} +1 -1
  95. package/dist/interface/assets/{VariableSuggestions-CjlK2Uqx.js → VariableSuggestions-pOrYkqys.js} +1 -1
  96. package/dist/interface/assets/{VersionsHandler-CrHCAiKn.js → VersionsHandler-BhBynPF8.js} +1 -1
  97. package/dist/interface/assets/{VirtualSensorCreate-DHhbE5iD.js → VirtualSensorCreate-B3bwlAJz.js} +1 -1
  98. package/dist/interface/assets/{Workers-CY-3Ah4u.js → Workers-tgzMqP3o.js} +2 -2
  99. package/dist/interface/assets/api-1K2Gzz8B.js +2 -0
  100. package/dist/interface/assets/{api-DwU_RUzW.js → api-B7yg8bdk.js} +1 -1
  101. package/dist/interface/assets/{auth-BhT4BtBc.js → auth-y-X5RKO6.js} +1 -1
  102. package/dist/interface/assets/{automations-ya-5P8Jc.js → automations-h1Wvnh36.js} +1 -1
  103. package/dist/interface/assets/cameras.schema-CKnsFYBP.js +1 -0
  104. package/dist/interface/assets/cloudHandoff-qezHiAZI.js +1 -0
  105. package/dist/interface/assets/{config-CgGpshGm.js → config-BZTZOfxI.js} +1 -1
  106. package/dist/interface/assets/{flowSchema-OrM5E_3R.js → flowSchema-Dxxlrn77.js} +1 -1
  107. package/dist/interface/assets/main-Ei2ORV9y.js +3 -0
  108. package/dist/interface/assets/main-kdyR9bI7.css +1 -0
  109. package/dist/interface/assets/{mqtt-CO84Q9sE.js → mqtt-CCq5JGGk.js} +1 -1
  110. package/dist/interface/assets/{notifications-DxDFtZSo.js → notifications-C8eyTPRM.js} +1 -1
  111. package/dist/interface/assets/{plugins-g-qkx8GX.js → plugins-D0Txz0BA.js} +1 -1
  112. package/dist/interface/assets/{round-restart-alt-YiDa63x6.js → round-restart-alt-Bw-T1H6w.js} +1 -1
  113. package/dist/interface/assets/{sensorIcons-4dvSmrEv.js → sensorIcons-r5wmAxeD.js} +1 -1
  114. package/dist/interface/assets/{sensors-BFCE7rbx.js → sensors-MIbrTUSa.js} +1 -1
  115. package/dist/interface/assets/{server-arWVymo1.js → server-alwZXRo-.js} +1 -1
  116. package/dist/interface/assets/{theme-Dw9-CwMe.js → theme-qmnHJ2WT.js} +1 -1
  117. package/dist/interface/assets/types-BTVMzSuj.js +1 -0
  118. package/dist/interface/assets/{types-D5c17URv.js → types-DBWHsh0W.js} +1 -1
  119. package/dist/interface/assets/{useAppVersion-Cp6mZ-ge.js → useAppVersion-BRc6OWZP.js} +1 -1
  120. package/dist/interface/assets/{useBackupRestore-Drc-2VXy.js → useBackupRestore-DCO_Pw9q.js} +1 -1
  121. package/dist/interface/assets/{useCameraOptions-BF3ASvVM.js → useCameraOptions-DYZKQx7X.js} +1 -1
  122. package/dist/interface/assets/{useElectron-BNGXeZEx.js → useElectron-CtslU_0f.js} +1 -1
  123. package/dist/interface/assets/{useLogsSocket-hJ9xUUtr.js → useLogsSocket-DvwkpzT2.js} +1 -1
  124. package/dist/interface/assets/{useNavLayout-CcDIO9RG.js → useNavLayout-CTX4KBkz.js} +1 -1
  125. package/dist/interface/assets/{usePermissions-C9kp5HQR.js → usePermissions-DpsfFydh.js} +1 -1
  126. package/dist/interface/assets/{usePluginUpdates-BJwtwD9v.js → usePluginUpdates-CiqRTrjF.js} +1 -1
  127. package/dist/interface/assets/usePushRegistration-Coz8RZob.js +2 -0
  128. package/dist/interface/assets/{useServerRestart-DwpQyv5H.js → useServerRestart-Bqpn8N4T.js} +1 -1
  129. package/dist/interface/assets/{useStreamStatus-C5dH33U5.js → useStreamStatus-BWCnwuaj.js} +1 -1
  130. package/dist/interface/assets/{useUpdateChannel-D7hnlzd5.js → useUpdateChannel-Cxm4QR-6.js} +1 -1
  131. package/dist/interface/assets/{useUserOptions-DFgkIDv8.js → useUserOptions-B2LNsU9C.js} +1 -1
  132. package/dist/interface/assets/{vendor-cameraui-GaXYUHUd.js → vendor-cameraui-C6beJsya.js} +44 -44
  133. package/dist/interface/assets/vendor-core-_ft7qIgH.js +1 -0
  134. package/dist/interface/assets/{vendor-primevue-CIRUBYsf.js → vendor-primevue-DfyAPSov.js} +1 -1
  135. package/dist/interface/index.html +24 -23
  136. package/dist/interface/sw.js +1 -1
  137. package/dist/server/package.json +4 -4
  138. package/dist/server/requirements.txt +1 -1
  139. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +4 -0
  140. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/__init__.py +4 -0
  141. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +3 -0
  142. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +26 -1
  143. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/device.py +6 -1
  144. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/events.py +2 -0
  145. package/dist/server/src/api/controllers/cameras.controller.d.ts +3 -1
  146. package/dist/server/src/api/controllers/cameras.controller.js +37 -0
  147. package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
  148. package/dist/server/src/api/routes/cameras.routes.js +24 -1
  149. package/dist/server/src/api/routes/cameras.routes.js.map +1 -1
  150. package/dist/server/src/api/schemas/cameras.schema.d.ts +43 -0
  151. package/dist/server/src/api/schemas/cameras.schema.js +15 -0
  152. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  153. package/dist/server/src/api/services/cameras.service.d.ts +2 -1
  154. package/dist/server/src/api/services/cameras.service.js +15 -0
  155. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  156. package/dist/server/src/api/types/index.d.ts +4 -1
  157. package/dist/server/src/api/websocket/nsp/metrics.d.ts +1 -0
  158. package/dist/server/src/api/websocket/nsp/metrics.js +15 -0
  159. package/dist/server/src/api/websocket/nsp/metrics.js.map +1 -1
  160. package/dist/server/src/api/websocket/types.d.ts +9 -0
  161. package/dist/server/src/camera/controller.js +1 -0
  162. package/dist/server/src/camera/controller.js.map +1 -1
  163. package/dist/server/src/camera/decoder/child.d.ts +2 -1
  164. package/dist/server/src/camera/decoder/child.js +10 -0
  165. package/dist/server/src/camera/decoder/child.js.map +1 -1
  166. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +4 -1
  167. package/dist/server/src/camera/decoder/detection-coordinator.js +23 -9
  168. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  169. package/dist/server/src/camera/decoder/event-manager.d.ts +3 -1
  170. package/dist/server/src/camera/decoder/event-manager.js +34 -6
  171. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  172. package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
  173. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
  174. package/dist/server/src/camera/decoder/perf-tracker.d.ts +1 -0
  175. package/dist/server/src/camera/decoder/perf-tracker.js +14 -1
  176. package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
  177. package/dist/server/src/camera/decoder/types.d.ts +12 -0
  178. package/dist/server/src/camera/decoder/worker.js +16 -1
  179. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  180. package/dist/server/src/camera/index.d.ts +2 -1
  181. package/dist/server/src/camera/index.js +3 -0
  182. package/dist/server/src/camera/index.js.map +1 -1
  183. package/dist/server/src/camera/utils/filter.d.ts +3 -0
  184. package/dist/server/src/camera/utils/filter.js +12 -8
  185. package/dist/server/src/camera/utils/filter.js.map +1 -1
  186. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +5 -0
  187. package/dist/server/src/rpc/interfaces/frameworker.d.ts +2 -1
  188. package/package.json +4 -4
  189. package/dist/interface/assets/Config-C_IAFeWx.js +0 -2
  190. package/dist/interface/assets/ConfigTriggerGeofence-DQcdG6av.js +0 -1
  191. package/dist/interface/assets/Console-C7lP5TMv.js +0 -1
  192. package/dist/interface/assets/CuiAutomationRunsDialog-BoGUmS-Q.js +0 -1
  193. package/dist/interface/assets/CuiBottomSheet-II-Ajj4k.js +0 -1
  194. package/dist/interface/assets/CuiCameraRecordings-B4pJPGOQ.js +0 -1
  195. package/dist/interface/assets/CuiCameraTable-WOrw4_LR.js +0 -1
  196. package/dist/interface/assets/Faces-D4_QXhaT.js +0 -1
  197. package/dist/interface/assets/Metrics-C3RI973t.js +0 -1
  198. package/dist/interface/assets/Metrics-DqBC-wEo.css +0 -1
  199. package/dist/interface/assets/PluginSearch-JGQTNibA.js +0 -1
  200. package/dist/interface/assets/Recordings-_2r3gD4E.js +0 -1
  201. package/dist/interface/assets/SensorEdit-qcv6KAap.js +0 -1
  202. package/dist/interface/assets/Sensors-DnWG7VfR.js +0 -2
  203. package/dist/interface/assets/SettingsAccount-BrYKAfPE.js +0 -1
  204. package/dist/interface/assets/SettingsAppearance-eeRSh42a.js +0 -1
  205. package/dist/interface/assets/SettingsNotifications-Dx3me91s.js +0 -2
  206. package/dist/interface/assets/SettingsPermissions-DU1XvFFc.js +0 -1
  207. package/dist/interface/assets/api-CvO7u24f.js +0 -2
  208. package/dist/interface/assets/cameras.schema-BWH_Q16D.js +0 -1
  209. package/dist/interface/assets/cloudHandoff-BPjQsq7k.js +0 -1
  210. package/dist/interface/assets/main-Dd71JT_o.css +0 -1
  211. package/dist/interface/assets/main-rlz9T4Ug.js +0 -3
  212. package/dist/interface/assets/types-BCygqese.js +0 -1
  213. package/dist/interface/assets/vendor-core-BNfYBWH3.js +0 -1
@@ -1 +1 @@
1
- import{Fr as e,Ft as t,H as n,M as r,Vt as ee,jt as te}from"./vendor-cameraui-GaXYUHUd.js";import{Cn as i,Cr as a,Kn as o,br as s,fr as c,gt as ne,hr as l,ht as re,i as ie,lt as ae,mr as u,o as d,qn as oe,st as f}from"./api-CvO7u24f.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 fe,qt as O,rr as k,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-BNGXeZEx.js";import{B as N,V as P}from"./types-BCygqese.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-CIRUBYsf.js";import{t as we}from"./server-arWVymo1.js";import{t as Te}from"./CuiQRCode-wxEwM1Sh.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 a.get(`/remote`,{signal:e})).data}async function ze(e){return(await a.patch(`/remote`,e)).data}async function Be(e){return(await a.post(`/remote/pair/init`,e?{name:e}:{})).data}async function Ve({name:e}={}){return(await a.post(`/remote/pair/poll`,e?{name:e}:{})).data}async function He(){await a.delete(`/remote/unregister`)}async function Ue({signal:e}){return(await a.get(`/remote/status`,{signal:e})).data}async function We(e){await a.patch(`/remote/name`,{name:e})}async function Ge({signal:e}){return(await a.get(`/remote/tunnel`,{signal:e})).data}async function Ke({signal:e}={}){return(await a.get(`/remote/connection-info`,{signal:e})).data}async function R(e){return(await a.post(`/remote/test/${e}`)).data}async function qe({signal:e}={}){return(await a.get(`/remote/cloudflare/managed/status`,{signal:e})).data}async function Je(e){await a.post(`/remote/cloudflare/managed/connect`,{hostname:e})}async function Ye(){await a.post(`/remote/cloudflare/managed/cancel`)}async function Xe(){await a.post(`/remote/cloudflare/managed/disconnect`)}async function Ze(){await a.post(`/remote/cloudflare/managed/logout`)}var Qe=class{_queryClient=de();t=l.global.t;toast=u();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 c({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 c({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 c({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 c({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 c({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=i(C({__name:`SettingsRemote`,setup(i){let a=new we,c=new Qe,l=he(),m=f(),C=u(),{t:T}=e(),{data:de,isBusy:N}=a.getServerInfoQuery(),{data:P,isBusy:Ee}=c.getRemoteInfoQuery(),{data:F,isBusy:Oe}=c.getRegistrationStatusQuery(),{data:ke,isLoading:je}=c.getTunnelStatusQuery(),{data:I}=c.getConnectionInfoQuery(),{mutateAsync:Ne,isPending:Pe}=a.patchSystemInfoQuery(),{mutateAsync:L,isPending:Ie}=c.patchRemoteInfoQuery(),{mutateAsync:Re,isPending:ze}=c.pairInitMutation(),{mutateAsync:Be}=c.pairPollMutation(),{mutateAsync:Ve,isPending:He}=c.unregisterServerQuery(),{mutateAsync:Ue,isPending:We}=c.updateServerNameQuery(),{mutateAsync:Ge,isPending:Ke}=c.testRemoteModeMutation(),{data:R}=c.getCloudflareManagedStatusQuery(),{mutateAsync:qe,isPending:Je}=c.cloudflareManagedConnectMutation(),{mutateAsync:Ye,isPending:Xe}=c.cloudflareManagedCancelMutation(),{mutateAsync:Ze,isPending:On}=c.cloudflareManagedDisconnectMutation(),{mutateAsync:kn,isPending:An}=c.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`?o: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;l.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 ie(K.value)}catch{}}async function or(){if(q.value)try{await ie(q.value)}catch{}}function sr(){q.value&&window.open(q.value,`_blank`,`noopener`)}function cr(e){let t=window.location.host===s||!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 ie(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 fe(()=>F.value?.serverName,e=>{e&&(V.value=e)},{immediate:!0}),fe(Z,e=>{e&&K.value&&$()}),fe(de,e=>{if(e){let t=d(e);z.value={...t,serverAddresses:(t.serverAddresses||[]).filter(Boolean)}}},{deep:!0,immediate:!0}),fe(P,e=>{if(e){let t=d(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,c=ge,l=r,ie=Ae,u=t,d=_e,f=ve,se=ye,m=Te,y=ne,C=oe,w=De,T=be,fe=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(O,{name:`fade`},{default:h(()=>[D(S(j),{name:`enabled`,class:`cui-input-switch-error`})]),_:1})]),D(c,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(l,{id:`serverName`,modelValue:S(V),"onUpdate:modelValue":i[2]||=e=>k(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(ie)]),_: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(O,{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(l,{"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(re),"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(l,{"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(re),"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(O,{name:`fade`},{default:h(()=>[D(S(j),{name:`directEnabled`,class:`cui-input-switch-error`})]),_:1})]),D(c,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(O,{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(l,{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(O,{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(l,{id:`cloudflareHostname`,modelValue:S(W),"onUpdate:modelValue":i[9]||=e=>k(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(fe,{id:`cloudflareToken`,modelValue:S(G),"onUpdate:modelValue":i[10]||=e=>k(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(O,{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(l,{id:`cloudflareHostnameManaged`,modelValue:S(W),"onUpdate:modelValue":i[12]||=e=>k(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(l,{"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(re),"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(l,{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(l,{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=>k(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(l,pe(t,{invalid:n.length>0,loading:S(X),type:`text`,placeholder:`https://my.example.com`}),null,16,[`invalid`,`loading`]),D(O,{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(O,{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
+ import{Ft as e,H as t,Ir as n,M as r,Vt as ee,jt as te}from"./vendor-cameraui-C6beJsya.js";import{Cn as i,Cr as a,Kn as o,br as s,fr as c,gt as ne,hr as l,ht as re,i as ie,lt as ae,mr as u,o as d,qn as oe,st as f}from"./api-1K2Gzz8B.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 fe,qt as O,rr as k,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-CtslU_0f.js";import{B as N,V as P}from"./types-BTVMzSuj.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-DfyAPSov.js";import{t as we}from"./server-alwZXRo-.js";import{t as Te}from"./CuiQRCode-Vd-1ssJK.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 a.get(`/remote`,{signal:e})).data}async function ze(e){return(await a.patch(`/remote`,e)).data}async function Be(e){return(await a.post(`/remote/pair/init`,e?{name:e}:{})).data}async function Ve({name:e}={}){return(await a.post(`/remote/pair/poll`,e?{name:e}:{})).data}async function He(){await a.delete(`/remote/unregister`)}async function Ue({signal:e}){return(await a.get(`/remote/status`,{signal:e})).data}async function We(e){await a.patch(`/remote/name`,{name:e})}async function Ge({signal:e}){return(await a.get(`/remote/tunnel`,{signal:e})).data}async function Ke({signal:e}={}){return(await a.get(`/remote/connection-info`,{signal:e})).data}async function R(e){return(await a.post(`/remote/test/${e}`)).data}async function qe({signal:e}={}){return(await a.get(`/remote/cloudflare/managed/status`,{signal:e})).data}async function Je(e){await a.post(`/remote/cloudflare/managed/connect`,{hostname:e})}async function Ye(){await a.post(`/remote/cloudflare/managed/cancel`)}async function Xe(){await a.post(`/remote/cloudflare/managed/disconnect`)}async function Ze(){await a.post(`/remote/cloudflare/managed/logout`)}var Qe=class{_queryClient=de();t=l.global.t;toast=u();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 c({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 c({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 c({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 c({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 c({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=i(C({__name:`SettingsRemote`,setup(i){let a=new we,c=new Qe,l=he(),m=f(),C=u(),{t:T}=n(),{data:de,isBusy:N}=a.getServerInfoQuery(),{data:P,isBusy:Ee}=c.getRemoteInfoQuery(),{data:F,isBusy:Oe}=c.getRegistrationStatusQuery(),{data:ke,isLoading:je}=c.getTunnelStatusQuery(),{data:I}=c.getConnectionInfoQuery(),{mutateAsync:Ne,isPending:Pe}=a.patchSystemInfoQuery(),{mutateAsync:L,isPending:Ie}=c.patchRemoteInfoQuery(),{mutateAsync:Re,isPending:ze}=c.pairInitMutation(),{mutateAsync:Be}=c.pairPollMutation(),{mutateAsync:Ve,isPending:He}=c.unregisterServerQuery(),{mutateAsync:Ue,isPending:We}=c.updateServerNameQuery(),{mutateAsync:Ge,isPending:Ke}=c.testRemoteModeMutation(),{data:R}=c.getCloudflareManagedStatusQuery(),{mutateAsync:qe,isPending:Je}=c.cloudflareManagedConnectMutation(),{mutateAsync:Ye,isPending:Xe}=c.cloudflareManagedCancelMutation(),{mutateAsync:Ze,isPending:On}=c.cloudflareManagedDisconnectMutation(),{mutateAsync:kn,isPending:An}=c.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`?o: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;l.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 ie(K.value)}catch{}}async function or(){if(q.value)try{await ie(q.value)}catch{}}function sr(){q.value&&window.open(q.value,`_blank`,`noopener`)}function cr(e){let t=window.location.host===s||!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 ie(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 fe(()=>F.value?.serverName,e=>{e&&(V.value=e)},{immediate:!0}),fe(Z,e=>{e&&K.value&&$()}),fe(de,e=>{if(e){let t=d(e);z.value={...t,serverAddresses:(t.serverAddresses||[]).filter(Boolean)}}},{deep:!0,immediate:!0}),fe(P,e=>{if(e){let t=d(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()}),(n,i)=>{let a=te,o=Ce,s=t,c=ge,l=r,ie=Ae,u=e,d=_e,f=ve,se=ye,m=Te,y=ne,C=oe,w=De,T=be,fe=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,_(n.$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,_(n.$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:e,errors:t})=>[g(`div`,dt,[g(`div`,ft,[g(`label`,pt,_(n.$t(`components.form.label.enabled`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(n.$t(`components.form.hint.cloud_access_enabled_info`)),1)]),_:1}),D(O,{name:`fade`},{default:h(()=>[D(S(j),{name:`enabled`,class:`cui-input-switch-error`})]),_:1})]),D(c,pe({"model-value":S(B).enabled},e,{invalid:t.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,_(n.$t(`views.settings.server_name_label`)),1),D(f,null,{default:h(()=>[D(l,{id:`serverName`,modelValue:S(V),"onUpdate:modelValue":i[2]||=e=>k(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(ie)]),_:1},8,[`loading`,`disabled`])),[[N,{value:n.$t(`components.form.button.save`)}]])]),_:1})]),_:1}),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(n.$t(`views.settings.server_name_info`)),1)]),_:1})]),g(`div`,gt,[g(`div`,_t,[g(`span`,vt,_(n.$t(`views.settings.status`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(n.$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,_(n.$t(`views.settings.needs_reauth`)),1)):(p(),v(`span`,xt,_(S(Z)?n.$t(`views.settings.registered`):n.$t(`views.settings.not_registered`)),1))])]),S(Z)?(p(),v(`div`,St,[g(`div`,Ct,[g(`span`,wt,_(n.$t(`views.settings.tunnel_status`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(n.$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?n.$t(`views.settings.tunnel_connected`):n.$t(`views.settings.tunnel_disconnected`)},null,8,[`severity`,`value`]))])])):A(``,!0),D(O,{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(_(n.$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,_(n.$t(`views.settings.pair_code`)),1),D(f,null,{default:h(()=>[D(l,{"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":n.$t(`components.form.tooltip.copied`),icon:S(re),"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(_(n.$t(`views.settings.pair_code_hint`)),1)]),_:1})]),g(`div`,Mt,[g(`label`,Nt,_(n.$t(`views.settings.pair_url`)),1),D(f,null,{default:h(()=>[D(l,{"model-value":S(q),readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),D(d,null,{default:h(()=>[D(y,{"action-text":n.$t(`components.form.tooltip.copied`),icon:S(re),"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:n.$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,_(n.$t(`views.settings.pair_waiting`,{remaining:S(Pn)})),1),D(u,{type:`button`,severity:`secondary`,class:`cui-button-small ml-auto`,label:n.$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]||=e=>n.$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)?n.$t(`views.settings.registered`):n.$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:n.$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:n.$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:n.$t(`components.form.button.unregister_server`),onClick:Zn},null,8,[`loading`,`severity`,`text`,`label`])):A(``,!0)])])]),_:1})]),g(`div`,null,[g(`span`,Rt,_(n.$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:e,errors:t})=>[g(`div`,Bt,[g(`div`,Vt,[g(`label`,Ht,_(n.$t(`components.form.label.enabled`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(n.$t(`views.settings.direct_connection_info`)),1)]),_:1}),D(O,{name:`fade`},{default:h(()=>[D(S(j),{name:`directEnabled`,class:`cui-input-switch-error`})]),_:1})]),D(c,pe({"model-value":S(Fn)},e,{invalid:t.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(O,{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?n.$t(`views.settings.direct_override_fallback`):n.$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,_(n.$t(`views.settings.external_url`)),1),D(l,{readonly:``,type:`text`,value:S(I)?.externalUrl??n.$t(`components.form.label.disconnected`)},null,8,[`value`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(n.$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:e})=>[g(`label`,Gt,_(n.$t(`views.settings.connection_method`)),1),D(T,{"model-value":S(B).directMode,options:S(Vn),"option-label":`label`,"option-value":`value`,invalid:e.length>0,loading:S(X),"onUpdate:modelValue":i[6]||=e=>ur(e)},null,8,[`model-value`,`options`,`invalid`,`loading`]),D(O,{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,_(n.$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:n.$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,_(n.$t(`components.form.label.hostname`)),1),D(l,{id:`cloudflareHostname`,modelValue:S(W),"onUpdate:modelValue":i[9]||=e=>k(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(_(n.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),g(`div`,Qt,[g(`label`,$t,_(n.$t(`components.form.label.tunnel_token`)),1),D(fe,{id:`cloudflareToken`,modelValue:S(G),"onUpdate:modelValue":i[10]||=e=>k(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)?n.$t(`components.form.hint.cloudflare_token_already_set`):n.$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:n.$t(`components.form.button.test_connection`),onClick:i[11]||=e=>vr(`cloudflare`)},null,8,[`loading`,`disabled`,`label`])])],64)):S(U)===`managed`?(p(),E(O,{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,_(n.$t(`components.form.label.hostname`)),1),D(l,{id:`cloudflareHostnameManaged`,modelValue:S(W),"onUpdate:modelValue":i[12]||=e=>k(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(_(n.$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:n.$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(_(n.$t(`components.form.hint.cloudflare_managed_awaiting_login`,{hostname:S(W)})),1)]),_:1}),g(`div`,cn,[g(`label`,ln,_(n.$t(`components.form.label.cloudflare_url`)),1),D(f,null,{default:h(()=>[D(l,{"model-value":S(R).loginUrl,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),D(d,null,{default:h(()=>[D(y,{"action-text":n.$t(`components.form.tooltip.copied`),icon:S(re),"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:n.$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,_(n.$t(`views.settings.cloudflare_login_waiting`)),1),D(u,{type:`button`,severity:`secondary`,loading:S(Xe),class:`cui-button-small ml-auto`,label:n.$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,_(n.$t(`views.settings.cloudflare_login_waiting`)),1),D(u,{type:`button`,severity:`secondary`,loading:S(Xe),class:`cui-button-small ml-auto`,label:n.$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`?n.$t(`components.form.hint.cloudflare_managed_creating_tunnel`):n.$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:n.$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,_(n.$t(`components.form.label.hostname`)),1),D(l,{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(_(n.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),S(R)?.tunnelId?(p(),v(`div`,vn,[g(`label`,yn,_(n.$t(`components.form.label.tunnel_id`)),1),D(l,{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(_(n.$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:n.$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:n.$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:n.$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=>k(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:e,errors:t})=>[g(`label`,Sn,_(n.$t(`components.form.label.url`)),1),D(l,pe(e,{invalid:t.length>0,loading:S(X),type:`text`,placeholder:`https://my.example.com`}),null,16,[`invalid`,`loading`]),D(O,{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:n.$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:n.$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,_(n.$t(`views.settings.network`)),1),D(s,{class:`cui-card`},{content:h(()=>[g(`div`,Tn,[g(`span`,En,_(n.$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:e,errors:t})=>[g(`label`,Dn,_(n.$t(`components.form.label.server_addresses`)),1),D(f,null,{default:h(()=>[D(he,pe(e,{"model-value":S(z).serverAddresses,options:S(de)?.availableAddresses||[],invalid:t.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(O,{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:n.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])]),_:1})])]),_:1},8,[`validation-schema`])]))])}}}),[[`__scopeId`,`data-v-788da547`]]);export{On as default};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./VersionsHandler-CrHCAiKn.js","./vendor-cameraui-GaXYUHUd.js","./rolldown-runtime-C0FnF6B9.js","./vendor-BaiDFVEr.js","./api-CvO7u24f.js","./useElectron-BNGXeZEx.js","./vendor-zod-Dbq0fBXY.js","./types-BCygqese.js","./lightbulb-outline-ClK17CO6.js","./vendor-core-BNfYBWH3.js","./vendor-primevue-CIRUBYsf.js","./vendor-dnd-ChrDrMuz.js","./close-BNAWPz0y.js","./vendor-draggabilly-DSeIE_bQ.js","./api-Bj4QRftG.css","./server-arWVymo1.js","./useServerRestart-DwpQyv5H.js","./plugins-g-qkx8GX.js","./CuiConsole-D56cxVKE.js","./vendor-xterm-BafMBqaV.js","./vendor-xterm-BrP-ENHg.css","./CuiConsole-CoA-Nq-_.css","./useLogsSocket-hJ9xUUtr.js","./CuiMarkdownContent-PSq4kE1G.js","./vendor-markdown-Bw_90xkF.js","./vendor-markdown-DtOhvyRx.css","./alert-circle-C2AU59aR.js","./platformLabels-D-cF6OTP.js","./config-CgGpshGm.js","./useUpdateChannel-D7hnlzd5.js"])))=>i.map(i=>d[i]);
2
- import{Fr as e,Ft as t,H as n,jt as r}from"./vendor-cameraui-GaXYUHUd.js";import{ct as i,g as ee,gr as a,hn as te,st as o,xn as s}from"./api-CvO7u24f.js";import{Nn as c,On as l,Rt as ne,Xn as u,an as d,br as f,cn as p,cr as m,en as re,fn as h,gr as g,hn as ie,in as _,jn as ae,on as v,pn as y,qn as b,sn as x,t as S}from"./vendor-BaiDFVEr.js";import{a as oe,t as se}from"./useElectron-BNGXeZEx.js";import{K as ce,z as le}from"./vendor-primevue-CIRUBYsf.js";import{r as ue,t as de}from"./server-arWVymo1.js";import{n as fe}from"./useServerRestart-DwpQyv5H.js";import{n as pe,t as me}from"./api-DwU_RUzW.js";import{t as he}from"./useUpdateChannel-D7hnlzd5.js";import{t as ge}from"./useAppVersion-Cp6mZ-ge.js";var _e={class:`flex flex-col w-full gap-6`},ve={key:0},ye={class:`flex items-center gap-4`},be={class:`flex flex-col field-switch-gap`},xe={for:`betaChannel`,class:`cui-label-switch`},Se={class:`flex flex-col gap-6`},Ce={key:0,class:`flex flex-row items-center justify-between`},we={class:`text-sm`},Te={key:1,class:`text-sm font-bold`},Ee={key:1,class:`flex flex-row items-center justify-between`},De={class:`text-sm`},Oe={class:`text-sm font-bold`},ke={key:0,class:`text-muted font-normal`},Ae={class:`flex flex-row items-center justify-between`},je={class:`text-sm`},Me={key:1,class:`text-sm font-bold`},Ne={key:2,class:`flex w-full items-center gap-2`},Pe={key:1},Fe={class:`card-title`},Ie={class:`flex flex-col gap-6`},Le={class:`text-sm`},Re={class:`card-title`},ze={class:`flex flex-col gap-6`},Be={class:`text-sm`},Ve={key:2},He={class:`card-title`},Ue={class:`flex flex-col gap-6`},We={class:`text-sm`},C=ie({__name:`SettingsSystem`,setup(ie){let C=i(()=>ne(()=>import(`./VersionsHandler-CrHCAiKn.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]),import.meta.url)),w=new me,T=new de,E=oe(),D=o(),{t:O}=e(),{isElectronApp:k,electron:A}=se(),{isOnline:j}=a(),{restarting:M,beginServerRestart:Ge}=fe(),{isBeta:N,setBeta:Ke}=he(),{appVersion:P,nativeVersion:F,refreshAppVersion:qe}=ge(),Je=ee();T.toggleQueryActivator(`checkVersionQuery`,!1);let{data:I,isBusy:Ye}=w.apiInfoQuery(),{data:L,isBusy:Xe}=T.checkVersionQuery(),{mutate:Ze,isPending:Qe}=T.restartServerQuery(),{mutateAsync:$e,isPending:et}=T.resetServerQuery(),R=m(O(`views.settings.unknown`)),z=m(O(`views.settings.unknown`)),B=m(),V=m(),H=m(),U=m(!1),W=m(!1),G=m(!1),K=m(!1),q=0,J=_(()=>I.value?.electron??!1),Y=_(()=>Qe.value||et.value||Ye.value||Xe.value||K.value||W.value),X=_(()=>I.value?.installedVersion||I.value?.version),tt=_(()=>I.value?.restartRequired??!1),Z=_(()=>Y.value||!j.value||M.value),nt=_(()=>X.value&&V.value?S(V.value,X.value)===1:!1),rt=_(()=>N.value&&X.value&&B.value?S(B.value,X.value)===1:!1),Q=_(()=>{let e=[nt.value?V.value:void 0,rt.value?B.value:void 0].filter(e=>!!e);if(e.length)return e.sort((e,t)=>S(t,e))[0]});function it(e){Ke(e===!0)}async function at(){if(!U.value){U.value=!0;try{let e=await ue(),t=new Blob([e],{type:`application/x-x509-ca-cert`});await s({blob:t,filename:`cert.pem`,mimeType:`application/x-x509-ca-cert`})}catch(e){E.error(e)}U.value=!1}}function ot(){Ge(),Ze()}function $(e){switch(e){case`restart`:D.openTextDialog({data:{title:O(`components.dialog.title.restart`),confirmText:O(`components.form.button.restart`),contentText:O(`components.dialog.message.confirm_restart_server`),loading:Y},onConfirm:ot});break;case`reset`:D.openTextDialog({data:{title:O(`components.dialog.title.reset_server`),confirmText:O(`components.form.button.reset`),contentText:O(`components.dialog.message.confirm_reset_server`),loading:Y},onConfirm:async()=>{try{await $e()}catch{}finally{Je.logout()}}});break;case`versions`:case`install`:D.openComponentDialog(C,{data:{title:O(`components.dialog.title.install_version`),confirmText:O(e===`install`?`components.form.button.update`:`components.form.button.install`),loading:Y,contentProps:{target:{type:`server`},installVersion:e===`install`?Q.value:void 0}}})}}async function st(){if(k)try{G.value=!0,z.value=await A.invoke(`get-app-version`)??O(`views.settings.unknown`)}catch(e){E.error(`Error getting electron app version:`,e)}finally{G.value=!1}}async function ct(){if(k)try{K.value=!0;let e=await A.invoke(`get-update-available`);H.value=e.isUpdateAvailable?e.version:void 0}catch(e){E.error(`Error checking for electron updates:`,e)}finally{K.value=!1}}async function lt(){if(k)try{W.value=!0,await A.invoke(`quit-and-install`)}catch(e){E.error(`Error installing electron update:`,e)}finally{W.value=!1}}async function ut(){let e=++q;for(let t=0;t<30;t++)try{if(await pe({signal:AbortSignal.timeout(5e3)}),e!==q)return;w.queryClient.invalidateQueries({queryKey:[`api`]}),T.queryClient.invalidateQueries({queryKey:[`version`]});return}catch{if(await new Promise(e=>setTimeout(e,2e3)),e!==q||!j.value)return}}return b(I,()=>{R.value=I.value?.version||O(`views.settings.unknown`),I.value&&T.toggleQueryActivator(`checkVersionQuery`,!J.value)},{deep:!0,immediate:!0}),b(L,()=>{V.value=L.value?.[`dist-tags`].latest,B.value=L.value?.[`dist-tags`].beta},{deep:!0,immediate:!0}),b([j,M],([e,t],[n,r])=>{J.value||(e&&!n||r&&!t&&e)&&ut()}),l(()=>{q++}),ae(()=>{k&&(st(),ct())}),(e,i)=>{let ee=le,a=ce,o=n,s=r,l=t;return c(),p(`div`,null,[d(`div`,_e,[g(J)?x(``,!0):(c(),p(`div`,ve,[y(o,{class:`cui-card`},{content:u(()=>[d(`div`,null,[d(`div`,ye,[d(`div`,be,[d(`label`,xe,f(e.$t(`views.settings.beta_updates`)),1),y(ee,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:u(()=>[h(f(e.$t(`views.settings.beta_updates_info`)),1)]),_:1})]),y(a,{"input-id":`betaChannel`,"model-value":g(N),class:`ml-auto shrink-0`,"onUpdate:modelValue":it},null,8,[`model-value`])])])]),_:1})])),d(`div`,null,[i[6]||=d(`span`,{class:`card-title`},`camera.ui`,-1),y(o,{class:`cui-card`},{content:u(()=>[d(`div`,Se,[g(k)?(c(),p(`div`,Ce,[d(`span`,we,f(e.$t(`views.settings.app`)),1),g(Y)?(c(),v(s,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(c(),p(`span`,Te,`v`+f(g(z)),1))])):x(``,!0),g(!1)&&g(P)?(c(),p(`div`,Ee,[d(`span`,De,f(e.$t(`views.settings.app`)),1),d(`span`,Oe,[h(` v`+f(g(P)),1),g(F)&&g(F)!==g(P)?(c(),p(`span`,ke,` (`+f(g(F))+`)`,1)):x(``,!0)])])):x(``,!0),d(`div`,Ae,[d(`span`,je,f(e.$t(`views.settings.server`)),1),g(Y)?(c(),v(s,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(c(),p(`span`,Me,[h(` v`+f(g(R)),1),g(tt)?(c(),p(re,{key:0},[h(` → v`+f(g(X)),1)],64)):x(``,!0)]))]),g(k)&&g(H)||!g(J)?(c(),p(`div`,Ne,[i[5]||=d(`div`,{class:`ml-auto`},null,-1),g(k)&&g(H)?(c(),v(l,{key:0,disabled:!g(k),loading:g(Y),class:`cui-button-medium`,label:`${e.$t(`components.form.button.update`)} (v${g(H)})`,onClick:lt},null,8,[`disabled`,`loading`,`label`])):x(``,!0),!g(J)&&g(tt)?(c(),v(l,{key:1,loading:g(Y),disabled:g(Z),class:`cui-button-medium`,label:`${e.$t(`components.form.button.restart`)} (v${g(X)})`,onClick:i[0]||=e=>$(`restart`)},null,8,[`loading`,`disabled`,`label`])):!g(J)&&g(Q)?(c(),v(l,{key:2,loading:g(Y),disabled:g(Z),class:`cui-button-medium`,label:`${e.$t(`components.form.button.update`)} (v${g(Q)})`,onClick:i[1]||=e=>$(`install`)},null,8,[`loading`,`disabled`,`label`])):x(``,!0),g(J)?x(``,!0):(c(),v(l,{key:3,loading:g(Y),disabled:g(Z),class:`cui-button-medium`,label:e.$t(`components.form.button.manage`),onClick:i[2]||=e=>$(`versions`)},null,8,[`loading`,`disabled`,`label`]))])):x(``,!0)])]),_:1})]),g(k)?x(``,!0):(c(),p(`div`,Pe,[d(`span`,Fe,f(e.$t(`views.settings.certificate`)),1),y(o,{class:`cui-card`},{content:u(()=>[d(`div`,Ie,[d(`span`,Le,f(e.$t(`views.settings.certificate_info`)),1),y(l,{loading:g(U)||g(Y),disabled:g(Z),class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.download`),onClick:at},null,8,[`loading`,`disabled`,`label`])])]),_:1})])),d(`div`,null,[d(`span`,Re,f(e.$t(`views.settings.restart_server`)),1),y(o,{class:`cui-card`},{content:u(()=>[d(`div`,ze,[d(`span`,Be,f(e.$t(`views.settings.restart_server_info`)),1),y(l,{loading:g(Y),disabled:g(Z),class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.restart`),onClick:i[3]||=e=>$(`restart`)},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),(`hasPermission`in e?e.hasPermission:g(te))(void 0,`master`)?(c(),p(`div`,Ve,[d(`span`,He,f(e.$t(`views.settings.reset_server`)),1),y(o,{class:`cui-card !border-red-900`},{content:u(()=>[d(`div`,Ue,[d(`span`,We,f(e.$t(`views.settings.reset_server_info`)),1),y(l,{loading:g(Y),disabled:g(Z),class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.reset`),onClick:i[4]||=e=>$(`reset`)},null,8,[`loading`,`disabled`,`label`])])]),_:1})])):x(``,!0)])])}}});export{C as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./VersionsHandler-BhBynPF8.js","./vendor-cameraui-C6beJsya.js","./rolldown-runtime-C0FnF6B9.js","./vendor-BaiDFVEr.js","./api-1K2Gzz8B.js","./useElectron-CtslU_0f.js","./vendor-zod-Dbq0fBXY.js","./types-BTVMzSuj.js","./lightbulb-outline-ClK17CO6.js","./vendor-core-_ft7qIgH.js","./vendor-primevue-DfyAPSov.js","./vendor-dnd-ChrDrMuz.js","./close-BNAWPz0y.js","./vendor-draggabilly-DSeIE_bQ.js","./api-Bj4QRftG.css","./server-alwZXRo-.js","./useServerRestart-Bqpn8N4T.js","./plugins-D0Txz0BA.js","./CuiConsole-BOfQ5I3b.js","./vendor-xterm-BafMBqaV.js","./vendor-xterm-BrP-ENHg.css","./CuiConsole-CoA-Nq-_.css","./useLogsSocket-DvwkpzT2.js","./CuiMarkdownContent-PSq4kE1G.js","./vendor-markdown-Bw_90xkF.js","./vendor-markdown-DtOhvyRx.css","./alert-circle-C2AU59aR.js","./platformLabels-D-cF6OTP.js","./config-BZTZOfxI.js","./useUpdateChannel-Cxm4QR-6.js"])))=>i.map(i=>d[i]);
2
+ import{Ft as e,H as t,Ir as n,jt as r}from"./vendor-cameraui-C6beJsya.js";import{ct as i,g as ee,gr as a,hn as te,st as o,xn as s}from"./api-1K2Gzz8B.js";import{Nn as c,On as l,Rt as ne,Xn as u,an as d,br as f,cn as p,cr as m,en as re,fn as h,gr as g,hn as ie,in as _,jn as ae,on as v,pn as y,qn as b,sn as x,t as S}from"./vendor-BaiDFVEr.js";import{a as oe,t as se}from"./useElectron-CtslU_0f.js";import{K as ce,z as le}from"./vendor-primevue-DfyAPSov.js";import{r as ue,t as de}from"./server-alwZXRo-.js";import{n as fe}from"./useServerRestart-Bqpn8N4T.js";import{n as pe,t as me}from"./api-B7yg8bdk.js";import{t as he}from"./useUpdateChannel-Cxm4QR-6.js";import{t as ge}from"./useAppVersion-BRc6OWZP.js";var _e={class:`flex flex-col w-full gap-6`},ve={key:0},ye={class:`flex items-center gap-4`},be={class:`flex flex-col field-switch-gap`},xe={for:`betaChannel`,class:`cui-label-switch`},Se={class:`flex flex-col gap-6`},Ce={key:0,class:`flex flex-row items-center justify-between`},we={class:`text-sm`},Te={key:1,class:`text-sm font-bold`},Ee={key:1,class:`flex flex-row items-center justify-between`},De={class:`text-sm`},Oe={class:`text-sm font-bold`},ke={key:0,class:`text-muted font-normal`},Ae={class:`flex flex-row items-center justify-between`},je={class:`text-sm`},Me={key:1,class:`text-sm font-bold`},Ne={key:2,class:`flex w-full items-center gap-2`},Pe={key:1},Fe={class:`card-title`},Ie={class:`flex flex-col gap-6`},Le={class:`text-sm`},Re={class:`card-title`},ze={class:`flex flex-col gap-6`},Be={class:`text-sm`},Ve={key:2},He={class:`card-title`},Ue={class:`flex flex-col gap-6`},We={class:`text-sm`},C=ie({__name:`SettingsSystem`,setup(ie){let C=i(()=>ne(()=>import(`./VersionsHandler-BhBynPF8.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]),import.meta.url)),w=new me,T=new de,E=oe(),D=o(),{t:O}=n(),{isElectronApp:k,electron:A}=se(),{isOnline:j}=a(),{restarting:M,beginServerRestart:Ge}=fe(),{isBeta:N,setBeta:Ke}=he(),{appVersion:P,nativeVersion:F,refreshAppVersion:qe}=ge(),Je=ee();T.toggleQueryActivator(`checkVersionQuery`,!1);let{data:I,isBusy:Ye}=w.apiInfoQuery(),{data:L,isBusy:Xe}=T.checkVersionQuery(),{mutate:Ze,isPending:Qe}=T.restartServerQuery(),{mutateAsync:$e,isPending:et}=T.resetServerQuery(),R=m(O(`views.settings.unknown`)),z=m(O(`views.settings.unknown`)),B=m(),V=m(),H=m(),U=m(!1),W=m(!1),G=m(!1),K=m(!1),q=0,J=_(()=>I.value?.electron??!1),Y=_(()=>Qe.value||et.value||Ye.value||Xe.value||K.value||W.value),X=_(()=>I.value?.installedVersion||I.value?.version),tt=_(()=>I.value?.restartRequired??!1),Z=_(()=>Y.value||!j.value||M.value),nt=_(()=>X.value&&V.value?S(V.value,X.value)===1:!1),rt=_(()=>N.value&&X.value&&B.value?S(B.value,X.value)===1:!1),Q=_(()=>{let e=[nt.value?V.value:void 0,rt.value?B.value:void 0].filter(e=>!!e);if(e.length)return e.sort((e,t)=>S(t,e))[0]});function it(e){Ke(e===!0)}async function at(){if(!U.value){U.value=!0;try{let e=await ue(),t=new Blob([e],{type:`application/x-x509-ca-cert`});await s({blob:t,filename:`cert.pem`,mimeType:`application/x-x509-ca-cert`})}catch(e){E.error(e)}U.value=!1}}function ot(){Ge(),Ze()}function $(e){switch(e){case`restart`:D.openTextDialog({data:{title:O(`components.dialog.title.restart`),confirmText:O(`components.form.button.restart`),contentText:O(`components.dialog.message.confirm_restart_server`),loading:Y},onConfirm:ot});break;case`reset`:D.openTextDialog({data:{title:O(`components.dialog.title.reset_server`),confirmText:O(`components.form.button.reset`),contentText:O(`components.dialog.message.confirm_reset_server`),loading:Y},onConfirm:async()=>{try{await $e()}catch{}finally{Je.logout()}}});break;case`versions`:case`install`:D.openComponentDialog(C,{data:{title:O(`components.dialog.title.install_version`),confirmText:O(e===`install`?`components.form.button.update`:`components.form.button.install`),loading:Y,contentProps:{target:{type:`server`},installVersion:e===`install`?Q.value:void 0}}})}}async function st(){if(k)try{G.value=!0,z.value=await A.invoke(`get-app-version`)??O(`views.settings.unknown`)}catch(e){E.error(`Error getting electron app version:`,e)}finally{G.value=!1}}async function ct(){if(k)try{K.value=!0;let e=await A.invoke(`get-update-available`);H.value=e.isUpdateAvailable?e.version:void 0}catch(e){E.error(`Error checking for electron updates:`,e)}finally{K.value=!1}}async function lt(){if(k)try{W.value=!0,await A.invoke(`quit-and-install`)}catch(e){E.error(`Error installing electron update:`,e)}finally{W.value=!1}}async function ut(){let e=++q;for(let t=0;t<30;t++)try{if(await pe({signal:AbortSignal.timeout(5e3)}),e!==q)return;w.queryClient.invalidateQueries({queryKey:[`api`]}),T.queryClient.invalidateQueries({queryKey:[`version`]});return}catch{if(await new Promise(e=>setTimeout(e,2e3)),e!==q||!j.value)return}}return b(I,()=>{R.value=I.value?.version||O(`views.settings.unknown`),I.value&&T.toggleQueryActivator(`checkVersionQuery`,!J.value)},{deep:!0,immediate:!0}),b(L,()=>{V.value=L.value?.[`dist-tags`].latest,B.value=L.value?.[`dist-tags`].beta},{deep:!0,immediate:!0}),b([j,M],([e,t],[n,r])=>{J.value||(e&&!n||r&&!t&&e)&&ut()}),l(()=>{q++}),ae(()=>{k&&(st(),ct())}),(n,i)=>{let ee=le,a=ce,o=t,s=r,l=e;return c(),p(`div`,null,[d(`div`,_e,[g(J)?x(``,!0):(c(),p(`div`,ve,[y(o,{class:`cui-card`},{content:u(()=>[d(`div`,null,[d(`div`,ye,[d(`div`,be,[d(`label`,xe,f(n.$t(`views.settings.beta_updates`)),1),y(ee,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:u(()=>[h(f(n.$t(`views.settings.beta_updates_info`)),1)]),_:1})]),y(a,{"input-id":`betaChannel`,"model-value":g(N),class:`ml-auto shrink-0`,"onUpdate:modelValue":it},null,8,[`model-value`])])])]),_:1})])),d(`div`,null,[i[6]||=d(`span`,{class:`card-title`},`camera.ui`,-1),y(o,{class:`cui-card`},{content:u(()=>[d(`div`,Se,[g(k)?(c(),p(`div`,Ce,[d(`span`,we,f(n.$t(`views.settings.app`)),1),g(Y)?(c(),v(s,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(c(),p(`span`,Te,`v`+f(g(z)),1))])):x(``,!0),g(!1)&&g(P)?(c(),p(`div`,Ee,[d(`span`,De,f(n.$t(`views.settings.app`)),1),d(`span`,Oe,[h(` v`+f(g(P)),1),g(F)&&g(F)!==g(P)?(c(),p(`span`,ke,` (`+f(g(F))+`)`,1)):x(``,!0)])])):x(``,!0),d(`div`,Ae,[d(`span`,je,f(n.$t(`views.settings.server`)),1),g(Y)?(c(),v(s,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(c(),p(`span`,Me,[h(` v`+f(g(R)),1),g(tt)?(c(),p(re,{key:0},[h(` → v`+f(g(X)),1)],64)):x(``,!0)]))]),g(k)&&g(H)||!g(J)?(c(),p(`div`,Ne,[i[5]||=d(`div`,{class:`ml-auto`},null,-1),g(k)&&g(H)?(c(),v(l,{key:0,disabled:!g(k),loading:g(Y),class:`cui-button-medium`,label:`${n.$t(`components.form.button.update`)} (v${g(H)})`,onClick:lt},null,8,[`disabled`,`loading`,`label`])):x(``,!0),!g(J)&&g(tt)?(c(),v(l,{key:1,loading:g(Y),disabled:g(Z),class:`cui-button-medium`,label:`${n.$t(`components.form.button.restart`)} (v${g(X)})`,onClick:i[0]||=e=>$(`restart`)},null,8,[`loading`,`disabled`,`label`])):!g(J)&&g(Q)?(c(),v(l,{key:2,loading:g(Y),disabled:g(Z),class:`cui-button-medium`,label:`${n.$t(`components.form.button.update`)} (v${g(Q)})`,onClick:i[1]||=e=>$(`install`)},null,8,[`loading`,`disabled`,`label`])):x(``,!0),g(J)?x(``,!0):(c(),v(l,{key:3,loading:g(Y),disabled:g(Z),class:`cui-button-medium`,label:n.$t(`components.form.button.manage`),onClick:i[2]||=e=>$(`versions`)},null,8,[`loading`,`disabled`,`label`]))])):x(``,!0)])]),_:1})]),g(k)?x(``,!0):(c(),p(`div`,Pe,[d(`span`,Fe,f(n.$t(`views.settings.certificate`)),1),y(o,{class:`cui-card`},{content:u(()=>[d(`div`,Ie,[d(`span`,Le,f(n.$t(`views.settings.certificate_info`)),1),y(l,{loading:g(U)||g(Y),disabled:g(Z),class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.download`),onClick:at},null,8,[`loading`,`disabled`,`label`])])]),_:1})])),d(`div`,null,[d(`span`,Re,f(n.$t(`views.settings.restart_server`)),1),y(o,{class:`cui-card`},{content:u(()=>[d(`div`,ze,[d(`span`,Be,f(n.$t(`views.settings.restart_server_info`)),1),y(l,{loading:g(Y),disabled:g(Z),class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.restart`),onClick:i[3]||=e=>$(`restart`)},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),(`hasPermission`in n?n.hasPermission:g(te))(void 0,`master`)?(c(),p(`div`,Ve,[d(`span`,He,f(n.$t(`views.settings.reset_server`)),1),y(o,{class:`cui-card !border-red-900`},{content:u(()=>[d(`div`,Ue,[d(`span`,We,f(n.$t(`views.settings.reset_server_info`)),1),y(l,{loading:g(Y),disabled:g(Z),class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.reset`),onClick:i[4]||=e=>$(`reset`)},null,8,[`loading`,`disabled`,`label`])])]),_:1})])):x(``,!0)])])}}});export{C as default};
@@ -1 +1 @@
1
- import{Fr as e,Ft as t,H as n,Lt as r,M as i,Vt as a,jt as o}from"./vendor-cameraui-GaXYUHUd.js";import{E as s,En as c,O as l,cn as u,dr as d,ln as f,mr as p,st as m}from"./api-CvO7u24f.js";import{Gn as h,Nn as g,Xn as _,Zn as v,_r as y,an as b,b as x,bn as S,br as C,cn as w,cr as T,fn as E,fr as D,gr as O,hn as k,in as A,ir as j,mr as M,on as N,pn as P,qt as F,rr as I,sn as L,v as R,wn as z,y as B,yr as V}from"./vendor-BaiDFVEr.js";import{a as H}from"./useElectron-BNGXeZEx.js";import{I as U,R as W,S as G,j as K,s as q}from"./vendor-primevue-CIRUBYsf.js";import{t as ee}from"./delete-BF6keuqy.js";import{t as te}from"./CuiDataTable-Ca51CpsO.js";import{n as ne,t as re}from"./auth-BhT4BtBc.js";var J={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Y(e,t){return g(),w(`svg`,J,[...t[0]||=[b(`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 ie=j({name:`mdi-account-edit`,render:Y}),X={for:`username`,class:`cui-label`},Z={for:`password`,class:`cui-label`},Q={for:`passwordConfirm`,class:`cui-label`},$={for:`role`,class:`cui-label`},ae=k({__name:`UserForm`,props:{user:{}},setup(t,{expose:n}){let r=new d,a=t,o=H(),c=p(),{t:u}=e(),f=S(`dialogRefProps`),{mutateAsync:m,isPending:v}=r.createUserQuery(),{mutateAsync:y,isPending:w}=r.patchUserQuery(),{user:E}=M(a),D=h(`formRef`),k=T({}),j=T([`user`,`admin`]),I=A(()=>!!(f.loading?.value||v.value||w.value));async function V(){let e=await D.value?.validate();if(!e?.valid)return o.error(`Validation failed`,e),c.add({severity:`error`,detail:u(`components.toast.validation_failed`),life:3e3}),null;E.value?await y({username:E.value.username,userData:k.value}):await m({userData:k.value})}return n({isLoading:I,onConfirm:V}),(e,t)=>{let n=i,r=W,a=q,o=K;return g(),N(O(x),{ref_key:`formRef`,ref:D,class:`flex flex-col gap-6`,"validation-schema":O(E)?O(l):O(s)},{default:_(()=>[P(O(B),{modelValue:O(k).username,"onUpdate:modelValue":t[0]||=e=>O(k).username=e,modelModifiers:{trim:!0},value:O(E)?.username??O(k).username,name:`username`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:t,errors:i})=>[b(`label`,X,C(e.$t(`components.form.label.username`)),1),P(r,null,{default:_(()=>[P(n,z(t,{invalid:i.length>0,loading:O(I),type:`text`}),null,16,[`invalid`,`loading`])]),_:2},1024),P(F,{name:`fade`},{default:_(()=>[P(O(R),{name:`username`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`value`]),P(O(B),{modelValue:O(k).password,"onUpdate:modelValue":t[1]||=e=>O(k).password=e,name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:t,errors:n})=>[b(`label`,Z,C(e.$t(`components.form.label.new_password`)),1),P(r,null,{default:_(()=>[P(a,z({invalid:n.length>0},t,{loading:O(I),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),P(F,{name:`fade`},{default:_(()=>[P(O(R),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),P(O(B),{modelValue:O(k).passwordConfirm,"onUpdate:modelValue":t[2]||=e=>O(k).passwordConfirm=e,name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:t,errors:n})=>[b(`label`,Q,C(e.$t(`components.form.label.new_password_confirm`)),1),P(r,null,{default:_(()=>[P(a,z({invalid:n.length>0},t,{loading:O(I),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),P(F,{name:`fade`},{default:_(()=>[P(O(R),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),O(E)?.role===`master`?L(``,!0):(g(),N(O(B),{key:0,"model-value":O(k).role,name:`role`,as:`div`,class:`flex flex-col field-gap`},{default:_(({errors:n})=>[b(`label`,$,C(e.$t(`components.form.label.role`)),1),P(r,null,{default:_(()=>[P(o,{"model-value":O(E)?.role??O(k).role,options:O(j),invalid:n.length>0,loading:O(I),type:`text`,onValueChange:t[3]||=e=>O(k).role=e},null,8,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),P(F,{name:`fade`},{default:_(()=>[P(O(R),{name:`role`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`]))]),_:1},8,[`validation-schema`])}}}),oe={class:`flex flex-col w-full gap-6`},se={class:`card-title`},ce={class:`flex flex-col gap-6`},le={class:`flex items-center gap-2`},ue={class:`flex flex-col`},de={class:`text-sm font-semibold text-color`},fe={class:`text-xs text-muted`},pe={class:`relative w-6 h-6`},me={class:`flex flex-row items-end justify-end gap-2`},he={class:`card-title`},ge={class:`flex items-center justify-center`},_e={class:`font-medium block max-w-[200px] truncate`},ve={class:`text-muted text-sm`},ye=k({__name:`SettingsUsers`,setup(i){let s=new re,l=new d,p=m(),{mdBreakpoint:x}=c(),{t:S}=e(),k=T({pageSize:15,page:1}),j=T({page:1,pageSize:-1}),{data:M,isBusy:F}=l.getUsersQuery(k),{mutate:L,isPending:R}=l.removeUserQuery(),{data:z,isBusy:B}=s.listAllSessionsQuery(j),{mutate:H,isPending:W}=s.revokeSessionQuery(),K={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},q=T({global:{value:null,matchMode:U.CONTAINS}}),J=h(`menuRef`),Y=A(()=>F.value||R.value),X=A(()=>z.value??[]),Z=A(()=>!!B.value),Q=A(()=>[{label:S(`views.settings.edit`),icon:ie,buttonProps:{disabled:Y.value},onClick:e=>{$(e)}},{label:S(`views.settings.remove`),icon:ee,iconProps:{class:`text-red-500`},labelProps:{class:`text-red-500`},buttonProps:{disabled:Y.value,severity:`danger`},onClick:e=>{L({username:e.username})}}]);function $(e){p.openComponentDialog(ae,{data:{title:S(e?`components.dialog.title.edit_user`:`components.dialog.title.create_new_user`),confirmText:S(e?`components.form.button.save`:`components.form.button.add`),loading:Y,contentProps:{user:D(e)}}})}return(e,i)=>{let s=o,c=f,l=G,d=t,p=te,m=n,h=r,S=ne,T=a;return g(),w(`div`,null,[b(`div`,oe,[b(`div`,null,[b(`span`,se,C(e.$t(`views.settings.registered_users`)),1),P(m,{class:`cui-card`},{content:_(()=>[b(`div`,ce,[P(p,{filters:O(q),"onUpdate:filters":i[0]||=e=>I(q)?q.value=e:null,value:O(M)?.result,paginator:O(k).page>1||O(M)?.result&&O(M).result.length>15,"data-key":`id`,"filter-display":`menu`,loading:O(Y),"global-filter-fields":[`username`],pt:K,"striped-rows":``,scrollable:``},{loading:_(()=>[P(s,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),default:_(()=>[P(l,{field:`username`,"align-frozen":`left`,frozen:!O(x),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:_(({data:e})=>[b(`div`,le,[P(c,{src:e.avatar,size:54},null,8,[`src`]),b(`div`,ue,[b(`span`,de,C(e.username),1),b(`span`,fe,C(e.role),1)])])]),_:1},8,[`frozen`,`header`]),P(l,{field:`action`,"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7 text-right`},{body:_(({data:e})=>[b(`div`,null,[P(d,{severity:`secondary`,text:``,rounded:``,loading:O(Y),class:`cui-icon-md`,onClick:t=>O(J)?.toggleMenu(t,void 0,e)},{icon:_(()=>[b(`div`,pe,[b(`div`,{class:y([`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":O(J)?.isOpen&&O(J)?.data?._id===e._id}])},null,2),b(`div`,{class:y([`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":O(J)?.isOpen&&O(J)?.data?._id===e._id}])},null,2),b(`div`,{class:y([`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":O(J)?.isOpen&&O(J)?.data?._id===e._id}])},null,2)])]),_:2},1032,[`loading`,`onClick`])])]),_:1})]),_:1},8,[`filters`,`value`,`paginator`,`loading`]),b(`div`,me,[P(d,{severity:`success`,loading:O(Y),class:`cui-button-medium mr-4 md:mr-0`,label:e.$t(`components.form.button.create_new_user`),onClick:i[1]||=e=>$()},null,8,[`loading`,`label`])])])]),_:1})]),b(`div`,null,[b(`span`,he,C(e.$t(`views.settings.logged_in_users`)),1),P(m,{class:`cui-card`},{content:_(()=>[P(p,{value:O(X),loading:O(Z),pt:K,"striped-rows":``,scrollable:``},{loading:_(()=>[P(s,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:_(()=>[b(`span`,ve,C(e.$t(`views.settings.no_sessions`)),1)]),default:_(()=>[P(l,{field:`status`,header:``,style:{width:`3rem`}},{body:_(({data:t})=>[b(`div`,ge,[v(P(h,{style:V({background:t.is_current?`var(--primary-500)`:`transparent`})},null,8,[`style`]),[[T,{value:t.is_current?e.$t(`components.user_table.you`):void 0}]])])]),_:1}),P(l,{field:`device.name`,header:e.$t(`components.user_table.title_device`)},{body:_(({data:e})=>[b(`span`,_e,C(e.device.name),1)]),_:1},8,[`header`]),P(l,{field:`device.ip`,header:e.$t(`components.user_table.title_address`)},{body:_(({data:e})=>[E(C(e.device.ip??`-`),1)]),_:1},8,[`header`]),P(l,{field:`device.kind`,header:e.$t(`components.user_table.title_kind`)},null,8,[`header`]),P(l,{field:`action`,class:`text-right`},{body:_(({data:t})=>[v((g(),N(d,{severity:`danger`,text:``,rounded:``,loading:O(W),class:`cui-icon-md`,onClick:e=>O(H)({id:t.id})},{icon:_(()=>[P(S,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[T,{value:e.$t(`views.settings.active_sessions.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`])]),_:1})])]),P(u,{ref_key:`menuRef`,ref:J,items:O(Q),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}});export{ye as default};
1
+ import{Ft as e,H as t,Ir as n,Lt as r,M as i,Vt as a,jt as o}from"./vendor-cameraui-C6beJsya.js";import{E as s,En as c,O as l,cn as u,dr as d,ln as f,mr as p,st as m}from"./api-1K2Gzz8B.js";import{Gn as h,Nn as g,Xn as _,Zn as v,_r as y,an as b,b as x,bn as S,br as C,cn as w,cr as T,fn as E,fr as D,gr as O,hn as k,in as A,ir as j,mr as M,on as N,pn as P,qt as F,rr as I,sn as L,v as R,wn as z,y as B,yr as V}from"./vendor-BaiDFVEr.js";import{a as H}from"./useElectron-CtslU_0f.js";import{I as U,R as W,S as G,j as K,s as q}from"./vendor-primevue-DfyAPSov.js";import{t as ee}from"./delete-BF6keuqy.js";import{t as te}from"./CuiDataTable-DBNU5MJ_.js";import{n as ne,t as re}from"./auth-y-X5RKO6.js";var J={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Y(e,t){return g(),w(`svg`,J,[...t[0]||=[b(`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 ie=j({name:`mdi-account-edit`,render:Y}),X={for:`username`,class:`cui-label`},Z={for:`password`,class:`cui-label`},Q={for:`passwordConfirm`,class:`cui-label`},$={for:`role`,class:`cui-label`},ae=k({__name:`UserForm`,props:{user:{}},setup(e,{expose:t}){let r=new d,a=e,o=H(),c=p(),{t:u}=n(),f=S(`dialogRefProps`),{mutateAsync:m,isPending:v}=r.createUserQuery(),{mutateAsync:y,isPending:w}=r.patchUserQuery(),{user:E}=M(a),D=h(`formRef`),k=T({}),j=T([`user`,`admin`]),I=A(()=>!!(f.loading?.value||v.value||w.value));async function V(){let e=await D.value?.validate();if(!e?.valid)return o.error(`Validation failed`,e),c.add({severity:`error`,detail:u(`components.toast.validation_failed`),life:3e3}),null;E.value?await y({username:E.value.username,userData:k.value}):await m({userData:k.value})}return t({isLoading:I,onConfirm:V}),(e,t)=>{let n=i,r=W,a=q,o=K;return g(),N(O(x),{ref_key:`formRef`,ref:D,class:`flex flex-col gap-6`,"validation-schema":O(E)?O(l):O(s)},{default:_(()=>[P(O(B),{modelValue:O(k).username,"onUpdate:modelValue":t[0]||=e=>O(k).username=e,modelModifiers:{trim:!0},value:O(E)?.username??O(k).username,name:`username`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:t,errors:i})=>[b(`label`,X,C(e.$t(`components.form.label.username`)),1),P(r,null,{default:_(()=>[P(n,z(t,{invalid:i.length>0,loading:O(I),type:`text`}),null,16,[`invalid`,`loading`])]),_:2},1024),P(F,{name:`fade`},{default:_(()=>[P(O(R),{name:`username`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`value`]),P(O(B),{modelValue:O(k).password,"onUpdate:modelValue":t[1]||=e=>O(k).password=e,name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:t,errors:n})=>[b(`label`,Z,C(e.$t(`components.form.label.new_password`)),1),P(r,null,{default:_(()=>[P(a,z({invalid:n.length>0},t,{loading:O(I),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),P(F,{name:`fade`},{default:_(()=>[P(O(R),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),P(O(B),{modelValue:O(k).passwordConfirm,"onUpdate:modelValue":t[2]||=e=>O(k).passwordConfirm=e,name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:t,errors:n})=>[b(`label`,Q,C(e.$t(`components.form.label.new_password_confirm`)),1),P(r,null,{default:_(()=>[P(a,z({invalid:n.length>0},t,{loading:O(I),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),P(F,{name:`fade`},{default:_(()=>[P(O(R),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),O(E)?.role===`master`?L(``,!0):(g(),N(O(B),{key:0,"model-value":O(k).role,name:`role`,as:`div`,class:`flex flex-col field-gap`},{default:_(({errors:n})=>[b(`label`,$,C(e.$t(`components.form.label.role`)),1),P(r,null,{default:_(()=>[P(o,{"model-value":O(E)?.role??O(k).role,options:O(j),invalid:n.length>0,loading:O(I),type:`text`,onValueChange:t[3]||=e=>O(k).role=e},null,8,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),P(F,{name:`fade`},{default:_(()=>[P(O(R),{name:`role`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`]))]),_:1},8,[`validation-schema`])}}}),oe={class:`flex flex-col w-full gap-6`},se={class:`card-title`},ce={class:`flex flex-col gap-6`},le={class:`flex items-center gap-2`},ue={class:`flex flex-col`},de={class:`text-sm font-semibold text-color`},fe={class:`text-xs text-muted`},pe={class:`relative w-6 h-6`},me={class:`flex flex-row items-end justify-end gap-2`},he={class:`card-title`},ge={class:`flex items-center justify-center`},_e={class:`font-medium block max-w-[200px] truncate`},ve={class:`text-muted text-sm`},ye=k({__name:`SettingsUsers`,setup(i){let s=new re,l=new d,p=m(),{mdBreakpoint:x}=c(),{t:S}=n(),k=T({pageSize:15,page:1}),j=T({page:1,pageSize:-1}),{data:M,isBusy:F}=l.getUsersQuery(k),{mutate:L,isPending:R}=l.removeUserQuery(),{data:z,isBusy:B}=s.listAllSessionsQuery(j),{mutate:H,isPending:W}=s.revokeSessionQuery(),K={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},q=T({global:{value:null,matchMode:U.CONTAINS}}),J=h(`menuRef`),Y=A(()=>F.value||R.value),X=A(()=>z.value??[]),Z=A(()=>!!B.value),Q=A(()=>[{label:S(`views.settings.edit`),icon:ie,buttonProps:{disabled:Y.value},onClick:e=>{$(e)}},{label:S(`views.settings.remove`),icon:ee,iconProps:{class:`text-red-500`},labelProps:{class:`text-red-500`},buttonProps:{disabled:Y.value,severity:`danger`},onClick:e=>{L({username:e.username})}}]);function $(e){p.openComponentDialog(ae,{data:{title:S(e?`components.dialog.title.edit_user`:`components.dialog.title.create_new_user`),confirmText:S(e?`components.form.button.save`:`components.form.button.add`),loading:Y,contentProps:{user:D(e)}}})}return(n,i)=>{let s=o,c=f,l=G,d=e,p=te,m=t,h=r,S=ne,T=a;return g(),w(`div`,null,[b(`div`,oe,[b(`div`,null,[b(`span`,se,C(n.$t(`views.settings.registered_users`)),1),P(m,{class:`cui-card`},{content:_(()=>[b(`div`,ce,[P(p,{filters:O(q),"onUpdate:filters":i[0]||=e=>I(q)?q.value=e:null,value:O(M)?.result,paginator:O(k).page>1||O(M)?.result&&O(M).result.length>15,"data-key":`id`,"filter-display":`menu`,loading:O(Y),"global-filter-fields":[`username`],pt:K,"striped-rows":``,scrollable:``},{loading:_(()=>[P(s,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),default:_(()=>[P(l,{field:`username`,"align-frozen":`left`,frozen:!O(x),header:n.$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:_(({data:e})=>[b(`div`,le,[P(c,{src:e.avatar,size:54},null,8,[`src`]),b(`div`,ue,[b(`span`,de,C(e.username),1),b(`span`,fe,C(e.role),1)])])]),_:1},8,[`frozen`,`header`]),P(l,{field:`action`,"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7 text-right`},{body:_(({data:e})=>[b(`div`,null,[P(d,{severity:`secondary`,text:``,rounded:``,loading:O(Y),class:`cui-icon-md`,onClick:t=>O(J)?.toggleMenu(t,void 0,e)},{icon:_(()=>[b(`div`,pe,[b(`div`,{class:y([`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":O(J)?.isOpen&&O(J)?.data?._id===e._id}])},null,2),b(`div`,{class:y([`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":O(J)?.isOpen&&O(J)?.data?._id===e._id}])},null,2),b(`div`,{class:y([`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":O(J)?.isOpen&&O(J)?.data?._id===e._id}])},null,2)])]),_:2},1032,[`loading`,`onClick`])])]),_:1})]),_:1},8,[`filters`,`value`,`paginator`,`loading`]),b(`div`,me,[P(d,{severity:`success`,loading:O(Y),class:`cui-button-medium mr-4 md:mr-0`,label:n.$t(`components.form.button.create_new_user`),onClick:i[1]||=e=>$()},null,8,[`loading`,`label`])])])]),_:1})]),b(`div`,null,[b(`span`,he,C(n.$t(`views.settings.logged_in_users`)),1),P(m,{class:`cui-card`},{content:_(()=>[P(p,{value:O(X),loading:O(Z),pt:K,"striped-rows":``,scrollable:``},{loading:_(()=>[P(s,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:_(()=>[b(`span`,ve,C(n.$t(`views.settings.no_sessions`)),1)]),default:_(()=>[P(l,{field:`status`,header:``,style:{width:`3rem`}},{body:_(({data:e})=>[b(`div`,ge,[v(P(h,{style:V({background:e.is_current?`var(--primary-500)`:`transparent`})},null,8,[`style`]),[[T,{value:e.is_current?n.$t(`components.user_table.you`):void 0}]])])]),_:1}),P(l,{field:`device.name`,header:n.$t(`components.user_table.title_device`)},{body:_(({data:e})=>[b(`span`,_e,C(e.device.name),1)]),_:1},8,[`header`]),P(l,{field:`device.ip`,header:n.$t(`components.user_table.title_address`)},{body:_(({data:e})=>[E(C(e.device.ip??`-`),1)]),_:1},8,[`header`]),P(l,{field:`device.kind`,header:n.$t(`components.user_table.title_kind`)},null,8,[`header`]),P(l,{field:`action`,class:`text-right`},{body:_(({data:e})=>[v((g(),N(d,{severity:`danger`,text:``,rounded:``,loading:O(W),class:`cui-icon-md`,onClick:t=>O(H)({id:e.id})},{icon:_(()=>[P(S,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[T,{value:n.$t(`views.settings.active_sessions.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`])]),_:1})])]),P(u,{ref_key:`menuRef`,ref:J,items:O(Q),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}});export{ye as default};
@@ -1,4 +1,4 @@
1
- import{Fr as e,Ft as t,Vt as n,Yr as r,kt as i,ti as a,wi as o}from"./vendor-cameraui-GaXYUHUd.js";import{B as s,Cn as c,En as l,Pn as u,m as d}from"./api-CvO7u24f.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 j,mr as te,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-BaiDFVEr.js";import{a as re}from"./useElectron-BNGXeZEx.js";import{p as z}from"./vendor-core-BNfYBWH3.js";import{o as B}from"./vendor-primevue-CIRUBYsf.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-DcBDBvvP.js";import{t as K}from"./settings-BUEZ5iRE.js";import{n as ae,t as oe}from"./zoom-in-Du1IB9oA.js";import{n as se,t as ce}from"./CuiTopNavbarItem-DdFdvKkq.js";import{t as le}from"./trash-2-DMMlSPXn.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=c(O({__name:`CuiTerminal`,props:{autoConnect:{type:Boolean,default:!0},cwd:{},shell:{},options:{default:()=>({fontSize:14})},inputTransform:{}},emits:[`connected`,`disconnected`,`error`],setup(e,{expose:t,emit:n}){let a=e,s=n,{isConnected:c,isConnecting:l,isClientConnected:u,error:d,connect:f,write:p,resize:v,close:y}=i(),{options:b}=te(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=r(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
1
+ import{Ft as e,Ir as t,Ti as n,Vt as r,Xr as i,kt as a,ni as o}from"./vendor-cameraui-C6beJsya.js";import{B as s,Cn as c,En as l,Pn as u,m as d}from"./api-1K2Gzz8B.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-BaiDFVEr.js";import{a as re}from"./useElectron-CtslU_0f.js";import{p as z}from"./vendor-core-_ft7qIgH.js";import{o as B}from"./vendor-primevue-DfyAPSov.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-DcBDBvvP.js";import{t as K}from"./settings-BUEZ5iRE.js";import{n as ae,t as oe}from"./zoom-in-Du1IB9oA.js";import{n as se,t as ce}from"./CuiTopNavbarItem-MCdYsYHh.js";import{t as le}from"./trash-2-DMMlSPXn.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=c(O({__name:`CuiTerminal`,props:{autoConnect:{type:Boolean,default:!0},cwd:{},shell:{},options:{default:()=>({fontSize:14})},inputTransform:{}},emits:[`connected`,`disconnected`,`error`],setup(e,{expose:t,emit:r}){let o=e,s=r,{isConnected:c,isConnecting:l,isClientConnected:u,error:d,connect:f,write:p,resize:v,close:y}=a(),{options:b}=j(o),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=i(C);function M(e){c.value&&p(o.inputTransform?o.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=n(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:o.cwd,shell:o.shell,onData:N,onClose:()=>{T.value?.write(`\r
2
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()}),j(()=>{re(),a.autoConnect&&z()}),h(()=>{y(),R(E),R(k),R(D),R(O),R(T.value)}),t({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=c(O({__name:`CuiTerminalToolbar`,emits:[`send`],setup(e,{expose:t,emit:n}){let r=n,{smBreakpoint:i}=l(),o=Y,s=a(`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(i)}])},[(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(i){let a=i,o=re(),{t:c}=e(),l=u(),{uiSettings:f}=z(l),{navbarWidth:C,navbarLeft:ee}=te(a),O=m(`toolbar`),A=T([]),N=T(``),F=T(0),I=new Map,V=window.innerHeight,H=0,U=r(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:c(`components.form.tooltip.clear`),icon:le,buttonProps:{severity:`danger`},command:()=>{Q()?.clear()}},{label:c(`components.form.tooltip.zoom_out`),icon:ae,command:()=>{ke()}},{label:c(`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:d(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 j(()=>{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,r)=>{let i=ie,a=t,o=s,l=ce,u=pe,d=se,f=B,m=de,h=n;return g(),w(`div`,ve,[P(o,{position:`left`},{default:v(()=>[P(a,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:r[0]||=t=>e.$router.push(`/menu`)},{icon:v(()=>[P(i,{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(l,{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(l,{type:`button`,onClick:$},{icon:v(()=>[P(u,{class:`w-4 h-4`})]),_:1})),[[h,D(c)(`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(a,{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(a,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(a,{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(c)(`views.terminal.reconnect`)]])])}}});export{$ as default};
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(),o.autoConnect&&z()}),h(()=>{y(),R(E),R(k),R(D),R(O),R(T.value)}),t({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=c(O({__name:`CuiTerminalToolbar`,emits:[`send`],setup(e,{expose:t,emit:n}){let r=n,{smBreakpoint:i}=l(),a=Y,s=o(`cui-terminal-toolbar-keys`,X),c=T(!1),u=N(new Set),d=k(()=>s.value.map(e=>a.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(i)}])},[(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(a),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(n){let a=n,o=re(),{t:c}=t(),l=u(),{uiSettings:f}=z(l),{navbarWidth:C,navbarLeft:ee}=j(a),O=m(`toolbar`),A=T([]),N=T(``),F=T(0),I=new Map,V=window.innerHeight,H=0,U=i(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:c(`components.form.tooltip.clear`),icon:le,buttonProps:{severity:`danger`},command:()=>{Q()?.clear()}},{label:c(`components.form.tooltip.zoom_out`),icon:ae,command:()=>{ke()}},{label:c(`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:d(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)}),(t,n)=>{let i=ie,a=e,o=s,l=ce,u=pe,d=se,f=B,m=de,h=r;return g(),w(`div`,ve,[P(o,{position:`left`},{default:v(()=>[P(a,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:n[0]||=e=>t.$router.push(`/menu`)},{icon:v(()=>[P(i,{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(l,{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(l,{type:`button`,onClick:$},{icon:v(()=>[P(u,{class:`w-4 h-4`})]),_:1})),[[h,D(c)(`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(a,{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(a,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(a,{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(c)(`views.terminal.reconnect`)]])])}}});export{$ as default};
@@ -1 +1 @@
1
- import{Nn as e,Xn as t,an as n,br as r,cr as i,gr as a,hn as o,on as s}from"./vendor-BaiDFVEr.js";import{w as c}from"./vendor-primevue-CIRUBYsf.js";import{i as l}from"./flowSchema-OrM5E_3R.js";var u={class:`flex items-center justify-between gap-3 w-full min-w-0`},d={class:`truncate`},f={class:`text-[10px] text-muted font-mono shrink-0`},p=o({__name:`VariableInput`,props:{modelValue:{},nodeId:{},placeholder:{}},emits:[`update:modelValue`],setup(o,{emit:p}){let m=o,h=p,{options:g}=l(()=>m.nodeId),_=i([]),v=i(``);function y(e){let t=e.query.toLowerCase();v.value=e.query,t?_.value=g.value.filter(e=>e.label.toLowerCase().includes(t)||e.value.toLowerCase().includes(t)):_.value=[...g.value]}function b(e){let t=m.modelValue??``;v.value&&t.toLowerCase().endsWith(v.value.toLowerCase())&&(t=t.slice(0,t.length-v.value.length)),h(`update:modelValue`,t+e.value.value)}function x(e){typeof e==`string`&&h(`update:modelValue`,e)}return(i,l)=>{let p=c;return e(),s(p,{"model-value":o.modelValue,suggestions:a(_),"option-label":`label`,placeholder:o.placeholder,class:`w-full`,fluid:``,dropdown:``,"dropdown-mode":`blank`,onComplete:y,onItemSelect:b,"onUpdate:modelValue":x},{option:t(({option:e})=>[n(`div`,u,[n(`span`,d,r(e.label),1),n(`span`,f,r(e.value),1)])]),_:1},8,[`model-value`,`suggestions`,`placeholder`])}}});export{p as t};
1
+ import{Nn as e,Xn as t,an as n,br as r,cr as i,gr as a,hn as o,on as s}from"./vendor-BaiDFVEr.js";import{w as c}from"./vendor-primevue-DfyAPSov.js";import{i as l}from"./flowSchema-Dxxlrn77.js";var u={class:`flex items-center justify-between gap-3 w-full min-w-0`},d={class:`truncate`},f={class:`text-[10px] text-muted font-mono shrink-0`},p=o({__name:`VariableInput`,props:{modelValue:{},nodeId:{},placeholder:{}},emits:[`update:modelValue`],setup(o,{emit:p}){let m=o,h=p,{options:g}=l(()=>m.nodeId),_=i([]),v=i(``);function y(e){let t=e.query.toLowerCase();v.value=e.query,t?_.value=g.value.filter(e=>e.label.toLowerCase().includes(t)||e.value.toLowerCase().includes(t)):_.value=[...g.value]}function b(e){let t=m.modelValue??``;v.value&&t.toLowerCase().endsWith(v.value.toLowerCase())&&(t=t.slice(0,t.length-v.value.length)),h(`update:modelValue`,t+e.value.value)}function x(e){typeof e==`string`&&h(`update:modelValue`,e)}return(i,l)=>{let p=c;return e(),s(p,{"model-value":o.modelValue,suggestions:a(_),"option-label":`label`,placeholder:o.placeholder,class:`w-full`,fluid:``,dropdown:``,"dropdown-mode":`blank`,onComplete:y,onItemSelect:b,"onUpdate:modelValue":x},{option:t(({option:e})=>[n(`div`,u,[n(`span`,d,r(e.label),1),n(`span`,f,r(e.value),1)])]),_:1},8,[`model-value`,`suggestions`,`placeholder`])}}});export{p as t};
@@ -1 +1 @@
1
- import{Fr as e}from"./vendor-cameraui-GaXYUHUd.js";import{Fn as t,Nn as n,Xn as r,an as i,cn as a,en as o,gr as s,hn as c,on as l,sn as u}from"./vendor-BaiDFVEr.js";import{T as d,c as f}from"./vendor-primevue-CIRUBYsf.js";var p={class:`flex flex-wrap gap-1`},m=c({__name:`VariableSuggestions`,props:{variables:{}},emits:[`select`],setup(c){let{t:m}=e();return(e,h)=>{let g=d,_=f;return c.variables.length?(n(),l(_,{key:0,header:s(m)(`components.automation_nodes.available_variables`),toggleable:``,collapsed:``,pt:{root:{class:`border-0`},header:{class:`py-1.5 px-0 text-xs`},content:{class:`px-0 py-2`},headerActions:{class:`flex`}},"toggle-button-props":{class:`w-4 h-4 p-0`,text:!0,rounded:!0,severity:`secondary`}},{default:r(()=>[i(`div`,p,[(n(!0),a(o,null,t(c.variables,t=>(n(),l(g,{key:t.value,label:t.label,class:`text-[10px] cursor-pointer hover:bg-primary/10 active:bg-primary/20`,onClick:n=>e.$emit(`select`,t.value)},null,8,[`label`,`onClick`]))),128))])]),_:1},8,[`header`])):u(``,!0)}}});export{m as t};
1
+ import{Ir as e}from"./vendor-cameraui-C6beJsya.js";import{Fn as t,Nn as n,Xn as r,an as i,cn as a,en as o,gr as s,hn as c,on as l,sn as u}from"./vendor-BaiDFVEr.js";import{T as d,c as f}from"./vendor-primevue-DfyAPSov.js";var p={class:`flex flex-wrap gap-1`},m=c({__name:`VariableSuggestions`,props:{variables:{}},emits:[`select`],setup(c){let{t:m}=e();return(e,h)=>{let g=d,_=f;return c.variables.length?(n(),l(_,{key:0,header:s(m)(`components.automation_nodes.available_variables`),toggleable:``,collapsed:``,pt:{root:{class:`border-0`},header:{class:`py-1.5 px-0 text-xs`},content:{class:`px-0 py-2`},headerActions:{class:`flex`}},"toggle-button-props":{class:`w-4 h-4 p-0`,text:!0,rounded:!0,severity:`secondary`}},{default:r(()=>[i(`div`,p,[(n(!0),a(o,null,t(c.variables,t=>(n(),l(g,{key:t.value,label:t.label,class:`text-[10px] cursor-pointer hover:bg-primary/10 active:bg-primary/20`,onClick:n=>e.$emit(`select`,t.value)},null,8,[`label`,`onClick`]))),128))])]),_:1},8,[`header`])):u(``,!0)}}});export{m as t};
@@ -1,4 +1,4 @@
1
- import{Fr as e,jt as t}from"./vendor-cameraui-GaXYUHUd.js";import{En as n,mr as r}from"./api-CvO7u24f.js";import{Fn as ee,Gn as i,Mn as a,Nn as o,an as s,bn as c,br as l,cn as u,cr as d,en as te,fn as ne,gr as f,hn as p,in as m,jn as re,mr as ie,pn as h,q as ae,qn as g,rr as _,sn as v,t as oe}from"./vendor-BaiDFVEr.js";import{K as se,j as ce}from"./vendor-primevue-CIRUBYsf.js";import{t as le}from"./server-arWVymo1.js";import{n as ue}from"./useServerRestart-DwpQyv5H.js";import{t as de}from"./plugins-g-qkx8GX.js";import{t as fe}from"./CuiConsole-D56cxVKE.js";import{t as pe}from"./useLogsSocket-hJ9xUUtr.js";import{t as me}from"./CuiMarkdownContent-PSq4kE1G.js";import{t as he}from"./alert-circle-C2AU59aR.js";import{t as ge}from"./platformLabels-D-cF6OTP.js";import{t as _e}from"./config-CgGpshGm.js";import{t as ve}from"./useUpdateChannel-D7hnlzd5.js";function y(e){return`id`in e&&!(`type`in e)}function b(e){return`type`in e}var ye={key:0},be={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`},xe={class:`flex flex-col gap-1 min-w-0`},Se={class:`text-sm font-semibold text-orange-400`},Ce={key:0},we={class:`text-xs text-orange-600 dark:text-orange-300`},Te={class:`text-sm text-orange-400`},Ee={key:1},De={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Oe={key:2},ke={class:`text-muted`},Ae={class:`flex items-center gap-4 mt-4 px-4 py-3 rounded-xl bg-orange-500/10 border border-orange-500/30`},je={class:`flex flex-col gap-1 min-w-0`},Me={class:`text-sm font-semibold text-orange-400`},Ne={class:`text-xs text-orange-600 dark:text-orange-300`},Pe={key:3},Fe={class:`cui-label`},Ie={key:4,class:`w-full h-full relative`},Le={key:5,class:`w-full h-full p-4 flex items-center justify-center`},Re=`2.0.0`,x=p({__name:`VersionsHandler`,props:{target:{},installVersion:{},action:{}},setup(p,{expose:x}){let S=new de,C=new le,ze=new _e,Be=ae(),w=p,T=r(),{t:E}=e(),{mdBreakpoint:D}=n(),{beginServerRestart:Ve}=ue(),{isBeta:He}=ve(),O=c(`dialogRef`),k=c(`dialogRefProps`),{target:A,installVersion:j}=ie(w),M=d();S.toggleQueryActivator(`getPluginVersionsQuery`,!1),S.toggleQueryActivator(`getPluginChangelogQuery`,!1),S.toggleQueryActivator(`getPluginCompatQuery`,!1),C.toggleQueryActivator(`checkVersionQuery`,!1),C.toggleQueryActivator(`getServerChangelogQuery`,!1);let Ue=m(()=>y(A.value)?A.value.pluginName:`server`),N=m(()=>w.action===`uninstall`&&y(A.value)),P=pe({target:Ue.value,onStdout:e=>z.value?.writeTerminal(e),onDisconnect:()=>z.value?.writeTerminal(`
1
+ import{Ir as e,jt as t}from"./vendor-cameraui-C6beJsya.js";import{En as n,mr as r}from"./api-1K2Gzz8B.js";import{Fn as ee,Gn as i,Mn as a,Nn as o,an as s,bn as c,br as l,cn as u,cr as d,en as te,fn as ne,gr as f,hn as p,in as m,jn as re,mr as ie,pn as h,q as ae,qn as g,rr as _,sn as v,t as oe}from"./vendor-BaiDFVEr.js";import{K as se,j as ce}from"./vendor-primevue-DfyAPSov.js";import{t as le}from"./server-alwZXRo-.js";import{n as ue}from"./useServerRestart-Bqpn8N4T.js";import{t as de}from"./plugins-D0Txz0BA.js";import{t as fe}from"./CuiConsole-BOfQ5I3b.js";import{t as pe}from"./useLogsSocket-DvwkpzT2.js";import{t as me}from"./CuiMarkdownContent-PSq4kE1G.js";import{t as he}from"./alert-circle-C2AU59aR.js";import{t as ge}from"./platformLabels-D-cF6OTP.js";import{t as _e}from"./config-BZTZOfxI.js";import{t as ve}from"./useUpdateChannel-Cxm4QR-6.js";function y(e){return`id`in e&&!(`type`in e)}function b(e){return`type`in e}var ye={key:0},be={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`},xe={class:`flex flex-col gap-1 min-w-0`},Se={class:`text-sm font-semibold text-orange-400`},Ce={key:0},we={class:`text-xs text-orange-600 dark:text-orange-300`},Te={class:`text-sm text-orange-400`},Ee={key:1},De={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Oe={key:2},ke={class:`text-muted`},Ae={class:`flex items-center gap-4 mt-4 px-4 py-3 rounded-xl bg-orange-500/10 border border-orange-500/30`},je={class:`flex flex-col gap-1 min-w-0`},Me={class:`text-sm font-semibold text-orange-400`},Ne={class:`text-xs text-orange-600 dark:text-orange-300`},Pe={key:3},Fe={class:`cui-label`},Ie={key:4,class:`w-full h-full relative`},Le={key:5,class:`w-full h-full p-4 flex items-center justify-center`},Re=`2.0.0`,x=p({__name:`VersionsHandler`,props:{target:{},installVersion:{},action:{}},setup(p,{expose:x}){let S=new de,C=new le,ze=new _e,Be=ae(),w=p,T=r(),{t:E}=e(),{mdBreakpoint:D}=n(),{beginServerRestart:Ve}=ue(),{isBeta:He}=ve(),O=c(`dialogRef`),k=c(`dialogRefProps`),{target:A,installVersion:j}=ie(w),M=d();S.toggleQueryActivator(`getPluginVersionsQuery`,!1),S.toggleQueryActivator(`getPluginChangelogQuery`,!1),S.toggleQueryActivator(`getPluginCompatQuery`,!1),C.toggleQueryActivator(`checkVersionQuery`,!1),C.toggleQueryActivator(`getServerChangelogQuery`,!1);let Ue=m(()=>y(A.value)?A.value.pluginName:`server`),N=m(()=>w.action===`uninstall`&&y(A.value)),P=pe({target:Ue.value,onStdout:e=>z.value?.writeTerminal(e),onDisconnect:()=>z.value?.writeTerminal(`
2
2
  \rWebsocket failed to connect! Is the server running?\r
3
3
  \r
4
4
  `),onClearLog:()=>z.value?.clearTerminal(),onReconnected:()=>{z.value?.writeTerminal(`\r
@@ -1 +1 @@
1
- import{Fr as e,M as t}from"./vendor-cameraui-GaXYUHUd.js";import{mr as n}from"./api-CvO7u24f.js";import{Gn as r,Nn as i,Xn as a,an as o,b as s,br as c,cr as l,gr as u,hn as d,in as f,on as p,pn as m,qt as h,rr as g,v as _,wn as v,y}from"./vendor-BaiDFVEr.js";import{E as b,k as x}from"./types-BCygqese.js";import{j as S}from"./vendor-primevue-CIRUBYsf.js";var C={for:`virtualSensorType`,class:`cui-label`},w={for:`virtualSensorName`,class:`cui-label`},T=d({__name:`VirtualSensorCreate`,props:{cameraId:{}},setup(d,{expose:T}){let E=d,{t:D}=e(),O=n(),k=b.omit({cameraId:!0}),A=r(`formRef`),j=l(x[0]),M=l(``),N=f(()=>x.map(e=>({label:D(`components.camera_options.sensor_type_${e}`),value:e})));return T({onConfirm:async()=>(await A.value?.validate())?.valid?{cameraId:E.cameraId,type:j.value,name:M.value.trim()}:(O.add({severity:`error`,detail:D(`components.toast.validation_failed`),life:3e3}),null)}),(e,n)=>{let r=S,l=t;return i(),p(u(s),{ref_key:`formRef`,ref:A,class:`flex flex-col gap-4 w-full`,"validation-schema":u(k)},{default:a(()=>[m(u(y),{"model-value":u(j),name:`type`,as:`div`,class:`flex flex-col field-gap`},{default:a(({errors:t})=>[o(`label`,C,c(e.$t(`components.form.label.type`)),1),m(r,{id:`virtualSensorType`,"model-value":u(j),options:u(N),"option-label":`label`,"option-value":`value`,invalid:t.length>0,class:`w-full`,onValueChange:n[0]||=e=>j.value=e},null,8,[`model-value`,`options`,`invalid`]),m(h,{name:`fade`},{default:a(()=>[m(u(_),{name:`type`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`]),m(u(y),{modelValue:u(M),"onUpdate:modelValue":n[1]||=e=>g(M)?M.value=e:null,modelModifiers:{trim:!0},name:`name`,as:`div`,class:`flex flex-col field-gap`},{default:a(({field:t,errors:n})=>[o(`label`,w,c(e.$t(`components.form.label.name`)),1),m(l,v({id:`virtualSensorName`},t,{invalid:n.length>0,class:`w-full`,placeholder:e.$t(`components.camera_options.virtual_sensor_name_placeholder`)}),null,16,[`invalid`,`placeholder`]),m(h,{name:`fade`},{default:a(()=>[m(u(_),{name:`name`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`validation-schema`])}}});export{T as default};
1
+ import{Ir as e,M as t}from"./vendor-cameraui-C6beJsya.js";import{mr as n}from"./api-1K2Gzz8B.js";import{Gn as r,Nn as i,Xn as a,an as o,b as s,br as c,cr as l,gr as u,hn as d,in as f,on as p,pn as m,qt as h,rr as g,v as _,wn as v,y}from"./vendor-BaiDFVEr.js";import{E as b,k as x}from"./types-BTVMzSuj.js";import{j as S}from"./vendor-primevue-DfyAPSov.js";var C={for:`virtualSensorType`,class:`cui-label`},w={for:`virtualSensorName`,class:`cui-label`},T=d({__name:`VirtualSensorCreate`,props:{cameraId:{}},setup(d,{expose:T}){let E=d,{t:D}=e(),O=n(),k=b.omit({cameraId:!0}),A=r(`formRef`),j=l(x[0]),M=l(``),N=f(()=>x.map(e=>({label:D(`components.camera_options.sensor_type_${e}`),value:e})));return T({onConfirm:async()=>(await A.value?.validate())?.valid?{cameraId:E.cameraId,type:j.value,name:M.value.trim()}:(O.add({severity:`error`,detail:D(`components.toast.validation_failed`),life:3e3}),null)}),(e,n)=>{let r=S,l=t;return i(),p(u(s),{ref_key:`formRef`,ref:A,class:`flex flex-col gap-4 w-full`,"validation-schema":u(k)},{default:a(()=>[m(u(y),{"model-value":u(j),name:`type`,as:`div`,class:`flex flex-col field-gap`},{default:a(({errors:t})=>[o(`label`,C,c(e.$t(`components.form.label.type`)),1),m(r,{id:`virtualSensorType`,"model-value":u(j),options:u(N),"option-label":`label`,"option-value":`value`,invalid:t.length>0,class:`w-full`,onValueChange:n[0]||=e=>j.value=e},null,8,[`model-value`,`options`,`invalid`]),m(h,{name:`fade`},{default:a(()=>[m(u(_),{name:`type`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`]),m(u(y),{modelValue:u(M),"onUpdate:modelValue":n[1]||=e=>g(M)?M.value=e:null,modelModifiers:{trim:!0},name:`name`,as:`div`,class:`flex flex-col field-gap`},{default:a(({field:t,errors:n})=>[o(`label`,w,c(e.$t(`components.form.label.name`)),1),m(l,v({id:`virtualSensorName`},t,{invalid:n.length>0,class:`w-full`,placeholder:e.$t(`components.camera_options.virtual_sensor_name_placeholder`)}),null,16,[`invalid`,`placeholder`]),m(h,{name:`fade`},{default:a(()=>[m(u(_),{name:`name`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`validation-schema`])}}});export{T as default};
@@ -1,2 +1,2 @@
1
- import{Fr as e,Ft as t,H as n,M as r,jt as i}from"./vendor-cameraui-GaXYUHUd.js";import{B as a,Cn as o,Cr as s,En as c,R as l,Yn as ee,_t as u,fr as te,gt as ne,ht as re,i as d,mr as f,or as p,st as m}from"./api-CvO7u24f.js";import{$n as h,Dn as g,Mn as ie,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-BaiDFVEr.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-CIRUBYsf.js";import{t as he}from"./api-DwU_RUzW.js";import{t as ge}from"./plugins-g-qkx8GX.js";import{t as _e}from"./CuiDataTable-Ca51CpsO.js";import{t as ve}from"./back-filled-DcBDBvvP.js";import{t as ye}from"./pencil-outline-D7aD4cCo.js";import{n as be,t as xe}from"./round-restart-alt-YiDa63x6.js";import{t as Se}from"./deployed-code-update-xHE-blDN.js";async function Ce(){return(await s.get(`/workers/config`)).data}async function we(e){return(await s.patch(`/workers/config`,e)).data}async function Te(){return(await s.post(`/workers/pairings`)).data}async function P(e){await s.delete(`/workers/${e}`)}async function Ee(e){await s.post(`/workers/${e}/restart`)}async function De(e){await s.post(`/workers/${e}/update`)}async function Oe({agentId:e,name:t}){await s.patch(`/workers/${e}`,{name:t})}async function ke({cameraId:e,agentId:t}){return(await s.post(`/workers/assign`,{cameraId:e,agentId:t})).data}async function F({cameraId:e}){return(await s.post(`/workers/unassign`,{cameraId:e})).data}async function I({pluginName:e,agentId:t}){return(await s.post(`/workers/assign-plugin`,{pluginName:e,agentId:t})).data}async function L({pluginName:e}){return(await s.post(`/workers/unassign-plugin`,{pluginName:e})).data}var Ae=class{_queryClient=se();toast=f();getConfigQuery(){return te({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=h(!0),z.run(()=>{let e=p(`/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=o(E({__name:`Workers`,setup(o){let{t:s}=e(),{smBreakpoint:te}=c(),p=m(),h=f(),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?s(`views.workers.update_failed`,{error:e.update.error}):e.update?.updating?s(`views.workers.updating`):e.versionMismatch?s(`views.workers.version_mismatch`,{version:e.version||`?`}):s(`views.workers.online`):s(`views.workers.offline`)}},{type:`category`,field:`name`,name:s(`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:s(`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:s(`views.workers.platform`),asChip:!0,columnProps:{headerClass:`min-w-40`,class:`min-w-40`}},{type:`category`,field:e=>e.pid?.toString()??`—`,name:s(`views.workers.pid`),columnProps:{headerClass:`min-w-20`,class:`min-w-20`}},{type:`category`,field:e=>e.cpuLoad===void 0?`—`:`${e.cpuLoad}%`,name:s(`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:s(`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:ye,buttonProps:{severity:`secondary`},tooltip:()=>s(`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:xe,buttonProps:{severity:`secondary`},loading:e=>H.value.includes(e.name),disabled:e=>!e.online,tooltip:()=>s(`views.workers.restart_worker`),action:e=>Ht(e.name,e.agentId)},{icon:l,buttonProps:{severity:`danger`},loading:e=>U.value.includes(e.agentId),tooltip:()=>s(`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:s(`views.workers.rename_worker`),confirmText:s(`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?s(`views.workers.updating`):Q.value?s(`views.workers.update_worker`,{version:Q.value}):s(`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} (${s(`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?``:` (${s(`views.workers.offline`).toLowerCase()})`,a=r?``:` — ${s(`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:s(`views.workers.enable_workers`),contentText:s(`views.workers.address_required`),confirmText:s(`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:s(`views.workers.remove_worker`),confirmText:s(`views.workers.remove`),contentText:s(`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 g(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),h.add({severity:`error`,summary:t.name,detail:s(`views.workers.update_failed`,{error:e}),life:6e3}))}}),ie(()=>{v.disconnect()}),(e,o)=>{let s=ve,c=t,l=a,u=i,f=me,p=ce,m=pe,h=fe,g=n,ie=be,ae=ee,v=de,C=_e,D=r,k=ne,j=le,he=ue;return _(),S(`div`,null,[T(te)?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(g,{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(f,{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(p,{"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(m,{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(f,{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(h,{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(f,{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(ie,{key:0,items:T(E),headers:T(Lt),"chart-data":T(Rt)},null,8,[`items`,`headers`,`chart-data`])):(_(),O(g,{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(g,{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(m,{"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(g,{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(m,{"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(g,{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(d)(T(q).code)},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),A(f,{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(d)(T(It))},null,8,[`action-text`,`icon`])]),b(`pre`,Ct,x(T(It)),1),A(f,{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};
1
+ import{Ft as e,H as t,Ir as n,M as r,jt as i}from"./vendor-cameraui-C6beJsya.js";import{B as a,Cn as o,Cr as s,En as c,R as l,Yn as ee,_t as u,fr as te,gt as ne,ht as re,i as d,mr as f,or as p,st as m}from"./api-1K2Gzz8B.js";import{$n as h,Dn as g,Mn as ie,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-BaiDFVEr.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-DfyAPSov.js";import{t as he}from"./api-B7yg8bdk.js";import{t as ge}from"./plugins-D0Txz0BA.js";import{t as _e}from"./CuiDataTable-DBNU5MJ_.js";import{t as ve}from"./back-filled-DcBDBvvP.js";import{t as ye}from"./pencil-outline-D7aD4cCo.js";import{n as be,t as xe}from"./round-restart-alt-Bw-T1H6w.js";import{t as Se}from"./deployed-code-update-xHE-blDN.js";async function Ce(){return(await s.get(`/workers/config`)).data}async function we(e){return(await s.patch(`/workers/config`,e)).data}async function Te(){return(await s.post(`/workers/pairings`)).data}async function P(e){await s.delete(`/workers/${e}`)}async function Ee(e){await s.post(`/workers/${e}/restart`)}async function De(e){await s.post(`/workers/${e}/update`)}async function Oe({agentId:e,name:t}){await s.patch(`/workers/${e}`,{name:t})}async function ke({cameraId:e,agentId:t}){return(await s.post(`/workers/assign`,{cameraId:e,agentId:t})).data}async function F({cameraId:e}){return(await s.post(`/workers/unassign`,{cameraId:e})).data}async function I({pluginName:e,agentId:t}){return(await s.post(`/workers/assign-plugin`,{pluginName:e,agentId:t})).data}async function L({pluginName:e}){return(await s.post(`/workers/unassign-plugin`,{pluginName:e})).data}var Ae=class{_queryClient=se();toast=f();getConfigQuery(){return te({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=h(!0),z.run(()=>{let e=p(`/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=o(E({__name:`Workers`,setup(o){let{t:s}=n(),{smBreakpoint:te}=c(),p=m(),h=f(),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?s(`views.workers.update_failed`,{error:e.update.error}):e.update?.updating?s(`views.workers.updating`):e.versionMismatch?s(`views.workers.version_mismatch`,{version:e.version||`?`}):s(`views.workers.online`):s(`views.workers.offline`)}},{type:`category`,field:`name`,name:s(`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:s(`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:s(`views.workers.platform`),asChip:!0,columnProps:{headerClass:`min-w-40`,class:`min-w-40`}},{type:`category`,field:e=>e.pid?.toString()??`—`,name:s(`views.workers.pid`),columnProps:{headerClass:`min-w-20`,class:`min-w-20`}},{type:`category`,field:e=>e.cpuLoad===void 0?`—`:`${e.cpuLoad}%`,name:s(`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:s(`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:ye,buttonProps:{severity:`secondary`},tooltip:()=>s(`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:xe,buttonProps:{severity:`secondary`},loading:e=>H.value.includes(e.name),disabled:e=>!e.online,tooltip:()=>s(`views.workers.restart_worker`),action:e=>Ht(e.name,e.agentId)},{icon:l,buttonProps:{severity:`danger`},loading:e=>U.value.includes(e.agentId),tooltip:()=>s(`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:s(`views.workers.rename_worker`),confirmText:s(`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?s(`views.workers.updating`):Q.value?s(`views.workers.update_worker`,{version:Q.value}):s(`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} (${s(`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?``:` (${s(`views.workers.offline`).toLowerCase()})`,a=r?``:` — ${s(`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:s(`views.workers.enable_workers`),contentText:s(`views.workers.address_required`),confirmText:s(`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:s(`views.workers.remove_worker`),confirmText:s(`views.workers.remove`),contentText:s(`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 g(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),h.add({severity:`error`,summary:t.name,detail:s(`views.workers.update_failed`,{error:e}),life:6e3}))}}),ie(()=>{v.disconnect()}),(n,o)=>{let s=ve,c=e,l=a,u=i,f=me,p=ce,m=pe,h=fe,g=t,ie=be,ae=ee,v=de,C=_e,D=r,k=ne,j=le,he=ue;return _(),S(`div`,null,[T(te)?N(``,!0):(_(),S(`h1`,ze,x(n.$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]||=e=>n.$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(n.$t(`views.workers.configuration`)),1),A(g,{class:`cui-card`},{content:y(()=>[b(`div`,Ue,[b(`div`,We,[b(`div`,Ge,[b(`label`,Ke,x(n.$t(`views.workers.enable_workers`)),1),A(f,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:y(()=>[w(x(n.$t(`views.workers.enable_workers_description`)),1)]),_:1})]),A(p,{"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(n.$t(`views.workers.master_address`)),1),A(m,{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:n.$t(`views.workers.master_address_placeholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),A(f,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:y(()=>[w(x(n.$t(`views.workers.master_address_hint`)),1)]),_:1})]),b(`div`,Ye,[b(`label`,Xe,x(n.$t(`views.workers.leaf_port`)),1),A(h,{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(f,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:y(()=>[w(x(n.$t(`views.workers.port_change_warning`)),1)]),_:1})):N(``,!0)]),b(`div`,Ze,[A(c,{class:`cui-button-medium`,label:n.$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(n.$t(`views.workers.workers`)),1),T(E).length?(_(),O(ie,{key:0,items:T(E),headers:T(Lt),"chart-data":T(Rt)},null,8,[`items`,`headers`,`chart-data`])):(_(),O(g,{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(n.$t(`views.workers.no_workers`)),1)])]),_:1}))])):N(``,!0),T(Z)&&T(E).length?(_(),S(`div`,nt,[b(`span`,rt,x(n.$t(`views.workers.camera_assignments`)),1),A(g,{class:`cui-card`},{content:y(()=>[b(`span`,it,x(n.$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(n.$t(`views.workers.no_cameras`)),1)]),default:y(()=>[A(v,{field:`name`,header:n.$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:n.$t(`views.workers.workers`),"header-class":`p-2 w-full`,class:`p-2 w-full`},{body:y(({data:e})=>[A(m,{"model-value":$(e.workerAgentId),options:Ut(),"option-label":`label`,"option-value":`value`,placeholder:n.$t(`views.workers.local`),class:`w-full`,"show-clear":``,loading:Xt(e._id),disabled:Xt(e._id),"onUpdate:modelValue":t=>Zt(e,t)},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(n.$t(`views.workers.plugin_assignments`)),1),A(g,{class:`cui-card`},{content:y(()=>[b(`span`,lt,x(n.$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(n.$t(`views.workers.no_plugins`)),1)]),default:y(()=>[A(v,{field:`displayName`,header:n.$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:n.$t(`views.workers.workers`),"header-class":`p-2 w-full`,class:`p-2 w-full`},{body:y(({data:e})=>[A(m,{"model-value":$(e.workerAgentId),options:qt(e),"option-label":`label`,"option-value":`value`,"option-disabled":`disabled`,placeholder:n.$t(`views.workers.local`),class:`w-full`,"show-clear":``,loading:Jt(e.pluginName),disabled:Jt(e.pluginName),"onUpdate:modelValue":t=>Yt(e,t)},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(n.$t(`views.workers.pair_worker`)),1),A(g,{class:`cui-card`},{content:y(()=>[b(`div`,gt,[b(`span`,_t,x(n.$t(`views.workers.pair_worker_description`)),1),T(q)?(_(),S(oe,{key:0},[b(`div`,vt,[b(`label`,yt,x(n.$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":n.$t(`views.workers.copied`),icon:T(re),"button-props":{severity:`secondary`,text:!0},onAction:o[3]||=e=>T(d)(T(q).code)},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),A(f,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:y(()=>[w(x(n.$t(`views.workers.pairing_expires`,{minutes:T(Ft)})),1)]),_:1})]),b(`div`,bt,[b(`div`,xt,[b(`label`,St,x(n.$t(`views.workers.pairing_snippet`)),1),A(k,{"action-text":n.$t(`views.workers.copied`),icon:T(re),"button-props":{severity:`secondary`,text:!0},onAction:o[4]||=e=>T(d)(T(It))},null,8,[`action-text`,`icon`])]),b(`pre`,Ct,x(T(It)),1),A(f,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:y(()=>[w(x(n.$t(`views.workers.pairing_snippet_hint`)),1)]),_:1})])],64)):N(``,!0),b(`div`,wt,[A(c,{class:`cui-button-medium`,label:n.$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};