@camera.ui/server 0.0.97 → 0.0.99

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 (143) hide show
  1. package/dist/interface/assets/{404-4LnwoCjV.js → 404-CGqfDdZ6.js} +1 -1
  2. package/dist/interface/assets/{About-bvLBtUy2.js → About-URjOfI5v.js} +1 -1
  3. package/dist/interface/assets/{Adminpanel-CWb2ZPPG.js → Adminpanel-CPzSG-C_.js} +1 -1
  4. package/dist/interface/assets/Automation-BaJyfei4.js +2 -0
  5. package/dist/interface/assets/{Automations-BpLZVUAZ.js → Automations-BlSBLWvk.js} +1 -1
  6. package/dist/interface/assets/{Camera-1ii5b47V.js → Camera-Fb7bbgZZ.js} +2 -2
  7. package/dist/interface/assets/{CameraConsole-ep5CUZNu.js → CameraConsole-CaZ_M2X1.js} +1 -1
  8. package/dist/interface/assets/{Cameras-vPU6uknc.js → Cameras-BagU9c9w.js} +2 -2
  9. package/dist/interface/assets/Camview-BG5TtxRi.js +1 -0
  10. package/dist/interface/assets/{Camview-O0phps-e.css → Camview-DpSC1WEC.css} +1 -1
  11. package/dist/interface/assets/Config-C6uaou3o.js +2 -0
  12. package/dist/interface/assets/{ConfigActionCameraControl-BIwMf0Pc.js → ConfigActionCameraControl-B5BiSuOl.js} +1 -1
  13. package/dist/interface/assets/{ConfigActionDelay-B8IeqrQl.js → ConfigActionDelay-rw5LkC5w.js} +1 -1
  14. package/dist/interface/assets/{ConfigActionHttp-ChmRoLGn.js → ConfigActionHttp-DaceGA-q.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionImageInput-BXGvomRn.js → ConfigActionImageInput-DltWuY4s.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionNotification-IyTVckPy.js → ConfigActionNotification-DuLhW1fW.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionOutput-puWLDmCK.js → ConfigActionOutput-rcLwE5fC.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionPlugin-CJcmszAL.js → ConfigActionPlugin-C5AnB-3g.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionSensor-TP-clDuT.js → ConfigActionSensor-H14DnxB5.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionSnapshot-D9qfVi25.js → ConfigActionSnapshot-O7LjVEmu.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionVariable-m9pSdZRi.js → ConfigActionVariable-RjcIOgcK.js} +1 -1
  22. package/dist/interface/assets/{ConfigConditionIfElse-qGQl3t_X.js → ConfigConditionIfElse-C1huxVbZ.js} +1 -1
  23. package/dist/interface/assets/{ConfigConditionSensorState-BbYFiyQO.js → ConfigConditionSensorState-DQWLTq0-.js} +1 -1
  24. package/dist/interface/assets/{ConfigConditionSwitch-Fmxop0ZO.js → ConfigConditionSwitch-D0KCLIn9.js} +1 -1
  25. package/dist/interface/assets/{ConfigConditionTime-pVizMny5.js → ConfigConditionTime-DMcoYQPg.js} +1 -1
  26. package/dist/interface/assets/{ConfigTriggerDetection-5qawJGDL.js → ConfigTriggerDetection-S5yAaNEJ.js} +1 -1
  27. package/dist/interface/assets/ConfigTriggerGeofence-DNZehQRE.js +1 -0
  28. package/dist/interface/assets/{ConfigTriggerManual-Cdl-639w.js → ConfigTriggerManual-BofNKINz.js} +1 -1
  29. package/dist/interface/assets/{ConfigTriggerSchedule-BeMgx20W.js → ConfigTriggerSchedule-BqiAXGxy.js} +1 -1
  30. package/dist/interface/assets/{ConfigTriggerSensor-CdMpLf9A.js → ConfigTriggerSensor-Dl7yK4zM.js} +1 -1
  31. package/dist/interface/assets/{ConfigTriggerSystem-Df5J0gpZ.js → ConfigTriggerSystem-qpGChx_t.js} +1 -1
  32. package/dist/interface/assets/{ConfigTriggerWebhook-Cbl7Xnqa.js → ConfigTriggerWebhook-Dg5d6RiU.js} +1 -1
  33. package/dist/interface/assets/{Console-C9gkw0lo.js → Console-DtFuy9lk.js} +1 -1
  34. package/dist/interface/assets/{CuiActionButton-vWfTn9v6.js → CuiActionButton-eLmRgo3n.js} +1 -1
  35. package/dist/interface/assets/{CuiAvatar-CgMxEmy_.js → CuiAvatar-CsScebMx.js} +1 -1
  36. package/dist/interface/assets/{CuiBBoxPlayground-JxlxAwEH.js → CuiBBoxPlayground-C_Ne315a.js} +1 -1
  37. package/dist/interface/assets/CuiBottomSheet-BAjzf96f.js +1 -0
  38. package/dist/interface/assets/{CuiBottomSheet-DeatNfwe.js → CuiBottomSheet-DADVYUZP.js} +1 -1
  39. package/dist/interface/assets/CuiCameraCard-BqmI2OZs.js +1 -0
  40. package/dist/interface/assets/{CuiCameraCard-VcBtQNrg.css → CuiCameraCard-D3pxt8gc.css} +1 -1
  41. package/dist/interface/assets/{CuiCameraPipCard-mI-fq1HA.js → CuiCameraPipCard-CZs9GXxD.js} +1 -1
  42. package/dist/interface/assets/{CuiCameraRecordings-DdHzzlQ0.js → CuiCameraRecordings-DU9tQBCo.js} +1 -1
  43. package/dist/interface/assets/{CuiCameraShares-Ccl_R18x.js → CuiCameraShares-CRvPIRzf.js} +1 -1
  44. package/dist/interface/assets/{CuiCameraSnapshot-BSHFq9Wu.js → CuiCameraSnapshot-VcgjpetC.js} +1 -1
  45. package/dist/interface/assets/{CuiCameraTable-vtE18b9O.js → CuiCameraTable-CfbTYfFv.js} +2 -2
  46. package/dist/interface/assets/{CuiFloatingButton-C4icz7qO.js → CuiFloatingButton-BoUfL0hi.js} +1 -1
  47. package/dist/interface/assets/{CuiImage-BW_rXmKP.js → CuiImage-6GeH3yfp.js} +1 -1
  48. package/dist/interface/assets/{CuiMenu-BnlDnhe4.js → CuiMenu-DIUfSKaD.js} +1 -1
  49. package/dist/interface/assets/{CuiPluginCard-BjIla0Lh.js → CuiPluginCard-h4VXKTe7.js} +2 -2
  50. package/dist/interface/assets/{CuiPluginOAuthButton-BjITZzrH.js → CuiPluginOAuthButton-BuDycTgw.js} +2 -2
  51. package/dist/interface/assets/{CuiQRCode-CdXrr9fF.js → CuiQRCode-C4WGBs77.js} +1 -1
  52. package/dist/interface/assets/{CuiRecordingsGrid-DEMp6jb1.js → CuiRecordingsGrid-DyzJg09W.js} +1 -1
  53. package/dist/interface/assets/{CuiSchema-B5BebPPL.js → CuiSchema-BW86t7fv.js} +1 -1
  54. package/dist/interface/assets/{CuiTopNavbarItem-C1Jf6-v6.js → CuiTopNavbarItem-Cq6_w74W.js} +1 -1
  55. package/dist/interface/assets/{CuiTopbarSlot-DBQggZ_k.js → CuiTopbarSlot-DKgEs0YR.js} +1 -1
  56. package/dist/interface/assets/{Faces-BuDpT1bS.js → Faces-qoPUJlc6.js} +1 -1
  57. package/dist/interface/assets/{FirstSteps-BA2GcdeZ.js → FirstSteps-DnElw1hi.js} +1 -1
  58. package/dist/interface/assets/Instances-BncP_SBk.js +1 -0
  59. package/dist/interface/assets/{Menu-D7K5vheb.js → Menu-B4_m1WF_.js} +1 -1
  60. package/dist/interface/assets/{OAuthDeviceFlow-hX46XrKS.js → OAuthDeviceFlow-DEwrU8L9.js} +1 -1
  61. package/dist/interface/assets/Plugin-Dn5vqU4X.js +1 -0
  62. package/dist/interface/assets/{PluginConsole-BlNqePgI.js → PluginConsole-79yZJij1.js} +1 -1
  63. package/dist/interface/assets/{PluginSchema-0aNy8YQq.js → PluginSchema-vxEUM-61.js} +1 -1
  64. package/dist/interface/assets/{Plugins-DprSQtTi.js → Plugins-DIl5APKQ.js} +2 -2
  65. package/dist/interface/assets/Recordings-D5Ji--RO.js +1 -0
  66. package/dist/interface/assets/Settings-DE6RfQ5Y.js +1 -0
  67. package/dist/interface/assets/{SettingsAccount-C1SbeJeY.js → SettingsAccount-_XEEod5l.js} +1 -1
  68. package/dist/interface/assets/SettingsAccount-u6SWbGTu.js +1 -0
  69. package/dist/interface/assets/SettingsAppearance-BueRF191.js +1 -0
  70. package/dist/interface/assets/{SettingsAppearance-BNnf1b_H.js → SettingsAppearance-mGENXFy4.js} +1 -1
  71. package/dist/interface/assets/{SettingsBackup-DPBoJMtH.js → SettingsBackup-eF5cbNPt.js} +1 -1
  72. package/dist/interface/assets/{SettingsNotifications-CLJy9x9n.js → SettingsNotifications-BwxRI0jl.js} +1 -1
  73. package/dist/interface/assets/{SettingsRecordings-N7Z5TfSc.js → SettingsRecordings-CEB0cz9L.js} +1 -1
  74. package/dist/interface/assets/{SettingsRemote-COUnUIJS.js → SettingsRemote-BH4enBL4.js} +1 -1
  75. package/dist/interface/assets/{SettingsSystem-DQpLhvrZ.js → SettingsSystem-CXufeKHR.js} +2 -2
  76. package/dist/interface/assets/{SettingsUsers-YTqxZlmG.js → SettingsUsers-BT7Dzihk.js} +1 -1
  77. package/dist/interface/assets/Terminal-2tp5OxjF.js +4 -0
  78. package/dist/interface/assets/{VariableInput-Djug7qo2.js → VariableInput-NAuwYlcN.js} +1 -1
  79. package/dist/interface/assets/{VariableSuggestions-BIqdHoyn.js → VariableSuggestions-RN6Jmb60.js} +1 -1
  80. package/dist/interface/assets/{VersionsHandler-BxEnoZuK.js → VersionsHandler-BPh4lCvQ.js} +2 -2
  81. package/dist/interface/assets/{Workers-eBjEKjQP.js → Workers-DySfr-NJ.js} +1 -1
  82. package/dist/interface/assets/api-BbIW0RPc.js +2 -0
  83. package/dist/interface/assets/{api-BRFaSK8y.js → api-K4XsDkLM.js} +1 -1
  84. package/dist/interface/assets/{auth-BXBwiBIH.js → auth-BdlbWMOx.js} +1 -1
  85. package/dist/interface/assets/{automations-Cg4kEME7.js → automations-CSeo6eSD.js} +1 -1
  86. package/dist/interface/assets/{automations-Z2hMedMg.js → automations-DmufBRSS.js} +1 -1
  87. package/dist/interface/assets/{backup-yOGR7lqI.js → backup-CZ8kgA_t.js} +1 -1
  88. package/dist/interface/assets/{cameras-DHOi-zot.js → cameras-CMJNV2Qu.js} +1 -1
  89. package/dist/interface/assets/{cameras.schema-fPR1KOyp.js → cameras.schema-B33V_UN7.js} +1 -1
  90. package/dist/interface/assets/cloudHandoff-ClFYz2oi.js +1 -0
  91. package/dist/interface/assets/{deviceId-Bn_6G8Gz.js → deviceId-Tkb4Wm8j.js} +1 -1
  92. package/dist/interface/assets/{hasPermission-DjEBddex.js → hasPermission-D5p08DZc.js} +1 -1
  93. package/dist/interface/assets/{instances-CGhiomVU.js → instances-Utsx9iJo.js} +1 -1
  94. package/dist/interface/assets/locale-CmE7X4VH.js +1 -0
  95. package/dist/interface/assets/{main-8r8D2YqX.js → main-1xBkZFZd.js} +3 -3
  96. package/dist/interface/assets/{notifications-DDYgdk1C.js → notifications-43w57akw.js} +1 -1
  97. package/dist/interface/assets/{plugins-DFu-PyaK.js → plugins-CQjjilAg.js} +1 -1
  98. package/dist/interface/assets/{round-restart-alt-X9I15hRL.js → round-restart-alt-BoYs6Sl9.js} +1 -1
  99. package/dist/interface/assets/{router-DMYEhxdj.js → router-C6R_iGfz.js} +2 -2
  100. package/dist/interface/assets/{routerState-B_z68YwD.js → routerState-D7nuOTwH.js} +1 -1
  101. package/dist/interface/assets/{server-BpIPZq5L.js → server-CUcNO1h2.js} +1 -1
  102. package/dist/interface/assets/{shares-TtxtbPZt.js → shares-BRd3zGlF.js} +1 -1
  103. package/dist/interface/assets/{theme-MOk5mCsC.js → theme-MqsTXRk1.js} +1 -1
  104. package/dist/interface/assets/{types-CRlXpmFA.js → types-DBQ6DR8u.js} +1 -1
  105. package/dist/interface/assets/{ui-CY2-_evw.js → ui-DH2DdvbF.js} +1 -1
  106. package/dist/interface/assets/{useBiometricCredentials-Boyb2klA.js → useBiometricCredentials-CCurP7D6.js} +1 -1
  107. package/dist/interface/assets/{useCameraOptions-BOSJBPuE.js → useCameraOptions-CEhApni4.js} +1 -1
  108. package/dist/interface/assets/{useCuiCameraDrawer-BmdGPeEe.js → useCuiCameraDrawer-D2QdlhvQ.js} +1 -1
  109. package/dist/interface/assets/{useCuiDialog-DOcwIZA3.js → useCuiDialog-DjUpUM16.js} +1 -1
  110. package/dist/interface/assets/{useFileDownload-CRB3k3lW.js → useFileDownload-DE4OTrPS.js} +1 -1
  111. package/dist/interface/assets/{useLogsSocket-B1L7x9fB.js → useLogsSocket-N0Yvwfqp.js} +2 -2
  112. package/dist/interface/assets/{useSharedComposables-THEdrAoU.js → useSharedComposables-DNGRhsgh.js} +1 -1
  113. package/dist/interface/assets/{useStreamStatus-OmVyef54.js → useStreamStatus-Ca46g8Rd.js} +1 -1
  114. package/dist/interface/assets/{users.schema-DXBgo_V0.js → users.schema-ySuPxiVA.js} +1 -1
  115. package/dist/interface/assets/{vendor-cameraui-CUPAufpt.js → vendor-cameraui-dvS1_qYI.js} +1 -1
  116. package/dist/interface/assets/vendor-core-Dpu78NB8.js +1 -0
  117. package/dist/interface/assets/{vendor-leaflet-7XZntJjG.js → vendor-leaflet-_2Z0GiOD.js} +1 -1
  118. package/dist/interface/assets/{vendor-primevue-Bs3kBqxF.js → vendor-primevue-ltaQolO-.js} +79 -79
  119. package/dist/interface/assets/{view-grid-C9udm-L-.js → view-grid-CogoKcrp.js} +1 -1
  120. package/dist/interface/index.html +40 -40
  121. package/dist/interface/sw.js +1 -1
  122. package/dist/server/package.json +1 -1
  123. package/dist/server/src/api/index.js +1 -1
  124. package/dist/server/src/api/index.js.map +1 -1
  125. package/package.json +1 -1
  126. package/dist/interface/assets/Automation-C25AZETJ.js +0 -2
  127. package/dist/interface/assets/Camview-D2ON2UGk.js +0 -1
  128. package/dist/interface/assets/Config-BQQkw0Ol.js +0 -2
  129. package/dist/interface/assets/ConfigTriggerGeofence-D7xWoEKp.js +0 -1
  130. package/dist/interface/assets/CuiBottomSheet-Crtral92.js +0 -1
  131. package/dist/interface/assets/CuiCameraCard-BQpPhbFu.js +0 -1
  132. package/dist/interface/assets/Instances-CRywvMB3.js +0 -1
  133. package/dist/interface/assets/Plugin-fmS65xcP.js +0 -1
  134. package/dist/interface/assets/Recordings-DX54fvB1.js +0 -1
  135. package/dist/interface/assets/Settings-CLAZVcfy.js +0 -1
  136. package/dist/interface/assets/SettingsAccount-CXmg2Mcz.js +0 -1
  137. package/dist/interface/assets/SettingsAppearance-C8m7xHUu.js +0 -1
  138. package/dist/interface/assets/Terminal-Bw7lYJBM.js +0 -4
  139. package/dist/interface/assets/api-CxmpI477.js +0 -2
  140. package/dist/interface/assets/cloudHandoff-BJ8olRtK.js +0 -1
  141. package/dist/interface/assets/locale-CKgqENB3.js +0 -1
  142. package/dist/interface/assets/vendor-core-Cmu2BAxm.js +0 -1
  143. /package/dist/interface/assets/{logo-512-DLKVOU2S.png → error-256-DLKVOU2S.png} +0 -0
