@camera.ui/server 2.0.23 → 2.0.24

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 (146) hide show
  1. package/dist/interface/assets/{404-junY0N5P.js → 404-CRIhzt2J.js} +1 -1
  2. package/dist/interface/assets/{About-Dwc0TTLa.js → About-CvY4xvAU.js} +1 -1
  3. package/dist/interface/assets/{Adminpanel-wZGtsPD-.js → Adminpanel-4ilp8plp.js} +1 -1
  4. package/dist/interface/assets/{Automation-Dj6xmGae.js → Automation-uaWWTeTZ.js} +3 -3
  5. package/dist/interface/assets/{AutomationImport-Ccnxyslc.js → AutomationImport-RNgRv6Uc.js} +2 -2
  6. package/dist/interface/assets/{AutomationStore-DmbxA0ml.js → AutomationStore-D8plMzVI.js} +2 -2
  7. package/dist/interface/assets/{AutomationStoreDetail-DcbvD8g5.js → AutomationStoreDetail-BO-9XCRn.js} +2 -2
  8. package/dist/interface/assets/{Automations-C9JJO6dy.js → Automations-PHMVe6wG.js} +2 -2
  9. package/dist/interface/assets/{Camera-D_j0J3kB.js → Camera-Akukeq4_.js} +2 -2
  10. package/dist/interface/assets/{CameraConsole--hGg9Ye6.js → CameraConsole-BnKiGukm.js} +1 -1
  11. package/dist/interface/assets/{Cameras-B2Tizr4Q.js → Cameras-BuHNAHpD.js} +1 -1
  12. package/dist/interface/assets/{Camview-Bh2UCnGC.js → Camview-dF8o0iy2.js} +1 -1
  13. package/dist/interface/assets/{Config-Dn_s2M7r.js → Config-iq-YI9Vg.js} +1 -1
  14. package/dist/interface/assets/{ConfigActionCameraControl-DQEYHVN5.js → ConfigActionCameraControl-C2qva2mT.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionDelay-C0mbjCCj.js → ConfigActionDelay-C02w0yBx.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionHttp-Bf58WHcw.js → ConfigActionHttp-DVf26mYG.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionImageInput-CDXVFrOz.js → ConfigActionImageInput-BTlFV7kK.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionMqtt-lH7MQqWr.js → ConfigActionMqtt-CD9RW5Lq.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionNotification-CAkr6NJX.js → ConfigActionNotification-CjbIPrEb.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionNotificationControl-CiL-4Ytw.js → ConfigActionNotificationControl-BCdKNvgC.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionOutput-ILAxBT-r.js → ConfigActionOutput-wV9RFDQO.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionPlugin-B2d4mZiK.js → ConfigActionPlugin-DijuNALK.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionSensor-BxMdsmRa.js → ConfigActionSensor-C9q3sRuI.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionSnapshot-CXVQBSzv.js → ConfigActionSnapshot-B79IJLFV.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionVariable-CABnlnMv.js → ConfigActionVariable-Do94c7oi.js} +1 -1
  26. package/dist/interface/assets/{ConfigConditionIfElse-Cxu7TSdJ.js → ConfigConditionIfElse-BtbZhnCM.js} +1 -1
  27. package/dist/interface/assets/{ConfigConditionSensorState-rB7I04Gb.js → ConfigConditionSensorState-D1V_FhNU.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionSwitch-CU0hLo1h.js → ConfigConditionSwitch-C74dDt3R.js} +1 -1
  29. package/dist/interface/assets/{ConfigConditionTime-DfeEvxIU.js → ConfigConditionTime-5IrJQgAV.js} +1 -1
  30. package/dist/interface/assets/{ConfigSensorValueInput-wXiyU3Sc.js → ConfigSensorValueInput-BcbzMf0g.js} +1 -1
  31. package/dist/interface/assets/{ConfigTriggerDetection-DFJpuWrs.js → ConfigTriggerDetection-ld9Upgoc.js} +1 -1
  32. package/dist/interface/assets/{ConfigTriggerGeofence-CZwesOD8.js → ConfigTriggerGeofence-DbfBc1AM.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerManual-aibwYUtf.js → ConfigTriggerManual-t-J-HbqF.js} +1 -1
  34. package/dist/interface/assets/{ConfigTriggerMqtt-CUNgifGb.js → ConfigTriggerMqtt-i57J8-Nq.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerSchedule-8Y_OBcB1.js → ConfigTriggerSchedule-Dv7wIG3G.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerSensor-Bu-YtGnX.js → ConfigTriggerSensor-Ba2lCSGc.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSystem-CXNvmC4S.js → ConfigTriggerSystem-BWs3rP_W.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerWebhook-CkZ-_ABi.js → ConfigTriggerWebhook-CpQakeYG.js} +1 -1
  39. package/dist/interface/assets/{Console-CG8eRDA4.js → Console-BTb5Yc32.js} +1 -1
  40. package/dist/interface/assets/{CuiAutomationRunsDialog-Ux0g-E3w.js → CuiAutomationRunsDialog-DX0xpNxx.js} +1 -1
  41. package/dist/interface/assets/CuiBottomSheet-Bu0PtwX-.js +1 -0
  42. package/dist/interface/assets/{CuiBottomSheet-C-ZN_uXE.js → CuiBottomSheet-DIg-nl0p.js} +1 -1
  43. package/dist/interface/assets/{CuiCameraPipCard-B-B6Ppsd.js → CuiCameraPipCard-q3yeptLd.js} +1 -1
  44. package/dist/interface/assets/{CuiCameraRecordings-DqVdR9uS.js → CuiCameraRecordings-BWN8gBl4.js} +1 -1
  45. package/dist/interface/assets/{CuiCameraShares-DstoVjf9.js → CuiCameraShares-BggG5Ic_.js} +1 -1
  46. package/dist/interface/assets/{CuiCameraTable-BHaCRB65.js → CuiCameraTable-BCrE4TMJ.js} +1 -1
  47. package/dist/interface/assets/{CuiDataTable-CTT9IFeR.js → CuiDataTable-Dk8LJl5S.js} +1 -1
  48. package/dist/interface/assets/{CuiLightControl-B_JIzm9t.js → CuiLightControl-CaIl2eCO.js} +1 -1
  49. package/dist/interface/assets/{CuiList-CDed3qXV.js → CuiList-Cjbxtb1E.js} +1 -1
  50. package/dist/interface/assets/{CuiPluginCard-7aXQznrX.js → CuiPluginCard-cvZkF8Cz.js} +2 -2
  51. package/dist/interface/assets/{CuiPluginCategoryChip-C2Y8x73q.js → CuiPluginCategoryChip-DsEuwQrw.js} +1 -1
  52. package/dist/interface/assets/{CuiPluginOAuthButton-CCzRlZP6.js → CuiPluginOAuthButton-Bbwly_xJ.js} +2 -2
  53. package/dist/interface/assets/{CuiPluginTrustBadge-C8qBdLCg.js → CuiPluginTrustBadge-BC6F9f-3.js} +1 -1
  54. package/dist/interface/assets/{CuiQRCode-D52Fcu61.js → CuiQRCode-DKHFwuhr.js} +1 -1
  55. package/dist/interface/assets/{CuiRecordingsGrid-CfuihmlY.js → CuiRecordingsGrid-DSf7RXci.js} +1 -1
  56. package/dist/interface/assets/{CuiSchema-DTIuxROi.js → CuiSchema-Dda4lNPz.js} +1 -1
  57. package/dist/interface/assets/{CuiTopNavbarItem-CoTQmfY7.js → CuiTopNavbarItem-BZawroJz.js} +1 -1
  58. package/dist/interface/assets/{Faces-EtBPS1Ve.js → Faces-CvQCD53E.js} +1 -1
  59. package/dist/interface/assets/{FirstSteps-CC0BPH40.js → FirstSteps-Dg0Bvjs2.js} +1 -1
  60. package/dist/interface/assets/{Instances-dSYERqIc.js → Instances-DisNu3zt.js} +1 -1
  61. package/dist/interface/assets/{Logs-B8d6dEt7.js → Logs-DSSDjAY-.js} +1 -1
  62. package/dist/interface/assets/Menu-CJ-MMxvd.js +1 -0
  63. package/dist/interface/assets/{OAuthDeviceFlow-YhwV_FSL.js → OAuthDeviceFlow-CKTokRaq.js} +1 -1
  64. package/dist/interface/assets/{Plugin-Brb6wfq-.js → Plugin-7daLGUVo.js} +1 -1
  65. package/dist/interface/assets/{PluginConsole-CfyZQVq5.js → PluginConsole-CcRMneFa.js} +1 -1
  66. package/dist/interface/assets/{PluginDetail-DVRnnauk.js → PluginDetail-B1-NdurE.js} +2 -2
  67. package/dist/interface/assets/{PluginSchema-i6UJfMnh.js → PluginSchema-CP0JWUSD.js} +1 -1
  68. package/dist/interface/assets/{PluginSearch-PDx47aUx.js → PluginSearch-BHN0J_JP.js} +2 -2
  69. package/dist/interface/assets/PluginSearch-Cx_lzDqC.js +1 -0
  70. package/dist/interface/assets/{Plugins-CukJohcb.js → Plugins-DnMPdcQF.js} +1 -1
  71. package/dist/interface/assets/{Recordings-m6jxYvRI.js → Recordings-Dxs3srmh.js} +1 -1
  72. package/dist/interface/assets/{SensorEdit-BJAijbmc.js → SensorEdit-Dq2nV1Wf.js} +1 -1
  73. package/dist/interface/assets/{SensorHistory-DW00ZuHR.js → SensorHistory-BeCbNWJh.js} +1 -1
  74. package/dist/interface/assets/{Sensors-Lfafn19i.js → Sensors-D9DLdMaD.js} +2 -2
  75. package/dist/interface/assets/{Settings-DHT8KXi2.js → Settings-DCHoD7r8.js} +1 -1
  76. package/dist/interface/assets/{SettingsAccount-DOd4JeGd.js → SettingsAccount-BrhnlNuF.js} +1 -1
  77. package/dist/interface/assets/SettingsAccount-djLxmQ9r.js +1 -0
  78. package/dist/interface/assets/{SettingsAppearance-11UFhRDY.js → SettingsAppearance-Bq-xM16S.js} +1 -1
  79. package/dist/interface/assets/SettingsAppearance-JKbe5xiH.js +1 -0
  80. package/dist/interface/assets/{SettingsBackup-CBBZV_nU.js → SettingsBackup-CjlVk3hF.js} +1 -1
  81. package/dist/interface/assets/{SettingsList-Dx9DHGq9.js → SettingsList-C4mMOKJh.js} +1 -1
  82. package/dist/interface/assets/{SettingsMqtt-BglQ_GeN.js → SettingsMqtt-DoYFVHoD.js} +1 -1
  83. package/dist/interface/assets/{SettingsNotifications-96czeGDD.js → SettingsNotifications-Cmr9Bvy0.js} +1 -1
  84. package/dist/interface/assets/{SettingsPermissions-CU4OVllA.js → SettingsPermissions-D33G-1kM.js} +1 -1
  85. package/dist/interface/assets/{SettingsRecordings-BrnU9hrb.js → SettingsRecordings-DYiuW0rA.js} +1 -1
  86. package/dist/interface/assets/{SettingsRemote-CwJw_9HX.js → SettingsRemote-CROA1Oa7.js} +1 -1
  87. package/dist/interface/assets/{SettingsSystem-B3nne5fS.js → SettingsSystem-rgucO68X.js} +2 -2
  88. package/dist/interface/assets/{SettingsUsers-CoYyAxxn.js → SettingsUsers-2uMPOpyC.js} +1 -1
  89. package/dist/interface/assets/{Terminal-DMAHgufw.js → Terminal-BMFWoJ_k.js} +1 -1
  90. package/dist/interface/assets/{VariableInput-BzWLKBgd.js → VariableInput-Cx9tgiM4.js} +1 -1
  91. package/dist/interface/assets/{VariableSuggestions-BdxcP_dn.js → VariableSuggestions-DV_QjTtU.js} +1 -1
  92. package/dist/interface/assets/{VersionsHandler-Dvy5Lv-E.js → VersionsHandler-v4hH23M_.js} +1 -1
  93. package/dist/interface/assets/{VirtualSensorCreate-BXz0lWNm.js → VirtualSensorCreate-DhuGE1Mf.js} +1 -1
  94. package/dist/interface/assets/{Workers-DqeKkdpa.js → Workers-DyJXudfY.js} +1 -1
  95. package/dist/interface/assets/{api-DmxTF6VE.js → api-BKU9IS3U.js} +1 -1
  96. package/dist/interface/assets/{api-milc5VEE.js → api-Cc-rMHwl.js} +2 -2
  97. package/dist/interface/assets/{auth-DwSrX8QL.js → auth-B4latCDR.js} +1 -1
  98. package/dist/interface/assets/{automations-yVPQAmFo.js → automations-BFkAMu3Y.js} +1 -1
  99. package/dist/interface/assets/{cameras.schema-JAiaenSf.js → cameras.schema-BtaT3B32.js} +1 -1
  100. package/dist/interface/assets/cloudHandoff-CPrXpD0L.js +1 -0
  101. package/dist/interface/assets/{config-BE0DnCXx.js → config-B_lj3Myj.js} +1 -1
  102. package/dist/interface/assets/{flowSchema-BQp77LdP.js → flowSchema-CyZseAPD.js} +1 -1
  103. package/dist/interface/assets/{main-CqhwDjRG.js → main-C4qjk6s5.js} +2 -2
  104. package/dist/interface/assets/{mqtt-D_shY0Ks.js → mqtt-CFw_CCq8.js} +1 -1
  105. package/dist/interface/assets/{notifications-BuSNpaOJ.js → notifications-0_glcRlR.js} +1 -1
  106. package/dist/interface/assets/{plugins-7pWXkYgo.js → plugins-ICpmsguj.js} +1 -1
  107. package/dist/interface/assets/{round-restart-alt-DKWwojYm.js → round-restart-alt-CxUkNgtt.js} +1 -1
  108. package/dist/interface/assets/{sensors-CLQG1mQt.js → sensors-Bh5GuQ78.js} +1 -1
  109. package/dist/interface/assets/{server-Bv5NVJ0G.js → server-DbpDC3pc.js} +1 -1
  110. package/dist/interface/assets/{theme-DsxRUmCC.js → theme-DlMdsvGC.js} +1 -1
  111. package/dist/interface/assets/{types-CoXm85So.js → types-C1VwkReu.js} +1 -1
  112. package/dist/interface/assets/{types-BazOcNe_.js → types-CggzoTPX.js} +1 -1
  113. package/dist/interface/assets/{useAppVersion-oPpW7jcN.js → useAppVersion-CCxZnwIP.js} +1 -1
  114. package/dist/interface/assets/{useBackupRestore-b0Niqql7.js → useBackupRestore-DQQc_D6D.js} +1 -1
  115. package/dist/interface/assets/{useCameraOptions-uf9Kog6z.js → useCameraOptions-DVlhUpbE.js} +1 -1
  116. package/dist/interface/assets/{useElectron-Dg8tFzam.js → useElectron-KnqvZz0q.js} +1 -1
  117. package/dist/interface/assets/{useLogsSocket-9jJ-oJIm.js → useLogsSocket-CUQwZ6wm.js} +1 -1
  118. package/dist/interface/assets/{usePermissions-xL0VlbyD.js → usePermissions-C3D3JcPH.js} +1 -1
  119. package/dist/interface/assets/{useServerRestart-3AZOTz7i.js → useServerRestart-CqZRPCpR.js} +1 -1
  120. package/dist/interface/assets/{useStreamStatus-Dg-Djura.js → useStreamStatus-CVJFHRLZ.js} +1 -1
  121. package/dist/interface/assets/{useUserOptions-BQnM3gdi.js → useUserOptions-drl3-JUC.js} +1 -1
  122. package/dist/interface/assets/{vendor-cameraui-BqkrW4Bb.js → vendor-cameraui-Cgb5z6NJ.js} +1 -1
  123. package/dist/interface/assets/{vendor-core-BQegq2Q6.js → vendor-core-BJsSXMFQ.js} +1 -1
  124. package/dist/interface/assets/{vendor-primevue-DYzLjOFZ.js → vendor-primevue-CyD8V_Ft.js} +1 -1
  125. package/dist/interface/index.html +20 -20
  126. package/dist/interface/sw.js +1 -1
  127. package/dist/server/package.json +1 -1
  128. package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js +7 -5
  129. package/dist/server/src/plugins/runtime/node/proxy/deviceManager.js.map +1 -1
  130. package/dist/server/src/plugins/runtime/node/storage.js +8 -5
  131. package/dist/server/src/plugins/runtime/node/storage.js.map +1 -1
  132. package/dist/server/src/plugins/runtime/node/storageController.d.ts +1 -3
  133. package/dist/server/src/plugins/runtime/node/storageController.js +7 -24
  134. package/dist/server/src/plugins/runtime/node/storageController.js.map +1 -1
  135. package/dist/server/src/plugins/runtime/python/proxy/device_manager.py +8 -5
  136. package/dist/server/src/plugins/runtime/python/storage.py +11 -6
  137. package/dist/server/src/plugins/runtime/python/storage_controller.py +6 -37
  138. package/dist/server/src/sensors/registry.js +7 -1
  139. package/dist/server/src/sensors/registry.js.map +1 -1
  140. package/package.json +1 -1
  141. package/dist/interface/assets/CuiBottomSheet-RUyuBxJZ.js +0 -1
  142. package/dist/interface/assets/Menu-CejIVz_7.js +0 -1
  143. package/dist/interface/assets/PluginSearch-C1YL9q00.js +0 -1
  144. package/dist/interface/assets/SettingsAccount-vrwV9rtP.js +0 -1
  145. package/dist/interface/assets/SettingsAppearance-BaDwC_h_.js +0 -1
  146. package/dist/interface/assets/cloudHandoff-QtPEpiS4.js +0 -1
