@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,4 +1,4 @@
1
- import{Ot as e,Pt as t,St as n,Ur as r,Yr as i,kr as a,vi as o}from"./vendor-cameraui-BqkrW4Bb.js";import{V as s,_n as c,ln as l,m as u,on as d}from"./api-milc5VEE.js";import{$t as f,Fn as p,Gn as m,Mn as h,Nn as g,Tn as _,Xn as v,Zn as y,Zt as b,_r as x,an as S,br as C,cn as w,cr as T,dr as ee,en as E,gr as D,hn as O,in as k,ir as A,jn as j,mr as te,on as M,or as N,pn as P,qn as F,sn as I,wn as ne,yr as L,zn as R}from"./vendor-CSg6_Jfu.js";import{a as re}from"./useElectron-Dg8tFzam.js";import{p as z}from"./vendor-core-BQegq2Q6.js";import{o as B}from"./vendor-primevue-DYzLjOFZ.js";import{a as V,i as H,n as U,r as W,t as G}from"./vendor-xterm-BafMBqaV.js";import{t as ie}from"./back-filled-r7bN5ObT.js";import{t as K}from"./settings-DY0TJSAM.js";import{n as ae,t as oe}from"./zoom-in-D7BJNotF.js";import{n as se,t as ce}from"./CuiTopNavbarItem-CoTQmfY7.js";import{t as le}from"./trash-2-B-di2M48.js";var q={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function ue(e,t){return g(),w(`svg`,q,[...t[0]||=[S(`path`,{fill:`currentColor`,d:`M18 28A12 12 0 1 0 6 16v6.2l-3.6-3.6L1 20l6 6l6-6l-1.4-1.4L8 22.2V16a10 10 0 1 1 10 10Z`},null,-1)]])}var de=A({name:`carbon-reset`,render:ue}),fe={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function J(e,t){return g(),w(`svg`,fe,[...t[0]||=[S(`path`,{fill:`currentColor`,d:`M17 15V8h-2v7H8v2h7v7h2v-7h7v-2z`},null,-1)]])}var pe=A({name:`carbon-add`,render:J}),me=d(O({__name:`CuiTerminal`,props:{autoConnect:{type:Boolean,default:!0},cwd:{},shell:{},options:{default:()=>({fontSize:14})},inputTransform:{}},emits:[`connected`,`disconnected`,`error`],setup(e,{expose:t,emit:i}){let a=e,s=i,{isConnected:c,isConnecting:l,isClientConnected:u,error:d,connect:f,write:p,resize:v,close:y}=n(),{options:b}=te(a),x={fontSize:14,scrollback:5e3,allowTransparency:!1,disableStdin:!1,cursorBlink:!0,allowProposedApi:!0,theme:{background:`#000000`}},S={"\x1B[A":`\x1BOA`,"\x1B[B":`\x1BOB`,"\x1B[C":`\x1BOC`,"\x1B[D":`\x1BOD`,"\x1B[H":`\x1BOH`,"\x1B[F":`\x1BOF`},C=m(`terminalContainerRef`),T=ee(null),E=null,D=null,O=null,k=null,A=r(C);function M(e){c.value&&p(a.inputTransform?a.inputTransform(e):e)}function N(e){T.value&&T.value.write(e)}function P(){if(!(!T.value||!E))try{E.fit()}catch{}}function I(){P(),c.value&&T.value&&v({cols:T.value.cols,rows:T.value.rows})}function ne(){T.value&&_(()=>{P(),T.value&&(T.value.refresh(0,T.value.rows-1),T.value.focus())})}let L=o(I,100);function R(e){if(e)try{e.dispose()}catch{}}function re(){C.value&&(T.value=new G({...x,...b.value}),E=new V,k=new U,D=new H,O=new W,T.value.loadAddon(D),T.value.loadAddon(O),T.value.loadAddon(k),T.value.loadAddon(E),T.value.open(C.value),T.value.onData(M),T.value.onResize(({cols:e,rows:t})=>{c.value&&v({cols:e,rows:t})}),k.onContextLoss(()=>{R(k),k=null}),I())}async function z(){T.value&&await f({cols:T.value.cols,rows:T.value.rows,cwd:a.cwd,shell:a.shell,onData:N,onClose:()=>{T.value?.write(`\r
1
+ import{Ot as e,Pt as t,St as n,Ur as r,Yr as i,kr as a,vi as o}from"./vendor-cameraui-Cgb5z6NJ.js";import{V as s,_n as c,ln as l,m as u,on as d}from"./api-Cc-rMHwl.js";import{$t as f,Fn as p,Gn as m,Mn as h,Nn as g,Tn as _,Xn as v,Zn as y,Zt as b,_r as x,an as S,br as C,cn as w,cr as T,dr as ee,en as E,gr as D,hn as O,in as k,ir as A,jn as j,mr as te,on as M,or as N,pn as P,qn as F,sn as I,wn as ne,yr as L,zn as R}from"./vendor-CSg6_Jfu.js";import{a as re}from"./useElectron-KnqvZz0q.js";import{p as z}from"./vendor-core-BJsSXMFQ.js";import{o as B}from"./vendor-primevue-CyD8V_Ft.js";import{a as V,i as H,n as U,r as W,t as G}from"./vendor-xterm-BafMBqaV.js";import{t as ie}from"./back-filled-r7bN5ObT.js";import{t as K}from"./settings-DY0TJSAM.js";import{n as ae,t as oe}from"./zoom-in-D7BJNotF.js";import{n as se,t as ce}from"./CuiTopNavbarItem-BZawroJz.js";import{t as le}from"./trash-2-B-di2M48.js";var q={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function ue(e,t){return g(),w(`svg`,q,[...t[0]||=[S(`path`,{fill:`currentColor`,d:`M18 28A12 12 0 1 0 6 16v6.2l-3.6-3.6L1 20l6 6l6-6l-1.4-1.4L8 22.2V16a10 10 0 1 1 10 10Z`},null,-1)]])}var de=A({name:`carbon-reset`,render:ue}),fe={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function J(e,t){return g(),w(`svg`,fe,[...t[0]||=[S(`path`,{fill:`currentColor`,d:`M17 15V8h-2v7H8v2h7v7h2v-7h7v-2z`},null,-1)]])}var pe=A({name:`carbon-add`,render:J}),me=d(O({__name:`CuiTerminal`,props:{autoConnect:{type:Boolean,default:!0},cwd:{},shell:{},options:{default:()=>({fontSize:14})},inputTransform:{}},emits:[`connected`,`disconnected`,`error`],setup(e,{expose:t,emit:i}){let a=e,s=i,{isConnected:c,isConnecting:l,isClientConnected:u,error:d,connect:f,write:p,resize:v,close:y}=n(),{options:b}=te(a),x={fontSize:14,scrollback:5e3,allowTransparency:!1,disableStdin:!1,cursorBlink:!0,allowProposedApi:!0,theme:{background:`#000000`}},S={"\x1B[A":`\x1BOA`,"\x1B[B":`\x1BOB`,"\x1B[C":`\x1BOC`,"\x1B[D":`\x1BOD`,"\x1B[H":`\x1BOH`,"\x1B[F":`\x1BOF`},C=m(`terminalContainerRef`),T=ee(null),E=null,D=null,O=null,k=null,A=r(C);function M(e){c.value&&p(a.inputTransform?a.inputTransform(e):e)}function N(e){T.value&&T.value.write(e)}function P(){if(!(!T.value||!E))try{E.fit()}catch{}}function I(){P(),c.value&&T.value&&v({cols:T.value.cols,rows:T.value.rows})}function ne(){T.value&&_(()=>{P(),T.value&&(T.value.refresh(0,T.value.rows-1),T.value.focus())})}let L=o(I,100);function R(e){if(e)try{e.dispose()}catch{}}function re(){C.value&&(T.value=new G({...x,...b.value}),E=new V,k=new U,D=new H,O=new W,T.value.loadAddon(D),T.value.loadAddon(O),T.value.loadAddon(k),T.value.loadAddon(E),T.value.open(C.value),T.value.onData(M),T.value.onResize(({cols:e,rows:t})=>{c.value&&v({cols:e,rows:t})}),k.onContextLoss(()=>{R(k),k=null}),I())}async function z(){T.value&&await f({cols:T.value.cols,rows:T.value.rows,cwd:a.cwd,shell:a.shell,onData:N,onClose:()=>{T.value?.write(`\r
2
2
  \x1B[33mSession closed.\x1B[0m\r
3
3
  `)},onError:e=>{s(`error`,e)}})}async function B(){await y()}function ie(){T.value?.clear()}function K(){T.value?.focus()}function ae(e){T.value?.modes.applicationCursorKeysMode&&(e=S[e]??e),M(e)}return F(b,()=>{T.value&&(T.value.options={...x,...b.value},L())},{deep:!0}),F(c,e=>{e?(s(`connected`),_(()=>T.value?.focus())):s(`disconnected`)}),F([A.height,A.width],()=>{L()}),j(()=>{re(),a.autoConnect&&z()}),h(()=>{y(),R(E),R(k),R(D),R(O),R(T.value)}),t({connect:z,disconnect:B,clear:ie,focus:K,resize:I,refresh:ne,sendInput:ae,isConnected:c,isConnecting:l,isClientConnected:u,error:d,term:T}),(e,t)=>(g(),w(`div`,{ref_key:`terminalContainerRef`,ref:C,class:`cui-terminal w-full h-full bg-black overflow-hidden p-2 min-w-0`},null,512))}}),[[`__scopeId`,`data-v-82bcb47c`]]),Y=[{id:`esc`,label:`Esc`,sequence:`\x1B`},{id:`tab`,label:`Tab`,sequence:` `},{id:`ctrl`,label:`Ctrl`,sequence:``,modifier:!0},{id:`alt`,label:`Alt`,sequence:``,modifier:!0},{id:`home`,label:`Home`,sequence:`\x1B[H`},{id:`end`,label:`End`,sequence:`\x1B[F`},{id:`up`,label:`↑`,sequence:`\x1B[A`},{id:`down`,label:`↓`,sequence:`\x1B[B`},{id:`left`,label:`←`,sequence:`\x1B[D`},{id:`right`,label:`→`,sequence:`\x1B[C`},{id:`pgup`,label:`PgUp`,sequence:`\x1B[5~`},{id:`pgdn`,label:`PgDn`,sequence:`\x1B[6~`},{id:`del`,label:`Del`,sequence:`\x1B[3~`},{id:`slash`,label:`/`,sequence:`/`},{id:`dash`,label:`-`,sequence:`-`},{id:`pipe`,label:`|`,sequence:`|`},{id:`tilde`,label:`~`,sequence:`~`},{id:`underscore`,label:`_`,sequence:`_`}],X=[`tab`,`ctrl`,`up`,`down`,`left`,`right`],Z={a:``,b:``,c:``,d:``,e:``,f:``,g:`\x07`,h:`\b`,i:` `,j:`
4
4
  `,k:`\v`,l:`\f`,m:`\r`,n:``,o:``,p:``,q:``,r:``,s:``,t:``,u:``,v:``,w:``,x:``,y:``,z:``},he=[`onPointerdown`],Q={key:0,class:`flex flex-wrap gap-1.5 px-2 py-2 bg-black/90 border-t border-white/10`},ge=[`onClick`],_e=d(O({__name:`CuiTerminalToolbar`,emits:[`send`],setup(e,{expose:t,emit:n}){let r=n,{smBreakpoint:a}=l(),o=Y,s=i(`cui-terminal-toolbar-keys`,X),c=T(!1),u=N(new Set),d=k(()=>s.value.map(e=>o.find(t=>t.id===e)).filter(Boolean));function m(e){if(u.has(`ctrl`)&&e.length===1){let t=Z[e.toLowerCase()];if(t)return t}return u.has(`alt`)&&e.length===1?`\x1b${e}`:e}function h(e){if(e.modifier){u.has(e.id)?u.delete(e.id):u.add(e.id);return}let t=m(e.sequence);r(`send`,t),u.clear()}function _(e){let t=s.value.indexOf(e);t>=0?s.value.splice(t,1):s.value.push(e)}return t({activeModifiers:u,applyModifiers:m}),(e,t)=>{let n=K;return g(),w(`div`,null,[S(`div`,{class:x([`cui-terminal-toolbar flex items-center gap-1 px-2 py-1.5 bg-black/80 border-t border-white/10 overflow-x-auto no-scrollbar`,{"pt-3":!D(a)}])},[(g(!0),w(E,null,p(D(d),e=>(g(),w(`button`,{key:e.id,class:x([`toolbar-key flex-shrink-0 px-2.5 py-1.5 rounded text-xs font-mono select-none transition-colors duration-100 border min-w-[32px] text-center cursor-pointer`,{"bg-white/20 border-white/30 text-white":e.modifier&&D(u).has(e.id),"bg-white/5 border-white/10 text-white/70 hover:bg-white/15 hover:text-white active:bg-white/25":!(e.modifier&&D(u).has(e.id))}]),onPointerdown:f(t=>h(e),[`prevent`])},C(e.label),43,he))),128)),S(`button`,{class:x([`toolbar-key flex-shrink-0 px-2 py-1.5 rounded text-xs select-none transition-colors duration-100 border ml-auto`,{"bg-white/20 border-white/30 text-white":D(c),"bg-white/5 border-white/10 text-white/50 hover:bg-white/15 hover:text-white":!D(c)}]),onPointerdown:t[0]||=f(e=>c.value=!D(c),[`prevent`])},[P(n,{class:`w-3.5 h-3.5`})],34)],2),D(c)?(g(),w(`div`,Q,[(g(!0),w(E,null,p(D(o),e=>(g(),w(`button`,{key:e.id,class:x([`px-2.5 py-1 rounded text-xs font-mono select-none transition-colors duration-100 border`,{"bg-white/20 border-white/30 text-white":D(s).includes(e.id),"bg-white/5 border-white/10 text-white/30":!D(s).includes(e.id)}]),onClick:t=>_(e.id)},C(e.label),11,ge))),128))])):I(``,!0)])}}}),[[`__scopeId`,`data-v-e111c595`]]),ve={class:`h-full w-full dark-mode relative overflow-hidden`},ye={class:`relative w-6 h-6`},$=O({__name:`Terminal`,props:{navbarWidth:{default:0},navbarLeft:{default:0}},setup(n){let i=n,o=re(),{t:l}=a(),d=c(),{uiSettings:f}=z(d),{navbarWidth:C,navbarLeft:ee}=te(i),O=m(`toolbar`),A=T([]),N=T(``),F=T(0),I=new Map,V=window.innerHeight,H=0,U=r(O),W=k(()=>C.value+ee.value),G=k(()=>{let e=document.getElementById(`container`);return e&&parseFloat(getComputedStyle(e).paddingBottom)||0}),K=k(()=>F.value<=0?0:Math.max(0,F.value-G.value)),q=k(()=>A.value.find(e=>e.id===N.value)),ue=k(()=>({fontSize:f.value.console.zoom})),fe=T([{label:l(`components.form.tooltip.clear`),icon:le,buttonProps:{severity:`danger`},command:()=>{Q()?.clear()}},{label:l(`components.form.tooltip.zoom_out`),icon:ae,command:()=>{ke()}},{label:l(`components.form.tooltip.zoom_in`),icon:oe,command:()=>{Oe()}}]);function J(){V=window.innerHeight,Y()}function Y(){let e=window.visualViewport;if(!e)return;let t=Math.max(0,V-e.height-e.offsetTop);t!==F.value&&(F.value=t,Z(t>0))}function X(e){e.target?.closest?.(`.cui-terminal-toolbar`)||e.preventDefault()}function Z(e){e?(document.addEventListener(`touchmove`,X,{passive:!1}),document.documentElement.style.overscrollBehavior=`none`):(document.removeEventListener(`touchmove`,X),document.documentElement.style.overscrollBehavior=``)}function he(e,t){t?I.set(e,t):I.delete(e)}function Q(){return I.get(N.value)}function ge(){return H++,{id:u(12),name:`Terminal ${H}`,isConnected:!1,isConnecting:!0}}function $(){let e=ge();A.value.push(e),N.value=e.id}async function be(e){let t=A.value.findIndex(t=>t.id===e);if(t===-1)return;let n=I.get(e);if(n&&await n.disconnect(),A.value.splice(t,1),I.delete(e),N.value===e&&A.value.length>0){let e=Math.min(t,A.value.length-1);N.value=A.value[e].id,_(()=>{Q()?.refresh()})}}function xe(e){N.value=e,_(()=>{I.get(e)?.refresh()})}function Se(e){if(!O.value?.activeModifiers?.size)return e;let t=O.value.applyModifiers(e);return O.value.activeModifiers.clear(),t}function Ce(e){Q()?.sendInput(e)}async function we(){let e=Q();e&&(await e.disconnect(),await e.connect())}function Te(e){let t=A.value.find(t=>t.id===e);t&&(t.isConnected=!0,t.isConnecting=!1),e===N.value&&_(()=>{Q()?.refresh()})}function Ee(e){let t=A.value.find(t=>t.id===e);t&&(t.isConnected=!1,t.isConnecting=!1)}function De(e,t){o.error(`Terminal ${e} error:`,t);let n=A.value.find(t=>t.id===e);n&&(n.isConnected=!1,n.isConnecting=!1)}function Oe(){f.value.console.zoom!==20&&(f.value.console.zoom++,_(()=>{Q()?.resize()}))}function ke(){f.value.console.zoom!==8&&(f.value.console.zoom--,_(()=>{Q()?.resize()}))}return j(()=>{window.addEventListener(`resize`,J);let e=window.visualViewport;e&&(e.addEventListener(`resize`,Y),e.addEventListener(`scroll`,Y)),$()}),h(()=>{window.removeEventListener(`resize`,J);let e=window.visualViewport;e&&(e.removeEventListener(`resize`,Y),e.removeEventListener(`scroll`,Y)),Z(!1)}),(n,r)=>{let i=ie,a=e,o=s,c=ce,u=pe,d=se,f=B,m=de,h=t;return g(),w(`div`,ve,[P(o,{position:`left`},{default:v(()=>[P(a,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:r[0]||=e=>n.$router.push(`/menu`)},{icon:v(()=>[P(i,{class:`w-6 h-6`})]),_:1})]),_:1}),P(d,{scrollable:``,"left-offset":D(W),animate:``},{left:v(()=>[(g(!0),w(E,null,p(D(A),e=>(g(),M(c,{key:e.id,type:`tab`,label:e.name,active:D(N)===e.id,status:e.isConnected?`connected`:e.isConnecting?`connecting`:`disconnected`,closeable:D(A).length>1,onClick:t=>xe(e.id),onClose:t=>be(e.id)},null,8,[`label`,`active`,`status`,`closeable`,`onClick`,`onClose`]))),128)),y((g(),M(c,{type:`button`,onClick:$},{icon:v(()=>[P(u,{class:`w-4 h-4`})]),_:1})),[[h,D(l)(`views.terminal.new_tab`)]])]),_:1},8,[`left-offset`]),S(`div`,{class:`w-full flex flex-col relative`,style:L({paddingTop:`${D(55)}px`,height:`calc(100% - ${D(K)}px)`,transition:`height 150ms ease-out`})},[S(`div`,{class:x([`flex-1 relative min-h-0 overflow-hidden`,{"pb-1":D(F)>0}])},[(g(!0),w(E,null,p(D(A),e=>y((g(),M(me,{key:e.id,ref_for:!0,ref:t=>he(e.id,t),options:D(ue),"input-transform":Se,"auto-connect":``,onConnected:()=>Te(e.id),onDisconnected:()=>Ee(e.id),onError:t=>De(e.id,t)},null,8,[`options`,`onConnected`,`onDisconnected`,`onError`])),[[b,D(N)===e.id]])),128))],2),P(_e,{ref_key:`toolbar`,ref:O,onSend:Ce},null,512)],4),P(f,{model:D(fe),direction:`up`,"transition-delay":80,"tooltip-options":{position:`left`,event:void 0},class:`absolute right-3 z-11`,pt:{root:{style:`pointer-events: none`}},style:L({bottom:`calc(0.75rem + ${D(U).height.value}px + ${D(K)}px)`,transition:`bottom 150ms ease-out`})},{button:v(({visible:e,toggleCallback:t})=>[P(a,{severity:`secondary`,class:x([`dark-mode opacity-40 hover:opacity-100 active:opacity-100 focus:opacity-100 transition pointer-events-auto`,{"opacity-100":e}]),rounded:``,onClick:t},{icon:v(()=>[S(`div`,ye,[S(`div`,{class:x([`absolute top-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full transform transition-all duration-100 origin-center`,{"w-4 h-[2px] rotate-45 top-1/2 -translate-y-1/2 rounded-none":e}]),style:{backgroundColor:`var(--text-color)`}},null,2),S(`div`,{class:x([`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-1.5 h-1.5 rounded-full transition-all duration-100`,{"opacity-0 scale-0":e}]),style:{backgroundColor:`var(--text-color)`}},null,2),S(`div`,{class:x([`absolute bottom-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full transform transition-all duration-100 origin-center`,{"w-4 h-[2px] -rotate-45 bottom-1/2 translate-y-1/2 rounded-none":e}]),style:{backgroundColor:`var(--text-color)`}},null,2)])]),_:2},1032,[`class`,`onClick`])]),item:v(({item:e,toggleCallback:t})=>[y((g(),M(a,ne({severity:`secondary`},e.buttonProps,{rounded:``,onClick:t}),{icon:v(()=>[(g(),M(R(e.icon)))]),_:2},1040,[`onClick`])),[[h,{value:e.label}]])]),_:1},8,[`model`,`style`]),y((g(),M(a,{class:x([`opacity-40 hover:opacity-100 active:opacity-100 focus:opacity-100 transition absolute right-14 z-11`,{"!opacity-20 pointer-events-none":D(q)?.isConnected||D(q)?.isConnecting}]),style:L({bottom:`calc(0.75rem + ${D(U).height.value}px + ${D(K)}px)`,transition:`bottom 150ms ease-out`}),rounded:``,disabled:D(q)?.isConnected||D(q)?.isConnecting,onClick:we},{icon:v(()=>[P(m,{class:`text-white`})]),_:1},8,[`class`,`style`,`disabled`])),[[h,D(l)(`views.terminal.reconnect`)]])])}}});export{$ as default};
@@ -1 +1 @@
1
- import{Nn as e,Xn as t,an as n,br as r,cr as i,gr as a,hn as o,on as s}from"./vendor-CSg6_Jfu.js";import{w as c}from"./vendor-primevue-DYzLjOFZ.js";import{i as l}from"./flowSchema-BQp77LdP.js";var u={class:`flex items-center justify-between gap-3 w-full min-w-0`},d={class:`truncate`},f={class:`text-[10px] text-muted font-mono shrink-0`},p=o({__name:`VariableInput`,props:{modelValue:{},nodeId:{},placeholder:{}},emits:[`update:modelValue`],setup(o,{emit:p}){let m=o,h=p,{options:g}=l(()=>m.nodeId),_=i([]),v=i(``);function y(e){let t=e.query.toLowerCase();v.value=e.query,t?_.value=g.value.filter(e=>e.label.toLowerCase().includes(t)||e.value.toLowerCase().includes(t)):_.value=[...g.value]}function b(e){let t=m.modelValue??``;v.value&&t.toLowerCase().endsWith(v.value.toLowerCase())&&(t=t.slice(0,t.length-v.value.length)),h(`update:modelValue`,t+e.value.value)}function x(e){typeof e==`string`&&h(`update:modelValue`,e)}return(i,l)=>{let p=c;return e(),s(p,{"model-value":o.modelValue,suggestions:a(_),"option-label":`label`,placeholder:o.placeholder,class:`w-full`,fluid:``,dropdown:``,"dropdown-mode":`blank`,onComplete:y,onItemSelect:b,"onUpdate:modelValue":x},{option:t(({option:e})=>[n(`div`,u,[n(`span`,d,r(e.label),1),n(`span`,f,r(e.value),1)])]),_:1},8,[`model-value`,`suggestions`,`placeholder`])}}});export{p as t};
1
+ import{Nn as e,Xn as t,an as n,br as r,cr as i,gr as a,hn as o,on as s}from"./vendor-CSg6_Jfu.js";import{w as c}from"./vendor-primevue-CyD8V_Ft.js";import{i as l}from"./flowSchema-CyZseAPD.js";var u={class:`flex items-center justify-between gap-3 w-full min-w-0`},d={class:`truncate`},f={class:`text-[10px] text-muted font-mono shrink-0`},p=o({__name:`VariableInput`,props:{modelValue:{},nodeId:{},placeholder:{}},emits:[`update:modelValue`],setup(o,{emit:p}){let m=o,h=p,{options:g}=l(()=>m.nodeId),_=i([]),v=i(``);function y(e){let t=e.query.toLowerCase();v.value=e.query,t?_.value=g.value.filter(e=>e.label.toLowerCase().includes(t)||e.value.toLowerCase().includes(t)):_.value=[...g.value]}function b(e){let t=m.modelValue??``;v.value&&t.toLowerCase().endsWith(v.value.toLowerCase())&&(t=t.slice(0,t.length-v.value.length)),h(`update:modelValue`,t+e.value.value)}function x(e){typeof e==`string`&&h(`update:modelValue`,e)}return(i,l)=>{let p=c;return e(),s(p,{"model-value":o.modelValue,suggestions:a(_),"option-label":`label`,placeholder:o.placeholder,class:`w-full`,fluid:``,dropdown:``,"dropdown-mode":`blank`,onComplete:y,onItemSelect:b,"onUpdate:modelValue":x},{option:t(({option:e})=>[n(`div`,u,[n(`span`,d,r(e.label),1),n(`span`,f,r(e.value),1)])]),_:1},8,[`model-value`,`suggestions`,`placeholder`])}}});export{p as t};
@@ -1 +1 @@
1
- import{kr as e}from"./vendor-cameraui-BqkrW4Bb.js";import{Fn as t,Nn as n,Xn as r,an as i,cn as a,en as o,gr as s,hn as c,on as l,sn as u}from"./vendor-CSg6_Jfu.js";import{T as d,c as f}from"./vendor-primevue-DYzLjOFZ.js";var p={class:`flex flex-wrap gap-1`},m=c({__name:`VariableSuggestions`,props:{variables:{}},emits:[`select`],setup(c){let{t:m}=e();return(e,h)=>{let g=d,_=f;return c.variables.length?(n(),l(_,{key:0,header:s(m)(`components.automation_nodes.available_variables`),toggleable:``,collapsed:``,pt:{root:{class:`border-0`},header:{class:`py-1.5 px-0 text-xs`},content:{class:`px-0 py-2`},headerActions:{class:`flex`}},"toggle-button-props":{class:`w-4 h-4 p-0`,text:!0,rounded:!0,severity:`secondary`}},{default:r(()=>[i(`div`,p,[(n(!0),a(o,null,t(c.variables,t=>(n(),l(g,{key:t.value,label:t.label,class:`text-[10px] cursor-pointer hover:bg-primary/10 active:bg-primary/20`,onClick:n=>e.$emit(`select`,t.value)},null,8,[`label`,`onClick`]))),128))])]),_:1},8,[`header`])):u(``,!0)}}});export{m as t};
1
+ import{kr as e}from"./vendor-cameraui-Cgb5z6NJ.js";import{Fn as t,Nn as n,Xn as r,an as i,cn as a,en as o,gr as s,hn as c,on as l,sn as u}from"./vendor-CSg6_Jfu.js";import{T as d,c as f}from"./vendor-primevue-CyD8V_Ft.js";var p={class:`flex flex-wrap gap-1`},m=c({__name:`VariableSuggestions`,props:{variables:{}},emits:[`select`],setup(c){let{t:m}=e();return(e,h)=>{let g=d,_=f;return c.variables.length?(n(),l(_,{key:0,header:s(m)(`components.automation_nodes.available_variables`),toggleable:``,collapsed:``,pt:{root:{class:`border-0`},header:{class:`py-1.5 px-0 text-xs`},content:{class:`px-0 py-2`},headerActions:{class:`flex`}},"toggle-button-props":{class:`w-4 h-4 p-0`,text:!0,rounded:!0,severity:`secondary`}},{default:r(()=>[i(`div`,p,[(n(!0),a(o,null,t(c.variables,t=>(n(),l(g,{key:t.value,label:t.label,class:`text-[10px] cursor-pointer hover:bg-primary/10 active:bg-primary/20`,onClick:n=>e.$emit(`select`,t.value)},null,8,[`label`,`onClick`]))),128))])]),_:1},8,[`header`])):u(``,!0)}}});export{m as t};
@@ -1,4 +1,4 @@
1
- import{kr as e,wt as t}from"./vendor-cameraui-BqkrW4Bb.js";import{C as n,Zn as r,ln as i}from"./api-milc5VEE.js";import{Fn as ee,Gn as a,Mn as o,Nn as s,an as c,bn as l,br as u,cn as d,cr as f,en as te,fn as ne,gr as p,hn as m,in as h,jn as re,mr as ie,pn as g,q as ae,qn as _,rr as v,sn as y,t as oe}from"./vendor-CSg6_Jfu.js";import{K as se,j as ce}from"./vendor-primevue-DYzLjOFZ.js";import{t as le}from"./server-Bv5NVJ0G.js";import{n as ue}from"./useServerRestart-3AZOTz7i.js";import{t as de}from"./plugins-7pWXkYgo.js";import{n as fe,t as pe}from"./useLogsSocket-9jJ-oJIm.js";import{t as me}from"./CuiMarkdownContent-Bjs3wRnq.js";import{t as he}from"./alert-circle-Cu_kjPlA.js";import{t as ge}from"./platformLabels-D-cF6OTP.js";import{t as _e}from"./config-BE0DnCXx.js";function b(e){return`id`in e&&!(`type`in e)}function x(e){return`type`in e}var ve={key:0},ye={key:0,class:`flex items-start gap-3 px-4 py-3 rounded-xl bg-orange-500/10 border border-orange-500/30 mb-3`},be={class:`flex flex-col gap-1 min-w-0`},xe={class:`text-sm font-semibold text-orange-400`},Se={key:0},Ce={class:`text-xs text-orange-600 dark:text-orange-300`},we={class:`text-sm text-orange-400`},Te={key:1},Ee={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},De={key:2},Oe={class:`text-muted`},ke={class:`flex items-center gap-4 mt-4 px-4 py-3 rounded-xl bg-orange-500/10 border border-orange-500/30`},Ae={class:`flex flex-col gap-1 min-w-0`},je={class:`text-sm font-semibold text-orange-400`},Me={class:`text-xs text-orange-600 dark:text-orange-300`},Ne={key:3},Pe={class:`cui-label`},Fe={key:4,class:`w-full h-full relative`},Ie={key:5,class:`w-full h-full p-4 flex items-center justify-center`},Le=`2.0.0`,S=m({__name:`VersionsHandler`,props:{target:{},installVersion:{},action:{}},setup(m,{expose:S}){let C=new de,w=new le,Re=new _e,ze=ae(),T=m,E=r(),{t:D}=e(),{mdBreakpoint:O}=i(),{beginServerRestart:Be}=ue(),{isBeta:Ve}=n(),k=l(`dialogRef`),A=l(`dialogRefProps`),{target:j,installVersion:M}=ie(T),N=f();C.toggleQueryActivator(`getPluginVersionsQuery`,!1),C.toggleQueryActivator(`getPluginChangelogQuery`,!1),C.toggleQueryActivator(`getPluginCompatQuery`,!1),w.toggleQueryActivator(`checkVersionQuery`,!1),w.toggleQueryActivator(`getServerChangelogQuery`,!1);let He=h(()=>b(j.value)?j.value.pluginName:`server`),P=h(()=>T.action===`uninstall`&&b(j.value)),F=pe({target:He.value,onStdout:e=>B.value?.writeTerminal(e),onDisconnect:()=>B.value?.writeTerminal(`
1
+ import{kr as e,wt as t}from"./vendor-cameraui-Cgb5z6NJ.js";import{C as n,Zn as r,ln as i}from"./api-Cc-rMHwl.js";import{Fn as ee,Gn as a,Mn as o,Nn as s,an as c,bn as l,br as u,cn as d,cr as f,en as te,fn as ne,gr as p,hn as m,in as h,jn as re,mr as ie,pn as g,q as ae,qn as _,rr as v,sn as y,t as oe}from"./vendor-CSg6_Jfu.js";import{K as se,j as ce}from"./vendor-primevue-CyD8V_Ft.js";import{t as le}from"./server-DbpDC3pc.js";import{n as ue}from"./useServerRestart-CqZRPCpR.js";import{t as de}from"./plugins-ICpmsguj.js";import{n as fe,t as pe}from"./useLogsSocket-CUQwZ6wm.js";import{t as me}from"./CuiMarkdownContent-Bjs3wRnq.js";import{t as he}from"./alert-circle-Cu_kjPlA.js";import{t as ge}from"./platformLabels-D-cF6OTP.js";import{t as _e}from"./config-B_lj3Myj.js";function b(e){return`id`in e&&!(`type`in e)}function x(e){return`type`in e}var ve={key:0},ye={key:0,class:`flex items-start gap-3 px-4 py-3 rounded-xl bg-orange-500/10 border border-orange-500/30 mb-3`},be={class:`flex flex-col gap-1 min-w-0`},xe={class:`text-sm font-semibold text-orange-400`},Se={key:0},Ce={class:`text-xs text-orange-600 dark:text-orange-300`},we={class:`text-sm text-orange-400`},Te={key:1},Ee={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},De={key:2},Oe={class:`text-muted`},ke={class:`flex items-center gap-4 mt-4 px-4 py-3 rounded-xl bg-orange-500/10 border border-orange-500/30`},Ae={class:`flex flex-col gap-1 min-w-0`},je={class:`text-sm font-semibold text-orange-400`},Me={class:`text-xs text-orange-600 dark:text-orange-300`},Ne={key:3},Pe={class:`cui-label`},Fe={key:4,class:`w-full h-full relative`},Ie={key:5,class:`w-full h-full p-4 flex items-center justify-center`},Le=`2.0.0`,S=m({__name:`VersionsHandler`,props:{target:{},installVersion:{},action:{}},setup(m,{expose:S}){let C=new de,w=new le,Re=new _e,ze=ae(),T=m,E=r(),{t:D}=e(),{mdBreakpoint:O}=i(),{beginServerRestart:Be}=ue(),{isBeta:Ve}=n(),k=l(`dialogRef`),A=l(`dialogRefProps`),{target:j,installVersion:M}=ie(T),N=f();C.toggleQueryActivator(`getPluginVersionsQuery`,!1),C.toggleQueryActivator(`getPluginChangelogQuery`,!1),C.toggleQueryActivator(`getPluginCompatQuery`,!1),w.toggleQueryActivator(`checkVersionQuery`,!1),w.toggleQueryActivator(`getServerChangelogQuery`,!1);let He=h(()=>b(j.value)?j.value.pluginName:`server`),P=h(()=>T.action===`uninstall`&&b(j.value)),F=pe({target:He.value,onStdout:e=>B.value?.writeTerminal(e),onDisconnect:()=>B.value?.writeTerminal(`
2
2
  \rWebsocket failed to connect! Is the server running?\r
3
3
  \r
4
4
  `),onClearLog:()=>B.value?.clearTerminal(),onReconnected:()=>{B.value?.writeTerminal(`\r
@@ -1 +1 @@
1
- import{O as e,kr as t}from"./vendor-cameraui-BqkrW4Bb.js";import{Zn as n}from"./api-milc5VEE.js";import{Gn as r,Nn as i,Xn as a,an as o,b as s,br as c,cr as l,gr as u,hn as d,in as f,on as p,pn as m,qt as h,rr as g,v as _,wn as v,y}from"./vendor-CSg6_Jfu.js";import{D as b,T as x}from"./types-CoXm85So.js";import{j as S}from"./vendor-primevue-DYzLjOFZ.js";var C={for:`virtualSensorType`,class:`cui-label`},w={for:`virtualSensorName`,class:`cui-label`},T=d({__name:`VirtualSensorCreate`,props:{cameraId:{}},setup(d,{expose:T}){let E=d,{t:D}=t(),O=n(),k=x.omit({cameraId:!0}),A=r(`formRef`),j=l(b[0]),M=l(``),N=f(()=>b.map(e=>({label:D(`components.camera_options.sensor_type_${e}`),value:e})));return T({onConfirm:async()=>(await A.value?.validate())?.valid?{cameraId:E.cameraId,type:j.value,name:M.value.trim()}:(O.add({severity:`error`,detail:D(`components.toast.validation_failed`),life:3e3}),null)}),(t,n)=>{let r=S,l=e;return i(),p(u(s),{ref_key:`formRef`,ref:A,class:`flex flex-col gap-4 w-full`,"validation-schema":u(k)},{default:a(()=>[m(u(y),{"model-value":u(j),name:`type`,as:`div`,class:`flex flex-col field-gap`},{default:a(({errors:e})=>[o(`label`,C,c(t.$t(`components.form.label.type`)),1),m(r,{id:`virtualSensorType`,"model-value":u(j),options:u(N),"option-label":`label`,"option-value":`value`,invalid:e.length>0,class:`w-full`,onValueChange:n[0]||=e=>j.value=e},null,8,[`model-value`,`options`,`invalid`]),m(h,{name:`fade`},{default:a(()=>[m(u(_),{name:`type`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`]),m(u(y),{modelValue:u(M),"onUpdate:modelValue":n[1]||=e=>g(M)?M.value=e:null,modelModifiers:{trim:!0},name:`name`,as:`div`,class:`flex flex-col field-gap`},{default:a(({field:e,errors:n})=>[o(`label`,w,c(t.$t(`components.form.label.name`)),1),m(l,v({id:`virtualSensorName`},e,{invalid:n.length>0,class:`w-full`,placeholder:t.$t(`components.camera_options.virtual_sensor_name_placeholder`)}),null,16,[`invalid`,`placeholder`]),m(h,{name:`fade`},{default:a(()=>[m(u(_),{name:`name`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`validation-schema`])}}});export{T as default};
1
+ import{O as e,kr as t}from"./vendor-cameraui-Cgb5z6NJ.js";import{Zn as n}from"./api-Cc-rMHwl.js";import{Gn as r,Nn as i,Xn as a,an as o,b as s,br as c,cr as l,gr as u,hn as d,in as f,on as p,pn as m,qt as h,rr as g,v as _,wn as v,y}from"./vendor-CSg6_Jfu.js";import{D as b,T as x}from"./types-C1VwkReu.js";import{j as S}from"./vendor-primevue-CyD8V_Ft.js";var C={for:`virtualSensorType`,class:`cui-label`},w={for:`virtualSensorName`,class:`cui-label`},T=d({__name:`VirtualSensorCreate`,props:{cameraId:{}},setup(d,{expose:T}){let E=d,{t:D}=t(),O=n(),k=x.omit({cameraId:!0}),A=r(`formRef`),j=l(b[0]),M=l(``),N=f(()=>b.map(e=>({label:D(`components.camera_options.sensor_type_${e}`),value:e})));return T({onConfirm:async()=>(await A.value?.validate())?.valid?{cameraId:E.cameraId,type:j.value,name:M.value.trim()}:(O.add({severity:`error`,detail:D(`components.toast.validation_failed`),life:3e3}),null)}),(t,n)=>{let r=S,l=e;return i(),p(u(s),{ref_key:`formRef`,ref:A,class:`flex flex-col gap-4 w-full`,"validation-schema":u(k)},{default:a(()=>[m(u(y),{"model-value":u(j),name:`type`,as:`div`,class:`flex flex-col field-gap`},{default:a(({errors:e})=>[o(`label`,C,c(t.$t(`components.form.label.type`)),1),m(r,{id:`virtualSensorType`,"model-value":u(j),options:u(N),"option-label":`label`,"option-value":`value`,invalid:e.length>0,class:`w-full`,onValueChange:n[0]||=e=>j.value=e},null,8,[`model-value`,`options`,`invalid`]),m(h,{name:`fade`},{default:a(()=>[m(u(_),{name:`type`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`]),m(u(y),{modelValue:u(M),"onUpdate:modelValue":n[1]||=e=>g(M)?M.value=e:null,modelModifiers:{trim:!0},name:`name`,as:`div`,class:`flex flex-col field-gap`},{default:a(({field:e,errors:n})=>[o(`label`,w,c(t.$t(`components.form.label.name`)),1),m(l,v({id:`virtualSensorName`},e,{invalid:n.length>0,class:`w-full`,placeholder:t.$t(`components.camera_options.virtual_sensor_name_placeholder`)}),null,16,[`invalid`,`placeholder`]),m(h,{name:`fade`},{default:a(()=>[m(u(_),{name:`name`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`])]),_:1},8,[`validation-schema`])}}});export{T as default};
@@ -1,2 +1,2 @@
1
- import{F as e,O as t,Ot as n,kr as r,wt as i}from"./vendor-cameraui-BqkrW4Bb.js";import{Un as a,V as o,Y as s,Yn as c,Zn as ee,at as te,i as ne,ir as l,it as re,jn as ie,ln as ae,on as u,rt as d,z as oe}from"./api-milc5VEE.js";import{$n as f,Dn as p,Mn as se,Nn as m,Tn as h,U as g,Xn as _,an as v,br as y,cn as b,cr as x,en as S,gr as C,hn as w,in as T,on as ce,or as E,pn as D,q as O,qn as k,rr as A,sn as j}from"./vendor-CSg6_Jfu.js";import{K as le,L as ue,R as de,g as fe,j as pe,x as me}from"./vendor-primevue-DYzLjOFZ.js";import{t as he}from"./api-DmxTF6VE.js";import{t as ge}from"./plugins-7pWXkYgo.js";import{t as _e}from"./CuiDataTable-CTT9IFeR.js";import{t as ve}from"./back-filled-r7bN5ObT.js";import{n as ye,t as be}from"./round-restart-alt-DKWwojYm.js";import{t as xe}from"./pencil-outline-M9I4mCJO.js";async function Se(){return(await l.get(`/workers/config`)).data}async function M(e){return(await l.patch(`/workers/config`,e)).data}async function Ce(){return(await l.post(`/workers/pairings`)).data}async function we(e){await l.delete(`/workers/${e}`)}async function Te(e){await l.post(`/workers/${e}/restart`)}async function Ee({agentId:e,name:t}){await l.patch(`/workers/${e}`,{name:t})}async function N({cameraId:e,agentId:t}){return(await l.post(`/workers/assign`,{cameraId:e,agentId:t})).data}async function P({cameraId:e}){return(await l.post(`/workers/unassign`,{cameraId:e})).data}async function F({pluginName:e,agentId:t}){return(await l.post(`/workers/assign-plugin`,{pluginName:e,agentId:t})).data}async function De({pluginName:e}){return(await l.post(`/workers/unassign-plugin`,{pluginName:e})).data}var Oe=class{_queryClient=O();toast=ee();getConfigQuery(){return c({queryKey:[`workersConfig`],queryFn:()=>Se(),retry:!1})}patchConfigQuery(){return g({mutationFn:M,onSuccess:()=>this._queryClient.invalidateQueries({queryKey:[`workersConfig`]}),onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})}})}createPairingQuery(){return g({mutationFn:Ce})}removeWorkerQuery(){return g({mutationFn:we,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`camerasList`]})})}assignCameraQuery(){return g({mutationFn:N,onMutate:({cameraId:e,agentId:t})=>this.patchCameraWorker(e,t),onError:(e,t,n)=>{n?.rollback(),this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`camerasList`]})})}unassignCameraQuery(){return g({mutationFn:P,onMutate:({cameraId:e})=>this.patchCameraWorker(e,void 0),onError:(e,t,n)=>{n?.rollback(),this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`camerasList`]})})}restartWorkerQuery(){return g({mutationFn:Te})}renameWorkerQuery(){return g({mutationFn:Ee,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})}})}assignPluginQuery(){return g({mutationFn:F,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`pluginsList`]})})}unassignPluginQuery(){return g({mutationFn:De,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`pluginsList`]})})}patchCameraWorker(e,t){let n=[];for(let[r,i]of this._queryClient.getQueriesData({queryKey:[`camerasList`]}))i?.result&&(n.push([r,i]),this._queryClient.setQueryData(r,{...i,result:i.result.map(n=>n._id===e?{...n,workerAgentId:t}:n)}));return{rollback:()=>{for(let[e,t]of n)this._queryClient.setQueryData(e,t)}}}},ke={class:`flex flex-col gap-2 w-full`},I={for:`workerName`,class:`cui-label`},Ae=w({__name:`RenameWorker`,props:{currentName:{}},setup(e,{expose:n}){let r=x(e.currentName);return n({onConfirm:async()=>r.value.trim()||null}),(e,n)=>{let i=t;return m(),b(`div`,ke,[v(`label`,I,y(e.$t(`views.workers.name`)),1),D(i,{id:`workerName`,modelValue:C(r),"onUpdate:modelValue":n[0]||=e=>A(r)?r.value=e:null,class:`w-full`,autofocus:``},null,8,[`modelValue`])])}}}),L=E({workers:[],workerHistory:{}}),R=null,z=null;function B(e){let t=L.workers.findIndex(t=>t.agentId===e.agentId);if(t!==-1){let n=[...L.workers];n[t]=e,L.workers=n}else L.workers=[...L.workers,e];let n=L.workerHistory[e.agentId]??[];L.workerHistory={...L.workerHistory,[e.agentId]:[...n,e].slice(-30)}}async function je(){if(z?.ready.value)try{L.workers=await z.request(`get-workers`)}catch{}}async function Me(){if(z?.ready.value)try{L.workerHistory=await z.request(`get-worker-history`)}catch{}}async function V(){await Promise.all([je(),Me()])}function H(){return z||(R=f(!0),R.run(()=>{let e=a(`/workers`);z=e,e.on(`worker-update`,e=>B(e)),e.on(`worker-removed`,({agentId:e})=>{L.workers=L.workers.filter(t=>t.agentId!==e);let t={...L.workerHistory};delete t[e],L.workerHistory=t}),e.onReady(()=>{V()})}),z)}function Ne(){function e(){H()}function t(){}return{isConnected:T(()=>z?.connected.value??!1),workers:T(()=>L.workers),workerHistory:T(()=>L.workerHistory),connect:e,disconnect:t,loadAll:V}}var Pe={key:0,class:`page-title`},Fe={key:1,class:`w-full h-full flex items-center justify-center`},Ie={key:2,class:`flex flex-col w-full gap-6`},Le={class:`card-title`},Re={class:`flex flex-col gap-6`},ze={class:`flex flex-row items-center justify-between gap-4`},Be={class:`flex flex-col`},Ve={class:`text-sm font-semibold text-color`},He={class:`text-muted text-xs`},Ue={class:`flex flex-col field-gap`},We={class:`text-sm font-semibold`},Ge={class:`text-muted text-xs`},Ke={class:`flex flex-col field-gap`},qe={class:`text-sm font-semibold`},Je={key:0,class:`text-orange-400 text-xs`},Ye={class:`flex flex-row items-end justify-end`},Xe={key:0},Ze={class:`card-title`},Qe={class:`flex flex-col items-center justify-center gap-4 py-6`},$e={class:`text-muted text-sm`},et={key:1},tt={class:`card-title`},nt={class:`text-muted text-sm mb-4`},rt={class:`text-muted text-sm`},it={class:`font-bold text-color text-sm`},at={key:2},ot={class:`card-title`},st={class:`text-muted text-sm mb-4`},ct={class:`text-muted text-sm`},lt={class:`flex flex-col`},ut={class:`font-bold text-color text-sm`},dt={key:0,class:`text-muted text-xs`},ft={key:3},pt={class:`card-title`},mt={class:`flex flex-col gap-6`},ht={class:`text-sm`},gt={class:`flex flex-col field-gap`},_t={class:`text-sm font-semibold`},vt={class:`text-muted text-xs`},yt={class:`flex flex-col field-gap`},bt={class:`flex flex-row items-center justify-between`},xt={class:`text-sm font-semibold`},St={class:`pairing-snippet`},Ct={class:`text-muted text-xs`},wt={class:`flex flex-row items-end justify-end`},U=u(w({__name:`Workers`,setup(a){let{t:c}=r(),{smBreakpoint:ee}=ae(),l=s(),u=Ne(),{workers:f,workerHistory:g,isConnected:w}=u,E=new he,O=new te,Se=new ge,M=new Oe,{data:Ce,isLoading:we}=O.getCamerasQuery(x({page:1,pageSize:999})),{data:Te,isLoading:Ee}=Se.getPluginsQuery(x({page:1,pageSize:999})),{data:N}=M.getConfigQuery(),{mutateAsync:P,isPending:F}=M.patchConfigQuery(),{mutateAsync:De}=M.assignCameraQuery(),{mutateAsync:ke}=M.unassignCameraQuery(),{mutateAsync:I}=M.restartWorkerQuery(),{mutateAsync:L,isPending:R}=M.createPairingQuery(),{mutateAsync:z}=M.removeWorkerQuery(),{mutateAsync:B}=M.assignPluginQuery(),{mutateAsync:je}=M.unassignPluginQuery(),{mutateAsync:Me}=M.renameWorkerQuery(),{data:V}=E.apiInfoQuery(),H={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm font-semibold`}}},U=x(!1),W=x([]),G=x([]),K=x(new Set),q=x(new Set),J=x(null),Y=x(``),X=x(7422),Tt=T(()=>Ce.value?.result??[]),Et=T(()=>Te.value?.result??[]),Z=T(()=>N.value?.enabled??!1),Dt=T(()=>(N.value?.suggestedAddresses??[]).map(e=>({label:e,value:e}))),Ot=T(()=>X.value!==(N.value?.port??7422)),kt=T(()=>Y.value!==(N.value?.address??``)||Ot.value),At=T(()=>new Set(f.value.map(e=>e.agentId))),Q=T(()=>V.value?.version),jt=T(()=>J.value?Math.max(0,Math.round((J.value.expiresAt-Date.now())/6e4)):0),Mt=T(()=>J.value?[`worker:`,` master: ${J.value.address||`<MASTER_IP>`}`,` apiPort: ${J.value.apiPort}`,` pairingCode: ${J.value.code}`,` name: my-worker`,` capabilities:`,` - frameDecoding`,` - pluginHost`].join(`
1
+ import{F as e,O as t,Ot as n,kr as r,wt as i}from"./vendor-cameraui-Cgb5z6NJ.js";import{Un as a,V as o,Y as s,Yn as c,Zn as ee,at as te,i as ne,ir as l,it as re,jn as ie,ln as ae,on as u,rt as d,z as oe}from"./api-Cc-rMHwl.js";import{$n as f,Dn as p,Mn as se,Nn as m,Tn as h,U as g,Xn as _,an as v,br as y,cn as b,cr as x,en as S,gr as C,hn as w,in as T,on as ce,or as E,pn as D,q as O,qn as k,rr as A,sn as j}from"./vendor-CSg6_Jfu.js";import{K as le,L as ue,R as de,g as fe,j as pe,x as me}from"./vendor-primevue-CyD8V_Ft.js";import{t as he}from"./api-BKU9IS3U.js";import{t as ge}from"./plugins-ICpmsguj.js";import{t as _e}from"./CuiDataTable-Dk8LJl5S.js";import{t as ve}from"./back-filled-r7bN5ObT.js";import{n as ye,t as be}from"./round-restart-alt-CxUkNgtt.js";import{t as xe}from"./pencil-outline-M9I4mCJO.js";async function Se(){return(await l.get(`/workers/config`)).data}async function M(e){return(await l.patch(`/workers/config`,e)).data}async function Ce(){return(await l.post(`/workers/pairings`)).data}async function we(e){await l.delete(`/workers/${e}`)}async function Te(e){await l.post(`/workers/${e}/restart`)}async function Ee({agentId:e,name:t}){await l.patch(`/workers/${e}`,{name:t})}async function N({cameraId:e,agentId:t}){return(await l.post(`/workers/assign`,{cameraId:e,agentId:t})).data}async function P({cameraId:e}){return(await l.post(`/workers/unassign`,{cameraId:e})).data}async function F({pluginName:e,agentId:t}){return(await l.post(`/workers/assign-plugin`,{pluginName:e,agentId:t})).data}async function De({pluginName:e}){return(await l.post(`/workers/unassign-plugin`,{pluginName:e})).data}var Oe=class{_queryClient=O();toast=ee();getConfigQuery(){return c({queryKey:[`workersConfig`],queryFn:()=>Se(),retry:!1})}patchConfigQuery(){return g({mutationFn:M,onSuccess:()=>this._queryClient.invalidateQueries({queryKey:[`workersConfig`]}),onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})}})}createPairingQuery(){return g({mutationFn:Ce})}removeWorkerQuery(){return g({mutationFn:we,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`camerasList`]})})}assignCameraQuery(){return g({mutationFn:N,onMutate:({cameraId:e,agentId:t})=>this.patchCameraWorker(e,t),onError:(e,t,n)=>{n?.rollback(),this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`camerasList`]})})}unassignCameraQuery(){return g({mutationFn:P,onMutate:({cameraId:e})=>this.patchCameraWorker(e,void 0),onError:(e,t,n)=>{n?.rollback(),this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`camerasList`]})})}restartWorkerQuery(){return g({mutationFn:Te})}renameWorkerQuery(){return g({mutationFn:Ee,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})}})}assignPluginQuery(){return g({mutationFn:F,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`pluginsList`]})})}unassignPluginQuery(){return g({mutationFn:De,onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})},onSettled:()=>this._queryClient.invalidateQueries({queryKey:[`pluginsList`]})})}patchCameraWorker(e,t){let n=[];for(let[r,i]of this._queryClient.getQueriesData({queryKey:[`camerasList`]}))i?.result&&(n.push([r,i]),this._queryClient.setQueryData(r,{...i,result:i.result.map(n=>n._id===e?{...n,workerAgentId:t}:n)}));return{rollback:()=>{for(let[e,t]of n)this._queryClient.setQueryData(e,t)}}}},ke={class:`flex flex-col gap-2 w-full`},I={for:`workerName`,class:`cui-label`},Ae=w({__name:`RenameWorker`,props:{currentName:{}},setup(e,{expose:n}){let r=x(e.currentName);return n({onConfirm:async()=>r.value.trim()||null}),(e,n)=>{let i=t;return m(),b(`div`,ke,[v(`label`,I,y(e.$t(`views.workers.name`)),1),D(i,{id:`workerName`,modelValue:C(r),"onUpdate:modelValue":n[0]||=e=>A(r)?r.value=e:null,class:`w-full`,autofocus:``},null,8,[`modelValue`])])}}}),L=E({workers:[],workerHistory:{}}),R=null,z=null;function B(e){let t=L.workers.findIndex(t=>t.agentId===e.agentId);if(t!==-1){let n=[...L.workers];n[t]=e,L.workers=n}else L.workers=[...L.workers,e];let n=L.workerHistory[e.agentId]??[];L.workerHistory={...L.workerHistory,[e.agentId]:[...n,e].slice(-30)}}async function je(){if(z?.ready.value)try{L.workers=await z.request(`get-workers`)}catch{}}async function Me(){if(z?.ready.value)try{L.workerHistory=await z.request(`get-worker-history`)}catch{}}async function V(){await Promise.all([je(),Me()])}function H(){return z||(R=f(!0),R.run(()=>{let e=a(`/workers`);z=e,e.on(`worker-update`,e=>B(e)),e.on(`worker-removed`,({agentId:e})=>{L.workers=L.workers.filter(t=>t.agentId!==e);let t={...L.workerHistory};delete t[e],L.workerHistory=t}),e.onReady(()=>{V()})}),z)}function Ne(){function e(){H()}function t(){}return{isConnected:T(()=>z?.connected.value??!1),workers:T(()=>L.workers),workerHistory:T(()=>L.workerHistory),connect:e,disconnect:t,loadAll:V}}var Pe={key:0,class:`page-title`},Fe={key:1,class:`w-full h-full flex items-center justify-center`},Ie={key:2,class:`flex flex-col w-full gap-6`},Le={class:`card-title`},Re={class:`flex flex-col gap-6`},ze={class:`flex flex-row items-center justify-between gap-4`},Be={class:`flex flex-col`},Ve={class:`text-sm font-semibold text-color`},He={class:`text-muted text-xs`},Ue={class:`flex flex-col field-gap`},We={class:`text-sm font-semibold`},Ge={class:`text-muted text-xs`},Ke={class:`flex flex-col field-gap`},qe={class:`text-sm font-semibold`},Je={key:0,class:`text-orange-400 text-xs`},Ye={class:`flex flex-row items-end justify-end`},Xe={key:0},Ze={class:`card-title`},Qe={class:`flex flex-col items-center justify-center gap-4 py-6`},$e={class:`text-muted text-sm`},et={key:1},tt={class:`card-title`},nt={class:`text-muted text-sm mb-4`},rt={class:`text-muted text-sm`},it={class:`font-bold text-color text-sm`},at={key:2},ot={class:`card-title`},st={class:`text-muted text-sm mb-4`},ct={class:`text-muted text-sm`},lt={class:`flex flex-col`},ut={class:`font-bold text-color text-sm`},dt={key:0,class:`text-muted text-xs`},ft={key:3},pt={class:`card-title`},mt={class:`flex flex-col gap-6`},ht={class:`text-sm`},gt={class:`flex flex-col field-gap`},_t={class:`text-sm font-semibold`},vt={class:`text-muted text-xs`},yt={class:`flex flex-col field-gap`},bt={class:`flex flex-row items-center justify-between`},xt={class:`text-sm font-semibold`},St={class:`pairing-snippet`},Ct={class:`text-muted text-xs`},wt={class:`flex flex-row items-end justify-end`},U=u(w({__name:`Workers`,setup(a){let{t:c}=r(),{smBreakpoint:ee}=ae(),l=s(),u=Ne(),{workers:f,workerHistory:g,isConnected:w}=u,E=new he,O=new te,Se=new ge,M=new Oe,{data:Ce,isLoading:we}=O.getCamerasQuery(x({page:1,pageSize:999})),{data:Te,isLoading:Ee}=Se.getPluginsQuery(x({page:1,pageSize:999})),{data:N}=M.getConfigQuery(),{mutateAsync:P,isPending:F}=M.patchConfigQuery(),{mutateAsync:De}=M.assignCameraQuery(),{mutateAsync:ke}=M.unassignCameraQuery(),{mutateAsync:I}=M.restartWorkerQuery(),{mutateAsync:L,isPending:R}=M.createPairingQuery(),{mutateAsync:z}=M.removeWorkerQuery(),{mutateAsync:B}=M.assignPluginQuery(),{mutateAsync:je}=M.unassignPluginQuery(),{mutateAsync:Me}=M.renameWorkerQuery(),{data:V}=E.apiInfoQuery(),H={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm font-semibold`}}},U=x(!1),W=x([]),G=x([]),K=x(new Set),q=x(new Set),J=x(null),Y=x(``),X=x(7422),Tt=T(()=>Ce.value?.result??[]),Et=T(()=>Te.value?.result??[]),Z=T(()=>N.value?.enabled??!1),Dt=T(()=>(N.value?.suggestedAddresses??[]).map(e=>({label:e,value:e}))),Ot=T(()=>X.value!==(N.value?.port??7422)),kt=T(()=>Y.value!==(N.value?.address??``)||Ot.value),At=T(()=>new Set(f.value.map(e=>e.agentId))),Q=T(()=>V.value?.version),jt=T(()=>J.value?Math.max(0,Math.round((J.value.expiresAt-Date.now())/6e4)):0),Mt=T(()=>J.value?[`worker:`,` master: ${J.value.address||`<MASTER_IP>`}`,` apiPort: ${J.value.apiPort}`,` pairingCode: ${J.value.code}`,` name: my-worker`,` capabilities:`,` - frameDecoding`,` - pluginHost`].join(`
2
2
  `):``),Nt=T(()=>[{type:`indicator`,field:`status`,columnProps:{headerClass:`w-5 max-w-5`,class:`w-5 max-w-5`},color(e){return e.online?e.versionMismatch?`orange`:`green`:`red`},tooltip(e){return e.online?e.versionMismatch?c(`views.workers.version_mismatch`,{version:e.version||`?`}):c(`views.workers.online`):c(`views.workers.offline`)}},{type:`category`,field:`name`,name:c(`views.workers.name`),columnProps:{headerClass:`w-40 min-w-40 max-w-40`,class:`w-40 min-w-40 max-w-40`},props:{class:`font-bold text-color`}},{type:`category`,field:e=>e.version?e.versionMismatch&&Q.value?`v${e.version} → v${Q.value}`:`v${e.version}`:`—`,name:c(`views.workers.version`),asChip:!0,columnProps:{headerClass:`min-w-30`,class:`min-w-30`}},{type:`category`,field:e=>e.platform?`${e.platform.os}/${e.platform.arch}`:`—`,name:c(`views.workers.platform`),asChip:!0,columnProps:{headerClass:`min-w-40`,class:`min-w-40`}},{type:`category`,field:e=>e.pid?.toString()??`—`,name:c(`views.workers.pid`),columnProps:{headerClass:`min-w-20`,class:`min-w-20`}},{type:`category`,field:e=>e.cpuLoad===void 0?`—`:`${e.cpuLoad}%`,name:c(`views.workers.cpu`),asChip:!0,columnProps:{headerClass:`min-w-30`,class:`min-w-30`}},{type:`chart`,field:`cpu_chart`,for:`cpuLoad`,columnProps:{headerClass:`min-w-[250px]`,class:`min-w-[250px]`}},{type:`category`,field:e=>e.memLoad===void 0?`—`:`${e.memLoad}%`,name:c(`views.workers.memory`),asChip:!0,columnProps:{headerClass:`min-w-30`,class:`min-w-30`}},{type:`chart`,field:`memory_chart`,for:`memLoad`,columnProps:{headerClass:`min-w-[250px]`,class:`min-w-[250px]`}},{type:`action`,field:`actions`,columnProps:{class:`text-right`},buttons:[{icon:xe,action:e=>Ft(e)},{icon:be,loading:e=>W.value.includes(e.name),disabled:e=>!e.online,action:e=>It(e.name,e.agentId)},{icon:oe,buttonProps:{severity:`danger`},loading:e=>G.value.includes(e.agentId),action:e=>Yt(e)}]}]),Pt=T(()=>{let e=g.value;return f.value.reduce((t,n)=>{for(let r of[`cpuLoad`,`memLoad`]){let i=e[n.agentId]??[],a=i.slice(-30).filter(e=>e[r]!==void 0).map(e=>parseFloat(e[r])),o=i.slice(-30).map(e=>e.lastHeartbeat),s=[...a,...Array(30-a.length).fill(0)],c=[...o,...Array(30-o.length).fill(null)];t[`${n.name}_${r}`]={labels:c,datasets:[{data:s,backgroundColor:e=>{let t=e.raw;return t>=90?`#FA5252`:t>=50?`#FF9966`:`#df2a4c`},borderWidth:0,borderRadius:3,barPercentage:.8,categoryPercentage:.8,maxBarThickness:4,barThickness:4}]}}return t},{})});function Ft(e){l.openComponentDialog(Ae,{data:{title:c(`views.workers.rename_worker`),confirmText:c(`views.workers.save`),contentProps:{currentName:e.name}},onConfirm:async t=>{!t||t===e.name||await Me({agentId:e.agentId,name:t})}})}async function It(e,t){W.value.push(e);try{await I(t)}finally{W.value=W.value.filter(t=>t!==e)}}function Lt(){let e=[];for(let t of f.value){let n=t.online?t.name:`${t.name} (${c(`views.workers.offline`).toLowerCase()})`;e.push({label:n,value:t.agentId})}return e}function $(e){return e&&At.value.has(e)?e:null}function Rt(e,t){if(!e?.length)return!0;let n=e.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1)),r=e.filter(e=>!e.startsWith(`!`));return n.includes(t)?!1:r.length===0||r.includes(t)}function zt(e,t){return!t.platform||Rt(e.os,t.platform.os)&&Rt(e.cpu,t.platform.arch)}function Bt(e){let t=[];return e.os?.length&&t.push(`os: ${e.os.join(`, `)}`),e.cpu?.length&&t.push(`cpu: ${e.cpu.join(`, `)}`),t.join(` · `)}function Vt(e){let t=[];for(let n of f.value){let r=zt(e,n),i=n.online?``:` (${c(`views.workers.offline`).toLowerCase()})`,a=r?``:` — ${c(`views.workers.incompatible`)}`;t.push({label:`${n.name}${i}${a}`,value:n.agentId,disabled:!r})}return t}function Ht(e){return q.value.has(e)}async function Ut(e,t){if(t===$(e.workerAgentId))return;let n=new Set(q.value);n.add(e.pluginName),q.value=n;try{t?await B({pluginName:e.pluginName,agentId:t}):await je({pluginName:e.pluginName})}catch{}finally{let t=new Set(q.value);t.delete(e.pluginName),q.value=t}}function Wt(e){return K.value.has(e)}async function Gt(e,t){if(t===$(e.workerAgentId))return;let n=new Set(K.value);n.add(e._id),K.value=n;try{t?await De({cameraId:e._id,agentId:t}):await ke({cameraId:e._id})}catch{}finally{let t=new Set(K.value);t.delete(e._id),K.value=t}}async function Kt(){try{J.value=await L()}catch{}}async function qt(e){if(e&&!Y.value&&(Y.value=N.value?.suggestedAddresses?.[0]??``,!Y.value)){l.openTextDialog({data:{title:c(`views.workers.enable_workers`),contentText:c(`views.workers.address_required`),confirmText:c(`views.workers.ok`)}});return}try{await P(e?{enabled:!0,address:Y.value,port:X.value}:{enabled:!1})}catch{}}async function Jt(){try{await P({address:Y.value,port:X.value})}catch{}}function Yt(e){l.openTextDialog({data:{title:c(`views.workers.remove_worker`),confirmText:c(`views.workers.remove`),contentText:c(`views.workers.remove_worker_confirm`,{name:e.name}),confirmButtonProps:{severity:`danger`}},dialogSize:{desktop:{width:`auto`,maxWidth:`560px`,maxHeight:`90vh`}},onConfirm:async()=>{G.value.push(e.agentId);try{await z(e.agentId)}finally{G.value=G.value.filter(t=>t!==e.agentId)}}})}return p(async()=>{u.connect(),await h(),u.loadAll(),U.value=!0}),k(N,e=>{e&&(Y.value=e.address,X.value=e.port)},{immediate:!0}),se(()=>{u.disconnect()}),(r,a)=>{let s=ve,c=n,te=o,l=i,ae=le,u=pe,oe=fe,p=e,se=ye,h=ie,g=me,x=_e,T=t,E=re,O=ue,k=de;return m(),b(`div`,null,[C(ee)?j(``,!0):(m(),b(`h1`,Pe,y(r.$t(`views.workers.title`)),1)),D(te,{position:`left`},{default:_(()=>[D(c,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:a[0]||=e=>r.$router.push(`/menu`)},{icon:_(()=>[D(s,{class:`w-6 h-6`})]),_:1})]),_:1}),!C(U)||!C(w)?(m(),b(`div`,Fe,[D(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(m(),b(`div`,Ie,[v(`div`,null,[v(`span`,Le,y(r.$t(`views.workers.configuration`)),1),D(p,{class:`cui-card`},{content:_(()=>[v(`div`,Re,[v(`div`,ze,[v(`div`,Be,[v(`span`,Ve,y(r.$t(`views.workers.enable_workers`)),1),v(`span`,He,y(r.$t(`views.workers.enable_workers_description`)),1)]),D(ae,{"model-value":C(Z),disabled:C(F),class:`shrink-0`,"onUpdate:modelValue":qt},null,8,[`model-value`,`disabled`])]),C(Z)?(m(),b(S,{key:0},[v(`div`,Ue,[v(`span`,We,y(r.$t(`views.workers.master_address`)),1),D(u,{modelValue:C(Y),"onUpdate:modelValue":a[1]||=e=>A(Y)?Y.value=e:null,options:C(Dt),editable:``,"option-label":`label`,"option-value":`value`,placeholder:r.$t(`views.workers.master_address_placeholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),v(`span`,Ge,y(r.$t(`views.workers.master_address_hint`)),1)]),v(`div`,Ke,[v(`span`,qe,y(r.$t(`views.workers.leaf_port`)),1),D(oe,{modelValue:C(X),"onUpdate:modelValue":a[2]||=e=>A(X)?X.value=e:null,min:1024,max:65535,"use-grouping":!1,class:`w-full`},null,8,[`modelValue`]),C(Ot)&&(C(N)?.pairedWorkers??0)>0?(m(),b(`span`,Je,y(r.$t(`views.workers.port_change_warning`)),1)):j(``,!0)]),v(`div`,Ye,[D(c,{class:`cui-button-medium`,label:r.$t(`views.workers.save`),loading:C(F),disabled:!C(kt),onClick:Jt},null,8,[`label`,`loading`,`disabled`])])],64)):j(``,!0)])]),_:1})]),C(Z)?(m(),b(`div`,Xe,[v(`span`,Ze,y(r.$t(`views.workers.workers`)),1),C(f).length?(m(),ce(se,{key:0,items:C(f),headers:C(Nt),"chart-data":C(Pt)},null,8,[`items`,`headers`,`chart-data`])):(m(),ce(p,{key:1,class:`cui-card`,pt:{root:{class:`h-full`}}},{content:_(()=>[v(`div`,Qe,[D(h,{class:`w-12 h-12 text-muted`}),v(`span`,$e,y(r.$t(`views.workers.no_workers`)),1)])]),_:1}))])):j(``,!0),C(Z)&&C(f).length?(m(),b(`div`,et,[v(`span`,tt,y(r.$t(`views.workers.camera_assignments`)),1),D(p,{class:`cui-card`},{content:_(()=>[v(`p`,nt,y(r.$t(`views.workers.camera_assignments_description`)),1),D(x,{value:C(Tt),loading:C(we),pt:H,"striped-rows":``,class:`w-full`},{loading:_(()=>[D(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:_(()=>[v(`span`,rt,y(r.$t(`views.workers.no_cameras`)),1)]),default:_(()=>[D(g,{field:`name`,header:r.$t(`views.workers.camera`),"header-class":`p-2 min-w-40`,class:`p-2 min-w-40`},{body:_(({data:e})=>[v(`span`,it,y(e.name),1)]),_:1},8,[`header`]),D(g,{header:r.$t(`views.workers.workers`),"header-class":`p-2 w-full`,class:`p-2 w-full`},{body:_(({data:e})=>[D(u,{"model-value":$(e.workerAgentId),options:Lt(),"option-label":`label`,"option-value":`value`,placeholder:r.$t(`views.workers.local`),class:`w-full`,"show-clear":``,loading:Wt(e._id),disabled:Wt(e._id),"onUpdate:modelValue":t=>Gt(e,t)},null,8,[`model-value`,`options`,`placeholder`,`loading`,`disabled`,`onUpdate:modelValue`])]),_:1},8,[`header`])]),_:1},8,[`value`,`loading`])]),_:1})])):j(``,!0),C(Z)&&C(f).length?(m(),b(`div`,at,[v(`span`,ot,y(r.$t(`views.workers.plugin_assignments`)),1),D(p,{class:`cui-card`},{content:_(()=>[v(`p`,st,y(r.$t(`views.workers.plugin_assignments_description`)),1),D(x,{value:C(Et),loading:C(Ee),pt:H,"striped-rows":``,class:`w-full`},{loading:_(()=>[D(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:_(()=>[v(`span`,ct,y(r.$t(`views.workers.no_plugins`)),1)]),default:_(()=>[D(g,{field:`displayName`,header:r.$t(`views.workers.plugin`),"header-class":`p-2 min-w-40`,class:`p-2 min-w-40`},{body:_(({data:e})=>[v(`div`,lt,[v(`span`,ut,y(e.displayName),1),Bt(e)?(m(),b(`span`,dt,y(Bt(e)),1)):j(``,!0)])]),_:1},8,[`header`]),D(g,{header:r.$t(`views.workers.workers`),"header-class":`p-2 w-full`,class:`p-2 w-full`},{body:_(({data:e})=>[D(u,{"model-value":$(e.workerAgentId),options:Vt(e),"option-label":`label`,"option-value":`value`,"option-disabled":`disabled`,placeholder:r.$t(`views.workers.local`),class:`w-full`,"show-clear":``,loading:Ht(e.pluginName),disabled:Ht(e.pluginName),"onUpdate:modelValue":t=>Ut(e,t)},null,8,[`model-value`,`options`,`placeholder`,`loading`,`disabled`,`onUpdate:modelValue`])]),_:1},8,[`header`])]),_:1},8,[`value`,`loading`])]),_:1})])):j(``,!0),C(Z)?(m(),b(`div`,ft,[v(`span`,pt,y(r.$t(`views.workers.pair_worker`)),1),D(p,{class:`cui-card`},{content:_(()=>[v(`div`,mt,[v(`span`,ht,y(r.$t(`views.workers.pair_worker_description`)),1),C(J)?(m(),b(S,{key:0},[v(`div`,gt,[v(`span`,_t,y(r.$t(`views.workers.pairing_code`)),1),D(k,null,{default:_(()=>[D(T,{"model-value":C(J).code,readonly:``,type:`text`},null,8,[`model-value`]),D(O,null,{default:_(()=>[D(E,{"action-text":r.$t(`views.workers.copied`),icon:C(d),"button-props":{severity:`secondary`,text:!0},onAction:a[3]||=e=>C(ne)(C(J).code)},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),v(`span`,vt,y(r.$t(`views.workers.pairing_expires`,{minutes:C(jt)})),1)]),v(`div`,yt,[v(`div`,bt,[v(`span`,xt,y(r.$t(`views.workers.pairing_snippet`)),1),D(E,{"action-text":r.$t(`views.workers.copied`),icon:C(d),"button-props":{severity:`secondary`,text:!0},onAction:a[4]||=e=>C(ne)(C(Mt))},null,8,[`action-text`,`icon`])]),v(`pre`,St,y(C(Mt)),1),v(`span`,Ct,y(r.$t(`views.workers.pairing_snippet_hint`)),1)])],64)):j(``,!0),v(`div`,wt,[D(c,{class:`cui-button-medium`,label:r.$t(`views.workers.generate_code`),loading:C(R),onClick:Kt},null,8,[`label`,`loading`])])])]),_:1})])):j(``,!0)]))])}}}),[[`__scopeId`,`data-v-77cf4539`]]);export{U as default};
@@ -1 +1 @@
1
- import{Yn as e,ir as t}from"./api-milc5VEE.js";import{cr as n,q as r}from"./vendor-CSg6_Jfu.js";async function i({signal:e}){return(await t.get(`/`,{signal:e})).data}var a=class{_queryClient=r();queryActivator=n([{name:`apiInfoQuery`,enabled:!0}]);get queryClient(){return this._queryClient}apiInfoQuery(){return e({queryKey:[`api`],queryFn:({signal:e})=>i({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`apiInfoQuery`&&e.enabled)})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{a as t};
1
+ import{Yn as e,ir as t}from"./api-Cc-rMHwl.js";import{cr as n,q as r}from"./vendor-CSg6_Jfu.js";async function i({signal:e}){return(await t.get(`/`,{signal:e})).data}var a=class{_queryClient=r();queryActivator=n([{name:`apiInfoQuery`,enabled:!0}]);get queryClient(){return this._queryClient}apiInfoQuery(){return e({queryKey:[`api`],queryFn:({signal:e})=>i({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`apiInfoQuery`&&e.enabled)})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{a as t};