@@ -1 +0,0 @@
1
- import{S as e,c as t,d as n}from"./api-CxmpI477.js";import{$n as r,$t as i,An as a,En as o,Gt as s,Hn as c,In as l,Jn as u,On as d,Qt as f,Rn as p,Sn as m,Ut as h,Vn as g,Wt as _,Xt as v,Yn as y,Yt as b,Zn as x,Zt as S,ar as ee,cr as C,dr as w,gn as T,hn as E,in as D,nr as O,on as k,rn as A,sr as j,tn as M,wn as N}from"./vendor-TwHhULaP.js";import{An as P,Bn as F,Dn as I,Ht as te,Mn as L,Ut as R,Vn as ne,di as re,et as z,jn as B,st as V}from"./vendor-cameraui-CUPAufpt.js";import{c as H,f as ie}from"./vendor-core-Cmu2BAxm.js";import{t as U}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as W}from"./useSharedComposables-THEdrAoU.js";import{B as G,G as K,H as ae,J as oe,K as se,V as ce,W as le,a as ue,i as de,j as fe,u as pe}from"./vendor-primevue-Bs3kBqxF.js";import{t as me}from"./cctv-B8ZbbjL9.js";import{t as he}from"./bell-cSRUkOne.js";import{t as ge}from"./cog-DHFhi3a9.js";import{n as _e}from"./CuiMenu-BnlDnhe4.js";import{t as ve}from"./CuiBBoxPlayground-JxlxAwEH.js";import{t as ye}from"./cameras-DHOi-zot.js";import{n as be}from"./useCuiCameraDrawer-BmdGPeEe.js";import{t as xe}from"./useCuiDialog-DOcwIZA3.js";import{t as Se}from"./CuiTopbarSlot-DBQggZ_k.js";import{F as q,G as J,H as Y,K as Ce,U as we,W as Te,a as Ee}from"./types-CRlXpmFA.js";import{t as De}from"./CuiSchema-B5BebPPL.js";import{t as Oe}from"./plugins-DFu-PyaK.js";import{t as ke}from"./PluginSchema-0aNy8YQq.js";import{t as Ae}from"./plus-f_BxgZ2Q.js";import{a as je,i as Me,n as Ne,o as X,r as Pe,t as Fe}from"./vendor-markdown-Cuk4GbAg.js";import{t as Ie}from"./close-circle-C7JuUqWI.js";import{t as Le}from"./back-filled-DlLybzyd.js";import{t as Re}from"./CuiPluginCard-BjIla0Lh.js";var Z={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Q={class:`flex flex-col gap-4`},$={class:`flex flex-col field-gap`},ze={class:`cui-label`},Be={key:0,class:`text-red-500 text-sm`},Ve={class:`flex flex-col field-gap`},He={class:`cui-label`},Ue={class:`flex flex-col field-gap`},We={class:`cui-label`},Ge={class:`flex flex-col field-gap`},Ke={class:`cui-label`},qe={class:`flex flex-col field-gap`},Je={class:`cui-label`},Ye={class:`flex flex-col field-gap`},Xe={class:`cui-label`},Ze={class:`flex flex-col field-gap`},Qe={class:`cui-label`},$e={class:`flex flex-col field-gap`},et={class:`cui-label`},tt={class:`mt-8`},nt={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},rt={key:0,class:`flex items-center justify-center w-full py-4`},it={key:1,class:`flex items-center justify-center text-sm text-muted py-4 text-center`},at={key:2,class:`flex flex-col field-gap`},ot={class:`text-xs text-muted`},st={key:0,class:`mt-8`},ct={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},lt=k({__name:`CuiNotificationInterface`,props:{pluginName:{}},setup(t){let a=t,{t:c}=re(),l=e(),{user:d}=ie(n()),{pluginName:m}=ee(a),{plugin:h}=te(m),_=b(()=>Object.values(I).map(e=>({label:c(`components.notification_interface.severity_${e}`),value:e}))),y=x({title:`Test notification`,subtitle:``,body:`This is a test notification from camera.ui`,severity:I.Info,tag:``,imageUrl:``,deepLink:``}),S=r([]),C=r(!1),T=r(!1),E=O([]),k=r(!1),A=r([]),M=O(),P=r(!1),L=b(()=>E.value.map(e=>({id:e.id,label:e.name})));async function R(){if(!(!h.value||!d.value?._id)){k.value=!0;try{E.value=await h.value.getDevices?.([d.value._id])??[]}catch(e){console.error(`Failed to load notifier devices:`,e),E.value=[]}finally{k.value=!1}}}async function B(){if(h.value){P.value=!0;try{M.value=await h.value.notificationSettings?.()}catch(e){console.error(`Failed to load notification settings schema:`,e),M.value=void 0}finally{P.value=!1}}}function V(){S.value.push({key:``,value:``})}function H(e){S.value.splice(e,1)}function U(){let e={};for(let t of S.value)t.key.trim()&&(e[t.key.trim()]=t.value);return{title:y.title.trim(),subtitle:y.subtitle.trim()||void 0,body:y.body.trim()||void 0,severity:y.severity,tag:y.tag.trim()||void 0,imageUrl:y.imageUrl.trim()||void 0,deepLink:y.deepLink.trim()||void 0,data:Object.keys(e).length?e:void 0}}async function W(){let e=h.value;if(!(!e||T.value)){if(!y.title.trim()){C.value=!0;return}T.value=!0;try{let t=U(),n=A.value.length?A.value:E.value.map(e=>e.id);await e.sendNotification?.(n,t),l.add({severity:`success`,detail:c(`components.notification_interface.sent`),life:3e3})}catch(e){l.add({severity:`error`,detail:e,life:3e3})}finally{T.value=!1}}}return p(h,e=>{e&&(R(),B())},{immediate:!0}),(e,t)=>{let n=z,r=de,a=fe,c=Ie,l=ne,d=Ae,p=F,m=pe,b=De;return N(),i(`div`,null,[v(`h3`,Z,w(e.$t(`components.notification_interface.template`)),1),v(`div`,Q,[v(`div`,$,[v(`label`,ze,w(e.$t(`components.notification_interface.title`)),1),D(n,{modelValue:j(y).title,"onUpdate:modelValue":[t[0]||=e=>j(y).title=e,t[1]||=e=>C.value=!1],placeholder:e.$t(`components.notification_interface.title`),invalid:j(C),class:`w-full`},null,8,[`modelValue`,`placeholder`,`invalid`]),j(C)?(N(),i(`p`,Be,w(e.$t(`components.notification_interface.title_required`)),1)):f(``,!0)]),v(`div`,Ve,[v(`label`,He,w(e.$t(`components.notification_interface.subtitle`)),1),D(n,{modelValue:j(y).subtitle,"onUpdate:modelValue":t[2]||=e=>j(y).subtitle=e,placeholder:e.$t(`components.notification_interface.subtitle`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),v(`div`,Ue,[v(`label`,We,w(e.$t(`components.notification_interface.body`)),1),D(r,{modelValue:j(y).body,"onUpdate:modelValue":t[3]||=e=>j(y).body=e,placeholder:e.$t(`components.notification_interface.body`),rows:`3`,class:`w-full`},null,8,[`modelValue`,`placeholder`])]),v(`div`,Ge,[v(`label`,Ke,w(e.$t(`components.notification_interface.severity`)),1),D(a,{modelValue:j(y).severity,"onUpdate:modelValue":t[4]||=e=>j(y).severity=e,options:j(_),"option-label":`label`,"option-value":`value`,class:`w-full`},null,8,[`modelValue`,`options`])]),v(`div`,qe,[v(`label`,Je,w(e.$t(`components.notification_interface.tag`)),1),D(n,{modelValue:j(y).tag,"onUpdate:modelValue":t[5]||=e=>j(y).tag=e,placeholder:`motion:cam-1`,class:`w-full`},null,8,[`modelValue`])]),v(`div`,Ye,[v(`label`,Xe,w(e.$t(`components.notification_interface.image_url`)),1),D(n,{modelValue:j(y).imageUrl,"onUpdate:modelValue":t[6]||=e=>j(y).imageUrl=e,placeholder:`https://…`,class:`w-full`},null,8,[`modelValue`])]),v(`div`,Ze,[v(`label`,Qe,w(e.$t(`components.notification_interface.deep_link`)),1),D(n,{modelValue:j(y).deepLink,"onUpdate:modelValue":t[7]||=e=>j(y).deepLink=e,placeholder:`/cameras/cam-1`,class:`w-full`},null,8,[`modelValue`])]),v(`div`,$e,[v(`label`,et,w(e.$t(`components.notification_interface.data`)),1),(N(!0),i(s,null,o(j(S),(t,r)=>(N(),i(`div`,{key:r,class:`flex gap-2 items-center`},[D(n,{modelValue:t.key,"onUpdate:modelValue":e=>t.key=e,placeholder:e.$t(`components.notification_interface.data_key`),class:`flex-1 min-w-0`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),D(n,{modelValue:t.value,"onUpdate:modelValue":e=>t.value=e,placeholder:e.$t(`components.notification_interface.data_value`),class:`flex-1 min-w-0`},null,8,[`modelValue`,`onUpdate:modelValue`,`placeholder`]),D(l,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:e=>H(r)},{icon:g(()=>[D(c,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])]))),128)),D(l,{severity:`secondary`,outlined:``,fluid:``,class:`cui-button-medium`,label:e.$t(`components.notification_interface.add_data`),onClick:V},{icon:g(()=>[D(d,{class:`w-4 h-4`})]),_:1},8,[`label`])])]),v(`div`,tt,[v(`h3`,nt,w(e.$t(`components.notification_interface.targets`)),1),j(k)?(N(),i(`div`,rt,[D(p,{class:`w-[24px] h-[24px] m-0`,"stroke-width":`5`})])):j(L).length?(N(),i(`div`,at,[v(`span`,ot,w(e.$t(`components.notification_interface.targets_hint`)),1),D(m,{modelValue:j(A),"onUpdate:modelValue":t[8]||=e=>u(A)?A.value=e:null,options:j(L),"option-label":`label`,"option-value":`id`,placeholder:e.$t(`components.notification_interface.all_devices`),display:`chip`,filter:``,class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`])])):(N(),i(`div`,it,w(e.$t(`components.notification_interface.no_devices`)),1))]),j(M)?.length?(N(),i(`div`,st,[v(`h3`,ct,w(e.$t(`components.notification_interface.settings`)),1),D(b,{"schema-form":{schema:j(M),config:{}},loading:j(P)},null,8,[`schema-form`,`loading`])])):f(``,!0),D(l,{fluid:``,class:`mt-8 cui-button-medium`,severity:`success`,loading:j(T),disabled:!j(h)||j(T),label:e.$t(`components.notification_interface.send_test`),onClick:W},null,8,[`loading`,`disabled`,`label`])])}}}),ut=.15,dt=.38,ft={class:`mb-4 rounded-xl overflow-hidden`},pt=[`src`],mt={class:`text-sm text-muted mb-4`},ht={key:0,class:`ml-1`},gt={class:`flex gap-2 mb-4`},_t={key:0,class:`flex flex-col gap-2`},vt={class:`text-sm truncate flex-1 mr-3`},yt={class:`flex items-center gap-2 shrink-0`},bt=k({__name:`PluginClipInterface`,props:{src:{},response:{},onTextSearch:{type:Function}},setup(e,{expose:t}){let n=e,a=r(``),c=r(!1),l=r([]);function d(e){return Math.max(0,Math.min(1,(e-ut)/(dt-ut)))}async function p(){let e=a.value.trim();if(!(!e||c.value)){c.value=!0;try{let{score:t}=await n.onTextSearch(e);l.value.unshift({query:e,rawScore:t,displayScore:d(t)}),a.value=``}catch(e){console.error(`CLIP text search failed:`,e)}finally{c.value=!1}}}return t({}),(t,n)=>{let r=z,d=ne,m=ue;return N(),i(`div`,null,[v(`div`,ft,[v(`img`,{src:e.src,alt:`CLIP test image`,class:`w-full object-contain`},null,8,pt)]),v(`div`,mt,[A(w(e.response.embeddings.length)+` embedding(s), `+w(e.response.embeddings[0]?.embedding?.length??0)+`-dim `,1),e.response.embeddingModel?(N(),i(`span`,ht,`(`+w(e.response.embeddingModel)+`)`,1)):f(``,!0)]),v(`div`,gt,[D(r,{modelValue:j(a),"onUpdate:modelValue":n[0]||=e=>u(a)?a.value=e:null,class:`flex-1`,placeholder:t.$t(`components.clip_interface.enter_query`),onKeyup:h(p,[`enter`])},null,8,[`modelValue`,`placeholder`]),D(d,{class:`cui-button-medium`,label:t.$t(`components.clip_interface.search`),loading:j(c),onClick:p},null,8,[`label`,`loading`])]),j(l).length?(N(),i(`div`,_t,[(N(!0),i(s,null,o(j(l),(e,t)=>(N(),i(`div`,{key:t,class:`flex items-center justify-between p-3 rounded-lg content-background`},[v(`span`,vt,w(e.query),1),v(`div`,yt,[v(`div`,{class:C([`text-sm font-medium`,e.displayScore>=.5?`text-green-500`:e.displayScore>=.25?`text-yellow-500`:`text-red-400`])},w((e.displayScore*100).toFixed(0))+`% `,3),D(m,{value:e.displayScore>=.5?`Match`:e.displayScore>=.25?`Possible`:`No match`,severity:e.displayScore>=.5?`success`:e.displayScore>=.25?`warn`:`danger`,class:`text-xs`},null,8,[`value`,`severity`])])]))),128))])):f(``,!0)])}}}),xt=k({__name:`PluginMotionInterface`,props:{response:{}},setup(e){let{response:t}=ee(e),n=l(`videoPlayerRef`);return m(()=>{if(n.value){let e=new Blob([t.value.videoData],{type:`video/mp4`});n.value.src=URL.createObjectURL(e),n.value.load()}}),(e,t)=>(N(),i(`div`,null,[v(`video`,{ref_key:`videoPlayerRef`,ref:n,controls:``,class:`w-full`},`Your browser does not support the video tag.`,512)]))}}),St={class:`mb-5 h-min`},Ct=[`src`],wt=k({__name:`PluginObjectInterface`,props:{src:{},response:{}},setup(e){let{response:t,src:n}=ee(e),r=b(()=>t.value.detections);return(e,t)=>{let a=ve;return N(),i(`div`,St,[D(a,{detections:j(r)},null,8,[`detections`]),v(`img`,{src:j(n),alt:`Preview`,class:`w-full`},null,8,Ct)])}}}),Tt={key:0,class:`w-full`},Et={class:`flex flex-col justify-center items-center mb-5`},Dt={for:`restoreInput`,class:`cursor-pointer text-center text-sm`},Ot=[`accept`],kt={key:0,class:`text-red-500 text-sm`},At={key:1,class:`w-full flex flex-col items-center justify-center`},jt={key:0,class:`relative mb-4`},Mt=[`src`],Nt={key:1,class:`relative mb-4 w-full`},Pt={key:2,class:`relative mb-4 w-full`},Ft=[`src`,`type`],It={class:`flex items-center justify-center`},Lt={class:`mx-2`},Rt={class:`text-muted`},zt={class:`flex items-center justify-center mt-2 text-xs text-muted`},Bt={class:`mt-10`},Vt={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Ht={key:0,class:`flex items-center justify-center text-sm text-muted mt-5`},Ut=k({__name:`CuiDetectionInterface`,props:{type:{},pluginName:{}},emits:[`update:file`,`update:metadata`],setup(t,{emit:n}){let a=t,o=n,{t:s}=re(),c=e(),u=xe(),{type:d,pluginName:m}=ee(a),{plugin:h,isLoading:y}=te(m),x=l(`fileInputRef`),E=l(`videoPlayerRef`),k=l(`audioPlayerRef`),M=O([]),P=r(!1),F=r(!1),I=r(!1),L=r(!1),R=r(``),z=r(!1),B=r(),V=r(!0),H=O(),ie=r(!1),U=b(()=>ie.value||y.value||z.value),W=b(()=>{switch(d.value){case`objectDetection`:case`faceDetection`:case`licensePlateDetection`:case`classifierDetection`:case`clipDetection`:return`image`;case`motionDetection`:return`video`;case`audioDetection`:return`audio`;default:return`image`}}),G=b(()=>{switch(W.value){case`image`:return Te;case`video`:return we;case`audio`:return Y;default:return[]}}),K=b(()=>{switch(W.value){case`image`:return q;case`video`:return Ce;case`audio`:return J;default:return 0}}),ae=b(()=>G.value.join(`,`));async function oe(){if(h.value){ie.value=!0;try{let e;switch(d.value){case`motionDetection`:e=await h.value.motionDetectionSettings?.();break;case`objectDetection`:e=await h.value.objectDetectionSettings?.();break;case`audioDetection`:e=await h.value.audioDetectionSettings?.();break;case`faceDetection`:e=await h.value.faceDetectionSettings?.();break;case`licensePlateDetection`:e=await h.value.licensePlateDetectionSettings?.();break;case`classifierDetection`:e=await h.value.classifierDetectionSettings?.();break;case`clipDetection`:e=await h.value.clipSettings?.();break}H.value=e}catch(e){console.error(`Failed to load interface schema:`,e),H.value=void 0}finally{ie.value=!1}}}function se(e){let t=M.value.findIndex(t=>t.name===e);t>-1&&(M.value.splice(t,1),ue(),R.value=``,W.value===`video`&&E.value&&(E.value.src=``),B.value=void 0,o(`update:file`,null),o(`update:metadata`,null))}function ce(e){if(P.value=!1,F.value=!1,L.value=!1,M.value=[],e.dataTransfer)if(e.dataTransfer.files.length>1)F.value=!0;else{let t=e.dataTransfer.files[0];(G.value.length===0||G.value.includes(t.type))&&t.size<=K.value?(M.value.push(t),T(()=>{de(t)})):t.size>K.value?L.value=!0:F.value=!0}}function le(e){F.value=!1,L.value=!1,M.value=[];let t=e.target;if(t&&t.files){if(t.files?.length>1)F.value=!0;else if(t.files.length===1){let e=t.files[0],n=G.value.length===0||G.value.includes(e.type);e.size<=K.value&&n?(M.value.push(e),T(()=>{de(e)})):e.size>K.value?L.value=!0:F.value=!0}}}function ue(){x.value&&(x.value.value=``)}function de(e){z.value=!0;let t=URL.createObjectURL(e);switch(W.value){case`image`:fe(e,t);break;case`video`:pe(e,t);break;case`audio`:me(e,t);break}}function fe(e,t){let n=new Image;n.src=t,n.onload=()=>{R.value=n.src;let t={width:n.width,height:n.height};B.value=t,o(`update:metadata`,t),o(`update:file`,e),z.value=!1}}function pe(e,t){E.value&&(E.value.src=t,E.value.load(),E.value.onloadeddata=()=>{o(`update:file`,e),z.value=!1})}function me(e,t){R.value=t;let n=new Audio;n.src=t,n.onloadedmetadata=()=>{let t={mimeType:e.type};B.value=t,o(`update:metadata`,t),o(`update:file`,e),z.value=!1}}function he(e){return e<1024?e+` bytes`:e<1048576?(e/1024).toFixed(1)+` KB`:(e/1048576).toFixed(1)+` MB`}function ge(e,t){let n=0,r=0,i=0;for(let a=0;a<e.length;a++)n+=e[a]*t[a],r+=e[a]*e[a],i+=t[a]*t[a];return r&&i?n/(Math.sqrt(r)*Math.sqrt(i)):0}async function _e(e){if(!M.value.length){I.value=!0;return}if(!h.value){console.error(`Plugin not connected`);return}console.log(`Starting detection with config:`,e),z.value=!0;try{let t=await M.value[0].arrayBuffer();if(d.value===`audioDetection`){let n=await h.value.testAudioDetection?.(new Uint8Array(t),B.value,e);if(!n){console.warn(`No audio detection interface available`);return}if(n.detected&&n.detections?.length){let e=n.detections.map(e=>`${e.label} (${Math.round(e.confidence*100)}%)`).join(`, `),t=n.decibels==null?``:` | ${n.decibels.toFixed(1)} dBFS`;c.add({severity:`success`,detail:`${e}${t}`,life:3e3})}else c.add({severity:`info`,detail:s(`components.detection_interface.audio_not_detected`),life:3e3})}else if(d.value===`motionDetection`){let n=await h.value.testMotionDetection?.(new Uint8Array(t),e);if(!n){console.warn(`No motion detection interface available`);return}u.openComponentDialog(xt,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{response:n}}})}else if(d.value===`faceDetection`){let n=await h.value.testFaceDetection?.(new Uint8Array(t),B.value,e);if(!n){console.warn(`No face detection interface available`);return}u.openComponentDialog(wt,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:R,response:n}}})}else if(d.value===`licensePlateDetection`){let n=await h.value.testLicensePlateDetection?.(new Uint8Array(t),B.value,e);if(!n){console.warn(`No license plate detection interface available`);return}u.openComponentDialog(wt,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:R,response:n}}})}else if(d.value===`classifierDetection`){let n=await h.value.testClassifierDetection?.(new Uint8Array(t),B.value,e);if(!n){console.warn(`No classifier detection interface available`);return}u.openComponentDialog(wt,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:R,response:n}}})}else if(d.value===`clipDetection`){let n=await h.value.testClipEmbedding?.(new Uint8Array(t),B.value,e);if(!n){console.warn(`No CLIP detection interface available`);return}if(!n.embeddings?.length){c.add({severity:`info`,detail:s(`components.detection_interface.no_detections`),life:3e3});return}let r=n.embeddings[0].embedding;u.openComponentDialog(bt,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:R,response:n,onTextSearch:async e=>{let t=await h.value.getTextEmbedding(e);return t?.embedding?.length?{score:ge(r,t.embedding)}:{score:0}}}}})}else{let n=await h.value.testObjectDetection?.(new Uint8Array(t),B.value,e);if(!n){console.warn(`No object detection interface available`);return}u.openComponentDialog(wt,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:R,response:n}}})}}catch(e){c.add({severity:`error`,detail:e,life:3e3})}finally{z.value=!1}}return p(h,e=>{e&&oe()},{immediate:!0}),p(M,e=>{e.length>0?(I.value=!1,V.value=!1):(R.value=``,B.value=void 0,V.value=!0)},{immediate:!0,deep:!0}),(e,t)=>{let n=Ie,r=ne,a=De;return N(),i(`div`,null,[v(`div`,{class:`file-upload-box`,onDrop:t[1]||=_(e=>ce(e),[`prevent`]),onDragover:t[2]||=_(e=>P.value=!0,[`prevent`]),onDragenter:t[3]||=_(e=>P.value=!0,[`prevent`]),onDragleave:t[4]||=_(e=>P.value=!1,[`prevent`])},[j(M).length?(N(),i(`div`,At,[j(W)===`image`?(N(),i(`div`,jt,[v(`img`,{src:j(R),alt:`Preview`,class:`w-full`},null,8,Mt)])):j(W)===`video`?(N(),i(`div`,Nt,[v(`video`,{ref_key:`videoPlayerRef`,ref:E,controls:``,class:`w-full`},`Your browser does not support the video tag.`,512)])):j(W)===`audio`?(N(),i(`div`,Pt,[v(`audio`,{ref_key:`audioPlayerRef`,ref:k,controls:``,class:`w-full`},[v(`source`,{src:j(R),type:j(M)[0].type},null,8,Ft),t[5]||=A(` Your browser does not support the audio element. `,-1)],512)])):f(``,!0),v(`div`,It,[D(r,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t[0]||=_(e=>se(j(M)[0].name),[`stop`])},{icon:g(()=>[D(n,{width:`100%`,height:`100%`})]),_:1}),v(`b`,Lt,w(j(M)[0].name),1),v(`span`,Rt,`(`+w(he(j(M)[0].size))+`)`,1)])])):(N(),i(`div`,Tt,[v(`div`,Et,[v(`label`,Dt,w(e.$t(`components.detection_interface.drop_or_select_${j(W)}_to_detect${j(W)===`image`?`_objects`:j(W)===`video`?`_motion`:``}`)),1),v(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:x,type:`file`,class:`hidden`,accept:j(ae),onChange:le},null,40,Ot),j(F)?(N(),i(`p`,kt,w(e.$t(`components.detection_interface.only_one_${j(W)}_allowed`)),1)):f(``,!0),j(I)?(N(),i(`p`,{key:1,class:C([`text-red-500 text-sm`,{"mt-2":j(F)}])},w(e.$t(`components.detection_interface.${j(W)}_required`)),3)):f(``,!0),j(L)?(N(),i(`p`,{key:2,class:C([`text-red-500 text-sm`,{"mt-2":j(F)||j(I)}])},w(e.$t(`components.detection_interface.file_size_error`)),3)):f(``,!0)])]))],32),v(`div`,zt,[v(`span`,null,`(`+w(j(K)/1024/1024)+`MB, `+w(j(G).join(`, `))+`)`,1)]),v(`div`,Bt,[v(`h3`,Vt,w(e.$t(`components.detection_interface.interface_config`)),1),j(H)?.length?(N(),S(a,{key:1,"schema-form":{schema:j(H),config:{}},loading:j(U),"save-button-label":e.$t(`components.detection_interface.detect`),"disable-button":j(V),"show-button":``,onOnFormSubmit:_e},null,8,[`schema-form`,`loading`,`save-button-label`,`disable-button`])):(N(),i(`div`,Ht,w(e.$t(`components.detection_interface.no_interface_config`)),1))])])}}}),Wt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Gt(e,t){return N(),i(`svg`,Wt,[...t[0]||=[v(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M2 10v3m4-7v11m4-14v18m4-13v7m4-10v13m4-8v3`},null,-1)]])}var Kt=y({name:`lucide-audio-lines`,render:Gt}),qt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Jt(e,t){return N(),i(`svg`,qt,[...t[0]||=[v(`path`,{fill:`currentColor`,d:`M2 7V4q0-.825.588-1.412T4 2h3v2H4v3zm5 15H4q-.825 0-1.412-.587T2 20v-3h2v3h3zm10 0v-2h3v-3h2v3q0 .825-.587 1.413T20 22zm3-15V4h-3V2h3q.825 0 1.413.588T22 4v3zm-7.913 1.913Q11.5 8.325 11.5 7.5t.588-1.412T13.5 5.5t1.413.588T15.5 7.5t-.587 1.413T13.5 9.5t-1.412-.587M12.8 18h-4l1-5.1l-1.8.7V17H6v-4.7l3.95-1.7q.875-.375 1.288-.487T12 10q.525 0 .975.275T13.7 11l1 1.6q.65 1.05 1.763 1.725T19 15v2q-1.65 0-3.088-.687T13.5 14.5z`},null,-1)]])}var Yt=y({name:`material-symbols-detection-and-zone`,render:Jt}),Xt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Zt(e,t){return N(),i(`svg`,Xt,[...t[0]||=[v(`path`,{fill:`currentColor`,d:`M8.113 13.888Q7.75 13.525 7.75 13t.363-.888T9 11.75t.888.363t.362.887t-.363.888T9 14.25t-.888-.363m6 0q-.362-.362-.362-.887t.363-.888t.887-.362t.888.363t.362.887t-.363.888t-.887.362t-.888-.363M12 20q3.35 0 5.675-2.325T20 12q0-.6-.075-1.162T19.65 9.75q-.525.125-1.05.188T17.5 10q-2.275 0-4.3-.975T9.75 6.3q-.8 1.95-2.287 3.388T4 11.85V12q0 3.35 2.325 5.675T12 20m0 2q-2.075 0-3.9-.787t-3.175-2.138T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22`},null,-1)]])}var Qt=y({name:`material-symbols-face`,render:Zt}),$t={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function en(e,t){return N(),i(`svg`,$t,[...t[0]||=[v(`path`,{fill:`currentColor`,d:`M8 17q-.425 0-.712-.288T7 16t.288-.712T8 15h5q-.35-.425-.562-.925T12.1 13H10q-.425 0-.712-.288T9 12t.288-.712T10 11h2.1q.125-.575.338-1.075T13 9H4q-.425 0-.712-.288T3 8t.288-.712T4 7h13q2.075 0 3.538 1.463T22 12t-1.463 3.538T17 17zm9-2q1.25 0 2.125-.875T20 12t-.875-2.125T17 9t-2.125.875T14 12t.875 2.125T17 15M3 13q-.425 0-.712-.288T2 12t.288-.712T3 11h4q.425 0 .713.288T8 12t-.288.713T7 13zm1 4q-.425 0-.712-.288T3 16t.288-.712T4 15h1q.425 0 .713.288T6 16t-.288.713T5 17z`},null,-1)]])}var tn=y({name:`material-symbols-motion-blur-rounded`,render:en}),nn={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function rn(e,t){return N(),i(`svg`,nn,[...t[0]||=[v(`g`,{fill:`none`,"fill-rule":`evenodd`},[v(`path`,{d:`m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z`}),v(`path`,{fill:`currentColor`,d:`M15.586 2.757a2 2 0 0 1 2.828 0l2.829 2.829a2 2 0 0 1 0 2.828l-2.829 2.829a2 2 0 0 1-2.828 0l-2.829-2.829a2 2 0 0 1 0-2.828zM9 3a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm12 12a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2zM9 13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2z`})],-1)]])}var an=y({name:`mingcute-classify-2-fill`,render:rn}),on={viewBox:`0 0 256 256`,width:`1.2em`,height:`1.2em`};function sn(e,t){return N(),i(`svg`,on,[...t[0]||=[v(`path`,{fill:`currentColor`,d:`M200 156c0 6.5-7.33 12-16 12s-16-5.5-16-12s7.33-12 16-12s16 5.5 16 12m32-100v144a16 16 0 0 1-16 16H40a16 16 0 0 1-16-16V56a16 16 0 0 1 16-16h176a16 16 0 0 1 16 16m-88.63 116.88l-44-104a8 8 0 0 0-14.74 0l-44 104a8 8 0 0 0 14.74 6.24L66.84 152h50.32l11.47 27.12a8 8 0 0 0 14.74-6.24M216 124c0-15.44-14.36-28-32-28a34.86 34.86 0 0 0-20.78 6.68a8 8 0 0 0 9.56 12.83A18.84 18.84 0 0 1 184 112c8.56 0 15.8 5.36 16 11.76v8a35.24 35.24 0 0 0-16-3.76c-17.64 0-32 12.56-32 28s14.36 28 32 28a35.1 35.1 0 0 0 16.93-4.26A8 8 0 0 0 216 176ZM73.61 136h36.78L92 92.53Z`},null,-1)]])}var cn=y({name:`ph-text-aa-fill`,render:sn}),ln={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function un(e,t){return N(),i(`svg`,ln,[...t[0]||=[v(`path`,{fill:`currentColor`,d:`M12.75 3a.75.75 0 0 0-1.5 0v2a.75.75 0 0 0 1.5 0z`},null,-1),v(`path`,{fill:`currentColor`,"fill-rule":`evenodd`,d:`M22.75 12.057c0 1.837 0 3.293-.153 4.432c-.158 1.172-.49 2.121-1.238 2.87c-.749.748-1.698 1.08-2.87 1.238c-1.14.153-2.595.153-4.433.153H9.944c-1.837 0-3.293 0-4.432-.153c-1.172-.158-2.121-.49-2.87-1.238c-.748-.749-1.08-1.698-1.238-2.87c-.153-1.14-.153-2.595-.153-4.433v-.926q.001-.575.008-1.096c.014-.975.05-1.81.145-2.523c.158-1.172.49-2.121 1.238-2.87c.749-.748 1.698-1.08 2.87-1.238c.716-.096 1.558-.132 2.541-.145l.697-.005a1 1 0 0 1 1.001.999V5a2.25 2.25 0 0 0 4.5 0v-.75c0-.552.448-1 1-.998c1.29.006 2.359.033 3.239.151c1.172.158 2.121.49 2.87 1.238c.748.749 1.08 1.698 1.238 2.87c.153 1.14.153 2.595.153 4.433zM8 9.75a.75.75 0 0 0 0 1.5h8a.75.75 0 0 0 0-1.5zm0 3.5a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5z`,"clip-rule":`evenodd`},null,-1)]])}var dn=y({name:`solar-plate-bold`,render:un}),fn={class:`font-semibold text-xl truncate`},pn={class:`lg:col-span-2 order-1 !h-[220px]`},mn={class:`flex w-full h-full items-center justify-center`},hn={class:`lg:col-span-1 lg:row-span-3 order-2`},gn={class:`lg:!hidden card-title`},_n={key:0,class:`w-full h-full flex items-center justify-center`},vn={key:1},yn={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},bn={key:0,class:`flex items-center justify-center w-full h-full text-muted text-sm`},xn=[`onClick`],Sn={key:0,class:`w-full h-full`},Cn={key:0,class:`flex flex-col items-center justify-center w-full h-full text-muted text-sm gap-1 text-center`},wn={key:2,class:`flex items-center justify-center w-full h-full text-muted text-sm`},Tn={key:9,class:`w-full h-full`},En={key:0,class:`flex items-center justify-center w-full h-full text-muted text-sm`},Dn={class:`lg:col-span-2 order-3`},On={class:`lg:!hidden card-title`},kn={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},An={key:0,class:`flex w-full h-full items-center justify-center`},jn=[`innerHTML`],Mn={class:`lg:col-span-2 order-4`},Nn={class:`lg:!hidden card-title`},Pn={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Fn={key:0,class:`flex w-full h-full items-center justify-center`},In=[`innerHTML`],Ln=U(k({__name:`Plugin`,setup(n){let l=new ye,m=new Oe,h=be(),_=H(),y=e(),x=xe(),{lgBreakpoint:ee}=W(),{t:T}=re(),O=r(_.params.scope),k=r(_.params.pluginname),I=b(()=>O.value?`${O.value}/${k.value}`:k.value),{contract:z,error:ie}=te(I);m.toggleQueryActivator(`getPluginContractQuery`,!1);let{data:U,isBusy:ue}=m.getPluginQuery(I),{data:de,isBusy:fe}=m.getPluginReadmeQuery(I),{data:pe,isBusy:ve}=m.getPluginChangelogQuery(I),{data:q}=m.getPluginContractQuery(I),J=R(I),Y=J.config,Ce=J.isLoading,{mutate:we,isPending:Te}=l.addCameraExtensionQuery(),{mutate:Ae,isPending:Ie}=l.removeCameraExtensionQuery(),Z=r(`settings`),Q=r([]),$=r([]),ze=b(()=>!!z.value&&P(z.value,L.NVR)),Be=Fe(`commonmark`,{highlight(e,t){if(t&&X.getLanguage(t))try{return`<pre><code class="hljs">`+X.highlight(e,{language:t,ignoreIllegals:!0}).value+`</code></pre>`}catch{}return`<pre><code class="hljs">`+Be.utils.escapeHtml(e)+`</code></pre>`}});X.registerLanguage(`typescript`,Pe),X.registerLanguage(`yaml`,Ne),X.registerLanguage(`json`,je),X.registerLanguage(`python`,Me);function Ve(e,t){return e.pluginInfo?.name===t}async function He(e){try{await J.setValue(e.key,void 0),y.add({severity:`success`,detail:T(`components.toast.config_updated`),life:3e3})}catch(e){y.add({severity:`error`,detail:e,life:3e3})}}async function Ue(e){try{let n=await J.submitValue(e.key,e.payload);if(n?.toast){let e=t(n.toast.type);y.add({severity:e,detail:n.toast.message,life:3e3})}n?.schema?.length&&x.openComponentDialog(ke,{data:{title:T(`components.dialog.title.config`),hideConfirmButton:!0,contentProps:{schemaConfig:{schema:n.schema,config:e.payload},pluginName:I.value,buttonKey:e.key}}})}catch(e){y.add({severity:`error`,detail:e,life:3e3})}}async function We(e){if(Y.value?.schema.length)try{let t=Ee(Y.value.schema,e);await J.setConfig(t),y.add({severity:`success`,detail:T(`components.toast.config_updated`),life:3e3})}catch(e){y.add({severity:`error`,detail:e,life:3e3})}}async function Ge(e){if(U.value&&U.value.contract){let t=B(U.value.contract)?[`hub`]:U.value.contract.provides;if($.value.includes(e.name))for(let n of t)Ae({cameraname:e.name,pluginname:U.value.pluginName,type:n},{onSuccess:()=>{$.value=$.value.filter(t=>t!==e.name)}});else for(let n of t)we({cameraname:e.name,pluginname:U.value.pluginName,type:n},{onSuccess:()=>{$.value=[...$.value,e.name]}})}}return p(U,e=>{if(!e||e.disabled){let e=Q.value.some(e=>e.name===`settings`),t=Q.value.some(e=>e.name===`cameras`);e?Z.value=`settings`:t&&(Z.value=`cameras`)}},{deep:!0}),p(_,()=>{k.value=_.params.pluginname},{deep:!0,immediate:!0}),p([U,J.isConnected],async([e,t])=>{e&&!e.disabled&&t&&await J.getConfig()},{immediate:!0}),p(Y,()=>{Y.value?m.toggleQueryActivator(`getPluginContractQuery`,!0):m.toggleQueryActivator(`getPluginContractQuery`,!1)},{deep:!0,immediate:!0}),p([q,Y,z],()=>{let e=[],t=!1,n=ze.value||!!Y.value?.schema.length;e.push({name:`settings`,icon:ge,isInterface:!1,tooltip:T(`views.plugin.settings_tab_tooltip`)}),z.value&&P(z.value,L.MotionDetection)&&(t=!0,e.push({name:`motion_detection`,icon:tn,isInterface:!0,tooltip:T(`views.plugin.motion_detection_tab_tooltip`)})),z.value&&P(z.value,L.ObjectDetection)&&(t=!0,e.push({name:`object_detection`,icon:Yt,isInterface:!0,tooltip:T(`views.plugin.object_detection_tab_tooltip`)})),z.value&&P(z.value,L.AudioDetection)&&(t=!0,e.push({name:`audio_detection`,icon:Kt,isInterface:!0,tooltip:T(`views.plugin.audio_detection_tab_tooltip`)})),z.value&&P(z.value,L.FaceDetection)&&(t=!0,e.push({name:`face_detection`,icon:Qt,isInterface:!0,tooltip:T(`views.plugin.face_detection_tab_tooltip`)})),z.value&&P(z.value,L.LicensePlateDetection)&&(t=!0,e.push({name:`license_plate_detection`,icon:dn,isInterface:!0,tooltip:T(`views.plugin.license_plate_detection_tab_tooltip`)})),z.value&&P(z.value,L.ClassifierDetection)&&(t=!0,e.push({name:`classifier_detection`,icon:an,isInterface:!0,tooltip:T(`views.plugin.classifier_detection_tab_tooltip`)})),z.value&&P(z.value,L.ClipDetection)&&(t=!0,e.push({name:`clip_detection`,icon:cn,isInterface:!0,tooltip:T(`views.plugin.clip_detection_tab_tooltip`)})),z.value&&P(z.value,L.Notifier)&&(t=!0,e.push({name:`notification`,icon:he,isInterface:!0,tooltip:T(`views.plugin.notification_tab_tooltip`)})),e.push({name:`cameras`,icon:me,isInterface:!1,tooltip:T(`views.plugin.cameras_tab_tooltip`)}),q.value?.cameras.length&&($.value=q.value.cameras.filter(e=>e.plugins?.some(e=>e.name===I.value)).map(e=>e.name)),Q.value=[...e],U.value?.disabled||(n?Z.value=`settings`:t?Z.value=Q.value.filter(e=>e.isInterface)[0].name:Z.value=`settings`)},{deep:!0,immediate:!0}),p(ie,e=>{e&&U.value&&!U.value.disabled&&console.error(`Error connecting to plugin:`,e)}),(e,t)=>{let n=Le,r=ne,l=Se,p=F,m=V,_=Re,y=G,b=ce,x=d(`RouterLink`),T=De,O=Ut,k=lt,P=se,te=_e,L=ae,R=le,re=K,z=oe;return N(),i(`div`,{key:j(I)},[D(l,{position:`left`},{default:g(()=>[D(r,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:t[0]||=t=>e.$router.push(`/plugins`)},{icon:g(()=>[D(n,{class:`w-6 h-6`})]),_:1})]),_:1}),D(l,{position:`center`},{default:g(()=>[v(`span`,fn,w(e.$t(`views.plugin.title`)),1)]),_:1}),v(`div`,{class:C([`grid grid-auto grid-cols-1 lg:grid-cols-3 gap-6 lg:h-full`,{"!gap-2":j(ee)}])},[v(`div`,pn,[j(U)?(N(),S(_,{key:1,plugin:j(U),class:`h-[220px]`},null,8,[`plugin`])):(N(),S(m,{key:0,class:`cui-card items-center justify-center !h-[220px]`},{content:g(()=>[v(`div`,mn,[D(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])]),_:1}))]),v(`div`,hn,[v(`span`,gn,w(e.$t(`views.plugin.settings`)),1),D(m,{class:C([`cui-card !h-auto lg:!h-full`,{"items-center justify-center":j(ue)||j(Ce)}])},{content:g(()=>[j(ue)||j(Ce)?(N(),i(`div`,_n,[D(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(N(),i(`div`,vn,[v(`h3`,yn,w(e.$t(`views.plugin.settings`)),1),j(U)?.disabled?(N(),i(`div`,bn,[v(`span`,null,w(e.$t(`views.plugin.disabled_info`)),1)])):(N(),S(re,{key:1,value:j(Z),"onUpdate:value":t[1]||=e=>u(Z)?Z.value=e:null,scrollable:``},{default:g(()=>[D(b,{class:`justify-between`,pt:{activeBar:{class:`!w-auto`},content:{class:`border-[1px] border-color cui-rounded-corner overflow-hidden`}}},{default:g(()=>[(N(!0),i(s,null,o(j(Q),(e,t)=>(N(),S(y,{key:t,disabled:e.isInterface&&j(U)?.disabled,value:e.name,"as-child":``},{default:g(t=>[c((N(),i(`div`,E({ref_for:!0},t.a11yAttrs,{class:[`flex flex-col items-center justify-center flex-1 content-background !py-3 h-[55px]`,[{"hover:!text-color active:!text-color focus:!text-color":!t.active},t.class]],onClick:t.onClick}),[(N(),S(a(e.icon),{class:`w-5 h-5`}))],16,xn)),[[z,{value:e.tooltip}]])]),_:2},1032,[`disabled`,`value`]))),128))]),_:1}),D(R,{class:`px-0 pb-0`},{default:g(()=>[(N(!0),i(s,null,o(j(Q),(t,n)=>(N(),S(L,{key:n,value:t.name,"as-child":``},{default:g(n=>[n.active?(N(),i(`div`,E({key:0,class:n.class},{ref_for:!0},n.a11yAttrs),[t.name===`settings`?(N(),i(`div`,Sn,[j(ze)?(N(),i(`div`,Cn,[v(`span`,null,w(e.$t(`views.plugin.nvr_settings_hint`)),1),D(x,{to:`/settings/recordings`,class:`text-primary-500 hover:underline`},{default:g(()=>[A(w(e.$t(`views.plugin.nvr_settings_link`)),1)]),_:1})])):j(Y)?.schema?.length?(N(),S(T,{key:1,"schema-form":{schema:j(Y).schema,config:j(Y).config},loading:j(J).isLoading.value,"save-button-color":`success`,onOnAction:He,onOnSubmit:Ue,onOnFormSubmit:We},null,8,[`schema-form`,`loading`])):(N(),i(`div`,wn,[v(`span`,null,w(e.$t(`views.plugin.no_settings`)),1)]))])):t.name===`motion_detection`?(N(),S(O,{key:1,"plugin-name":j(I),type:`motionDetection`},null,8,[`plugin-name`])):t.name===`object_detection`?(N(),S(O,{key:2,"plugin-name":j(I),type:`objectDetection`},null,8,[`plugin-name`])):t.name===`audio_detection`?(N(),S(O,{key:3,"plugin-name":j(I),type:`audioDetection`},null,8,[`plugin-name`])):t.name===`face_detection`?(N(),S(O,{key:4,"plugin-name":j(I),type:`faceDetection`},null,8,[`plugin-name`])):t.name===`license_plate_detection`?(N(),S(O,{key:5,"plugin-name":j(I),type:`licensePlateDetection`},null,8,[`plugin-name`])):t.name===`classifier_detection`?(N(),S(O,{key:6,"plugin-name":j(I),type:`classifierDetection`},null,8,[`plugin-name`])):t.name===`clip_detection`?(N(),S(O,{key:7,"plugin-name":j(I),type:`clipDetection`},null,8,[`plugin-name`])):t.name===`notification`?(N(),S(k,{key:8,"plugin-name":j(I)},null,8,[`plugin-name`])):t.name===`cameras`?(N(),i(`div`,Tn,[j(q)?.cameras?.length?(N(!0),i(s,{key:1},o(j(q).cameras,e=>(N(),i(`div`,{key:e.name,class:`cui-list-item`},[D(te,{disabled:j(Te)||j(Ie)||j(J).isLoading.value,active:j($).includes(e.name),class:`h-14`,onClick:t=>j(h).open({cameraName:e.name})},M({default:g(()=>[v(`span`,null,w(e.name),1)]),_:2},[!j(U)||!Ve(e,j(U).pluginName)?{name:`append`,fn:g(()=>[D(P,{"model-value":j($).includes(e.name),disabled:j(Te)||j(Ie)||j(J).isLoading.value,"onUpdate:modelValue":()=>Ge(e)},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`])]),key:`0`}:void 0]),1032,[`disabled`,`active`,`onClick`])]))),128)):(N(),i(`div`,En,[v(`span`,null,w(e.$t(`views.plugin.no_cameras`)),1)]))])):f(``,!0)],16)):f(``,!0)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`value`]))]))]),_:1},8,[`class`])]),v(`div`,Dn,[v(`span`,On,w(e.$t(`views.plugin.readme`)),1),D(m,{class:`cui-card !h-auto lg:!h-full`},{content:g(()=>[v(`h3`,kn,w(e.$t(`views.plugin.readme`)),1),j(fe)?(N(),i(`div`,An,[D(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(N(),i(`div`,{key:1,class:`markdown-body`,innerHTML:j(Be).render(j(de)||e.$t(`views.plugin.no_readme`))},null,8,jn))]),_:1})]),v(`div`,Mn,[v(`span`,Nn,w(e.$t(`views.plugin.changelog`)),1),D(m,{class:`cui-card !h-auto lg:!h-full`},{content:g(()=>[v(`h3`,Pn,w(e.$t(`views.plugin.changelog`)),1),j(ve)?(N(),i(`div`,Fn,[D(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(N(),i(`div`,{key:1,class:`markdown-body`,innerHTML:j(Be).render(j(pe)||e.$t(`views.plugin.no_changelog`))},null,8,In))]),_:1})])],2)])}}}),[[`__scopeId`,`data-v-b00bfba9`]]);export{Ln as default};
@@ -1 +0,0 @@
1
- import{$n as e,$t as t,An as n,En as r,Gt as i,Hn as a,In as o,Jn as s,Qt as c,Rn as l,Sn as u,Tn as d,Vn as f,Xt as p,Yn as m,Yt as h,Zn as g,Zt as _,cr as ee,dr as v,in as y,nr as b,on as x,qt as S,rn as te,sr as C,ur as ne,wn as w}from"./vendor-TwHhULaP.js";import{A as T,Gi as E,H as re,J as ie,Ki as ae,N as D,Nn as oe,P as O,U as k,Vn as se,X as A,Y as ce,di as le,et as ue,mi as j,q as de,vn as fe,wn as pe,yn as M}from"./vendor-cameraui-CUPAufpt.js";import{S as me}from"./CuiCameraCard-BQpPhbFu.js";import{t as N}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as P,r as F,t as he}from"./useSharedComposables-THEdrAoU.js";import{C as ge,J as _e,i as I,u as L}from"./vendor-primevue-Bs3kBqxF.js";import{n as R,r as z,t as B}from"./view-grid-C9udm-L-.js";import{t as V}from"./eventIcons-DkjNd8He.js";import{t as H}from"./CuiCameraSnapshot-BSHFq9Wu.js";import{n as ve}from"./types-CEoAgYqA.js";import{t as ye}from"./cameras-DHOi-zot.js";import{t as be}from"./useCuiDialog-DOcwIZA3.js";import{n as xe,t as Se}from"./CuiTopbarSlot-DBQggZ_k.js";import{t as Ce}from"./ring-resize-pZQKpkuo.js";import{n as U,t as we}from"./CuiRecordingsGrid-DEMp6jb1.js";import{n as Te,t as Ee}from"./round-alt-arrow-left-bold-hyS2UsXA.js";var W={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function G(e,n){return w(),t(`svg`,W,[...n[0]||=[p(`path`,{fill:`currentColor`,d:`M3 11h8V3H3m2 2h4v4H5m8 12h8v-8h-8m2 2h4v4h-4M3 21h8v-8H3m2 2h4v4H5m8-16v8h8V3m-2 6h-4V5h4Z`},null,-1)]])}var De=m({name:`mdi-view-grid-outline`,render:G}),K={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function q(e,n){return w(),t(`svg`,K,[...n[0]||=[p(`path`,{fill:`currentColor`,d:`M22 18.605a.75.75 0 0 1-.75.75h-5.1a2.93 2.93 0 0 1-5.66 0H2.75a.75.75 0 1 1 0-1.5h7.74a2.93 2.93 0 0 1 5.66 0h5.1a.75.75 0 0 1 .75.75m0-13.21a.75.75 0 0 1-.75.75H18.8a2.93 2.93 0 0 1-5.66 0H2.75a.75.75 0 1 1 0-1.5h10.39a2.93 2.93 0 0 1 5.66 0h2.45a.74.74 0 0 1 .75.75m0 6.6a.74.74 0 0 1-.75.75H9.55a2.93 2.93 0 0 1-5.66 0H2.75a.75.75 0 1 1 0-1.5h1.14a2.93 2.93 0 0 1 5.66 0h11.7a.75.75 0 0 1 .75.75`},null,-1)]])}var Oe=m({name:`mage-filter-fill`,render:q}),J={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Y(e,n){return w(),t(`svg`,J,[...n[0]||=[p(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-miterlimit":`10`,"stroke-width":`1.5`,d:`M21.25 12H8.895m-4.361 0H2.75m18.5 6.607h-5.748m-4.361 0H2.75m18.5-13.214h-3.105m-4.361 0H2.75m13.214 2.18a2.18 2.18 0 1 0 0-4.36a2.18 2.18 0 0 0 0 4.36Zm-9.25 6.607a2.18 2.18 0 1 0 0-4.36a2.18 2.18 0 0 0 0 4.36Zm6.607 6.608a2.18 2.18 0 1 0 0-4.361a2.18 2.18 0 0 0 0 4.36Z`},null,-1)]])}var ke=m({name:`mage-filter`,render:Y}),Ae={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function je(e,n){return w(),t(`svg`,Ae,[...n[0]||=[p(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`m6 9l6 6l6-6`},null,-1)]])}var Me=m({name:`tabler-chevron-down`,render:je}),Ne={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Pe(e,n){return w(),t(`svg`,Ne,[...n[0]||=[p(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`m6 15l6-6l6 6`},null,-1)]])}var Fe=m({name:`tabler-chevron-up`,render:Pe}),X={class:`flex flex-col gap-2`},Z={class:`sidebar-section-title`},Q={class:`p-input-icon-left w-full`},$={class:`flex flex-col gap-2`},Ie={class:`sidebar-section-title flex items-center gap-1.5`},Le={key:0,class:`flex flex-col gap-1.5 mt-1`},Re={class:`text-xs text-muted`},ze={class:`flex items-center gap-3`},Be={class:`text-xs font-mono w-8 text-right shrink-0`},Ve={class:`flex flex-col gap-2`},He={class:`sidebar-section-title`},Ue={class:`flex flex-col gap-2`},We={class:`sidebar-section-title`},Ge={class:`relative rounded-md overflow-hidden`},Ke={class:`flex flex-col gap-2`},qe={class:`sidebar-section-title`},Je={class:`flex items-center gap-3`},Ye={class:`text-xs font-mono w-8 text-right shrink-0`},Xe={class:`flex flex-col gap-2`},Ze={class:`sidebar-section-title`},Qe={class:`flex flex-wrap gap-1`},$e={class:`flex flex-col gap-2`},et={key:0,class:`flex flex-col gap-2`},tt={class:`flex items-center gap-2 cursor-pointer text-sm`},nt={key:0,class:`flex flex-col gap-2 ml-6`},rt={class:`filter-logic-divider`},it={class:`flex flex-col gap-2`},at={key:0,class:`flex flex-col gap-2`},ot={class:`filter-logic-divider`},st={class:`flex flex-col gap-2`},ct={key:0,class:`flex flex-col gap-2`},lt={class:`flex items-center gap-2 cursor-pointer text-sm`},ut=288,dt=N(x({__name:`RecordingsFilterSidebar`,props:{filters:{},cameras:{},isOpen:{type:Boolean},isOverlay:{type:Boolean},semanticSearchAvailable:{type:Boolean},semanticSearchLoading:{type:Boolean}},emits:[`update:filters`,`semantic-search`,`close`],setup(a,{expose:u,emit:d}){let f={doorbell:`views.recordings.audio_doorbell`,glass_break:`views.recordings.audio_glass_break`,siren:`views.recordings.audio_siren`,speaking:`views.recordings.audio_speaking`,gunshot:`views.recordings.audio_gunshot`,dog_bark:`views.recordings.audio_dog_bark`,baby_cry:`views.recordings.audio_baby_cry`,alarm:`views.recordings.audio_alarm`,scream:`views.recordings.audio_scream`,cat:`views.recordings.audio_cat`,car_alarm:`views.recordings.audio_car_alarm`,smoke_alarm:`views.recordings.audio_smoke_alarm`},m={face:`views.recordings.attr_face`,license_plate:`views.recordings.attr_license_plate`},ee={motion:`views.recordings.sensor_motion`,audio:`views.recordings.sensor_audio`,contact:`views.recordings.sensor_contact`,doorbell:`views.recordings.sensor_doorbell`,switch:`views.recordings.sensor_switch`,light:`views.recordings.sensor_light`,siren:`views.recordings.sensor_siren`,security_system:`views.recordings.sensor_security_system`,"line-crossing":`views.recordings.sensor_line_crossing`},b=new Set([`motion`,`audio`]),x=a,S=d,{t:T}=le(),{xlBreakpoint:E}=he(),{topbarHeight:re,bottombarHeight:ie}=P(),{icons:D,generic:O}=V(),k=D,N=Fe,F=Me,_e=o(`sidebarRef`),R=e(x.filters.semanticQuery??``),z=g({eventTypes:!0,attributes:!0,sensorEvents:!0}),B=h(()=>x.isOpen?ut:0),ye=h(()=>x.cameras.map(e=>({id:e.id,name:e.name}))),be=h(()=>{if(x.filters.cameraIds.length===1)return x.cameras.find(e=>e.id===x.filters.cameraIds[0])?.name}),xe=h(()=>[{label:T(`views.recordings.filter_and`),value:`and`},{label:T(`views.recordings.filter_or`),value:`or`}]),Se=h(()=>[{label:T(`views.recordings.time_1h`),value:`1h`},{label:T(`views.recordings.time_1d`),value:`1d`},{label:T(`views.recordings.time_1w`),value:`1w`},{label:T(`views.recordings.time_1m`),value:`1m`}]),Ce=h(()=>M.filter(e=>!b.has(e)).map(e=>({label:T(`views.recordings.type_${e}`),value:e,icon:D[e]??O}))),U=h(()=>({label:T(`views.recordings.type_other`),value:de,icon:D.other??O})),we=h(()=>oe.map(e=>({label:T(ee[e]??`views.recordings.sensor_${e}`),value:e,icon:k[e]??O}))),Te=h(()=>pe.map(e=>({label:T(f[e]??e),value:e,icon:D[e]??O}))),Ee=h(()=>fe.map(e=>({label:T(m[e]??`views.recordings.attr_${e}`),value:e,icon:D[e]??O})));function W(e,t){S(`update:filters`,{...x.filters,[e]:t})}let G=ae(e=>{W(`search`,e)},300);function De(){let e=R.value.trim();W(`semanticQuery`,e),S(`semantic-search`,e)}function K(e){let t=[...x.filters.eventTypes],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),W(`eventTypes`,t)}function q(e){let t=[...x.filters.audioLabels],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),W(`audioLabels`,t)}function Oe(e){let t=[...x.filters.sensorEvents],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),W(`sensorEvents`,t)}function J(e){let t=[...x.filters.hasAttributes],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),W(`hasAttributes`,t)}function Y(e){z[e]=!z[e]}return l(R,e=>{!e?.trim()&&x.filters.semanticQuery&&W(`semanticQuery`,``)}),j(_e,e=>{let t=e.target;t.closest(`#recordings-sidebar-toggle`)||t.closest(`[data-pc-section="overlay"], [data-pc-section="panel"], .p-connected-overlay`)||x.isOpen&&(x.isOverlay||!E.value)&&S(`close`)}),u({sidebarWidth:B}),(e,o)=>{let l=ue,u=ve,d=I,f=se,m=ce,h=L,g=H,ee=me,b=ge,x=A;return w(),t(`nav`,{ref_key:`sidebarRef`,ref:_e,class:`recordings-sidebar fixed transition-all duration-200 overflow-x-hidden overflow-y-auto md:!pl-0 pl-safe pb-safe flex flex-col z-4`,style:ne({width:`${C(B)}px`,borderRightWidth:a.isOpen?`1px`:`0px`,paddingBottom:`calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + ${C(ie)}px + ${C(re)}px)`})},[p(`div`,{class:`flex flex-col gap-4 p-4`,style:ne({width:`${ut}px`})},[p(`div`,X,[p(`label`,Z,v(e.$t(`views.recordings.search`)),1),p(`span`,Q,[y(l,{"model-value":a.filters.search,placeholder:e.$t(`views.recordings.search_placeholder`),class:`w-full text-sm`,"onUpdate:modelValue":o[0]||=e=>C(G)(e)},null,8,[`model-value`,`placeholder`])])]),o[18]||=p(`div`,{class:`sidebar-divider`},null,-1),p(`div`,$,[p(`label`,Ie,[y(u,{class:`w-3.5 h-3.5`}),te(` `+v(e.$t(`views.recordings.semantic_search`)),1)]),y(d,{modelValue:C(R),"onUpdate:modelValue":o[1]||=e=>s(R)?R.value=e:null,placeholder:e.$t(`views.recordings.semantic_search_placeholder`),class:`w-full text-sm semantic-textarea`,rows:`3`,disabled:!a.semanticSearchAvailable},null,8,[`modelValue`,`placeholder`,`disabled`]),y(f,{label:e.$t(`views.recordings.semantic_search_button`),severity:`secondary`,outlined:``,size:`small`,class:`w-full text-xs`,loading:a.semanticSearchLoading,disabled:!a.semanticSearchAvailable||!C(R)?.trim(),onClick:De},null,8,[`label`,`loading`,`disabled`]),a.filters.semanticQuery?(w(),t(`div`,Le,[p(`label`,Re,v(e.$t(`views.recordings.min_match_score`)),1),p(`div`,ze,[y(m,{"model-value":a.filters.minSemanticScore,min:0,max:1,step:.05,class:`flex-1`,"onUpdate:modelValue":o[2]||=e=>W(`minSemanticScore`,e)},null,8,[`model-value`]),p(`span`,Be,v(Math.round(a.filters.minSemanticScore*100))+`%`,1)])])):c(``,!0)]),o[19]||=p(`div`,{class:`sidebar-divider`},null,-1),p(`div`,Ve,[p(`label`,He,v(e.$t(`views.recordings.cameras`)),1),y(h,{"model-value":a.filters.cameraIds,options:C(ye),"option-label":`name`,"option-value":`id`,placeholder:e.$t(`views.recordings.all_cameras`),class:`w-full text-sm`,"max-selected-labels":2,"show-toggle-all":!1,pt:{overlay:{style:`position: fixed`}},"onUpdate:modelValue":o[3]||=e=>W(`cameraIds`,e)},null,8,[`model-value`,`options`,`placeholder`])]),C(be)?(w(),t(i,{key:0},[o[13]||=p(`div`,{class:`sidebar-divider`},null,-1),p(`div`,Ue,[p(`label`,We,v(e.$t(`views.recordings.grid_search`)),1),p(`div`,Ge,[y(g,{camera:C(be),"object-fit":`cover`},null,8,[`camera`]),y(ee,{"model-value":a.filters.gridRegions,"onUpdate:modelValue":o[4]||=e=>W(`gridRegions`,e)},null,8,[`model-value`])]),y(f,{label:e.$t(`views.recordings.grid_clear`),severity:`secondary`,outlined:``,size:`small`,class:`w-full text-xs`,disabled:a.filters.gridRegions.length===0,onClick:o[5]||=e=>W(`gridRegions`,[])},null,8,[`label`,`disabled`])])],64)):c(``,!0),o[20]||=p(`div`,{class:`sidebar-divider`},null,-1),p(`div`,Ke,[p(`label`,qe,v(e.$t(`views.recordings.confidence`)),1),p(`div`,Je,[y(m,{"model-value":a.filters.minConfidence,min:0,max:1,step:.05,class:`flex-1`,"onUpdate:modelValue":o[6]||=e=>W(`minConfidence`,e)},null,8,[`model-value`]),p(`span`,Ye,v(Math.round(a.filters.minConfidence*100))+`%`,1)])]),o[21]||=p(`div`,{class:`sidebar-divider`},null,-1),p(`div`,Xe,[p(`label`,Ze,v(e.$t(`views.recordings.time_range`)),1),p(`div`,Qe,[(w(!0),t(i,null,r(C(Se),e=>(w(),_(f,{key:e.value,label:e.label,severity:a.filters.timeRange===e.value?void 0:`secondary`,outlined:a.filters.timeRange!==e.value,size:`small`,class:`text-xs flex-1 min-w-0`,onClick:t=>W(`timeRange`,a.filters.timeRange===e.value?null:e.value)},null,8,[`label`,`severity`,`outlined`,`onClick`]))),128))])]),o[22]||=p(`div`,{class:`sidebar-divider`},null,-1),p(`div`,$e,[p(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:o[7]||=e=>Y(`sensorEvents`)},[p(`span`,null,v(e.$t(`views.recordings.sensor_events`)),1),(w(),_(n(C(z).sensorEvents?C(N):C(F)),{class:`w-4 h-4 text-muted`}))]),C(z).sensorEvents?(w(),t(`div`,et,[(w(!0),t(i,null,r(C(we),e=>(w(),t(i,{key:e.value},[p(`label`,tt,[y(b,{"model-value":a.filters.sensorEvents.includes(e.value),binary:!0,"onUpdate:modelValue":t=>Oe(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(w(),_(n(e.icon),{class:`w-4 h-4 text-muted`})),p(`span`,null,v(e.label),1)]),e.value===`audio`&&a.filters.sensorEvents.includes(`audio`)?(w(),t(`div`,nt,[(w(!0),t(i,null,r(C(Te),e=>(w(),t(`label`,{key:e.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[y(b,{"model-value":a.filters.audioLabels.includes(e.value),binary:!0,"onUpdate:modelValue":t=>q(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(w(),_(n(e.icon),{class:`w-4 h-4 text-muted`})),p(`span`,null,v(e.label),1)]))),128))])):c(``,!0)],64))),128))])):c(``,!0)]),p(`div`,rt,[o[14]||=p(`div`,{class:`filter-logic-line`},null,-1),y(x,{"model-value":a.filters.filterLogicTriggers,options:C(xe),"option-label":`label`,"option-value":`value`,"allow-empty":!1,class:`filter-logic-toggle`,"onUpdate:modelValue":o[8]||=e=>W(`filterLogicTriggers`,e)},null,8,[`model-value`,`options`]),o[15]||=p(`div`,{class:`filter-logic-line`},null,-1)]),p(`div`,it,[p(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:o[9]||=e=>Y(`eventTypes`)},[p(`span`,null,v(e.$t(`views.recordings.event_type`)),1),(w(),_(n(C(z).eventTypes?C(N):C(F)),{class:`w-4 h-4 text-muted`}))]),C(z).eventTypes?(w(),t(`div`,at,[(w(!0),t(i,null,r(C(Ce),e=>(w(),t(`label`,{key:e.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[y(b,{"model-value":a.filters.eventTypes.includes(e.value),binary:!0,"onUpdate:modelValue":t=>K(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(w(),_(n(e.icon),{class:`w-4 h-4 text-muted`})),p(`span`,null,v(e.label),1)]))),128))])):c(``,!0)]),p(`div`,ot,[o[16]||=p(`div`,{class:`filter-logic-line`},null,-1),y(x,{"model-value":a.filters.filterLogicAttributes,options:C(xe),"option-label":`label`,"option-value":`value`,"allow-empty":!1,class:`filter-logic-toggle`,"onUpdate:modelValue":o[10]||=e=>W(`filterLogicAttributes`,e)},null,8,[`model-value`,`options`]),o[17]||=p(`div`,{class:`filter-logic-line`},null,-1)]),p(`div`,st,[p(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:o[11]||=e=>Y(`attributes`)},[p(`span`,null,v(e.$t(`views.recordings.attributes`)),1),(w(),_(n(C(z).attributes?C(N):C(F)),{class:`w-4 h-4 text-muted`}))]),C(z).attributes?(w(),t(`div`,ct,[(w(!0),t(i,null,r(C(Ee),e=>(w(),t(`label`,{key:e.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[y(b,{"model-value":a.filters.hasAttributes.includes(e.value),binary:!0,"onUpdate:modelValue":t=>J(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(w(),_(n(e.icon),{class:`w-4 h-4 text-muted`})),p(`span`,null,v(e.label),1)]))),128)),p(`label`,lt,[y(b,{"model-value":a.filters.eventTypes.includes(C(U).value),binary:!0,"onUpdate:modelValue":o[12]||=e=>K(C(U).value)},null,8,[`model-value`]),(w(),_(n(C(U).icon),{class:`w-4 h-4 text-muted`})),p(`span`,null,v(C(U).label),1)])])):c(``,!0)])],4)],4)}}}),[[`__scopeId`,`data-v-de3974e2`]]),ft={class:`font-semibold text-xl truncate`},pt={class:`w-full h-full relative`},mt={key:0,class:`w-full flex flex-row h-[calc(40px+1rem)] py-2 items-center fixed z-10`},ht={class:`relative z-2 page-title !m-0`},gt={key:0,class:`flex items-center gap-2 mb-2 text-xs text-muted ml-auto`},_t={key:0,class:`inline-flex items-center gap-1`},vt={key:2,class:`flex justify-center py-4`},yt={key:3,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4`},bt={class:`text-muted text-sm`},xt=288,St=10,Ct=11,wt=x({__name:`Recordings`,setup(n){let r=new ye,i=be(),{smBreakpoint:s,xlBreakpoint:m,mdBreakpoint:g}=he(),{isTouch:x}=F(),{registerScrollToTop:ae}=xe();if(!x.value&&typeof VideoDecoder<`u`){let e=D({cacheSize:20});d(re,e),E(()=>e.dispose())}let{results:oe,isSearching:A,isAvailable:ce,hasSearched:le,search:ue,clear:j}=T(),{data:de}=r.getCamerasQuery({page:1,pageSize:-1}),fe={"1h":3600*1e3,"1d":1440*60*1e3,"1w":10080*60*1e3,"1m":720*60*60*1e3},pe=o(`gridRef`),M=e(`closed`),me=e(!1),N=e({search:``,semanticQuery:``,filterLogicTriggers:`or`,filterLogicAttributes:`or`,cameraIds:[],timeRange:null,customDateRange:null,eventTypes:[],audioLabels:[],hasAttributes:[],sensorEvents:[],gridRegions:[],minConfidence:.5,minSemanticScore:.5}),P=b({state:`ended`,hasDetections:!0}),ge=JSON.stringify(P.value),I=e(!1),L=b([]),V=h(()=>m.value?!0:M.value===`opened`),H=h(()=>g.value),W=h(()=>g.value?`0px`:V.value?`${xt}px`:`0px`),G=h(()=>(de.value?.result??[]).map(e=>({id:e._id,name:e.name}))),K=h(()=>{let e=new Map;for(let t of G.value)e.set(t.id,t.name);return e}),q=h(()=>{let e=new Map;for(let t of de.value?.result??[])e.set(t._id,t);return e}),J=h(()=>N.value.cameraIds),Y=h(()=>G.value.map(e=>e.id));ae(()=>pe.value?.scrollToTop());let{events:Ae,isLoading:je,hasMore:Me,loadMore:Ne,loadThumbnails:Pe,getCachedThumbnails:Fe}=ie({availableCameraIds:Y,cameraIds:J,realtime:!0,pageSize:40,filter:P}),X=h(()=>{let e=new Map;for(let t of oe.value??[]){let n=e.get(t.eventId);(!n||t.score>n)&&e.set(t.eventId,t.score)}return e}),Z=h(()=>le.value),Q=h(()=>{let e=Ae.value.filter(e=>e.state===`ended`),t=N.value;if(t.timeRange&&fe[t.timeRange]){let n=Date.now()-fe[t.timeRange];e=e.filter(e=>e.startTime>=n)}if(t.gridRegions.length>0&&(e=e.filter(e=>e.segments.some(e=>e.detections.some(e=>e.box&&Re(e.box,t.gridRegions))))),Z.value){let n=.15,r=t.minSemanticScore*(.38-n)+n;e=e.filter(e=>{let t=X.value.get(e.id);return t!=null&&t>=r}),e.sort((e,t)=>(X.value.get(t.id)??0)-(X.value.get(e.id)??0))}return e}),$=h(()=>I.value&&L.value.length?L.value:Q.value.map(e=>({event:e,key:e.id})));function Ie(){M.value=M.value===`opened`?`closed`:`opened`}function Le(){M.value=`closed`}function Re(e,t){if(t.length===0)return!0;let n=1/St,r=1/Ct,i=e.x/n,a=(e.x+e.width)/n,o=e.y/r,s=(e.y+e.height)/r;for(let e of t)if(a>e.col&&i<e.col+e.w&&s>e.row&&o<e.row+e.h)return!0;return!1}function ze(e,t){let n=[];if(e.attributes)for(let[r,i]of Object.entries(e.attributes)){let e=k(i);if(!e)continue;let a=r.indexOf(`:`);n.push({key:`${t.id}:attr:${r}`,url:e,type:a>=0?r.substring(0,a):r,label:a>=0?r.substring(a+1):void 0})}if(e.detections)for(let[r,i]of Object.entries(e.detections)){let e=k(i);if(!e)continue;let a=r.includes(`:`)?r.split(`:`).slice(1).join(`:`):r;n.push({key:`${t.id}:det:${r}`,url:e,type:a})}if(e.scenes)for(let[r,i]of Object.entries(e.scenes)){let e=k(i);e&&n.push({key:`${t.id}:scene:${r}`,url:e,type:`scene`})}let r=new Set;return n.filter(e=>r.has(e.url)?!1:(r.add(e.url),!0))}function Be(e){let t=[];for(let n of e){let e=Fe(n.id);if(!e){t.push({event:n,key:n.id});continue}let r=ze(e,n),i=O(e,n);if(i.url){let e=r.findIndex(e=>e.url===i.url);e>0&&r.unshift(...r.splice(e,1))}r.length<=1?t.push({event:n,key:n.id}):r.forEach((e,r)=>{t.push({event:n,key:r===0?n.id:e.key,thumbnailOverride:{url:e.url,type:e.type,label:e.label}})})}return t}function Ve(e){!e.semanticQuery?.trim()&&N.value.semanticQuery?.trim()&&j(),N.value=e}function He(e){if(!e.trim()){j();return}ue(e)}function Ue(e){let t=q.value.get(e.cameraId);t&&i.openComponentDialog(R,{data:{title:t.name,stayActive:!0,hideCancelButton:!0,hideConfirmButton:!0,contentProps:{camera:t,eventTimestamp:e.startTime},headerActions:e.segments?.some(e=>e?.description)?[{icon:ve,toggle:!0,onClick:()=>{}}]:void 0,draggable:!0,blockDragOnSelectors:[`.p-dialog-body`],dismissableMask:!1,modal:!1,dialogContentClass:`!px-0 h-full`,goTo:`/cameras/${t.name}?startTs=${e.startTime}`},dialogSize:{desktop:{maxWidth:`800px`,maxHeight:`calc(100vh - max(1rem, env(safe-area-inset-top, 0px)) - max(1rem, env(safe-area-inset-bottom, 0px)))`,width:`50vw`}}})}return l(m,e=>{e&&(M.value=`closed`)}),l(N,e=>{let t=e.eventTypes.length>0||e.sensorEvents.length>0||e.audioLabels.length>0||e.hasAttributes.length>0,n={types:e.eventTypes.length>0?e.eventTypes:void 0,triggers:e.sensorEvents.length>0?e.sensorEvents:void 0,triggerLabels:e.audioLabels.length>0?e.audioLabels:void 0,attributes:e.hasAttributes.length>0?e.hasAttributes:void 0,filterLogicTriggers:t?e.filterLogicTriggers:void 0,filterLogicAttributes:t?e.filterLogicAttributes:void 0,search:e.search||void 0,minConfidence:e.minConfidence>0?e.minConfidence:void 0,state:`ended`,hasDetections:!t},r=JSON.stringify(n);r!==ge&&(ge=r,P.value=n)},{deep:!0,immediate:!0}),l(I,e=>{e?L.value=Be(Q.value):L.value=[]}),l(Q,e=>{if(!I.value)return;let t=new Set(e.map(e=>e.id)),n=new Set(L.value.map(e=>e.event.id)),r=L.value.filter(e=>t.has(e.event.id)),i=e.filter(e=>!n.has(e.id));i.length&&(r=[...Be(i),...r]),L.value=r}),l(()=>N.value.cameraIds,e=>{e.length!==1&&N.value.gridRegions.length>0&&(N.value={...N.value,gridRegions:[]})}),u(()=>{requestAnimationFrame(()=>{me.value=!0})}),(e,n)=>{let r=Se,i=ke,o=Oe,l=se,u=Ee,d=Te,h=De,g=B,b=ve,x=U,T=we,E=Ce,re=z,ie=_e;return w(),t(`div`,null,[y(r,{position:`center`},{default:f(()=>[p(`span`,ft,v(e.$t(`views.recordings.title`)),1)]),_:1}),y(r,{position:`left`},{default:f(()=>[y(l,{id:`recordings-sidebar-toggle`,severity:`secondary`,class:`cui-button p-2 text-color`,text:``,rounded:``,onClick:Ie},{icon:f(()=>[C(M)===`closed`?(w(),_(i,{key:0,width:`100%`,height:`100%`})):(w(),_(o,{key:1,width:`100%`,height:`100%`}))]),_:1})]),_:1}),y(dt,{filters:C(N),cameras:C(G),"is-open":C(V),"is-overlay":C(H),"semantic-search-available":C(ce),"semantic-search-loading":C(A),"onUpdate:filters":Ve,onSemanticSearch:He,onClose:Le},null,8,[`filters`,`cameras`,`is-open`,`is-overlay`,`semantic-search-available`,`semantic-search-loading`]),(w(),_(S,{to:`#container`,defer:``},[C(V)&&C(H)?(w(),t(`div`,{key:0,class:`fixed top-0 left-0 right-0 bottom-0 w-full h-full bg-black/50 z-1`,onClick:Le})):c(``,!0)])),p(`main`,{class:`relative w-full h-full`,style:ne({paddingLeft:C(W),transition:C(me)?`padding-left 200ms`:void 0})},[p(`div`,pt,[C(s)?c(``,!0):(w(),t(`div`,mt,[n[1]||=p(`div`,{class:`ml-2`},null,-1),C(m)?c(``,!0):(w(),_(l,{key:0,id:`recordings-sidebar-toggle`,severity:`secondary`,class:`mr-2 cui-icon-lg relative z-2`,text:``,rounded:``,onClick:Ie},{icon:f(()=>[C(V)?(w(),_(u,{key:0,width:`100%`,height:`100%`})):(w(),_(d,{key:1,width:`100%`,height:`100%`}))]),_:1})),p(`h1`,ht,v(e.$t(`views.recordings.title`)),1),n[2]||=p(`div`,{class:`gradient-blur rotate-180 !h-[70px]`},[p(`div`),p(`div`),p(`div`),p(`div`),p(`div`),p(`div`)],-1)])),p(`div`,{class:ee([`px-2 h-full w-full flex flex-col`,{"pt-4":C(s),"pt-[calc(40px+2rem)]":!C(s)}])},[C(Q).length||C(Z)?(w(),t(`div`,gt,[a((w(),_(l,{severity:C(I)?`primary`:`secondary`,text:``,rounded:``,class:`cui-icon-sm`,onClick:n[0]||=e=>I.value=!C(I)},{icon:f(()=>[C(I)?(w(),_(g,{key:1,width:`100%`,height:`100%`})):(w(),_(h,{key:0,width:`100%`,height:`100%`}))]),_:1},8,[`severity`])),[[ie,{value:e.$t(`views.recordings.ungroup`)},void 0,{bottom:!0}]]),p(`span`,null,v(e.$t(`views.recordings.result_count`,{count:C($).length})),1),C(Z)?(w(),t(`span`,_t,[y(b,{class:`w-3 h-3`}),te(` `+v(e.$t(`views.recordings.semantic_results`,{count:C(X).size})),1)])):c(``,!0)])):c(``,!0),C($).length?(w(),_(T,{key:1,ref_key:`gridRef`,ref:pe,items:C($),"min-item-width":C(s)?160:180,gap:8,"has-more":C(Me),"load-more":C(Ne),"item-key":e=>e.key,class:`flex-1 min-h-0`},{item:f(({item:e})=>[y(x,{event:e.event,"camera-name":C(K).get(e.event.cameraId),camera:C(q).get(e.event.cameraId),"load-thumbnails":C(Pe),"semantic-score":C(X).get(e.event.id),"thumbnail-override":e.thumbnailOverride,onScrollToEvent:()=>Ue(e.event)},null,8,[`event`,`camera-name`,`camera`,`load-thumbnails`,`semantic-score`,`thumbnail-override`,`onScrollToEvent`])]),_:1},8,[`items`,`min-item-width`,`has-more`,`load-more`,`item-key`])):c(``,!0),C(je)||C(A)?(w(),t(`div`,vt,[y(E,{width:`24px`,height:`24px`,class:`text-muted`})])):c(``,!0),!C(Q).length&&!C(je)&&!C(A)?(w(),t(`div`,yt,[y(re,{class:`w-12 h-12 text-muted`}),p(`span`,bt,v(e.$t(`views.recordings.no_recordings`)),1)])):c(``,!0)],2)])],4)])}}});export{wt as default};
@@ -1 +0,0 @@
1
- import{$n as e,$t as t,An as n,En as r,Gt as i,In as a,On as o,Qt as s,Rn as c,Sn as l,Vn as u,Xt as d,Yt as f,Zt as p,ar as m,cr as h,dr as g,gn as _,in as v,on as y,sr as b,ur as x,wn as S}from"./vendor-TwHhULaP.js";import{Bn as C,Ki as w,Mi as T,Ni as E,Ri as D,Vn as O,mi as k,xi as A}from"./vendor-cameraui-CUPAufpt.js";import{f as j,l as M}from"./vendor-core-Cmu2BAxm.js";import{t as N}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as P,o as F,r as I,s as ee,t as L}from"./useSharedComposables-THEdrAoU.js";import{n as R}from"./router-DMYEhxdj.js";import{t as z}from"./hasPermission-DjEBddex.js";import{t as B}from"./CuiTopbarSlot-DBQggZ_k.js";import{t as V}from"./routerState-B_z68YwD.js";import{n as H,t as U}from"./round-alt-arrow-left-bold-hyS2UsXA.js";var W={},G={class:`w-full h-full flex items-center justify-center`};function K(e,n){let r=C;return S(),t(`div`,G,[v(r,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])}var q=N(W,[[`render`,K]]),J={key:0},Y={key:1},X={class:`overflow-hidden w-full`},Z={class:`ml-2 flex flex-row items-center justify-between`},Q={class:`text-start flex-1`},te={class:`text-sm font-bold max-w-100 truncate`},ne={key:0,class:`text-sm text-muted font-normal`},re=N(y({__name:`CuiSubNavItem`,props:{label:{},to:{},description:{},icon:{},activeIcon:{}},setup(e){let{icon:n,activeIcon:r,label:i,description:a,to:c}=m(e);return(e,l)=>{let f=O,m=o(`RouterLink`);return S(),p(m,{to:b(c)},{default:u(({isExactActive:e})=>[v(f,{text:``,severity:`secondary`,class:h([`subnavitem-button w-full h-[120px] flex items-start justify-start p-6 bg-none text-color hover:!text-primary active:!text-primary focus:!text-primary rounded-none`,{"active !text-primary":e}]),fluid:``},{default:u(()=>[b(n)&&!e||!b(r)?(S(),t(`div`,J,[v(b(n),{class:`w-[24px] h-[24px]`})])):b(r)&&e?(S(),t(`div`,Y,[v(b(r),{class:`w-[24px] h-[24px]`})])):s(``,!0),d(`div`,X,[d(`div`,Z,[d(`div`,Q,[d(`div`,te,g(b(i)),1),b(a)?(S(),t(`div`,ne,g(b(a)),1)):s(``,!0)])])])]),_:2},1032,[`class`])]),_:1},8,[`to`])}}}),[[`__scopeId`,`data-v-a5399c04`]]),$={CLOSED:0,EXPANDED:288},ie=N(y({__name:`CuiSubNavbar`,setup(n,{expose:o}){let s=M(),{bus:u}=F(),{xlBreakpoint:d,mdBreakpoint:m}=L(),{bottombarHeight:h,subbarState:g,navbarState:v,topbarHeight:y}=P(),C=a(`subnavbarRef`),T=e(`closed`),D=f(()=>d.value?`opened`:T.value),O=f(()=>D.value===`closed`?$.CLOSED:$.EXPANDED),A=f(()=>R.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&z(e)));function j(){T.value=`closed`,u.emit({subbarState:`closed`})}function N(){_(()=>{let e=C.value?.querySelector(`.subnavitem-button.active`);e&&e.scrollIntoView({block:`center`,behavior:`smooth`})})}let I=w(N,100);return k(C,e=>{let t=e.target,n=t.closest(`#menu-icon`),r=t.closest(`#submenu-icon`),i=t.closest(`#navbar-icon`);!n&&!r&&!i&&j()}),E(C,()=>{I()}),c(g,e=>{e&&e!==T.value&&(T.value=e)}),c(s.currentRoute,(e,t)=>{e.path!==t.path&&j()}),c(v,e=>{e===`opened`&&m.value&&j()}),l(()=>{N()}),o({subnavbarState:D}),(e,n)=>{let a=re;return S(),t(`nav`,{ref_key:`subnavbarRef`,ref:C,class:`cui-subnavbar fixed transition-all duration-200 overflow-x-hidden overflow-y-scroll md:!pl-0 pl-safe pb-safe w-full h-full flex flex-col`,style:x({width:`${b(O)}px`,borderRightWidth:b(D)===`opened`?`1px`:`0px`,paddingBottom:`calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + ${b(h)}px + ${b(y)}px)`})},[(S(!0),t(i,null,r(b(A),t=>(S(),p(a,{key:t.name,icon:t.meta.settingsBar.icon.default,"active-icon":t.meta.settingsBar.icon.active,to:t.path,label:e.$t(`navigation.${(t.meta?.name).toLowerCase()}`),description:e.$t(`navigation_description.${t.meta?.description}`),class:`cui-list-item !m-0 !p-0 shrink-0`,style:x({width:`${b($).EXPANDED}px`})},null,8,[`icon`,`active-icon`,`to`,`label`,`description`,`style`]))),128))],4)}}}),[[`__scopeId`,`data-v-ebf1579c`]]),ae={class:`font-semibold text-xl truncate`},oe={class:`relative flex overflow-hidden items-center justify-center w-5 h-5`},se={class:`flex flex-col justify-between w-4 h-3 transform transition-all duration-100 origin-center overflow-hidden`},ce={class:`w-full h-full relative`},le={key:0,class:`w-full flex flex-row h-[calc(40px+1rem)] py-2 items-center fixed z-2`},ue={class:`relative z-2 page-title !m-0`},de=y({__name:`Settings`,setup(r){let i=M(),l=ee(),{bus:m}=F(),{isTouch:_}=I(),{mdBreakpoint:y,xlBreakpoint:C,smBreakpoint:w}=L(),{routerLoading:E}=j(V()),k=R.find(e=>e.name===`Settings`).children.filter(e=>z(e)&&e.meta?.settingsBar),N=a(`subnavbarRef`),P=a(`containerRef`),W=e(!0),{isSwiping:G,direction:K}=_.value?D(P,{threshold:50,onSwipeStart(e){let t=e.target;([`INPUT`,`TEXTAREA`,`SELECT`,`BUTTON`].includes(t.tagName)||t.closest(`.p-datatable`))&&(W.value=!1)},onSwipeEnd(){W.value=!0}}):T(P,{threshold:50,onSwipeStart(e){let t=e.target;([`INPUT`,`TEXTAREA`,`SELECT`,`BUTTON`].includes(t.tagName)||t.closest(`.p-datatable`))&&(W.value=!1)},onSwipeEnd(){W.value=!0}}),J=A(N),Y=f(()=>N.value?.subnavbarState??`closed`);function X(){let e=Y.value===`opened`?`closed`:`opened`;m.emit({subbarState:e})}return c([G,K],()=>{if(G.value&&W.value){let e=k.findIndex(e=>e.path===i.currentRoute.value.path.split(`/settings/`)[1]);switch(K.value){case`right`:{let t=k[e-1];t&&i.push({path:t.path})}break;case`left`:{let t=k[e+1];t&&i.push({path:t.path})}break}}}),(e,r)=>{let i=B,a=O,c=ie,f=U,m=H,_=q,T=o(`RouterView`);return S(),t(`div`,null,[v(i,{position:`center`},{default:u(()=>[d(`span`,ae,g(e.$t(`views.settings.title_${e.$route.meta?.name}`)),1)]),_:1}),v(i,{position:`left`},{default:u(()=>[v(a,{id:`menu-icon`,class:`cui-button relative group p-2 transition-colors duration-100 w-[40px] h-[42px] flex items-center justify-center`,severity:`secondary`,text:``,onClick:X},{default:u(()=>[d(`div`,oe,[d(`div`,se,[d(`div`,{class:h([`h-0.5 w-2 transform transition-all duration-100 origin-center`,{"w-4 rotate-45 translate-y-[5px]":b(Y)===`opened`}]),style:{backgroundColor:`var(--text-color)`}},null,2),d(`div`,{class:h([`h-0.5 w-4 rounded transform transition-all duration-100`,{"opacity-0":b(Y)===`opened`}]),style:{backgroundColor:`var(--text-color)`}},null,2),d(`div`,{class:h([`h-0.5 w-3 transform transition-all duration-100 origin-center`,{"w-4 -rotate-45 -translate-y-[5px]":b(Y)===`opened`}]),style:{backgroundColor:`var(--text-color)`}},null,2)])])]),_:1})]),_:1}),v(c,{ref_key:`subnavbarRef`,ref:N,class:`z-4 min-w-0`},null,512),d(`main`,{class:`relative w-full h-full`,style:x({paddingLeft:b(y)?`0px`:`${b(J).width.value}px`})},[d(`div`,ce,[b(w)?s(``,!0):(S(),t(`div`,le,[r[0]||=d(`div`,{class:`ml-2`},null,-1),b(C)?s(``,!0):(S(),p(a,{key:0,id:`submenu-icon`,severity:`secondary`,class:`mr-2 cui-icon-lg relative z-2`,text:``,rounded:``,onClick:X},{icon:u(()=>[b(Y)===`opened`?(S(),p(f,{key:0,width:`100%`,height:`100%`})):(S(),p(m,{key:1,width:`100%`,height:`100%`}))]),_:1})),d(`h1`,ue,g(e.$t(`views.settings.title_${e.$route.meta?.name}`)),1),r[1]||=d(`div`,{class:`gradient-blur rotate-180 !h-[70px]`},[d(`div`),d(`div`),d(`div`),d(`div`),d(`div`),d(`div`)],-1)])),d(`div`,{ref_key:`containerRef`,ref:P,class:h([`px-2 h-full w-full`,{"py-4":b(w),"pt-[calc(40px+2rem)] pb-2":!b(w)}])},[b(E)&&b(l).showRouterLoadingSub.value?(S(),p(_,{key:0,class:`w-full h-full relative overflow-x-hidden`})):(S(),p(T,{key:1},{default:u(({Component:e})=>[(S(),p(n(e),{class:`h-full`}))]),_:1}))],2)])],4)])}}});export{de as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./SettingsAccount-C1SbeJeY.js";export{e as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./SettingsAppearance-BNnf1b_H.js";export{e as default};
@@ -1,4 +0,0 @@
1
- import{l as e}from"./api-CxmpI477.js";import{$n as t,$t as n,An as r,Cn as i,En as a,Gt as o,Hn as s,Ht as c,In as l,Qt as u,Rn as d,Sn as f,Vn as p,Wt as m,Xt as h,Yn as g,Yt as _,Zn as v,Zt as y,ar as b,cr as x,dr as S,gn as C,hn as w,in as T,nr as E,on as D,sr as O,ur as k,wn as A}from"./vendor-TwHhULaP.js";import{Di as j,Jt as M,Ki as N,Vn as P,di as ee,xi as F}from"./vendor-cameraui-CUPAufpt.js";import{f as I}from"./vendor-core-Cmu2BAxm.js";import{t as L}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as R}from"./useSharedComposables-THEdrAoU.js";import{n as z}from"./ui-CY2-_evw.js";import{J as B,o as V}from"./vendor-primevue-Bs3kBqxF.js";import{t as H}from"./CuiTopbarSlot-DBQggZ_k.js";import{a as U,i as W,n as te,r as G,t as K}from"./vendor-xterm-BRN-hOYD.js";import{t as ne}from"./back-filled-DlLybzyd.js";import{t as q}from"./settings-m51Cb6S4.js";import{n as re,t as ie}from"./zoom-in-BYdnjCqc.js";import{n as ae,t as oe}from"./CuiTopNavbarItem-C1Jf6-v6.js";import{t as se}from"./trash-2-BD8rq7CQ.js";var ce={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function J(e,t){return A(),n(`svg`,ce,[...t[0]||=[h(`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 le=g({name:`carbon-reset`,render:J}),Y={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function X(e,t){return A(),n(`svg`,Y,[...t[0]||=[h(`path`,{fill:`currentColor`,d:`M17 15V8h-2v7H8v2h7v7h2v-7h7v-2z`},null,-1)]])}var ue=g({name:`carbon-add`,render:X}),de=L(D({__name:`CuiTerminal`,props:{autoConnect:{type:Boolean,default:!0},cwd:{},shell:{},options:{default:()=>({fontSize:14})},inputTransform:{}},emits:[`connected`,`disconnected`,`error`],setup(e,{expose:t,emit:r}){let a=e,o=r,{isConnected:s,isConnecting:c,isClientConnected:u,error:p,connect:m,write:h,resize:g,close:_}=M(),{options:v}=b(a),y={fontSize:14,scrollback:5e3,allowTransparency:!1,disableStdin:!1,cursorBlink:!0,allowProposedApi:!0,theme:{background:`#000000`}},x={"\x1B[A":`\x1BOA`,"\x1B[B":`\x1BOB`,"\x1B[C":`\x1BOC`,"\x1B[D":`\x1BOD`,"\x1B[H":`\x1BOH`,"\x1B[F":`\x1BOF`},S=l(`terminalContainerRef`),w=E(null),T=null,D=null,O=null,k=null,j=F(S);function P(e){s.value&&h(a.inputTransform?a.inputTransform(e):e)}function ee(e){w.value&&w.value.write(e)}function I(){if(!(!w.value||!T))try{T.fit()}catch{}}function L(){I(),s.value&&w.value&&g({cols:w.value.cols,rows:w.value.rows})}function R(){w.value&&C(()=>{I(),w.value&&(w.value.refresh(0,w.value.rows-1),w.value.focus())})}let z=N(L,100);function B(e){if(e)try{e.dispose()}catch{}}function V(){S.value&&(w.value=new K({...y,...v.value}),T=new U,k=new te,D=new W,O=new G,w.value.loadAddon(D),w.value.loadAddon(O),w.value.loadAddon(k),w.value.loadAddon(T),w.value.open(S.value),w.value.onData(P),w.value.onResize(({cols:e,rows:t})=>{s.value&&g({cols:e,rows:t})}),k.onContextLoss(()=>{B(k),k=null}),L())}async function H(){w.value&&await m({cols:w.value.cols,rows:w.value.rows,cwd:a.cwd,shell:a.shell,onData:ee,onClose:()=>{w.value?.write(`\r
2
- \x1B[33mSession closed.\x1B[0m\r
3
- `)},onError:e=>{o(`error`,e)}})}async function ne(){await _()}function q(){w.value?.clear()}function re(){w.value?.focus()}function ie(e){w.value?.modes.applicationCursorKeysMode&&(e=x[e]??e),P(e)}return d(v,()=>{w.value&&(w.value.options={...y,...v.value},z())},{deep:!0}),d(s,e=>{e?(o(`connected`),C(()=>w.value?.focus())):o(`disconnected`)}),d([j.height,j.width],()=>{z()}),f(()=>{V(),a.autoConnect&&H()}),i(()=>{_(),B(T),B(k),B(D),B(O),B(w.value)}),t({connect:H,disconnect:ne,clear:q,focus:re,resize:L,refresh:R,sendInput:ie,isConnected:s,isConnecting:c,isClientConnected:u,error:p,term:w}),(e,t)=>(A(),n(`div`,{ref_key:`terminalContainerRef`,ref:S,class:`cui-terminal w-full h-full bg-black overflow-hidden p-2 min-w-0`},null,512))}}),[[`__scopeId`,`data-v-82bcb47c`]]),Z=[{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:`_`}],fe=[`tab`,`ctrl`,`up`,`down`,`left`,`right`],Q={a:``,b:``,c:``,d:``,e:``,f:``,g:`\x07`,h:`\b`,i:` `,j:`
4
- `,k:`\v`,l:`\f`,m:`\r`,n:``,o:``,p:``,q:``,r:``,s:``,t:``,u:``,v:``,w:``,x:``,y:``,z:``},pe=[`onPointerdown`],$={key:0,class:`flex flex-wrap gap-1.5 px-2 py-2 bg-black/90 border-t border-white/10`},me=[`onClick`],he=L(D({__name:`CuiTerminalToolbar`,emits:[`send`],setup(e,{expose:r,emit:i}){let s=i,{smBreakpoint:c}=R(),l=Z,d=j(`cui-terminal-toolbar-keys`,fe),f=t(!1),p=v(new Set),g=_(()=>d.value.map(e=>l.find(t=>t.id===e)).filter(Boolean));function y(e){if(p.has(`ctrl`)&&e.length===1){let t=Q[e.toLowerCase()];if(t)return t}return p.has(`alt`)&&e.length===1?`\x1b${e}`:e}function b(e){if(e.modifier){p.has(e.id)?p.delete(e.id):p.add(e.id);return}s(`send`,y(e.sequence)),p.clear()}function C(e){let t=d.value.indexOf(e);t>=0?d.value.splice(t,1):d.value.push(e)}return r({activeModifiers:p,applyModifiers:y}),(e,t)=>{let r=q;return A(),n(`div`,null,[h(`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":!O(c)}])},[(A(!0),n(o,null,a(O(g),e=>(A(),n(`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&&O(p).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&&O(p).has(e.id))}]),onPointerdown:m(t=>b(e),[`prevent`])},S(e.label),43,pe))),128)),h(`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":O(f),"bg-white/5 border-white/10 text-white/50 hover:bg-white/15 hover:text-white":!O(f)}]),onPointerdown:t[0]||=m(e=>f.value=!O(f),[`prevent`])},[T(r,{class:`w-3.5 h-3.5`})],34)],2),O(f)?(A(),n(`div`,$,[(A(!0),n(o,null,a(O(l),e=>(A(),n(`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":O(d).includes(e.id),"bg-white/5 border-white/10 text-white/30":!O(d).includes(e.id)}]),onClick:t=>C(e.id)},S(e.label),11,me))),128))])):u(``,!0)])}}}),[[`__scopeId`,`data-v-e111c595`]]),ge={class:`h-full w-full dark-mode relative overflow-hidden`},_e={class:`relative w-6 h-6`},ve=D({__name:`Terminal`,props:{navbarWidth:{default:0},navbarLeft:{default:0}},setup(u){let d=u,{t:m}=ee(),{uiSettings:g}=I(z()),{navbarWidth:v,navbarLeft:S}=b(d),E=l(`toolbar`),D=t([]),j=t(``),M=t(0),N=new Map,L=window.innerHeight,R=0,U=F(E),W=_(()=>v.value+S.value),te=_(()=>{let e=document.getElementById(`container`);return e&&parseFloat(getComputedStyle(e).paddingBottom)||0}),G=_(()=>M.value<=0?0:Math.max(0,M.value-te.value)),K=_(()=>D.value.find(e=>e.id===j.value)),q=_(()=>({fontSize:g.value.console.zoom})),ce=t([{label:m(`components.form.tooltip.clear`),icon:se,buttonProps:{severity:`danger`},command:()=>{Q()?.clear()}},{label:m(`components.form.tooltip.zoom_out`),icon:re,command:()=>{Ee()}},{label:m(`components.form.tooltip.zoom_in`),icon:ie,command:()=>{Te()}}]);function J(){L=window.innerHeight,Y()}function Y(){let e=window.visualViewport;if(!e)return;let t=Math.max(0,L-e.height-e.offsetTop);t!==M.value&&(M.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 fe(e,t){t?N.set(e,t):N.delete(e)}function Q(){return N.get(j.value)}function pe(){return R++,{id:e(12),name:`Terminal ${R}`,isConnected:!1,isConnecting:!0}}function $(){let e=pe();D.value.push(e),j.value=e.id}async function me(e){let t=D.value.findIndex(t=>t.id===e);if(t===-1)return;let n=N.get(e);if(n&&await n.disconnect(),D.value.splice(t,1),N.delete(e),j.value===e&&D.value.length>0){let e=Math.min(t,D.value.length-1);j.value=D.value[e].id,C(()=>{Q()?.refresh()})}}function ve(e){j.value=e,C(()=>{N.get(e)?.refresh()})}function ye(e){if(!E.value?.activeModifiers?.size)return e;let t=E.value.applyModifiers(e);return E.value.activeModifiers.clear(),t}function be(e){Q()?.sendInput(e)}async function xe(){let e=Q();e&&(await e.disconnect(),await e.connect())}function Se(e){let t=D.value.find(t=>t.id===e);t&&(t.isConnected=!0,t.isConnecting=!1),e===j.value&&C(()=>{Q()?.refresh()})}function Ce(e){let t=D.value.find(t=>t.id===e);t&&(t.isConnected=!1,t.isConnecting=!1)}function we(e,t){console.error(`Terminal ${e} error:`,t);let n=D.value.find(t=>t.id===e);n&&(n.isConnected=!1,n.isConnecting=!1)}function Te(){g.value.console.zoom!==20&&(g.value.console.zoom++,C(()=>{Q()?.resize()}))}function Ee(){g.value.console.zoom!==8&&(g.value.console.zoom--,C(()=>{Q()?.resize()}))}return f(()=>{window.addEventListener(`resize`,J);let e=window.visualViewport;e&&(e.addEventListener(`resize`,Y),e.addEventListener(`scroll`,Y)),$()}),i(()=>{window.removeEventListener(`resize`,J);let e=window.visualViewport;e&&(e.removeEventListener(`resize`,Y),e.removeEventListener(`scroll`,Y)),Z(!1)}),(e,t)=>{let i=ne,l=P,u=H,d=oe,f=ue,g=ae,_=V,v=le,b=B;return A(),n(`div`,ge,[T(u,{position:`left`},{default:p(()=>[T(l,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:t[0]||=t=>e.$router.push(`/menu`)},{icon:p(()=>[T(i,{class:`w-6 h-6`})]),_:1})]),_:1}),T(g,{scrollable:``,"left-offset":O(W),animate:``},{left:p(()=>[(A(!0),n(o,null,a(O(D),e=>(A(),y(d,{key:e.id,type:`tab`,label:e.name,active:O(j)===e.id,status:e.isConnected?`connected`:e.isConnecting?`connecting`:`disconnected`,closeable:O(D).length>1,onClick:t=>ve(e.id),onClose:t=>me(e.id)},null,8,[`label`,`active`,`status`,`closeable`,`onClick`,`onClose`]))),128)),s((A(),y(d,{type:`button`,onClick:$},{icon:p(()=>[T(f,{class:`w-4 h-4`})]),_:1})),[[b,O(m)(`views.terminal.new_tab`)]])]),_:1},8,[`left-offset`]),h(`div`,{class:`w-full flex flex-col relative`,style:k({paddingTop:`${O(55)}px`,height:`calc(100% - ${O(G)}px)`,transition:`height 150ms ease-out`})},[h(`div`,{class:x([`flex-1 relative min-h-0 overflow-hidden`,{"pb-1":O(M)>0}])},[(A(!0),n(o,null,a(O(D),e=>s((A(),y(de,{key:e.id,ref_for:!0,ref:t=>fe(e.id,t),options:O(q),"input-transform":ye,"auto-connect":``,onConnected:()=>Se(e.id),onDisconnected:()=>Ce(e.id),onError:t=>we(e.id,t)},null,8,[`options`,`onConnected`,`onDisconnected`,`onError`])),[[c,O(j)===e.id]])),128))],2),T(he,{ref_key:`toolbar`,ref:E,onSend:be},null,512)],4),T(_,{model:O(ce),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:k({bottom:`calc(0.75rem + ${O(U).height.value}px + ${O(G)}px)`,transition:`bottom 150ms ease-out`})},{button:p(({visible:e,toggleCallback:t})=>[T(l,{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:p(()=>[h(`div`,_e,[h(`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),h(`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),h(`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:p(({item:e,toggleCallback:t})=>[s((A(),y(l,w({severity:`secondary`},e.buttonProps,{rounded:``,onClick:t}),{icon:p(()=>[(A(),y(r(e.icon)))]),_:2},1040,[`onClick`])),[[b,{value:e.label}]])]),_:1},8,[`model`,`style`]),s((A(),y(l,{class:x([`opacity-40 hover:opacity-100 active:opacity-100 focus:opacity-100 transition absolute right-14 z-11`,{"!opacity-20 pointer-events-none":O(K)?.isConnected||O(K)?.isConnecting}]),style:k({bottom:`calc(0.75rem + ${O(U).height.value}px + ${O(G)}px)`,transition:`bottom 150ms ease-out`}),rounded:``,disabled:O(K)?.isConnected||O(K)?.isConnecting,onClick:xe},{icon:p(()=>[T(v,{class:`text-white`})]),_:1},8,[`class`,`style`,`disabled`])),[[b,O(m)(`views.terminal.reconnect`)]])])}}});export{ve as default};