@@ -1 +1 @@
1
- import{F as e,Yi as t,kr as n}from"./vendor-cameraui-BqkrW4Bb.js";import{Qt as ee,_ as r,_n as i,gn as a,qn as o,v as s}from"./api-milc5VEE.js";import{Mn as te,Nn as c,Xn as l,an as u,br as d,cn as f,cr as p,fn as m,gr as h,hn as ne,in as g,pn as _,rr as v,sn as y}from"./vendor-CSg6_Jfu.js";import{p as b}from"./vendor-core-BQegq2Q6.js";import{K as re,j as ie,z as ae}from"./vendor-primevue-DYzLjOFZ.js";import{t as oe}from"./theme-DsxRUmCC.js";var se={class:`flex flex-col w-full gap-6`},x={key:0},S={class:`card-title`},C={class:`flex flex-col gap-6`},w={class:`flex flex-col field-gap`},T={class:`cui-label`},E={class:`w-full flex flex-col gap-2`},D={class:`flex flex-col field-gap cui-toggle-switch`},O={class:`flex items-center gap-4`},k={class:`flex flex-col field-switch-gap`},A={class:`cui-label-switch`},j={key:1},M={class:`card-title`},N={class:`flex flex-col gap-6`},P={class:`flex flex-col field-gap`},F={class:`cui-label`},I={class:`card-title`},L={class:`flex flex-col gap-6`},R={class:`flex flex-col field-gap`},z={class:`cui-label`},B={key:0,class:`flex flex-col field-gap`},V={class:`cui-label`},H={class:`w-full flex flex-col gap-2`},U={class:`flex flex-col field-gap cui-toggle-switch`},W={class:`flex items-center gap-4`},ce={class:`flex flex-col field-switch-gap`},G={class:`cui-label-switch`},le={class:`card-title`},ue={class:`w-full flex flex-col gap-2`},de={class:`flex flex-col field-gap cui-toggle-switch`},fe={class:`flex items-center gap-4`},pe={class:`flex flex-col field-switch-gap`},me={class:`cui-label-switch`},he={class:`flex flex-col field-gap cui-toggle-switch`},ge={class:`flex items-center gap-4`},_e={class:`flex flex-col field-switch-gap`},ve={class:`cui-label-switch`},K=ne({__name:`SettingsAppearance`,setup(ne){let{t:K}=n(),ye=r(),{language:q,languageOptions:be}=b(ye),xe=oe(),{colors:Se,theme:J,autoMode:Y}=b(xe),Ce=i(),{uiSettings:X}=b(Ce),Z=p(t.isRecording()),Q=p(t.isDebug()),$=g(()=>s().map(e=>({label:K(`navigation.${e.meta.name}`),value:e.path}))),we=g(()=>a.map(e=>({label:K(`navigation.${e}`),value:e}))),Te=t.onChange(()=>{Z.value=t.isRecording(),Q.value=t.isDebug()});function Ee(e){t.setRecording(e),e||t.clear()}function De(e){t.setDebug(e)}return te(Te),(t,n)=>{let r=ie,i=ae,a=re,s=e;return c(),f(`div`,null,[u(`div`,se,[h(o)()?y(``,!0):(c(),f(`div`,x,[u(`span`,S,d(t.$t(`views.settings.theme`)),1),_(s,{class:`cui-card`},{content:l(()=>[u(`div`,C,[u(`div`,w,[u(`label`,T,d(t.$t(`components.form.label.theme`)),1),_(r,{modelValue:h(J),"onUpdate:modelValue":n[0]||=e=>v(J)?J.value=e:null,options:h(Se),disabled:h(Y)},null,8,[`modelValue`,`options`,`disabled`])]),u(`div`,E,[u(`div`,D,[u(`div`,O,[u(`div`,k,[u(`label`,A,d(t.$t(`components.form.label.system_preference`)),1),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[m(d(t.$t(`components.form.hint.system_preference`)),1)]),_:1})]),_(a,{modelValue:h(Y),"onUpdate:modelValue":n[1]||=e=>v(Y)?Y.value=e:null,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})])),h(o)()?y(``,!0):(c(),f(`div`,j,[u(`span`,M,d(t.$t(`views.settings.locale`)),1),_(s,{class:`cui-card`},{content:l(()=>[u(`div`,N,[u(`div`,P,[u(`label`,F,d(t.$t(`components.form.label.language`)),1),_(r,{modelValue:h(q),"onUpdate:modelValue":n[2]||=e=>v(q)?q.value=e:null,options:h(be),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`])])])]),_:1})])),u(`div`,null,[u(`span`,I,d(t.$t(`views.settings.interface`)),1),_(s,{class:`cui-card`},{content:l(()=>[u(`div`,L,[u(`div`,R,[u(`label`,z,d(t.$t(`components.form.label.default_landing_page`)),1),_(r,{modelValue:h(X).interface.landingPage,"onUpdate:modelValue":n[3]||=e=>h(X).interface.landingPage=e,options:h($),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[m(d(t.$t(`components.form.hint.default_landing_page`)),1)]),_:1})]),(`hasPermission`in t?t.hasPermission:h(ee))(void 0,`admin`)?(c(),f(`div`,B,[u(`label`,V,d(t.$t(`components.form.label.default_settings_page`)),1),_(r,{modelValue:h(X).interface.selectedSettingsView,"onUpdate:modelValue":n[4]||=e=>h(X).interface.selectedSettingsView=e,options:h(we),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[m(d(t.$t(`components.form.hint.default_settings_page`)),1)]),_:1})])):y(``,!0),u(`div`,H,[u(`div`,U,[u(`div`,W,[u(`div`,ce,[u(`label`,G,d(t.$t(`components.form.label.navbar_stay_collapsed`)),1),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[m(d(t.$t(`components.form.hint.navbar_stay_collapsed`)),1)]),_:1})]),_(a,{modelValue:h(X).interface.navbarStayCollapsed,"onUpdate:modelValue":n[5]||=e=>h(X).interface.navbarStayCollapsed=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})]),u(`div`,null,[u(`span`,le,d(t.$t(`views.settings.debugging`)),1),_(s,{class:`cui-card`},{content:l(()=>[u(`div`,ue,[u(`div`,de,[u(`div`,fe,[u(`div`,pe,[u(`label`,me,d(t.$t(`components.form.label.debug_verbose`)),1),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[m(d(t.$t(`components.form.hint.debug_verbose`)),1)]),_:1})]),_(a,{"model-value":h(Q),class:`ml-auto shrink-0`,"onUpdate:modelValue":De},null,8,[`model-value`])])]),u(`div`,he,[u(`div`,ge,[u(`div`,_e,[u(`label`,ve,d(t.$t(`components.form.label.record_logs`)),1),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[m(d(t.$t(`components.form.hint.record_logs`)),1)]),_:1})]),_(a,{"model-value":h(Z),class:`ml-auto shrink-0`,"onUpdate:modelValue":Ee},null,8,[`model-value`])])])])]),_:1})])])])}}});export{K as t};
1
+ import{F as e,Yi as t,kr as n}from"./vendor-cameraui-Cgb5z6NJ.js";import{Qt as ee,_ as r,_n as i,gn as a,qn as o,v as s}from"./api-Cc-rMHwl.js";import{Mn as te,Nn as c,Xn as l,an as u,br as d,cn as f,cr as p,fn as m,gr as h,hn as ne,in as g,pn as _,rr as v,sn as y}from"./vendor-CSg6_Jfu.js";import{p as b}from"./vendor-core-BJsSXMFQ.js";import{K as re,j as ie,z as ae}from"./vendor-primevue-CyD8V_Ft.js";import{t as oe}from"./theme-DlMdsvGC.js";var se={class:`flex flex-col w-full gap-6`},x={key:0},S={class:`card-title`},C={class:`flex flex-col gap-6`},w={class:`flex flex-col field-gap`},T={class:`cui-label`},E={class:`w-full flex flex-col gap-2`},D={class:`flex flex-col field-gap cui-toggle-switch`},O={class:`flex items-center gap-4`},k={class:`flex flex-col field-switch-gap`},A={class:`cui-label-switch`},j={key:1},M={class:`card-title`},N={class:`flex flex-col gap-6`},P={class:`flex flex-col field-gap`},F={class:`cui-label`},I={class:`card-title`},L={class:`flex flex-col gap-6`},R={class:`flex flex-col field-gap`},z={class:`cui-label`},B={key:0,class:`flex flex-col field-gap`},V={class:`cui-label`},H={class:`w-full flex flex-col gap-2`},U={class:`flex flex-col field-gap cui-toggle-switch`},W={class:`flex items-center gap-4`},ce={class:`flex flex-col field-switch-gap`},G={class:`cui-label-switch`},le={class:`card-title`},ue={class:`w-full flex flex-col gap-2`},de={class:`flex flex-col field-gap cui-toggle-switch`},fe={class:`flex items-center gap-4`},pe={class:`flex flex-col field-switch-gap`},me={class:`cui-label-switch`},he={class:`flex flex-col field-gap cui-toggle-switch`},ge={class:`flex items-center gap-4`},_e={class:`flex flex-col field-switch-gap`},ve={class:`cui-label-switch`},K=ne({__name:`SettingsAppearance`,setup(ne){let{t:K}=n(),ye=r(),{language:q,languageOptions:be}=b(ye),xe=oe(),{colors:Se,theme:J,autoMode:Y}=b(xe),Ce=i(),{uiSettings:X}=b(Ce),Z=p(t.isRecording()),Q=p(t.isDebug()),$=g(()=>s().map(e=>({label:K(`navigation.${e.meta.name}`),value:e.path}))),we=g(()=>a.map(e=>({label:K(`navigation.${e}`),value:e}))),Te=t.onChange(()=>{Z.value=t.isRecording(),Q.value=t.isDebug()});function Ee(e){t.setRecording(e),e||t.clear()}function De(e){t.setDebug(e)}return te(Te),(t,n)=>{let r=ie,i=ae,a=re,s=e;return c(),f(`div`,null,[u(`div`,se,[h(o)()?y(``,!0):(c(),f(`div`,x,[u(`span`,S,d(t.$t(`views.settings.theme`)),1),_(s,{class:`cui-card`},{content:l(()=>[u(`div`,C,[u(`div`,w,[u(`label`,T,d(t.$t(`components.form.label.theme`)),1),_(r,{modelValue:h(J),"onUpdate:modelValue":n[0]||=e=>v(J)?J.value=e:null,options:h(Se),disabled:h(Y)},null,8,[`modelValue`,`options`,`disabled`])]),u(`div`,E,[u(`div`,D,[u(`div`,O,[u(`div`,k,[u(`label`,A,d(t.$t(`components.form.label.system_preference`)),1),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[m(d(t.$t(`components.form.hint.system_preference`)),1)]),_:1})]),_(a,{modelValue:h(Y),"onUpdate:modelValue":n[1]||=e=>v(Y)?Y.value=e:null,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})])),h(o)()?y(``,!0):(c(),f(`div`,j,[u(`span`,M,d(t.$t(`views.settings.locale`)),1),_(s,{class:`cui-card`},{content:l(()=>[u(`div`,N,[u(`div`,P,[u(`label`,F,d(t.$t(`components.form.label.language`)),1),_(r,{modelValue:h(q),"onUpdate:modelValue":n[2]||=e=>v(q)?q.value=e:null,options:h(be),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`])])])]),_:1})])),u(`div`,null,[u(`span`,I,d(t.$t(`views.settings.interface`)),1),_(s,{class:`cui-card`},{content:l(()=>[u(`div`,L,[u(`div`,R,[u(`label`,z,d(t.$t(`components.form.label.default_landing_page`)),1),_(r,{modelValue:h(X).interface.landingPage,"onUpdate:modelValue":n[3]||=e=>h(X).interface.landingPage=e,options:h($),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[m(d(t.$t(`components.form.hint.default_landing_page`)),1)]),_:1})]),(`hasPermission`in t?t.hasPermission:h(ee))(void 0,`admin`)?(c(),f(`div`,B,[u(`label`,V,d(t.$t(`components.form.label.default_settings_page`)),1),_(r,{modelValue:h(X).interface.selectedSettingsView,"onUpdate:modelValue":n[4]||=e=>h(X).interface.selectedSettingsView=e,options:h(we),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[m(d(t.$t(`components.form.hint.default_settings_page`)),1)]),_:1})])):y(``,!0),u(`div`,H,[u(`div`,U,[u(`div`,W,[u(`div`,ce,[u(`label`,G,d(t.$t(`components.form.label.navbar_stay_collapsed`)),1),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[m(d(t.$t(`components.form.hint.navbar_stay_collapsed`)),1)]),_:1})]),_(a,{modelValue:h(X).interface.navbarStayCollapsed,"onUpdate:modelValue":n[5]||=e=>h(X).interface.navbarStayCollapsed=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})]),u(`div`,null,[u(`span`,le,d(t.$t(`views.settings.debugging`)),1),_(s,{class:`cui-card`},{content:l(()=>[u(`div`,ue,[u(`div`,de,[u(`div`,fe,[u(`div`,pe,[u(`label`,me,d(t.$t(`components.form.label.debug_verbose`)),1),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[m(d(t.$t(`components.form.hint.debug_verbose`)),1)]),_:1})]),_(a,{"model-value":h(Q),class:`ml-auto shrink-0`,"onUpdate:modelValue":De},null,8,[`model-value`])])]),u(`div`,he,[u(`div`,ge,[u(`div`,_e,[u(`label`,ve,d(t.$t(`components.form.label.record_logs`)),1),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[m(d(t.$t(`components.form.hint.record_logs`)),1)]),_:1})]),_(a,{"model-value":h(Z),class:`ml-auto shrink-0`,"onUpdate:modelValue":Ee},null,8,[`model-value`])])])])]),_:1})])])])}}});export{K as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./SettingsAppearance-Bq-xM16S.js";export{e as default};
@@ -1 +1 @@
1
- import{F as e,O as t,Ot as n,Pt as r,kr as i,wt as a}from"./vendor-cameraui-BqkrW4Bb.js";import{Y as o,Zn as s,in as c,s as l}from"./api-milc5VEE.js";import{$t as u,Fn as d,Gn as f,Nn as p,Xn as m,Zn as h,an as g,br as _,cn as v,cr as y,dr as b,en as x,fn as S,gr as C,hn as w,in as T,ir as E,jn as D,mr as O,on as k,or as ee,pn as A,sn as j,zn as M}from"./vendor-CSg6_Jfu.js";import{K as N,M as P,U as F,g as I,j as L,z as R}from"./vendor-primevue-DYzLjOFZ.js";import{a as z,c as te,i as ne,n as re,o as ie,r as ae,s as oe}from"./useBackupRestore-b0Niqql7.js";import{t as se}from"./trash-can-outline-BbZkHoW7.js";import{t as B}from"./close-circle-DYhkXsRj.js";import{t as ce}from"./download-PLxvyB7s.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return p(),v(`svg`,V,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H15v-8h5V8zm-1 7V3.5L18.5 9zm4 12.66V16h5.66v2h-2.24l2.95 2.95l-1.41 1.41L19 19.41v2.24h-2z`},null,-1)]])}var U=E({name:`ic-baseline-file-open`,render:H}),W={class:`flex flex-col gap-6 p-4 items-center justify-center w-full`},G={class:`flex flex-col justify-center items-center`},K={for:`restoreInput`,class:`cursor-pointer text-center`},q=[`accept`],J={key:0,class:`text-red`},Y={class:`mx-2`},X={class:`text-muted`},le=w({__name:`CuiUploadFiles`,props:{multiple:{type:Boolean,default:!1},accept:{},icon:{default:U}},emits:[`files-uploaded`],setup(e,{expose:t,emit:r}){let i=e,a=r,{accept:o,multiple:s}=O(i),c=f(`fileInputRef`),l=b([]),d=y(!1),h=y(!1);function x(e){let t=l.value.findIndex(t=>t.name===e);t>-1&&(l.value.splice(t,1),T())}function S(e){if(d.value=!1,h.value=!1,l.value=[],e.dataTransfer)if(!s.value&&e.dataTransfer.files.length>1)h.value=!0;else{for(let[,t]of Object.entries(e.dataTransfer.files))l.value.push(t);a(`files-uploaded`,l.value)}}function w(e){h.value=!1,l.value=[];let t=e.target;if(t&&t.files)if(!s.value&&t.files?.length>1)h.value=!0;else{for(let[,e]of Object.entries(t.files))l.value.push(e);a(`files-uploaded`,l.value)}}function T(){c.value&&(c.value.value=``)}function E(){l.value=[],T()}return t({reset:E}),(t,r)=>{let i=B,a=n,s=F,f=P;return p(),v(`div`,{class:`file-upload-box`,onDrop:r[0]||=u(e=>S(e),[`prevent`]),onDragover:r[1]||=u(e=>d.value=!0,[`prevent`]),onDragenter:r[2]||=u(e=>d.value=!0,[`prevent`]),onDragleave:r[3]||=u(e=>d.value=!1,[`prevent`])},[g(`div`,W,[g(`div`,G,[(p(),k(M(e.icon),{class:`w-15 h-15`})),g(`label`,K,_(t.$t(`components.upload_files.drop_or_select_file`)),1),g(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:c,type:`file`,class:`hidden`,accept:C(o),onChange:w},null,40,q),C(h)?(p(),v(`p`,J,_(t.$t(`components.upload_files.only_one_file_allowed`)),1)):j(``,!0)]),C(l).length>0?(p(),k(f,{key:0,items:C(l),"item-size":50,"scroll-height":`50px`,"scroll-width":`100%`,class:`w-full`},{item:m(({item:e})=>[(p(),v(`div`,{key:e.name,class:`w-full flex flex-row items-center justify-start p-2`},[A(a,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t=>x(e.name)},{icon:m(()=>[A(i,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`]),g(`b`,Y,_(e.name),1),g(`span`,X,`(`+_(e.size)+` bytes)`,1)])),C(l).length>1?(p(),k(s,{key:0,class:`m-0 py-4`})):j(``,!0)]),_:1},8,[`items`])):j(``,!0)])],32)}}}),ue={class:`flex flex-col w-full gap-6`},de={class:`card-title`},fe={class:`flex flex-col gap-6`},pe={class:`text-sm`},me={class:`card-title`},he={class:`flex flex-col gap-6`},ge={class:`text-sm`},_e={class:`card-title`},ve={key:0,class:`flex w-full items-center justify-center py-6`},ye={key:1,class:`flex flex-col gap-6`},be={class:`flex items-center gap-4`},xe={class:`flex flex-col gap-1 min-w-0`},Se={class:`text-sm`},Ce={class:`text-xs text-muted`},we={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},Te={class:`flex flex-col field-gap`},Ee={for:`backupInterval`,class:`cui-label`},De={class:`flex flex-col field-gap`},Oe={for:`backupTime`,class:`cui-label`},ke={key:0,class:`flex flex-col field-gap`},Ae={for:`backupWeekday`,class:`cui-label`},je={key:1,class:`flex flex-col field-gap`},Me={for:`backupDayOfMonth`,class:`cui-label`},Ne={class:`flex flex-col field-gap`},Pe={for:`backupRetention`,class:`cui-label`},Fe={class:`flex flex-col field-gap`},Ie={for:`backupDestination`,class:`cui-label`},Le={class:`flex items-center gap-2`},Re={key:1,class:`flex flex-col gap-2`},ze={class:`text-sm font-semibold border-b-[1px] border-color pb-2`},Be={class:`flex flex-col min-w-0`},Ve={class:`text-sm truncate`},He={class:`text-xs text-muted`},Ue={class:`flex gap-1 ml-auto shrink-0`},Z=w({__name:`SettingsBackup`,setup(u){let w=o(),E=s(),{t:O,locale:M}=i(),P=f(`filesRef`),F=b([]),B=y(!1),V=y(!0),H=y(!1),U=y(!1),W=y(null),G=y([]),K=y(``),q=y(),J=ee({enabled:!1,interval:`daily`,time:`03:00`,weekday:0,dayOfMonth:1,retention:7,destinationPath:``}),Y=T(()=>/^([01]\d|2[0-3]):[0-5]\d$/.test(J.time)),X=T(()=>[`daily`,`weekly`,`monthly`].map(e=>({label:O(`views.settings.backup_interval_${e}`),value:e}))),Z=T(()=>Array.from({length:7},(e,t)=>({label:new Intl.DateTimeFormat(M.value,{weekday:`long`}).format(new Date(Date.UTC(2024,0,7+t,12))),value:t}))),We=T(()=>{if(!q.value)return O(`views.settings.backup_last_run`,{info:O(`views.settings.backup_last_run_never`)});let e=new Date(q.value.timestamp).toLocaleString(),t=q.value.status===`success`?`✓`:`✗ ${q.value.message??``}`;return O(`views.settings.backup_last_run`,{info:`${e} ${t}`})});async function Ge(){B.value=!0;try{let e={};if(localStorage.getItem(`ui`)){let t=localStorage.getItem(`ui`);e.ui=JSON.parse(t)}if(localStorage.getItem(`language`)&&(e.language=localStorage.getItem(`language`)),localStorage.getItem(`theme`)){let t=localStorage.getItem(`theme`);e.theme=JSON.parse(t)}let t=Date.now(),n=await ne(e);await c({blob:new Blob([n]),filename:`cameraui-backup-${t}.tar.gz`,mimeType:`application/gzip`})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}B.value=!1}function Q(){w.openTextDialog({data:{title:O(`components.dialog.title.confirm`),contentText:O(`components.dialog.message.confirm_restore`),confirmText:O(`components.form.button.restore_and_restart`),loading:B},onConfirm:Ke})}async function Ke(){let e=F.value[0];e&&(B.value=!0,await re().run(e),P.value?.reset(),B.value=!1)}function qe(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`,`TB`],n=e,r=-1;do n/=1024,r++;while(n>=1024&&r<t.length-1);return`${n.toFixed(1)} ${t[r]}`}async function $(){try{let e=await ie(),{lastRun:t,...n}=e.settings;Object.assign(J,n),q.value=t,G.value=e.backups,K.value=e.defaultDestination}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{V.value=!1}}async function Je(){if(Y.value){H.value=!0;try{let e=await oe({...J});q.value=e.lastRun,E.add({severity:`success`,detail:O(`components.toast.backup_scheduler_saved`),life:3e3})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{H.value=!1}}}async function Ye(){U.value=!0;try{let e=await te();q.value=e,E.add({severity:`success`,detail:O(`components.toast.backup_created`),life:3e3})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{U.value=!1,await $()}}async function Xe(e){W.value=e.filename;try{let t=await z(e.filename);await c({blob:new Blob([t]),filename:e.filename,mimeType:`application/gzip`})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{W.value=null}}function Ze(e){w.openTextDialog({data:{title:O(`components.dialog.title.confirm`),contentText:O(`components.dialog.message.confirm_delete_backup`,{filename:e.filename}),confirmText:O(`components.form.button.remove`)},onConfirm:async()=>{try{await ae(e.filename),E.add({severity:`success`,detail:O(`components.toast.backup_deleted`),life:3e3}),await $()}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}}})}return D($),(i,o)=>{let s=n,c=e,l=le,u=a,f=N,y=L,b=t,w=I,T=R,E=ce,D=se,O=r;return p(),v(`div`,null,[g(`div`,ue,[g(`div`,null,[g(`span`,de,_(i.$t(`views.settings.create_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[g(`div`,fe,[g(`span`,pe,_(i.$t(`views.settings.create_backup_info`)),1),A(s,{loading:C(B),class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.download_backup_archive`),onClick:Ge},null,8,[`loading`,`label`])])]),_:1})]),g(`div`,null,[g(`span`,me,_(i.$t(`views.settings.restore_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[g(`div`,he,[g(`span`,ge,_(i.$t(`views.settings.restore_backup_info`)),1),A(l,{ref_key:`filesRef`,ref:P,accept:`application/gzip, .tar, .tar.gz`,onFilesUploaded:o[0]||=e=>F.value=e},null,512),A(s,{loading:C(B),disabled:!C(F).length,class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.restore_backup_archive`),onClick:Q},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),g(`div`,null,[g(`span`,_e,_(i.$t(`views.settings.scheduled_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[C(V)?(p(),v(`div`,ve,[A(u,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(p(),v(`div`,ye,[g(`div`,be,[g(`div`,xe,[g(`span`,Se,_(i.$t(`views.settings.scheduled_backup_info`)),1),g(`span`,Ce,_(C(We)),1)]),A(f,{modelValue:C(J).enabled,"onUpdate:modelValue":o[1]||=e=>C(J).enabled=e,disabled:C(H),class:`ml-auto shrink-0`},null,8,[`modelValue`,`disabled`])]),C(J).enabled?(p(),v(x,{key:0},[g(`div`,we,[g(`div`,Te,[g(`label`,Ee,_(i.$t(`views.settings.backup_interval`)),1),A(y,{modelValue:C(J).interval,"onUpdate:modelValue":o[2]||=e=>C(J).interval=e,"input-id":`backupInterval`,options:C(X),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])]),g(`div`,De,[g(`label`,Oe,_(i.$t(`views.settings.backup_time`)),1),A(b,{id:`backupTime`,modelValue:C(J).time,"onUpdate:modelValue":o[3]||=e=>C(J).time=e,placeholder:`03:00`,disabled:C(H),invalid:!C(Y)},null,8,[`modelValue`,`disabled`,`invalid`])]),C(J).interval===`weekly`?(p(),v(`div`,ke,[g(`label`,Ae,_(i.$t(`views.settings.backup_weekday`)),1),A(y,{modelValue:C(J).weekday,"onUpdate:modelValue":o[4]||=e=>C(J).weekday=e,"input-id":`backupWeekday`,options:C(Z),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])])):j(``,!0),C(J).interval===`monthly`?(p(),v(`div`,je,[g(`label`,Me,_(i.$t(`views.settings.backup_day_of_month`)),1),A(w,{modelValue:C(J).dayOfMonth,"onUpdate:modelValue":o[5]||=e=>C(J).dayOfMonth=e,"input-id":`backupDayOfMonth`,min:1,max:28,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`])])):j(``,!0),g(`div`,Ne,[g(`label`,Pe,_(i.$t(`views.settings.backup_retention`)),1),A(w,{modelValue:C(J).retention,"onUpdate:modelValue":o[6]||=e=>C(J).retention=e,"input-id":`backupRetention`,min:1,max:60,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`]),A(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[S(_(i.$t(`views.settings.backup_retention_hint`)),1)]),_:1})])]),g(`div`,Fe,[g(`label`,Ie,_(i.$t(`views.settings.backup_destination`)),1),A(b,{id:`backupDestination`,modelValue:C(J).destinationPath,"onUpdate:modelValue":o[7]||=e=>C(J).destinationPath=e,placeholder:C(K),disabled:C(H)},null,8,[`modelValue`,`placeholder`,`disabled`]),A(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[S(_(i.$t(`views.settings.backup_destination_hint`)),1)]),_:1})])],64)):j(``,!0),g(`div`,Le,[A(s,{severity:`secondary`,outlined:``,loading:C(U),disabled:C(H),class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.run_now`),onClick:Ye},null,8,[`loading`,`disabled`,`label`]),A(s,{loading:C(H),disabled:C(U)||!C(Y),class:`cui-button-medium`,label:i.$t(`components.form.button.save`),onClick:Je},null,8,[`loading`,`disabled`,`label`])]),C(G).length?(p(),v(`div`,Re,[g(`span`,ze,_(i.$t(`views.settings.backup_existing`)),1),(p(!0),v(x,null,d(C(G),e=>(p(),v(`div`,{key:e.filename,class:`flex items-center gap-3 py-1 min-w-0`},[g(`div`,Be,[g(`span`,Ve,_(e.filename),1),g(`span`,He,_(new Date(e.timestamp).toLocaleString())+` · `+_(qe(e.size)),1)]),g(`div`,Ue,[h((p(),k(s,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,disabled:C(W)===e.filename,onClick:t=>Xe(e)},{icon:m(()=>[A(E,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[O,{value:i.$t(`components.form.button.download`)},void 0,{top:!0}]]),h((p(),k(s,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md`,onClick:t=>Ze(e)},{icon:m(()=>[A(D,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[O,{value:i.$t(`components.form.button.remove`)},void 0,{top:!0}]])])]))),128))])):j(``,!0)]))]),_:1})])])])}}});export{Z as default};
1
+ import{F as e,O as t,Ot as n,Pt as r,kr as i,wt as a}from"./vendor-cameraui-Cgb5z6NJ.js";import{Y as o,Zn as s,in as c,s as l}from"./api-Cc-rMHwl.js";import{$t as u,Fn as d,Gn as f,Nn as p,Xn as m,Zn as h,an as g,br as _,cn as v,cr as y,dr as b,en as x,fn as S,gr as C,hn as w,in as T,ir as E,jn as D,mr as O,on as k,or as ee,pn as A,sn as j,zn as M}from"./vendor-CSg6_Jfu.js";import{K as N,M as P,U as F,g as I,j as L,z as R}from"./vendor-primevue-CyD8V_Ft.js";import{a as z,c as te,i as ne,n as re,o as ie,r as ae,s as oe}from"./useBackupRestore-DQQc_D6D.js";import{t as se}from"./trash-can-outline-BbZkHoW7.js";import{t as B}from"./close-circle-DYhkXsRj.js";import{t as ce}from"./download-PLxvyB7s.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return p(),v(`svg`,V,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H15v-8h5V8zm-1 7V3.5L18.5 9zm4 12.66V16h5.66v2h-2.24l2.95 2.95l-1.41 1.41L19 19.41v2.24h-2z`},null,-1)]])}var U=E({name:`ic-baseline-file-open`,render:H}),W={class:`flex flex-col gap-6 p-4 items-center justify-center w-full`},G={class:`flex flex-col justify-center items-center`},K={for:`restoreInput`,class:`cursor-pointer text-center`},q=[`accept`],J={key:0,class:`text-red`},Y={class:`mx-2`},X={class:`text-muted`},le=w({__name:`CuiUploadFiles`,props:{multiple:{type:Boolean,default:!1},accept:{},icon:{default:U}},emits:[`files-uploaded`],setup(e,{expose:t,emit:r}){let i=e,a=r,{accept:o,multiple:s}=O(i),c=f(`fileInputRef`),l=b([]),d=y(!1),h=y(!1);function x(e){let t=l.value.findIndex(t=>t.name===e);t>-1&&(l.value.splice(t,1),T())}function S(e){if(d.value=!1,h.value=!1,l.value=[],e.dataTransfer)if(!s.value&&e.dataTransfer.files.length>1)h.value=!0;else{for(let[,t]of Object.entries(e.dataTransfer.files))l.value.push(t);a(`files-uploaded`,l.value)}}function w(e){h.value=!1,l.value=[];let t=e.target;if(t&&t.files)if(!s.value&&t.files?.length>1)h.value=!0;else{for(let[,e]of Object.entries(t.files))l.value.push(e);a(`files-uploaded`,l.value)}}function T(){c.value&&(c.value.value=``)}function E(){l.value=[],T()}return t({reset:E}),(t,r)=>{let i=B,a=n,s=F,f=P;return p(),v(`div`,{class:`file-upload-box`,onDrop:r[0]||=u(e=>S(e),[`prevent`]),onDragover:r[1]||=u(e=>d.value=!0,[`prevent`]),onDragenter:r[2]||=u(e=>d.value=!0,[`prevent`]),onDragleave:r[3]||=u(e=>d.value=!1,[`prevent`])},[g(`div`,W,[g(`div`,G,[(p(),k(M(e.icon),{class:`w-15 h-15`})),g(`label`,K,_(t.$t(`components.upload_files.drop_or_select_file`)),1),g(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:c,type:`file`,class:`hidden`,accept:C(o),onChange:w},null,40,q),C(h)?(p(),v(`p`,J,_(t.$t(`components.upload_files.only_one_file_allowed`)),1)):j(``,!0)]),C(l).length>0?(p(),k(f,{key:0,items:C(l),"item-size":50,"scroll-height":`50px`,"scroll-width":`100%`,class:`w-full`},{item:m(({item:e})=>[(p(),v(`div`,{key:e.name,class:`w-full flex flex-row items-center justify-start p-2`},[A(a,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t=>x(e.name)},{icon:m(()=>[A(i,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`]),g(`b`,Y,_(e.name),1),g(`span`,X,`(`+_(e.size)+` bytes)`,1)])),C(l).length>1?(p(),k(s,{key:0,class:`m-0 py-4`})):j(``,!0)]),_:1},8,[`items`])):j(``,!0)])],32)}}}),ue={class:`flex flex-col w-full gap-6`},de={class:`card-title`},fe={class:`flex flex-col gap-6`},pe={class:`text-sm`},me={class:`card-title`},he={class:`flex flex-col gap-6`},ge={class:`text-sm`},_e={class:`card-title`},ve={key:0,class:`flex w-full items-center justify-center py-6`},ye={key:1,class:`flex flex-col gap-6`},be={class:`flex items-center gap-4`},xe={class:`flex flex-col gap-1 min-w-0`},Se={class:`text-sm`},Ce={class:`text-xs text-muted`},we={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},Te={class:`flex flex-col field-gap`},Ee={for:`backupInterval`,class:`cui-label`},De={class:`flex flex-col field-gap`},Oe={for:`backupTime`,class:`cui-label`},ke={key:0,class:`flex flex-col field-gap`},Ae={for:`backupWeekday`,class:`cui-label`},je={key:1,class:`flex flex-col field-gap`},Me={for:`backupDayOfMonth`,class:`cui-label`},Ne={class:`flex flex-col field-gap`},Pe={for:`backupRetention`,class:`cui-label`},Fe={class:`flex flex-col field-gap`},Ie={for:`backupDestination`,class:`cui-label`},Le={class:`flex items-center gap-2`},Re={key:1,class:`flex flex-col gap-2`},ze={class:`text-sm font-semibold border-b-[1px] border-color pb-2`},Be={class:`flex flex-col min-w-0`},Ve={class:`text-sm truncate`},He={class:`text-xs text-muted`},Ue={class:`flex gap-1 ml-auto shrink-0`},Z=w({__name:`SettingsBackup`,setup(u){let w=o(),E=s(),{t:O,locale:M}=i(),P=f(`filesRef`),F=b([]),B=y(!1),V=y(!0),H=y(!1),U=y(!1),W=y(null),G=y([]),K=y(``),q=y(),J=ee({enabled:!1,interval:`daily`,time:`03:00`,weekday:0,dayOfMonth:1,retention:7,destinationPath:``}),Y=T(()=>/^([01]\d|2[0-3]):[0-5]\d$/.test(J.time)),X=T(()=>[`daily`,`weekly`,`monthly`].map(e=>({label:O(`views.settings.backup_interval_${e}`),value:e}))),Z=T(()=>Array.from({length:7},(e,t)=>({label:new Intl.DateTimeFormat(M.value,{weekday:`long`}).format(new Date(Date.UTC(2024,0,7+t,12))),value:t}))),We=T(()=>{if(!q.value)return O(`views.settings.backup_last_run`,{info:O(`views.settings.backup_last_run_never`)});let e=new Date(q.value.timestamp).toLocaleString(),t=q.value.status===`success`?`✓`:`✗ ${q.value.message??``}`;return O(`views.settings.backup_last_run`,{info:`${e} ${t}`})});async function Ge(){B.value=!0;try{let e={};if(localStorage.getItem(`ui`)){let t=localStorage.getItem(`ui`);e.ui=JSON.parse(t)}if(localStorage.getItem(`language`)&&(e.language=localStorage.getItem(`language`)),localStorage.getItem(`theme`)){let t=localStorage.getItem(`theme`);e.theme=JSON.parse(t)}let t=Date.now(),n=await ne(e);await c({blob:new Blob([n]),filename:`cameraui-backup-${t}.tar.gz`,mimeType:`application/gzip`})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}B.value=!1}function Q(){w.openTextDialog({data:{title:O(`components.dialog.title.confirm`),contentText:O(`components.dialog.message.confirm_restore`),confirmText:O(`components.form.button.restore_and_restart`),loading:B},onConfirm:Ke})}async function Ke(){let e=F.value[0];e&&(B.value=!0,await re().run(e),P.value?.reset(),B.value=!1)}function qe(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`,`TB`],n=e,r=-1;do n/=1024,r++;while(n>=1024&&r<t.length-1);return`${n.toFixed(1)} ${t[r]}`}async function $(){try{let e=await ie(),{lastRun:t,...n}=e.settings;Object.assign(J,n),q.value=t,G.value=e.backups,K.value=e.defaultDestination}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{V.value=!1}}async function Je(){if(Y.value){H.value=!0;try{let e=await oe({...J});q.value=e.lastRun,E.add({severity:`success`,detail:O(`components.toast.backup_scheduler_saved`),life:3e3})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{H.value=!1}}}async function Ye(){U.value=!0;try{let e=await te();q.value=e,E.add({severity:`success`,detail:O(`components.toast.backup_created`),life:3e3})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{U.value=!1,await $()}}async function Xe(e){W.value=e.filename;try{let t=await z(e.filename);await c({blob:new Blob([t]),filename:e.filename,mimeType:`application/gzip`})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{W.value=null}}function Ze(e){w.openTextDialog({data:{title:O(`components.dialog.title.confirm`),contentText:O(`components.dialog.message.confirm_delete_backup`,{filename:e.filename}),confirmText:O(`components.form.button.remove`)},onConfirm:async()=>{try{await ae(e.filename),E.add({severity:`success`,detail:O(`components.toast.backup_deleted`),life:3e3}),await $()}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}}})}return D($),(i,o)=>{let s=n,c=e,l=le,u=a,f=N,y=L,b=t,w=I,T=R,E=ce,D=se,O=r;return p(),v(`div`,null,[g(`div`,ue,[g(`div`,null,[g(`span`,de,_(i.$t(`views.settings.create_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[g(`div`,fe,[g(`span`,pe,_(i.$t(`views.settings.create_backup_info`)),1),A(s,{loading:C(B),class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.download_backup_archive`),onClick:Ge},null,8,[`loading`,`label`])])]),_:1})]),g(`div`,null,[g(`span`,me,_(i.$t(`views.settings.restore_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[g(`div`,he,[g(`span`,ge,_(i.$t(`views.settings.restore_backup_info`)),1),A(l,{ref_key:`filesRef`,ref:P,accept:`application/gzip, .tar, .tar.gz`,onFilesUploaded:o[0]||=e=>F.value=e},null,512),A(s,{loading:C(B),disabled:!C(F).length,class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.restore_backup_archive`),onClick:Q},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),g(`div`,null,[g(`span`,_e,_(i.$t(`views.settings.scheduled_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[C(V)?(p(),v(`div`,ve,[A(u,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(p(),v(`div`,ye,[g(`div`,be,[g(`div`,xe,[g(`span`,Se,_(i.$t(`views.settings.scheduled_backup_info`)),1),g(`span`,Ce,_(C(We)),1)]),A(f,{modelValue:C(J).enabled,"onUpdate:modelValue":o[1]||=e=>C(J).enabled=e,disabled:C(H),class:`ml-auto shrink-0`},null,8,[`modelValue`,`disabled`])]),C(J).enabled?(p(),v(x,{key:0},[g(`div`,we,[g(`div`,Te,[g(`label`,Ee,_(i.$t(`views.settings.backup_interval`)),1),A(y,{modelValue:C(J).interval,"onUpdate:modelValue":o[2]||=e=>C(J).interval=e,"input-id":`backupInterval`,options:C(X),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])]),g(`div`,De,[g(`label`,Oe,_(i.$t(`views.settings.backup_time`)),1),A(b,{id:`backupTime`,modelValue:C(J).time,"onUpdate:modelValue":o[3]||=e=>C(J).time=e,placeholder:`03:00`,disabled:C(H),invalid:!C(Y)},null,8,[`modelValue`,`disabled`,`invalid`])]),C(J).interval===`weekly`?(p(),v(`div`,ke,[g(`label`,Ae,_(i.$t(`views.settings.backup_weekday`)),1),A(y,{modelValue:C(J).weekday,"onUpdate:modelValue":o[4]||=e=>C(J).weekday=e,"input-id":`backupWeekday`,options:C(Z),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])])):j(``,!0),C(J).interval===`monthly`?(p(),v(`div`,je,[g(`label`,Me,_(i.$t(`views.settings.backup_day_of_month`)),1),A(w,{modelValue:C(J).dayOfMonth,"onUpdate:modelValue":o[5]||=e=>C(J).dayOfMonth=e,"input-id":`backupDayOfMonth`,min:1,max:28,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`])])):j(``,!0),g(`div`,Ne,[g(`label`,Pe,_(i.$t(`views.settings.backup_retention`)),1),A(w,{modelValue:C(J).retention,"onUpdate:modelValue":o[6]||=e=>C(J).retention=e,"input-id":`backupRetention`,min:1,max:60,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`]),A(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[S(_(i.$t(`views.settings.backup_retention_hint`)),1)]),_:1})])]),g(`div`,Fe,[g(`label`,Ie,_(i.$t(`views.settings.backup_destination`)),1),A(b,{id:`backupDestination`,modelValue:C(J).destinationPath,"onUpdate:modelValue":o[7]||=e=>C(J).destinationPath=e,placeholder:C(K),disabled:C(H)},null,8,[`modelValue`,`placeholder`,`disabled`]),A(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[S(_(i.$t(`views.settings.backup_destination_hint`)),1)]),_:1})])],64)):j(``,!0),g(`div`,Le,[A(s,{severity:`secondary`,outlined:``,loading:C(U),disabled:C(H),class:`ml-auto cui-button-medium`,label:i.$t(`components.form.button.run_now`),onClick:Ye},null,8,[`loading`,`disabled`,`label`]),A(s,{loading:C(H),disabled:C(U)||!C(Y),class:`cui-button-medium`,label:i.$t(`components.form.button.save`),onClick:Je},null,8,[`loading`,`disabled`,`label`])]),C(G).length?(p(),v(`div`,Re,[g(`span`,ze,_(i.$t(`views.settings.backup_existing`)),1),(p(!0),v(x,null,d(C(G),e=>(p(),v(`div`,{key:e.filename,class:`flex items-center gap-3 py-1 min-w-0`},[g(`div`,Be,[g(`span`,Ve,_(e.filename),1),g(`span`,He,_(new Date(e.timestamp).toLocaleString())+` · `+_(qe(e.size)),1)]),g(`div`,Ue,[h((p(),k(s,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,disabled:C(W)===e.filename,onClick:t=>Xe(e)},{icon:m(()=>[A(E,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[O,{value:i.$t(`components.form.button.download`)},void 0,{top:!0}]]),h((p(),k(s,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md`,onClick:t=>Ze(e)},{icon:m(()=>[A(D,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[O,{value:i.$t(`components.form.button.remove`)},void 0,{top:!0}]])])]))),128))])):j(``,!0)]))]),_:1})])])])}}});export{Z as default};
@@ -1 +1 @@
1
- import{kr as e}from"./vendor-cameraui-BqkrW4Bb.js";import{Qt as t,Yt as n,b as r}from"./api-milc5VEE.js";import{Fn as i,Nn as a,Xn as o,br as s,cn as c,en as l,fn as u,gr as d,hn as f,in as p,on as m,pn as h,zn as g}from"./vendor-CSg6_Jfu.js";import{t as _}from"./CuiList-CDed3qXV.js";import{t as v}from"./chevron-right-B4vB0gm4.js";var y=f({__name:`SettingsList`,setup(f){let{t:y}=e(),b=p(()=>r.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&t(e)).map(e=>({to:`/settings/${e.path}`,label:y(`navigation.${e.meta.name.toLowerCase()}`),icon:e.meta.settingsBar.icon.default})));return(e,t)=>{let r=v,f=n,p=_;return a(),c(`div`,null,[h(p,{size:`large`,dividers:``,class:`!h-auto`},{default:o(()=>[(a(!0),c(l,null,i(d(b),e=>(a(),m(f,{key:e.to,to:e.to},{prepend:o(()=>[(a(),m(g(e.icon),{class:`w-5 h-5 text-muted`}))]),append:o(()=>[h(r,{class:`w-5 h-5 text-muted`})]),default:o(()=>[u(` `+s(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:1})])}}});export{y as default};
1
+ import{kr as e}from"./vendor-cameraui-Cgb5z6NJ.js";import{Qt as t,Yt as n,b as r}from"./api-Cc-rMHwl.js";import{Fn as i,Nn as a,Xn as o,br as s,cn as c,en as l,fn as u,gr as d,hn as f,in as p,on as m,pn as h,zn as g}from"./vendor-CSg6_Jfu.js";import{t as _}from"./CuiList-Cjbxtb1E.js";import{t as v}from"./chevron-right-B4vB0gm4.js";var y=f({__name:`SettingsList`,setup(f){let{t:y}=e(),b=p(()=>r.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&t(e)).map(e=>({to:`/settings/${e.path}`,label:y(`navigation.${e.meta.name.toLowerCase()}`),icon:e.meta.settingsBar.icon.default})));return(e,t)=>{let r=v,f=n,p=_;return a(),c(`div`,null,[h(p,{size:`large`,dividers:``,class:`!h-auto`},{default:o(()=>[(a(!0),c(l,null,i(d(b),e=>(a(),m(f,{key:e.to,to:e.to},{prepend:o(()=>[(a(),m(g(e.icon),{class:`w-5 h-5 text-muted`}))]),append:o(()=>[h(r,{class:`w-5 h-5 text-muted`})]),default:o(()=>[u(` `+s(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:1})])}}});export{y as default};
@@ -1 +1 @@
1
- import{F as e,O as t,Ot as ee,kr as n,wt as te}from"./vendor-cameraui-BqkrW4Bb.js";import{Un as r,Zn as i,i as a,it as ne,o,rt as s}from"./api-milc5VEE.js";import{Nn as c,Xn as l,an as u,b as re,br as d,cn as f,cr as p,en as m,fn as h,gr as g,hn as _,in as v,on as y,pn as b,qn as x,qt as S,rr as ie,sn as C,v as w,wn as T,y as E}from"./vendor-CSg6_Jfu.js";import{K as D}from"./types-CoXm85So.js";import{K as ae,L as oe,R as se,a as ce,g as le,i as ue,j as de,s as fe,z as pe}from"./vendor-primevue-DYzLjOFZ.js";import{t as O}from"./mqtt-D_shY0Ks.js";var me=D,k={class:`w-full h-full`},A={key:0,class:`w-full h-full flex items-center justify-center`},j={key:1,class:`flex flex-col w-full gap-6`},M={class:`card-title`},N={class:`flex items-center gap-4`},P={class:`flex flex-col field-switch-gap min-w-0`},F={class:`text-sm font-bold text-color`},I={class:`card-title`},L={class:`flex flex-col gap-6`},R={class:`flex items-center gap-4 cui-toggle-switch`},z={class:`flex flex-col field-switch-gap`},he={for:`enabled`,class:`cui-label-switch`},ge={class:`flex flex-col field-gap`},_e={for:`mode`,class:`cui-label`},ve={class:`flex flex-col sm:flex-row gap-6`},ye={for:`host`,class:`cui-label`},be={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},xe={for:`port`,class:`cui-label`},Se={class:`flex flex-col field-gap`},Ce={for:`protocol`,class:`cui-label`},we={class:`flex flex-col sm:flex-row gap-6`},Te={class:`flex flex-col field-gap flex-1 min-w-0`},Ee={for:`username`,class:`cui-label`},De={class:`flex flex-col field-gap flex-1 min-w-0`},Oe={for:`password`,class:`cui-label`},ke={class:`flex flex-col field-gap`},Ae={for:`brokerAddress`,class:`cui-label`},je={class:`flex flex-col sm:flex-row gap-6`},Me={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},Ne={for:`brokerPort`,class:`cui-label`},Pe={class:`flex flex-col field-gap flex-1 min-w-0`},Fe={for:`brokerUsername`,class:`cui-label`},Ie={class:`flex flex-col field-gap flex-1 min-w-0`},Le={for:`brokerPassword`,class:`cui-label`},Re={class:`flex flex-col sm:flex-row gap-6`},B={for:`clientId`,class:`cui-label`},ze={for:`topicPrefix`,class:`cui-label`},Be={class:`flex items-center gap-4 cui-toggle-switch`},Ve={class:`flex flex-col field-switch-gap`},He={for:`rejectUnauthorized`,class:`cui-label-switch`},Ue={class:`flex flex-col field-gap`},We={for:`tlsCa`,class:`cui-label`},Ge={class:`flex flex-col field-gap`},Ke={for:`tlsCert`,class:`cui-label`},qe={class:`flex flex-col field-gap`},Je={for:`tlsKey`,class:`cui-label`},Ye={class:`flex items-center gap-4 cui-toggle-switch`},Xe={class:`flex flex-col field-switch-gap`},Ze={for:`haDiscovery`,class:`cui-label-switch`},Qe={for:`haDiscovery.prefix`,class:`cui-label`},$e={class:`flex items-center gap-3`},V=_({__name:`SettingsMqtt`,setup(_){let D=new O,V=i(),{t:H}=n(),{data:U}=D.getMqttInfoQuery(),W=D.patchMqttInfoMutation(),G=D.testMqttConnectionMutation(),K=r(`/server`),et=[{label:`mqtt:// (TCP)`,value:`mqtt`},{label:`mqtts:// (TLS)`,value:`mqtts`}],tt=[{label:H(`views.settings.mqtt_mode_external`),value:`external`},{label:H(`views.settings.mqtt_mode_embedded`),value:`embedded`}],q=p(null),J=p(``),Y=p(null),X=v(()=>U.value?.passwordSet??!1),Z=v(()=>Y.value??U.value?.status??null),nt=v(()=>{switch(Z.value?.state){case`connected`:return`success`;case`connecting`:case`reconnecting`:return`warn`;case`error`:return`danger`;default:return`secondary`}}),rt=v(()=>{let e=Z.value?.state??`disabled`;return H(`views.settings.mqtt_state_${e}`)}),it=v(()=>Z.value?.lastError?Z.value.lastError:Z.value?.broker?.running?H(`views.settings.mqtt_broker_running`,{port:Z.value.broker.port}):H(`views.settings.mqtt_status_info`)),Q=v(()=>`mqtt://${window.location.hostname}:${q.value?.broker.port??1883}`);function $(){let e=o(q.value),t={enabled:e.enabled,mode:e.mode,broker:{port:e.broker.port,username:e.broker.username?.trim()?e.broker.username.trim():null,password:e.broker.password?.trim()?e.broker.password:null},host:e.host?.trim()?e.host.trim():null,port:e.port,protocol:e.protocol,username:e.username?.trim()?e.username.trim():null,clientId:e.clientId,topicPrefix:e.topicPrefix,tls:{rejectUnauthorized:e.tls.rejectUnauthorized,ca:e.tls.ca?.trim()?e.tls.ca:null,cert:e.tls.cert?.trim()?e.tls.cert:null,key:e.tls.key?.trim()?e.tls.key:null},haDiscovery:{enabled:e.haDiscovery.enabled,prefix:e.haDiscovery.prefix}};return J.value&&(t.password=J.value),t}async function at(){q.value&&(await W.mutateAsync($()),J.value=``)}async function ot(){if(!q.value)return;let e=await G.mutateAsync($());e.ok?V.add({severity:`success`,detail:H(`components.toast.mqtt_test_success`),life:3e3}):V.add({severity:`error`,detail:H(`components.toast.mqtt_test_failed`,{message:e.message??``}),life:5e3})}return x(U,e=>{e&&!q.value&&(q.value=o(e.settings))},{immediate:!0}),K.on(`mqtt-status`,e=>{Y.value=e}),K.onReady(async()=>{try{let e=await K.request(`get-mqtt-status`);e&&(Y.value=e)}catch{}}),(n,r)=>{let i=te,o=pe,p=ce,_=e,v=ae,x=de,D=t,O=le,V=fe,H=ne,U=oe,K=se,Y=ue,Z=ee;return c(),f(`div`,k,[g(q)?(c(),f(`div`,j,[u(`div`,null,[u(`span`,M,d(n.$t(`views.settings.status`)),1),b(_,{class:`cui-card`},{content:l(()=>[u(`div`,N,[u(`div`,P,[u(`span`,F,d(n.$t(`views.settings.mqtt_broker`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:l(()=>[h(d(g(it)),1)]),_:1})]),b(p,{class:`ml-auto shrink-0`,severity:g(nt),value:g(rt)},null,8,[`severity`,`value`])])]),_:1})]),b(g(re),{class:`flex flex-col w-full gap-6`,"validation-schema":g(me),onSubmit:at},{default:l(()=>[u(`div`,null,[u(`span`,I,d(n.$t(`views.settings.mqtt_broker`)),1),b(_,{class:`cui-card`},{content:l(()=>[u(`div`,L,[u(`div`,R,[u(`div`,z,[u(`label`,he,d(n.$t(`components.form.label.enabled`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_enabled_info`)),1)]),_:1})]),b(v,{modelValue:g(q).enabled,"onUpdate:modelValue":r[0]||=e=>g(q).enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),u(`div`,ge,[u(`label`,_e,d(n.$t(`views.settings.mqtt_mode_label`)),1),b(x,{modelValue:g(q).mode,"onUpdate:modelValue":r[1]||=e=>g(q).mode=e,options:tt,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`]),g(q).mode===`embedded`?(c(),y(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_mode_embedded_info`)),1)]),_:1})):C(``,!0)]),g(q).mode===`external`?(c(),f(m,{key:0},[u(`div`,ve,[b(g(E),{modelValue:g(q).host,"onUpdate:modelValue":r[2]||=e=>g(q).host=e,modelModifiers:{trim:!0},name:`host`,as:`div`,class:`flex flex-col field-gap flex-1 min-w-0`},{default:l(({field:e,errors:t})=>[u(`label`,ye,d(n.$t(`views.settings.mqtt_host_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`,placeholder:`192.168.1.10`,class:`w-full`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`host`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),u(`div`,be,[u(`label`,xe,d(n.$t(`views.settings.mqtt_port_label`)),1),b(O,{modelValue:g(q).port,"onUpdate:modelValue":r[3]||=e=>g(q).port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])])]),u(`div`,Se,[u(`label`,Ce,d(n.$t(`views.settings.mqtt_protocol_label`)),1),b(x,{modelValue:g(q).protocol,"onUpdate:modelValue":r[4]||=e=>g(q).protocol=e,options:et,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`])]),u(`div`,we,[u(`div`,Te,[u(`label`,Ee,d(n.$t(`views.settings.mqtt_username_label`)),1),b(D,{modelValue:g(q).username,"onUpdate:modelValue":r[5]||=e=>g(q).username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),u(`div`,De,[u(`label`,Oe,d(n.$t(`views.settings.mqtt_password_label`)),1),b(V,{modelValue:g(J),"onUpdate:modelValue":r[6]||=e=>ie(J)?J.value=e:null,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:g(X)?`••••••••`:``},null,8,[`modelValue`,`placeholder`]),g(X)?(c(),y(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_password_keep_hint`)),1)]),_:1})):C(``,!0)])])],64)):(c(),f(m,{key:1},[u(`div`,ke,[u(`label`,Ae,d(n.$t(`views.settings.mqtt_broker_address`)),1),b(K,null,{default:l(()=>[b(D,{"model-value":g(Q),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),b(U,null,{default:l(()=>[b(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:g(s),"button-props":{severity:`secondary`,text:!0},onAction:r[7]||=e=>g(a)(g(Q))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_broker_address_hint`)),1)]),_:1})]),u(`div`,je,[u(`div`,Me,[u(`label`,Ne,d(n.$t(`views.settings.mqtt_port_label`)),1),b(O,{modelValue:g(q).broker.port,"onUpdate:modelValue":r[8]||=e=>g(q).broker.port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])]),u(`div`,Pe,[u(`label`,Fe,d(n.$t(`views.settings.mqtt_username_label`)),1),b(D,{modelValue:g(q).broker.username,"onUpdate:modelValue":r[9]||=e=>g(q).broker.username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),u(`div`,Ie,[u(`label`,Le,d(n.$t(`views.settings.mqtt_password_label`)),1),b(K,null,{default:l(()=>[b(V,{modelValue:g(q).broker.password,"onUpdate:modelValue":r[10]||=e=>g(q).broker.password=e,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`off`},null,8,[`modelValue`]),b(U,null,{default:l(()=>[b(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:g(s),"button-props":{severity:`secondary`,text:!0},onAction:r[11]||=e=>g(a)(g(q).broker.password??``)},null,8,[`action-text`,`icon`])]),_:1})]),_:1})])])],64)),u(`div`,Re,[b(g(E),{modelValue:g(q).clientId,"onUpdate:modelValue":r[12]||=e=>g(q).clientId=e,modelModifiers:{trim:!0},name:`clientId`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:l(({field:e,errors:t})=>[u(`label`,B,d(n.$t(`views.settings.mqtt_client_id_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`clientId`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),b(g(E),{modelValue:g(q).topicPrefix,"onUpdate:modelValue":r[13]||=e=>g(q).topicPrefix=e,modelModifiers:{trim:!0},name:`topicPrefix`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:l(({field:e,errors:t})=>[u(`label`,ze,d(n.$t(`views.settings.mqtt_topic_prefix_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`topicPrefix`,class:`cui-input-error`})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_topic_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])]),g(q).mode===`external`&&g(q).protocol===`mqtts`?(c(),f(m,{key:2},[u(`div`,Be,[u(`div`,Ve,[u(`label`,He,d(n.$t(`views.settings.mqtt_tls_reject_unauthorized`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_tls_reject_unauthorized_info`)),1)]),_:1})]),b(v,{modelValue:g(q).tls.rejectUnauthorized,"onUpdate:modelValue":r[14]||=e=>g(q).tls.rejectUnauthorized=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),u(`div`,Ue,[u(`label`,We,d(n.$t(`views.settings.mqtt_tls_ca_label`)),1),b(Y,{modelValue:g(q).tls.ca,"onUpdate:modelValue":r[15]||=e=>g(q).tls.ca=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),u(`div`,Ge,[u(`label`,Ke,d(n.$t(`views.settings.mqtt_tls_cert_label`)),1),b(Y,{modelValue:g(q).tls.cert,"onUpdate:modelValue":r[16]||=e=>g(q).tls.cert=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),u(`div`,qe,[u(`label`,Je,d(n.$t(`views.settings.mqtt_tls_key_label`)),1),b(Y,{modelValue:g(q).tls.key,"onUpdate:modelValue":r[17]||=e=>g(q).tls.key=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])])],64)):C(``,!0),u(`div`,Ye,[u(`div`,Xe,[u(`label`,Ze,d(n.$t(`views.settings.mqtt_ha_discovery`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_ha_discovery_info`)),1)]),_:1})]),b(v,{modelValue:g(q).haDiscovery.enabled,"onUpdate:modelValue":r[18]||=e=>g(q).haDiscovery.enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),g(q).haDiscovery.enabled?(c(),y(g(E),{key:3,modelValue:g(q).haDiscovery.prefix,"onUpdate:modelValue":r[19]||=e=>g(q).haDiscovery.prefix=e,modelModifiers:{trim:!0},name:`haDiscovery.prefix`,as:`div`,class:`flex flex-col field-gap`},{default:l(({field:e,errors:t})=>[u(`label`,Qe,d(n.$t(`views.settings.mqtt_ha_prefix_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`,placeholder:`homeassistant`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`haDiscovery.prefix`,class:`cui-input-error`})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_ha_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])):C(``,!0),u(`div`,$e,[b(Z,{type:`button`,severity:`secondary`,loading:g(G).isPending.value,disabled:g(q).mode===`external`&&!g(q).host,class:`cui-button-medium`,label:n.$t(`views.settings.mqtt_test`),onClick:ot},null,8,[`loading`,`disabled`,`label`]),b(Z,{type:`submit`,loading:g(W).isPending.value,class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])])]),_:1})])]),_:1},8,[`validation-schema`])])):(c(),f(`div`,A,[b(i,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{V as default};
1
+ import{F as e,O as t,Ot as ee,kr as n,wt as te}from"./vendor-cameraui-Cgb5z6NJ.js";import{Un as r,Zn as i,i as a,it as ne,o,rt as s}from"./api-Cc-rMHwl.js";import{Nn as c,Xn as l,an as u,b as re,br as d,cn as f,cr as p,en as m,fn as h,gr as g,hn as _,in as v,on as y,pn as b,qn as x,qt as S,rr as ie,sn as C,v as w,wn as T,y as E}from"./vendor-CSg6_Jfu.js";import{K as D}from"./types-C1VwkReu.js";import{K as ae,L as oe,R as se,a as ce,g as le,i as ue,j as de,s as fe,z as pe}from"./vendor-primevue-CyD8V_Ft.js";import{t as O}from"./mqtt-CFw_CCq8.js";var me=D,k={class:`w-full h-full`},A={key:0,class:`w-full h-full flex items-center justify-center`},j={key:1,class:`flex flex-col w-full gap-6`},M={class:`card-title`},N={class:`flex items-center gap-4`},P={class:`flex flex-col field-switch-gap min-w-0`},F={class:`text-sm font-bold text-color`},I={class:`card-title`},L={class:`flex flex-col gap-6`},R={class:`flex items-center gap-4 cui-toggle-switch`},z={class:`flex flex-col field-switch-gap`},he={for:`enabled`,class:`cui-label-switch`},ge={class:`flex flex-col field-gap`},_e={for:`mode`,class:`cui-label`},ve={class:`flex flex-col sm:flex-row gap-6`},ye={for:`host`,class:`cui-label`},be={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},xe={for:`port`,class:`cui-label`},Se={class:`flex flex-col field-gap`},Ce={for:`protocol`,class:`cui-label`},we={class:`flex flex-col sm:flex-row gap-6`},Te={class:`flex flex-col field-gap flex-1 min-w-0`},Ee={for:`username`,class:`cui-label`},De={class:`flex flex-col field-gap flex-1 min-w-0`},Oe={for:`password`,class:`cui-label`},ke={class:`flex flex-col field-gap`},Ae={for:`brokerAddress`,class:`cui-label`},je={class:`flex flex-col sm:flex-row gap-6`},Me={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},Ne={for:`brokerPort`,class:`cui-label`},Pe={class:`flex flex-col field-gap flex-1 min-w-0`},Fe={for:`brokerUsername`,class:`cui-label`},Ie={class:`flex flex-col field-gap flex-1 min-w-0`},Le={for:`brokerPassword`,class:`cui-label`},Re={class:`flex flex-col sm:flex-row gap-6`},B={for:`clientId`,class:`cui-label`},ze={for:`topicPrefix`,class:`cui-label`},Be={class:`flex items-center gap-4 cui-toggle-switch`},Ve={class:`flex flex-col field-switch-gap`},He={for:`rejectUnauthorized`,class:`cui-label-switch`},Ue={class:`flex flex-col field-gap`},We={for:`tlsCa`,class:`cui-label`},Ge={class:`flex flex-col field-gap`},Ke={for:`tlsCert`,class:`cui-label`},qe={class:`flex flex-col field-gap`},Je={for:`tlsKey`,class:`cui-label`},Ye={class:`flex items-center gap-4 cui-toggle-switch`},Xe={class:`flex flex-col field-switch-gap`},Ze={for:`haDiscovery`,class:`cui-label-switch`},Qe={for:`haDiscovery.prefix`,class:`cui-label`},$e={class:`flex items-center gap-3`},V=_({__name:`SettingsMqtt`,setup(_){let D=new O,V=i(),{t:H}=n(),{data:U}=D.getMqttInfoQuery(),W=D.patchMqttInfoMutation(),G=D.testMqttConnectionMutation(),K=r(`/server`),et=[{label:`mqtt:// (TCP)`,value:`mqtt`},{label:`mqtts:// (TLS)`,value:`mqtts`}],tt=[{label:H(`views.settings.mqtt_mode_external`),value:`external`},{label:H(`views.settings.mqtt_mode_embedded`),value:`embedded`}],q=p(null),J=p(``),Y=p(null),X=v(()=>U.value?.passwordSet??!1),Z=v(()=>Y.value??U.value?.status??null),nt=v(()=>{switch(Z.value?.state){case`connected`:return`success`;case`connecting`:case`reconnecting`:return`warn`;case`error`:return`danger`;default:return`secondary`}}),rt=v(()=>{let e=Z.value?.state??`disabled`;return H(`views.settings.mqtt_state_${e}`)}),it=v(()=>Z.value?.lastError?Z.value.lastError:Z.value?.broker?.running?H(`views.settings.mqtt_broker_running`,{port:Z.value.broker.port}):H(`views.settings.mqtt_status_info`)),Q=v(()=>`mqtt://${window.location.hostname}:${q.value?.broker.port??1883}`);function $(){let e=o(q.value),t={enabled:e.enabled,mode:e.mode,broker:{port:e.broker.port,username:e.broker.username?.trim()?e.broker.username.trim():null,password:e.broker.password?.trim()?e.broker.password:null},host:e.host?.trim()?e.host.trim():null,port:e.port,protocol:e.protocol,username:e.username?.trim()?e.username.trim():null,clientId:e.clientId,topicPrefix:e.topicPrefix,tls:{rejectUnauthorized:e.tls.rejectUnauthorized,ca:e.tls.ca?.trim()?e.tls.ca:null,cert:e.tls.cert?.trim()?e.tls.cert:null,key:e.tls.key?.trim()?e.tls.key:null},haDiscovery:{enabled:e.haDiscovery.enabled,prefix:e.haDiscovery.prefix}};return J.value&&(t.password=J.value),t}async function at(){q.value&&(await W.mutateAsync($()),J.value=``)}async function ot(){if(!q.value)return;let e=await G.mutateAsync($());e.ok?V.add({severity:`success`,detail:H(`components.toast.mqtt_test_success`),life:3e3}):V.add({severity:`error`,detail:H(`components.toast.mqtt_test_failed`,{message:e.message??``}),life:5e3})}return x(U,e=>{e&&!q.value&&(q.value=o(e.settings))},{immediate:!0}),K.on(`mqtt-status`,e=>{Y.value=e}),K.onReady(async()=>{try{let e=await K.request(`get-mqtt-status`);e&&(Y.value=e)}catch{}}),(n,r)=>{let i=te,o=pe,p=ce,_=e,v=ae,x=de,D=t,O=le,V=fe,H=ne,U=oe,K=se,Y=ue,Z=ee;return c(),f(`div`,k,[g(q)?(c(),f(`div`,j,[u(`div`,null,[u(`span`,M,d(n.$t(`views.settings.status`)),1),b(_,{class:`cui-card`},{content:l(()=>[u(`div`,N,[u(`div`,P,[u(`span`,F,d(n.$t(`views.settings.mqtt_broker`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:l(()=>[h(d(g(it)),1)]),_:1})]),b(p,{class:`ml-auto shrink-0`,severity:g(nt),value:g(rt)},null,8,[`severity`,`value`])])]),_:1})]),b(g(re),{class:`flex flex-col w-full gap-6`,"validation-schema":g(me),onSubmit:at},{default:l(()=>[u(`div`,null,[u(`span`,I,d(n.$t(`views.settings.mqtt_broker`)),1),b(_,{class:`cui-card`},{content:l(()=>[u(`div`,L,[u(`div`,R,[u(`div`,z,[u(`label`,he,d(n.$t(`components.form.label.enabled`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_enabled_info`)),1)]),_:1})]),b(v,{modelValue:g(q).enabled,"onUpdate:modelValue":r[0]||=e=>g(q).enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),u(`div`,ge,[u(`label`,_e,d(n.$t(`views.settings.mqtt_mode_label`)),1),b(x,{modelValue:g(q).mode,"onUpdate:modelValue":r[1]||=e=>g(q).mode=e,options:tt,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`]),g(q).mode===`embedded`?(c(),y(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_mode_embedded_info`)),1)]),_:1})):C(``,!0)]),g(q).mode===`external`?(c(),f(m,{key:0},[u(`div`,ve,[b(g(E),{modelValue:g(q).host,"onUpdate:modelValue":r[2]||=e=>g(q).host=e,modelModifiers:{trim:!0},name:`host`,as:`div`,class:`flex flex-col field-gap flex-1 min-w-0`},{default:l(({field:e,errors:t})=>[u(`label`,ye,d(n.$t(`views.settings.mqtt_host_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`,placeholder:`192.168.1.10`,class:`w-full`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`host`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),u(`div`,be,[u(`label`,xe,d(n.$t(`views.settings.mqtt_port_label`)),1),b(O,{modelValue:g(q).port,"onUpdate:modelValue":r[3]||=e=>g(q).port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])])]),u(`div`,Se,[u(`label`,Ce,d(n.$t(`views.settings.mqtt_protocol_label`)),1),b(x,{modelValue:g(q).protocol,"onUpdate:modelValue":r[4]||=e=>g(q).protocol=e,options:et,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`])]),u(`div`,we,[u(`div`,Te,[u(`label`,Ee,d(n.$t(`views.settings.mqtt_username_label`)),1),b(D,{modelValue:g(q).username,"onUpdate:modelValue":r[5]||=e=>g(q).username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),u(`div`,De,[u(`label`,Oe,d(n.$t(`views.settings.mqtt_password_label`)),1),b(V,{modelValue:g(J),"onUpdate:modelValue":r[6]||=e=>ie(J)?J.value=e:null,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:g(X)?`••••••••`:``},null,8,[`modelValue`,`placeholder`]),g(X)?(c(),y(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_password_keep_hint`)),1)]),_:1})):C(``,!0)])])],64)):(c(),f(m,{key:1},[u(`div`,ke,[u(`label`,Ae,d(n.$t(`views.settings.mqtt_broker_address`)),1),b(K,null,{default:l(()=>[b(D,{"model-value":g(Q),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),b(U,null,{default:l(()=>[b(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:g(s),"button-props":{severity:`secondary`,text:!0},onAction:r[7]||=e=>g(a)(g(Q))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_broker_address_hint`)),1)]),_:1})]),u(`div`,je,[u(`div`,Me,[u(`label`,Ne,d(n.$t(`views.settings.mqtt_port_label`)),1),b(O,{modelValue:g(q).broker.port,"onUpdate:modelValue":r[8]||=e=>g(q).broker.port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])]),u(`div`,Pe,[u(`label`,Fe,d(n.$t(`views.settings.mqtt_username_label`)),1),b(D,{modelValue:g(q).broker.username,"onUpdate:modelValue":r[9]||=e=>g(q).broker.username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),u(`div`,Ie,[u(`label`,Le,d(n.$t(`views.settings.mqtt_password_label`)),1),b(K,null,{default:l(()=>[b(V,{modelValue:g(q).broker.password,"onUpdate:modelValue":r[10]||=e=>g(q).broker.password=e,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`off`},null,8,[`modelValue`]),b(U,null,{default:l(()=>[b(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:g(s),"button-props":{severity:`secondary`,text:!0},onAction:r[11]||=e=>g(a)(g(q).broker.password??``)},null,8,[`action-text`,`icon`])]),_:1})]),_:1})])])],64)),u(`div`,Re,[b(g(E),{modelValue:g(q).clientId,"onUpdate:modelValue":r[12]||=e=>g(q).clientId=e,modelModifiers:{trim:!0},name:`clientId`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:l(({field:e,errors:t})=>[u(`label`,B,d(n.$t(`views.settings.mqtt_client_id_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`clientId`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),b(g(E),{modelValue:g(q).topicPrefix,"onUpdate:modelValue":r[13]||=e=>g(q).topicPrefix=e,modelModifiers:{trim:!0},name:`topicPrefix`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:l(({field:e,errors:t})=>[u(`label`,ze,d(n.$t(`views.settings.mqtt_topic_prefix_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`topicPrefix`,class:`cui-input-error`})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_topic_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])]),g(q).mode===`external`&&g(q).protocol===`mqtts`?(c(),f(m,{key:2},[u(`div`,Be,[u(`div`,Ve,[u(`label`,He,d(n.$t(`views.settings.mqtt_tls_reject_unauthorized`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_tls_reject_unauthorized_info`)),1)]),_:1})]),b(v,{modelValue:g(q).tls.rejectUnauthorized,"onUpdate:modelValue":r[14]||=e=>g(q).tls.rejectUnauthorized=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),u(`div`,Ue,[u(`label`,We,d(n.$t(`views.settings.mqtt_tls_ca_label`)),1),b(Y,{modelValue:g(q).tls.ca,"onUpdate:modelValue":r[15]||=e=>g(q).tls.ca=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),u(`div`,Ge,[u(`label`,Ke,d(n.$t(`views.settings.mqtt_tls_cert_label`)),1),b(Y,{modelValue:g(q).tls.cert,"onUpdate:modelValue":r[16]||=e=>g(q).tls.cert=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),u(`div`,qe,[u(`label`,Je,d(n.$t(`views.settings.mqtt_tls_key_label`)),1),b(Y,{modelValue:g(q).tls.key,"onUpdate:modelValue":r[17]||=e=>g(q).tls.key=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])])],64)):C(``,!0),u(`div`,Ye,[u(`div`,Xe,[u(`label`,Ze,d(n.$t(`views.settings.mqtt_ha_discovery`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_ha_discovery_info`)),1)]),_:1})]),b(v,{modelValue:g(q).haDiscovery.enabled,"onUpdate:modelValue":r[18]||=e=>g(q).haDiscovery.enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),g(q).haDiscovery.enabled?(c(),y(g(E),{key:3,modelValue:g(q).haDiscovery.prefix,"onUpdate:modelValue":r[19]||=e=>g(q).haDiscovery.prefix=e,modelModifiers:{trim:!0},name:`haDiscovery.prefix`,as:`div`,class:`flex flex-col field-gap`},{default:l(({field:e,errors:t})=>[u(`label`,Qe,d(n.$t(`views.settings.mqtt_ha_prefix_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`,placeholder:`homeassistant`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`haDiscovery.prefix`,class:`cui-input-error`})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_ha_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])):C(``,!0),u(`div`,$e,[b(Z,{type:`button`,severity:`secondary`,loading:g(G).isPending.value,disabled:g(q).mode===`external`&&!g(q).host,class:`cui-button-medium`,label:n.$t(`views.settings.mqtt_test`),onClick:ot},null,8,[`loading`,`disabled`,`label`]),b(Z,{type:`submit`,loading:g(W).isPending.value,class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])])]),_:1})])]),_:1},8,[`validation-schema`])])):(c(),f(`div`,A,[b(i,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{V as default};
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./esm-Lt6R0RFn.js","./vendor-capacitor-C-8IYzpJ.js","./vendor-CSg6_Jfu.js","./rolldown-runtime-C0FnF6B9.js"])))=>i.map(i=>d[i]);
2
- import{E as e,F as t,O as n,Ot as r,Pt as ee,kr as i,wt as te}from"./vendor-cameraui-BqkrW4Bb.js";import{Qt as a,Vn as o,Zn as s}from"./api-milc5VEE.js";import{Fn as ne,Ln as re,Nn as c,Qt as ie,Rt as l,Xn as u,Zn as ae,an as d,br as f,cn as p,cr as m,en as h,fn as g,gr as _,hn as v,in as y,jn as b,on as x,or as S,pn as C,qn as w,sn as T}from"./vendor-CSg6_Jfu.js";import{a as E,t as D}from"./useElectron-Dg8tFzam.js";import{K as oe,T as se,U as ce,x as le,z as ue}from"./vendor-primevue-DYzLjOFZ.js";import{t as O}from"./notifications-BuSNpaOJ.js";import{t as de}from"./delete-xWUQUP2x.js";import{t as fe}from"./CuiDataTable-CTT9IFeR.js";import{t as pe}from"./usePermissions-xL0VlbyD.js";E(`PushRegistration`);var k=`cui.push.registrations`;m(!1);function me(){return{registerForPush:async()=>{},forgetIfThisDevice:async(e,t)=>{if(!e)return;let n=await j(e);!n||n.deviceId!==t||await M(e)},isServerSynced:async e=>e?await j(e)!==null:!1}}async function A(){try{let{Preferences:e}=await l(async()=>{let{Preferences:e}=await import(`./esm-Lt6R0RFn.js`);return{Preferences:e}},__vite__mapDeps([0,1,2,3]),import.meta.url),{value:t}=await e.get({key:k});return t?JSON.parse(t):{}}catch{return{}}}async function he(e){try{let{Preferences:t}=await l(async()=>{let{Preferences:e}=await import(`./esm-Lt6R0RFn.js`);return{Preferences:e}},__vite__mapDeps([0,1,2,3]),import.meta.url);await t.set({key:k,value:JSON.stringify(e)})}catch{}}async function j(e){return(await A())[e]??null}async function M(e){let t=await A();t[e]&&(delete t[e],await he(t))}var ge={class:`flex flex-col w-full gap-6`},_e={class:`card-title`},ve={class:`flex flex-col gap-6`},ye={class:`text-sm`},be={key:1,class:`flex items-center justify-center py-8`},xe={class:`flex items-center gap-4`},Se={class:`flex flex-col field-switch-gap`},Ce={class:`cui-label-switch`},we={key:0,class:`flex items-center gap-4`},Te={class:`flex flex-col field-switch-gap min-w-0`},Ee={class:`cui-label-switch`},De={key:1,class:`flex items-center gap-4`},Oe={class:`flex flex-col field-switch-gap min-w-0`},ke={class:`cui-label-switch`},Ae={key:2,class:`flex flex-col gap-2`},je={class:`flex items-center gap-4`},Me={class:`flex flex-col field-switch-gap`},Ne={class:`cui-label-switch`},Pe={key:0,class:`grid grid-cols-1 sm:grid-cols-3 gap-3 mt-2`},Fe={class:`flex flex-col field-gap`},Ie={for:`qh-from`,class:`cui-label`},Le={class:`flex flex-col field-gap`},Re={for:`qh-to`,class:`cui-label`},ze={class:`flex flex-col field-gap`},Be={for:`qh-tz`,class:`cui-label`},Ve={key:0},He={class:`card-title`},Ue={class:`flex flex-col gap-6`},We={class:`text-sm`},Ge={key:0,class:`flex items-center justify-center py-8`},Ke={key:1,class:`text-sm text-muted text-center py-8`},qe={key:2,class:`flex flex-col gap-3`},Je={class:`flex items-center gap-4`},Ye={class:`flex flex-col field-switch-gap`},Xe={class:`cui-label-switch`},Ze={key:1},Qe={class:`card-title`},$e={class:`flex flex-col gap-6`},et={class:`text-sm`},tt={key:0,class:`flex items-center justify-center py-8`},nt={key:1,class:`text-sm text-muted text-center py-8`},rt={key:2,class:`flex flex-col gap-3`},it={class:`flex items-center gap-4`},at={class:`flex flex-col field-switch-gap`},ot={class:`cui-label-switch`},st={key:2},ct={class:`card-title`},lt={class:`flex flex-col gap-6`},ut={class:`text-sm`},dt={key:0,class:`flex items-center justify-center py-8`},ft={key:1,class:`text-sm text-muted text-center py-8`},pt={key:3,class:`flex justify-end gap-2`},N=v({__name:`SettingsNotifications`,setup(l){let v=new O,{t:E,te:k}=i(),A=s(),he=a(void 0,`admin`),{registerForPush:j,forgetIfThisDevice:M,isServerSynced:N}=me(),{isElectronApp:P,electron:F}=D(),{states:mt,refresh:ht}=pe(),{data:I,isLoading:gt}=v.getSettingsQuery(),{data:L,isLoading:_t}=v.listDevicesQuery(()=>!0),{data:R,isLoading:z}=v.listSourcesQuery(),{mutate:vt,isPending:yt}=v.setSettingsQuery(),{mutateAsync:bt}=v.setSettingsQuerySilent(),{mutate:xt}=v.revokeDeviceQuery(),{mutate:B}=v.updateDeviceQuery(),V=Intl.DateTimeFormat().resolvedOptions().timeZone||`UTC`,H=m(null),U=m(``),W=m(!1),G=m(!1),K=m(!1),q=m(!0),J=m(!1),Y=m(null),X=S({}),Z=m(null),St=y(()=>!!H.value&&JSON.stringify(H.value)!==U.value),Q=y(()=>!!H.value?.enabled),Ct=y(()=>yt.value),wt=y(()=>Ot(H.value?.quietHours?.from)),Tt=y(()=>Ot(H.value?.quietHours?.to));function $(e){e&&(H.value=JSON.parse(JSON.stringify(e)),U.value=JSON.stringify(e))}function Et(){$(I.value)}function Dt(e){H.value&&(e?H.value.quietHours={from:`22:00`,to:`07:00`,timezone:V}:delete H.value.quietHours)}function Ot(e){if(!e)return null;let[t,n]=e.split(`:`).map(Number);if(!Number.isFinite(t)||!Number.isFinite(n))return null;let r=new Date;return r.setHours(t,n,0,0),r}function kt(e){return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:`00:00`}function At(e,t){H.value?.quietHours&&(H.value.quietHours[e]=kt(t))}function jt(e){return H.value?.systemTypes?.[e]!==!1}function Mt(e,t){H.value&&(H.value.systemTypes||(H.value.systemTypes={}),t?delete H.value.systemTypes[e]:H.value.systemTypes[e]=!1)}function Nt(e){return H.value?.sources?.[e]!==!1}function Pt(e,t){H.value&&(H.value.sources||(H.value.sources={}),t?delete H.value.sources[e]:H.value.sources[e]=!1)}function Ft(e){let t=`views.settings.notifications.system_types.${e.type.replaceAll(`.`,`_`)}`;return k(t)?E(t):e.label}function It(){H.value&&vt({settings:H.value},{onSuccess:e=>$(e)})}async function Lt(e){if(!(!H.value||!I.value)){W.value=!0;try{$(await bt({settings:{...I.value,enabled:e}}))}catch(e){A.add({severity:`error`,detail:e,life:3e3})}finally{W.value=!1}}}async function Rt(){let e=o();G.value=e?await N(e):!1}async function zt(){if(!(!P||!F))try{q.value=await F.invoke(`get-desktop-notifications`)}catch{}}async function Bt(e){if(F){J.value=!0;try{q.value=await F.invoke(`set-desktop-notifications`,e)}catch(e){A.add({severity:`error`,detail:e,life:3e3})}finally{J.value=!1}}}async function Vt(){K.value=!0;try{await j(),await Rt(),await v.queryClient.invalidateQueries({queryKey:[`notifications`,`devices`]})}catch(e){A.add({severity:`error`,detail:e,life:3e3})}finally{K.value=!1}}function Ht(e){Y.value=e;let t=o();xt({deviceId:e},{onSuccess:async()=>{t&&await M(t,e),Rt()},onSettled:()=>Y.value=null})}function Ut(e){let t=X[e.id];if(t==null)return;let n=t.trim();if(!n||n===e.name){delete X[e.id];return}Z.value=e.id,B({deviceId:e.id,patch:{name:n}},{onSuccess:()=>delete X[e.id],onSettled:()=>Z.value=null})}function Wt(e,t){Z.value=e,B({deviceId:e,patch:{active:t}},{onSettled:()=>Z.value=null})}return w(I,$,{immediate:!0}),b(()=>{P&&zt(),ht()}),(i,a)=>{let o=re(`RouterLink`),s=ue,l=te,m=oe,v=r,y=e,b=n,S=t,w=ce,E=le,D=se,O=de,pe=fe,k=ee;return c(),p(`div`,null,[d(`div`,ge,[d(`div`,null,[d(`span`,_e,f(i.$t(`views.settings.notifications.general`)),1),C(S,{class:`cui-card`},{content:u(()=>[d(`div`,ve,[d(`span`,ye,f(i.$t(`views.settings.notifications.general_info`)),1),_(mt).notifications===`denied`?(c(),x(s,{key:0,severity:`warn`,size:`small`},{default:u(()=>[g(f(i.$t(`views.settings.notifications.os_permission_denied`))+` `,1),C(o,{to:`/settings/permissions`,class:`underline`},{default:u(()=>[g(f(i.$t(`views.settings.notifications.os_permission_link`)),1)]),_:1})]),_:1})):T(``,!0),_(gt)&&!_(H)?(c(),p(`div`,be,[C(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(H)?(c(),p(h,{key:2},[d(`div`,xe,[d(`div`,Se,[d(`label`,Ce,f(i.$t(`views.settings.notifications.enable`)),1),C(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:u(()=>[g(f(i.$t(`views.settings.notifications.enable_info`)),1)]),_:1})]),C(m,{"model-value":_(H).enabled,loading:_(W),class:`ml-auto shrink-0`,"onUpdate:modelValue":Lt},null,8,[`model-value`,`loading`])]),_(!1)&&_(H).enabled?(c(),p(`div`,we,[d(`div`,Te,[d(`label`,Ee,f(i.$t(`views.settings.notifications.this_device`)),1),C(s,{severity:_(G)?`secondary`:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:u(()=>[g(f(_(G)?i.$t(`views.settings.notifications.this_device_synced`):i.$t(`views.settings.notifications.this_device_unsynced`)),1)]),_:1},8,[`severity`])]),C(v,{severity:_(G)?`secondary`:void 0,loading:_(K),class:`cui-button-small ml-auto shrink-0`,label:_(G)?i.$t(`views.settings.notifications.resync`):i.$t(`views.settings.notifications.sync`),onClick:Vt},null,8,[`severity`,`loading`,`label`])])):_(P)&&_(H).enabled?(c(),p(`div`,De,[d(`div`,Oe,[d(`label`,ke,f(i.$t(`views.settings.notifications.this_device`)),1),C(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:u(()=>[g(f(i.$t(`views.settings.notifications.this_device_desktop`)),1)]),_:1})]),C(m,{"model-value":_(q),loading:_(J),class:`ml-auto shrink-0`,"onUpdate:modelValue":Bt},null,8,[`model-value`,`loading`])])):T(``,!0),_(H).enabled?(c(),p(`div`,Ae,[d(`div`,je,[d(`div`,Me,[d(`label`,Ne,f(i.$t(`views.settings.notifications.quiet_hours`)),1),C(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:u(()=>[g(f(i.$t(`views.settings.notifications.quiet_hours_info`)),1)]),_:1})]),C(m,{"model-value":!!_(H).quietHours,class:`ml-auto shrink-0`,"onUpdate:modelValue":Dt},null,8,[`model-value`])]),_(H).quietHours?(c(),p(`div`,Pe,[d(`div`,Fe,[d(`label`,Ie,f(i.$t(`views.settings.notifications.from`)),1),C(y,{"input-id":`qh-from`,"model-value":_(wt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":a[0]||=e=>At(`from`,e)},null,8,[`model-value`])]),d(`div`,Le,[d(`label`,Re,f(i.$t(`views.settings.notifications.to`)),1),C(y,{"input-id":`qh-to`,"model-value":_(Tt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":a[1]||=e=>At(`to`,e)},null,8,[`model-value`])]),d(`div`,ze,[d(`label`,Be,f(i.$t(`views.settings.notifications.timezone`)),1),C(b,{id:`qh-tz`,modelValue:_(H).quietHours.timezone,"onUpdate:modelValue":a[2]||=e=>_(H).quietHours.timezone=e,placeholder:_(V)},null,8,[`modelValue`,`placeholder`])])])):T(``,!0)])):T(``,!0)],64)):T(``,!0)])]),_:1})]),_(Q)&&_(he)?(c(),p(`div`,Ve,[d(`span`,He,f(i.$t(`views.settings.notifications.system_notifications`)),1),C(S,{class:`cui-card`},{content:u(()=>[d(`div`,Ue,[d(`span`,We,f(i.$t(`views.settings.notifications.system_notifications_info`)),1),_(z)&&!_(R)?(c(),p(`div`,Ge,[C(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(R)?.system?.length?(c(),p(`div`,qe,[(c(!0),p(h,null,ne(_(R).system,(e,t)=>(c(),p(`div`,{key:e.type},[d(`div`,Je,[d(`div`,Ye,[d(`label`,Xe,f(Ft(e)),1),e.description?(c(),x(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:u(()=>[g(f(e.description),1)]),_:2},1024)):T(``,!0)]),C(m,{"model-value":jt(e.type),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Mt(e.type,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<_(R).system.length-1?(c(),x(w,{key:0,class:`my-2`})):T(``,!0)]))),128))])):(c(),p(`div`,Ke,f(i.$t(`views.settings.notifications.no_system_types`)),1))])]),_:1})])):T(``,!0),_(Q)?(c(),p(`div`,Ze,[d(`span`,Qe,f(i.$t(`views.settings.notifications.plugin_notifications`)),1),C(S,{class:`cui-card`},{content:u(()=>[d(`div`,$e,[d(`span`,et,f(i.$t(`views.settings.notifications.plugin_notifications_info`)),1),_(z)&&!_(R)?(c(),p(`div`,tt,[C(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(R)?.plugins?.length?(c(),p(`div`,rt,[(c(!0),p(h,null,ne(_(R).plugins,(e,t)=>(c(),p(`div`,{key:e.id},[d(`div`,it,[d(`div`,at,[d(`label`,ot,f(e.name),1)]),C(m,{"model-value":Nt(e.id),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Pt(e.id,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<_(R).plugins.length-1?(c(),x(w,{key:0,class:`my-2`})):T(``,!0)]))),128))])):(c(),p(`div`,nt,f(i.$t(`views.settings.notifications.no_plugin_sources`)),1))])]),_:1})])):T(``,!0),_(Q)?(c(),p(`div`,st,[d(`span`,ct,f(i.$t(`views.settings.notifications.devices`)),1),C(S,{class:`cui-card`},{content:u(()=>[d(`div`,lt,[d(`span`,ut,f(i.$t(`views.settings.notifications.devices_info`)),1),_(_t)&&!_(L)?(c(),p(`div`,dt,[C(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(L)?.length?(c(),x(pe,{key:2,value:_(L),"striped-rows":``},{default:u(()=>[C(E,{field:`name`,header:i.$t(`views.settings.notifications.col_name`)},{body:u(({data:e})=>[C(b,{"model-value":_(X)[e.id]??e.name,disabled:_(Z)===e.id,class:`w-full max-w-xs min-w-[150px]`,"onUpdate:modelValue":t=>_(X)[e.id]=t??``,onBlur:t=>Ut(e),onKeyup:ie(t=>Ut(e),[`enter`])},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`,`onBlur`,`onKeyup`])]),_:1},8,[`header`]),C(E,{field:`pluginName`,header:i.$t(`views.settings.notifications.col_plugin`)},{body:u(({data:e})=>[C(D,{label:e.pluginName,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`]),C(E,{field:`active`,header:i.$t(`views.settings.notifications.col_active`),style:{width:`7rem`}},{body:u(({data:e})=>[C(m,{"model-value":e.active,loading:_(Z)===e.id,"onUpdate:modelValue":t=>Wt(e.id,t)},null,8,[`model-value`,`loading`,`onUpdate:modelValue`])]),_:1},8,[`header`]),C(E,{field:`actions`,header:``,style:{width:`6rem`}},{body:u(({data:e})=>[ae((c(),x(v,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:_(Y)===e.id,onClick:t=>Ht(e.id)},{icon:u(()=>[C(O,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[k,{value:i.$t(`views.settings.notifications.revoke`)}]])]),_:1})]),_:1},8,[`value`])):(c(),p(`div`,ft,f(i.$t(`views.settings.notifications.no_devices`)),1))])]),_:1})])):T(``,!0),_(H)&&_(St)?(c(),p(`div`,pt,[C(v,{severity:`secondary`,outlined:``,class:`cui-button-medium`,disabled:_(Ct),label:i.$t(`views.settings.notifications.reset`),onClick:Et},null,8,[`disabled`,`label`]),C(v,{severity:`success`,class:`cui-button-medium`,loading:_(Ct),label:i.$t(`views.settings.notifications.save`),onClick:It},null,8,[`loading`,`label`])])):T(``,!0)])])}}});export{N as default};
2
+ import{E as e,F as t,O as n,Ot as r,Pt as ee,kr as i,wt as te}from"./vendor-cameraui-Cgb5z6NJ.js";import{Qt as a,Vn as o,Zn as s}from"./api-Cc-rMHwl.js";import{Fn as ne,Ln as re,Nn as c,Qt as ie,Rt as l,Xn as u,Zn as ae,an as d,br as f,cn as p,cr as m,en as h,fn as g,gr as _,hn as v,in as y,jn as b,on as x,or as S,pn as C,qn as w,sn as T}from"./vendor-CSg6_Jfu.js";import{a as E,t as D}from"./useElectron-KnqvZz0q.js";import{K as oe,T as se,U as ce,x as le,z as ue}from"./vendor-primevue-CyD8V_Ft.js";import{t as O}from"./notifications-0_glcRlR.js";import{t as de}from"./delete-xWUQUP2x.js";import{t as fe}from"./CuiDataTable-Dk8LJl5S.js";import{t as pe}from"./usePermissions-C3D3JcPH.js";E(`PushRegistration`);var k=`cui.push.registrations`;m(!1);function me(){return{registerForPush:async()=>{},forgetIfThisDevice:async(e,t)=>{if(!e)return;let n=await j(e);!n||n.deviceId!==t||await M(e)},isServerSynced:async e=>e?await j(e)!==null:!1}}async function A(){try{let{Preferences:e}=await l(async()=>{let{Preferences:e}=await import(`./esm-Lt6R0RFn.js`);return{Preferences:e}},__vite__mapDeps([0,1,2,3]),import.meta.url),{value:t}=await e.get({key:k});return t?JSON.parse(t):{}}catch{return{}}}async function he(e){try{let{Preferences:t}=await l(async()=>{let{Preferences:e}=await import(`./esm-Lt6R0RFn.js`);return{Preferences:e}},__vite__mapDeps([0,1,2,3]),import.meta.url);await t.set({key:k,value:JSON.stringify(e)})}catch{}}async function j(e){return(await A())[e]??null}async function M(e){let t=await A();t[e]&&(delete t[e],await he(t))}var ge={class:`flex flex-col w-full gap-6`},_e={class:`card-title`},ve={class:`flex flex-col gap-6`},ye={class:`text-sm`},be={key:1,class:`flex items-center justify-center py-8`},xe={class:`flex items-center gap-4`},Se={class:`flex flex-col field-switch-gap`},Ce={class:`cui-label-switch`},we={key:0,class:`flex items-center gap-4`},Te={class:`flex flex-col field-switch-gap min-w-0`},Ee={class:`cui-label-switch`},De={key:1,class:`flex items-center gap-4`},Oe={class:`flex flex-col field-switch-gap min-w-0`},ke={class:`cui-label-switch`},Ae={key:2,class:`flex flex-col gap-2`},je={class:`flex items-center gap-4`},Me={class:`flex flex-col field-switch-gap`},Ne={class:`cui-label-switch`},Pe={key:0,class:`grid grid-cols-1 sm:grid-cols-3 gap-3 mt-2`},Fe={class:`flex flex-col field-gap`},Ie={for:`qh-from`,class:`cui-label`},Le={class:`flex flex-col field-gap`},Re={for:`qh-to`,class:`cui-label`},ze={class:`flex flex-col field-gap`},Be={for:`qh-tz`,class:`cui-label`},Ve={key:0},He={class:`card-title`},Ue={class:`flex flex-col gap-6`},We={class:`text-sm`},Ge={key:0,class:`flex items-center justify-center py-8`},Ke={key:1,class:`text-sm text-muted text-center py-8`},qe={key:2,class:`flex flex-col gap-3`},Je={class:`flex items-center gap-4`},Ye={class:`flex flex-col field-switch-gap`},Xe={class:`cui-label-switch`},Ze={key:1},Qe={class:`card-title`},$e={class:`flex flex-col gap-6`},et={class:`text-sm`},tt={key:0,class:`flex items-center justify-center py-8`},nt={key:1,class:`text-sm text-muted text-center py-8`},rt={key:2,class:`flex flex-col gap-3`},it={class:`flex items-center gap-4`},at={class:`flex flex-col field-switch-gap`},ot={class:`cui-label-switch`},st={key:2},ct={class:`card-title`},lt={class:`flex flex-col gap-6`},ut={class:`text-sm`},dt={key:0,class:`flex items-center justify-center py-8`},ft={key:1,class:`text-sm text-muted text-center py-8`},pt={key:3,class:`flex justify-end gap-2`},N=v({__name:`SettingsNotifications`,setup(l){let v=new O,{t:E,te:k}=i(),A=s(),he=a(void 0,`admin`),{registerForPush:j,forgetIfThisDevice:M,isServerSynced:N}=me(),{isElectronApp:P,electron:F}=D(),{states:mt,refresh:ht}=pe(),{data:I,isLoading:gt}=v.getSettingsQuery(),{data:L,isLoading:_t}=v.listDevicesQuery(()=>!0),{data:R,isLoading:z}=v.listSourcesQuery(),{mutate:vt,isPending:yt}=v.setSettingsQuery(),{mutateAsync:bt}=v.setSettingsQuerySilent(),{mutate:xt}=v.revokeDeviceQuery(),{mutate:B}=v.updateDeviceQuery(),V=Intl.DateTimeFormat().resolvedOptions().timeZone||`UTC`,H=m(null),U=m(``),W=m(!1),G=m(!1),K=m(!1),q=m(!0),J=m(!1),Y=m(null),X=S({}),Z=m(null),St=y(()=>!!H.value&&JSON.stringify(H.value)!==U.value),Q=y(()=>!!H.value?.enabled),Ct=y(()=>yt.value),wt=y(()=>Ot(H.value?.quietHours?.from)),Tt=y(()=>Ot(H.value?.quietHours?.to));function $(e){e&&(H.value=JSON.parse(JSON.stringify(e)),U.value=JSON.stringify(e))}function Et(){$(I.value)}function Dt(e){H.value&&(e?H.value.quietHours={from:`22:00`,to:`07:00`,timezone:V}:delete H.value.quietHours)}function Ot(e){if(!e)return null;let[t,n]=e.split(`:`).map(Number);if(!Number.isFinite(t)||!Number.isFinite(n))return null;let r=new Date;return r.setHours(t,n,0,0),r}function kt(e){return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:`00:00`}function At(e,t){H.value?.quietHours&&(H.value.quietHours[e]=kt(t))}function jt(e){return H.value?.systemTypes?.[e]!==!1}function Mt(e,t){H.value&&(H.value.systemTypes||(H.value.systemTypes={}),t?delete H.value.systemTypes[e]:H.value.systemTypes[e]=!1)}function Nt(e){return H.value?.sources?.[e]!==!1}function Pt(e,t){H.value&&(H.value.sources||(H.value.sources={}),t?delete H.value.sources[e]:H.value.sources[e]=!1)}function Ft(e){let t=`views.settings.notifications.system_types.${e.type.replaceAll(`.`,`_`)}`;return k(t)?E(t):e.label}function It(){H.value&&vt({settings:H.value},{onSuccess:e=>$(e)})}async function Lt(e){if(!(!H.value||!I.value)){W.value=!0;try{$(await bt({settings:{...I.value,enabled:e}}))}catch(e){A.add({severity:`error`,detail:e,life:3e3})}finally{W.value=!1}}}async function Rt(){let e=o();G.value=e?await N(e):!1}async function zt(){if(!(!P||!F))try{q.value=await F.invoke(`get-desktop-notifications`)}catch{}}async function Bt(e){if(F){J.value=!0;try{q.value=await F.invoke(`set-desktop-notifications`,e)}catch(e){A.add({severity:`error`,detail:e,life:3e3})}finally{J.value=!1}}}async function Vt(){K.value=!0;try{await j(),await Rt(),await v.queryClient.invalidateQueries({queryKey:[`notifications`,`devices`]})}catch(e){A.add({severity:`error`,detail:e,life:3e3})}finally{K.value=!1}}function Ht(e){Y.value=e;let t=o();xt({deviceId:e},{onSuccess:async()=>{t&&await M(t,e),Rt()},onSettled:()=>Y.value=null})}function Ut(e){let t=X[e.id];if(t==null)return;let n=t.trim();if(!n||n===e.name){delete X[e.id];return}Z.value=e.id,B({deviceId:e.id,patch:{name:n}},{onSuccess:()=>delete X[e.id],onSettled:()=>Z.value=null})}function Wt(e,t){Z.value=e,B({deviceId:e,patch:{active:t}},{onSettled:()=>Z.value=null})}return w(I,$,{immediate:!0}),b(()=>{P&&zt(),ht()}),(i,a)=>{let o=re(`RouterLink`),s=ue,l=te,m=oe,v=r,y=e,b=n,S=t,w=ce,E=le,D=se,O=de,pe=fe,k=ee;return c(),p(`div`,null,[d(`div`,ge,[d(`div`,null,[d(`span`,_e,f(i.$t(`views.settings.notifications.general`)),1),C(S,{class:`cui-card`},{content:u(()=>[d(`div`,ve,[d(`span`,ye,f(i.$t(`views.settings.notifications.general_info`)),1),_(mt).notifications===`denied`?(c(),x(s,{key:0,severity:`warn`,size:`small`},{default:u(()=>[g(f(i.$t(`views.settings.notifications.os_permission_denied`))+` `,1),C(o,{to:`/settings/permissions`,class:`underline`},{default:u(()=>[g(f(i.$t(`views.settings.notifications.os_permission_link`)),1)]),_:1})]),_:1})):T(``,!0),_(gt)&&!_(H)?(c(),p(`div`,be,[C(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(H)?(c(),p(h,{key:2},[d(`div`,xe,[d(`div`,Se,[d(`label`,Ce,f(i.$t(`views.settings.notifications.enable`)),1),C(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:u(()=>[g(f(i.$t(`views.settings.notifications.enable_info`)),1)]),_:1})]),C(m,{"model-value":_(H).enabled,loading:_(W),class:`ml-auto shrink-0`,"onUpdate:modelValue":Lt},null,8,[`model-value`,`loading`])]),_(!1)&&_(H).enabled?(c(),p(`div`,we,[d(`div`,Te,[d(`label`,Ee,f(i.$t(`views.settings.notifications.this_device`)),1),C(s,{severity:_(G)?`secondary`:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:u(()=>[g(f(_(G)?i.$t(`views.settings.notifications.this_device_synced`):i.$t(`views.settings.notifications.this_device_unsynced`)),1)]),_:1},8,[`severity`])]),C(v,{severity:_(G)?`secondary`:void 0,loading:_(K),class:`cui-button-small ml-auto shrink-0`,label:_(G)?i.$t(`views.settings.notifications.resync`):i.$t(`views.settings.notifications.sync`),onClick:Vt},null,8,[`severity`,`loading`,`label`])])):_(P)&&_(H).enabled?(c(),p(`div`,De,[d(`div`,Oe,[d(`label`,ke,f(i.$t(`views.settings.notifications.this_device`)),1),C(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:u(()=>[g(f(i.$t(`views.settings.notifications.this_device_desktop`)),1)]),_:1})]),C(m,{"model-value":_(q),loading:_(J),class:`ml-auto shrink-0`,"onUpdate:modelValue":Bt},null,8,[`model-value`,`loading`])])):T(``,!0),_(H).enabled?(c(),p(`div`,Ae,[d(`div`,je,[d(`div`,Me,[d(`label`,Ne,f(i.$t(`views.settings.notifications.quiet_hours`)),1),C(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:u(()=>[g(f(i.$t(`views.settings.notifications.quiet_hours_info`)),1)]),_:1})]),C(m,{"model-value":!!_(H).quietHours,class:`ml-auto shrink-0`,"onUpdate:modelValue":Dt},null,8,[`model-value`])]),_(H).quietHours?(c(),p(`div`,Pe,[d(`div`,Fe,[d(`label`,Ie,f(i.$t(`views.settings.notifications.from`)),1),C(y,{"input-id":`qh-from`,"model-value":_(wt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":a[0]||=e=>At(`from`,e)},null,8,[`model-value`])]),d(`div`,Le,[d(`label`,Re,f(i.$t(`views.settings.notifications.to`)),1),C(y,{"input-id":`qh-to`,"model-value":_(Tt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":a[1]||=e=>At(`to`,e)},null,8,[`model-value`])]),d(`div`,ze,[d(`label`,Be,f(i.$t(`views.settings.notifications.timezone`)),1),C(b,{id:`qh-tz`,modelValue:_(H).quietHours.timezone,"onUpdate:modelValue":a[2]||=e=>_(H).quietHours.timezone=e,placeholder:_(V)},null,8,[`modelValue`,`placeholder`])])])):T(``,!0)])):T(``,!0)],64)):T(``,!0)])]),_:1})]),_(Q)&&_(he)?(c(),p(`div`,Ve,[d(`span`,He,f(i.$t(`views.settings.notifications.system_notifications`)),1),C(S,{class:`cui-card`},{content:u(()=>[d(`div`,Ue,[d(`span`,We,f(i.$t(`views.settings.notifications.system_notifications_info`)),1),_(z)&&!_(R)?(c(),p(`div`,Ge,[C(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(R)?.system?.length?(c(),p(`div`,qe,[(c(!0),p(h,null,ne(_(R).system,(e,t)=>(c(),p(`div`,{key:e.type},[d(`div`,Je,[d(`div`,Ye,[d(`label`,Xe,f(Ft(e)),1),e.description?(c(),x(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:u(()=>[g(f(e.description),1)]),_:2},1024)):T(``,!0)]),C(m,{"model-value":jt(e.type),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Mt(e.type,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<_(R).system.length-1?(c(),x(w,{key:0,class:`my-2`})):T(``,!0)]))),128))])):(c(),p(`div`,Ke,f(i.$t(`views.settings.notifications.no_system_types`)),1))])]),_:1})])):T(``,!0),_(Q)?(c(),p(`div`,Ze,[d(`span`,Qe,f(i.$t(`views.settings.notifications.plugin_notifications`)),1),C(S,{class:`cui-card`},{content:u(()=>[d(`div`,$e,[d(`span`,et,f(i.$t(`views.settings.notifications.plugin_notifications_info`)),1),_(z)&&!_(R)?(c(),p(`div`,tt,[C(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(R)?.plugins?.length?(c(),p(`div`,rt,[(c(!0),p(h,null,ne(_(R).plugins,(e,t)=>(c(),p(`div`,{key:e.id},[d(`div`,it,[d(`div`,at,[d(`label`,ot,f(e.name),1)]),C(m,{"model-value":Nt(e.id),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Pt(e.id,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<_(R).plugins.length-1?(c(),x(w,{key:0,class:`my-2`})):T(``,!0)]))),128))])):(c(),p(`div`,nt,f(i.$t(`views.settings.notifications.no_plugin_sources`)),1))])]),_:1})])):T(``,!0),_(Q)?(c(),p(`div`,st,[d(`span`,ct,f(i.$t(`views.settings.notifications.devices`)),1),C(S,{class:`cui-card`},{content:u(()=>[d(`div`,lt,[d(`span`,ut,f(i.$t(`views.settings.notifications.devices_info`)),1),_(_t)&&!_(L)?(c(),p(`div`,dt,[C(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(L)?.length?(c(),x(pe,{key:2,value:_(L),"striped-rows":``},{default:u(()=>[C(E,{field:`name`,header:i.$t(`views.settings.notifications.col_name`)},{body:u(({data:e})=>[C(b,{"model-value":_(X)[e.id]??e.name,disabled:_(Z)===e.id,class:`w-full max-w-xs min-w-[150px]`,"onUpdate:modelValue":t=>_(X)[e.id]=t??``,onBlur:t=>Ut(e),onKeyup:ie(t=>Ut(e),[`enter`])},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`,`onBlur`,`onKeyup`])]),_:1},8,[`header`]),C(E,{field:`pluginName`,header:i.$t(`views.settings.notifications.col_plugin`)},{body:u(({data:e})=>[C(D,{label:e.pluginName,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`]),C(E,{field:`active`,header:i.$t(`views.settings.notifications.col_active`),style:{width:`7rem`}},{body:u(({data:e})=>[C(m,{"model-value":e.active,loading:_(Z)===e.id,"onUpdate:modelValue":t=>Wt(e.id,t)},null,8,[`model-value`,`loading`,`onUpdate:modelValue`])]),_:1},8,[`header`]),C(E,{field:`actions`,header:``,style:{width:`6rem`}},{body:u(({data:e})=>[ae((c(),x(v,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:_(Y)===e.id,onClick:t=>Ht(e.id)},{icon:u(()=>[C(O,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[k,{value:i.$t(`views.settings.notifications.revoke`)}]])]),_:1})]),_:1},8,[`value`])):(c(),p(`div`,ft,f(i.$t(`views.settings.notifications.no_devices`)),1))])]),_:1})])):T(``,!0),_(H)&&_(St)?(c(),p(`div`,pt,[C(v,{severity:`secondary`,outlined:``,class:`cui-button-medium`,disabled:_(Ct),label:i.$t(`views.settings.notifications.reset`),onClick:Et},null,8,[`disabled`,`label`]),C(v,{severity:`success`,class:`cui-button-medium`,loading:_(Ct),label:i.$t(`views.settings.notifications.save`),onClick:It},null,8,[`loading`,`label`])])):T(``,!0)])])}}});export{N as default};
@@ -1 +1 @@
1
- import{F as e,Kr as t,Ot as n}from"./vendor-cameraui-BqkrW4Bb.js";import{Fn as r,Nn as i,Xn as a,an as o,br as s,cn as c,cr as l,en as u,fn as d,gr as f,hn as p,jn as m,on as h,pn as g,sn as _}from"./vendor-CSg6_Jfu.js";import{a as v,z as y}from"./vendor-primevue-DYzLjOFZ.js";import{t as b}from"./usePermissions-xL0VlbyD.js";var x={class:`flex flex-col w-full gap-6`},S={class:`card-title`},C={class:`flex flex-col gap-6`},w={class:`text-sm`},T={class:`flex flex-col field-switch-gap min-w-0`},E={class:`cui-label-switch`},D={class:`flex items-center gap-2 ml-auto shrink-0`},O=p({__name:`SettingsPermissions`,setup(p){let{states:O,canOpenSettings:k,refresh:A,request:j,openSettings:M}=b(),N=[{name:`microphone`},{name:`location`},{name:`notifications`}],P=l(null);function F(e){return e===`granted`?`success`:e===`denied`?`danger`:e===`prompt`?`warn`:`secondary`}async function I(e){P.value=e;try{await j(e)}finally{P.value=null}}return t(document,`visibilitychange`,()=>{document.visibilityState===`visible`&&A()}),m(()=>{A()}),(t,l)=>{let p=y,m=v,b=n,A=e;return i(),c(`div`,null,[o(`div`,x,[o(`div`,null,[o(`span`,S,s(t.$t(`views.settings.permissions.general`)),1),g(A,{class:`cui-card`},{content:a(()=>[o(`div`,C,[o(`span`,w,s(t.$t(`views.settings.permissions.general_info`)),1),(i(),c(u,null,r(N,e=>o(`div`,{key:e.name,class:`flex items-center gap-4`},[o(`div`,T,[o(`label`,E,s(t.$t(`views.settings.permissions.${e.name}`)),1),g(p,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:a(()=>[d(s(t.$t(`views.settings.permissions.${e.name}_info`)),1)]),_:2},1024),f(O)[e.name]===`denied`&&!f(k)?(i(),h(p,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:a(()=>[d(s(t.$t(`views.settings.permissions.browser_hint`)),1)]),_:1})):_(``,!0)]),o(`div`,D,[g(m,{severity:F(f(O)[e.name]),value:t.$t(`views.settings.permissions.state_${f(O)[e.name]}`)},null,8,[`severity`,`value`]),f(O)[e.name]===`prompt`||f(O)[e.name]===`unknown`?(i(),h(b,{key:0,loading:f(P)===e.name,class:`cui-button-small`,label:t.$t(`views.settings.permissions.request`),onClick:t=>I(e.name)},null,8,[`loading`,`label`,`onClick`])):f(O)[e.name]===`denied`&&f(k)?(i(),h(b,{key:1,severity:`secondary`,class:`cui-button-small`,label:t.$t(`views.settings.permissions.open_settings`),onClick:f(M)},null,8,[`label`,`onClick`])):_(``,!0)])])),64))])]),_:1})])])])}}});export{O as default};
1
+ import{F as e,Kr as t,Ot as n}from"./vendor-cameraui-Cgb5z6NJ.js";import{Fn as r,Nn as i,Xn as a,an as o,br as s,cn as c,cr as l,en as u,fn as d,gr as f,hn as p,jn as m,on as h,pn as g,sn as _}from"./vendor-CSg6_Jfu.js";import{a as v,z as y}from"./vendor-primevue-CyD8V_Ft.js";import{t as b}from"./usePermissions-C3D3JcPH.js";var x={class:`flex flex-col w-full gap-6`},S={class:`card-title`},C={class:`flex flex-col gap-6`},w={class:`text-sm`},T={class:`flex flex-col field-switch-gap min-w-0`},E={class:`cui-label-switch`},D={class:`flex items-center gap-2 ml-auto shrink-0`},O=p({__name:`SettingsPermissions`,setup(p){let{states:O,canOpenSettings:k,refresh:A,request:j,openSettings:M}=b(),N=[{name:`microphone`},{name:`location`},{name:`notifications`}],P=l(null);function F(e){return e===`granted`?`success`:e===`denied`?`danger`:e===`prompt`?`warn`:`secondary`}async function I(e){P.value=e;try{await j(e)}finally{P.value=null}}return t(document,`visibilitychange`,()=>{document.visibilityState===`visible`&&A()}),m(()=>{A()}),(t,l)=>{let p=y,m=v,b=n,A=e;return i(),c(`div`,null,[o(`div`,x,[o(`div`,null,[o(`span`,S,s(t.$t(`views.settings.permissions.general`)),1),g(A,{class:`cui-card`},{content:a(()=>[o(`div`,C,[o(`span`,w,s(t.$t(`views.settings.permissions.general_info`)),1),(i(),c(u,null,r(N,e=>o(`div`,{key:e.name,class:`flex items-center gap-4`},[o(`div`,T,[o(`label`,E,s(t.$t(`views.settings.permissions.${e.name}`)),1),g(p,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:a(()=>[d(s(t.$t(`views.settings.permissions.${e.name}_info`)),1)]),_:2},1024),f(O)[e.name]===`denied`&&!f(k)?(i(),h(p,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:a(()=>[d(s(t.$t(`views.settings.permissions.browser_hint`)),1)]),_:1})):_(``,!0)]),o(`div`,D,[g(m,{severity:F(f(O)[e.name]),value:t.$t(`views.settings.permissions.state_${f(O)[e.name]}`)},null,8,[`severity`,`value`]),f(O)[e.name]===`prompt`||f(O)[e.name]===`unknown`?(i(),h(b,{key:0,loading:f(P)===e.name,class:`cui-button-small`,label:t.$t(`views.settings.permissions.request`),onClick:t=>I(e.name)},null,8,[`loading`,`label`,`onClick`])):f(O)[e.name]===`denied`&&f(k)?(i(),h(b,{key:1,severity:`secondary`,class:`cui-button-small`,label:t.$t(`views.settings.permissions.open_settings`),onClick:f(M)},null,8,[`label`,`onClick`])):_(``,!0)])])),64))])]),_:1})])])])}}});export{O as default};
@@ -1 +1 @@
1
- import{At as e,F as t,Pt as n,kr as r,mt as ee,p as i,vt as a,wt as o}from"./vendor-cameraui-BqkrW4Bb.js";import{Zn as s,at as c}from"./api-milc5VEE.js";import{Nn as l,Xn as u,Zn as d,an as f,br as p,cn as m,fn as h,gr as g,hn as _,in as v,ir as y,on as b,pn as x,qn as S,sn as C,yr as w}from"./vendor-CSg6_Jfu.js";import{T as te,x as ne}from"./vendor-primevue-DYzLjOFZ.js";import{t as re}from"./CuiSchema-DTIuxROi.js";import{t as ie}from"./CuiDataTable-CTT9IFeR.js";import{t as ae}from"./alert-outline-DXHNnhoP.js";import{l as T,n as oe,o as se,r as ce,s as le}from"./vendor-chart-CoQ9HTE3.js";import{t as E}from"./CuiPluginOAuthButton-CCzRlZP6.js";var D={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function O(e,t){return l(),m(`svg`,D,[...t[0]||=[f(`path`,{fill:`currentColor`,d:`M11 15h2v2h-2zm0-8h2v6h-2zm1-5C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18a8 8 0 0 1-8-8a8 8 0 0 1 8-8a8 8 0 0 1 8 8a8 8 0 0 1-8 8`},null,-1)]])}var k=y({name:`mdi-alert-circle-outline`,render:O}),A={class:`flex flex-col w-full gap-6`},j={key:0,class:`cui-banner cui-banner-error`},M={key:1,class:`cui-banner cui-banner-warn`},N={key:2,class:`cui-banner cui-banner-warn`},P={class:`card-title`},F={class:`flex items-center justify-between gap-4`},I={class:`min-w-0`},L={class:`text-sm`},R={class:`text-xs text-muted-color mt-1`},z={class:`card-title`},B={key:0,class:`flex items-center justify-center py-8`},V={key:1,class:`text-sm text-muted text-center py-8`},H={key:2,class:`flex flex-col sm:flex-row items-center gap-6`},U={class:`shrink-0`,style:{width:`180px`,height:`180px`}},W={class:`text-color`},ue={class:`font-medium`},de={class:`card-title`},fe={key:1,class:`flex items-center justify-center py-8`},pe={key:2,class:`text-sm text-muted text-center py-8`},me={class:`card-title`},he={key:0,class:`flex items-center justify-center py-8`},ge={key:1,class:`text-sm text-muted text-center py-8`},_e={class:`flex items-center justify-center`},ve={class:`font-medium`},ye={class:`text-muted text-sm`},G=`@camera.ui/camera-ui-nvr`,K=_({__name:`SettingsRecordings`,setup(_){se.register(le,ce,T);let y=new c,{t:D}=r(),O=s(),{stats:K,isLoading:q,refresh:J}=i(),{state:Y}=ee(G),{isConnected:be,isLoading:X,config:Z,getConfig:xe,setConfig:Se,setValue:Ce,submitValue:we}=a(G),Te=v(()=>{switch(Y.value.status){case`connected`:return D(`components.oauth.connected_as`,{email:Y.value.userEmail||`—`});case`awaiting_user`:case`polling`:return D(`components.oauth.tooltip_authorizing`);case`error`:return D(`components.oauth.error_generic`);default:return D(`views.settings.recordings.license_disconnected`)}}),{data:Ee}=y.getCamerasQuery({page:1,pageSize:-1}),Q={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},De=v(()=>{let e=new Map;for(let t of Ee.value?.result??[])e.set(t._id,t.name);return e}),Oe=v(()=>K.value?.cameras?Object.entries(K.value.cameras).map(([e,t])=>({id:e,name:De.value.get(e)||e,usedBytes:t.usedBytes,segmentCount:t.segmentCount,oldestDay:t.oldestDay,newestDay:t.newestDay,daysCount:t.daysCount,bandwidthMBh:t.bandwidthMBh,recordingMode:t.recordingMode,isRecording:t.isRecording})).sort((e,t)=>t.usedBytes-e.usedBytes):[]),ke=v(()=>K.value?[{label:D(`views.settings.recordings.disk_total`),value:$(K.value.diskTotalGB)},{label:D(`views.settings.recordings.nvr_usage`),value:$(K.value.nvrUsedGB)},{label:D(`views.settings.recordings.quota`),value:K.value.nvrQuotaGB>0?$(K.value.nvrQuotaGB):D(`views.settings.recordings.unlimited`)},{label:D(`views.settings.recordings.retention`),value:K.value.retentionDays>0?D(`views.settings.recordings.days_count`,{count:K.value.retentionDays}):D(`views.settings.recordings.unlimited`)},{label:D(`views.settings.recordings.disk_free`),value:`${$(K.value.diskFreeGB)} (${K.value.diskFreePercent.toFixed(1)}%)`}]:[]),Ae=v(()=>{let e=K.value?.nvrUsedGB??0,t=K.value?.diskFreeGB??0,n=Math.max(0,(K.value?.diskUsedGB??0)-e),r=e===0&&n===0&&t===0;return{labels:[D(`views.settings.recordings.chart_nvr`),D(`views.settings.recordings.chart_other`),D(`views.settings.recordings.chart_free`)],datasets:[{data:r?[0,0,1]:[e,n,t],backgroundColor:[`#df2a4c`,`rgba(223,42,76,0.35)`,`rgba(223,42,76,0.10)`],borderWidth:0}]}}),je=v(()=>({responsive:!0,maintainAspectRatio:!0,cutout:`65%`,animation:!1,plugins:{legend:{display:!1},tooltip:{callbacks:{label:e=>`${e.label}: ${$(e.parsed)}`}}}}));async function Me(e){try{await Ce(e.key,void 0),O.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3}),J()}catch(e){O.add({severity:`error`,detail:e,life:3e3})}}async function Ne(e){try{let t=await we(e.key,e.payload);t?.toast?O.add({severity:t.toast.type,detail:t.toast.message,life:3e3}):O.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3}),J()}catch(e){O.add({severity:`error`,detail:e,life:3e3})}}async function Pe(e){try{await Se(e),O.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3}),J()}catch(e){O.add({severity:`error`,detail:e,life:3e3})}}function $(e){return e>=1e3?`${(e/1e3).toFixed(2)} TB`:e>=1?`${e.toFixed(2)} GB`:`${(e*1e3).toFixed(0)} MB`}function Fe(e){return e>=0xe8d4a51000?`${(e/0xe8d4a51000).toFixed(2)} TB`:e>=1e9?`${(e/1e9).toFixed(2)} GB`:e>=1e6?`${(e/1e6).toFixed(0)} MB`:`${(e/1e3).toFixed(0)} KB`}function Ie(e){let t=e*24/1e3;return t>=1?`${t.toFixed(1)} GB/d`:`${(t*1e3).toFixed(0)} MB/d`}return S(be,async e=>{e&&await xe()},{immediate:!0}),(r,ee)=>{let i=k,a=ae,s=t,c=o,_=ne,v=ie,y=e,S=te,T=n;return l(),m(`div`,null,[f(`div`,A,[g(K)&&g(K).paused===!0?(l(),m(`div`,j,[x(i,{class:`shrink-0 w-5 h-5`}),f(`span`,null,p(r.$t(`views.settings.recordings.disk_critical`)),1)])):g(K)&&g(K).diskFreePercent>0&&g(K).diskFreePercent<8?(l(),m(`div`,M,[x(a,{class:`shrink-0 w-5 h-5`}),f(`span`,null,p(r.$t(`views.settings.recordings.disk_warning`)),1)])):C(``,!0),g(K)&&g(K).smallVolume?(l(),m(`div`,N,[x(a,{class:`shrink-0 w-5 h-5`}),f(`span`,null,p(r.$t(`views.settings.recordings.disk_small_volume`)),1)])):C(``,!0),f(`div`,null,[f(`span`,P,p(r.$t(`views.settings.recordings.license_title`)),1),x(s,{class:`cui-card`},{content:u(()=>[f(`div`,F,[f(`div`,I,[f(`p`,L,p(g(Te)),1),f(`p`,R,p(r.$t(`views.settings.recordings.license_description`)),1)]),x(E,{"plugin-name":G,class:`flex-shrink-0`})])]),_:1})]),f(`div`,null,[f(`span`,z,p(r.$t(`views.settings.recordings.storage_overview`)),1),x(s,{class:`cui-card`},{content:u(()=>[g(q)&&!g(K)?(l(),m(`div`,B,[x(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(K)?(l(),m(`div`,H,[f(`div`,U,[x(g(oe),{data:g(Ae),options:g(je)},null,8,[`data`,`options`])]),x(v,{value:g(ke),pt:Q,"striped-rows":``,"show-headers":!1,class:`w-full`},{default:u(()=>[x(_,{field:`label`},{body:u(({data:e})=>[f(`span`,W,p(e.label),1)]),_:1}),x(_,{field:`value`,style:{"text-align":`right`}},{body:u(({data:e})=>[f(`span`,ue,p(e.value),1)]),_:1})]),_:1},8,[`value`])])):(l(),m(`div`,V,p(r.$t(`views.settings.recordings.not_available`)),1))]),_:1})]),f(`div`,null,[f(`span`,de,p(r.$t(`views.settings.recordings.global_settings`)),1),x(s,{class:`cui-card`},{content:u(()=>[g(Z)?(l(),b(re,{key:0,"schema-form":{schema:g(Z).schema,config:g(Z).config},loading:g(X),"save-button-color":`success`,onOnAction:Me,onOnSubmit:Ne,onOnFormSubmit:Pe},null,8,[`schema-form`,`loading`])):g(q)||g(X)?(l(),m(`div`,fe,[x(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(l(),m(`div`,pe,p(r.$t(`views.settings.recordings.not_available`)),1))]),_:1})]),f(`div`,null,[f(`span`,me,p(r.$t(`views.settings.recordings.camera_storage`)),1),x(s,{class:`cui-card`},{content:u(()=>[g(q)&&!g(K)?(l(),m(`div`,he,[x(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(K)?(l(),b(v,{key:2,value:g(Oe),pt:Q,"striped-rows":``,scrollable:``},{empty:u(()=>[f(`span`,ye,p(r.$t(`views.settings.recordings.no_cameras`)),1)]),default:u(()=>[x(_,{field:`status`,header:``,style:{width:`3rem`}},{body:u(({data:e})=>[f(`div`,_e,[d(x(y,{style:w({background:e.isRecording?`green`:`gray`})},null,8,[`style`]),[[T,{value:e.isRecording?r.$t(`views.settings.recordings.status_recording`):r.$t(`views.settings.recordings.status_stopped`)}]])])]),_:1}),x(_,{field:`name`,header:r.$t(`views.settings.recordings.col_camera`)},{body:u(({data:e})=>[f(`span`,ve,p(e.name),1)]),_:1},8,[`header`]),x(_,{field:`size`,header:r.$t(`views.settings.recordings.col_size`)},{body:u(({data:e})=>[h(p(Fe(e.usedBytes)),1)]),_:1},8,[`header`]),x(_,{field:`daysCount`,header:r.$t(`views.settings.recordings.col_days`)},null,8,[`header`]),x(_,{field:`rate`,header:r.$t(`views.settings.recordings.col_rate`)},{body:u(({data:e})=>[h(p(e.bandwidthMBh>0?Ie(e.bandwidthMBh):`-`),1)]),_:1},8,[`header`]),x(_,{field:`recordingMode`,header:r.$t(`views.settings.recordings.col_mode`)},{body:u(({data:e})=>[x(S,{label:e.recordingMode,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`])]),_:1},8,[`value`])):(l(),m(`div`,ge,p(r.$t(`views.settings.recordings.not_available`)),1))]),_:1})])])])}}});export{K as default};
1
+ import{At as e,F as t,Pt as n,kr as r,mt as ee,p as i,vt as a,wt as o}from"./vendor-cameraui-Cgb5z6NJ.js";import{Zn as s,at as c}from"./api-Cc-rMHwl.js";import{Nn as l,Xn as u,Zn as d,an as f,br as p,cn as m,fn as h,gr as g,hn as _,in as v,ir as y,on as b,pn as x,qn as S,sn as C,yr as w}from"./vendor-CSg6_Jfu.js";import{T as te,x as ne}from"./vendor-primevue-CyD8V_Ft.js";import{t as re}from"./CuiSchema-Dda4lNPz.js";import{t as ie}from"./CuiDataTable-Dk8LJl5S.js";import{t as ae}from"./alert-outline-DXHNnhoP.js";import{l as T,n as oe,o as se,r as ce,s as le}from"./vendor-chart-CoQ9HTE3.js";import{t as E}from"./CuiPluginOAuthButton-Bbwly_xJ.js";var D={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function O(e,t){return l(),m(`svg`,D,[...t[0]||=[f(`path`,{fill:`currentColor`,d:`M11 15h2v2h-2zm0-8h2v6h-2zm1-5C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18a8 8 0 0 1-8-8a8 8 0 0 1 8-8a8 8 0 0 1 8 8a8 8 0 0 1-8 8`},null,-1)]])}var k=y({name:`mdi-alert-circle-outline`,render:O}),A={class:`flex flex-col w-full gap-6`},j={key:0,class:`cui-banner cui-banner-error`},M={key:1,class:`cui-banner cui-banner-warn`},N={key:2,class:`cui-banner cui-banner-warn`},P={class:`card-title`},F={class:`flex items-center justify-between gap-4`},I={class:`min-w-0`},L={class:`text-sm`},R={class:`text-xs text-muted-color mt-1`},z={class:`card-title`},B={key:0,class:`flex items-center justify-center py-8`},V={key:1,class:`text-sm text-muted text-center py-8`},H={key:2,class:`flex flex-col sm:flex-row items-center gap-6`},U={class:`shrink-0`,style:{width:`180px`,height:`180px`}},W={class:`text-color`},ue={class:`font-medium`},de={class:`card-title`},fe={key:1,class:`flex items-center justify-center py-8`},pe={key:2,class:`text-sm text-muted text-center py-8`},me={class:`card-title`},he={key:0,class:`flex items-center justify-center py-8`},ge={key:1,class:`text-sm text-muted text-center py-8`},_e={class:`flex items-center justify-center`},ve={class:`font-medium`},ye={class:`text-muted text-sm`},G=`@camera.ui/camera-ui-nvr`,K=_({__name:`SettingsRecordings`,setup(_){se.register(le,ce,T);let y=new c,{t:D}=r(),O=s(),{stats:K,isLoading:q,refresh:J}=i(),{state:Y}=ee(G),{isConnected:be,isLoading:X,config:Z,getConfig:xe,setConfig:Se,setValue:Ce,submitValue:we}=a(G),Te=v(()=>{switch(Y.value.status){case`connected`:return D(`components.oauth.connected_as`,{email:Y.value.userEmail||`—`});case`awaiting_user`:case`polling`:return D(`components.oauth.tooltip_authorizing`);case`error`:return D(`components.oauth.error_generic`);default:return D(`views.settings.recordings.license_disconnected`)}}),{data:Ee}=y.getCamerasQuery({page:1,pageSize:-1}),Q={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},De=v(()=>{let e=new Map;for(let t of Ee.value?.result??[])e.set(t._id,t.name);return e}),Oe=v(()=>K.value?.cameras?Object.entries(K.value.cameras).map(([e,t])=>({id:e,name:De.value.get(e)||e,usedBytes:t.usedBytes,segmentCount:t.segmentCount,oldestDay:t.oldestDay,newestDay:t.newestDay,daysCount:t.daysCount,bandwidthMBh:t.bandwidthMBh,recordingMode:t.recordingMode,isRecording:t.isRecording})).sort((e,t)=>t.usedBytes-e.usedBytes):[]),ke=v(()=>K.value?[{label:D(`views.settings.recordings.disk_total`),value:$(K.value.diskTotalGB)},{label:D(`views.settings.recordings.nvr_usage`),value:$(K.value.nvrUsedGB)},{label:D(`views.settings.recordings.quota`),value:K.value.nvrQuotaGB>0?$(K.value.nvrQuotaGB):D(`views.settings.recordings.unlimited`)},{label:D(`views.settings.recordings.retention`),value:K.value.retentionDays>0?D(`views.settings.recordings.days_count`,{count:K.value.retentionDays}):D(`views.settings.recordings.unlimited`)},{label:D(`views.settings.recordings.disk_free`),value:`${$(K.value.diskFreeGB)} (${K.value.diskFreePercent.toFixed(1)}%)`}]:[]),Ae=v(()=>{let e=K.value?.nvrUsedGB??0,t=K.value?.diskFreeGB??0,n=Math.max(0,(K.value?.diskUsedGB??0)-e),r=e===0&&n===0&&t===0;return{labels:[D(`views.settings.recordings.chart_nvr`),D(`views.settings.recordings.chart_other`),D(`views.settings.recordings.chart_free`)],datasets:[{data:r?[0,0,1]:[e,n,t],backgroundColor:[`#df2a4c`,`rgba(223,42,76,0.35)`,`rgba(223,42,76,0.10)`],borderWidth:0}]}}),je=v(()=>({responsive:!0,maintainAspectRatio:!0,cutout:`65%`,animation:!1,plugins:{legend:{display:!1},tooltip:{callbacks:{label:e=>`${e.label}: ${$(e.parsed)}`}}}}));async function Me(e){try{await Ce(e.key,void 0),O.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3}),J()}catch(e){O.add({severity:`error`,detail:e,life:3e3})}}async function Ne(e){try{let t=await we(e.key,e.payload);t?.toast?O.add({severity:t.toast.type,detail:t.toast.message,life:3e3}):O.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3}),J()}catch(e){O.add({severity:`error`,detail:e,life:3e3})}}async function Pe(e){try{await Se(e),O.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3}),J()}catch(e){O.add({severity:`error`,detail:e,life:3e3})}}function $(e){return e>=1e3?`${(e/1e3).toFixed(2)} TB`:e>=1?`${e.toFixed(2)} GB`:`${(e*1e3).toFixed(0)} MB`}function Fe(e){return e>=0xe8d4a51000?`${(e/0xe8d4a51000).toFixed(2)} TB`:e>=1e9?`${(e/1e9).toFixed(2)} GB`:e>=1e6?`${(e/1e6).toFixed(0)} MB`:`${(e/1e3).toFixed(0)} KB`}function Ie(e){let t=e*24/1e3;return t>=1?`${t.toFixed(1)} GB/d`:`${(t*1e3).toFixed(0)} MB/d`}return S(be,async e=>{e&&await xe()},{immediate:!0}),(r,ee)=>{let i=k,a=ae,s=t,c=o,_=ne,v=ie,y=e,S=te,T=n;return l(),m(`div`,null,[f(`div`,A,[g(K)&&g(K).paused===!0?(l(),m(`div`,j,[x(i,{class:`shrink-0 w-5 h-5`}),f(`span`,null,p(r.$t(`views.settings.recordings.disk_critical`)),1)])):g(K)&&g(K).diskFreePercent>0&&g(K).diskFreePercent<8?(l(),m(`div`,M,[x(a,{class:`shrink-0 w-5 h-5`}),f(`span`,null,p(r.$t(`views.settings.recordings.disk_warning`)),1)])):C(``,!0),g(K)&&g(K).smallVolume?(l(),m(`div`,N,[x(a,{class:`shrink-0 w-5 h-5`}),f(`span`,null,p(r.$t(`views.settings.recordings.disk_small_volume`)),1)])):C(``,!0),f(`div`,null,[f(`span`,P,p(r.$t(`views.settings.recordings.license_title`)),1),x(s,{class:`cui-card`},{content:u(()=>[f(`div`,F,[f(`div`,I,[f(`p`,L,p(g(Te)),1),f(`p`,R,p(r.$t(`views.settings.recordings.license_description`)),1)]),x(E,{"plugin-name":G,class:`flex-shrink-0`})])]),_:1})]),f(`div`,null,[f(`span`,z,p(r.$t(`views.settings.recordings.storage_overview`)),1),x(s,{class:`cui-card`},{content:u(()=>[g(q)&&!g(K)?(l(),m(`div`,B,[x(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(K)?(l(),m(`div`,H,[f(`div`,U,[x(g(oe),{data:g(Ae),options:g(je)},null,8,[`data`,`options`])]),x(v,{value:g(ke),pt:Q,"striped-rows":``,"show-headers":!1,class:`w-full`},{default:u(()=>[x(_,{field:`label`},{body:u(({data:e})=>[f(`span`,W,p(e.label),1)]),_:1}),x(_,{field:`value`,style:{"text-align":`right`}},{body:u(({data:e})=>[f(`span`,ue,p(e.value),1)]),_:1})]),_:1},8,[`value`])])):(l(),m(`div`,V,p(r.$t(`views.settings.recordings.not_available`)),1))]),_:1})]),f(`div`,null,[f(`span`,de,p(r.$t(`views.settings.recordings.global_settings`)),1),x(s,{class:`cui-card`},{content:u(()=>[g(Z)?(l(),b(re,{key:0,"schema-form":{schema:g(Z).schema,config:g(Z).config},loading:g(X),"save-button-color":`success`,onOnAction:Me,onOnSubmit:Ne,onOnFormSubmit:Pe},null,8,[`schema-form`,`loading`])):g(q)||g(X)?(l(),m(`div`,fe,[x(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(l(),m(`div`,pe,p(r.$t(`views.settings.recordings.not_available`)),1))]),_:1})]),f(`div`,null,[f(`span`,me,p(r.$t(`views.settings.recordings.camera_storage`)),1),x(s,{class:`cui-card`},{content:u(()=>[g(q)&&!g(K)?(l(),m(`div`,he,[x(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(K)?(l(),b(v,{key:2,value:g(Oe),pt:Q,"striped-rows":``,scrollable:``},{empty:u(()=>[f(`span`,ye,p(r.$t(`views.settings.recordings.no_cameras`)),1)]),default:u(()=>[x(_,{field:`status`,header:``,style:{width:`3rem`}},{body:u(({data:e})=>[f(`div`,_e,[d(x(y,{style:w({background:e.isRecording?`green`:`gray`})},null,8,[`style`]),[[T,{value:e.isRecording?r.$t(`views.settings.recordings.status_recording`):r.$t(`views.settings.recordings.status_stopped`)}]])])]),_:1}),x(_,{field:`name`,header:r.$t(`views.settings.recordings.col_camera`)},{body:u(({data:e})=>[f(`span`,ve,p(e.name),1)]),_:1},8,[`header`]),x(_,{field:`size`,header:r.$t(`views.settings.recordings.col_size`)},{body:u(({data:e})=>[h(p(Fe(e.usedBytes)),1)]),_:1},8,[`header`]),x(_,{field:`daysCount`,header:r.$t(`views.settings.recordings.col_days`)},null,8,[`header`]),x(_,{field:`rate`,header:r.$t(`views.settings.recordings.col_rate`)},{body:u(({data:e})=>[h(p(e.bandwidthMBh>0?Ie(e.bandwidthMBh):`-`),1)]),_:1},8,[`header`]),x(_,{field:`recordingMode`,header:r.$t(`views.settings.recordings.col_mode`)},{body:u(({data:e})=>[x(S,{label:e.recordingMode,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`])]),_:1},8,[`value`])):(l(),m(`div`,ge,p(r.$t(`views.settings.recordings.not_available`)),1))]),_:1})])])])}}});export{K as default};
@@ -1 +1 @@
1
- import{F as e,O as t,Ot as n,Pt as ee,kr as r,wt as te}from"./vendor-cameraui-BqkrW4Bb.js";import{On as i,Qn as a,Y as o,Yn as s,Z as ne,Zn as re,i as c,ir as l,it as ie,kn as ae,nr as u,o as d,on as f,rt as oe}from"./api-milc5VEE.js";import{Nn as p,On as se,U as m,Xn as h,Zn as ce,_r as le,an as g,b as ue,br as _,cn as v,cr as y,en as b,fn as x,gr as S,hn as C,in as w,ir as T,on as E,pn as D,q as de,qn as O,qt as k,rr as A,sn as j,v as M,wn as fe,y as N,zn as pe}from"./vendor-CSg6_Jfu.js";import{a as me}from"./useElectron-Dg8tFzam.js";import{R as P,z as F}from"./types-CoXm85So.js";import{K as he,L as ge,R as _e,a as ve,j as ye,l as be,s as xe,z as Se}from"./vendor-primevue-DYzLjOFZ.js";import{t as Ce}from"./server-Bv5NVJ0G.js";import{t as we}from"./CuiQRCode-D52Fcu61.js";var Te={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function I(e,t){return p(),v(`svg`,Te,[...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 Ee=T({name:`material-symbols-light-cloud-off`,render:I}),De={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Oe(e,t){return p(),v(`svg`,De,[...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 ke=T({name:`material-symbols-check`,render:Oe}),Ae={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function L(e,t){return p(),v(`svg`,Ae,[...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 je=T({name:`boxicons-computer-filled`,render:L}),Me={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ne(e,t){return p(),v(`svg`,Me,[...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 Pe=T({name:`mdi-earth`,render:Ne}),R={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Fe(e,t){return p(),v(`svg`,R,[...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 Ie=T({name:`mdi-lan`,render:Fe});async function Le({signal:e}){return(await l.get(`/remote`,{signal:e})).data}async function Re(e){return(await l.patch(`/remote`,e)).data}async function ze(e){return(await l.post(`/remote/pair/init`,e?{name:e}:{})).data}async function Be({name:e}={}){return(await l.post(`/remote/pair/poll`,e?{name:e}:{})).data}async function Ve(){await l.delete(`/remote/unregister`)}async function He({signal:e}){return(await l.get(`/remote/status`,{signal:e})).data}async function Ue(e){await l.patch(`/remote/name`,{name:e})}async function We({signal:e}){return(await l.get(`/remote/tunnel`,{signal:e})).data}async function Ge({signal:e}={}){return(await l.get(`/remote/connection-info`,{signal:e})).data}async function z(e){return(await l.post(`/remote/test/${e}`)).data}async function Ke({signal:e}={}){return(await l.get(`/remote/cloudflare/managed/status`,{signal:e})).data}async function qe(e){await l.post(`/remote/cloudflare/managed/connect`,{hostname:e})}async function Je(){await l.post(`/remote/cloudflare/managed/cancel`)}async function Ye(){await l.post(`/remote/cloudflare/managed/disconnect`)}async function Xe(){await l.post(`/remote/cloudflare/managed/logout`)}var Ze=class{_queryClient=de();t=a.global.t;toast=re();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 s({queryKey:[`remote`],queryFn:({signal:e})=>Le({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRemoteInfoQuery`&&e.enabled),staleTime:1e3})}patchRemoteInfoQuery(){return m({mutationFn:Re,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 s({queryKey:[`remote`,`status`],queryFn:({signal:e})=>He({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRegistrationStatusQuery`&&e.enabled),staleTime:1e3})}pairInitMutation(){return m({mutationFn:ze})}pairPollMutation(){return m({mutationFn:Be,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:Ve,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 s({queryKey:[`remote`,`tunnel`],queryFn:({signal:e})=>We({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getTunnelStatusQuery`&&e.enabled),refetchInterval:3e4,staleTime:1e4})}updateServerNameQuery(){return m({mutationFn:Ue,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 s({queryKey:[`remote`,`connection-info`],queryFn:({signal:e})=>Ge({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getConnectionInfoQuery`&&e.enabled),refetchInterval:1e4})}testRemoteModeMutation(){return m({mutationFn:z})}getCloudflareManagedStatusQuery(){return s({queryKey:[`remote`,`cloudflare`,`managed`],queryFn:({signal:e})=>Ke({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:qe,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedCancelMutation(){return m({mutationFn:Je,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedDisconnectMutation(){return m({mutationFn:Ye,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedLogoutMutation(){return m({mutationFn:Xe,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}},Qe=F,$e=P,et={class:`w-full h-full`},tt={key:0,class:`w-full h-full flex items-center justify-center`},nt={key:1,class:`flex flex-col w-full gap-6`},rt={key:0},it={class:`card-title`},at={class:`flex items-center gap-4`},ot={class:`flex flex-col field-switch-gap min-w-0`},st={class:`text-sm font-bold text-color`},ct={class:`card-title`},lt={class:`flex flex-col gap-6`},ut={class:`flex items-center gap-4`},dt={class:`flex flex-col field-switch-gap`},ft={for:`enabled`,class:`cui-label-switch`},pt={class:`flex flex-col field-gap`},mt={for:`serverName`,class:`cui-label`},ht={class:`flex items-center gap-4`},gt={class:`flex flex-col field-switch-gap`},_t={class:`text-sm`},vt={class:`ml-auto shrink-0`},yt={key:1,class:`text-sm font-bold text-amber-500`},bt={key:2,class:`text-sm font-bold`},xt={key:0,class:`flex items-center gap-4`},St={class:`flex flex-col field-switch-gap`},Ct={class:`text-sm`},wt={class:`ml-auto shrink-0`},Tt={key:`pairing`,class:`cui-toggle-switch flex flex-col gap-4`},Et={class:`cui-pair-layout`},Dt={class:`cui-pair-qr`},Ot={class:`flex flex-col gap-4 flex-1 min-w-0`},kt={class:`flex flex-col field-gap`},At={class:`cui-label`},jt={class:`flex flex-col field-gap`},Mt={class:`cui-label`},Nt={class:`flex items-center gap-3`},Pt={class:`text-sm`},Ft={class:`flex items-center gap-4`},It={class:`flex`},Lt={class:`card-title`},Rt={class:`flex flex-col gap-6`},zt={class:`flex items-center gap-4`},Bt={class:`flex flex-col field-switch-gap`},Vt={for:`directEnabled`,class:`cui-label-switch`},Ht={class:`flex flex-col field-gap`},Ut={class:`cui-label`},Wt={for:`directMode`,class:`cui-label`},Gt={key:0,class:`cui-toggle-switch flex flex-col gap-4`},Kt={class:`flex flex-col field-gap`},qt={for:`cloudflareVariant`,class:`cui-label`},Jt={key:0,class:`flex items-center gap-3`},Yt={class:`flex flex-col field-gap`},Xt={for:`cloudflareHostname`,class:`cui-label`},Zt={class:`flex flex-col field-gap`},Qt={for:`cloudflareToken`,class:`cui-label`},$t={class:`flex items-center gap-3`},en={class:`flex flex-col field-gap`},tn={for:`cloudflareHostnameManaged`,class:`cui-label`},nn={class:`flex items-center gap-3`},rn={key:0,class:`cf-login-setup`},an={class:`cf-login-qr`},on={class:`flex flex-col gap-4 flex-1 min-w-0`},sn={class:`flex flex-col field-gap`},cn={class:`cui-label`},ln={class:`flex items-center gap-3`},un={class:`text-sm`},dn={key:1,class:`flex items-center gap-3`},fn={class:`text-sm`},pn={key:2,class:`flex items-center gap-3`},mn={class:`text-sm`},hn={class:`flex flex-col field-gap`},gn={class:`cui-label`},_n={key:0,class:`flex flex-col field-gap`},vn={class:`cui-label`},yn={class:`flex items-center gap-3`},bn={key:1,class:`cui-toggle-switch flex flex-col gap-4`},xn={for:`customDomain.url`,class:`cui-label`},Sn={class:`flex items-center gap-3`},Cn={class:`card-title`},wn={class:`flex flex-col gap-6`},Tn={class:`text-sm`},En={for:`serverAddresses`,class:`cui-label`},Dn=f(C({__name:`SettingsRemote`,setup(a){let s=new Ce,l=new Ze,f=me(),m=o(),C=re(),{t:T}=r(),{data:de,isBusy:P}=s.getServerInfoQuery(),{data:F,isBusy:Te}=l.getRemoteInfoQuery(),{data:I,isBusy:De}=l.getRegistrationStatusQuery(),{data:Oe,isLoading:Ae}=l.getTunnelStatusQuery(),{data:L}=l.getConnectionInfoQuery(),{mutateAsync:Me,isPending:Ne}=s.patchSystemInfoQuery(),{mutateAsync:R,isPending:Fe}=l.patchRemoteInfoQuery(),{mutateAsync:Le,isPending:Re}=l.pairInitMutation(),{mutateAsync:ze}=l.pairPollMutation(),{mutateAsync:Be,isPending:Ve}=l.unregisterServerQuery(),{mutateAsync:He,isPending:Ue}=l.updateServerNameQuery(),{mutateAsync:We,isPending:Ge}=l.testRemoteModeMutation(),{data:z}=l.getCloudflareManagedStatusQuery(),{mutateAsync:Ke,isPending:qe}=l.cloudflareManagedConnectMutation(),{mutateAsync:Je,isPending:Ye}=l.cloudflareManagedCancelMutation(),{mutateAsync:Xe,isPending:Dn}=l.cloudflareManagedDisconnectMutation(),{mutateAsync:On,isPending:kn}=l.cloudflareManagedLogoutMutation(),B=y(),V=y(),H=y(``),U=y(``),W=y(`quick`),G=y(``),K=y(``),An=y(!1),q=y(null),J=y(``),jn=y(null),Mn=y(2),Nn=y(``),Y=null,Pn=null,X=w(()=>Ne.value||Fe.value||P.value||Te.value||De.value||Ve.value),Fn=w(()=>!!(V.value?.enabled||V.value?.directEnabled)),In=w(()=>F.value?.directOverride??{active:!1,fallback:!1}),Z=w(()=>I.value?.isRegistered??!1),Ln=w(()=>I.value?.needsReauth??!1),Rn=w(()=>!X.value),zn=w(()=>{if(!Rn.value)return!1;let e=H.value.trim();return!e||e.length>100?!1:e!==(I.value?.serverName??``)}),Bn=w(()=>{if(!V.value)return!1;if(V.value.directMode===`customDomain`){let e=U.value.trim();if(!e)return!1;try{new URL(e)}catch{return!1}return e!==(F.value?.remoteSettings.customDomain.url??``)}if(V.value.directMode===`cloudflare`){let e=F.value?.remoteSettings.cloudflare,t=F.value?.remoteSettings.directMode!==`cloudflare`,n=W.value;if(n===`quick`)return t||e?.mode!==`quick`;let ee=G.value.trim();if(!ee||!/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(ee))return!1;if(n===`token`){let n=K.value.trim();if(!n&&!An.value)return!1;let r=n.length>0;return t||e?.mode!==`token`||e?.hostname!==ee||r}return n===`managed`?t||e?.mode!==`managed`||e?.hostname!==ee:!1}return V.value.directMode!==F.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===V.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===W.value)?.description??``),Gn=w(()=>{if(W.value===`quick`)return!0;let e=F.value?.remoteSettings.cloudflare;return e?.mode===W.value&&!!e?.hostname}),Q=w(()=>z.value?.state??`idle`),Kn=w(()=>{if(Q.value!==`idle`)return!1;let e=G.value.trim();return!!e&&/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(e)}),qn=w(()=>{let e=L.value?.currentConnection.type??`lan`;return T(`views.settings.connection_type.${e}`)}),Jn=w(()=>{let e=L.value?.currentConnection.type;return e===`cloud`?i:e===`external`?Pe:e===`local`?je:Ie}),Yn=w(()=>{let e=L.value?.currentConnection.type;return e===`cloud`?`text-warning`:e===`external`?`text-info`:e===`local`?`text-primary`:`text-success`});async function Xn(){let e=H.value.trim();if(e)try{await He(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 Be()}catch{}}})}function Qn(){Y&&=(clearTimeout(Y),null),Pn&&=(clearInterval(Pn),null)}function $(){Qn(),q.value=null,J.value=``,jn.value=null,Nn.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(){Pn&&clearInterval(Pn);let e=()=>{if(!jn.value)return;let e=jn.value-Date.now();if(e<=0){$(),C.add({severity:`warn`,detail:T(`components.toast.pair_expired`),life:3e3});return}Nn.value=$n(e)};e(),Pn=setInterval(e,1e3)}function tr(){Y&&clearTimeout(Y),Y=setTimeout(nr,Mn.value*1e3)}async function nr(){if(!q.value)return;let e=q.value;try{let t=await ze({name:H.value.trim()||void 0});if(!q.value||q.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`&&(Mn.value=Math.min(Mn.value+2,10)),tr()}catch(t){if(!q.value||q.value!==e)return;f.error(`pair poll failed:`,t),tr()}}async function rr(){$();try{let e=H.value.trim();if(e&&e!==(I.value?.serverName??``))try{await He(e)}catch{}let t=await Le(e||void 0);q.value=t.userCode,J.value=t.verificationUriComplete,jn.value=Date.now()+t.expiresIn*1e3,Mn.value=Math.max(1,t.pollInterval),er(),tr()}catch(e){C.add({severity:`error`,detail:e,life:3e3})}}function ir(){$()}async function ar(){if(q.value)try{await c(q.value)}catch{}}async function or(){if(J.value)try{await c(J.value)}catch{}}function sr(){J.value&&window.open(J.value,`_blank`,`noopener`)}function cr(e){let t=window.location.host===u||!1,n;n=e?`components.dialog.message.confirm_enable_cloud`:t?`components.dialog.message.confirm_disable_cloud_remote`:`components.dialog.message.confirm_disable_cloud_local`,m.openTextDialog({data:{title:T(`components.dialog.title.confirm`),contentText:T(n),confirmText:T(e?`components.form.button.enable`:`components.form.button.disable`),loading:X,confirmButtonProps:e?void 0:{severity:`danger`}},onConfirm:async()=>{try{await R(e?{enabled:!0}:{enabled:!1})}catch{V.value&&(V.value.enabled=!e)}},onCancel:()=>{V.value&&(V.value.enabled=!e)}})}function lr(e){R({directEnabled:e}).catch(()=>{V.value&&(V.value.directEnabled=!e)})}function ur(e){V.value&&(V.value.directMode=e)}function dr(e){W.value=e}async function fr(){let e=G.value.trim();if(e)try{await R({directMode:`cloudflare`,cloudflare:{mode:`managed`,hostname:e}}),await Ke(e)}catch{}}async function pr(){try{await Je()}catch{}}async function mr(){try{await Xe()}catch{}}async function hr(){try{await On()}catch{}}async function gr(e){try{await c(e)}catch{}}function _r(e){window.open(e,`_blank`,`noopener`)}async function vr(e){try{let t=await We(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:U.value.trim()};else if(e.directMode===`cloudflare`){let e=W.value;if(e===`quick`)t.cloudflare={mode:`quick`,hostname:null,token:null};else if(e===`token`){let e=K.value.trim();t.cloudflare={mode:`token`,hostname:G.value.trim(),...e?{token:e}:{}}}else e===`managed`&&(t.cloudflare={mode:`managed`,hostname:G.value.trim(),token:null})}try{await R(t)}catch{}}async function br(e){try{await Me(e)}catch{}}return O(()=>I.value?.serverName,e=>{e&&(H.value=e)},{immediate:!0}),O(Z,e=>{e&&q.value&&$()}),O(de,e=>{if(e){let t=d(e);B.value={...t,serverAddresses:(t.serverAddresses||[]).filter(Boolean)}}},{deep:!0,immediate:!0}),O(F,e=>{if(e){let t=d(e);V.value={...t.remoteSettings},U.value=t.remoteSettings.customDomain.url??``;let n=t.remoteSettings.cloudflare;W.value=n?.mode??`quick`,G.value=n?.hostname??``,K.value=``,An.value=t.cloudflareTokenSet??!1}},{deep:!0,immediate:!0}),se(()=>{Qn()}),(r,i)=>{let a=te,o=Se,s=e,re=he,c=t,l=ke,u=n,d=ge,f=_e,se=ve,m=we,y=ie,C=ae,w=Ee,T=ye,O=xe,me=be,P=ee;return p(),v(`div`,et,[!S(B)||!S(V)?(p(),v(`div`,tt,[D(a,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(p(),v(`div`,nt,[S(L)?(p(),v(`div`,rt,[g(`span`,it,_(r.$t(`views.settings.connection_status`)),1),D(s,{class:`cui-card`},{content:h(()=>[g(`div`,at,[(p(),E(pe(S(Jn)),{class:le([`shrink-0 w-6 h-6`,S(Yn)])},null,8,[`class`])),g(`div`,ot,[g(`span`,st,_(S(qn)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:h(()=>[x(_(S(L).currentConnection.address),1)]),_:1})])])]),_:1})])):j(``,!0),D(S(ue),{ref:`remoteFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":S(Qe),onSubmit:i[18]||=e=>yr(e)},{default:h(()=>[g(`div`,null,[g(`span`,ct,_(r.$t(`views.settings.cloud`)),1),D(s,{class:`cui-card`},{content:h(()=>[g(`div`,lt,[D(S(N),{"model-value":S(V).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`,ut,[g(`div`,dt,[g(`label`,ft,_(r.$t(`components.form.label.enabled`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(r.$t(`components.form.hint.cloud_access_enabled_info`)),1)]),_:1}),D(k,{name:`fade`},{default:h(()=>[D(S(M),{name:`enabled`,class:`cui-input-switch-error`})]),_:1})]),D(re,fe({"model-value":S(V).enabled},e,{invalid:t.length>0,loading:S(X),class:`ml-auto shrink-0`,onValueChange:i[0]||=e=>S(V).enabled=e,"onUpdate:modelValue":i[1]||=e=>cr(e)}),null,16,[`model-value`,`invalid`,`loading`])])]),_:1},8,[`model-value`]),g(`div`,pt,[g(`label`,mt,_(r.$t(`views.settings.server_name_label`)),1),D(f,null,{default:h(()=>[D(c,{id:`serverName`,modelValue:S(H),"onUpdate:modelValue":i[2]||=e=>A(H)?H.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(Ue),disabled:!S(zn),type:`button`,onClick:Xn},{icon:h(()=>[D(l)]),_:1},8,[`loading`,`disabled`])),[[P,{value:r.$t(`components.form.button.save`)}]])]),_:1})]),_:1}),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(r.$t(`views.settings.server_name_info`)),1)]),_:1})]),g(`div`,ht,[g(`div`,gt,[g(`span`,_t,_(r.$t(`views.settings.status`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(r.$t(`views.settings.status_info`)),1)]),_:1})]),g(`div`,vt,[S(X)?(p(),E(a,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):S(Ln)?(p(),v(`span`,yt,_(r.$t(`views.settings.needs_reauth`)),1)):(p(),v(`span`,bt,_(S(Z)?r.$t(`views.settings.registered`):r.$t(`views.settings.not_registered`)),1))])]),S(Z)?(p(),v(`div`,xt,[g(`div`,St,[g(`span`,Ct,_(r.$t(`views.settings.tunnel_status`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(r.$t(`views.settings.tunnel_status_info`)),1)]),_:1})]),g(`div`,wt,[S(Ae)?(p(),E(a,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(p(),E(se,{key:1,severity:S(Oe)?.connected?`success`:`secondary`,value:S(Oe)?.connected?r.$t(`views.settings.tunnel_connected`):r.$t(`views.settings.tunnel_disconnected`)},null,8,[`severity`,`value`]))])])):j(``,!0),D(k,{name:`fade`,mode:`out-in`},{default:h(()=>[S(q)?(p(),v(`div`,Tt,[D(o,{severity:`error`,variant:`simple`,size:`small`,class:`text-primary`},{default:h(()=>[x(_(r.$t(`views.settings.pair_instructions`)),1)]),_:1}),g(`div`,Et,[g(`div`,Dt,[D(m,{value:S(J),size:180,"logo-size":36},null,8,[`value`])]),g(`div`,Ot,[g(`div`,kt,[g(`label`,At,_(r.$t(`views.settings.pair_code`)),1),D(f,null,{default:h(()=>[D(c,{"model-value":S(q),readonly:``,class:`font-mono text-lg text-center tracking-widest`},null,8,[`model-value`]),D(d,null,{default:h(()=>[D(y,{"action-text":r.$t(`components.form.tooltip.copied`),icon:S(oe),"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(_(r.$t(`views.settings.pair_code_hint`)),1)]),_:1})]),g(`div`,jt,[g(`label`,Mt,_(r.$t(`views.settings.pair_url`)),1),D(f,null,{default:h(()=>[D(c,{"model-value":S(J),readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),D(d,null,{default:h(()=>[D(y,{"action-text":r.$t(`components.form.tooltip.copied`),icon:S(oe),"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(ne))]),_:1})),[[P,{value:r.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),g(`div`,Nt,[D(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),g(`span`,Pt,_(r.$t(`views.settings.pair_waiting`,{remaining:S(Nn)})),1),D(u,{type:`button`,severity:`secondary`,class:`cui-button-small ml-auto`,label:r.$t(`components.form.button.cancel`),onClick:ir},null,8,[`label`])])])])])):j(``,!0)]),_:1}),g(`div`,Ft,[g(`div`,It,[ce((p(),E(u,{severity:`secondary`,rounded:``,class:`cui-icon-lg text-color`,disabled:!S(Z),onClick:i[3]||=e=>r.$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`])),[[P,{value:S(Z)?r.$t(`views.settings.registered`):r.$t(`views.settings.not_registered`)}]])]),i[21]||=g(`div`,{class:`ml-auto`},null,-1),!S(Z)&&!S(q)?(p(),E(u,{key:0,loading:S(Re),class:`cui-button-medium`,label:r.$t(`components.form.button.register_server`),onClick:rr},null,8,[`loading`,`label`])):j(``,!0),S(Ln)&&!S(q)?(p(),E(u,{key:1,loading:S(Re),severity:`warn`,class:`cui-button-medium`,label:r.$t(`components.form.button.reconnect_server`),onClick:rr},null,8,[`loading`,`label`])):j(``,!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:r.$t(`components.form.button.unregister_server`),onClick:Zn},null,8,[`loading`,`severity`,`text`,`label`])):j(``,!0)])])]),_:1})]),g(`div`,null,[g(`span`,Lt,_(r.$t(`views.settings.direct_connection`)),1),D(s,{class:`cui-card`},{content:h(()=>[g(`div`,Rt,[D(S(N),{"model-value":S(V).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`,zt,[g(`div`,Bt,[g(`label`,Vt,_(r.$t(`components.form.label.enabled`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(r.$t(`views.settings.direct_connection_info`)),1)]),_:1}),D(k,{name:`fade`},{default:h(()=>[D(S(M),{name:`directEnabled`,class:`cui-input-switch-error`})]),_:1})]),D(re,fe({"model-value":S(Fn)},e,{invalid:t.length>0,loading:S(X),disabled:S(V).enabled,class:`ml-auto shrink-0`,onValueChange:i[4]||=e=>S(V).directEnabled=e,"onUpdate:modelValue":i[5]||=e=>lr(e)}),null,16,[`model-value`,`invalid`,`loading`,`disabled`])]),D(k,{name:`fade`},{default:h(()=>[S(In).active?(p(),E(o,{key:0,variant:`simple`,size:`small`,class:`cui-input-switch-hint text-primary`},{default:h(()=>[x(_(S(In).fallback?r.$t(`views.settings.direct_override_fallback`):r.$t(`views.settings.direct_override_active`)),1)]),_:1})):j(``,!0)]),_:1})]),_:1},8,[`model-value`]),S(Fn)?(p(),v(b,{key:0},[g(`div`,Ht,[g(`label`,Ut,_(r.$t(`views.settings.external_url`)),1),D(c,{readonly:``,type:`text`,value:S(L)?.externalUrl??r.$t(`components.form.label.disconnected`)},null,8,[`value`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(r.$t(`views.settings.external_url_info`)),1)]),_:1})]),D(S(N),{"model-value":S(V).directMode,name:`directMode`,as:`div`,class:`flex flex-col field-gap`},{default:h(({errors:e})=>[g(`label`,Wt,_(r.$t(`views.settings.connection_method`)),1),D(T,{"model-value":S(V).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(k,{name:`fade`},{default:h(()=>[D(S(M),{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(V).directMode===`cloudflare`?(p(),v(`div`,Gt,[g(`div`,Kt,[g(`label`,qt,_(r.$t(`components.form.label.cloudflare_variant`)),1),D(T,{"model-value":S(W),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(W)===`quick`?(p(),v(`div`,Jt,[D(u,{type:`button`,severity:`secondary`,loading:S(Ge),class:`cui-button-small`,label:r.$t(`components.form.button.test_connection`),onClick:i[8]||=e=>vr(`cloudflare`)},null,8,[`loading`,`label`])])):S(W)===`token`?(p(),v(b,{key:1},[g(`div`,Yt,[g(`label`,Xt,_(r.$t(`components.form.label.hostname`)),1),D(c,{id:`cloudflareHostname`,modelValue:S(G),"onUpdate:modelValue":i[9]||=e=>A(G)?G.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(_(r.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),g(`div`,Zt,[g(`label`,Qt,_(r.$t(`components.form.label.tunnel_token`)),1),D(O,{id:`cloudflareToken`,modelValue:S(K),"onUpdate:modelValue":i[10]||=e=>A(K)?K.value=e:null,modelModifiers:{trim:!0},loading:S(X),feedback:!1,"toggle-mask":``,fluid:``,placeholder:S(An)?`••••••••••••`:`eyJ...`},null,8,[`modelValue`,`loading`,`placeholder`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(S(An)?r.$t(`components.form.hint.cloudflare_token_already_set`):r.$t(`components.form.hint.cloudflare_token_info`)),1)]),_:1})]),g(`div`,$t,[D(u,{type:`button`,severity:`secondary`,loading:S(Ge),disabled:!S(Gn),class:`cui-button-small`,label:r.$t(`components.form.button.test_connection`),onClick:i[11]||=e=>vr(`cloudflare`)},null,8,[`loading`,`disabled`,`label`])])],64)):S(W)===`managed`?(p(),E(k,{key:2,name:`fade`,mode:`out-in`},{default:h(()=>[(p(),v(`div`,{key:S(Q),class:`flex flex-col gap-4`},[S(Q)===`idle`?(p(),v(b,{key:0},[g(`div`,en,[g(`label`,tn,_(r.$t(`components.form.label.hostname`)),1),D(c,{id:`cloudflareHostnameManaged`,modelValue:S(G),"onUpdate:modelValue":i[12]||=e=>A(G)?G.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(_(r.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),S(z)?.lastError?(p(),E(o,{key:0,severity:`error`,variant:`simple`,size:`small`},{default:h(()=>[x(_(S(z).lastError),1)]),_:1})):j(``,!0),g(`div`,nn,[D(u,{type:`button`,loading:S(qe),disabled:!S(Kn),class:`cui-button-medium`,label:r.$t(`components.form.button.connect_cloudflare`),onClick:fr},null,8,[`loading`,`disabled`,`label`])])],64)):S(Q)===`awaiting_login`?(p(),v(b,{key:1},[S(z)?.loginUrl?(p(),v(`div`,rn,[g(`div`,an,[D(m,{value:S(z).loginUrl,size:160,"logo-size":32},null,8,[`value`])]),g(`div`,on,[D(o,{variant:`simple`,size:`small`,class:`text-primary`},{default:h(()=>[x(_(r.$t(`components.form.hint.cloudflare_managed_awaiting_login`,{hostname:S(G)})),1)]),_:1}),g(`div`,sn,[g(`label`,cn,_(r.$t(`components.form.label.cloudflare_url`)),1),D(f,null,{default:h(()=>[D(c,{"model-value":S(z).loginUrl,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),D(d,null,{default:h(()=>[D(y,{"action-text":r.$t(`components.form.tooltip.copied`),icon:S(oe),"button-props":{severity:`secondary`,text:!0},onAction:i[13]||=e=>gr(S(z).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(z).loginUrl)},{icon:h(()=>[D(S(ne))]),_:1})),[[P,{value:r.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),g(`div`,ln,[D(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),g(`span`,un,_(r.$t(`views.settings.cloudflare_login_waiting`)),1),D(u,{type:`button`,severity:`secondary`,loading:S(Ye),class:`cui-button-small ml-auto`,label:r.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])])])])):(p(),v(`div`,dn,[D(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),g(`span`,fn,_(r.$t(`views.settings.cloudflare_login_waiting`)),1),D(u,{type:`button`,severity:`secondary`,loading:S(Ye),class:`cui-button-small ml-auto`,label:r.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])]))],64)):S(Q)===`creating_tunnel`||S(Q)===`setting_dns`?(p(),v(`div`,pn,[D(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),g(`span`,mn,_(S(Q)===`creating_tunnel`?r.$t(`components.form.hint.cloudflare_managed_creating_tunnel`):r.$t(`components.form.hint.cloudflare_managed_setting_dns`,{hostname:S(G)})),1),D(u,{type:`button`,severity:`secondary`,loading:S(Ye),class:`cui-button-small ml-auto`,label:r.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])])):S(Q)===`running`?(p(),v(b,{key:3},[g(`div`,hn,[g(`label`,gn,_(r.$t(`components.form.label.hostname`)),1),D(c,{readonly:``,value:`https://${S(z)?.hostname??``}`,type:`text`},null,8,[`value`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(r.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),S(z)?.tunnelId?(p(),v(`div`,_n,[g(`label`,vn,_(r.$t(`components.form.label.tunnel_id`)),1),D(c,{readonly:``,value:S(z).tunnelId,type:`text`},null,8,[`value`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(r.$t(`components.form.hint.cloudflare_tunnel_id_info`)),1)]),_:1})])):j(``,!0),g(`div`,yn,[D(u,{type:`button`,severity:`secondary`,loading:S(Ge),class:`cui-button-small`,label:r.$t(`components.form.button.test_connection`),onClick:i[15]||=e=>vr(`cloudflare`)},null,8,[`loading`,`label`]),D(u,{type:`button`,severity:`secondary`,loading:S(Dn),class:`cui-button-small ml-auto`,label:r.$t(`components.form.button.disconnect`),onClick:mr},null,8,[`loading`,`label`]),D(u,{type:`button`,severity:`danger`,loading:S(kn),class:`cui-button-small`,label:r.$t(`components.form.button.logout`),onClick:hr},null,8,[`loading`,`label`])])],64)):j(``,!0)]))]),_:1})):j(``,!0)])):S(V).directMode===`customDomain`?(p(),v(`div`,bn,[D(S(N),{modelValue:S(U),"onUpdate:modelValue":i[16]||=e=>A(U)?U.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`,xn,_(r.$t(`components.form.label.url`)),1),D(c,fe(e,{invalid:t.length>0,loading:S(X),type:`text`,placeholder:`https://my.example.com`}),null,16,[`invalid`,`loading`]),D(k,{name:`fade`},{default:h(()=>[D(S(M),{name:`customDomain.url`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`loading`]),g(`div`,Sn,[D(u,{type:`button`,severity:`secondary`,loading:S(Ge),disabled:!S(U),class:`cui-button-small`,label:r.$t(`components.form.button.test_connection`),onClick:i[17]||=e=>vr(`customDomain`)},null,8,[`loading`,`disabled`,`label`])])])):j(``,!0),D(u,{type:`submit`,loading:S(X),disabled:!S(Bn),class:`cui-button-medium ml-auto`,label:r.$t(`components.form.button.save`)},null,8,[`loading`,`disabled`,`label`])],64)):j(``,!0)])]),_:1})])]),_:1},8,[`validation-schema`]),D(S(ue),{ref:`serverFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":S($e),onSubmit:i[20]||=e=>br(e)},{default:h(()=>[g(`div`,null,[g(`span`,Cn,_(r.$t(`views.settings.network`)),1),D(s,{class:`cui-card`},{content:h(()=>[g(`div`,wn,[g(`span`,Tn,_(r.$t(`views.settings.network_info`)),1),D(S(N),{"model-value":S(B).serverAddresses,name:`serverAddresses`,as:`div`,class:`flex flex-col field-gap`},{default:h(({field:e,errors:t})=>[g(`label`,En,_(r.$t(`components.form.label.server_addresses`)),1),D(f,null,{default:h(()=>[D(me,fe(e,{"model-value":S(B).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(B).serverAddresses=e}),null,16,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),D(k,{name:`fade`},{default:h(()=>[D(S(M),{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:r.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])]),_:1})])]),_:1},8,[`validation-schema`])]))])}}}),[[`__scopeId`,`data-v-788da547`]]);export{Dn as default};
1
+ import{F as e,O as t,Ot as n,Pt as ee,kr as r,wt as te}from"./vendor-cameraui-Cgb5z6NJ.js";import{On as i,Qn as a,Y as o,Yn as s,Z as ne,Zn as re,i as c,ir as l,it as ie,kn as ae,nr as u,o as d,on as f,rt as oe}from"./api-Cc-rMHwl.js";import{Nn as p,On as se,U as m,Xn as h,Zn as ce,_r as le,an as g,b as ue,br as _,cn as v,cr as y,en as b,fn as x,gr as S,hn as C,in as w,ir as T,on as E,pn as D,q as de,qn as O,qt as k,rr as A,sn as j,v as M,wn as fe,y as N,zn as pe}from"./vendor-CSg6_Jfu.js";import{a as me}from"./useElectron-KnqvZz0q.js";import{R as P,z as F}from"./types-C1VwkReu.js";import{K as he,L as ge,R as _e,a as ve,j as ye,l as be,s as xe,z as Se}from"./vendor-primevue-CyD8V_Ft.js";import{t as Ce}from"./server-DbpDC3pc.js";import{t as we}from"./CuiQRCode-DKHFwuhr.js";var Te={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function I(e,t){return p(),v(`svg`,Te,[...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 Ee=T({name:`material-symbols-light-cloud-off`,render:I}),De={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Oe(e,t){return p(),v(`svg`,De,[...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 ke=T({name:`material-symbols-check`,render:Oe}),Ae={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function L(e,t){return p(),v(`svg`,Ae,[...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 je=T({name:`boxicons-computer-filled`,render:L}),Me={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ne(e,t){return p(),v(`svg`,Me,[...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 Pe=T({name:`mdi-earth`,render:Ne}),R={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Fe(e,t){return p(),v(`svg`,R,[...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 Ie=T({name:`mdi-lan`,render:Fe});async function Le({signal:e}){return(await l.get(`/remote`,{signal:e})).data}async function Re(e){return(await l.patch(`/remote`,e)).data}async function ze(e){return(await l.post(`/remote/pair/init`,e?{name:e}:{})).data}async function Be({name:e}={}){return(await l.post(`/remote/pair/poll`,e?{name:e}:{})).data}async function Ve(){await l.delete(`/remote/unregister`)}async function He({signal:e}){return(await l.get(`/remote/status`,{signal:e})).data}async function Ue(e){await l.patch(`/remote/name`,{name:e})}async function We({signal:e}){return(await l.get(`/remote/tunnel`,{signal:e})).data}async function Ge({signal:e}={}){return(await l.get(`/remote/connection-info`,{signal:e})).data}async function z(e){return(await l.post(`/remote/test/${e}`)).data}async function Ke({signal:e}={}){return(await l.get(`/remote/cloudflare/managed/status`,{signal:e})).data}async function qe(e){await l.post(`/remote/cloudflare/managed/connect`,{hostname:e})}async function Je(){await l.post(`/remote/cloudflare/managed/cancel`)}async function Ye(){await l.post(`/remote/cloudflare/managed/disconnect`)}async function Xe(){await l.post(`/remote/cloudflare/managed/logout`)}var Ze=class{_queryClient=de();t=a.global.t;toast=re();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 s({queryKey:[`remote`],queryFn:({signal:e})=>Le({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRemoteInfoQuery`&&e.enabled),staleTime:1e3})}patchRemoteInfoQuery(){return m({mutationFn:Re,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 s({queryKey:[`remote`,`status`],queryFn:({signal:e})=>He({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRegistrationStatusQuery`&&e.enabled),staleTime:1e3})}pairInitMutation(){return m({mutationFn:ze})}pairPollMutation(){return m({mutationFn:Be,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:Ve,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 s({queryKey:[`remote`,`tunnel`],queryFn:({signal:e})=>We({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getTunnelStatusQuery`&&e.enabled),refetchInterval:3e4,staleTime:1e4})}updateServerNameQuery(){return m({mutationFn:Ue,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 s({queryKey:[`remote`,`connection-info`],queryFn:({signal:e})=>Ge({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getConnectionInfoQuery`&&e.enabled),refetchInterval:1e4})}testRemoteModeMutation(){return m({mutationFn:z})}getCloudflareManagedStatusQuery(){return s({queryKey:[`remote`,`cloudflare`,`managed`],queryFn:({signal:e})=>Ke({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:qe,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedCancelMutation(){return m({mutationFn:Je,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedDisconnectMutation(){return m({mutationFn:Ye,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedLogoutMutation(){return m({mutationFn:Xe,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}},Qe=F,$e=P,et={class:`w-full h-full`},tt={key:0,class:`w-full h-full flex items-center justify-center`},nt={key:1,class:`flex flex-col w-full gap-6`},rt={key:0},it={class:`card-title`},at={class:`flex items-center gap-4`},ot={class:`flex flex-col field-switch-gap min-w-0`},st={class:`text-sm font-bold text-color`},ct={class:`card-title`},lt={class:`flex flex-col gap-6`},ut={class:`flex items-center gap-4`},dt={class:`flex flex-col field-switch-gap`},ft={for:`enabled`,class:`cui-label-switch`},pt={class:`flex flex-col field-gap`},mt={for:`serverName`,class:`cui-label`},ht={class:`flex items-center gap-4`},gt={class:`flex flex-col field-switch-gap`},_t={class:`text-sm`},vt={class:`ml-auto shrink-0`},yt={key:1,class:`text-sm font-bold text-amber-500`},bt={key:2,class:`text-sm font-bold`},xt={key:0,class:`flex items-center gap-4`},St={class:`flex flex-col field-switch-gap`},Ct={class:`text-sm`},wt={class:`ml-auto shrink-0`},Tt={key:`pairing`,class:`cui-toggle-switch flex flex-col gap-4`},Et={class:`cui-pair-layout`},Dt={class:`cui-pair-qr`},Ot={class:`flex flex-col gap-4 flex-1 min-w-0`},kt={class:`flex flex-col field-gap`},At={class:`cui-label`},jt={class:`flex flex-col field-gap`},Mt={class:`cui-label`},Nt={class:`flex items-center gap-3`},Pt={class:`text-sm`},Ft={class:`flex items-center gap-4`},It={class:`flex`},Lt={class:`card-title`},Rt={class:`flex flex-col gap-6`},zt={class:`flex items-center gap-4`},Bt={class:`flex flex-col field-switch-gap`},Vt={for:`directEnabled`,class:`cui-label-switch`},Ht={class:`flex flex-col field-gap`},Ut={class:`cui-label`},Wt={for:`directMode`,class:`cui-label`},Gt={key:0,class:`cui-toggle-switch flex flex-col gap-4`},Kt={class:`flex flex-col field-gap`},qt={for:`cloudflareVariant`,class:`cui-label`},Jt={key:0,class:`flex items-center gap-3`},Yt={class:`flex flex-col field-gap`},Xt={for:`cloudflareHostname`,class:`cui-label`},Zt={class:`flex flex-col field-gap`},Qt={for:`cloudflareToken`,class:`cui-label`},$t={class:`flex items-center gap-3`},en={class:`flex flex-col field-gap`},tn={for:`cloudflareHostnameManaged`,class:`cui-label`},nn={class:`flex items-center gap-3`},rn={key:0,class:`cf-login-setup`},an={class:`cf-login-qr`},on={class:`flex flex-col gap-4 flex-1 min-w-0`},sn={class:`flex flex-col field-gap`},cn={class:`cui-label`},ln={class:`flex items-center gap-3`},un={class:`text-sm`},dn={key:1,class:`flex items-center gap-3`},fn={class:`text-sm`},pn={key:2,class:`flex items-center gap-3`},mn={class:`text-sm`},hn={class:`flex flex-col field-gap`},gn={class:`cui-label`},_n={key:0,class:`flex flex-col field-gap`},vn={class:`cui-label`},yn={class:`flex items-center gap-3`},bn={key:1,class:`cui-toggle-switch flex flex-col gap-4`},xn={for:`customDomain.url`,class:`cui-label`},Sn={class:`flex items-center gap-3`},Cn={class:`card-title`},wn={class:`flex flex-col gap-6`},Tn={class:`text-sm`},En={for:`serverAddresses`,class:`cui-label`},Dn=f(C({__name:`SettingsRemote`,setup(a){let s=new Ce,l=new Ze,f=me(),m=o(),C=re(),{t:T}=r(),{data:de,isBusy:P}=s.getServerInfoQuery(),{data:F,isBusy:Te}=l.getRemoteInfoQuery(),{data:I,isBusy:De}=l.getRegistrationStatusQuery(),{data:Oe,isLoading:Ae}=l.getTunnelStatusQuery(),{data:L}=l.getConnectionInfoQuery(),{mutateAsync:Me,isPending:Ne}=s.patchSystemInfoQuery(),{mutateAsync:R,isPending:Fe}=l.patchRemoteInfoQuery(),{mutateAsync:Le,isPending:Re}=l.pairInitMutation(),{mutateAsync:ze}=l.pairPollMutation(),{mutateAsync:Be,isPending:Ve}=l.unregisterServerQuery(),{mutateAsync:He,isPending:Ue}=l.updateServerNameQuery(),{mutateAsync:We,isPending:Ge}=l.testRemoteModeMutation(),{data:z}=l.getCloudflareManagedStatusQuery(),{mutateAsync:Ke,isPending:qe}=l.cloudflareManagedConnectMutation(),{mutateAsync:Je,isPending:Ye}=l.cloudflareManagedCancelMutation(),{mutateAsync:Xe,isPending:Dn}=l.cloudflareManagedDisconnectMutation(),{mutateAsync:On,isPending:kn}=l.cloudflareManagedLogoutMutation(),B=y(),V=y(),H=y(``),U=y(``),W=y(`quick`),G=y(``),K=y(``),An=y(!1),q=y(null),J=y(``),jn=y(null),Mn=y(2),Nn=y(``),Y=null,Pn=null,X=w(()=>Ne.value||Fe.value||P.value||Te.value||De.value||Ve.value),Fn=w(()=>!!(V.value?.enabled||V.value?.directEnabled)),In=w(()=>F.value?.directOverride??{active:!1,fallback:!1}),Z=w(()=>I.value?.isRegistered??!1),Ln=w(()=>I.value?.needsReauth??!1),Rn=w(()=>!X.value),zn=w(()=>{if(!Rn.value)return!1;let e=H.value.trim();return!e||e.length>100?!1:e!==(I.value?.serverName??``)}),Bn=w(()=>{if(!V.value)return!1;if(V.value.directMode===`customDomain`){let e=U.value.trim();if(!e)return!1;try{new URL(e)}catch{return!1}return e!==(F.value?.remoteSettings.customDomain.url??``)}if(V.value.directMode===`cloudflare`){let e=F.value?.remoteSettings.cloudflare,t=F.value?.remoteSettings.directMode!==`cloudflare`,n=W.value;if(n===`quick`)return t||e?.mode!==`quick`;let ee=G.value.trim();if(!ee||!/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(ee))return!1;if(n===`token`){let n=K.value.trim();if(!n&&!An.value)return!1;let r=n.length>0;return t||e?.mode!==`token`||e?.hostname!==ee||r}return n===`managed`?t||e?.mode!==`managed`||e?.hostname!==ee:!1}return V.value.directMode!==F.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===V.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===W.value)?.description??``),Gn=w(()=>{if(W.value===`quick`)return!0;let e=F.value?.remoteSettings.cloudflare;return e?.mode===W.value&&!!e?.hostname}),Q=w(()=>z.value?.state??`idle`),Kn=w(()=>{if(Q.value!==`idle`)return!1;let e=G.value.trim();return!!e&&/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(e)}),qn=w(()=>{let e=L.value?.currentConnection.type??`lan`;return T(`views.settings.connection_type.${e}`)}),Jn=w(()=>{let e=L.value?.currentConnection.type;return e===`cloud`?i:e===`external`?Pe:e===`local`?je:Ie}),Yn=w(()=>{let e=L.value?.currentConnection.type;return e===`cloud`?`text-warning`:e===`external`?`text-info`:e===`local`?`text-primary`:`text-success`});async function Xn(){let e=H.value.trim();if(e)try{await He(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 Be()}catch{}}})}function Qn(){Y&&=(clearTimeout(Y),null),Pn&&=(clearInterval(Pn),null)}function $(){Qn(),q.value=null,J.value=``,jn.value=null,Nn.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(){Pn&&clearInterval(Pn);let e=()=>{if(!jn.value)return;let e=jn.value-Date.now();if(e<=0){$(),C.add({severity:`warn`,detail:T(`components.toast.pair_expired`),life:3e3});return}Nn.value=$n(e)};e(),Pn=setInterval(e,1e3)}function tr(){Y&&clearTimeout(Y),Y=setTimeout(nr,Mn.value*1e3)}async function nr(){if(!q.value)return;let e=q.value;try{let t=await ze({name:H.value.trim()||void 0});if(!q.value||q.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`&&(Mn.value=Math.min(Mn.value+2,10)),tr()}catch(t){if(!q.value||q.value!==e)return;f.error(`pair poll failed:`,t),tr()}}async function rr(){$();try{let e=H.value.trim();if(e&&e!==(I.value?.serverName??``))try{await He(e)}catch{}let t=await Le(e||void 0);q.value=t.userCode,J.value=t.verificationUriComplete,jn.value=Date.now()+t.expiresIn*1e3,Mn.value=Math.max(1,t.pollInterval),er(),tr()}catch(e){C.add({severity:`error`,detail:e,life:3e3})}}function ir(){$()}async function ar(){if(q.value)try{await c(q.value)}catch{}}async function or(){if(J.value)try{await c(J.value)}catch{}}function sr(){J.value&&window.open(J.value,`_blank`,`noopener`)}function cr(e){let t=window.location.host===u||!1,n;n=e?`components.dialog.message.confirm_enable_cloud`:t?`components.dialog.message.confirm_disable_cloud_remote`:`components.dialog.message.confirm_disable_cloud_local`,m.openTextDialog({data:{title:T(`components.dialog.title.confirm`),contentText:T(n),confirmText:T(e?`components.form.button.enable`:`components.form.button.disable`),loading:X,confirmButtonProps:e?void 0:{severity:`danger`}},onConfirm:async()=>{try{await R(e?{enabled:!0}:{enabled:!1})}catch{V.value&&(V.value.enabled=!e)}},onCancel:()=>{V.value&&(V.value.enabled=!e)}})}function lr(e){R({directEnabled:e}).catch(()=>{V.value&&(V.value.directEnabled=!e)})}function ur(e){V.value&&(V.value.directMode=e)}function dr(e){W.value=e}async function fr(){let e=G.value.trim();if(e)try{await R({directMode:`cloudflare`,cloudflare:{mode:`managed`,hostname:e}}),await Ke(e)}catch{}}async function pr(){try{await Je()}catch{}}async function mr(){try{await Xe()}catch{}}async function hr(){try{await On()}catch{}}async function gr(e){try{await c(e)}catch{}}function _r(e){window.open(e,`_blank`,`noopener`)}async function vr(e){try{let t=await We(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:U.value.trim()};else if(e.directMode===`cloudflare`){let e=W.value;if(e===`quick`)t.cloudflare={mode:`quick`,hostname:null,token:null};else if(e===`token`){let e=K.value.trim();t.cloudflare={mode:`token`,hostname:G.value.trim(),...e?{token:e}:{}}}else e===`managed`&&(t.cloudflare={mode:`managed`,hostname:G.value.trim(),token:null})}try{await R(t)}catch{}}async function br(e){try{await Me(e)}catch{}}return O(()=>I.value?.serverName,e=>{e&&(H.value=e)},{immediate:!0}),O(Z,e=>{e&&q.value&&$()}),O(de,e=>{if(e){let t=d(e);B.value={...t,serverAddresses:(t.serverAddresses||[]).filter(Boolean)}}},{deep:!0,immediate:!0}),O(F,e=>{if(e){let t=d(e);V.value={...t.remoteSettings},U.value=t.remoteSettings.customDomain.url??``;let n=t.remoteSettings.cloudflare;W.value=n?.mode??`quick`,G.value=n?.hostname??``,K.value=``,An.value=t.cloudflareTokenSet??!1}},{deep:!0,immediate:!0}),se(()=>{Qn()}),(r,i)=>{let a=te,o=Se,s=e,re=he,c=t,l=ke,u=n,d=ge,f=_e,se=ve,m=we,y=ie,C=ae,w=Ee,T=ye,O=xe,me=be,P=ee;return p(),v(`div`,et,[!S(B)||!S(V)?(p(),v(`div`,tt,[D(a,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(p(),v(`div`,nt,[S(L)?(p(),v(`div`,rt,[g(`span`,it,_(r.$t(`views.settings.connection_status`)),1),D(s,{class:`cui-card`},{content:h(()=>[g(`div`,at,[(p(),E(pe(S(Jn)),{class:le([`shrink-0 w-6 h-6`,S(Yn)])},null,8,[`class`])),g(`div`,ot,[g(`span`,st,_(S(qn)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:h(()=>[x(_(S(L).currentConnection.address),1)]),_:1})])])]),_:1})])):j(``,!0),D(S(ue),{ref:`remoteFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":S(Qe),onSubmit:i[18]||=e=>yr(e)},{default:h(()=>[g(`div`,null,[g(`span`,ct,_(r.$t(`views.settings.cloud`)),1),D(s,{class:`cui-card`},{content:h(()=>[g(`div`,lt,[D(S(N),{"model-value":S(V).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`,ut,[g(`div`,dt,[g(`label`,ft,_(r.$t(`components.form.label.enabled`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(r.$t(`components.form.hint.cloud_access_enabled_info`)),1)]),_:1}),D(k,{name:`fade`},{default:h(()=>[D(S(M),{name:`enabled`,class:`cui-input-switch-error`})]),_:1})]),D(re,fe({"model-value":S(V).enabled},e,{invalid:t.length>0,loading:S(X),class:`ml-auto shrink-0`,onValueChange:i[0]||=e=>S(V).enabled=e,"onUpdate:modelValue":i[1]||=e=>cr(e)}),null,16,[`model-value`,`invalid`,`loading`])])]),_:1},8,[`model-value`]),g(`div`,pt,[g(`label`,mt,_(r.$t(`views.settings.server_name_label`)),1),D(f,null,{default:h(()=>[D(c,{id:`serverName`,modelValue:S(H),"onUpdate:modelValue":i[2]||=e=>A(H)?H.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(Ue),disabled:!S(zn),type:`button`,onClick:Xn},{icon:h(()=>[D(l)]),_:1},8,[`loading`,`disabled`])),[[P,{value:r.$t(`components.form.button.save`)}]])]),_:1})]),_:1}),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(r.$t(`views.settings.server_name_info`)),1)]),_:1})]),g(`div`,ht,[g(`div`,gt,[g(`span`,_t,_(r.$t(`views.settings.status`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(r.$t(`views.settings.status_info`)),1)]),_:1})]),g(`div`,vt,[S(X)?(p(),E(a,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):S(Ln)?(p(),v(`span`,yt,_(r.$t(`views.settings.needs_reauth`)),1)):(p(),v(`span`,bt,_(S(Z)?r.$t(`views.settings.registered`):r.$t(`views.settings.not_registered`)),1))])]),S(Z)?(p(),v(`div`,xt,[g(`div`,St,[g(`span`,Ct,_(r.$t(`views.settings.tunnel_status`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(r.$t(`views.settings.tunnel_status_info`)),1)]),_:1})]),g(`div`,wt,[S(Ae)?(p(),E(a,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(p(),E(se,{key:1,severity:S(Oe)?.connected?`success`:`secondary`,value:S(Oe)?.connected?r.$t(`views.settings.tunnel_connected`):r.$t(`views.settings.tunnel_disconnected`)},null,8,[`severity`,`value`]))])])):j(``,!0),D(k,{name:`fade`,mode:`out-in`},{default:h(()=>[S(q)?(p(),v(`div`,Tt,[D(o,{severity:`error`,variant:`simple`,size:`small`,class:`text-primary`},{default:h(()=>[x(_(r.$t(`views.settings.pair_instructions`)),1)]),_:1}),g(`div`,Et,[g(`div`,Dt,[D(m,{value:S(J),size:180,"logo-size":36},null,8,[`value`])]),g(`div`,Ot,[g(`div`,kt,[g(`label`,At,_(r.$t(`views.settings.pair_code`)),1),D(f,null,{default:h(()=>[D(c,{"model-value":S(q),readonly:``,class:`font-mono text-lg text-center tracking-widest`},null,8,[`model-value`]),D(d,null,{default:h(()=>[D(y,{"action-text":r.$t(`components.form.tooltip.copied`),icon:S(oe),"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(_(r.$t(`views.settings.pair_code_hint`)),1)]),_:1})]),g(`div`,jt,[g(`label`,Mt,_(r.$t(`views.settings.pair_url`)),1),D(f,null,{default:h(()=>[D(c,{"model-value":S(J),readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),D(d,null,{default:h(()=>[D(y,{"action-text":r.$t(`components.form.tooltip.copied`),icon:S(oe),"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(ne))]),_:1})),[[P,{value:r.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),g(`div`,Nt,[D(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),g(`span`,Pt,_(r.$t(`views.settings.pair_waiting`,{remaining:S(Nn)})),1),D(u,{type:`button`,severity:`secondary`,class:`cui-button-small ml-auto`,label:r.$t(`components.form.button.cancel`),onClick:ir},null,8,[`label`])])])])])):j(``,!0)]),_:1}),g(`div`,Ft,[g(`div`,It,[ce((p(),E(u,{severity:`secondary`,rounded:``,class:`cui-icon-lg text-color`,disabled:!S(Z),onClick:i[3]||=e=>r.$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`])),[[P,{value:S(Z)?r.$t(`views.settings.registered`):r.$t(`views.settings.not_registered`)}]])]),i[21]||=g(`div`,{class:`ml-auto`},null,-1),!S(Z)&&!S(q)?(p(),E(u,{key:0,loading:S(Re),class:`cui-button-medium`,label:r.$t(`components.form.button.register_server`),onClick:rr},null,8,[`loading`,`label`])):j(``,!0),S(Ln)&&!S(q)?(p(),E(u,{key:1,loading:S(Re),severity:`warn`,class:`cui-button-medium`,label:r.$t(`components.form.button.reconnect_server`),onClick:rr},null,8,[`loading`,`label`])):j(``,!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:r.$t(`components.form.button.unregister_server`),onClick:Zn},null,8,[`loading`,`severity`,`text`,`label`])):j(``,!0)])])]),_:1})]),g(`div`,null,[g(`span`,Lt,_(r.$t(`views.settings.direct_connection`)),1),D(s,{class:`cui-card`},{content:h(()=>[g(`div`,Rt,[D(S(N),{"model-value":S(V).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`,zt,[g(`div`,Bt,[g(`label`,Vt,_(r.$t(`components.form.label.enabled`)),1),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[x(_(r.$t(`views.settings.direct_connection_info`)),1)]),_:1}),D(k,{name:`fade`},{default:h(()=>[D(S(M),{name:`directEnabled`,class:`cui-input-switch-error`})]),_:1})]),D(re,fe({"model-value":S(Fn)},e,{invalid:t.length>0,loading:S(X),disabled:S(V).enabled,class:`ml-auto shrink-0`,onValueChange:i[4]||=e=>S(V).directEnabled=e,"onUpdate:modelValue":i[5]||=e=>lr(e)}),null,16,[`model-value`,`invalid`,`loading`,`disabled`])]),D(k,{name:`fade`},{default:h(()=>[S(In).active?(p(),E(o,{key:0,variant:`simple`,size:`small`,class:`cui-input-switch-hint text-primary`},{default:h(()=>[x(_(S(In).fallback?r.$t(`views.settings.direct_override_fallback`):r.$t(`views.settings.direct_override_active`)),1)]),_:1})):j(``,!0)]),_:1})]),_:1},8,[`model-value`]),S(Fn)?(p(),v(b,{key:0},[g(`div`,Ht,[g(`label`,Ut,_(r.$t(`views.settings.external_url`)),1),D(c,{readonly:``,type:`text`,value:S(L)?.externalUrl??r.$t(`components.form.label.disconnected`)},null,8,[`value`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(r.$t(`views.settings.external_url_info`)),1)]),_:1})]),D(S(N),{"model-value":S(V).directMode,name:`directMode`,as:`div`,class:`flex flex-col field-gap`},{default:h(({errors:e})=>[g(`label`,Wt,_(r.$t(`views.settings.connection_method`)),1),D(T,{"model-value":S(V).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(k,{name:`fade`},{default:h(()=>[D(S(M),{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(V).directMode===`cloudflare`?(p(),v(`div`,Gt,[g(`div`,Kt,[g(`label`,qt,_(r.$t(`components.form.label.cloudflare_variant`)),1),D(T,{"model-value":S(W),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(W)===`quick`?(p(),v(`div`,Jt,[D(u,{type:`button`,severity:`secondary`,loading:S(Ge),class:`cui-button-small`,label:r.$t(`components.form.button.test_connection`),onClick:i[8]||=e=>vr(`cloudflare`)},null,8,[`loading`,`label`])])):S(W)===`token`?(p(),v(b,{key:1},[g(`div`,Yt,[g(`label`,Xt,_(r.$t(`components.form.label.hostname`)),1),D(c,{id:`cloudflareHostname`,modelValue:S(G),"onUpdate:modelValue":i[9]||=e=>A(G)?G.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(_(r.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),g(`div`,Zt,[g(`label`,Qt,_(r.$t(`components.form.label.tunnel_token`)),1),D(O,{id:`cloudflareToken`,modelValue:S(K),"onUpdate:modelValue":i[10]||=e=>A(K)?K.value=e:null,modelModifiers:{trim:!0},loading:S(X),feedback:!1,"toggle-mask":``,fluid:``,placeholder:S(An)?`••••••••••••`:`eyJ...`},null,8,[`modelValue`,`loading`,`placeholder`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(S(An)?r.$t(`components.form.hint.cloudflare_token_already_set`):r.$t(`components.form.hint.cloudflare_token_info`)),1)]),_:1})]),g(`div`,$t,[D(u,{type:`button`,severity:`secondary`,loading:S(Ge),disabled:!S(Gn),class:`cui-button-small`,label:r.$t(`components.form.button.test_connection`),onClick:i[11]||=e=>vr(`cloudflare`)},null,8,[`loading`,`disabled`,`label`])])],64)):S(W)===`managed`?(p(),E(k,{key:2,name:`fade`,mode:`out-in`},{default:h(()=>[(p(),v(`div`,{key:S(Q),class:`flex flex-col gap-4`},[S(Q)===`idle`?(p(),v(b,{key:0},[g(`div`,en,[g(`label`,tn,_(r.$t(`components.form.label.hostname`)),1),D(c,{id:`cloudflareHostnameManaged`,modelValue:S(G),"onUpdate:modelValue":i[12]||=e=>A(G)?G.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(_(r.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),S(z)?.lastError?(p(),E(o,{key:0,severity:`error`,variant:`simple`,size:`small`},{default:h(()=>[x(_(S(z).lastError),1)]),_:1})):j(``,!0),g(`div`,nn,[D(u,{type:`button`,loading:S(qe),disabled:!S(Kn),class:`cui-button-medium`,label:r.$t(`components.form.button.connect_cloudflare`),onClick:fr},null,8,[`loading`,`disabled`,`label`])])],64)):S(Q)===`awaiting_login`?(p(),v(b,{key:1},[S(z)?.loginUrl?(p(),v(`div`,rn,[g(`div`,an,[D(m,{value:S(z).loginUrl,size:160,"logo-size":32},null,8,[`value`])]),g(`div`,on,[D(o,{variant:`simple`,size:`small`,class:`text-primary`},{default:h(()=>[x(_(r.$t(`components.form.hint.cloudflare_managed_awaiting_login`,{hostname:S(G)})),1)]),_:1}),g(`div`,sn,[g(`label`,cn,_(r.$t(`components.form.label.cloudflare_url`)),1),D(f,null,{default:h(()=>[D(c,{"model-value":S(z).loginUrl,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),D(d,null,{default:h(()=>[D(y,{"action-text":r.$t(`components.form.tooltip.copied`),icon:S(oe),"button-props":{severity:`secondary`,text:!0},onAction:i[13]||=e=>gr(S(z).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(z).loginUrl)},{icon:h(()=>[D(S(ne))]),_:1})),[[P,{value:r.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),g(`div`,ln,[D(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),g(`span`,un,_(r.$t(`views.settings.cloudflare_login_waiting`)),1),D(u,{type:`button`,severity:`secondary`,loading:S(Ye),class:`cui-button-small ml-auto`,label:r.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])])])])):(p(),v(`div`,dn,[D(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),g(`span`,fn,_(r.$t(`views.settings.cloudflare_login_waiting`)),1),D(u,{type:`button`,severity:`secondary`,loading:S(Ye),class:`cui-button-small ml-auto`,label:r.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])]))],64)):S(Q)===`creating_tunnel`||S(Q)===`setting_dns`?(p(),v(`div`,pn,[D(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),g(`span`,mn,_(S(Q)===`creating_tunnel`?r.$t(`components.form.hint.cloudflare_managed_creating_tunnel`):r.$t(`components.form.hint.cloudflare_managed_setting_dns`,{hostname:S(G)})),1),D(u,{type:`button`,severity:`secondary`,loading:S(Ye),class:`cui-button-small ml-auto`,label:r.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])])):S(Q)===`running`?(p(),v(b,{key:3},[g(`div`,hn,[g(`label`,gn,_(r.$t(`components.form.label.hostname`)),1),D(c,{readonly:``,value:`https://${S(z)?.hostname??``}`,type:`text`},null,8,[`value`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(r.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),S(z)?.tunnelId?(p(),v(`div`,_n,[g(`label`,vn,_(r.$t(`components.form.label.tunnel_id`)),1),D(c,{readonly:``,value:S(z).tunnelId,type:`text`},null,8,[`value`]),D(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:h(()=>[x(_(r.$t(`components.form.hint.cloudflare_tunnel_id_info`)),1)]),_:1})])):j(``,!0),g(`div`,yn,[D(u,{type:`button`,severity:`secondary`,loading:S(Ge),class:`cui-button-small`,label:r.$t(`components.form.button.test_connection`),onClick:i[15]||=e=>vr(`cloudflare`)},null,8,[`loading`,`label`]),D(u,{type:`button`,severity:`secondary`,loading:S(Dn),class:`cui-button-small ml-auto`,label:r.$t(`components.form.button.disconnect`),onClick:mr},null,8,[`loading`,`label`]),D(u,{type:`button`,severity:`danger`,loading:S(kn),class:`cui-button-small`,label:r.$t(`components.form.button.logout`),onClick:hr},null,8,[`loading`,`label`])])],64)):j(``,!0)]))]),_:1})):j(``,!0)])):S(V).directMode===`customDomain`?(p(),v(`div`,bn,[D(S(N),{modelValue:S(U),"onUpdate:modelValue":i[16]||=e=>A(U)?U.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`,xn,_(r.$t(`components.form.label.url`)),1),D(c,fe(e,{invalid:t.length>0,loading:S(X),type:`text`,placeholder:`https://my.example.com`}),null,16,[`invalid`,`loading`]),D(k,{name:`fade`},{default:h(()=>[D(S(M),{name:`customDomain.url`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`loading`]),g(`div`,Sn,[D(u,{type:`button`,severity:`secondary`,loading:S(Ge),disabled:!S(U),class:`cui-button-small`,label:r.$t(`components.form.button.test_connection`),onClick:i[17]||=e=>vr(`customDomain`)},null,8,[`loading`,`disabled`,`label`])])])):j(``,!0),D(u,{type:`submit`,loading:S(X),disabled:!S(Bn),class:`cui-button-medium ml-auto`,label:r.$t(`components.form.button.save`)},null,8,[`loading`,`disabled`,`label`])],64)):j(``,!0)])]),_:1})])]),_:1},8,[`validation-schema`]),D(S(ue),{ref:`serverFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":S($e),onSubmit:i[20]||=e=>br(e)},{default:h(()=>[g(`div`,null,[g(`span`,Cn,_(r.$t(`views.settings.network`)),1),D(s,{class:`cui-card`},{content:h(()=>[g(`div`,wn,[g(`span`,Tn,_(r.$t(`views.settings.network_info`)),1),D(S(N),{"model-value":S(B).serverAddresses,name:`serverAddresses`,as:`div`,class:`flex flex-col field-gap`},{default:h(({field:e,errors:t})=>[g(`label`,En,_(r.$t(`components.form.label.server_addresses`)),1),D(f,null,{default:h(()=>[D(me,fe(e,{"model-value":S(B).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(B).serverAddresses=e}),null,16,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),D(k,{name:`fade`},{default:h(()=>[D(S(M),{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:r.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])]),_:1})])]),_:1},8,[`validation-schema`])]))])}}}),[[`__scopeId`,`data-v-788da547`]]);export{Dn as default};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./VersionsHandler-Dvy5Lv-E.js","./vendor-cameraui-BqkrW4Bb.js","./rolldown-runtime-C0FnF6B9.js","./vendor-CSg6_Jfu.js","./api-milc5VEE.js","./useElectron-Dg8tFzam.js","./vendor-zod-Dbq0fBXY.js","./types-CoXm85So.js","./lightbulb-outline-ccTlGyvW.js","./vendor-core-BQegq2Q6.js","./vendor-primevue-DYzLjOFZ.js","./vendor-dnd-DQF7Aoap.js","./close-CQoGQHOF.js","./vendor-draggabilly-Cghb3aIb.js","./api-3va2gyB0.css","./server-Bv5NVJ0G.js","./useServerRestart-3AZOTz7i.js","./plugins-7pWXkYgo.js","./useLogsSocket-9jJ-oJIm.js","./vendor-xterm-BafMBqaV.js","./vendor-xterm-BrP-ENHg.css","./useLogsSocket-CoA-Nq-_.css","./CuiMarkdownContent-Bjs3wRnq.js","./vendor-markdown-DWwrEE67.js","./vendor-markdown-DtOhvyRx.css","./alert-circle-Cu_kjPlA.js","./platformLabels-D-cF6OTP.js","./config-BE0DnCXx.js"])))=>i.map(i=>d[i]);
2
- import{F as e,Ot as t,kr as n,wt as r}from"./vendor-cameraui-BqkrW4Bb.js";import{$n as i,C as a,Qt as ee,X as o,Y as s,g as c,in as l}from"./api-milc5VEE.js";import{Nn as u,Rt as te,Xn as d,an as f,br as p,cn as m,cr as h,en as ne,fn as g,gr as _,hn as re,in as v,jn as ie,on as y,pn as b,qn as x,sn as S,t as C}from"./vendor-CSg6_Jfu.js";import{a as ae,t as oe}from"./useElectron-Dg8tFzam.js";import{K as se,z as ce}from"./vendor-primevue-DYzLjOFZ.js";import{r as le,t as ue}from"./server-Bv5NVJ0G.js";import{n as de}from"./useServerRestart-3AZOTz7i.js";import{t as fe}from"./api-DmxTF6VE.js";import{t as pe}from"./useAppVersion-oPpW7jcN.js";var me={class:`flex flex-col w-full gap-6`},he={key:0},ge={class:`flex items-center gap-4`},_e={class:`flex flex-col field-switch-gap`},ve={for:`betaChannel`,class:`cui-label-switch`},ye={class:`flex flex-col gap-6`},be={key:0,class:`flex flex-row items-center justify-between`},xe={class:`text-sm`},Se={key:1,class:`text-sm font-bold`},Ce={key:1,class:`flex flex-row items-center justify-between`},we={class:`text-sm`},Te={class:`text-sm font-bold`},Ee={key:0,class:`text-muted font-normal`},De={class:`flex flex-row items-center justify-between`},Oe={class:`text-sm`},ke={key:1,class:`text-sm font-bold`},Ae={key:2,class:`flex w-full items-center gap-2`},je={key:1},Me={class:`card-title`},Ne={class:`flex flex-col gap-6`},Pe={class:`text-sm`},Fe={class:`card-title`},Ie={class:`flex flex-col gap-6`},Le={class:`text-sm`},Re={key:2},ze={class:`card-title`},Be={class:`flex flex-col gap-6`},Ve={class:`text-sm`},w=re({__name:`SettingsSystem`,setup(re){let w=o(()=>te(()=>import(`./VersionsHandler-Dvy5Lv-E.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]),import.meta.url)),T=new fe,E=new ue,D=ae(),O=s(),{t:k}=n(),{isElectronApp:A,electron:j}=oe(),{isOnline:M}=i(),{restarting:N,beginServerRestart:He}=de(),{isBeta:P,setChannel:Ue}=a(),{appVersion:F,nativeVersion:I,refreshAppVersion:We}=pe(),Ge=c();E.toggleQueryActivator(`checkVersionQuery`,!1);let{data:L,isBusy:Ke}=T.apiInfoQuery(),{data:R,isBusy:qe}=E.checkVersionQuery(),{mutate:Je,isPending:Ye}=E.restartServerQuery(),{mutateAsync:Xe,isPending:Ze}=E.resetServerQuery(),z=h(k(`views.settings.unknown`)),B=h(k(`views.settings.unknown`)),V=h(),H=h(),U=h(),W=h(),G=h(!1),K=h(!1),Qe=h(!1),q=h(!1),J=v(()=>L.value?.electron??!1),Y=v(()=>Ye.value||Ze.value||Ke.value||qe.value||q.value||K.value),X=v(()=>L.value?.installedVersion||L.value?.version),$e=v(()=>L.value?.restartRequired??!1),Z=v(()=>Y.value||!M.value||N.value),et=v(()=>X.value&&U.value?C(U.value,X.value)===1:!1),tt=v(()=>X.value&&V.value?C(V.value,X.value)===1:!1),nt=v(()=>P.value&&X.value&&H.value?C(H.value,X.value)===1:!1),Q=v(()=>{let e=[et.value?U.value:void 0,nt.value?H.value:void 0,tt.value?V.value:void 0].filter(e=>!!e);if(e.length)return e.sort((e,t)=>C(t,e))[0]});function rt(e){Ue(e===!0?`beta`:`production`)}async function it(){if(!G.value){G.value=!0;try{let e=await le(),t=new Blob([e],{type:`application/x-x509-ca-cert`});await l({blob:t,filename:`cert.pem`,mimeType:`application/x-x509-ca-cert`})}catch(e){D.error(e)}G.value=!1}}function at(){He(),Je()}function $(e){switch(e){case`restart`:O.openTextDialog({data:{title:k(`components.dialog.title.restart`),confirmText:k(`components.form.button.restart`),contentText:k(`components.dialog.message.confirm_restart_server`),loading:Y},onConfirm:at});break;case`reset`:O.openTextDialog({data:{title:k(`components.dialog.title.reset_server`),confirmText:k(`components.form.button.reset`),contentText:k(`components.dialog.message.confirm_reset_server`),loading:Y},onConfirm:async()=>{try{await Xe()}catch{}finally{Ge.logout()}}});break;case`versions`:case`install`:O.openComponentDialog(w,{data:{title:k(`components.dialog.title.install_version`),confirmText:k(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 ot(){if(A)try{Qe.value=!0,B.value=await j.invoke(`get-app-version`)??k(`views.settings.unknown`)}catch(e){D.error(`Error getting electron app version:`,e)}finally{Qe.value=!1}}async function st(){if(A)try{q.value=!0;let e=await j.invoke(`get-update-available`);W.value=e.isUpdateAvailable?e.version:void 0}catch(e){D.error(`Error checking for electron updates:`,e)}finally{q.value=!1}}async function ct(){if(A)try{K.value=!0,await j.invoke(`quit-and-install`)}catch(e){D.error(`Error installing electron update:`,e)}finally{K.value=!1}}return x(L,()=>{z.value=L.value?.version||k(`views.settings.unknown`),L.value&&E.toggleQueryActivator(`checkVersionQuery`,!J.value)},{deep:!0,immediate:!0}),x(R,()=>{U.value=R.value?.[`dist-tags`].latest,V.value=R.value?.[`dist-tags`].alpha,H.value=R.value?.[`dist-tags`].beta},{deep:!0,immediate:!0}),x([M,N],([e,t],[n,r])=>{J.value||(e&&!n||r&&!t&&e)&&(T.queryClient.invalidateQueries({queryKey:[`api`]}),E.queryClient.invalidateQueries({queryKey:[`version`]}))}),ie(()=>{A&&(ot(),st())}),(n,i)=>{let a=ce,o=se,s=e,c=r,l=t;return u(),m(`div`,null,[f(`div`,me,[_(J)?S(``,!0):(u(),m(`div`,he,[b(s,{class:`cui-card`},{content:d(()=>[f(`div`,null,[f(`div`,ge,[f(`div`,_e,[f(`label`,ve,p(n.$t(`views.settings.beta_updates`)),1),b(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:d(()=>[g(p(n.$t(`views.settings.beta_updates_info`)),1)]),_:1})]),b(o,{"input-id":`betaChannel`,"model-value":_(P),class:`ml-auto shrink-0`,"onUpdate:modelValue":rt},null,8,[`model-value`])])])]),_:1})])),f(`div`,null,[i[6]||=f(`span`,{class:`card-title`},`camera.ui`,-1),b(s,{class:`cui-card`},{content:d(()=>[f(`div`,ye,[_(A)?(u(),m(`div`,be,[f(`span`,xe,p(n.$t(`views.settings.app`)),1),_(Y)?(u(),y(c,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(u(),m(`span`,Se,`v`+p(_(B)),1))])):S(``,!0),_(!1)&&_(F)?(u(),m(`div`,Ce,[f(`span`,we,p(n.$t(`views.settings.app`)),1),f(`span`,Te,[g(` v`+p(_(F)),1),_(I)&&_(I)!==_(F)?(u(),m(`span`,Ee,` (`+p(_(I))+`)`,1)):S(``,!0)])])):S(``,!0),f(`div`,De,[f(`span`,Oe,p(n.$t(`views.settings.server`)),1),_(Y)?(u(),y(c,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(u(),m(`span`,ke,[g(` v`+p(_(z)),1),_($e)?(u(),m(ne,{key:0},[g(` → v`+p(_(X)),1)],64)):S(``,!0)]))]),_(A)&&_(W)||!_(J)?(u(),m(`div`,Ae,[i[5]||=f(`div`,{class:`ml-auto`},null,-1),_(A)&&_(W)?(u(),y(l,{key:0,disabled:!_(A),loading:_(Y),class:`cui-button-medium`,label:`${n.$t(`components.form.button.update`)} (v${_(W)})`,onClick:ct},null,8,[`disabled`,`loading`,`label`])):S(``,!0),!_(J)&&_($e)?(u(),y(l,{key:1,loading:_(Y),disabled:_(Z),class:`cui-button-medium`,label:`${n.$t(`components.form.button.restart`)} (v${_(X)})`,onClick:i[0]||=e=>$(`restart`)},null,8,[`loading`,`disabled`,`label`])):!_(J)&&_(Q)?(u(),y(l,{key:2,loading:_(Y),disabled:_(Z),class:`cui-button-medium`,label:`${n.$t(`components.form.button.update`)} (v${_(Q)})`,onClick:i[1]||=e=>$(`install`)},null,8,[`loading`,`disabled`,`label`])):S(``,!0),_(J)?S(``,!0):(u(),y(l,{key:3,loading:_(Y),disabled:_(Z),class:`cui-button-medium`,label:n.$t(`components.form.button.manage`),onClick:i[2]||=e=>$(`versions`)},null,8,[`loading`,`disabled`,`label`]))])):S(``,!0)])]),_:1})]),_(A)?S(``,!0):(u(),m(`div`,je,[f(`span`,Me,p(n.$t(`views.settings.certificate`)),1),b(s,{class:`cui-card`},{content:d(()=>[f(`div`,Ne,[f(`span`,Pe,p(n.$t(`views.settings.certificate_info`)),1),b(l,{loading:_(G)||_(Y),disabled:_(Z),class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.download`),onClick:it},null,8,[`loading`,`disabled`,`label`])])]),_:1})])),f(`div`,null,[f(`span`,Fe,p(n.$t(`views.settings.restart_server`)),1),b(s,{class:`cui-card`},{content:d(()=>[f(`div`,Ie,[f(`span`,Le,p(n.$t(`views.settings.restart_server_info`)),1),b(l,{loading:_(Y),disabled:_(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:_(ee))(void 0,`master`)?(u(),m(`div`,Re,[f(`span`,ze,p(n.$t(`views.settings.reset_server`)),1),b(s,{class:`cui-card !border-red-900`},{content:d(()=>[f(`div`,Be,[f(`span`,Ve,p(n.$t(`views.settings.reset_server_info`)),1),b(l,{loading:_(Y),disabled:_(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})])):S(``,!0)])])}}});export{w as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./VersionsHandler-v4hH23M_.js","./vendor-cameraui-Cgb5z6NJ.js","./rolldown-runtime-C0FnF6B9.js","./vendor-CSg6_Jfu.js","./api-Cc-rMHwl.js","./useElectron-KnqvZz0q.js","./vendor-zod-Dbq0fBXY.js","./types-C1VwkReu.js","./lightbulb-outline-ccTlGyvW.js","./vendor-core-BJsSXMFQ.js","./vendor-primevue-CyD8V_Ft.js","./vendor-dnd-DQF7Aoap.js","./close-CQoGQHOF.js","./vendor-draggabilly-Cghb3aIb.js","./api-3va2gyB0.css","./server-DbpDC3pc.js","./useServerRestart-CqZRPCpR.js","./plugins-ICpmsguj.js","./useLogsSocket-CUQwZ6wm.js","./vendor-xterm-BafMBqaV.js","./vendor-xterm-BrP-ENHg.css","./useLogsSocket-CoA-Nq-_.css","./CuiMarkdownContent-Bjs3wRnq.js","./vendor-markdown-DWwrEE67.js","./vendor-markdown-DtOhvyRx.css","./alert-circle-Cu_kjPlA.js","./platformLabels-D-cF6OTP.js","./config-B_lj3Myj.js"])))=>i.map(i=>d[i]);
2
+ import{F as e,Ot as t,kr as n,wt as r}from"./vendor-cameraui-Cgb5z6NJ.js";import{$n as i,C as a,Qt as ee,X as o,Y as s,g as c,in as l}from"./api-Cc-rMHwl.js";import{Nn as u,Rt as te,Xn as d,an as f,br as p,cn as m,cr as h,en as ne,fn as g,gr as _,hn as re,in as v,jn as ie,on as y,pn as b,qn as x,sn as S,t as C}from"./vendor-CSg6_Jfu.js";import{a as ae,t as oe}from"./useElectron-KnqvZz0q.js";import{K as se,z as ce}from"./vendor-primevue-CyD8V_Ft.js";import{r as le,t as ue}from"./server-DbpDC3pc.js";import{n as de}from"./useServerRestart-CqZRPCpR.js";import{t as fe}from"./api-BKU9IS3U.js";import{t as pe}from"./useAppVersion-CCxZnwIP.js";var me={class:`flex flex-col w-full gap-6`},he={key:0},ge={class:`flex items-center gap-4`},_e={class:`flex flex-col field-switch-gap`},ve={for:`betaChannel`,class:`cui-label-switch`},ye={class:`flex flex-col gap-6`},be={key:0,class:`flex flex-row items-center justify-between`},xe={class:`text-sm`},Se={key:1,class:`text-sm font-bold`},Ce={key:1,class:`flex flex-row items-center justify-between`},we={class:`text-sm`},Te={class:`text-sm font-bold`},Ee={key:0,class:`text-muted font-normal`},De={class:`flex flex-row items-center justify-between`},Oe={class:`text-sm`},ke={key:1,class:`text-sm font-bold`},Ae={key:2,class:`flex w-full items-center gap-2`},je={key:1},Me={class:`card-title`},Ne={class:`flex flex-col gap-6`},Pe={class:`text-sm`},Fe={class:`card-title`},Ie={class:`flex flex-col gap-6`},Le={class:`text-sm`},Re={key:2},ze={class:`card-title`},Be={class:`flex flex-col gap-6`},Ve={class:`text-sm`},w=re({__name:`SettingsSystem`,setup(re){let w=o(()=>te(()=>import(`./VersionsHandler-v4hH23M_.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]),import.meta.url)),T=new fe,E=new ue,D=ae(),O=s(),{t:k}=n(),{isElectronApp:A,electron:j}=oe(),{isOnline:M}=i(),{restarting:N,beginServerRestart:He}=de(),{isBeta:P,setChannel:Ue}=a(),{appVersion:F,nativeVersion:I,refreshAppVersion:We}=pe(),Ge=c();E.toggleQueryActivator(`checkVersionQuery`,!1);let{data:L,isBusy:Ke}=T.apiInfoQuery(),{data:R,isBusy:qe}=E.checkVersionQuery(),{mutate:Je,isPending:Ye}=E.restartServerQuery(),{mutateAsync:Xe,isPending:Ze}=E.resetServerQuery(),z=h(k(`views.settings.unknown`)),B=h(k(`views.settings.unknown`)),V=h(),H=h(),U=h(),W=h(),G=h(!1),K=h(!1),Qe=h(!1),q=h(!1),J=v(()=>L.value?.electron??!1),Y=v(()=>Ye.value||Ze.value||Ke.value||qe.value||q.value||K.value),X=v(()=>L.value?.installedVersion||L.value?.version),$e=v(()=>L.value?.restartRequired??!1),Z=v(()=>Y.value||!M.value||N.value),et=v(()=>X.value&&U.value?C(U.value,X.value)===1:!1),tt=v(()=>X.value&&V.value?C(V.value,X.value)===1:!1),nt=v(()=>P.value&&X.value&&H.value?C(H.value,X.value)===1:!1),Q=v(()=>{let e=[et.value?U.value:void 0,nt.value?H.value:void 0,tt.value?V.value:void 0].filter(e=>!!e);if(e.length)return e.sort((e,t)=>C(t,e))[0]});function rt(e){Ue(e===!0?`beta`:`production`)}async function it(){if(!G.value){G.value=!0;try{let e=await le(),t=new Blob([e],{type:`application/x-x509-ca-cert`});await l({blob:t,filename:`cert.pem`,mimeType:`application/x-x509-ca-cert`})}catch(e){D.error(e)}G.value=!1}}function at(){He(),Je()}function $(e){switch(e){case`restart`:O.openTextDialog({data:{title:k(`components.dialog.title.restart`),confirmText:k(`components.form.button.restart`),contentText:k(`components.dialog.message.confirm_restart_server`),loading:Y},onConfirm:at});break;case`reset`:O.openTextDialog({data:{title:k(`components.dialog.title.reset_server`),confirmText:k(`components.form.button.reset`),contentText:k(`components.dialog.message.confirm_reset_server`),loading:Y},onConfirm:async()=>{try{await Xe()}catch{}finally{Ge.logout()}}});break;case`versions`:case`install`:O.openComponentDialog(w,{data:{title:k(`components.dialog.title.install_version`),confirmText:k(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 ot(){if(A)try{Qe.value=!0,B.value=await j.invoke(`get-app-version`)??k(`views.settings.unknown`)}catch(e){D.error(`Error getting electron app version:`,e)}finally{Qe.value=!1}}async function st(){if(A)try{q.value=!0;let e=await j.invoke(`get-update-available`);W.value=e.isUpdateAvailable?e.version:void 0}catch(e){D.error(`Error checking for electron updates:`,e)}finally{q.value=!1}}async function ct(){if(A)try{K.value=!0,await j.invoke(`quit-and-install`)}catch(e){D.error(`Error installing electron update:`,e)}finally{K.value=!1}}return x(L,()=>{z.value=L.value?.version||k(`views.settings.unknown`),L.value&&E.toggleQueryActivator(`checkVersionQuery`,!J.value)},{deep:!0,immediate:!0}),x(R,()=>{U.value=R.value?.[`dist-tags`].latest,V.value=R.value?.[`dist-tags`].alpha,H.value=R.value?.[`dist-tags`].beta},{deep:!0,immediate:!0}),x([M,N],([e,t],[n,r])=>{J.value||(e&&!n||r&&!t&&e)&&(T.queryClient.invalidateQueries({queryKey:[`api`]}),E.queryClient.invalidateQueries({queryKey:[`version`]}))}),ie(()=>{A&&(ot(),st())}),(n,i)=>{let a=ce,o=se,s=e,c=r,l=t;return u(),m(`div`,null,[f(`div`,me,[_(J)?S(``,!0):(u(),m(`div`,he,[b(s,{class:`cui-card`},{content:d(()=>[f(`div`,null,[f(`div`,ge,[f(`div`,_e,[f(`label`,ve,p(n.$t(`views.settings.beta_updates`)),1),b(a,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:d(()=>[g(p(n.$t(`views.settings.beta_updates_info`)),1)]),_:1})]),b(o,{"input-id":`betaChannel`,"model-value":_(P),class:`ml-auto shrink-0`,"onUpdate:modelValue":rt},null,8,[`model-value`])])])]),_:1})])),f(`div`,null,[i[6]||=f(`span`,{class:`card-title`},`camera.ui`,-1),b(s,{class:`cui-card`},{content:d(()=>[f(`div`,ye,[_(A)?(u(),m(`div`,be,[f(`span`,xe,p(n.$t(`views.settings.app`)),1),_(Y)?(u(),y(c,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(u(),m(`span`,Se,`v`+p(_(B)),1))])):S(``,!0),_(!1)&&_(F)?(u(),m(`div`,Ce,[f(`span`,we,p(n.$t(`views.settings.app`)),1),f(`span`,Te,[g(` v`+p(_(F)),1),_(I)&&_(I)!==_(F)?(u(),m(`span`,Ee,` (`+p(_(I))+`)`,1)):S(``,!0)])])):S(``,!0),f(`div`,De,[f(`span`,Oe,p(n.$t(`views.settings.server`)),1),_(Y)?(u(),y(c,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(u(),m(`span`,ke,[g(` v`+p(_(z)),1),_($e)?(u(),m(ne,{key:0},[g(` → v`+p(_(X)),1)],64)):S(``,!0)]))]),_(A)&&_(W)||!_(J)?(u(),m(`div`,Ae,[i[5]||=f(`div`,{class:`ml-auto`},null,-1),_(A)&&_(W)?(u(),y(l,{key:0,disabled:!_(A),loading:_(Y),class:`cui-button-medium`,label:`${n.$t(`components.form.button.update`)} (v${_(W)})`,onClick:ct},null,8,[`disabled`,`loading`,`label`])):S(``,!0),!_(J)&&_($e)?(u(),y(l,{key:1,loading:_(Y),disabled:_(Z),class:`cui-button-medium`,label:`${n.$t(`components.form.button.restart`)} (v${_(X)})`,onClick:i[0]||=e=>$(`restart`)},null,8,[`loading`,`disabled`,`label`])):!_(J)&&_(Q)?(u(),y(l,{key:2,loading:_(Y),disabled:_(Z),class:`cui-button-medium`,label:`${n.$t(`components.form.button.update`)} (v${_(Q)})`,onClick:i[1]||=e=>$(`install`)},null,8,[`loading`,`disabled`,`label`])):S(``,!0),_(J)?S(``,!0):(u(),y(l,{key:3,loading:_(Y),disabled:_(Z),class:`cui-button-medium`,label:n.$t(`components.form.button.manage`),onClick:i[2]||=e=>$(`versions`)},null,8,[`loading`,`disabled`,`label`]))])):S(``,!0)])]),_:1})]),_(A)?S(``,!0):(u(),m(`div`,je,[f(`span`,Me,p(n.$t(`views.settings.certificate`)),1),b(s,{class:`cui-card`},{content:d(()=>[f(`div`,Ne,[f(`span`,Pe,p(n.$t(`views.settings.certificate_info`)),1),b(l,{loading:_(G)||_(Y),disabled:_(Z),class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.download`),onClick:it},null,8,[`loading`,`disabled`,`label`])])]),_:1})])),f(`div`,null,[f(`span`,Fe,p(n.$t(`views.settings.restart_server`)),1),b(s,{class:`cui-card`},{content:d(()=>[f(`div`,Ie,[f(`span`,Le,p(n.$t(`views.settings.restart_server_info`)),1),b(l,{loading:_(Y),disabled:_(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:_(ee))(void 0,`master`)?(u(),m(`div`,Re,[f(`span`,ze,p(n.$t(`views.settings.reset_server`)),1),b(s,{class:`cui-card !border-red-900`},{content:d(()=>[f(`div`,Be,[f(`span`,Ve,p(n.$t(`views.settings.reset_server_info`)),1),b(l,{loading:_(Y),disabled:_(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})])):S(``,!0)])])}}});export{w as default};
@@ -1 +1 @@
1
- import{F as e,O as t,Ot as n,kr as r,wt as i}from"./vendor-cameraui-BqkrW4Bb.js";import{D as a,Jn as o,Jt as s,Y as c,Zn as l,k as u,ln as d,qt as f}from"./api-milc5VEE.js";import{Gn as p,Nn as m,Xn as h,_r as g,an as _,b as v,bn as y,br as b,cn as x,cr as S,fr as C,gr as w,hn as T,in as E,ir as D,mr as O,on as k,pn as A,qt as j,rr as M,sn as N,v as P,wn as F,y as I}from"./vendor-CSg6_Jfu.js";import{a as L}from"./useElectron-Dg8tFzam.js";import{I as R,R as z,j as B,s as V,x as H}from"./vendor-primevue-DYzLjOFZ.js";import{t as U}from"./delete-xWUQUP2x.js";import{t as W}from"./CuiDataTable-CTT9IFeR.js";var G={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function K(e,t){return m(),x(`svg`,G,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`m21.7 13.35l-1 1l-2.05-2.05l1-1a.55.55 0 0 1 .77 0l1.28 1.28c.21.21.21.56 0 .77M12 18.94l6.06-6.06l2.05 2.05L14.06 21H12zM12 14c-4.42 0-8 1.79-8 4v2h6v-1.89l4-4c-.66-.08-1.33-.11-2-.11m0-10a4 4 0 0 0-4 4a4 4 0 0 0 4 4a4 4 0 0 0 4-4a4 4 0 0 0-4-4`},null,-1)]])}var q=D({name:`mdi-account-edit`,render:K}),J={for:`username`,class:`cui-label`},Y={for:`password`,class:`cui-label`},X={for:`passwordConfirm`,class:`cui-label`},Z={for:`role`,class:`cui-label`},Q=T({__name:`UserForm`,props:{user:{}},setup(e,{expose:n}){let i=new o,s=e,c=L(),d=l(),{t:f}=r(),g=y(`dialogRefProps`),{mutateAsync:x,isPending:C}=i.createUserQuery(),{mutateAsync:T,isPending:D}=i.patchUserQuery(),{user:M}=O(s),R=p(`formRef`),H=S({}),U=S([`user`,`admin`]),W=E(()=>!!(g.loading?.value||C.value||D.value));async function G(){let e=await R.value?.validate();if(!e?.valid)return c.error(`Validation failed`,e),d.add({severity:`error`,detail:f(`components.toast.validation_failed`),life:3e3}),null;M.value?await T({username:M.value.username,userData:H.value}):await x({userData:H.value})}return n({isLoading:W,onConfirm:G}),(e,n)=>{let r=t,i=z,o=V,s=B;return m(),k(w(v),{ref_key:`formRef`,ref:R,class:`flex flex-col gap-6`,"validation-schema":w(M)?w(u):w(a)},{default:h(()=>[A(w(I),{modelValue:w(H).username,"onUpdate:modelValue":n[0]||=e=>w(H).username=e,modelModifiers:{trim:!0},value:w(M)?.username??w(H).username,name:`username`,as:`div`,class:`flex flex-col field-gap`},{default:h(({field:t,errors:n})=>[_(`label`,J,b(e.$t(`components.form.label.username`)),1),A(i,null,{default:h(()=>[A(r,F(t,{invalid:n.length>0,loading:w(W),type:`text`}),null,16,[`invalid`,`loading`])]),_:2},1024),A(j,{name:`fade`},{default:h(()=>[A(w(P),{name:`username`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`value`]),A(w(I),{modelValue:w(H).password,"onUpdate:modelValue":n[1]||=e=>w(H).password=e,name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:h(({field:t,errors:n})=>[_(`label`,Y,b(e.$t(`components.form.label.new_password`)),1),A(i,null,{default:h(()=>[A(o,F({invalid:n.length>0},t,{loading:w(W),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),A(j,{name:`fade`},{default:h(()=>[A(w(P),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),A(w(I),{modelValue:w(H).passwordConfirm,"onUpdate:modelValue":n[2]||=e=>w(H).passwordConfirm=e,name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:h(({field:t,errors:n})=>[_(`label`,X,b(e.$t(`components.form.label.new_password_confirm`)),1),A(i,null,{default:h(()=>[A(o,F({invalid:n.length>0},t,{loading:w(W),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),A(j,{name:`fade`},{default:h(()=>[A(w(P),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),w(M)?.role===`master`?N(``,!0):(m(),k(w(I),{key:0,"model-value":w(H).role,name:`role`,as:`div`,class:`flex flex-col field-gap`},{default:h(({errors:t})=>[_(`label`,Z,b(e.$t(`components.form.label.role`)),1),A(i,null,{default:h(()=>[A(s,{"model-value":w(M)?.role??w(H).role,options:w(U),invalid:t.length>0,loading:w(W),type:`text`,onValueChange:n[3]||=e=>w(H).role=e},null,8,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),A(j,{name:`fade`},{default:h(()=>[A(w(P),{name:`role`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`]))]),_:1},8,[`validation-schema`])}}}),$={class:`flex flex-col w-full gap-6`},ee={class:`card-title`},te={class:`flex flex-col gap-6`},ne={class:`flex items-center gap-2`},re={class:`flex flex-col`},ie={class:`text-sm font-semibold text-color`},ae={class:`text-xs text-muted`},oe={class:`relative w-6 h-6`},se={class:`flex flex-row items-end justify-end gap-2`},ce=T({__name:`SettingsUsers`,setup(t){let a=new o,l=c(),{mdBreakpoint:u}=d(),{t:v}=r(),y=S({pageSize:15,page:1}),{data:T,isBusy:D}=a.getUsersQuery(y),{mutate:O,isPending:k}=a.removeUserQuery(),j={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},N=S({global:{value:null,matchMode:R.CONTAINS}}),P=p(`menuRef`),F=E(()=>D.value||k.value),I=E(()=>[{label:v(`views.settings.edit`),icon:q,buttonProps:{disabled:F.value},onClick:e=>{L(e)}},{label:v(`views.settings.remove`),icon:U,iconProps:{class:`text-red-500`},labelProps:{class:`text-red-500`},buttonProps:{disabled:F.value,severity:`danger`},onClick:e=>{O({username:e.username})}}]);function L(e){l.openComponentDialog(Q,{data:{title:v(e?`components.dialog.title.edit_user`:`components.dialog.title.create_new_user`),confirmText:v(e?`components.form.button.save`:`components.form.button.add`),loading:F,contentProps:{user:C(e)}}})}return(t,r)=>{let a=i,o=s,c=H,l=n,d=W,p=e;return m(),x(`div`,null,[_(`div`,$,[_(`div`,null,[_(`span`,ee,b(t.$t(`views.settings.registered_users`)),1),A(p,{class:`cui-card`},{content:h(()=>[_(`div`,te,[A(d,{filters:w(N),"onUpdate:filters":r[0]||=e=>M(N)?N.value=e:null,value:w(T)?.result,paginator:w(y).page>1||w(T)?.result&&w(T).result.length>15,"data-key":`id`,"filter-display":`menu`,loading:w(F),"global-filter-fields":[`username`],pt:j,"striped-rows":``,scrollable:``},{loading:h(()=>[A(a,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),default:h(()=>[A(c,{field:`username`,"align-frozen":`left`,frozen:!w(u),header:t.$t(`views.settings.title_user`),"header-class":`p-2 h-7 min-h-7 max-h-7 w-40 min-w-40 max-w-40`,class:`p-2 h-7 min-h-7 max-h-7 w-40 min-w-40 max-w-40`},{body:h(({data:e})=>[_(`div`,ne,[A(o,{src:e.avatar,size:54},null,8,[`src`]),_(`div`,re,[_(`span`,ie,b(e.username),1),_(`span`,ae,b(e.role),1)])])]),_:1},8,[`frozen`,`header`]),A(c,{field:`action`,"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7 text-right`},{body:h(({data:e})=>[_(`div`,null,[A(l,{severity:`secondary`,text:``,rounded:``,loading:w(F),class:`cui-icon-md`,onClick:t=>w(P)?.toggleMenu(t,void 0,e)},{icon:h(()=>[_(`div`,oe,[_(`div`,{class:g([`absolute top-1 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full transform transition-all duration-100 origin-center bg-current`,{"w-4 h-[2px] rotate-45 top-1/2 -translate-y-1/2 rounded-none":w(P)?.isOpen&&w(P)?.data?._id===e._id}])},null,2),_(`div`,{class:g([`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-1 h-1 rounded-full transition-all duration-100 bg-current`,{"opacity-0 scale-0":w(P)?.isOpen&&w(P)?.data?._id===e._id}])},null,2),_(`div`,{class:g([`absolute bottom-1 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full transform transition-all duration-100 origin-center bg-current`,{"w-4 h-[2px] -rotate-45 bottom-1/2 translate-y-1/2 rounded-none":w(P)?.isOpen&&w(P)?.data?._id===e._id}])},null,2)])]),_:2},1032,[`loading`,`onClick`])])]),_:1})]),_:1},8,[`filters`,`value`,`paginator`,`loading`]),_(`div`,se,[A(l,{severity:`success`,loading:w(F),class:`cui-button-medium mr-4 md:mr-0`,label:t.$t(`components.form.button.create_new_user`),onClick:r[1]||=e=>L()},null,8,[`loading`,`label`])])])]),_:1})])]),A(f,{ref_key:`menuRef`,ref:P,items:w(I),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}});export{ce as default};
1
+ import{F as e,O as t,Ot as n,kr as r,wt as i}from"./vendor-cameraui-Cgb5z6NJ.js";import{D as a,Jn as o,Jt as s,Y as c,Zn as l,k as u,ln as d,qt as f}from"./api-Cc-rMHwl.js";import{Gn as p,Nn as m,Xn as h,_r as g,an as _,b as v,bn as y,br as b,cn as x,cr as S,fr as C,gr as w,hn as T,in as E,ir as D,mr as O,on as k,pn as A,qt as j,rr as M,sn as N,v as P,wn as F,y as I}from"./vendor-CSg6_Jfu.js";import{a as L}from"./useElectron-KnqvZz0q.js";import{I as R,R as z,j as B,s as V,x as H}from"./vendor-primevue-CyD8V_Ft.js";import{t as U}from"./delete-xWUQUP2x.js";import{t as W}from"./CuiDataTable-Dk8LJl5S.js";var G={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function K(e,t){return m(),x(`svg`,G,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`m21.7 13.35l-1 1l-2.05-2.05l1-1a.55.55 0 0 1 .77 0l1.28 1.28c.21.21.21.56 0 .77M12 18.94l6.06-6.06l2.05 2.05L14.06 21H12zM12 14c-4.42 0-8 1.79-8 4v2h6v-1.89l4-4c-.66-.08-1.33-.11-2-.11m0-10a4 4 0 0 0-4 4a4 4 0 0 0 4 4a4 4 0 0 0 4-4a4 4 0 0 0-4-4`},null,-1)]])}var q=D({name:`mdi-account-edit`,render:K}),J={for:`username`,class:`cui-label`},Y={for:`password`,class:`cui-label`},X={for:`passwordConfirm`,class:`cui-label`},Z={for:`role`,class:`cui-label`},Q=T({__name:`UserForm`,props:{user:{}},setup(e,{expose:n}){let i=new o,s=e,c=L(),d=l(),{t:f}=r(),g=y(`dialogRefProps`),{mutateAsync:x,isPending:C}=i.createUserQuery(),{mutateAsync:T,isPending:D}=i.patchUserQuery(),{user:M}=O(s),R=p(`formRef`),H=S({}),U=S([`user`,`admin`]),W=E(()=>!!(g.loading?.value||C.value||D.value));async function G(){let e=await R.value?.validate();if(!e?.valid)return c.error(`Validation failed`,e),d.add({severity:`error`,detail:f(`components.toast.validation_failed`),life:3e3}),null;M.value?await T({username:M.value.username,userData:H.value}):await x({userData:H.value})}return n({isLoading:W,onConfirm:G}),(e,n)=>{let r=t,i=z,o=V,s=B;return m(),k(w(v),{ref_key:`formRef`,ref:R,class:`flex flex-col gap-6`,"validation-schema":w(M)?w(u):w(a)},{default:h(()=>[A(w(I),{modelValue:w(H).username,"onUpdate:modelValue":n[0]||=e=>w(H).username=e,modelModifiers:{trim:!0},value:w(M)?.username??w(H).username,name:`username`,as:`div`,class:`flex flex-col field-gap`},{default:h(({field:t,errors:n})=>[_(`label`,J,b(e.$t(`components.form.label.username`)),1),A(i,null,{default:h(()=>[A(r,F(t,{invalid:n.length>0,loading:w(W),type:`text`}),null,16,[`invalid`,`loading`])]),_:2},1024),A(j,{name:`fade`},{default:h(()=>[A(w(P),{name:`username`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`value`]),A(w(I),{modelValue:w(H).password,"onUpdate:modelValue":n[1]||=e=>w(H).password=e,name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:h(({field:t,errors:n})=>[_(`label`,Y,b(e.$t(`components.form.label.new_password`)),1),A(i,null,{default:h(()=>[A(o,F({invalid:n.length>0},t,{loading:w(W),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),A(j,{name:`fade`},{default:h(()=>[A(w(P),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),A(w(I),{modelValue:w(H).passwordConfirm,"onUpdate:modelValue":n[2]||=e=>w(H).passwordConfirm=e,name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:h(({field:t,errors:n})=>[_(`label`,X,b(e.$t(`components.form.label.new_password_confirm`)),1),A(i,null,{default:h(()=>[A(o,F({invalid:n.length>0},t,{loading:w(W),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),A(j,{name:`fade`},{default:h(()=>[A(w(P),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),w(M)?.role===`master`?N(``,!0):(m(),k(w(I),{key:0,"model-value":w(H).role,name:`role`,as:`div`,class:`flex flex-col field-gap`},{default:h(({errors:t})=>[_(`label`,Z,b(e.$t(`components.form.label.role`)),1),A(i,null,{default:h(()=>[A(s,{"model-value":w(M)?.role??w(H).role,options:w(U),invalid:t.length>0,loading:w(W),type:`text`,onValueChange:n[3]||=e=>w(H).role=e},null,8,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),A(j,{name:`fade`},{default:h(()=>[A(w(P),{name:`role`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`]))]),_:1},8,[`validation-schema`])}}}),$={class:`flex flex-col w-full gap-6`},ee={class:`card-title`},te={class:`flex flex-col gap-6`},ne={class:`flex items-center gap-2`},re={class:`flex flex-col`},ie={class:`text-sm font-semibold text-color`},ae={class:`text-xs text-muted`},oe={class:`relative w-6 h-6`},se={class:`flex flex-row items-end justify-end gap-2`},ce=T({__name:`SettingsUsers`,setup(t){let a=new o,l=c(),{mdBreakpoint:u}=d(),{t:v}=r(),y=S({pageSize:15,page:1}),{data:T,isBusy:D}=a.getUsersQuery(y),{mutate:O,isPending:k}=a.removeUserQuery(),j={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},N=S({global:{value:null,matchMode:R.CONTAINS}}),P=p(`menuRef`),F=E(()=>D.value||k.value),I=E(()=>[{label:v(`views.settings.edit`),icon:q,buttonProps:{disabled:F.value},onClick:e=>{L(e)}},{label:v(`views.settings.remove`),icon:U,iconProps:{class:`text-red-500`},labelProps:{class:`text-red-500`},buttonProps:{disabled:F.value,severity:`danger`},onClick:e=>{O({username:e.username})}}]);function L(e){l.openComponentDialog(Q,{data:{title:v(e?`components.dialog.title.edit_user`:`components.dialog.title.create_new_user`),confirmText:v(e?`components.form.button.save`:`components.form.button.add`),loading:F,contentProps:{user:C(e)}}})}return(t,r)=>{let a=i,o=s,c=H,l=n,d=W,p=e;return m(),x(`div`,null,[_(`div`,$,[_(`div`,null,[_(`span`,ee,b(t.$t(`views.settings.registered_users`)),1),A(p,{class:`cui-card`},{content:h(()=>[_(`div`,te,[A(d,{filters:w(N),"onUpdate:filters":r[0]||=e=>M(N)?N.value=e:null,value:w(T)?.result,paginator:w(y).page>1||w(T)?.result&&w(T).result.length>15,"data-key":`id`,"filter-display":`menu`,loading:w(F),"global-filter-fields":[`username`],pt:j,"striped-rows":``,scrollable:``},{loading:h(()=>[A(a,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),default:h(()=>[A(c,{field:`username`,"align-frozen":`left`,frozen:!w(u),header:t.$t(`views.settings.title_user`),"header-class":`p-2 h-7 min-h-7 max-h-7 w-40 min-w-40 max-w-40`,class:`p-2 h-7 min-h-7 max-h-7 w-40 min-w-40 max-w-40`},{body:h(({data:e})=>[_(`div`,ne,[A(o,{src:e.avatar,size:54},null,8,[`src`]),_(`div`,re,[_(`span`,ie,b(e.username),1),_(`span`,ae,b(e.role),1)])])]),_:1},8,[`frozen`,`header`]),A(c,{field:`action`,"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7 text-right`},{body:h(({data:e})=>[_(`div`,null,[A(l,{severity:`secondary`,text:``,rounded:``,loading:w(F),class:`cui-icon-md`,onClick:t=>w(P)?.toggleMenu(t,void 0,e)},{icon:h(()=>[_(`div`,oe,[_(`div`,{class:g([`absolute top-1 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full transform transition-all duration-100 origin-center bg-current`,{"w-4 h-[2px] rotate-45 top-1/2 -translate-y-1/2 rounded-none":w(P)?.isOpen&&w(P)?.data?._id===e._id}])},null,2),_(`div`,{class:g([`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-1 h-1 rounded-full transition-all duration-100 bg-current`,{"opacity-0 scale-0":w(P)?.isOpen&&w(P)?.data?._id===e._id}])},null,2),_(`div`,{class:g([`absolute bottom-1 left-1/2 -translate-x-1/2 w-1 h-1 rounded-full transform transition-all duration-100 origin-center bg-current`,{"w-4 h-[2px] -rotate-45 bottom-1/2 translate-y-1/2 rounded-none":w(P)?.isOpen&&w(P)?.data?._id===e._id}])},null,2)])]),_:2},1032,[`loading`,`onClick`])])]),_:1})]),_:1},8,[`filters`,`value`,`paginator`,`loading`]),_(`div`,se,[A(l,{severity:`success`,loading:w(F),class:`cui-button-medium mr-4 md:mr-0`,label:t.$t(`components.form.button.create_new_user`),onClick:r[1]||=e=>L()},null,8,[`loading`,`label`])])])]),_:1})])]),A(f,{ref_key:`menuRef`,ref:P,items:w(I),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}});export{ce as default};