@camera.ui/server 0.0.71-dev.0 → 0.0.72

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 (24) hide show
  1. package/README.md +3 -1
  2. package/dist/interface/assets/{Automation-BKhuIS2v.js → Automation-DjX-txg2.js} +2 -2
  3. package/dist/interface/assets/{Cameras-DJcAfGpU.js → Cameras-Bgxkmb6l.js} +1 -1
  4. package/dist/interface/assets/{ConfigActionPlugin-CDA53LwA.js → ConfigActionPlugin-BVd0FkX6.js} +1 -1
  5. package/dist/interface/assets/CuiSchema-B0M5qZi-.js +1 -0
  6. package/dist/interface/assets/{Menu-CUnOgtD5.js → Menu-gv4GQhK1.js} +1 -1
  7. package/dist/interface/assets/{Plugin-LjpUwn17.js → Plugin-huffA1k1.js} +1 -1
  8. package/dist/interface/assets/{PluginSchema-DL7Bfd_U.js → PluginSchema-CVJH7kNO.js} +1 -1
  9. package/dist/interface/assets/{Settings-iBjUbXTH.js → Settings-Cpf43KIz.js} +1 -1
  10. package/dist/interface/assets/{SettingsRecordings-dPUm5hma.js → SettingsRecordings-Dm9YcEv3.js} +1 -1
  11. package/dist/interface/assets/{main-D1gFWXGG.js → main-C25vmXlh.js} +1 -1
  12. package/dist/interface/assets/{router-DGyFln7e.js → router-BQMVP169.js} +2 -2
  13. package/dist/interface/index.html +4 -4
  14. package/dist/interface/sw.js +1 -1
  15. package/dist/server/package.json +15 -8
  16. package/dist/server/src/api/routes/config.routes.js +1 -1
  17. package/dist/server/src/api/routes/config.routes.js.map +1 -1
  18. package/dist/server/src/plugins/runtime/base.js +7 -0
  19. package/dist/server/src/plugins/runtime/base.js.map +1 -1
  20. package/dist/server/src/services/config/index.d.ts +1 -0
  21. package/dist/server/src/services/config/index.js +28 -19
  22. package/dist/server/src/services/config/index.js.map +1 -1
  23. package/package.json +15 -8
  24. package/dist/interface/assets/CuiSchema-CTRLO0uq.js +0 -1
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # @camera.ui/server
2
2
 
3
+ The camera.ui server. See [camera.ui](https://github.com/cameraui/camera.ui) for documentation.
4
+
3
5
  ---
4
6
 
5
- *Part of the camera.ui ecosystem - A comprehensive camera management solution.*
7
+ _Part of the camera.ui ecosystem - A comprehensive camera management solution._
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ConfigTriggerDetection-CRnZR91p.js","assets/vendor-DmhYd_sB.js","assets/rolldown-runtime-CMxvf4Kt.js","assets/vendor-cameraui-DggYb17u.js","assets/vendor-primevue--pcuf6kA.js","assets/useCameraOptions-0w0LNh72.js","assets/types-kxdn9XBW.js","assets/vendor-zod-CmGeQCqy.js","assets/cameras-DQ28quQb.js","assets/api-BaywoTCE.js","assets/vendor-core-B6F-imJj.js","assets/api-Cna9Poda.css","assets/ConfigTriggerSensor-DR6ifBrK.js","assets/ConfigTriggerSchedule-CqID85d1.js","assets/ConfigTriggerWebhook-Cmwu5IU4.js","assets/CuiActionButton-Ba5wT-4n.js","assets/copy-BeuZDsJN.js","assets/information-outline-fu18_QSH.js","assets/ConfigTriggerSystem-K1ohOW18.js","assets/plugins-DzRwEcA4.js","assets/ConfigTriggerManual-V8-5hrdl.js","assets/ConfigTriggerGeofence-DODdJBZW.js","assets/vendor-leaflet-B5L2Aw8Y.js","assets/vendor-leaflet-vh-t_kPv.css","assets/ConfigActionSnapshot-C5enxVcl.js","assets/ConfigActionSensor-BBkfWT_r.js","assets/ConfigActionNotification-CuDDnksK.js","assets/notifications-DNRzOl89.js","assets/VariableInput-D_-qKfZK.js","assets/automations-Bj3wF0wR.js","assets/VariableSuggestions-Br4yDsLZ.js","assets/upload-Chr4Uunq.js","assets/ConfigActionHttp-BbfN1UGF.js","assets/ConfigActionDelay-DKhE0Xr8.js","assets/ConfigActionVariable-CVaOMoOi.js","assets/ConfigActionPlugin-CDA53LwA.js","assets/automations-C6ssihoC.js","assets/CuiSchema-CTRLO0uq.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/CuiImage-60jwFIqc.js","assets/CuiImage-Bxf7z2N4.css","assets/theme-D08Upl8q.js","assets/check-BQQidcYi.js","assets/close-WdhW_91X.js","assets/CuiSchema--yMBD996.css","assets/ConfigActionImageInput-P39gRfld.js","assets/ConfigActionOutput-BIHvC1Z5.js","assets/ConfigActionCameraControl-94iyzBzJ.js","assets/types-BxFyoO54.js","assets/ConfigConditionIfElse-DiIOUqA5.js","assets/nodeDefinitions-BLSMZueH.js","assets/bell-outline-JZZKpcfS.js","assets/lightbulb-outline-DWc53kV7.js","assets/alert-outline-D3FCIX7_.js","assets/ConfigConditionSwitch-DWqcQ3Ip.js","assets/ConfigConditionSensorState-DBktbA8F.js","assets/close-Dhjo4o57.js","assets/ConfigConditionTime-BEaHclqa.js"])))=>i.map(i=>d[i]);
2
- import{S as e,l as t}from"./api-BaywoTCE.js";import{$n as n,$t as r,An as i,Cn as a,Dn as o,En as s,Gt as c,Hn as l,In as u,Jn as d,Qt as f,Rn as p,Sn as m,Vn as h,Wt as g,Xt as _,Yn as v,Yt as y,Zt as b,cr as x,dr as S,hn as C,in as w,kt as T,nr as E,on as D,pn as O,sr as k,tn as A,ur as j,wn as M}from"./vendor-DmhYd_sB.js";import{Bn as N,Vn as P,di as F,et as I,st as L}from"./vendor-cameraui-DggYb17u.js";import{c as ee,f as R,l as te}from"./vendor-core-B6F-imJj.js";import{t as z}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as ne,t as re}from"./useSharedComposables-riqEUgwX.js";import{D as B,E as V,J as ie,K as ae,O as oe,g as H,k as se,o as ce}from"./vendor-primevue--pcuf6kA.js";import{t as le}from"./CuiMenu-B4CHT2F_.js";import{t as ue}from"./play-solid-B_749j1A.js";import{n as U,t as de}from"./useCuiDialog-BbkaNkQN.js";import{t as fe}from"./CuiTopbarSlot-BDZoZ_yn.js";import{r as pe}from"./types-BxFyoO54.js";import{t as W}from"./automations-Bj3wF0wR.js";import{t as me}from"./automations-C6ssihoC.js";import{n as G,t as K}from"./nodeDefinitions-BLSMZueH.js";import{t as he}from"./close-Dhjo4o57.js";import{t as ge}from"./CuiBottomSheet-CHspaYgP.js";import{t as _e}from"./back-filled-CvLD0CND.js";import{t as ve}from"./trash-can-YTXLzAmt.js";import{t as ye}from"./plus-Dis0MPt8.js";import{a as q,c as J,i as be,n as xe,o as Y,r as X,s as Se,t as Ce}from"./vendor-vueflow-CBuKPASC.js";import{t as we}from"./settings-D2-mWioF.js";var Te={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function Ee(e,t){return M(),r(`svg`,Te,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`M26 20h-6v-2h6zm4 8h-6v-2h6zm-2-4h-6v-2h6z`},null,-1),_(`path`,{fill:`currentColor`,d:`M17.003 20a4.9 4.9 0 0 0-2.404-4.173L22 3l-1.73-1l-7.577 13.126a5.7 5.7 0 0 0-5.243 1.503C3.706 20.24 3.996 28.682 4.01 29.04a1 1 0 0 0 1 .96h14.991a1 1 0 0 0 .6-1.8c-3.54-2.656-3.598-8.146-3.598-8.2m-5.073-3.003A3.11 3.11 0 0 1 15.004 20c0 .038.002.208.017.469l-5.9-2.624a3.8 3.8 0 0 1 2.809-.848M15.45 28A5.2 5.2 0 0 1 14 25h-2a6.5 6.5 0 0 0 .968 3h-2.223A16.6 16.6 0 0 1 10 24H8a17.3 17.3 0 0 0 .665 4H6c.031-1.836.29-5.892 1.803-8.553l7.533 3.35A13 13 0 0 0 17.596 28Z`},null,-1)]])}var De=v({name:`carbon-clean`,render:Ee}),Oe={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function ke(e,t){return M(),r(`svg`,Oe,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`M12 10h12.185l-3.587-3.586L22 5l6 6l-6 6l-1.402-1.415L24.182 12H12a6 6 0 0 0 0 12h8v2h-8a8 8 0 0 1 0-16`},null,-1)]])}var Ae=v({name:`carbon-redo`,render:ke}),je={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function Me(e,t){return M(),r(`svg`,je,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`m27.71 9.29l-5-5A1 1 0 0 0 22 4H6a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2V10a1 1 0 0 0-.29-.71M12 6h8v4h-8Zm8 20h-8v-8h8Zm2 0v-8a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8H6V6h4v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V6.41l4 4V26Z`},null,-1)]])}var Ne=v({name:`carbon-save`,render:Me}),Pe={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function Fe(e,t){return M(),r(`svg`,Pe,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`M23 20a5 5 0 0 0-3.89 1.89l-7.31-4.57a4.46 4.46 0 0 0 0-2.64l7.31-4.57A5 5 0 1 0 18 7a4.8 4.8 0 0 0 .2 1.32l-7.31 4.57a5 5 0 1 0 0 6.22l7.31 4.57A4.8 4.8 0 0 0 18 25a5 5 0 1 0 5-5m0-16a3 3 0 1 1-3 3a3 3 0 0 1 3-3M7 19a3 3 0 1 1 3-3a3 3 0 0 1-3 3m16 9a3 3 0 1 1 3-3a3 3 0 0 1-3 3`},null,-1)]])}var Ie=v({name:`carbon-share`,render:Fe}),Le={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function Re(e,t){return M(),r(`svg`,Le,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`M20 10H7.815l3.587-3.586L10 5l-6 6l6 6l1.402-1.415L7.818 12H20a6 6 0 0 1 0 12h-8v2h8a8 8 0 0 0 0-16`},null,-1)]])}var ze=v({name:`carbon-undo`,render:Re}),Be=[`id`,`d`],Ve=24,He=D({__name:`DeletableEdge`,props:{id:{},sourceNode:{},targetNode:{},source:{},target:{},type:{},label:{type:[String,Object,Function]},style:{},selected:{type:Boolean},sourcePosition:{},targetPosition:{},sourceHandleId:{},targetHandleId:{},animated:{type:Boolean},updatable:{type:Boolean},markerStart:{},markerEnd:{},curvature:{},interactionWidth:{},data:{},events:{},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{},sourceX:{},sourceY:{},targetX:{},targetY:{}},setup(e){let t=e,{removeEdges:n}=J(),i=y(()=>Se({sourceX:t.sourceX,sourceY:t.sourceY,sourcePosition:t.sourcePosition,targetX:t.targetX,targetY:t.targetY,targetPosition:t.targetPosition})),a=y(()=>i.value[0]),o=y(()=>i.value[1]),s=y(()=>i.value[2]),l=y(()=>{let e=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);return e.setAttribute(`d`,a.value),e.getTotalLength()}),u=y(()=>{let e=l.value;if(e<=0)return{stroke:`var(--text-muted-color)`,strokeWidth:2,fill:`none`};let t=e/2,n=Ve/2;return{stroke:`var(--text-muted-color)`,strokeWidth:2,fill:`none`,strokeDasharray:`${Math.max(0,t-n)} ${Ve} ${Math.max(0,e-t-n)}`}});function d(){n([t.id])}return(t,n)=>{let i=he;return M(),r(c,null,[_(`path`,{id:e.id,d:k(a),style:j(k(u)),class:`vue-flow__edge-path`},null,12,Be),w(k(q),null,{default:h(()=>[_(`div`,{class:`automation-edge-button nodrag nopan`,style:j({pointerEvents:`all`,position:`absolute`,transform:`translate(-50%, -50%) translate(${k(o)}px, ${k(s)}px)`})},[_(`button`,{class:`automation-edge-delete`,onClick:g(d,[`stop`])},[w(i,{class:`w-3 h-3`})])],4)]),_:1})],64)}}}),Ue={maxInputs:1/0},We={class:`flex items-center gap-2 px-3 py-2.5`},Ge={class:`flex-1 min-w-0`},Ke={class:`text-xs font-semibold truncate text-color`},qe={key:0,class:`text-[10px] text-muted truncate mt-0.5`},Je=z(D({__name:`BaseNode`,props:O({icon:{},label:{},subtitle:{},color:{},selected:{type:Boolean},showInput:{type:Boolean},showOutput:{type:Boolean},maxInputs:{}},Ue),setup(e){let t={backgroundColor:`var(--text-muted-color)`,borderColor:`var(--card-background)`};return(n,a)=>(M(),r(`div`,{class:x([`automation-node card-background rounded-lg border-2 shadow-lg min-w-[180px] max-w-[220px] select-none`,{"ring-2 ring-primary":e.selected}]),style:j({borderColor:e.color})},[_(`div`,We,[_(`div`,{class:`flex items-center justify-center w-8 h-8 rounded-md shrink-0`,style:j({backgroundColor:`${e.color}20`,color:e.color})},[(M(),b(i(e.icon),{class:`w-4.5 h-4.5`}))],4),_(`div`,Ge,[_(`div`,Ke,S(e.label),1),e.subtitle?(M(),r(`div`,qe,S(e.subtitle),1)):f(``,!0)])]),e.showInput?(M(),b(k(Y),{key:0,type:`target`,position:k(X).Top,connectable:e.maxInputs,class:`!w-3 !h-3 !border-2`,style:t},null,8,[`position`,`connectable`])):f(``,!0),o(n.$slots,`handles`,{},()=>[e.showOutput?(M(),b(k(Y),{key:0,type:`source`,position:k(X).Bottom,class:`!w-3 !h-3 !border-2`,style:t},null,8,[`position`])):f(``,!0)],!0)],6))}}),[[`__scopeId`,`data-v-26c7ae33`]]),Ye={class:`text-muted font-medium truncate`},Xe={class:`text-color font-semibold text-right`},Z=D({__name:`ActionNode`,props:{id:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,Number,String,Function]},position:{},dimensions:{},label:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},parentNodeId:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},targetPosition:{},sourcePosition:{},dragHandle:{},data:{},events:{}},setup(e){let t=e,{t:n}=F(),{lastOutput:i}=R(W()),a=y(()=>K(t.type)),o=y(()=>a.value?n(a.value.labelKey):t.type),l=y(()=>{let e=t.data,n=e.alias,r;return e.type===`action-delay`?r=`${e.duration} ${e.unit}`:e.type===`action-notification`&&e.title?r=e.title:e.type===`action-http`&&e.url?r=`${e.method} ${e.url}`:e.type===`action-plugin`&&e.repeat&&e.repeat>1&&(r=`${e.repeat}x`),n&&r?`[${n}] ${r}`:n?`[${n}]`:r}),u=y(()=>t.type!==`action-output`||!i.value?[]:Object.entries(i.value));return(t,n)=>{let i=L;return M(),r(`div`,null,[w(Je,{icon:k(a).icon,label:k(o),subtitle:k(l),color:k(a)?.color??`#3b82f6`,selected:e.selected,"show-input":!0,"show-output":!0},null,8,[`icon`,`label`,`subtitle`,`color`,`selected`]),e.type===`action-output`&&k(u).length?(M(),b(i,{key:0,class:`cui-card mt-1`,pt:{body:{class:`p-0`}},style:{"min-width":`180px`}},{content:h(()=>[(M(!0),r(c,null,s(k(u),(e,t)=>(M(),r(`div`,{key:t,class:x([`flex justify-between gap-3 px-3 py-1.5 text-[11px]`,{"border-t border-surface-100 dark:border-surface-800":t>0}])},[_(`span`,Ye,S(e[0]),1),_(`span`,Xe,S(e[1]),1)],2))),128))]),_:1})):f(``,!0)])}}}),Q=D({__name:`ConditionNode`,props:{id:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,Number,String,Function]},position:{},dimensions:{},label:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},parentNodeId:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},targetPosition:{},sourcePosition:{},dragHandle:{},data:{},events:{}},setup(e){let t=e,{t:n}=F(),r={borderColor:`var(--card-background)`},i=y(()=>K(t.type)),a=y(()=>i.value?n(i.value.labelKey):t.type),o=y(()=>{let e=t.data;if(e.type===`condition-ifelse`&&e.leftOperand&&e.operator)return`${e.leftOperand} ${e.operator} ${e.rightOperand}`});return(t,n)=>(M(),b(Je,{icon:k(i).icon,label:k(a),subtitle:k(o),color:k(i)?.color??`#f59e0b`,selected:e.selected,"show-input":!0,"show-output":!1,"max-inputs":1},{handles:h(()=>[w(k(Y),{type:`source`,position:k(X).Bottom,id:`true`,class:`!w-3 !h-3 !border-2`,style:j({...r,backgroundColor:`var(--text-success-color)`,left:`30%`})},null,8,[`position`,`style`]),w(k(Y),{type:`source`,position:k(X).Bottom,id:`false`,class:`!w-3 !h-3 !border-2`,style:j({...r,backgroundColor:`var(--text-danger-color)`,left:`70%`})},null,8,[`position`,`style`])]),_:1},8,[`icon`,`label`,`subtitle`,`color`,`selected`]))}}),$=D({__name:`TriggerNode`,props:{id:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,Number,String,Function]},position:{},dimensions:{},label:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},parentNodeId:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},targetPosition:{},sourcePosition:{},dragHandle:{},data:{},events:{}},setup(e){let t=e,{t:n}=F(),r=y(()=>K(t.type)),i=y(()=>r.value?n(r.value.labelKey):t.type),a=y(()=>{let e=t.data;if(e.type===`trigger-detection`&&e.cameraId)return e.cameraId;if(e.type===`trigger-schedule`&&e.cron)return e.cron});return(t,n)=>(M(),b(Je,{icon:k(r).icon,label:k(i),subtitle:k(a),color:k(r)?.color??`#22c55e`,selected:e.selected,"show-input":!1,"show-output":!0},null,8,[`icon`,`label`,`subtitle`,`color`,`selected`]))}}),Ze=50;function Qe(){let e=E([]),t=E([]);function n(e,t){return JSON.stringify({nodes:e,edges:t})}function r(e){return JSON.parse(e)}function i(r,i){let a=[...e.value,n(r,i)];a.length>Ze&&a.shift(),e.value=a,t.value=[]}function a(i,a){let o=[...e.value],s=o.pop();if(s)return e.value=o,t.value=[...t.value,n(i,a)],r(s)}function o(i,a){let o=[...t.value],s=o.pop();if(s)return t.value=o,e.value=[...e.value,n(i,a)],r(s)}function s(){e.value=[],t.value=[]}return{push:i,undo:a,redo:o,clear:s,canUndo:y(()=>e.value.length>0),canRedo:y(()=>t.value.length>0)}}var $e=[`cameraId`,`sensorType`,`sensorName`,`sensorPluginId`,`property`];function et(e,t){if(!e||!t)return null;let n={},r=e,i=t;for(let e of $e)r[e]&&e in i&&!i[e]&&(n[e]=r[e]);return Object.keys(n).length>0?n:null}function tt(e){return e.type===`trigger-webhook`&&!e.webhookId?{...e,webhookId:crypto.randomUUID()}:e.type===`trigger-geofence`&&!e.geofenceId?{...e,geofenceId:crypto.randomUUID()}:e}var nt={class:`absolute inset-0 flex items-center justify-center pointer-events-none`},rt={class:`text-muted text-sm`},it=D({__name:`CuiAutomationCanvas`,props:{flow:{},mobile:{type:Boolean}},emits:[`node-select`,`change`],setup(e,{expose:i,emit:o}){let s=e,c=o,{t:l}=F(),{smBreakpoint:u}=re(),{screenToFlowCoordinate:f,getViewport:y,dimensions:b}=J(),C=Qe(),T={"trigger-detection":v($),"trigger-sensor":v($),"trigger-schedule":v($),"trigger-webhook":v($),"trigger-system":v($),"trigger-manual":v($),"trigger-geofence":v($),"condition-ifelse":v(Q),"condition-switch":v(Q),"condition-sensorstate":v(Q),"condition-time":v(Q),"action-snapshot":v(Z),"action-sensor":v(Z),"action-notification":v(Z),"action-http":v(Z),"action-delay":v(Z),"action-variable":v(Z),"action-plugin":v(Z),"action-camera-control":v(Z),"action-image-input":v(Z),"action-output":v(Z)},E={default:v(He)},D=n([...s.flow.nodes]),O=n([...s.flow.edges]);function j(){C.push(D.value,O.value)}function N(){let e=C.undo(D.value,O.value);e&&(D.value=e.nodes,O.value=e.edges,c(`node-select`,null),c(`change`))}function P(){let e=C.redo(D.value,O.value);e&&(D.value=e.nodes,O.value=e.edges,c(`node-select`,null),c(`change`))}function I(e){c(`node-select`,e.node.id)}function L(){c(`node-select`,null)}function ee(e){let t=D.value.find(t=>t.id===e.source),n=D.value.find(t=>t.id===e.target);return!(!t||!n||e.source===e.target||n.type?.startsWith(`trigger-`))}function R(e){if(!ee(e))return;j();let t=e.targetHandle??void 0,n=D.value.find(t=>t.id===e.target);if(n?.type?.startsWith(`condition-`)){let n=O.value.find(n=>n.target===e.target&&(n.targetHandle??void 0)===t);n&&(O.value=O.value.filter(e=>e.id!==n.id))}let r={id:`e-${e.source}-${e.target}`,source:e.source,target:e.target,sourceHandle:e.sourceHandle??void 0,targetHandle:t};O.value.push(r);let i=et(D.value.find(t=>t.id===e.source)?.data,n?.data);i&&n?.data&&Object.assign(n.data,i),c(`change`)}function te(e){e.some(e=>e.type===`remove`)&&(j(),c(`node-select`,null),c(`change`))}function z(e){let n=e.dataTransfer?.getData(`application/automationnode`);if(!n)return;let r=K(n);if(!r)return;j();let i=f({x:e.clientX,y:e.clientY}),a={id:t(12),type:n,position:i,data:tt({...r.defaults})};D.value=[...D.value,a],c(`change`)}function ne(e){let n=K(e);if(!n)return;j();let{x:r,y:i,zoom:a}=y(),{width:o,height:s}=b.value,l=(-r+o/2)/a,u=(-i+s/2)/a,d=()=>(Math.random()-.5)*80,f={id:t(12),type:e,position:{x:l+d(),y:u+d()},data:tt({...n.defaults})};return D.value=[...D.value,f],c(`change`),f}function B(e){j(),D.value=D.value.filter(t=>t.id!==e),O.value=O.value.filter(t=>t.source!==e&&t.target!==e),c(`change`)}function V(){j(),D.value=[],O.value=[],c(`change`)}function ie(){return[...D.value]}function ae(){return[...O.value]}function oe(e,t){let n=D.value.find(t=>t.id===e);n&&(n.data=t)}function H(e){let t=e.metaKey||e.ctrlKey;t&&e.key===`z`&&!e.shiftKey?(e.preventDefault(),N()):(t&&e.key===`z`&&e.shiftKey||t&&e.key===`y`)&&(e.preventDefault(),P())}return p(()=>s.flow._id,()=>{D.value=[...s.flow.nodes],O.value=[...s.flow.edges],C.clear()}),m(()=>window.addEventListener(`keydown`,H)),a(()=>window.removeEventListener(`keydown`,H)),i({removeNode:B,addNodeAtCenter:ne,clearAll:V,getNodes:ie,getEdges:ae,updateNodeData:oe,undo:N,redo:P,canUndo:C.canUndo,canRedo:C.canRedo}),(t,n)=>(M(),r(`div`,{ref:`canvasRef`,class:x([`h-full w-full border-left-color border-bottom-color border-right-color rounded-b-xl overflow-hidden`,{"rounded-none! border-0!":k(u)}]),onDrop:z,onDragover:n[2]||=g(()=>{},[`prevent`]),onDragenter:n[3]||=g(()=>{},[`prevent`])},[w(k(be),{nodes:k(D),"onUpdate:nodes":n[0]||=e=>d(D)?D.value=e:null,edges:k(O),"onUpdate:edges":n[1]||=e=>d(O)?O.value=e:null,"node-types":T,"edge-types":E,"default-viewport":{zoom:e.mobile?.7:.9,x:0,y:0},"snap-to-grid":!0,"snap-grid":[16,16],"is-valid-connection":ee,class:`automation-canvas`,onNodeClick:I,onPaneClick:L,onConnect:R,onNodesChange:te},A({default:h(()=>[w(k(xe),{gap:16}),w(k(Ce))]),_:2},[k(D).length?void 0:{name:`default`,fn:h(()=>[_(`div`,nt,[_(`span`,rt,S(e.mobile?k(l)(`views.automation.no_nodes_mobile`):k(l)(`views.automation.no_nodes`)),1)])]),key:`0`}]),1032,[`nodes`,`edges`,`default-viewport`])],34))}}),at={"trigger-detection":U(()=>T(()=>import(`./ConfigTriggerDetection-CRnZR91p.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]))),"trigger-sensor":U(()=>T(()=>import(`./ConfigTriggerSensor-DR6ifBrK.js`),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,11]))),"trigger-schedule":U(()=>T(()=>import(`./ConfigTriggerSchedule-CqID85d1.js`),__vite__mapDeps([13,1,2,3]))),"trigger-webhook":U(()=>T(()=>import(`./ConfigTriggerWebhook-Cmwu5IU4.js`),__vite__mapDeps([14,1,2,3,4,15,16,17]))),"trigger-system":U(()=>T(()=>import(`./ConfigTriggerSystem-K1ohOW18.js`),__vite__mapDeps([18,1,2,3,4,19,9,10,11,5,6,7,8]))),"trigger-manual":U(()=>T(()=>import(`./ConfigTriggerManual-V8-5hrdl.js`),__vite__mapDeps([20,1,2,3]))),"trigger-geofence":U(()=>T(()=>import(`./ConfigTriggerGeofence-DODdJBZW.js`),__vite__mapDeps([21,2,1,3,4,22,23,9,10,11,15,16,17]))),"action-snapshot":U(()=>T(()=>import(`./ConfigActionSnapshot-C5enxVcl.js`),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10,11]))),"action-sensor":U(()=>T(()=>import(`./ConfigActionSensor-BBkfWT_r.js`),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10,11]))),"action-notification":U(()=>T(()=>import(`./ConfigActionNotification-CuDDnksK.js`),__vite__mapDeps([26,1,2,3,4,27,9,10,11,28,29,30,31]))),"action-http":U(()=>T(()=>import(`./ConfigActionHttp-BbfN1UGF.js`),__vite__mapDeps([32,1,2,4,3,28,29,10,30]))),"action-delay":U(()=>T(()=>import(`./ConfigActionDelay-DKhE0Xr8.js`),__vite__mapDeps([33,1,2,3,4]))),"action-variable":U(()=>T(()=>import(`./ConfigActionVariable-CVaOMoOi.js`),__vite__mapDeps([34,1,2,3,4,28,29,10,30]))),"action-plugin":U(()=>T(()=>import(`./ConfigActionPlugin-CDA53LwA.js`),__vite__mapDeps([35,1,2,3,4,36,9,10,11,19,28,29,30,37,38,6,7,39,40,41,42,43,44]))),"action-image-input":U(()=>T(()=>import(`./ConfigActionImageInput-P39gRfld.js`),__vite__mapDeps([45,1,2,3,4,28,29,10,30,31]))),"action-output":U(()=>T(()=>import(`./ConfigActionOutput-BIHvC1Z5.js`),__vite__mapDeps([46,1,2,3,4,28,29,10,30,43]))),"action-camera-control":U(()=>T(()=>import(`./ConfigActionCameraControl-94iyzBzJ.js`),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10,11,48]))),"condition-ifelse":U(()=>T(()=>import(`./ConfigConditionIfElse-DiIOUqA5.js`),__vite__mapDeps([49,1,2,3,4,28,29,10,30,50,51,52,53,17]))),"condition-switch":U(()=>T(()=>import(`./ConfigConditionSwitch-DWqcQ3Ip.js`),__vite__mapDeps([54,1,2,3,4,28,29,10,50,51,52,53,17]))),"condition-sensorstate":U(()=>T(()=>import(`./ConfigConditionSensorState-DBktbA8F.js`),__vite__mapDeps([55,1,2,3,4,5,6,7,8,9,10,11,56]))),"condition-time":U(()=>T(()=>import(`./ConfigConditionTime-BEaHclqa.js`),__vite__mapDeps([57,1,2,3,4,17])))},ot={class:`h-full overflow-y-auto flex flex-col`},st={class:`flex items-center gap-2 px-4 py-3 border-bottom-color`},ct={class:`flex-1 min-w-0`},lt={class:`text-sm font-semibold truncate text-color`},ut={class:`text-xs text-muted`},dt={class:`flex-1 overflow-y-auto`},ft={class:`text-color font-normal text-sm`},pt={class:`flex flex-col field-gap`},mt={class:`cui-input-hint`},ht={class:`text-color font-normal text-sm`},gt={class:`text-color font-normal text-sm`},_t={class:`flex flex-col gap-3`},vt={class:`flex flex-col field-gap`},yt={class:`cui-label`},bt={key:0,class:`flex flex-col field-gap`},xt={class:`cui-label`},St={class:`cui-input-hint`},Ct={key:1,class:`flex flex-col field-gap`},wt={class:`cui-label`},Tt={class:`p-4 border-top-color`},Et=D({__name:`CuiAutomationNodeConfig`,props:{node:{}},emits:[`close`,`update:data`,`delete`],setup(e,{emit:t}){let n=e,a=t,{t:o}=F(),s=y(()=>n.node.type?K(n.node.type):void 0),c=y(()=>n.node.type?.startsWith(`action-`)),l=y(()=>{if(n.node.type)return at[n.node.type]}),u=y(()=>{let e=[`config`];return c.value&&n.node.data.alias&&e.push(`alias`),s.value?.supportsRepeat&&n.node.data.repeat>1&&e.push(`repeat`),e});function d(e){a(`update:data`,e)}return(t,n)=>{let a=he,p=P,m=oe,g=I,v=se,y=B,x=H,C=V;return M(),r(`div`,ot,[_(`div`,st,[_(`div`,{class:`flex items-center justify-center w-8 h-8 rounded-md shrink-0`,style:j({backgroundColor:`${k(s)?.color}20`,color:k(s)?.color})},[(M(),b(i(k(s)?.icon),{class:`w-4 h-4`}))],4),_(`div`,ct,[_(`div`,lt,S(k(s)?k(o)(k(s).labelKey):e.node.type),1),_(`div`,ut,S(k(o)(`views.automation.node_config`)),1)]),w(p,{severity:`secondary`,text:``,rounded:``,class:`shrink-0 cui-icon-sm`,onClick:n[0]||=e=>t.$emit(`close`)},{icon:h(()=>[w(a,{width:`100%`,height:`100%`})]),_:1})]),_(`div`,dt,[w(C,{multiple:``,value:k(u),class:`w-[300px]`},{default:h(()=>[k(c)?(M(),b(y,{key:0,value:`alias`},{default:h(()=>[w(m,{class:`px-4 rounded-none!`},{default:h(()=>[_(`span`,ft,S(k(o)(`components.automation_nodes.alias`)),1)]),_:1}),w(v,{pt:{content:{class:`px-4 w-[300px]`}}},{default:h(()=>[_(`div`,pt,[w(g,{"model-value":e.node.data.alias??``,placeholder:k(o)(`components.automation_nodes.alias_placeholder`),"onUpdate:modelValue":n[1]||=e=>d({alias:e||void 0})},null,8,[`model-value`,`placeholder`]),_(`span`,mt,S(k(o)(`components.automation_nodes.alias_hint`)),1)])]),_:1})]),_:1})):f(``,!0),k(l)?(M(),b(y,{key:1,value:`config`},{default:h(()=>[w(m,{class:`px-4 rounded-none!`},{default:h(()=>[_(`span`,ht,S(k(o)(`views.automation.node_config`)),1)]),_:1}),w(v,{pt:{content:{class:`px-4 w-[300px]`}}},{default:h(()=>[_(`div`,null,[(M(),b(i(k(l)),{data:e.node.data,"node-id":e.node.id,"onUpdate:data":d},null,40,[`data`,`node-id`]))])]),_:1})]),_:1})):f(``,!0),k(s)?.supportsRepeat?(M(),b(y,{key:2,value:`repeat`},{default:h(()=>[w(m,{class:`px-4 rounded-none!`},{default:h(()=>[_(`span`,gt,S(k(o)(`components.automation_nodes.repeat`)),1)]),_:1}),w(v,{pt:{content:{class:`px-4 w-[300px]`}}},{default:h(()=>[_(`div`,_t,[_(`div`,vt,[_(`label`,yt,S(k(o)(`components.automation_nodes.repeat_count`)),1),w(x,{"model-value":e.node.data.repeat??1,min:1,max:1e5,class:`w-full`,"onUpdate:modelValue":n[2]||=e=>d({repeat:e})},null,8,[`model-value`])]),e.node.data.repeat>1?(M(),r(`div`,bt,[_(`label`,xt,S(k(o)(`components.automation_nodes.repeat_concurrency`)),1),w(x,{"model-value":e.node.data.repeatConcurrency??1,min:1,max:64,class:`w-full`,"onUpdate:modelValue":n[3]||=e=>d({repeatConcurrency:e})},null,8,[`model-value`]),_(`span`,St,S(k(o)(`components.automation_nodes.repeat_concurrency_hint`)),1)])):f(``,!0),e.node.data.repeat>1?(M(),r(`div`,Ct,[_(`label`,wt,S(k(o)(`components.automation_nodes.repeat_delay`)),1),w(x,{"model-value":e.node.data.repeatDelayMs??0,min:0,max:6e4,suffix:` ms`,class:`w-full`,"onUpdate:modelValue":n[4]||=e=>d({repeatDelayMs:e})},null,8,[`model-value`])])):f(``,!0)])]),_:1})]),_:1})):f(``,!0)]),_:1},8,[`value`])]),_(`div`,Tt,[w(p,{severity:`danger`,fluid:``,class:`w-full cui-button-medium`,label:k(o)(`views.automation.delete_node`),onClick:n[5]||=e=>t.$emit(`delete`)},null,8,[`label`])])])}}}),Dt={key:0,class:`text-xs font-semibold text-muted uppercase tracking-wider mb-3`},Ot={class:`text-xs font-medium text-muted mb-2`},kt={class:`flex flex-col gap-1.5`},At=[`draggable`,`onDragstart`,`onClick`],jt={class:`flex items-center gap-2.5 flex-1 min-w-0 px-3 py-2.5`},Mt={class:`flex-1 min-w-0`},Nt={class:`text-[13px] font-medium truncate text-color block leading-tight`},Pt={key:0,class:`text-[11px] text-muted block truncate mt-0.5 leading-tight`},Ft=z(D({__name:`CuiAutomationNodePalette`,props:O({mode:{}},pe),emits:[`node-click`],setup(e){let{t}=F(),n=[{key:`trigger`,labelKey:`components.automation_nodes.category_triggers`,nodes:G(`trigger`)},{key:`condition`,labelKey:`components.automation_nodes.category_conditions`,nodes:G(`condition`)},{key:`utility`,labelKey:`components.automation_nodes.category_utilities`,nodes:G(`utility`)},{key:`action`,labelKey:`components.automation_nodes.category_actions`,nodes:G(`action`)}];function a(e,t){e.dataTransfer&&(e.dataTransfer.setData(`application/automationnode`,t),e.dataTransfer.effectAllowed=`move`)}return(o,l)=>(M(),r(`div`,{class:x([`overflow-y-auto p-3`,e.mode===`drag`?`h-full`:``])},[e.mode===`drag`?(M(),r(`div`,Dt,S(k(t)(`views.automation.node_palette`)),1)):f(``,!0),(M(),r(c,null,s(n,n=>_(`div`,{key:n.key,class:`mb-4`},[_(`div`,Ot,S(k(t)(n.labelKey)),1),_(`div`,kt,[(M(!0),r(c,null,s(n.nodes,n=>(M(),r(`div`,{key:n.type,class:x([`automation-palette-node`,e.mode===`drag`?`cursor-grab active:cursor-grabbing`:`cursor-pointer`]),draggable:e.mode===`drag`,onDragstart:t=>e.mode===`drag`?a(t,n.type):void 0,onClick:t=>e.mode===`click`?o.$emit(`node-click`,n.type):void 0},[_(`div`,{class:`automation-palette-node__accent`,style:j({backgroundColor:n.color})},null,4),_(`div`,jt,[_(`div`,{class:`flex items-center justify-center w-8 h-8 rounded-lg shrink-0`,style:j({backgroundColor:`${n.color}15`,color:n.color})},[(M(),b(i(n.icon),{class:`w-4.5 h-4.5`}))],4),_(`div`,Mt,[_(`span`,Nt,S(k(t)(n.labelKey)),1),e.mode===`click`?(M(),r(`span`,Pt,S(k(t)(n.descriptionKey)),1)):f(``,!0)])])],42,At))),128))])])),64))],2))}}),[[`__scopeId`,`data-v-08caad7f`]]),It={class:`flex items-center gap-2 px-3 py-2 border-bottom-color card-background min-h-[48px]`},Lt=D({__name:`CuiAutomationToolbar`,props:{flow:{}},emits:[`update:name`,`toggle-enabled`,`toggle-suppress-duplicates`,`toggle-single-execution`],setup(e,{emit:t}){let n=e,i=t,{t:a}=F(),{smBreakpoint:o}=re(),s=u(`menuRef`),c=y(()=>[{key:`suppressDuplicates`,label:a(`views.automation.suppress_duplicates`),description:a(`views.automation.suppress_duplicates_hint`),toggle:!0,toggleState:n.flow.suppressDuplicates,onClick:()=>i(`toggle-suppress-duplicates`)},{key:`singleExecution`,label:a(`views.automation.single_execution`),description:a(`views.automation.single_execution_hint`),toggle:!0,toggleState:n.flow.singleExecution,onClick:()=>i(`toggle-single-execution`)}]);return(t,n)=>{let i=_e,l=P,u=I,d=ae,p=we,m=le;return M(),r(`div`,It,[k(o)?f(``,!0):(M(),b(l,{key:0,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:n[0]||=e=>t.$router.push(`/automations`)},{icon:h(()=>[w(i,{width:`100%`,height:`100%`})]),_:1})),w(u,{"model-value":e.flow.name,class:x([`font-medium text-sm min-w-0 flex-1`,{"max-w-[300px]":!k(o)}]),placeholder:k(a)(`views.automations.flow_name_placeholder`),"onUpdate:modelValue":n[1]||=e=>t.$emit(`update:name`,String(e??``))},null,8,[`model-value`,`class`,`placeholder`]),n[4]||=_(`div`,{class:`flex-1`},null,-1),w(d,{"model-value":e.flow.enabled,class:`shrink-0`,"onUpdate:modelValue":n[2]||=e=>t.$emit(`toggle-enabled`)},null,8,[`model-value`]),w(l,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:n[3]||=e=>k(s)?.toggleMenu(e)},{icon:h(()=>[w(p,{width:`100%`,height:`100%`})]),_:1}),w(m,{ref_key:`menuRef`,ref:s,items:k(c),"auto-hide":!1,popover:{pt:{root:{class:`w-[18rem]`},content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}}),Rt={class:`flex flex-col gap-4 w-full`},zt={key:1,class:`text-sm text-muted`},Bt=D({__name:`CuiAutomationMobileNodeConfig`,props:{node:{}},setup(e,{expose:t}){let n=e,{t:a}=F(),o=W(),s=y(()=>{if(n.node.type)return at[n.node.type]});function c(e){if(!o.draft)return;let t=o.draft.nodes.find(e=>e.id===n.node.id);t?.data&&Object.assign(t.data,e)}return t({onConfirm:async()=>{if(o.draft){let e=n.node.id;o.draft.nodes=o.draft.nodes.filter(t=>t.id!==e),o.draft.edges=o.draft.edges.filter(t=>t.source!==e&&t.target!==e)}}}),(t,n)=>(M(),r(`div`,Rt,[k(s)?(M(),b(i(k(s)),{key:0,data:e.node.data,"node-id":e.node.id,"onUpdate:data":c},null,40,[`data`,`node-id`])):(M(),r(`div`,zt,S(k(a)(`views.automation.no_node_selected`)),1))]))}}),Vt={class:`h-full w-full relative overflow-hidden flex flex-col`},Ht={class:`flex flex-1 min-h-0`},Ut={class:`relative w-6 h-6`},Wt={key:1,class:`flex flex-1 items-center justify-center`},Gt={key:2,class:`flex flex-1 items-center justify-center`},Kt={class:`text-muted`},qt=D({__name:`Automation`,setup(a){let o=new me,s=ee(),m=te(),{t:g}=F(),{smBreakpoint:v}=re(),{bottombarHeight:T}=ne(),E=de(),D=e(),O=W(),A=u(`canvasRef`),I=n(!1),L=n(!1),R=n(!1),z=n(!1),B=y(()=>s.params.id),V=y(()=>B.value===`new`),{data:ae,isBusy:oe}=o.getAutomationQuery(B),{mutateAsync:H}=o.createAutomationQuery(),{mutateAsync:se}=o.patchAutomationQuery(),{mutateAsync:le}=o.deleteAutomationQuery(),{mutateAsync:U}=o.triggerAutomationQuery(),pe=()=>{R.value=A.value?.canUndo??!1,z.value=A.value?.canRedo??!1},G=y({get:()=>O.draft,set:e=>{O.draft=e}}),he=()=>{G.value={_id:t(12),name:g(`views.automation.untitled`),enabled:!1,nodes:[],edges:[],suppressDuplicates:!1,singleExecution:!1,createdAt:Date.now(),updatedAt:Date.now()},O.selectedNodeId=null};p(B,e=>{O.activeFlowId=e===`new`?null:e??null,O.selectedNodeId=null,O.lastOutput=null,L.value=!1,e===`new`?he():G.value=null},{immediate:!0}),p(ae,e=>{e&&!L.value&&(G.value=JSON.parse(JSON.stringify(e)))},{immediate:!0});let q=()=>{L.value=!0,pe()},J=y(()=>{if(!(!G.value||!O.selectedNodeId))return G.value.nodes.find(e=>e.id===O.selectedNodeId)}),be=y(()=>{if(!(v.value||!J.value))return`calc(300px + 1.25rem + env(safe-area-inset-right, 0px))`}),xe=y(()=>[...G.value?.nodes.some(e=>e.type===`trigger-manual`)??!1?[{label:g(`views.automation.run`),icon:ue,buttonProps:{disabled:V.value||L.value},command:()=>je()}]:[],{label:g(`views.automation.undo`),icon:ze,buttonProps:{disabled:!R.value},command:()=>{A.value?.undo(),q()}},{label:g(`views.automation.redo`),icon:Ae,buttonProps:{disabled:!z.value},command:()=>{A.value?.redo(),q()}},{label:g(`views.automation.export_blueprint`),icon:Ie,command:()=>Me()},{label:g(`views.automation.clear`),icon:De,command:()=>Pe()},{label:g(`views.automations.delete`),icon:ve,buttonProps:{severity:`danger`},command:()=>Fe()}]),Y=()=>{Te(),q()},X=e=>{G.value&&(G.value.name=e,q())},Se=(e,t)=>{if(!G.value)return;let n=G.value.nodes.find(t=>t.id===e);if(n&&n.data){if(!Object.entries(t).some(([e,t])=>n.data[e]!==t))return;Object.assign(n.data,t),A.value?.updateNodeData(e,{...n.data}),q()}},Ce=()=>{if(!G.value)return{};let e=A.value?.getNodes?.()??G.value.nodes,t=A.value?.getEdges?.()??G.value.edges;return{name:G.value.name,enabled:G.value.enabled,suppressDuplicates:G.value.suppressDuplicates,singleExecution:G.value.singleExecution,nodes:e.map(e=>({id:e.id,type:e.type??``,position:e.position,data:e.data??{}})),edges:t.map(e=>({id:e.id,source:e.source,target:e.target,sourceHandle:e.sourceHandle??void 0,targetHandle:e.targetHandle??void 0}))}},we=async()=>{if(!G.value)return;let e=Ce();try{if(V.value){let t=await H({data:e});L.value=!1,m.replace(`/automations/${t._id}`)}else{let t=await se({id:G.value._id,data:e});if(L.value=!1,t?.nodes&&G.value)for(let e of t.nodes){let t=G.value.nodes.find(t=>t.id===e.id);t?.data&&e.data&&Object.assign(t.data,e.data)}D.add({severity:`success`,detail:g(`views.automation.saved`),life:3e3})}}catch{D.add({severity:`error`,detail:g(`views.automation.save_failed`),life:3e3})}},Te=()=>{if(!G.value)return;let e=A.value?.getNodes(),t=A.value?.getEdges();e&&(G.value.nodes=e),t&&(G.value.edges=t)},Ee=e=>{if(O.selectedNodeId=e,v.value&&e){Te();let t=G.value?.nodes.find(t=>t.id===e);if(!t)return;let n=t.type?K(t.type):void 0,r=n?g(n.labelKey):`Node`,i=t.id;E.openComponentDialog(Bt,{data:{title:r,confirmText:g(`views.automation.delete_node`),confirmButtonProps:{severity:`danger`},contentProps:{node:{id:t.id,type:t.type,data:t.data}}},onSettled:()=>{G.value?.nodes.some(e=>e.id===i)||(A.value?.removeNode(i),q())}})}},Oe=e=>{I.value=!1,A.value?.addNodeAtCenter(e),q()},ke=()=>{O.selectedNodeId&&(A.value?.removeNode(O.selectedNodeId),G.value&&(G.value.nodes=G.value.nodes.filter(e=>e.id!==O.selectedNodeId),G.value.edges=G.value.edges.filter(e=>e.source!==O.selectedNodeId&&e.target!==O.selectedNodeId)),O.selectedNodeId=null,O.lastOutput=null,q())},je=async()=>{if(!(!G.value||V.value))try{O.lastOutput=null;let e=await U({id:G.value._id});e?.output&&Object.keys(e.output).length>0&&(O.lastOutput=e.output),D.add({severity:`success`,detail:g(`views.automation.triggered`),life:3e3})}catch{D.add({severity:`error`,detail:g(`views.automation.trigger_failed`),life:3e3})}},Me=()=>{if(!G.value)return;we();let e={version:1,name:G.value.name,nodes:G.value.nodes,edges:G.value.edges},t=JSON.stringify(e,null,2),n=new Blob([t],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`${G.value.name.replace(/\s+/g,`_`).toLowerCase()}.blueprint.json`,i.click(),URL.revokeObjectURL(r)},Pe=()=>{E.openTextDialog({data:{title:g(`views.automation.clear`),contentText:g(`views.automation.clear_confirm`),confirmText:g(`views.automation.clear`)},onConfirm:async()=>{A.value?.clearAll(),G.value&&(G.value.nodes=[],G.value.edges=[]),O.selectedNodeId=null,q()}})},Fe=()=>{if(!G.value)return;let e=G.value._id;E.openTextDialog({data:{title:g(`views.automations.delete`),contentText:g(`views.automations.delete_confirm`),confirmText:g(`views.automations.delete`)},onConfirm:async()=>{await le({id:e}),m.push(`/automations`)}})},Le=()=>{L.value?E.openTextDialog({data:{title:g(`views.automation.unsaved_title`),contentText:g(`views.automation.unsaved_message`),confirmText:g(`views.automation.discard`)},onConfirm:async()=>{m.push(`/automations`)}}):m.push(`/automations`)};return(e,t)=>{let n=_e,a=P,o=fe,s=ce,u=ge,p=N,m=ie;return M(),r(`div`,Vt,[w(o,{position:`left`},{default:h(()=>[w(a,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:Le},{icon:h(()=>[w(n,{class:`w-6 h-6`})]),_:1})]),_:1}),k(G)?(M(),r(c,{key:0},[w(Lt,{flow:k(G),"onUpdate:name":X,onToggleEnabled:t[0]||=e=>{k(G).enabled=!k(G).enabled,q()},onToggleSuppressDuplicates:t[1]||=e=>{k(G).suppressDuplicates=!k(G).suppressDuplicates,q()},onToggleSingleExecution:t[2]||=e=>{k(G).singleExecution=!k(G).singleExecution,q()}},null,8,[`flow`]),_(`div`,Ht,[k(v)?f(``,!0):(M(),b(Ft,{key:0,class:`w-[240px] shrink-0`})),w(it,{ref_key:`canvasRef`,ref:A,flow:k(G),mobile:k(v),class:`flex-1 min-w-0`,onNodeSelect:Ee,onChange:Y},null,8,[`flow`,`mobile`]),k(v)?f(``,!0):(M(),r(`div`,{key:1,class:`shrink-0 overflow-hidden transition-[width] duration-200 ease-in-out`,style:j({width:k(J)?`300px`:`0px`})},[k(J)?(M(),b(Et,{key:0,node:k(J),class:`w-[300px]`,onClose:t[3]||=e=>k(O).selectedNodeId=null,"onUpdate:data":t[4]||=e=>Se(k(O).selectedNodeId,e),onDelete:ke},null,8,[`node`])):f(``,!0)],4))]),w(s,{model:k(xe),direction:`up`,"transition-delay":80,"tooltip-options":{position:`left`,event:void 0},style:j({position:`fixed`,zIndex:15,bottom:`calc(${k(T)}px + ${k(L)?`4.25rem`:`1.25rem`} + env(safe-area-inset-bottom, 0px))`,right:k(be)||`calc(1.25rem + env(safe-area-inset-right, 0px))`,transition:`right 0.2s ease-in-out, bottom 0.2s ease-in-out`}),pt:{root:{style:`pointer-events: none`}}},{button:h(({visible:e,toggleCallback:t})=>[w(a,{rounded:``,severity:`secondary`,class:`pointer-events-auto`,onClick:t},{icon:h(()=>[_(`div`,Ut,[_(`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),_(`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),_(`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,[`onClick`])]),item:h(({item:e,toggleCallback:t})=>[l((M(),b(a,C({severity:`secondary`},e.buttonProps,{rounded:``,class:`pointer-events-auto`,onClick:t}),{icon:h(()=>[(M(),b(i(e.icon)))]),_:2},1040,[`onClick`])),[[m,{value:e.label}]])]),_:1},8,[`model`,`style`]),k(v)?l((M(),b(a,{key:0,rounded:``,class:`pointer-events-auto text-white`,style:j({position:`fixed`,zIndex:15,bottom:`calc(${k(T)}px + 1.25rem + env(safe-area-inset-bottom, 0px))`,right:`calc(4.75rem + env(safe-area-inset-right, 0px))`}),onClick:t[5]||=e=>I.value=!0},{icon:h(()=>[w(k(ye),{class:`w-5 h-5`})]),_:1},8,[`style`])),[[m,{value:k(g)(`views.automation.add_step`)}]]):f(``,!0),k(L)?l((M(),b(a,{key:1,rounded:``,severity:`success`,class:`pointer-events-auto text-white`,style:j({position:`fixed`,zIndex:15,bottom:`calc(${k(T)}px + 1.25rem + env(safe-area-inset-bottom, 0px))`,right:k(be)||`calc(1.25rem + env(safe-area-inset-right, 0px))`,transition:`right 0.2s ease-in-out`}),onClick:we},{icon:h(()=>[w(k(Ne),{class:`w-5 h-5`})]),_:1},8,[`style`])),[[m,{value:k(g)(`views.automation.save`)}]]):f(``,!0),w(u,{modelValue:k(I),"onUpdate:modelValue":t[6]||=e=>d(I)?I.value=e:null,title:k(g)(`views.automation.add_step`),"max-height":`70vh`},{default:h(()=>[w(Ft,{mode:`click`,onNodeClick:Oe})]),_:1},8,[`modelValue`,`title`])],64)):k(oe)?(M(),r(`div`,Wt,[w(p,{class:`!w-8 !h-8`,strokeWidth:`4`})])):(M(),r(`div`,Gt,[_(`span`,Kt,S(k(g)(`views.automations.no_automations`)),1)]))])}}});export{qt as default};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ConfigTriggerDetection-CRnZR91p.js","assets/vendor-DmhYd_sB.js","assets/rolldown-runtime-CMxvf4Kt.js","assets/vendor-cameraui-DggYb17u.js","assets/vendor-primevue--pcuf6kA.js","assets/useCameraOptions-0w0LNh72.js","assets/types-kxdn9XBW.js","assets/vendor-zod-CmGeQCqy.js","assets/cameras-DQ28quQb.js","assets/api-BaywoTCE.js","assets/vendor-core-B6F-imJj.js","assets/api-Cna9Poda.css","assets/ConfigTriggerSensor-DR6ifBrK.js","assets/ConfigTriggerSchedule-CqID85d1.js","assets/ConfigTriggerWebhook-Cmwu5IU4.js","assets/CuiActionButton-Ba5wT-4n.js","assets/copy-BeuZDsJN.js","assets/information-outline-fu18_QSH.js","assets/ConfigTriggerSystem-K1ohOW18.js","assets/plugins-DzRwEcA4.js","assets/ConfigTriggerManual-V8-5hrdl.js","assets/ConfigTriggerGeofence-DODdJBZW.js","assets/vendor-leaflet-B5L2Aw8Y.js","assets/vendor-leaflet-vh-t_kPv.css","assets/ConfigActionSnapshot-C5enxVcl.js","assets/ConfigActionSensor-BBkfWT_r.js","assets/ConfigActionNotification-CuDDnksK.js","assets/notifications-DNRzOl89.js","assets/VariableInput-D_-qKfZK.js","assets/automations-Bj3wF0wR.js","assets/VariableSuggestions-Br4yDsLZ.js","assets/upload-Chr4Uunq.js","assets/ConfigActionHttp-BbfN1UGF.js","assets/ConfigActionDelay-DKhE0Xr8.js","assets/ConfigActionVariable-CVaOMoOi.js","assets/ConfigActionPlugin-BVd0FkX6.js","assets/automations-C6ssihoC.js","assets/CuiSchema-B0M5qZi-.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/CuiImage-60jwFIqc.js","assets/CuiImage-Bxf7z2N4.css","assets/theme-D08Upl8q.js","assets/check-BQQidcYi.js","assets/close-WdhW_91X.js","assets/CuiSchema--yMBD996.css","assets/ConfigActionImageInput-P39gRfld.js","assets/ConfigActionOutput-BIHvC1Z5.js","assets/ConfigActionCameraControl-94iyzBzJ.js","assets/types-BxFyoO54.js","assets/ConfigConditionIfElse-DiIOUqA5.js","assets/nodeDefinitions-BLSMZueH.js","assets/bell-outline-JZZKpcfS.js","assets/lightbulb-outline-DWc53kV7.js","assets/alert-outline-D3FCIX7_.js","assets/ConfigConditionSwitch-DWqcQ3Ip.js","assets/ConfigConditionSensorState-DBktbA8F.js","assets/close-Dhjo4o57.js","assets/ConfigConditionTime-BEaHclqa.js"])))=>i.map(i=>d[i]);
2
+ import{S as e,l as t}from"./api-BaywoTCE.js";import{$n as n,$t as r,An as i,Cn as a,Dn as o,En as s,Gt as c,Hn as l,In as u,Jn as d,Qt as f,Rn as p,Sn as m,Vn as h,Wt as g,Xt as _,Yn as v,Yt as y,Zt as b,cr as x,dr as S,hn as C,in as w,kt as T,nr as E,on as D,pn as O,sr as k,tn as A,ur as j,wn as M}from"./vendor-DmhYd_sB.js";import{Bn as N,Vn as P,di as F,et as I,st as L}from"./vendor-cameraui-DggYb17u.js";import{c as ee,f as R,l as te}from"./vendor-core-B6F-imJj.js";import{t as z}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as ne,t as re}from"./useSharedComposables-riqEUgwX.js";import{D as B,E as V,J as ie,K as ae,O as oe,g as H,k as se,o as ce}from"./vendor-primevue--pcuf6kA.js";import{t as le}from"./CuiMenu-B4CHT2F_.js";import{t as ue}from"./play-solid-B_749j1A.js";import{n as U,t as de}from"./useCuiDialog-BbkaNkQN.js";import{t as fe}from"./CuiTopbarSlot-BDZoZ_yn.js";import{r as pe}from"./types-BxFyoO54.js";import{t as W}from"./automations-Bj3wF0wR.js";import{t as me}from"./automations-C6ssihoC.js";import{n as G,t as K}from"./nodeDefinitions-BLSMZueH.js";import{t as he}from"./close-Dhjo4o57.js";import{t as ge}from"./CuiBottomSheet-CHspaYgP.js";import{t as _e}from"./back-filled-CvLD0CND.js";import{t as ve}from"./trash-can-YTXLzAmt.js";import{t as ye}from"./plus-Dis0MPt8.js";import{a as q,c as J,i as be,n as xe,o as Y,r as X,s as Se,t as Ce}from"./vendor-vueflow-CBuKPASC.js";import{t as we}from"./settings-D2-mWioF.js";var Te={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function Ee(e,t){return M(),r(`svg`,Te,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`M26 20h-6v-2h6zm4 8h-6v-2h6zm-2-4h-6v-2h6z`},null,-1),_(`path`,{fill:`currentColor`,d:`M17.003 20a4.9 4.9 0 0 0-2.404-4.173L22 3l-1.73-1l-7.577 13.126a5.7 5.7 0 0 0-5.243 1.503C3.706 20.24 3.996 28.682 4.01 29.04a1 1 0 0 0 1 .96h14.991a1 1 0 0 0 .6-1.8c-3.54-2.656-3.598-8.146-3.598-8.2m-5.073-3.003A3.11 3.11 0 0 1 15.004 20c0 .038.002.208.017.469l-5.9-2.624a3.8 3.8 0 0 1 2.809-.848M15.45 28A5.2 5.2 0 0 1 14 25h-2a6.5 6.5 0 0 0 .968 3h-2.223A16.6 16.6 0 0 1 10 24H8a17.3 17.3 0 0 0 .665 4H6c.031-1.836.29-5.892 1.803-8.553l7.533 3.35A13 13 0 0 0 17.596 28Z`},null,-1)]])}var De=v({name:`carbon-clean`,render:Ee}),Oe={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function ke(e,t){return M(),r(`svg`,Oe,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`M12 10h12.185l-3.587-3.586L22 5l6 6l-6 6l-1.402-1.415L24.182 12H12a6 6 0 0 0 0 12h8v2h-8a8 8 0 0 1 0-16`},null,-1)]])}var Ae=v({name:`carbon-redo`,render:ke}),je={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function Me(e,t){return M(),r(`svg`,je,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`m27.71 9.29l-5-5A1 1 0 0 0 22 4H6a2 2 0 0 0-2 2v20a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2V10a1 1 0 0 0-.29-.71M12 6h8v4h-8Zm8 20h-8v-8h8Zm2 0v-8a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v8H6V6h4v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V6.41l4 4V26Z`},null,-1)]])}var Ne=v({name:`carbon-save`,render:Me}),Pe={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function Fe(e,t){return M(),r(`svg`,Pe,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`M23 20a5 5 0 0 0-3.89 1.89l-7.31-4.57a4.46 4.46 0 0 0 0-2.64l7.31-4.57A5 5 0 1 0 18 7a4.8 4.8 0 0 0 .2 1.32l-7.31 4.57a5 5 0 1 0 0 6.22l7.31 4.57A4.8 4.8 0 0 0 18 25a5 5 0 1 0 5-5m0-16a3 3 0 1 1-3 3a3 3 0 0 1 3-3M7 19a3 3 0 1 1 3-3a3 3 0 0 1-3 3m16 9a3 3 0 1 1 3-3a3 3 0 0 1-3 3`},null,-1)]])}var Ie=v({name:`carbon-share`,render:Fe}),Le={viewBox:`0 0 32 32`,width:`1.2em`,height:`1.2em`};function Re(e,t){return M(),r(`svg`,Le,[...t[0]||=[_(`path`,{fill:`currentColor`,d:`M20 10H7.815l3.587-3.586L10 5l-6 6l6 6l1.402-1.415L7.818 12H20a6 6 0 0 1 0 12h-8v2h8a8 8 0 0 0 0-16`},null,-1)]])}var ze=v({name:`carbon-undo`,render:Re}),Be=[`id`,`d`],Ve=24,He=D({__name:`DeletableEdge`,props:{id:{},sourceNode:{},targetNode:{},source:{},target:{},type:{},label:{type:[String,Object,Function]},style:{},selected:{type:Boolean},sourcePosition:{},targetPosition:{},sourceHandleId:{},targetHandleId:{},animated:{type:Boolean},updatable:{type:Boolean},markerStart:{},markerEnd:{},curvature:{},interactionWidth:{},data:{},events:{},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{},sourceX:{},sourceY:{},targetX:{},targetY:{}},setup(e){let t=e,{removeEdges:n}=J(),i=y(()=>Se({sourceX:t.sourceX,sourceY:t.sourceY,sourcePosition:t.sourcePosition,targetX:t.targetX,targetY:t.targetY,targetPosition:t.targetPosition})),a=y(()=>i.value[0]),o=y(()=>i.value[1]),s=y(()=>i.value[2]),l=y(()=>{let e=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);return e.setAttribute(`d`,a.value),e.getTotalLength()}),u=y(()=>{let e=l.value;if(e<=0)return{stroke:`var(--text-muted-color)`,strokeWidth:2,fill:`none`};let t=e/2,n=Ve/2;return{stroke:`var(--text-muted-color)`,strokeWidth:2,fill:`none`,strokeDasharray:`${Math.max(0,t-n)} ${Ve} ${Math.max(0,e-t-n)}`}});function d(){n([t.id])}return(t,n)=>{let i=he;return M(),r(c,null,[_(`path`,{id:e.id,d:k(a),style:j(k(u)),class:`vue-flow__edge-path`},null,12,Be),w(k(q),null,{default:h(()=>[_(`div`,{class:`automation-edge-button nodrag nopan`,style:j({pointerEvents:`all`,position:`absolute`,transform:`translate(-50%, -50%) translate(${k(o)}px, ${k(s)}px)`})},[_(`button`,{class:`automation-edge-delete`,onClick:g(d,[`stop`])},[w(i,{class:`w-3 h-3`})])],4)]),_:1})],64)}}}),Ue={maxInputs:1/0},We={class:`flex items-center gap-2 px-3 py-2.5`},Ge={class:`flex-1 min-w-0`},Ke={class:`text-xs font-semibold truncate text-color`},qe={key:0,class:`text-[10px] text-muted truncate mt-0.5`},Je=z(D({__name:`BaseNode`,props:O({icon:{},label:{},subtitle:{},color:{},selected:{type:Boolean},showInput:{type:Boolean},showOutput:{type:Boolean},maxInputs:{}},Ue),setup(e){let t={backgroundColor:`var(--text-muted-color)`,borderColor:`var(--card-background)`};return(n,a)=>(M(),r(`div`,{class:x([`automation-node card-background rounded-lg border-2 shadow-lg min-w-[180px] max-w-[220px] select-none`,{"ring-2 ring-primary":e.selected}]),style:j({borderColor:e.color})},[_(`div`,We,[_(`div`,{class:`flex items-center justify-center w-8 h-8 rounded-md shrink-0`,style:j({backgroundColor:`${e.color}20`,color:e.color})},[(M(),b(i(e.icon),{class:`w-4.5 h-4.5`}))],4),_(`div`,Ge,[_(`div`,Ke,S(e.label),1),e.subtitle?(M(),r(`div`,qe,S(e.subtitle),1)):f(``,!0)])]),e.showInput?(M(),b(k(Y),{key:0,type:`target`,position:k(X).Top,connectable:e.maxInputs,class:`!w-3 !h-3 !border-2`,style:t},null,8,[`position`,`connectable`])):f(``,!0),o(n.$slots,`handles`,{},()=>[e.showOutput?(M(),b(k(Y),{key:0,type:`source`,position:k(X).Bottom,class:`!w-3 !h-3 !border-2`,style:t},null,8,[`position`])):f(``,!0)],!0)],6))}}),[[`__scopeId`,`data-v-26c7ae33`]]),Ye={class:`text-muted font-medium truncate`},Xe={class:`text-color font-semibold text-right`},Z=D({__name:`ActionNode`,props:{id:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,Number,String,Function]},position:{},dimensions:{},label:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},parentNodeId:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},targetPosition:{},sourcePosition:{},dragHandle:{},data:{},events:{}},setup(e){let t=e,{t:n}=F(),{lastOutput:i}=R(W()),a=y(()=>K(t.type)),o=y(()=>a.value?n(a.value.labelKey):t.type),l=y(()=>{let e=t.data,n=e.alias,r;return e.type===`action-delay`?r=`${e.duration} ${e.unit}`:e.type===`action-notification`&&e.title?r=e.title:e.type===`action-http`&&e.url?r=`${e.method} ${e.url}`:e.type===`action-plugin`&&e.repeat&&e.repeat>1&&(r=`${e.repeat}x`),n&&r?`[${n}] ${r}`:n?`[${n}]`:r}),u=y(()=>t.type!==`action-output`||!i.value?[]:Object.entries(i.value));return(t,n)=>{let i=L;return M(),r(`div`,null,[w(Je,{icon:k(a).icon,label:k(o),subtitle:k(l),color:k(a)?.color??`#3b82f6`,selected:e.selected,"show-input":!0,"show-output":!0},null,8,[`icon`,`label`,`subtitle`,`color`,`selected`]),e.type===`action-output`&&k(u).length?(M(),b(i,{key:0,class:`cui-card mt-1`,pt:{body:{class:`p-0`}},style:{"min-width":`180px`}},{content:h(()=>[(M(!0),r(c,null,s(k(u),(e,t)=>(M(),r(`div`,{key:t,class:x([`flex justify-between gap-3 px-3 py-1.5 text-[11px]`,{"border-t border-surface-100 dark:border-surface-800":t>0}])},[_(`span`,Ye,S(e[0]),1),_(`span`,Xe,S(e[1]),1)],2))),128))]),_:1})):f(``,!0)])}}}),Q=D({__name:`ConditionNode`,props:{id:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,Number,String,Function]},position:{},dimensions:{},label:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},parentNodeId:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},targetPosition:{},sourcePosition:{},dragHandle:{},data:{},events:{}},setup(e){let t=e,{t:n}=F(),r={borderColor:`var(--card-background)`},i=y(()=>K(t.type)),a=y(()=>i.value?n(i.value.labelKey):t.type),o=y(()=>{let e=t.data;if(e.type===`condition-ifelse`&&e.leftOperand&&e.operator)return`${e.leftOperand} ${e.operator} ${e.rightOperand}`});return(t,n)=>(M(),b(Je,{icon:k(i).icon,label:k(a),subtitle:k(o),color:k(i)?.color??`#f59e0b`,selected:e.selected,"show-input":!0,"show-output":!1,"max-inputs":1},{handles:h(()=>[w(k(Y),{type:`source`,position:k(X).Bottom,id:`true`,class:`!w-3 !h-3 !border-2`,style:j({...r,backgroundColor:`var(--text-success-color)`,left:`30%`})},null,8,[`position`,`style`]),w(k(Y),{type:`source`,position:k(X).Bottom,id:`false`,class:`!w-3 !h-3 !border-2`,style:j({...r,backgroundColor:`var(--text-danger-color)`,left:`70%`})},null,8,[`position`,`style`])]),_:1},8,[`icon`,`label`,`subtitle`,`color`,`selected`]))}}),$=D({__name:`TriggerNode`,props:{id:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,Number,String,Function]},position:{},dimensions:{},label:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},parentNodeId:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},targetPosition:{},sourcePosition:{},dragHandle:{},data:{},events:{}},setup(e){let t=e,{t:n}=F(),r=y(()=>K(t.type)),i=y(()=>r.value?n(r.value.labelKey):t.type),a=y(()=>{let e=t.data;if(e.type===`trigger-detection`&&e.cameraId)return e.cameraId;if(e.type===`trigger-schedule`&&e.cron)return e.cron});return(t,n)=>(M(),b(Je,{icon:k(r).icon,label:k(i),subtitle:k(a),color:k(r)?.color??`#22c55e`,selected:e.selected,"show-input":!1,"show-output":!0},null,8,[`icon`,`label`,`subtitle`,`color`,`selected`]))}}),Ze=50;function Qe(){let e=E([]),t=E([]);function n(e,t){return JSON.stringify({nodes:e,edges:t})}function r(e){return JSON.parse(e)}function i(r,i){let a=[...e.value,n(r,i)];a.length>Ze&&a.shift(),e.value=a,t.value=[]}function a(i,a){let o=[...e.value],s=o.pop();if(s)return e.value=o,t.value=[...t.value,n(i,a)],r(s)}function o(i,a){let o=[...t.value],s=o.pop();if(s)return t.value=o,e.value=[...e.value,n(i,a)],r(s)}function s(){e.value=[],t.value=[]}return{push:i,undo:a,redo:o,clear:s,canUndo:y(()=>e.value.length>0),canRedo:y(()=>t.value.length>0)}}var $e=[`cameraId`,`sensorType`,`sensorName`,`sensorPluginId`,`property`];function et(e,t){if(!e||!t)return null;let n={},r=e,i=t;for(let e of $e)r[e]&&e in i&&!i[e]&&(n[e]=r[e]);return Object.keys(n).length>0?n:null}function tt(e){return e.type===`trigger-webhook`&&!e.webhookId?{...e,webhookId:crypto.randomUUID()}:e.type===`trigger-geofence`&&!e.geofenceId?{...e,geofenceId:crypto.randomUUID()}:e}var nt={class:`absolute inset-0 flex items-center justify-center pointer-events-none`},rt={class:`text-muted text-sm`},it=D({__name:`CuiAutomationCanvas`,props:{flow:{},mobile:{type:Boolean}},emits:[`node-select`,`change`],setup(e,{expose:i,emit:o}){let s=e,c=o,{t:l}=F(),{smBreakpoint:u}=re(),{screenToFlowCoordinate:f,getViewport:y,dimensions:b}=J(),C=Qe(),T={"trigger-detection":v($),"trigger-sensor":v($),"trigger-schedule":v($),"trigger-webhook":v($),"trigger-system":v($),"trigger-manual":v($),"trigger-geofence":v($),"condition-ifelse":v(Q),"condition-switch":v(Q),"condition-sensorstate":v(Q),"condition-time":v(Q),"action-snapshot":v(Z),"action-sensor":v(Z),"action-notification":v(Z),"action-http":v(Z),"action-delay":v(Z),"action-variable":v(Z),"action-plugin":v(Z),"action-camera-control":v(Z),"action-image-input":v(Z),"action-output":v(Z)},E={default:v(He)},D=n([...s.flow.nodes]),O=n([...s.flow.edges]);function j(){C.push(D.value,O.value)}function N(){let e=C.undo(D.value,O.value);e&&(D.value=e.nodes,O.value=e.edges,c(`node-select`,null),c(`change`))}function P(){let e=C.redo(D.value,O.value);e&&(D.value=e.nodes,O.value=e.edges,c(`node-select`,null),c(`change`))}function I(e){c(`node-select`,e.node.id)}function L(){c(`node-select`,null)}function ee(e){let t=D.value.find(t=>t.id===e.source),n=D.value.find(t=>t.id===e.target);return!(!t||!n||e.source===e.target||n.type?.startsWith(`trigger-`))}function R(e){if(!ee(e))return;j();let t=e.targetHandle??void 0,n=D.value.find(t=>t.id===e.target);if(n?.type?.startsWith(`condition-`)){let n=O.value.find(n=>n.target===e.target&&(n.targetHandle??void 0)===t);n&&(O.value=O.value.filter(e=>e.id!==n.id))}let r={id:`e-${e.source}-${e.target}`,source:e.source,target:e.target,sourceHandle:e.sourceHandle??void 0,targetHandle:t};O.value.push(r);let i=et(D.value.find(t=>t.id===e.source)?.data,n?.data);i&&n?.data&&Object.assign(n.data,i),c(`change`)}function te(e){e.some(e=>e.type===`remove`)&&(j(),c(`node-select`,null),c(`change`))}function z(e){let n=e.dataTransfer?.getData(`application/automationnode`);if(!n)return;let r=K(n);if(!r)return;j();let i=f({x:e.clientX,y:e.clientY}),a={id:t(12),type:n,position:i,data:tt({...r.defaults})};D.value=[...D.value,a],c(`change`)}function ne(e){let n=K(e);if(!n)return;j();let{x:r,y:i,zoom:a}=y(),{width:o,height:s}=b.value,l=(-r+o/2)/a,u=(-i+s/2)/a,d=()=>(Math.random()-.5)*80,f={id:t(12),type:e,position:{x:l+d(),y:u+d()},data:tt({...n.defaults})};return D.value=[...D.value,f],c(`change`),f}function B(e){j(),D.value=D.value.filter(t=>t.id!==e),O.value=O.value.filter(t=>t.source!==e&&t.target!==e),c(`change`)}function V(){j(),D.value=[],O.value=[],c(`change`)}function ie(){return[...D.value]}function ae(){return[...O.value]}function oe(e,t){let n=D.value.find(t=>t.id===e);n&&(n.data=t)}function H(e){let t=e.metaKey||e.ctrlKey;t&&e.key===`z`&&!e.shiftKey?(e.preventDefault(),N()):(t&&e.key===`z`&&e.shiftKey||t&&e.key===`y`)&&(e.preventDefault(),P())}return p(()=>s.flow._id,()=>{D.value=[...s.flow.nodes],O.value=[...s.flow.edges],C.clear()}),m(()=>window.addEventListener(`keydown`,H)),a(()=>window.removeEventListener(`keydown`,H)),i({removeNode:B,addNodeAtCenter:ne,clearAll:V,getNodes:ie,getEdges:ae,updateNodeData:oe,undo:N,redo:P,canUndo:C.canUndo,canRedo:C.canRedo}),(t,n)=>(M(),r(`div`,{ref:`canvasRef`,class:x([`h-full w-full border-left-color border-bottom-color border-right-color rounded-b-xl overflow-hidden`,{"rounded-none! border-0!":k(u)}]),onDrop:z,onDragover:n[2]||=g(()=>{},[`prevent`]),onDragenter:n[3]||=g(()=>{},[`prevent`])},[w(k(be),{nodes:k(D),"onUpdate:nodes":n[0]||=e=>d(D)?D.value=e:null,edges:k(O),"onUpdate:edges":n[1]||=e=>d(O)?O.value=e:null,"node-types":T,"edge-types":E,"default-viewport":{zoom:e.mobile?.7:.9,x:0,y:0},"snap-to-grid":!0,"snap-grid":[16,16],"is-valid-connection":ee,class:`automation-canvas`,onNodeClick:I,onPaneClick:L,onConnect:R,onNodesChange:te},A({default:h(()=>[w(k(xe),{gap:16}),w(k(Ce))]),_:2},[k(D).length?void 0:{name:`default`,fn:h(()=>[_(`div`,nt,[_(`span`,rt,S(e.mobile?k(l)(`views.automation.no_nodes_mobile`):k(l)(`views.automation.no_nodes`)),1)])]),key:`0`}]),1032,[`nodes`,`edges`,`default-viewport`])],34))}}),at={"trigger-detection":U(()=>T(()=>import(`./ConfigTriggerDetection-CRnZR91p.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11]))),"trigger-sensor":U(()=>T(()=>import(`./ConfigTriggerSensor-DR6ifBrK.js`),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,11]))),"trigger-schedule":U(()=>T(()=>import(`./ConfigTriggerSchedule-CqID85d1.js`),__vite__mapDeps([13,1,2,3]))),"trigger-webhook":U(()=>T(()=>import(`./ConfigTriggerWebhook-Cmwu5IU4.js`),__vite__mapDeps([14,1,2,3,4,15,16,17]))),"trigger-system":U(()=>T(()=>import(`./ConfigTriggerSystem-K1ohOW18.js`),__vite__mapDeps([18,1,2,3,4,19,9,10,11,5,6,7,8]))),"trigger-manual":U(()=>T(()=>import(`./ConfigTriggerManual-V8-5hrdl.js`),__vite__mapDeps([20,1,2,3]))),"trigger-geofence":U(()=>T(()=>import(`./ConfigTriggerGeofence-DODdJBZW.js`),__vite__mapDeps([21,2,1,3,4,22,23,9,10,11,15,16,17]))),"action-snapshot":U(()=>T(()=>import(`./ConfigActionSnapshot-C5enxVcl.js`),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10,11]))),"action-sensor":U(()=>T(()=>import(`./ConfigActionSensor-BBkfWT_r.js`),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10,11]))),"action-notification":U(()=>T(()=>import(`./ConfigActionNotification-CuDDnksK.js`),__vite__mapDeps([26,1,2,3,4,27,9,10,11,28,29,30,31]))),"action-http":U(()=>T(()=>import(`./ConfigActionHttp-BbfN1UGF.js`),__vite__mapDeps([32,1,2,4,3,28,29,10,30]))),"action-delay":U(()=>T(()=>import(`./ConfigActionDelay-DKhE0Xr8.js`),__vite__mapDeps([33,1,2,3,4]))),"action-variable":U(()=>T(()=>import(`./ConfigActionVariable-CVaOMoOi.js`),__vite__mapDeps([34,1,2,3,4,28,29,10,30]))),"action-plugin":U(()=>T(()=>import(`./ConfigActionPlugin-BVd0FkX6.js`),__vite__mapDeps([35,1,2,3,4,36,9,10,11,19,28,29,30,37,38,6,7,39,40,41,42,43,44]))),"action-image-input":U(()=>T(()=>import(`./ConfigActionImageInput-P39gRfld.js`),__vite__mapDeps([45,1,2,3,4,28,29,10,30,31]))),"action-output":U(()=>T(()=>import(`./ConfigActionOutput-BIHvC1Z5.js`),__vite__mapDeps([46,1,2,3,4,28,29,10,30,43]))),"action-camera-control":U(()=>T(()=>import(`./ConfigActionCameraControl-94iyzBzJ.js`),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10,11,48]))),"condition-ifelse":U(()=>T(()=>import(`./ConfigConditionIfElse-DiIOUqA5.js`),__vite__mapDeps([49,1,2,3,4,28,29,10,30,50,51,52,53,17]))),"condition-switch":U(()=>T(()=>import(`./ConfigConditionSwitch-DWqcQ3Ip.js`),__vite__mapDeps([54,1,2,3,4,28,29,10,50,51,52,53,17]))),"condition-sensorstate":U(()=>T(()=>import(`./ConfigConditionSensorState-DBktbA8F.js`),__vite__mapDeps([55,1,2,3,4,5,6,7,8,9,10,11,56]))),"condition-time":U(()=>T(()=>import(`./ConfigConditionTime-BEaHclqa.js`),__vite__mapDeps([57,1,2,3,4,17])))},ot={class:`h-full overflow-y-auto flex flex-col`},st={class:`flex items-center gap-2 px-4 py-3 border-bottom-color`},ct={class:`flex-1 min-w-0`},lt={class:`text-sm font-semibold truncate text-color`},ut={class:`text-xs text-muted`},dt={class:`flex-1 overflow-y-auto`},ft={class:`text-color font-normal text-sm`},pt={class:`flex flex-col field-gap`},mt={class:`cui-input-hint`},ht={class:`text-color font-normal text-sm`},gt={class:`text-color font-normal text-sm`},_t={class:`flex flex-col gap-3`},vt={class:`flex flex-col field-gap`},yt={class:`cui-label`},bt={key:0,class:`flex flex-col field-gap`},xt={class:`cui-label`},St={class:`cui-input-hint`},Ct={key:1,class:`flex flex-col field-gap`},wt={class:`cui-label`},Tt={class:`p-4 border-top-color`},Et=D({__name:`CuiAutomationNodeConfig`,props:{node:{}},emits:[`close`,`update:data`,`delete`],setup(e,{emit:t}){let n=e,a=t,{t:o}=F(),s=y(()=>n.node.type?K(n.node.type):void 0),c=y(()=>n.node.type?.startsWith(`action-`)),l=y(()=>{if(n.node.type)return at[n.node.type]}),u=y(()=>{let e=[`config`];return c.value&&n.node.data.alias&&e.push(`alias`),s.value?.supportsRepeat&&n.node.data.repeat>1&&e.push(`repeat`),e});function d(e){a(`update:data`,e)}return(t,n)=>{let a=he,p=P,m=oe,g=I,v=se,y=B,x=H,C=V;return M(),r(`div`,ot,[_(`div`,st,[_(`div`,{class:`flex items-center justify-center w-8 h-8 rounded-md shrink-0`,style:j({backgroundColor:`${k(s)?.color}20`,color:k(s)?.color})},[(M(),b(i(k(s)?.icon),{class:`w-4 h-4`}))],4),_(`div`,ct,[_(`div`,lt,S(k(s)?k(o)(k(s).labelKey):e.node.type),1),_(`div`,ut,S(k(o)(`views.automation.node_config`)),1)]),w(p,{severity:`secondary`,text:``,rounded:``,class:`shrink-0 cui-icon-sm`,onClick:n[0]||=e=>t.$emit(`close`)},{icon:h(()=>[w(a,{width:`100%`,height:`100%`})]),_:1})]),_(`div`,dt,[w(C,{multiple:``,value:k(u),class:`w-[300px]`},{default:h(()=>[k(c)?(M(),b(y,{key:0,value:`alias`},{default:h(()=>[w(m,{class:`px-4 rounded-none!`},{default:h(()=>[_(`span`,ft,S(k(o)(`components.automation_nodes.alias`)),1)]),_:1}),w(v,{pt:{content:{class:`px-4 w-[300px]`}}},{default:h(()=>[_(`div`,pt,[w(g,{"model-value":e.node.data.alias??``,placeholder:k(o)(`components.automation_nodes.alias_placeholder`),"onUpdate:modelValue":n[1]||=e=>d({alias:e||void 0})},null,8,[`model-value`,`placeholder`]),_(`span`,mt,S(k(o)(`components.automation_nodes.alias_hint`)),1)])]),_:1})]),_:1})):f(``,!0),k(l)?(M(),b(y,{key:1,value:`config`},{default:h(()=>[w(m,{class:`px-4 rounded-none!`},{default:h(()=>[_(`span`,ht,S(k(o)(`views.automation.node_config`)),1)]),_:1}),w(v,{pt:{content:{class:`px-4 w-[300px]`}}},{default:h(()=>[_(`div`,null,[(M(),b(i(k(l)),{data:e.node.data,"node-id":e.node.id,"onUpdate:data":d},null,40,[`data`,`node-id`]))])]),_:1})]),_:1})):f(``,!0),k(s)?.supportsRepeat?(M(),b(y,{key:2,value:`repeat`},{default:h(()=>[w(m,{class:`px-4 rounded-none!`},{default:h(()=>[_(`span`,gt,S(k(o)(`components.automation_nodes.repeat`)),1)]),_:1}),w(v,{pt:{content:{class:`px-4 w-[300px]`}}},{default:h(()=>[_(`div`,_t,[_(`div`,vt,[_(`label`,yt,S(k(o)(`components.automation_nodes.repeat_count`)),1),w(x,{"model-value":e.node.data.repeat??1,min:1,max:1e5,class:`w-full`,"onUpdate:modelValue":n[2]||=e=>d({repeat:e})},null,8,[`model-value`])]),e.node.data.repeat>1?(M(),r(`div`,bt,[_(`label`,xt,S(k(o)(`components.automation_nodes.repeat_concurrency`)),1),w(x,{"model-value":e.node.data.repeatConcurrency??1,min:1,max:64,class:`w-full`,"onUpdate:modelValue":n[3]||=e=>d({repeatConcurrency:e})},null,8,[`model-value`]),_(`span`,St,S(k(o)(`components.automation_nodes.repeat_concurrency_hint`)),1)])):f(``,!0),e.node.data.repeat>1?(M(),r(`div`,Ct,[_(`label`,wt,S(k(o)(`components.automation_nodes.repeat_delay`)),1),w(x,{"model-value":e.node.data.repeatDelayMs??0,min:0,max:6e4,suffix:` ms`,class:`w-full`,"onUpdate:modelValue":n[4]||=e=>d({repeatDelayMs:e})},null,8,[`model-value`])])):f(``,!0)])]),_:1})]),_:1})):f(``,!0)]),_:1},8,[`value`])]),_(`div`,Tt,[w(p,{severity:`danger`,fluid:``,class:`w-full cui-button-medium`,label:k(o)(`views.automation.delete_node`),onClick:n[5]||=e=>t.$emit(`delete`)},null,8,[`label`])])])}}}),Dt={key:0,class:`text-xs font-semibold text-muted uppercase tracking-wider mb-3`},Ot={class:`text-xs font-medium text-muted mb-2`},kt={class:`flex flex-col gap-1.5`},At=[`draggable`,`onDragstart`,`onClick`],jt={class:`flex items-center gap-2.5 flex-1 min-w-0 px-3 py-2.5`},Mt={class:`flex-1 min-w-0`},Nt={class:`text-[13px] font-medium truncate text-color block leading-tight`},Pt={key:0,class:`text-[11px] text-muted block truncate mt-0.5 leading-tight`},Ft=z(D({__name:`CuiAutomationNodePalette`,props:O({mode:{}},pe),emits:[`node-click`],setup(e){let{t}=F(),n=[{key:`trigger`,labelKey:`components.automation_nodes.category_triggers`,nodes:G(`trigger`)},{key:`condition`,labelKey:`components.automation_nodes.category_conditions`,nodes:G(`condition`)},{key:`utility`,labelKey:`components.automation_nodes.category_utilities`,nodes:G(`utility`)},{key:`action`,labelKey:`components.automation_nodes.category_actions`,nodes:G(`action`)}];function a(e,t){e.dataTransfer&&(e.dataTransfer.setData(`application/automationnode`,t),e.dataTransfer.effectAllowed=`move`)}return(o,l)=>(M(),r(`div`,{class:x([`overflow-y-auto p-3`,e.mode===`drag`?`h-full`:``])},[e.mode===`drag`?(M(),r(`div`,Dt,S(k(t)(`views.automation.node_palette`)),1)):f(``,!0),(M(),r(c,null,s(n,n=>_(`div`,{key:n.key,class:`mb-4`},[_(`div`,Ot,S(k(t)(n.labelKey)),1),_(`div`,kt,[(M(!0),r(c,null,s(n.nodes,n=>(M(),r(`div`,{key:n.type,class:x([`automation-palette-node`,e.mode===`drag`?`cursor-grab active:cursor-grabbing`:`cursor-pointer`]),draggable:e.mode===`drag`,onDragstart:t=>e.mode===`drag`?a(t,n.type):void 0,onClick:t=>e.mode===`click`?o.$emit(`node-click`,n.type):void 0},[_(`div`,{class:`automation-palette-node__accent`,style:j({backgroundColor:n.color})},null,4),_(`div`,jt,[_(`div`,{class:`flex items-center justify-center w-8 h-8 rounded-lg shrink-0`,style:j({backgroundColor:`${n.color}15`,color:n.color})},[(M(),b(i(n.icon),{class:`w-4.5 h-4.5`}))],4),_(`div`,Mt,[_(`span`,Nt,S(k(t)(n.labelKey)),1),e.mode===`click`?(M(),r(`span`,Pt,S(k(t)(n.descriptionKey)),1)):f(``,!0)])])],42,At))),128))])])),64))],2))}}),[[`__scopeId`,`data-v-08caad7f`]]),It={class:`flex items-center gap-2 px-3 py-2 border-bottom-color card-background min-h-[48px]`},Lt=D({__name:`CuiAutomationToolbar`,props:{flow:{}},emits:[`update:name`,`toggle-enabled`,`toggle-suppress-duplicates`,`toggle-single-execution`],setup(e,{emit:t}){let n=e,i=t,{t:a}=F(),{smBreakpoint:o}=re(),s=u(`menuRef`),c=y(()=>[{key:`suppressDuplicates`,label:a(`views.automation.suppress_duplicates`),description:a(`views.automation.suppress_duplicates_hint`),toggle:!0,toggleState:n.flow.suppressDuplicates,onClick:()=>i(`toggle-suppress-duplicates`)},{key:`singleExecution`,label:a(`views.automation.single_execution`),description:a(`views.automation.single_execution_hint`),toggle:!0,toggleState:n.flow.singleExecution,onClick:()=>i(`toggle-single-execution`)}]);return(t,n)=>{let i=_e,l=P,u=I,d=ae,p=we,m=le;return M(),r(`div`,It,[k(o)?f(``,!0):(M(),b(l,{key:0,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:n[0]||=e=>t.$router.push(`/automations`)},{icon:h(()=>[w(i,{width:`100%`,height:`100%`})]),_:1})),w(u,{"model-value":e.flow.name,class:x([`font-medium text-sm min-w-0 flex-1`,{"max-w-[300px]":!k(o)}]),placeholder:k(a)(`views.automations.flow_name_placeholder`),"onUpdate:modelValue":n[1]||=e=>t.$emit(`update:name`,String(e??``))},null,8,[`model-value`,`class`,`placeholder`]),n[4]||=_(`div`,{class:`flex-1`},null,-1),w(d,{"model-value":e.flow.enabled,class:`shrink-0`,"onUpdate:modelValue":n[2]||=e=>t.$emit(`toggle-enabled`)},null,8,[`model-value`]),w(l,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:n[3]||=e=>k(s)?.toggleMenu(e)},{icon:h(()=>[w(p,{width:`100%`,height:`100%`})]),_:1}),w(m,{ref_key:`menuRef`,ref:s,items:k(c),"auto-hide":!1,popover:{pt:{root:{class:`w-[18rem]`},content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}}),Rt={class:`flex flex-col gap-4 w-full`},zt={key:1,class:`text-sm text-muted`},Bt=D({__name:`CuiAutomationMobileNodeConfig`,props:{node:{}},setup(e,{expose:t}){let n=e,{t:a}=F(),o=W(),s=y(()=>{if(n.node.type)return at[n.node.type]});function c(e){if(!o.draft)return;let t=o.draft.nodes.find(e=>e.id===n.node.id);t?.data&&Object.assign(t.data,e)}return t({onConfirm:async()=>{if(o.draft){let e=n.node.id;o.draft.nodes=o.draft.nodes.filter(t=>t.id!==e),o.draft.edges=o.draft.edges.filter(t=>t.source!==e&&t.target!==e)}}}),(t,n)=>(M(),r(`div`,Rt,[k(s)?(M(),b(i(k(s)),{key:0,data:e.node.data,"node-id":e.node.id,"onUpdate:data":c},null,40,[`data`,`node-id`])):(M(),r(`div`,zt,S(k(a)(`views.automation.no_node_selected`)),1))]))}}),Vt={class:`h-full w-full relative overflow-hidden flex flex-col`},Ht={class:`flex flex-1 min-h-0`},Ut={class:`relative w-6 h-6`},Wt={key:1,class:`flex flex-1 items-center justify-center`},Gt={key:2,class:`flex flex-1 items-center justify-center`},Kt={class:`text-muted`},qt=D({__name:`Automation`,setup(a){let o=new me,s=ee(),m=te(),{t:g}=F(),{smBreakpoint:v}=re(),{bottombarHeight:T}=ne(),E=de(),D=e(),O=W(),A=u(`canvasRef`),I=n(!1),L=n(!1),R=n(!1),z=n(!1),B=y(()=>s.params.id),V=y(()=>B.value===`new`),{data:ae,isBusy:oe}=o.getAutomationQuery(B),{mutateAsync:H}=o.createAutomationQuery(),{mutateAsync:se}=o.patchAutomationQuery(),{mutateAsync:le}=o.deleteAutomationQuery(),{mutateAsync:U}=o.triggerAutomationQuery(),pe=()=>{R.value=A.value?.canUndo??!1,z.value=A.value?.canRedo??!1},G=y({get:()=>O.draft,set:e=>{O.draft=e}}),he=()=>{G.value={_id:t(12),name:g(`views.automation.untitled`),enabled:!1,nodes:[],edges:[],suppressDuplicates:!1,singleExecution:!1,createdAt:Date.now(),updatedAt:Date.now()},O.selectedNodeId=null};p(B,e=>{O.activeFlowId=e===`new`?null:e??null,O.selectedNodeId=null,O.lastOutput=null,L.value=!1,e===`new`?he():G.value=null},{immediate:!0}),p(ae,e=>{e&&!L.value&&(G.value=JSON.parse(JSON.stringify(e)))},{immediate:!0});let q=()=>{L.value=!0,pe()},J=y(()=>{if(!(!G.value||!O.selectedNodeId))return G.value.nodes.find(e=>e.id===O.selectedNodeId)}),be=y(()=>{if(!(v.value||!J.value))return`calc(300px + 1.25rem + env(safe-area-inset-right, 0px))`}),xe=y(()=>[...G.value?.nodes.some(e=>e.type===`trigger-manual`)??!1?[{label:g(`views.automation.run`),icon:ue,buttonProps:{disabled:V.value||L.value},command:()=>je()}]:[],{label:g(`views.automation.undo`),icon:ze,buttonProps:{disabled:!R.value},command:()=>{A.value?.undo(),q()}},{label:g(`views.automation.redo`),icon:Ae,buttonProps:{disabled:!z.value},command:()=>{A.value?.redo(),q()}},{label:g(`views.automation.export_blueprint`),icon:Ie,command:()=>Me()},{label:g(`views.automation.clear`),icon:De,command:()=>Pe()},{label:g(`views.automations.delete`),icon:ve,buttonProps:{severity:`danger`},command:()=>Fe()}]),Y=()=>{Te(),q()},X=e=>{G.value&&(G.value.name=e,q())},Se=(e,t)=>{if(!G.value)return;let n=G.value.nodes.find(t=>t.id===e);if(n&&n.data){if(!Object.entries(t).some(([e,t])=>n.data[e]!==t))return;Object.assign(n.data,t),A.value?.updateNodeData(e,{...n.data}),q()}},Ce=()=>{if(!G.value)return{};let e=A.value?.getNodes?.()??G.value.nodes,t=A.value?.getEdges?.()??G.value.edges;return{name:G.value.name,enabled:G.value.enabled,suppressDuplicates:G.value.suppressDuplicates,singleExecution:G.value.singleExecution,nodes:e.map(e=>({id:e.id,type:e.type??``,position:e.position,data:e.data??{}})),edges:t.map(e=>({id:e.id,source:e.source,target:e.target,sourceHandle:e.sourceHandle??void 0,targetHandle:e.targetHandle??void 0}))}},we=async()=>{if(!G.value)return;let e=Ce();try{if(V.value){let t=await H({data:e});L.value=!1,m.replace(`/automations/${t._id}`)}else{let t=await se({id:G.value._id,data:e});if(L.value=!1,t?.nodes&&G.value)for(let e of t.nodes){let t=G.value.nodes.find(t=>t.id===e.id);t?.data&&e.data&&Object.assign(t.data,e.data)}D.add({severity:`success`,detail:g(`views.automation.saved`),life:3e3})}}catch{D.add({severity:`error`,detail:g(`views.automation.save_failed`),life:3e3})}},Te=()=>{if(!G.value)return;let e=A.value?.getNodes(),t=A.value?.getEdges();e&&(G.value.nodes=e),t&&(G.value.edges=t)},Ee=e=>{if(O.selectedNodeId=e,v.value&&e){Te();let t=G.value?.nodes.find(t=>t.id===e);if(!t)return;let n=t.type?K(t.type):void 0,r=n?g(n.labelKey):`Node`,i=t.id;E.openComponentDialog(Bt,{data:{title:r,confirmText:g(`views.automation.delete_node`),confirmButtonProps:{severity:`danger`},contentProps:{node:{id:t.id,type:t.type,data:t.data}}},onSettled:()=>{G.value?.nodes.some(e=>e.id===i)||(A.value?.removeNode(i),q())}})}},Oe=e=>{I.value=!1,A.value?.addNodeAtCenter(e),q()},ke=()=>{O.selectedNodeId&&(A.value?.removeNode(O.selectedNodeId),G.value&&(G.value.nodes=G.value.nodes.filter(e=>e.id!==O.selectedNodeId),G.value.edges=G.value.edges.filter(e=>e.source!==O.selectedNodeId&&e.target!==O.selectedNodeId)),O.selectedNodeId=null,O.lastOutput=null,q())},je=async()=>{if(!(!G.value||V.value))try{O.lastOutput=null;let e=await U({id:G.value._id});e?.output&&Object.keys(e.output).length>0&&(O.lastOutput=e.output),D.add({severity:`success`,detail:g(`views.automation.triggered`),life:3e3})}catch{D.add({severity:`error`,detail:g(`views.automation.trigger_failed`),life:3e3})}},Me=()=>{if(!G.value)return;we();let e={version:1,name:G.value.name,nodes:G.value.nodes,edges:G.value.edges},t=JSON.stringify(e,null,2),n=new Blob([t],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`${G.value.name.replace(/\s+/g,`_`).toLowerCase()}.blueprint.json`,i.click(),URL.revokeObjectURL(r)},Pe=()=>{E.openTextDialog({data:{title:g(`views.automation.clear`),contentText:g(`views.automation.clear_confirm`),confirmText:g(`views.automation.clear`)},onConfirm:async()=>{A.value?.clearAll(),G.value&&(G.value.nodes=[],G.value.edges=[]),O.selectedNodeId=null,q()}})},Fe=()=>{if(!G.value)return;let e=G.value._id;E.openTextDialog({data:{title:g(`views.automations.delete`),contentText:g(`views.automations.delete_confirm`),confirmText:g(`views.automations.delete`)},onConfirm:async()=>{await le({id:e}),m.push(`/automations`)}})},Le=()=>{L.value?E.openTextDialog({data:{title:g(`views.automation.unsaved_title`),contentText:g(`views.automation.unsaved_message`),confirmText:g(`views.automation.discard`)},onConfirm:async()=>{m.push(`/automations`)}}):m.push(`/automations`)};return(e,t)=>{let n=_e,a=P,o=fe,s=ce,u=ge,p=N,m=ie;return M(),r(`div`,Vt,[w(o,{position:`left`},{default:h(()=>[w(a,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:Le},{icon:h(()=>[w(n,{class:`w-6 h-6`})]),_:1})]),_:1}),k(G)?(M(),r(c,{key:0},[w(Lt,{flow:k(G),"onUpdate:name":X,onToggleEnabled:t[0]||=e=>{k(G).enabled=!k(G).enabled,q()},onToggleSuppressDuplicates:t[1]||=e=>{k(G).suppressDuplicates=!k(G).suppressDuplicates,q()},onToggleSingleExecution:t[2]||=e=>{k(G).singleExecution=!k(G).singleExecution,q()}},null,8,[`flow`]),_(`div`,Ht,[k(v)?f(``,!0):(M(),b(Ft,{key:0,class:`w-[240px] shrink-0`})),w(it,{ref_key:`canvasRef`,ref:A,flow:k(G),mobile:k(v),class:`flex-1 min-w-0`,onNodeSelect:Ee,onChange:Y},null,8,[`flow`,`mobile`]),k(v)?f(``,!0):(M(),r(`div`,{key:1,class:`shrink-0 overflow-hidden transition-[width] duration-200 ease-in-out`,style:j({width:k(J)?`300px`:`0px`})},[k(J)?(M(),b(Et,{key:0,node:k(J),class:`w-[300px]`,onClose:t[3]||=e=>k(O).selectedNodeId=null,"onUpdate:data":t[4]||=e=>Se(k(O).selectedNodeId,e),onDelete:ke},null,8,[`node`])):f(``,!0)],4))]),w(s,{model:k(xe),direction:`up`,"transition-delay":80,"tooltip-options":{position:`left`,event:void 0},style:j({position:`fixed`,zIndex:15,bottom:`calc(${k(T)}px + ${k(L)?`4.25rem`:`1.25rem`} + env(safe-area-inset-bottom, 0px))`,right:k(be)||`calc(1.25rem + env(safe-area-inset-right, 0px))`,transition:`right 0.2s ease-in-out, bottom 0.2s ease-in-out`}),pt:{root:{style:`pointer-events: none`}}},{button:h(({visible:e,toggleCallback:t})=>[w(a,{rounded:``,severity:`secondary`,class:`pointer-events-auto`,onClick:t},{icon:h(()=>[_(`div`,Ut,[_(`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),_(`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),_(`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,[`onClick`])]),item:h(({item:e,toggleCallback:t})=>[l((M(),b(a,C({severity:`secondary`},e.buttonProps,{rounded:``,class:`pointer-events-auto`,onClick:t}),{icon:h(()=>[(M(),b(i(e.icon)))]),_:2},1040,[`onClick`])),[[m,{value:e.label}]])]),_:1},8,[`model`,`style`]),k(v)?l((M(),b(a,{key:0,rounded:``,class:`pointer-events-auto text-white`,style:j({position:`fixed`,zIndex:15,bottom:`calc(${k(T)}px + 1.25rem + env(safe-area-inset-bottom, 0px))`,right:`calc(4.75rem + env(safe-area-inset-right, 0px))`}),onClick:t[5]||=e=>I.value=!0},{icon:h(()=>[w(k(ye),{class:`w-5 h-5`})]),_:1},8,[`style`])),[[m,{value:k(g)(`views.automation.add_step`)}]]):f(``,!0),k(L)?l((M(),b(a,{key:1,rounded:``,severity:`success`,class:`pointer-events-auto text-white`,style:j({position:`fixed`,zIndex:15,bottom:`calc(${k(T)}px + 1.25rem + env(safe-area-inset-bottom, 0px))`,right:k(be)||`calc(1.25rem + env(safe-area-inset-right, 0px))`,transition:`right 0.2s ease-in-out`}),onClick:we},{icon:h(()=>[w(k(Ne),{class:`w-5 h-5`})]),_:1},8,[`style`])),[[m,{value:k(g)(`views.automation.save`)}]]):f(``,!0),w(u,{modelValue:k(I),"onUpdate:modelValue":t[6]||=e=>d(I)?I.value=e:null,title:k(g)(`views.automation.add_step`),"max-height":`70vh`},{default:h(()=>[w(Ft,{mode:`click`,onNodeClick:Oe})]),_:1},8,[`modelValue`,`title`])],64)):k(oe)?(M(),r(`div`,Wt,[w(p,{class:`!w-8 !h-8`,strokeWidth:`4`})])):(M(),r(`div`,Gt,[_(`span`,Kt,S(k(g)(`views.automations.no_automations`)),1)]))])}}});export{qt as default};
@@ -1,4 +1,4 @@
1
- import{S as e,_ as t,i as n,l as r}from"./api-BaywoTCE.js";import{$n as i,$t as a,C as o,Cn as s,En as c,Gt as l,Hn as u,In as d,Jn as f,Qn as p,Qt as m,Rt as h,Sn as g,T as _,Vn as v,Wn as y,Wt as b,Xt as x,Yn as S,Yt as C,Zn as w,Zt as T,ar as E,cr as D,dn as O,dr as k,hn as A,in as j,on as M,rn as N,sr as P,ur as ee,w as F,wn as I}from"./vendor-DmhYd_sB.js";import{Bn as te,Gi as L,Gn as ne,Vn as re,di as R,et as ie,st as ae}from"./vendor-cameraui-DggYb17u.js";import{t as z}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as B}from"./useSharedComposables-riqEUgwX.js";import{t as oe}from"./close-WdhW_91X.js";import{D as se,E as V,J as ce,K as le,L as ue,O as de,R as fe,T as pe,h as me,j as he,k as ge,w as _e,x as ve,z as ye}from"./vendor-primevue--pcuf6kA.js";import{t as be}from"./cctv-SQFfbBnL.js";import{t as H}from"./CuiFloatingButton-RaxwbGht.js";import{t as U}from"./hasPermission-DIF0bX8u.js";import{t as W}from"./cameras-DQ28quQb.js";import{n as G}from"./useCuiCameraDrawer-Dn97MLFe.js";import{t as xe}from"./useCuiDialog-BbkaNkQN.js";import{C as Se,D as Ce,E as we,S as Te,T as Ee,b as De,w as Oe,x as ke}from"./types-kxdn9XBW.js";import{n as Ae,r as je,t as Me}from"./CuiSchema-CTRLO0uq.js";import{t as Ne}from"./plus-B5eEboLZ.js";import{r as Pe,t as Fe}from"./cameras.schema-CDeB5JeE.js";import{t as Ie}from"./ring-resize-fOkdAS5R.js";import{t as K}from"./plus-Dis0MPt8.js";var Le={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Re(e,t){return I(),a(`svg`,Le,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`m19.07 4.93l-1.41 1.41A8 8 0 0 1 20 12a8 8 0 0 1-8 8a8 8 0 0 1-8-8c0-4.08 3.05-7.44 7-7.93v2.02C8.16 6.57 6 9.03 6 12a6 6 0 0 0 6 6a6 6 0 0 0 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1.41C15.55 9.9 16 10.9 16 12a4 4 0 0 1-4 4a4 4 0 0 1-4-4c0-1.86 1.28-3.41 3-3.86v2.14c-.6.35-1 .98-1 1.72a2 2 0 0 0 2 2a2 2 0 0 0 2-2c0-.74-.4-1.38-1-1.72V2h-1A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10c0-2.76-1.12-5.26-2.93-7.07`},null,-1)]])}var ze=S({name:`mdi-radar`,render:Re}),Be={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ve(e,t){return I(),a(`svg`,Be,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M12 9a3 3 0 0 0-3 3a3 3 0 0 0 3 3a3 3 0 0 0 3-3a3 3 0 0 0-3-3m0 8a5 5 0 0 1-5-5a5 5 0 0 1 5-5a5 5 0 0 1 5 5a5 5 0 0 1-5 5m0-12.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5`},null,-1)]])}var He=S({name:`mdi-eye`,render:Ve}),Ue={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function We(e,t){return I(),a(`svg`,Ue,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M11.83 9L15 12.16V12a3 3 0 0 0-3-3zm-4.3.8l1.55 1.55c-.05.21-.08.42-.08.65a3 3 0 0 0 3 3c.22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53a5 5 0 0 1-5-5c0-.79.2-1.53.53-2.2M2 4.27l2.28 2.28l.45.45C3.08 8.3 1.78 10 1 12c1.73 4.39 6 7.5 11 7.5c1.55 0 3.03-.3 4.38-.84l.43.42L19.73 22L21 20.73L3.27 3M12 7a5 5 0 0 1 5 5c0 .64-.13 1.26-.36 1.82l2.93 2.93c1.5-1.25 2.7-2.89 3.43-4.75c-1.73-4.39-6-7.5-11-7.5c-1.4 0-2.74.25-4 .7l2.17 2.15C10.74 7.13 11.35 7 12 7`},null,-1)]])}var q=S({name:`mdi-eye-off`,render:We}),Ge={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ke(e,t){return I(),a(`svg`,Ge,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M12.5 9q-.275 0-.425-.25t0-.5L15 3.175q.2-.325.5-.387t.65.112q1.725.775 3.05 2.162T21.25 8.2q.125.325-.038.563T20.7 9zm-3.575 1.225l-3-5.2q-.2-.325-.1-.65t.4-.525Q7.425 3 8.888 2.5T12 2q.375 0 .825.038t.75.087q.35.05.463.3t-.063.55L9.8 10.225q-.15.25-.437.25t-.438-.25M2.85 14q-.275 0-.5-.187t-.275-.463t-.062-.6T2 12q0-1.575.513-3.137T4.1 5.9q.275-.35.638-.35t.562.375l4.2 7.325q.15.25-.012.5T9.05 14zm5 7.1q-1.65-.8-3.025-2.175T2.75 15.8q-.125-.325.05-.562T3.325 15h8.15q.275 0 .425.25t0 .5l-2.875 5.025q-.2.325-.5.425t-.675-.1M12 22q-.35 0-.788-.038t-.762-.087q-.35-.05-.475-.3t.05-.55l4.125-7.2q.15-.25.5-.25t.5.25l2.95 5.125q.175.275.113.6t-.413.6q-1.15.85-2.687 1.35T12 22m6.775-3.875l-4.25-7.375q-.15-.25.013-.5t.437-.25h6.175q.275 0 .5.188t.275.462t.062.6T22 12q0 1.575-.513 3.163T19.9 18.125q-.2.275-.575.288t-.55-.288`},null,-1)]])}var qe=S({name:`material-symbols-camera-rounded`,render:Ke}),Je={viewBox:`0 0 12 12`,width:`1.2em`,height:`1.2em`};function Ye(e,t){return I(),a(`svg`,Je,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M2.22 4.47a.75.75 0 0 1 1.06 0L6 7.19l2.72-2.72a.75.75 0 0 1 1.06 1.06L6.53 8.78a.75.75 0 0 1-1.06 0L2.22 5.53a.75.75 0 0 1 0-1.06`},null,-1)]])}var Xe=S({name:`fluent-chevron-down12-filled`,render:Ye}),Ze="#### Source: Bubble\n\nOther names: [ESeeCloud](http://www.eseecloud.com/), [dvr163](http://help.dvr163.com/).\n\n- you can skip `username`, `password`, `port`, `ch` and `stream` if they are default\n- setup separate streams for different channels and streams\n\n```yaml\nstreams:\n camera1: bubble://username:password@192.168.1.123:34567/bubble/live?ch=0&stream=0\n```\n\n_Source: [Go2Rtc Bubble](https://github.com/seydx/go2rtc#source-bubble)_\n",Qe='#### Source: CUI\n\nThis source can be used to stream dynamically generated, go2rtc compatible, URLs. The source is just a placeholder for a `https://` URL.\n\n```yaml\nstreams:\n camera1: cui://192.168.1.123:34567/some-identifier-if-you-want\n```\n\nThe URL will be changed to `https://192.168.1.123:34567/some-identifier-if-you-want` and the response must be like this:\n\n```json\n{\n {\n "streamUrl": "rtsp://192.168.1.1:554/stream",\n }\n}\n```\n\nGo2rtc will then use the `streamUrl` to stream the video. The `streamUrl` can be any URL that is compatible with go2rtc. The response must be a valid JSON object with the `streamUrl` key.\n',$e=`#### Source: Doorbird
1
+ import{S as e,_ as t,i as n,l as r}from"./api-BaywoTCE.js";import{$n as i,$t as a,C as o,Cn as s,En as c,Gt as l,Hn as u,In as d,Jn as f,Qn as p,Qt as m,Rt as h,Sn as g,T as _,Vn as v,Wn as y,Wt as b,Xt as x,Yn as S,Yt as C,Zn as w,Zt as T,ar as E,cr as D,dn as O,dr as k,hn as A,in as j,on as M,rn as N,sr as P,ur as ee,w as F,wn as I}from"./vendor-DmhYd_sB.js";import{Bn as te,Gi as L,Gn as ne,Vn as re,di as R,et as ie,st as ae}from"./vendor-cameraui-DggYb17u.js";import{t as z}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as B}from"./useSharedComposables-riqEUgwX.js";import{t as oe}from"./close-WdhW_91X.js";import{D as se,E as V,J as ce,K as le,L as ue,O as de,R as fe,T as pe,h as me,j as he,k as ge,w as _e,x as ve,z as ye}from"./vendor-primevue--pcuf6kA.js";import{t as be}from"./cctv-SQFfbBnL.js";import{t as H}from"./CuiFloatingButton-RaxwbGht.js";import{t as U}from"./hasPermission-DIF0bX8u.js";import{t as W}from"./cameras-DQ28quQb.js";import{n as G}from"./useCuiCameraDrawer-Dn97MLFe.js";import{t as xe}from"./useCuiDialog-BbkaNkQN.js";import{C as Se,D as Ce,E as we,S as Te,T as Ee,b as De,w as Oe,x as ke}from"./types-kxdn9XBW.js";import{n as Ae,r as je,t as Me}from"./CuiSchema-B0M5qZi-.js";import{t as Ne}from"./plus-B5eEboLZ.js";import{r as Pe,t as Fe}from"./cameras.schema-CDeB5JeE.js";import{t as Ie}from"./ring-resize-fOkdAS5R.js";import{t as K}from"./plus-Dis0MPt8.js";var Le={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Re(e,t){return I(),a(`svg`,Le,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`m19.07 4.93l-1.41 1.41A8 8 0 0 1 20 12a8 8 0 0 1-8 8a8 8 0 0 1-8-8c0-4.08 3.05-7.44 7-7.93v2.02C8.16 6.57 6 9.03 6 12a6 6 0 0 0 6 6a6 6 0 0 0 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1.41C15.55 9.9 16 10.9 16 12a4 4 0 0 1-4 4a4 4 0 0 1-4-4c0-1.86 1.28-3.41 3-3.86v2.14c-.6.35-1 .98-1 1.72a2 2 0 0 0 2 2a2 2 0 0 0 2-2c0-.74-.4-1.38-1-1.72V2h-1A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10c0-2.76-1.12-5.26-2.93-7.07`},null,-1)]])}var ze=S({name:`mdi-radar`,render:Re}),Be={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ve(e,t){return I(),a(`svg`,Be,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M12 9a3 3 0 0 0-3 3a3 3 0 0 0 3 3a3 3 0 0 0 3-3a3 3 0 0 0-3-3m0 8a5 5 0 0 1-5-5a5 5 0 0 1 5-5a5 5 0 0 1 5 5a5 5 0 0 1-5 5m0-12.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5`},null,-1)]])}var He=S({name:`mdi-eye`,render:Ve}),Ue={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function We(e,t){return I(),a(`svg`,Ue,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M11.83 9L15 12.16V12a3 3 0 0 0-3-3zm-4.3.8l1.55 1.55c-.05.21-.08.42-.08.65a3 3 0 0 0 3 3c.22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53a5 5 0 0 1-5-5c0-.79.2-1.53.53-2.2M2 4.27l2.28 2.28l.45.45C3.08 8.3 1.78 10 1 12c1.73 4.39 6 7.5 11 7.5c1.55 0 3.03-.3 4.38-.84l.43.42L19.73 22L21 20.73L3.27 3M12 7a5 5 0 0 1 5 5c0 .64-.13 1.26-.36 1.82l2.93 2.93c1.5-1.25 2.7-2.89 3.43-4.75c-1.73-4.39-6-7.5-11-7.5c-1.4 0-2.74.25-4 .7l2.17 2.15C10.74 7.13 11.35 7 12 7`},null,-1)]])}var q=S({name:`mdi-eye-off`,render:We}),Ge={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ke(e,t){return I(),a(`svg`,Ge,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M12.5 9q-.275 0-.425-.25t0-.5L15 3.175q.2-.325.5-.387t.65.112q1.725.775 3.05 2.162T21.25 8.2q.125.325-.038.563T20.7 9zm-3.575 1.225l-3-5.2q-.2-.325-.1-.65t.4-.525Q7.425 3 8.888 2.5T12 2q.375 0 .825.038t.75.087q.35.05.463.3t-.063.55L9.8 10.225q-.15.25-.437.25t-.438-.25M2.85 14q-.275 0-.5-.187t-.275-.463t-.062-.6T2 12q0-1.575.513-3.137T4.1 5.9q.275-.35.638-.35t.562.375l4.2 7.325q.15.25-.012.5T9.05 14zm5 7.1q-1.65-.8-3.025-2.175T2.75 15.8q-.125-.325.05-.562T3.325 15h8.15q.275 0 .425.25t0 .5l-2.875 5.025q-.2.325-.5.425t-.675-.1M12 22q-.35 0-.788-.038t-.762-.087q-.35-.05-.475-.3t.05-.55l4.125-7.2q.15-.25.5-.25t.5.25l2.95 5.125q.175.275.113.6t-.413.6q-1.15.85-2.687 1.35T12 22m6.775-3.875l-4.25-7.375q-.15-.25.013-.5t.437-.25h6.175q.275 0 .5.188t.275.462t.062.6T22 12q0 1.575-.513 3.163T19.9 18.125q-.2.275-.575.288t-.55-.288`},null,-1)]])}var qe=S({name:`material-symbols-camera-rounded`,render:Ke}),Je={viewBox:`0 0 12 12`,width:`1.2em`,height:`1.2em`};function Ye(e,t){return I(),a(`svg`,Je,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M2.22 4.47a.75.75 0 0 1 1.06 0L6 7.19l2.72-2.72a.75.75 0 0 1 1.06 1.06L6.53 8.78a.75.75 0 0 1-1.06 0L2.22 5.53a.75.75 0 0 1 0-1.06`},null,-1)]])}var Xe=S({name:`fluent-chevron-down12-filled`,render:Ye}),Ze="#### Source: Bubble\n\nOther names: [ESeeCloud](http://www.eseecloud.com/), [dvr163](http://help.dvr163.com/).\n\n- you can skip `username`, `password`, `port`, `ch` and `stream` if they are default\n- setup separate streams for different channels and streams\n\n```yaml\nstreams:\n camera1: bubble://username:password@192.168.1.123:34567/bubble/live?ch=0&stream=0\n```\n\n_Source: [Go2Rtc Bubble](https://github.com/seydx/go2rtc#source-bubble)_\n",Qe='#### Source: CUI\n\nThis source can be used to stream dynamically generated, go2rtc compatible, URLs. The source is just a placeholder for a `https://` URL.\n\n```yaml\nstreams:\n camera1: cui://192.168.1.123:34567/some-identifier-if-you-want\n```\n\nThe URL will be changed to `https://192.168.1.123:34567/some-identifier-if-you-want` and the response must be like this:\n\n```json\n{\n {\n "streamUrl": "rtsp://192.168.1.1:554/stream",\n }\n}\n```\n\nGo2rtc will then use the `streamUrl` to stream the video. The `streamUrl` can be any URL that is compatible with go2rtc. The response must be a valid JSON object with the `streamUrl` key.\n',$e=`#### Source: Doorbird
2
2
 
3
3
  [Doorbird](https://www.doorbird.com/) proprietary camera protocol with **two way audio** support.
4
4
 
@@ -1 +1 @@
1
- import{$n as e,$t as t,En as n,Gt as r,Qt as i,Rn as a,Xt as o,Yt as s,dr as c,in as l,nr as u,on as d,sr as f,wn as p}from"./vendor-DmhYd_sB.js";import{Ht as m,di as h}from"./vendor-cameraui-DggYb17u.js";import{U as g,j as ee}from"./vendor-primevue--pcuf6kA.js";import{t as _}from"./CuiSchema-CTRLO0uq.js";import{t as v}from"./plugins-DzRwEcA4.js";import{n as y,t as b}from"./VariableInput-D_-qKfZK.js";import{t as x}from"./automations-Bj3wF0wR.js";import{t as S}from"./VariableSuggestions-Br4yDsLZ.js";import{t as te}from"./automations-C6ssihoC.js";var C={class:`flex flex-col gap-4`},w={class:`flex flex-col field-gap`},T={class:`cui-label`},E={class:`flex flex-col field-gap`},D={class:`cui-label`},O={class:`flex flex-col field-gap`},k={class:`cui-label`},A={class:`cui-label`},j={class:`flex flex-col gap-3`},M={class:`text-xs font-semibold text-muted uppercase`},N=d({__name:`ConfigActionPlugin`,props:{data:{},nodeId:{}},emits:[`update:data`],setup(d,{emit:N}){let P=new v,F=new te,I=d,L=N,{t:R}=h(),{plugin:z}=m(s(()=>I.data.pluginName)),B=x(),{data:V,isBusy:H}=P.getPluginsQuery({page:1,pageSize:-1}),{data:U}=F.getPluginMethodsQuery(),W=u(),G=e(!1),K=s(()=>y(B.draft,I.nodeId)),q=s(()=>V.value?.result?V.value.result.filter(e=>e.contract?.interfaces?.length).map(e=>({label:e.pluginName,value:e.pluginName})):[]),J=s(()=>{if(!(!I.data.pluginName||!V.value?.result))return V.value.result.find(e=>e.pluginName===I.data.pluginName)}),Y=s(()=>(J.value?.contract?.interfaces??[]).filter(e=>Q(e).length>0).map(e=>({label:e.replace(/([A-Z])/g,` $1`).trim(),value:e}))),X=s(()=>I.data.pluginInterface?Q(I.data.pluginInterface).map(e=>({label:R(e.labelKey),value:e.id})):[]),Z=s(()=>{if(!(!I.data.pluginInterface||!I.data.method))return Q(I.data.pluginInterface).find(e=>e.id===I.data.method)});function Q(e){return U.value?.[e]??[]}async function ne(){let e=Z.value?.settingsMethod;if(!e||!z.value){W.value=void 0;return}G.value=!0;try{let t=z.value[e];W.value=t?await t():void 0}catch{W.value=void 0}finally{G.value=!1}}function re(e){L(`update:data`,{pluginName:e,pluginInterface:``,method:``,params:{},config:{}})}function ie(e){L(`update:data`,{pluginInterface:e,method:``,params:{},config:{}})}function ae(e){L(`update:data`,{method:e,params:{},config:{}})}function $(e,t){L(`update:data`,{params:{...I.data.params,[e]:t}})}function oe(e){L(`update:data`,{config:{...I.data.config,...e}})}return a([Z,z],()=>ne(),{immediate:!0}),(e,a)=>{let s=ee,u=g,m=_;return p(),t(`div`,C,[o(`div`,w,[o(`label`,T,c(f(R)(`components.automation_nodes.plugin_name`)),1),l(s,{"model-value":d.data.pluginName,options:f(q),"option-label":`label`,"option-value":`value`,placeholder:f(R)(`components.automation_nodes.plugin_name_placeholder`),class:`w-full`,loading:f(H),"onUpdate:modelValue":re},null,8,[`model-value`,`options`,`placeholder`,`loading`])]),o(`div`,E,[o(`label`,D,c(f(R)(`components.automation_nodes.plugin_interface`)),1),l(s,{"model-value":d.data.pluginInterface,options:f(Y),"option-label":`label`,"option-value":`value`,placeholder:f(R)(`components.automation_nodes.plugin_interface_placeholder`),class:`w-full`,disabled:!d.data.pluginName,"onUpdate:modelValue":ie},null,8,[`model-value`,`options`,`placeholder`,`disabled`])]),o(`div`,O,[o(`label`,k,c(f(R)(`components.automation_nodes.plugin_method`)),1),l(s,{"model-value":d.data.method,options:f(X),"option-label":`label`,"option-value":`value`,placeholder:f(R)(`components.automation_nodes.plugin_method_placeholder`),class:`w-full`,disabled:!d.data.pluginInterface,"onUpdate:modelValue":ae},null,8,[`model-value`,`options`,`placeholder`,`disabled`])]),f(Z)?(p(!0),t(r,{key:0},n(f(Z).params,e=>(p(),t(`div`,{key:e.name,class:`flex flex-col field-gap`},[o(`label`,A,c(f(R)(e.labelKey)),1),l(b,{"model-value":d.data.params[e.name]??``,"node-id":d.nodeId,placeholder:e.placeholder,"onUpdate:modelValue":t=>$(e.name,String(t??``))},null,8,[`model-value`,`node-id`,`placeholder`,`onUpdate:modelValue`]),l(S,{variables:f(K),onSelect:t=>$(e.name,(d.data.params[e.name]??``)+t)},null,8,[`variables`,`onSelect`])]))),128)):i(``,!0),f(Z)?.settingsMethod&&f(W)?.length?(p(),t(r,{key:1},[l(u),o(`div`,j,[o(`span`,M,c(f(R)(`components.automation_nodes.plugin_settings`)),1),l(m,{"schema-form":{schema:f(W),config:d.data.config??{}},loading:f(G),"save-button-label":f(R)(`components.automation_nodes.plugin_apply_settings`),"show-button":``,onOnFormSubmit:oe},null,8,[`schema-form`,`loading`,`save-button-label`])])],64)):i(``,!0)])}}});export{N as default};
1
+ import{$n as e,$t as t,En as n,Gt as r,Qt as i,Rn as a,Xt as o,Yt as s,dr as c,in as l,nr as u,on as d,sr as f,wn as p}from"./vendor-DmhYd_sB.js";import{Ht as m,di as h}from"./vendor-cameraui-DggYb17u.js";import{U as g,j as ee}from"./vendor-primevue--pcuf6kA.js";import{t as _}from"./CuiSchema-B0M5qZi-.js";import{t as v}from"./plugins-DzRwEcA4.js";import{n as y,t as b}from"./VariableInput-D_-qKfZK.js";import{t as x}from"./automations-Bj3wF0wR.js";import{t as S}from"./VariableSuggestions-Br4yDsLZ.js";import{t as te}from"./automations-C6ssihoC.js";var C={class:`flex flex-col gap-4`},w={class:`flex flex-col field-gap`},T={class:`cui-label`},E={class:`flex flex-col field-gap`},D={class:`cui-label`},O={class:`flex flex-col field-gap`},k={class:`cui-label`},A={class:`cui-label`},j={class:`flex flex-col gap-3`},M={class:`text-xs font-semibold text-muted uppercase`},N=d({__name:`ConfigActionPlugin`,props:{data:{},nodeId:{}},emits:[`update:data`],setup(d,{emit:N}){let P=new v,F=new te,I=d,L=N,{t:R}=h(),{plugin:z}=m(s(()=>I.data.pluginName)),B=x(),{data:V,isBusy:H}=P.getPluginsQuery({page:1,pageSize:-1}),{data:U}=F.getPluginMethodsQuery(),W=u(),G=e(!1),K=s(()=>y(B.draft,I.nodeId)),q=s(()=>V.value?.result?V.value.result.filter(e=>e.contract?.interfaces?.length).map(e=>({label:e.pluginName,value:e.pluginName})):[]),J=s(()=>{if(!(!I.data.pluginName||!V.value?.result))return V.value.result.find(e=>e.pluginName===I.data.pluginName)}),Y=s(()=>(J.value?.contract?.interfaces??[]).filter(e=>Q(e).length>0).map(e=>({label:e.replace(/([A-Z])/g,` $1`).trim(),value:e}))),X=s(()=>I.data.pluginInterface?Q(I.data.pluginInterface).map(e=>({label:R(e.labelKey),value:e.id})):[]),Z=s(()=>{if(!(!I.data.pluginInterface||!I.data.method))return Q(I.data.pluginInterface).find(e=>e.id===I.data.method)});function Q(e){return U.value?.[e]??[]}async function ne(){let e=Z.value?.settingsMethod;if(!e||!z.value){W.value=void 0;return}G.value=!0;try{let t=z.value[e];W.value=t?await t():void 0}catch{W.value=void 0}finally{G.value=!1}}function re(e){L(`update:data`,{pluginName:e,pluginInterface:``,method:``,params:{},config:{}})}function ie(e){L(`update:data`,{pluginInterface:e,method:``,params:{},config:{}})}function ae(e){L(`update:data`,{method:e,params:{},config:{}})}function $(e,t){L(`update:data`,{params:{...I.data.params,[e]:t}})}function oe(e){L(`update:data`,{config:{...I.data.config,...e}})}return a([Z,z],()=>ne(),{immediate:!0}),(e,a)=>{let s=ee,u=g,m=_;return p(),t(`div`,C,[o(`div`,w,[o(`label`,T,c(f(R)(`components.automation_nodes.plugin_name`)),1),l(s,{"model-value":d.data.pluginName,options:f(q),"option-label":`label`,"option-value":`value`,placeholder:f(R)(`components.automation_nodes.plugin_name_placeholder`),class:`w-full`,loading:f(H),"onUpdate:modelValue":re},null,8,[`model-value`,`options`,`placeholder`,`loading`])]),o(`div`,E,[o(`label`,D,c(f(R)(`components.automation_nodes.plugin_interface`)),1),l(s,{"model-value":d.data.pluginInterface,options:f(Y),"option-label":`label`,"option-value":`value`,placeholder:f(R)(`components.automation_nodes.plugin_interface_placeholder`),class:`w-full`,disabled:!d.data.pluginName,"onUpdate:modelValue":ie},null,8,[`model-value`,`options`,`placeholder`,`disabled`])]),o(`div`,O,[o(`label`,k,c(f(R)(`components.automation_nodes.plugin_method`)),1),l(s,{"model-value":d.data.method,options:f(X),"option-label":`label`,"option-value":`value`,placeholder:f(R)(`components.automation_nodes.plugin_method_placeholder`),class:`w-full`,disabled:!d.data.pluginInterface,"onUpdate:modelValue":ae},null,8,[`model-value`,`options`,`placeholder`,`disabled`])]),f(Z)?(p(!0),t(r,{key:0},n(f(Z).params,e=>(p(),t(`div`,{key:e.name,class:`flex flex-col field-gap`},[o(`label`,A,c(f(R)(e.labelKey)),1),l(b,{"model-value":d.data.params[e.name]??``,"node-id":d.nodeId,placeholder:e.placeholder,"onUpdate:modelValue":t=>$(e.name,String(t??``))},null,8,[`model-value`,`node-id`,`placeholder`,`onUpdate:modelValue`]),l(S,{variables:f(K),onSelect:t=>$(e.name,(d.data.params[e.name]??``)+t)},null,8,[`variables`,`onSelect`])]))),128)):i(``,!0),f(Z)?.settingsMethod&&f(W)?.length?(p(),t(r,{key:1},[l(u),o(`div`,j,[o(`span`,M,c(f(R)(`components.automation_nodes.plugin_settings`)),1),l(m,{"schema-form":{schema:f(W),config:d.data.config??{}},loading:f(G),"save-button-label":f(R)(`components.automation_nodes.plugin_apply_settings`),"show-button":``,onOnFormSubmit:oe},null,8,[`schema-form`,`loading`,`save-button-label`])])],64)):i(``,!0)])}}});export{N as default};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-CMxvf4Kt.js";import{i as t}from"./api-BaywoTCE.js";import{$n as n,$t as r,C as i,Dn as a,En as o,Gt as s,Hn as c,Ht as l,In as u,Jn as d,On as f,Pn as p,Qt as m,Rn as h,Rt as g,T as _,Tn as v,Vn as y,Wt as b,Xt as x,Yn as S,Yt as C,Zt as w,ar as T,cr as E,dn as D,dr as O,hn as k,in as A,mn as j,on as M,rn as N,sr as P,w as F,wn as I,x as L}from"./vendor-DmhYd_sB.js";import{Vn as ee,et as R,fi as z,st as B}from"./vendor-cameraui-DggYb17u.js";import{f as V}from"./vendor-core-B6F-imJj.js";import{t as H}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as te}from"./close-WdhW_91X.js";import{D as U,E as ne,G as re,H as ie,J as W,K as G,L as K,O as q,R as ae,T as J,W as oe,g as se,j as ce,k as le,l as ue,s as de,z as fe}from"./vendor-primevue--pcuf6kA.js";import{t as pe}from"./CuiImage-60jwFIqc.js";import{_ as me,c as he,d as ge,f as _e,g as ve,h as Y,i as ye,l as be,m as X,n as xe,o as Se,p as Ce,r as Z,s as Q,u as we,v as Te,y as $}from"./types-kxdn9XBW.js";import{t as Ee}from"./theme-D08Upl8q.js";import{t as De}from"./check-BQQidcYi.js";var Oe=M({__name:`CuiChipGroup`,props:j({selectedClass:{},disabled:{type:Boolean},mandatory:{type:Boolean},multiple:{type:Boolean}},{modelValue:{required:!1},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=e,n=p(e,`modelValue`),{selectedClass:i,disabled:o,mandatory:s,multiple:c}=T(t);function l(e){if(!o.value)if(c.value){let t=[...Array.isArray(n.value)?n.value:[]];t.includes(e)?(!s.value||t.length>1)&&(t=t.filter(t=>t!==e)):t.push(e),n.value=t}else n.value===e?s.value||(n.value=void 0):n.value=e}return v(`chipGroup`,{modelValue:n,selectedClass:i,disabled:o,mandatory:s,updateSelected:l}),(e,t)=>(I(),r(`div`,{class:E([`flex flex-wrap gap-2`,{"opacity-60 pointer-events-none":P(o)}])},[a(e.$slots,`default`)],2))}}),ke={key:0,class:`absolute left-1 top-1/2 transform -translate-y-1/2 flex items-center justify-center cui-icon-sm`},Ae=H(M({__name:`CuiChip`,props:{value:{},removable:{type:Boolean},disabled:{type:Boolean},size:{},filter:{type:Boolean}},setup(e){let{value:t,removable:n,disabled:i,size:o,filter:s}=T(e),c=D(`chipGroup`),l=C(()=>!!(i.value||c?.disabled.value)),u=C(()=>{if(!c)return!1;let e=c.modelValue.value;return Array.isArray(e)?e.includes(t.value):e===t.value}),d=C(()=>u.value?c?.selectedClass.value:void 0);function f(){l.value||c?.updateSelected(t.value)}return(e,t)=>{let i=De,c=J;return I(),w(c,{removable:P(n),disabled:P(l),class:E([`cui-chip inline-flex cursor-pointer transition-all rounded-full py-1 px-2 relative justify-center items-center`,[{"cui-chip-selected":P(u),"cui-chip-disabled":P(l),"cui-chip-small":P(o)===`small`,"cui-chip-medium":P(o)===`medium`,"cui-chip-large":P(o)===`large`,"pl-7":P(s)&&P(u)},P(d)]]),onClick:f},{default:y(()=>[A(g,{name:`fade`},{default:y(()=>[P(s)&&P(u)?(I(),r(`div`,ke,[A(i,{width:`100%`,height:`100%`})])):m(``,!0)]),_:1}),a(e.$slots,`default`,{},void 0,!0),a(e.$slots,`append`,{},void 0,!0)]),_:3},8,[`removable`,`disabled`,`class`])}}}),[[`__scopeId`,`data-v-d10419fb`]]),je={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Me(e,t){return I(),r(`svg`,je,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M17 13h-4v4h-2v-4H7v-2h4V7h2v4h4m-5-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2`},null,-1)]])}var Ne=S({name:`mdi-plus-circle`,render:Me}),Pe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Fe(e,t){return I(),r(`svg`,Pe,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2`},null,-1)]])}var Ie=S({name:`mdi-information`,render:Fe}),Le=e(L(),1),Re={key:0,class:`flex flex-col field-gap`},ze=[`for`],Be={key:1,class:`flex flex-col field-gap`},Ve=[`for`],He=[`for`],Ue=[`for`],We={class:`flex items-center gap-4`},Ge={class:`flex flex-col field-switch-gap`},Ke=[`for`],qe=[`for`],Je={class:`flex gap-2 items-center w-full`},Ye={class:`text-color`},Xe={class:`w-full h-full flex flex-col gap-6`},Ze={class:`flex flex-row w-full items-center justify-center mt-3`},Qe=M({__name:`CuiSchemaField`,props:j({schemaField:{},configKey:{},arrayItem:{},loading:{type:Boolean,default:!1}},{modelValue:{type:Object,required:!0},modelModifiers:{}}),emits:j([`onAction`,`onSubmit`,`onTrigger`],[`update:modelValue`]),setup(e,{emit:t}){let a=e,l=t,u=p(e,`modelValue`),{theme:_}=V(Ee()),{schemaField:v,configKey:S}=T(a),E=n(0),D=n(0),j=n(v.value.opened?[S.value]:[]),M=z(async()=>{if(X(v.value)&&v.value.format===`qrCode`){let e;return e=_.value===`dark`?{dark:`#FFFFFFFF`,light:`#FF000000`}:{dark:`#404040FF`,light:`#FFFFFFFF`},await Le.toDataURL(H.value||``,{margin:.5,type:`image/png`,color:e,scale:10})}},void 0,{lazy:!0}),L=C(()=>{if(X(v.value)&&v.value.format===`image`)return H.value}),H=C({get:()=>(E.value,Q(u.value,S.value)),set:e=>{let t=v.value,n=e;_e(t)?n=t.multiple?Array.isArray(e)?e:[e]:e&&e.toString():X(t)?n=e==null?``:e.toString():Ce(t)?n=typeof e==`number`?e:parseFloat(e)||0:be(t)&&(n=e===`true`||e===!0),$(u.value,S.value,n),E.value++}});function re(e,t){let n=Q(e,t);return Array.isArray(n)?n:[]}function ie(e){let t=Q(u.value,e),n=Array.isArray(t)?[...t]:[];he(v.value)&&v.value.items&&(n.push(ye(v.value.items)),$(u.value,e,n),D.value++)}function J(e,t){let n=Q(u.value,e);if(Array.isArray(n)){let r=[...n];r.splice(t,1),$(u.value,e,r),D.value++,l(`onTrigger`)}}return h(u,()=>{E.value++},{deep:!0}),(t,n)=>{let a=pe,p=R,h=de,_=te,C=ee,T=K,E=ae,z=fe,V=se,oe=G,me=ce,ge=ue,ye=Ie,xe=q,Se=f(`CuiSchemaField`,!0),Z=Ne,Q=le,Te=U,$=ne,Ee=B,De=W;return I(),r(`div`,null,[P(X)(P(v))&&P(v).format===`qrCode`?(I(),r(`div`,Re,[x(`label`,{for:P(S),class:`cui-label`},O(P(v).title),9,ze),A(a,{src:P(M),class:`mb-3`,"image-container-class":`w-full h-full`},null,8,[`src`])])):m(``,!0),P(X)(P(v))&&P(v).format===`image`?(I(),r(`div`,Be,[x(`label`,{for:P(S),class:`cui-label`},O(P(v).title),9,Ve),A(a,{src:P(L),class:`mb-3`,"image-container-class":`w-full h-full`},null,8,[`src`])])):P(ve)(P(v))?(I(),w(P(F),{key:2,modelValue:P(H),"onUpdate:modelValue":n[1]||=e=>d(H)?H.value=e:null,modelModifiers:{trim:!0},name:P(S),as:`div`,class:`flex flex-col field-gap`},{default:y(({field:t,errors:r})=>[x(`label`,{for:P(S),class:`cui-label`},O(P(v).title),9,He),A(E,null,{default:y(()=>[P(v).format===`password`?(I(),w(h,k({key:1,"model-value":P(H),invalid:r.length>0,readonly:P(v).readonly},t,{feedback:!1,"toggle-mask":``}),null,16,[`model-value`,`invalid`,`readonly`])):(I(),w(p,k({key:0},t,{invalid:r.length>0,readonly:P(v).readonly,placeholder:P(v).placeholder,loading:e.loading,type:`text`}),null,16,[`invalid`,`readonly`,`placeholder`,`loading`])),e.arrayItem?(I(),w(T,{key:2},{default:y(()=>[A(C,{text:``,severity:`secondary`,loading:e.loading,onClick:n[0]||=t=>J(e.arrayItem.key,e.arrayItem.index)},{icon:y(()=>[A(_)]),_:1},8,[`loading`])]),_:1})):m(``,!0)]),_:2},1024),A(g,{name:`fade`},{default:y(()=>[A(P(i),{name:P(S),class:`cui-input-error`},null,8,[`name`])]),_:1}),!r.length&&P(v).description?(I(),w(z,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:y(()=>[N(O(P(v).description),1)]),_:1})):m(``,!0)]),_:1},8,[`modelValue`,`name`])):P(Ce)(P(v))?(I(),w(P(F),{key:3,"model-value":P(H),name:P(S),as:`div`,class:`flex flex-col field-gap`},{default:y(({field:t,errors:r})=>[x(`label`,{for:P(S),class:`cui-label`},O(P(v).title),9,Ue),A(E,null,{default:y(()=>[A(V,k(t,{modelValue:P(H),"onUpdate:modelValue":n[2]||=e=>d(H)?H.value=e:null,invalid:r.length>0,readonly:P(v).readonly,step:P(v).step||1,min:P(v).minimum,max:P(v).maximum,"use-grouping":!1,loading:e.loading,onValueChange:n[3]||=e=>H.value=e??void 0,onInput:n[4]||=e=>H.value=e.value??void 0}),null,16,[`modelValue`,`invalid`,`readonly`,`step`,`min`,`max`,`loading`]),e.arrayItem?(I(),w(T,{key:0},{default:y(()=>[A(C,{text:``,rounded:``,severity:`danger`,loading:e.loading,onClick:n[5]||=t=>J(e.arrayItem.key,e.arrayItem.index)},{icon:y(()=>[A(_)]),_:1},8,[`loading`])]),_:1})):m(``,!0)]),_:2},1024),A(g,{name:`fade`},{default:y(()=>[A(P(i),{name:P(S),class:`cui-input-error`},null,8,[`name`])]),_:1}),!r.length&&P(v).description?(I(),w(z,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:y(()=>[N(O(P(v).description),1)]),_:1})):m(``,!0)]),_:1},8,[`model-value`,`name`])):P(be)(P(v))?(I(),w(P(F),{key:4,"model-value":P(H),value:!0,"unchecked-value":!1,type:`checkbox`,name:P(S),as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:y(({field:t,errors:r})=>[x(`div`,We,[x(`div`,Ge,[x(`label`,{for:P(S),class:`cui-label-switch`},O(P(v).title),9,Ke),A(z,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:y(()=>[N(O(P(v).description),1)]),_:1}),A(g,{name:`fade`},{default:y(()=>[A(P(i),{name:P(S),class:`cui-input-switch-error`},null,8,[`name`])]),_:1})]),A(oe,k({"model-value":P(H)},t,{invalid:r.length>0,loading:e.loading,class:`ml-auto shrink-0`,onValueChange:n[6]||=e=>H.value=e}),null,16,[`model-value`,`invalid`,`loading`])])]),_:1},8,[`model-value`,`name`])):P(_e)(P(v))?(I(),w(P(F),{key:5,"model-value":P(H),name:P(S),as:`div`,class:`flex flex-col field-gap`},{default:y(({field:t,errors:r})=>[x(`label`,{for:P(S),class:`cui-label`},O(P(v).title),9,qe),A(E,null,{default:y(()=>[P(v).multiple?(I(),w(ge,k({key:1},t,{"model-value":P(H),options:P(v).enum,invalid:r.length>0,disabled:P(v).readonly,placeholder:P(v).placeholder,"show-clear":!P(v).required&&!P(v).readonly,"show-toggle-all":!1,"max-selected-labels":3,loading:e.loading,onValueChange:n[8]||=e=>H.value=e}),null,16,[`model-value`,`options`,`invalid`,`disabled`,`placeholder`,`show-clear`,`loading`])):(I(),w(me,k({key:0},t,{"model-value":P(H),options:P(v).enum,invalid:r.length>0,disabled:P(v).readonly,placeholder:P(v).placeholder,loading:e.loading,onValueChange:n[7]||=e=>H.value=e}),null,16,[`model-value`,`options`,`invalid`,`disabled`,`placeholder`,`loading`])),e.arrayItem?(I(),w(T,{key:2},{default:y(()=>[A(C,{text:``,rounded:``,severity:`danger`,loading:e.loading,onClick:n[9]||=t=>J(e.arrayItem.key,e.arrayItem.index)},{icon:y(()=>[A(_)]),_:1},8,[`loading`])]),_:1})):m(``,!0)]),_:2},1024),A(g,{name:`fade`},{default:y(()=>[A(P(i),{name:P(S),class:`cui-input-error`},null,8,[`name`])]),_:1}),!r.length&&P(v).description?(I(),w(z,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:y(()=>[N(O(P(v).description),1)]),_:1})):m(``,!0)]),_:1},8,[`model-value`,`name`])):P(we)(P(v))?(I(),r(s,{key:6},[A(C,{fluid:``,class:`mt-3 mb-1 cui-button-medium`,severity:P(v).color??`secondary`,loading:e.loading,label:P(v).title,onClick:n[10]||=b(e=>l(`onAction`,{key:P(S)}),[`prevent`])},null,8,[`severity`,`loading`,`label`]),P(v).description?(I(),w(z,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:y(()=>[N(O(P(v).description),1)]),_:1})):m(``,!0)],64)):P(Y)(P(v))?(I(),r(s,{key:7},[A(C,{fluid:``,class:`mt-3 mb-1 cui-button-medium`,severity:P(v).color??`secondary`,loading:e.loading,label:P(v).title,onClick:n[11]||=b(e=>l(`onSubmit`,{key:P(v).key}),[`prevent`])},null,8,[`severity`,`loading`,`label`]),P(v).description?(I(),w(z,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:y(()=>[N(O(P(v).description),1)]),_:1})):m(``,!0)],64)):P(he)(P(v))&&P(v).items?(I(),w(Ee,{key:8,class:`cui-card border-color-inner`,pt:{body:{class:`p-1`}}},{content:y(()=>[(I(),w($,{key:P(D),value:P(j),"onUpdate:value":n[18]||=e=>d(j)?j.value=e:null,multiple:``},{default:y(()=>[A(Te,{value:P(S)??`0`,class:`border-none`},{default:y(()=>[A(xe,null,{default:y(()=>[x(`div`,Je,[P(v).description?c((I(),w(ye,{key:0,class:`text-muted`},null,512)),[[De,{value:P(v).description}]]):m(``,!0),x(`span`,Ye,O(P(v).title||P(S)),1),e.arrayItem?(I(),w(C,{key:1,text:``,rounded:``,severity:`danger`,class:`cui-icon-md ml-auto mr-2`,loading:e.loading,onClick:n[12]||=t=>J(e.arrayItem.key,e.arrayItem.index)},{icon:y(()=>[A(_,{width:`100%`,height:`100%`})]),_:1},8,[`loading`])):m(``,!0)])]),_:1}),A(Q,null,{default:y(()=>[x(`div`,Xe,[(I(!0),r(s,null,o(re(u.value,P(S)),(t,r)=>(I(),w(Se,{key:`item-${r}`,modelValue:u.value,"onUpdate:modelValue":n[13]||=e=>u.value=e,"schema-field":P(v).items,"config-key":`${P(S)}[${r}]`,"array-item":{key:P(S),index:r},loading:e.loading,onOnAction:n[14]||=e=>l(`onAction`,e),onOnSubmit:n[15]||=e=>l(`onSubmit`,e),onOnTrigger:n[16]||=()=>D.value++},null,8,[`modelValue`,`schema-field`,`config-key`,`array-item`,`loading`]))),128)),x(`div`,Ze,[A(C,{text:``,rounded:``,class:`cui-icon-md`,loading:e.loading,onClick:n[17]||=b(e=>ie(P(S)),[`prevent`])},{icon:y(()=>[A(Z,{width:`100%`,height:`100%`})]),_:1},8,[`loading`])])])]),_:1})]),_:1},8,[`value`])]),_:1},8,[`value`]))]),_:1})):m(``,!0)])}}}),$e={key:0,class:`flex flex-col gap-6`},et={key:1,class:`flex flex-col gap-6`},tt=M({__name:`CuiSchema`,props:{schemaForm:{},loading:{type:Boolean,default:!1},disableButton:{type:Boolean},saveButton:{type:Boolean,default:!0},saveButtonLabel:{},saveButtonColor:{},showButton:{type:Boolean,default:!1}},emits:[`onSubmit`,`onAction`,`onFormSubmit`,`changeGroup`],setup(e,{expose:i,emit:a}){let f=e,p=a,{schemaForm:g,loading:v,saveButton:b,saveButtonLabel:S,showButton:E,disableButton:D,saveButtonColor:j}=T(f),M=u(`formRef`),F=n(``),L=n(!1),R=n({}),z=C(()=>Se(g.value.schema)),B=C(()=>{let e=[];return g.value.schema.forEach(t=>{t.group&&!t.hidden&&!e.includes(t.group)&&e.push(t.group)}),e.length&&!F.value&&(F.value=e[0]),e}),V=C(()=>me(g.value.schema,F.value)),H=C(()=>Te(g.value.schema,F.value)),te=C(()=>g.value.schema.filter(e=>!e.group&&!e.hidden));function U(e){return g.value.schema.filter(t=>t.group===e&&!t.hidden)}function ne(e){let t=X(e)&&e.format===`qrCode`,n=X(e)&&e.format===`image`,r=we(e)||Y(e);return!t&&!n&&!r}function W(e){return`condition`in e&&e.condition&&!xe(e.condition,R.value)?!1:!e.hidden||e.hidden&&ne(e)}async function G(){return await M.value?.validate()}function K(e){p(`onAction`,e)}async function q(e){let t=await G();t?.valid&&t?.values?(L.value=!1,p(`onSubmit`,{key:e.key,payload:t.values})):(L.value=!0,console.error(`result`,t))}async function ae(){let e=await G();e?.valid&&e?.values?(L.value=!1,p(`onFormSubmit`,e.values)):(L.value=!0,console.error(`Form validation failed:`,e))}function J(){M.value?.resetForm()}return h([g,M],([])=>{M.value&&(!ge(M.value.values,g.value.schema)||L.value)&&(R.value=M.value.values),g.value.config&&Object.keys(g.value.config).length?R.value={...Z(g.value.schema),...t(g.value.config)}:R.value=Z(g.value.schema)},{immediate:!0,deep:!0}),h(F,e=>{e&&p(`changeGroup`,e)}),i({reset:J,validate:G}),(e,t)=>{let n=Ae,i=Oe,a=Qe,u=ie,f=oe,p=re,h=ee;return I(),r(`div`,null,[A(P(_),{ref_key:`formRef`,ref:M,"validation-schema":P(z),onSubmit:ae},{default:y(()=>[P(B).length?(I(),r(`div`,$e,[A(i,{modelValue:P(F),"onUpdate:modelValue":t[0]||=e=>d(F)?F.value=e:null,mandatory:``},{default:y(()=>[(I(!0),r(s,null,o(P(B),e=>(I(),w(n,{key:e,size:`small`,value:e},{default:y(()=>[N(O(e),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`]),A(p,{value:P(F),"onUpdate:value":t[2]||=e=>d(F)?F.value=e:null,scrollable:``,class:`w-full h-full`},{default:y(()=>[A(f,{class:`p-0`},{default:y(()=>[(I(!0),r(s,null,o(P(B),(e,n)=>(I(),w(u,{key:n,value:e,"as-child":``},{default:y(n=>[c(x(`div`,k({class:n.class},{ref_for:!0},n.a11yAttrs,{class:`flex flex-col gap-6`}),[(I(!0),r(s,null,o(U(e),e=>(I(),r(s,{key:e.key},[W(e)?c((I(),w(a,{key:0,modelValue:P(R),"onUpdate:modelValue":t[1]||=e=>d(R)?R.value=e:null,"schema-field":e,"config-key":e.key,loading:P(v),onOnAction:K,onOnSubmit:q},null,8,[`modelValue`,`schema-field`,`config-key`,`loading`])),[[l,!e.hidden]]):m(``,!0)],64))),128))],16),[[l,n.active]])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`value`]),(I(!0),r(s,null,o(P(te),e=>(I(),r(s,{key:e.key},[W(e)?c((I(),w(a,{key:0,modelValue:P(R),"onUpdate:modelValue":t[3]||=e=>d(R)?R.value=e:null,"schema-field":e,"config-key":e.key,loading:P(v),onOnAction:K,onOnSubmit:q},null,8,[`modelValue`,`schema-field`,`config-key`,`loading`])),[[l,!e.hidden]]):m(``,!0)],64))),128))])):(I(),r(`div`,et,[(I(!0),r(s,null,o(P(g).schema,e=>(I(),r(s,{key:e.key},[W(e)?c((I(),w(a,{key:0,modelValue:P(R),"onUpdate:modelValue":t[4]||=e=>d(R)?R.value=e:null,"schema-field":e,"config-key":e.key,loading:P(v),onOnAction:K,onOnSubmit:q},null,8,[`modelValue`,`schema-field`,`config-key`,`loading`])),[[l,!e.hidden]]):m(``,!0)],64))),128))])),!P(V)&&P(H)&&P(b)||P(E)?(I(),w(h,{key:2,fluid:``,class:`mt-7 cui-button-medium`,severity:P(j),type:`submit`,loading:P(v),disabled:P(D),label:P(S)||e.$t(`components.form.button.save`)},null,8,[`severity`,`loading`,`disabled`,`label`])):m(``,!0)]),_:1},8,[`validation-schema`])])}}});export{Oe as a,Ae as i,Ie as n,Ne as r,tt as t};
@@ -1 +1 @@
1
- import{d as e,f as t}from"./api-BaywoTCE.js";import{$t as n,An as r,En as i,Gt as a,On as o,Qt as s,Vn as c,Xt as l,Yn as u,Yt as d,Zt as f,dr as p,in as m,nn as h,on as g,rn as _,sr as v,wn as y}from"./vendor-DmhYd_sB.js";import{di as b}from"./vendor-cameraui-DggYb17u.js";import{f as x}from"./vendor-core-B6F-imJj.js";import{t as S}from"./power-CxGfHa98.js";import{t as C}from"./CuiAvatar-Bu4NixiB.js";import{n as w}from"./router-DGyFln7e.js";import{t as T}from"./hasPermission-DIF0bX8u.js";import{n as E,r as D}from"./CuiMenu-B4CHT2F_.js";import{t as O}from"./information-outline-fu18_QSH.js";import{t as k}from"./chevron-right-DOmJR2OL.js";var A={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function j(e,t){return y(),n(`svg`,A,[...t[0]||=[l(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`1.5`,d:`M17 20V4m0 0l3 3m-3-3l-3 3M7 4v16m0 0l3-3m-3 3l-3-3`},null,-1)]])}var M=u({name:`iconoir-data-transfer-both`,render:j}),N={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function P(e,t){return y(),n(`svg`,N,[...t[0]||=[h(`<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="1.5"><path d="M11 21H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v7"></path><path stroke-linejoin="round" d="M2 7h20M5 5.01l.01-.011M8 5.01l.01-.011M11 5.01l.01-.011m10.657 11.668C21.047 15.097 19.635 14 17.99 14c-1.758 0-3.252 1.255-3.793 3"></path><path stroke-linejoin="round" d="M19.995 16.772H21.4a.6.6 0 0 0 .6-.6V14.55m-7.666 4.783C14.953 20.903 16.366 22 18.01 22c1.758 0 3.252-1.255 3.793-3"></path><path stroke-linejoin="round" d="M16.005 19.228H14.6a.6.6 0 0 0-.6.6v1.622"></path></g>`,1)]])}var F=u({name:`iconoir-reload-window`,render:P}),I={class:`flex flex-col items-center py-8`},L={class:`mt-3 text-lg font-semibold`},R={class:`text-sm text-muted`},z={class:`px-4 mb-4`},B={class:`card-title`},V={key:0,class:`px-4 mb-4`},H={class:`card-title`},U={class:`px-4 mb-4`},W={class:`card-title`},G={class:`text-primary`},K=g({__name:`Menu`,setup(u){let{t:h}=b(),g=e(),{user:A}=x(g),j=new Set([`Faces`,`Plugins`,`Settings`]),N=d(()=>w.filter(e=>e.meta?.profileMenu&&e.meta.auth&&T(e))),P=d(()=>N.value.filter(e=>j.has(e.name)).map(e=>({to:e.path,label:h(`navigation.${e.name.toLowerCase()}`),icon:e.meta.profileMenu.icon.default}))),K=d(()=>N.value.filter(e=>!j.has(e.name)).map(e=>({to:e.path,label:h(`navigation.${e.name.toLowerCase()}`),icon:e.meta.profileMenu.icon.default})));function q(){window.location.reload()}async function J(){await t()}return(e,t)=>{let u=C,d=o(`RouterLink`),h=k,b=E,x=D,w=O,T=F,j=M,N=S;return y(),n(`div`,null,[l(`section`,I,[m(d,{to:`/settings/account`,class:`flex flex-col items-center justify-center`},{default:c(()=>[m(u,{src:`avatar`,size:80,style:{width:`80px`,height:`80px`}}),l(`div`,L,p(v(A)?.username??`Unknown`),1),l(`div`,R,p(v(A)?.role??`user`),1)]),_:1})]),l(`section`,z,[l(`span`,B,p(e.$t(`views.menu.section_app`)),1),m(x,{size:`large`,dividers:``},{default:c(()=>[(y(!0),n(a,null,i(v(P),e=>(y(),f(b,{key:e.to,to:e.to},{prepend:c(()=>[(y(),f(r(e.icon),{class:`w-5 h-5 text-muted`}))]),append:c(()=>[m(h,{class:`w-5 h-5 text-muted`})]),default:c(()=>[_(` `+p(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:1})]),v(K).length?(y(),n(`section`,V,[l(`span`,H,p(e.$t(`views.menu.section_system`)),1),m(x,{size:`large`,dividers:``},{default:c(()=>[(y(!0),n(a,null,i(v(K),e=>(y(),f(b,{key:e.to,to:e.to},{prepend:c(()=>[(y(),f(r(e.icon),{class:`w-5 h-5 text-muted`}))]),append:c(()=>[m(h,{class:`w-5 h-5 text-muted`})]),default:c(()=>[_(` `+p(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:1})])):s(``,!0),l(`section`,U,[l(`span`,W,p(e.$t(`views.menu.section_actions`)),1),m(x,{size:`large`,dividers:``},{default:c(()=>[m(b,{to:`/about`},{prepend:c(()=>[m(w,{class:`w-5 h-5 text-muted`})]),append:c(()=>[m(h,{class:`w-5 h-5 text-muted`})]),default:c(()=>[_(` `+p(e.$t(`navigation.about`))+` `,1)]),_:1}),m(b,{onClick:q},{prepend:c(()=>[m(T,{class:`w-5 h-5 text-muted`})]),default:c(()=>[_(` `+p(e.$t(`views.menu.reload`)),1)]),_:1}),v(!1)?(y(),f(b,{key:0,onClick:J},{prepend:c(()=>[m(j,{class:`w-5 h-5 text-muted`})]),default:c(()=>[_(` `+p(e.$t(`views.menu.switch_server`)),1)]),_:1})):s(``,!0),m(b,{onClick:t[0]||=()=>v(g).logout()},{prepend:c(()=>[m(N,{class:`w-5 h-5 text-primary`})]),default:c(()=>[l(`span`,G,p(e.$t(`views.menu.logout`)),1)]),_:1})]),_:1})])])}}});export{K as default};
1
+ import{d as e,f as t}from"./api-BaywoTCE.js";import{$t as n,An as r,En as i,Gt as a,On as o,Qt as s,Vn as c,Xt as l,Yn as u,Yt as d,Zt as f,dr as p,in as m,nn as h,on as g,rn as _,sr as v,wn as y}from"./vendor-DmhYd_sB.js";import{di as b}from"./vendor-cameraui-DggYb17u.js";import{f as x}from"./vendor-core-B6F-imJj.js";import{t as S}from"./power-CxGfHa98.js";import{t as C}from"./CuiAvatar-Bu4NixiB.js";import{n as w}from"./router-BQMVP169.js";import{t as T}from"./hasPermission-DIF0bX8u.js";import{n as E,r as D}from"./CuiMenu-B4CHT2F_.js";import{t as O}from"./information-outline-fu18_QSH.js";import{t as k}from"./chevron-right-DOmJR2OL.js";var A={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function j(e,t){return y(),n(`svg`,A,[...t[0]||=[l(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`1.5`,d:`M17 20V4m0 0l3 3m-3-3l-3 3M7 4v16m0 0l3-3m-3 3l-3-3`},null,-1)]])}var M=u({name:`iconoir-data-transfer-both`,render:j}),N={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function P(e,t){return y(),n(`svg`,N,[...t[0]||=[h(`<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="1.5"><path d="M11 21H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v7"></path><path stroke-linejoin="round" d="M2 7h20M5 5.01l.01-.011M8 5.01l.01-.011M11 5.01l.01-.011m10.657 11.668C21.047 15.097 19.635 14 17.99 14c-1.758 0-3.252 1.255-3.793 3"></path><path stroke-linejoin="round" d="M19.995 16.772H21.4a.6.6 0 0 0 .6-.6V14.55m-7.666 4.783C14.953 20.903 16.366 22 18.01 22c1.758 0 3.252-1.255 3.793-3"></path><path stroke-linejoin="round" d="M16.005 19.228H14.6a.6.6 0 0 0-.6.6v1.622"></path></g>`,1)]])}var F=u({name:`iconoir-reload-window`,render:P}),I={class:`flex flex-col items-center py-8`},L={class:`mt-3 text-lg font-semibold`},R={class:`text-sm text-muted`},z={class:`px-4 mb-4`},B={class:`card-title`},V={key:0,class:`px-4 mb-4`},H={class:`card-title`},U={class:`px-4 mb-4`},W={class:`card-title`},G={class:`text-primary`},K=g({__name:`Menu`,setup(u){let{t:h}=b(),g=e(),{user:A}=x(g),j=new Set([`Faces`,`Plugins`,`Settings`]),N=d(()=>w.filter(e=>e.meta?.profileMenu&&e.meta.auth&&T(e))),P=d(()=>N.value.filter(e=>j.has(e.name)).map(e=>({to:e.path,label:h(`navigation.${e.name.toLowerCase()}`),icon:e.meta.profileMenu.icon.default}))),K=d(()=>N.value.filter(e=>!j.has(e.name)).map(e=>({to:e.path,label:h(`navigation.${e.name.toLowerCase()}`),icon:e.meta.profileMenu.icon.default})));function q(){window.location.reload()}async function J(){await t()}return(e,t)=>{let u=C,d=o(`RouterLink`),h=k,b=E,x=D,w=O,T=F,j=M,N=S;return y(),n(`div`,null,[l(`section`,I,[m(d,{to:`/settings/account`,class:`flex flex-col items-center justify-center`},{default:c(()=>[m(u,{src:`avatar`,size:80,style:{width:`80px`,height:`80px`}}),l(`div`,L,p(v(A)?.username??`Unknown`),1),l(`div`,R,p(v(A)?.role??`user`),1)]),_:1})]),l(`section`,z,[l(`span`,B,p(e.$t(`views.menu.section_app`)),1),m(x,{size:`large`,dividers:``},{default:c(()=>[(y(!0),n(a,null,i(v(P),e=>(y(),f(b,{key:e.to,to:e.to},{prepend:c(()=>[(y(),f(r(e.icon),{class:`w-5 h-5 text-muted`}))]),append:c(()=>[m(h,{class:`w-5 h-5 text-muted`})]),default:c(()=>[_(` `+p(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:1})]),v(K).length?(y(),n(`section`,V,[l(`span`,H,p(e.$t(`views.menu.section_system`)),1),m(x,{size:`large`,dividers:``},{default:c(()=>[(y(!0),n(a,null,i(v(K),e=>(y(),f(b,{key:e.to,to:e.to},{prepend:c(()=>[(y(),f(r(e.icon),{class:`w-5 h-5 text-muted`}))]),append:c(()=>[m(h,{class:`w-5 h-5 text-muted`})]),default:c(()=>[_(` `+p(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:1})])):s(``,!0),l(`section`,U,[l(`span`,W,p(e.$t(`views.menu.section_actions`)),1),m(x,{size:`large`,dividers:``},{default:c(()=>[m(b,{to:`/about`},{prepend:c(()=>[m(w,{class:`w-5 h-5 text-muted`})]),append:c(()=>[m(h,{class:`w-5 h-5 text-muted`})]),default:c(()=>[_(` `+p(e.$t(`navigation.about`))+` `,1)]),_:1}),m(b,{onClick:q},{prepend:c(()=>[m(T,{class:`w-5 h-5 text-muted`})]),default:c(()=>[_(` `+p(e.$t(`views.menu.reload`)),1)]),_:1}),v(!1)?(y(),f(b,{key:0,onClick:J},{prepend:c(()=>[m(j,{class:`w-5 h-5 text-muted`})]),default:c(()=>[_(` `+p(e.$t(`views.menu.switch_server`)),1)]),_:1})):s(``,!0),m(b,{onClick:t[0]||=()=>v(g).logout()},{prepend:c(()=>[m(N,{class:`w-5 h-5 text-primary`})]),default:c(()=>[l(`span`,G,p(e.$t(`views.menu.logout`)),1)]),_:1})]),_:1})])])}}});export{K as default};
@@ -1 +1 @@
1
- import{S as e,c as t}from"./api-BaywoTCE.js";import{$n as n,$t as r,An as i,En as a,Gt as o,Hn as s,In as c,Jn as l,On as u,Qt as d,Rn as f,Sn as p,Ut as m,Vn as h,Wt as g,Xt as _,Yn as v,Yt as y,Zt as b,ar as x,cr as S,dr as C,gn as ee,hn as te,in as w,nr as ne,on as T,rn as re,sr as E,tn as D,wn as O}from"./vendor-DmhYd_sB.js";import{An as k,Bn as A,Ht as ie,Mn as j,Ut as M,Vn as ae,di as oe,et as N,jn as P,st as F}from"./vendor-cameraui-DggYb17u.js";import{c as I}from"./vendor-core-B6F-imJj.js";import{t as L}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as R}from"./useSharedComposables-riqEUgwX.js";import{B as z,G as se,H as ce,J as B,K as V,V as H,W as le,a as U}from"./vendor-primevue--pcuf6kA.js";import{t as ue}from"./cctv-SQFfbBnL.js";import{t as de}from"./cog-Batjj1se.js";import{n as fe}from"./CuiMenu-B4CHT2F_.js";import{t as W}from"./CuiBBoxPlayground-Cmbd4_qG.js";import{t as pe}from"./cameras-DQ28quQb.js";import{n as me}from"./useCuiCameraDrawer-Dn97MLFe.js";import{t as he}from"./useCuiDialog-BbkaNkQN.js";import{t as ge}from"./CuiTopbarSlot-BDZoZ_yn.js";import{F as _e,G,H as ve,U as ye,V as be,W as xe,a as Se}from"./types-kxdn9XBW.js";import{t as Ce}from"./CuiSchema-CTRLO0uq.js";import{t as we}from"./plugins-DzRwEcA4.js";import{t as Te}from"./PluginSchema-DL7Bfd_U.js";import{a as Ee,i as De,n as Oe,o as K,r as ke,t as Ae}from"./vendor-markdown-D3nVi7gw.js";import{t as je}from"./close-circle-i5PrRG0X.js";import{t as Me}from"./back-filled-CvLD0CND.js";import{t as Ne}from"./CuiPluginCard-5ItfIe1Z.js";var q=.15,J=.38,Y={class:`mb-4 rounded-xl overflow-hidden`},Pe=[`src`],Fe={class:`text-sm text-muted mb-4`},Ie={key:0,class:`ml-1`},Le={class:`flex gap-2 mb-4`},Re={key:0,class:`flex flex-col gap-2`},X={class:`text-sm truncate flex-1 mr-3`},Z={class:`flex items-center gap-2 shrink-0`},Q=T({__name:`PluginClipInterface`,props:{src:{},response:{},onTextSearch:{type:Function}},setup(e,{expose:t}){let i=e,s=n(``),c=n(!1),u=n([]);function f(e){return Math.max(0,Math.min(1,(e-q)/(J-q)))}async function p(){let e=s.value.trim();if(!(!e||c.value)){c.value=!0;try{let{score:t}=await i.onTextSearch(e);u.value.unshift({query:e,rawScore:t,displayScore:f(t)}),s.value=``}catch(e){console.error(`CLIP text search failed:`,e)}finally{c.value=!1}}}return t({}),(t,n)=>{let i=N,f=ae,h=U;return O(),r(`div`,null,[_(`div`,Y,[_(`img`,{src:e.src,alt:`CLIP test image`,class:`w-full object-contain`},null,8,Pe)]),_(`div`,Fe,[re(C(e.response.embeddings.length)+` embedding(s), `+C(e.response.embeddings[0]?.embedding?.length??0)+`-dim `,1),e.response.embeddingModel?(O(),r(`span`,Ie,`(`+C(e.response.embeddingModel)+`)`,1)):d(``,!0)]),_(`div`,Le,[w(i,{modelValue:E(s),"onUpdate:modelValue":n[0]||=e=>l(s)?s.value=e:null,class:`flex-1`,placeholder:t.$t(`components.clip_interface.enter_query`),onKeyup:m(p,[`enter`])},null,8,[`modelValue`,`placeholder`]),w(f,{class:`cui-button`,label:t.$t(`components.clip_interface.search`),loading:E(c),onClick:p},null,8,[`label`,`loading`])]),E(u).length?(O(),r(`div`,Re,[(O(!0),r(o,null,a(E(u),(e,t)=>(O(),r(`div`,{key:t,class:`flex items-center justify-between p-3 rounded-lg content-background`},[_(`span`,X,C(e.query),1),_(`div`,Z,[_(`div`,{class:S([`text-sm font-medium`,e.displayScore>=.5?`text-green-500`:e.displayScore>=.25?`text-yellow-500`:`text-red-400`])},C((e.displayScore*100).toFixed(0))+`% `,3),w(h,{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))])):d(``,!0)])}}}),ze=T({__name:`PluginMotionInterface`,props:{response:{}},setup(e){let{response:t}=x(e),n=c(`videoPlayerRef`);return p(()=>{if(n.value){let e=new Blob([t.value.videoData],{type:`video/mp4`});n.value.src=URL.createObjectURL(e),n.value.load()}}),(e,t)=>(O(),r(`div`,null,[_(`video`,{ref_key:`videoPlayerRef`,ref:n,controls:``,class:`w-full`},`Your browser does not support the video tag.`,512)]))}}),Be={class:`mb-5 h-min`},Ve=[`src`],$=T({__name:`PluginObjectInterface`,props:{src:{},response:{}},setup(e){let{response:t,src:n}=x(e),i=y(()=>t.value.detections);return(e,t)=>{let a=W;return O(),r(`div`,Be,[w(a,{detections:E(i)},null,8,[`detections`]),_(`img`,{src:E(n),alt:`Preview`,class:`w-full`},null,8,Ve)])}}}),He={key:0,class:`w-full`},Ue={class:`flex flex-col justify-center items-center mb-5`},We={for:`restoreInput`,class:`cursor-pointer text-center text-sm`},Ge=[`accept`],Ke={key:0,class:`text-red-500 text-sm`},qe={key:1,class:`w-full flex flex-col items-center justify-center`},Je={key:0,class:`relative mb-4`},Ye=[`src`],Xe={key:1,class:`relative mb-4 w-full`},Ze={key:2,class:`relative mb-4 w-full`},Qe=[`src`,`type`],$e={class:`flex items-center justify-center`},et={class:`mx-2`},tt={class:`text-muted`},nt={class:`flex items-center justify-center mt-2 text-xs text-muted`},rt={class:`mt-10`},it={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},at={key:0,class:`flex items-center justify-center text-sm text-muted mt-5`},ot=T({__name:`CuiDetectionInterface`,props:{type:{},pluginName:{}},emits:[`update:file`,`update:metadata`],setup(t,{emit:i}){let a=t,o=i,{t:s}=oe(),l=e(),u=he(),{type:p,pluginName:m}=x(a),{plugin:v,isLoading:te}=ie(m),T=c(`fileInputRef`),D=c(`videoPlayerRef`),k=c(`audioPlayerRef`),A=ne([]),j=n(!1),M=n(!1),N=n(!1),P=n(!1),F=n(``),I=n(!1),L=n(),R=n(!0),z=ne(),se=n(!1),ce=y(()=>se.value||te.value||I.value),B=y(()=>{switch(p.value){case`objectDetection`:case`faceDetection`:case`licensePlateDetection`:case`classifierDetection`:case`clipDetection`:return`image`;case`motionDetection`:return`video`;case`audioDetection`:return`audio`;default:return`image`}}),V=y(()=>{switch(B.value){case`image`:return ye;case`video`:return ve;case`audio`:return be;default:return[]}}),H=y(()=>{switch(B.value){case`image`:return _e;case`video`:return G;case`audio`:return xe;default:return 0}}),le=y(()=>V.value.join(`,`));async function U(){if(v.value){se.value=!0;try{let e;switch(p.value){case`motionDetection`:e=await v.value.motionDetectionSettings?.();break;case`objectDetection`:e=await v.value.objectDetectionSettings?.();break;case`audioDetection`:e=await v.value.audioDetectionSettings?.();break;case`faceDetection`:e=await v.value.faceDetectionSettings?.();break;case`licensePlateDetection`:e=await v.value.licensePlateDetectionSettings?.();break;case`classifierDetection`:e=await v.value.classifierDetectionSettings?.();break;case`clipDetection`:e=await v.value.clipSettings?.();break}z.value=e}catch(e){console.error(`Failed to load interface schema:`,e),z.value=void 0}finally{se.value=!1}}}function ue(e){let t=A.value.findIndex(t=>t.name===e);t>-1&&(A.value.splice(t,1),W(),F.value=``,B.value===`video`&&D.value&&(D.value.src=``),L.value=void 0,o(`update:file`,null),o(`update:metadata`,null))}function de(e){if(j.value=!1,M.value=!1,P.value=!1,A.value=[],e.dataTransfer)if(e.dataTransfer.files.length>1)M.value=!0;else{let t=e.dataTransfer.files[0];(V.value.length===0||V.value.includes(t.type))&&t.size<=H.value?(A.value.push(t),ee(()=>{pe(t)})):t.size>H.value?P.value=!0:M.value=!0}}function fe(e){M.value=!1,P.value=!1,A.value=[];let t=e.target;if(t&&t.files){if(t.files?.length>1)M.value=!0;else if(t.files.length===1){let e=t.files[0],n=V.value.length===0||V.value.includes(e.type);e.size<=H.value&&n?(A.value.push(e),ee(()=>{pe(e)})):e.size>H.value?P.value=!0:M.value=!0}}}function W(){T.value&&(T.value.value=``)}function pe(e){I.value=!0;let t=URL.createObjectURL(e);switch(B.value){case`image`:me(e,t);break;case`video`:ge(e,t);break;case`audio`:Se(e,t);break}}function me(e,t){let n=new Image;n.src=t,n.onload=()=>{F.value=n.src;let t={width:n.width,height:n.height};L.value=t,o(`update:metadata`,t),o(`update:file`,e),I.value=!1}}function ge(e,t){D.value&&(D.value.src=t,D.value.load(),D.value.onloadeddata=()=>{o(`update:file`,e),I.value=!1})}function Se(e,t){F.value=t;let n=new Audio;n.src=t,n.onloadedmetadata=()=>{let t={mimeType:e.type};L.value=t,o(`update:metadata`,t),o(`update:file`,e),I.value=!1}}function we(e){return e<1024?e+` bytes`:e<1048576?(e/1024).toFixed(1)+` KB`:(e/1048576).toFixed(1)+` MB`}function Te(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 Ee(e){if(!A.value.length){N.value=!0;return}if(!v.value){console.error(`Plugin not connected`);return}console.log(`Starting detection with config:`,e),I.value=!0;try{let t=await A.value[0].arrayBuffer();if(p.value===`audioDetection`){let n=await v.value.testAudioDetection?.(new Uint8Array(t),L.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`;l.add({severity:`success`,detail:`${e}${t}`,life:3e3})}else l.add({severity:`info`,detail:s(`components.detection_interface.audio_not_detected`),life:3e3})}else if(p.value===`motionDetection`){let n=await v.value.testMotionDetection?.(new Uint8Array(t),e);if(!n){console.warn(`No motion detection interface available`);return}u.openComponentDialog(ze,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{response:n}}})}else if(p.value===`faceDetection`){let n=await v.value.testFaceDetection?.(new Uint8Array(t),L.value,e);if(!n){console.warn(`No face detection interface available`);return}u.openComponentDialog($,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:F,response:n}}})}else if(p.value===`licensePlateDetection`){let n=await v.value.testLicensePlateDetection?.(new Uint8Array(t),L.value,e);if(!n){console.warn(`No license plate detection interface available`);return}u.openComponentDialog($,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:F,response:n}}})}else if(p.value===`classifierDetection`){let n=await v.value.testClassifierDetection?.(new Uint8Array(t),L.value,e);if(!n){console.warn(`No classifier detection interface available`);return}u.openComponentDialog($,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:F,response:n}}})}else if(p.value===`clipDetection`){let n=await v.value.testClipEmbedding?.(new Uint8Array(t),L.value,e);if(!n){console.warn(`No CLIP detection interface available`);return}if(!n.embeddings?.length){l.add({severity:`info`,detail:s(`components.detection_interface.no_detections`),life:3e3});return}let r=n.embeddings[0].embedding;u.openComponentDialog(Q,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:F,response:n,onTextSearch:async e=>{let t=await v.value.getTextEmbedding(e);return t?.embedding?.length?{score:Te(r,t.embedding)}:{score:0}}}}})}else{let n=await v.value.testObjectDetection?.(new Uint8Array(t),L.value,e);if(!n){console.warn(`No object detection interface available`);return}u.openComponentDialog($,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:F,response:n}}})}}catch(e){l.add({severity:`error`,detail:e,life:3e3})}finally{I.value=!1}}return f(v,e=>{e&&U()},{immediate:!0}),f(A,e=>{e.length>0?(N.value=!1,R.value=!1):(F.value=``,L.value=void 0,R.value=!0)},{immediate:!0,deep:!0}),(e,t)=>{let n=je,i=ae,a=Ce;return O(),r(`div`,null,[_(`div`,{class:`file-upload-box`,onDrop:t[1]||=g(e=>de(e),[`prevent`]),onDragover:t[2]||=g(e=>j.value=!0,[`prevent`]),onDragenter:t[3]||=g(e=>j.value=!0,[`prevent`]),onDragleave:t[4]||=g(e=>j.value=!1,[`prevent`])},[E(A).length?(O(),r(`div`,qe,[E(B)===`image`?(O(),r(`div`,Je,[_(`img`,{src:E(F),alt:`Preview`,class:`w-full`},null,8,Ye)])):E(B)===`video`?(O(),r(`div`,Xe,[_(`video`,{ref_key:`videoPlayerRef`,ref:D,controls:``,class:`w-full`},`Your browser does not support the video tag.`,512)])):E(B)===`audio`?(O(),r(`div`,Ze,[_(`audio`,{ref_key:`audioPlayerRef`,ref:k,controls:``,class:`w-full`},[_(`source`,{src:E(F),type:E(A)[0].type},null,8,Qe),t[5]||=re(` Your browser does not support the audio element. `,-1)],512)])):d(``,!0),_(`div`,$e,[w(i,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t[0]||=g(e=>ue(E(A)[0].name),[`stop`])},{icon:h(()=>[w(n,{width:`100%`,height:`100%`})]),_:1}),_(`b`,et,C(E(A)[0].name),1),_(`span`,tt,`(`+C(we(E(A)[0].size))+`)`,1)])])):(O(),r(`div`,He,[_(`div`,Ue,[_(`label`,We,C(e.$t(`components.detection_interface.drop_or_select_${E(B)}_to_detect${E(B)===`image`?`_objects`:E(B)===`video`?`_motion`:``}`)),1),_(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:T,type:`file`,class:`hidden`,accept:E(le),onChange:fe},null,40,Ge),E(M)?(O(),r(`p`,Ke,C(e.$t(`components.detection_interface.only_one_${E(B)}_allowed`)),1)):d(``,!0),E(N)?(O(),r(`p`,{key:1,class:S([`text-red-500 text-sm`,{"mt-2":E(M)}])},C(e.$t(`components.detection_interface.${E(B)}_required`)),3)):d(``,!0),E(P)?(O(),r(`p`,{key:2,class:S([`text-red-500 text-sm`,{"mt-2":E(M)||E(N)}])},C(e.$t(`components.detection_interface.file_size_error`)),3)):d(``,!0)])]))],32),_(`div`,nt,[_(`span`,null,`(`+C(E(H)/1024/1024)+`MB, `+C(E(V).join(`, `))+`)`,1)]),_(`div`,rt,[_(`h3`,it,C(e.$t(`components.detection_interface.interface_config`)),1),E(z)?.length?(O(),b(a,{key:1,"schema-form":{schema:E(z),config:{}},loading:E(ce),"save-button-label":e.$t(`components.detection_interface.detect`),"disable-button":E(R),"show-button":``,onOnFormSubmit:Ee},null,8,[`schema-form`,`loading`,`save-button-label`,`disable-button`])):(O(),r(`div`,at,C(e.$t(`components.detection_interface.no_interface_config`)),1))])])}}}),st={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function ct(e,t){return O(),r(`svg`,st,[...t[0]||=[_(`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 lt=v({name:`lucide-audio-lines`,render:ct}),ut={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function dt(e,t){return O(),r(`svg`,ut,[...t[0]||=[_(`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 ft=v({name:`material-symbols-detection-and-zone`,render:dt}),pt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function mt(e,t){return O(),r(`svg`,pt,[...t[0]||=[_(`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 ht=v({name:`material-symbols-face`,render:mt}),gt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function _t(e,t){return O(),r(`svg`,gt,[...t[0]||=[_(`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 vt=v({name:`material-symbols-motion-blur-rounded`,render:_t}),yt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function bt(e,t){return O(),r(`svg`,yt,[...t[0]||=[_(`g`,{fill:`none`,"fill-rule":`evenodd`},[_(`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`}),_(`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 xt=v({name:`mingcute-classify-2-fill`,render:bt}),St={viewBox:`0 0 256 256`,width:`1.2em`,height:`1.2em`};function Ct(e,t){return O(),r(`svg`,St,[...t[0]||=[_(`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 wt=v({name:`ph-text-aa-fill`,render:Ct}),Tt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Et(e,t){return O(),r(`svg`,Tt,[...t[0]||=[_(`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),_(`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 Dt=v({name:`solar-plate-bold`,render:Et}),Ot={class:`font-semibold text-xl truncate`},kt={class:`lg:col-span-2 order-1 !h-[220px]`},At={class:`flex w-full h-full items-center justify-center`},jt={class:`lg:col-span-1 lg:row-span-3 order-2`},Mt={class:`lg:!hidden card-title`},Nt={key:0,class:`w-full h-full flex items-center justify-center`},Pt={key:1},Ft={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},It={key:0,class:`flex items-center justify-center w-full h-full text-muted text-sm`},Lt=[`onClick`],Rt={key:0,class:`w-full h-full`},zt={key:0,class:`flex flex-col items-center justify-center w-full h-full text-muted text-sm gap-1 text-center`},Bt={key:2,class:`flex items-center justify-center w-full h-full text-muted text-sm`},Vt={key:8,class:`w-full h-full`},Ht={key:0,class:`flex items-center justify-center w-full h-full text-muted text-sm`},Ut={class:`lg:col-span-2 order-3`},Wt={class:`lg:!hidden card-title`},Gt={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Kt={key:0,class:`flex w-full h-full items-center justify-center`},qt=[`innerHTML`],Jt={class:`lg:col-span-2 order-4`},Yt={class:`lg:!hidden card-title`},Xt={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Zt={key:0,class:`flex w-full h-full items-center justify-center`},Qt=[`innerHTML`],$t=L(T({__name:`Plugin`,setup(c){let p=new pe,m=new we,g=me(),v=I(),x=e(),ee=he(),{lgBreakpoint:ne}=R(),{t:T}=oe(),N=n(v.params.scope),L=n(v.params.pluginname),U=y(()=>N.value?`${N.value}/${L.value}`:L.value),{contract:W,error:_e}=ie(U);m.toggleQueryActivator(`getPluginContractQuery`,!1);let{data:G,isBusy:ve}=m.getPluginQuery(U),{data:ye,isBusy:be}=m.getPluginReadmeQuery(U),{data:xe,isBusy:je}=m.getPluginChangelogQuery(U),{data:q}=m.getPluginContractQuery(U),J=M(U),Y=J.config,Pe=J.isLoading,{mutate:Fe,isPending:Ie}=p.addCameraExtensionQuery(),{mutate:Le,isPending:Re}=p.removeCameraExtensionQuery(),X=n(`settings`),Z=n([]),Q=n([]),ze=y(()=>!!W.value&&k(W.value,j.NVR)),Be=Ae(`commonmark`,{highlight(e,t){if(t&&K.getLanguage(t))try{return`<pre><code class="hljs">`+K.highlight(e,{language:t,ignoreIllegals:!0}).value+`</code></pre>`}catch{}return`<pre><code class="hljs">`+Be.utils.escapeHtml(e)+`</code></pre>`}});K.registerLanguage(`typescript`,ke),K.registerLanguage(`yaml`,Oe),K.registerLanguage(`json`,Ee),K.registerLanguage(`python`,De);function Ve(e,t){return e.pluginInfo?.name===t}async function $(e){try{await J.setValue(e.key,void 0),x.add({severity:`success`,detail:T(`components.toast.config_updated`),life:3e3})}catch(e){x.add({severity:`error`,detail:e,life:3e3})}}async function He(e){try{let n=await J.submitValue(e.key,e.payload);if(n?.toast){let e=t(n.toast.type);x.add({severity:e,detail:n.toast.message,life:3e3})}n?.schema?.length&&ee.openComponentDialog(Te,{data:{title:T(`components.dialog.title.config`),hideConfirmButton:!0,contentProps:{schemaConfig:{schema:n.schema,config:e.payload},pluginName:U.value,buttonKey:e.key}}})}catch(e){x.add({severity:`error`,detail:e,life:3e3})}}async function Ue(e){if(Y.value?.schema.length)try{let t=Se(Y.value.schema,e);await J.setConfig(t),x.add({severity:`success`,detail:T(`components.toast.config_updated`),life:3e3})}catch(e){x.add({severity:`error`,detail:e,life:3e3})}}async function We(e){if(G.value&&G.value.contract){let t=P(G.value.contract)?[`hub`]:G.value.contract.provides;if(Q.value.includes(e.name))for(let n of t)Le({cameraname:e.name,pluginname:G.value.pluginName,type:n},{onSuccess:()=>{Q.value=Q.value.filter(t=>t!==e.name)}});else for(let n of t)Fe({cameraname:e.name,pluginname:G.value.pluginName,type:n},{onSuccess:()=>{Q.value=[...Q.value,e.name]}})}}return f(G,e=>{if(!e||e.disabled){let e=Z.value.some(e=>e.name===`settings`),t=Z.value.some(e=>e.name===`cameras`);e?X.value=`settings`:t&&(X.value=`cameras`)}},{deep:!0}),f(v,()=>{L.value=v.params.pluginname},{deep:!0,immediate:!0}),f([G,J.isConnected],async([e,t])=>{e&&!e.disabled&&t&&await J.getConfig()},{immediate:!0}),f(Y,()=>{Y.value?m.toggleQueryActivator(`getPluginContractQuery`,!0):m.toggleQueryActivator(`getPluginContractQuery`,!1)},{deep:!0,immediate:!0}),f([q,Y,W],()=>{let e=[],t=!1,n=ze.value||!!Y.value?.schema.length;e.push({name:`settings`,icon:de,isInterface:!1,tooltip:T(`views.plugin.settings_tab_tooltip`)}),W.value&&k(W.value,j.MotionDetection)&&(t=!0,e.push({name:`motion_detection`,icon:vt,isInterface:!0,tooltip:T(`views.plugin.motion_detection_tab_tooltip`)})),W.value&&k(W.value,j.ObjectDetection)&&(t=!0,e.push({name:`object_detection`,icon:ft,isInterface:!0,tooltip:T(`views.plugin.object_detection_tab_tooltip`)})),W.value&&k(W.value,j.AudioDetection)&&(t=!0,e.push({name:`audio_detection`,icon:lt,isInterface:!0,tooltip:T(`views.plugin.audio_detection_tab_tooltip`)})),W.value&&k(W.value,j.FaceDetection)&&(t=!0,e.push({name:`face_detection`,icon:ht,isInterface:!0,tooltip:T(`views.plugin.face_detection_tab_tooltip`)})),W.value&&k(W.value,j.LicensePlateDetection)&&(t=!0,e.push({name:`license_plate_detection`,icon:Dt,isInterface:!0,tooltip:T(`views.plugin.license_plate_detection_tab_tooltip`)})),W.value&&k(W.value,j.ClassifierDetection)&&(t=!0,e.push({name:`classifier_detection`,icon:xt,isInterface:!0,tooltip:T(`views.plugin.classifier_detection_tab_tooltip`)})),W.value&&k(W.value,j.ClipDetection)&&(t=!0,e.push({name:`clip_detection`,icon:wt,isInterface:!0,tooltip:T(`views.plugin.clip_detection_tab_tooltip`)})),e.push({name:`cameras`,icon:ue,isInterface:!1,tooltip:T(`views.plugin.cameras_tab_tooltip`)}),q.value?.cameras.length&&(Q.value=q.value.cameras.filter(e=>e.plugins?.some(e=>e.name===U.value)).map(e=>e.name)),Z.value=[...e],G.value?.disabled||(n?X.value=`settings`:t?X.value=Z.value.filter(e=>e.isInterface)[0].name:X.value=`settings`)},{deep:!0,immediate:!0}),f(_e,e=>{e&&G.value&&!G.value.disabled&&console.error(`Error connecting to plugin:`,e)}),(e,t)=>{let n=Me,c=ae,f=ge,p=A,m=F,v=Ne,y=z,x=H,ee=u(`RouterLink`),T=Ce,k=ot,ie=V,j=fe,M=ce,oe=le,N=se,P=B;return O(),r(`div`,{key:E(U)},[w(f,{position:`left`},{default:h(()=>[w(c,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:t[0]||=t=>e.$router.push(`/plugins`)},{icon:h(()=>[w(n,{class:`w-6 h-6`})]),_:1})]),_:1}),w(f,{position:`center`},{default:h(()=>[_(`span`,Ot,C(e.$t(`views.plugin.title`)),1)]),_:1}),_(`div`,{class:S([`grid grid-auto grid-cols-1 lg:grid-cols-3 gap-6 lg:h-full`,{"!gap-2":E(ne)}])},[_(`div`,kt,[E(G)?(O(),b(v,{key:1,plugin:E(G),class:`h-[220px]`},null,8,[`plugin`])):(O(),b(m,{key:0,class:`cui-card items-center justify-center !h-[220px]`},{content:h(()=>[_(`div`,At,[w(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])]),_:1}))]),_(`div`,jt,[_(`span`,Mt,C(e.$t(`views.plugin.settings`)),1),w(m,{class:S([`cui-card !h-auto lg:!h-full`,{"items-center justify-center":E(ve)||E(Pe)}])},{content:h(()=>[E(ve)||E(Pe)?(O(),r(`div`,Nt,[w(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(O(),r(`div`,Pt,[_(`h3`,Ft,C(e.$t(`views.plugin.settings`)),1),E(G)?.disabled?(O(),r(`div`,It,[_(`span`,null,C(e.$t(`views.plugin.disabled_info`)),1)])):(O(),b(N,{key:1,value:E(X),"onUpdate:value":t[1]||=e=>l(X)?X.value=e:null,scrollable:``},{default:h(()=>[w(x,{class:`justify-between`,pt:{activeBar:{class:`!w-auto`},content:{class:`border-[1px] border-color cui-rounded-corner overflow-hidden`}}},{default:h(()=>[(O(!0),r(o,null,a(E(Z),(e,t)=>(O(),b(y,{key:t,disabled:e.isInterface&&E(G)?.disabled,value:e.name,"as-child":``},{default:h(t=>[s((O(),r(`div`,te({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}),[(O(),b(i(e.icon),{class:`w-5 h-5`}))],16,Lt)),[[P,{value:e.tooltip}]])]),_:2},1032,[`disabled`,`value`]))),128))]),_:1}),w(oe,{class:`px-0 pb-0`},{default:h(()=>[(O(!0),r(o,null,a(E(Z),(t,n)=>(O(),b(M,{key:n,value:t.name,"as-child":``},{default:h(n=>[n.active?(O(),r(`div`,te({key:0,class:n.class},{ref_for:!0},n.a11yAttrs),[t.name===`settings`?(O(),r(`div`,Rt,[E(ze)?(O(),r(`div`,zt,[_(`span`,null,C(e.$t(`views.plugin.nvr_settings_hint`)),1),w(ee,{to:`/settings/recordings`,class:`text-primary-500 hover:underline`},{default:h(()=>[re(C(e.$t(`views.plugin.nvr_settings_link`)),1)]),_:1})])):E(Y)?.schema?.length?(O(),b(T,{key:1,"schema-form":{schema:E(Y).schema,config:E(Y).config},loading:E(J).isLoading.value,"save-button-color":`success`,onOnAction:$,onOnSubmit:He,onOnFormSubmit:Ue},null,8,[`schema-form`,`loading`])):(O(),r(`div`,Bt,[_(`span`,null,C(e.$t(`views.plugin.no_settings`)),1)]))])):t.name===`motion_detection`?(O(),b(k,{key:1,"plugin-name":E(U),type:`motionDetection`},null,8,[`plugin-name`])):t.name===`object_detection`?(O(),b(k,{key:2,"plugin-name":E(U),type:`objectDetection`},null,8,[`plugin-name`])):t.name===`audio_detection`?(O(),b(k,{key:3,"plugin-name":E(U),type:`audioDetection`},null,8,[`plugin-name`])):t.name===`face_detection`?(O(),b(k,{key:4,"plugin-name":E(U),type:`faceDetection`},null,8,[`plugin-name`])):t.name===`license_plate_detection`?(O(),b(k,{key:5,"plugin-name":E(U),type:`licensePlateDetection`},null,8,[`plugin-name`])):t.name===`classifier_detection`?(O(),b(k,{key:6,"plugin-name":E(U),type:`classifierDetection`},null,8,[`plugin-name`])):t.name===`clip_detection`?(O(),b(k,{key:7,"plugin-name":E(U),type:`clipDetection`},null,8,[`plugin-name`])):t.name===`cameras`?(O(),r(`div`,Vt,[E(q)?.cameras?.length?(O(!0),r(o,{key:1},a(E(q).cameras,e=>(O(),r(`div`,{key:e.name,class:`cui-list-item`},[w(j,{disabled:E(Ie)||E(Re)||E(J).isLoading.value,active:E(Q).includes(e.name),class:`h-14`,onClick:t=>E(g).open({cameraName:e.name})},D({default:h(()=>[_(`span`,null,C(e.name),1)]),_:2},[!E(G)||!Ve(e,E(G).pluginName)?{name:`append`,fn:h(()=>[w(ie,{"model-value":E(Q).includes(e.name),disabled:E(Ie)||E(Re)||E(J).isLoading.value,"onUpdate:modelValue":()=>We(e)},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`])]),key:`0`}:void 0]),1032,[`disabled`,`active`,`onClick`])]))),128)):(O(),r(`div`,Ht,[_(`span`,null,C(e.$t(`views.plugin.no_cameras`)),1)]))])):d(``,!0)],16)):d(``,!0)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`value`]))]))]),_:1},8,[`class`])]),_(`div`,Ut,[_(`span`,Wt,C(e.$t(`views.plugin.readme`)),1),w(m,{class:`cui-card !h-auto lg:!h-full`},{content:h(()=>[_(`h3`,Gt,C(e.$t(`views.plugin.readme`)),1),E(be)?(O(),r(`div`,Kt,[w(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(O(),r(`div`,{key:1,class:`markdown-body`,innerHTML:E(Be).render(E(ye)||e.$t(`views.plugin.no_readme`))},null,8,qt))]),_:1})]),_(`div`,Jt,[_(`span`,Yt,C(e.$t(`views.plugin.changelog`)),1),w(m,{class:`cui-card !h-auto lg:!h-full`},{content:h(()=>[_(`h3`,Xt,C(e.$t(`views.plugin.changelog`)),1),E(je)?(O(),r(`div`,Zt,[w(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(O(),r(`div`,{key:1,class:`markdown-body`,innerHTML:E(Be).render(E(xe)||e.$t(`views.plugin.no_changelog`))},null,8,Qt))]),_:1})])],2)])}}}),[[`__scopeId`,`data-v-495cf2e0`]]);export{$t as default};
1
+ import{S as e,c as t}from"./api-BaywoTCE.js";import{$n as n,$t as r,An as i,En as a,Gt as o,Hn as s,In as c,Jn as l,On as u,Qt as d,Rn as f,Sn as p,Ut as m,Vn as h,Wt as g,Xt as _,Yn as v,Yt as y,Zt as b,ar as x,cr as S,dr as C,gn as ee,hn as te,in as w,nr as ne,on as T,rn as re,sr as E,tn as D,wn as O}from"./vendor-DmhYd_sB.js";import{An as k,Bn as A,Ht as ie,Mn as j,Ut as M,Vn as ae,di as oe,et as N,jn as P,st as F}from"./vendor-cameraui-DggYb17u.js";import{c as I}from"./vendor-core-B6F-imJj.js";import{t as L}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as R}from"./useSharedComposables-riqEUgwX.js";import{B as z,G as se,H as ce,J as B,K as V,V as H,W as le,a as U}from"./vendor-primevue--pcuf6kA.js";import{t as ue}from"./cctv-SQFfbBnL.js";import{t as de}from"./cog-Batjj1se.js";import{n as fe}from"./CuiMenu-B4CHT2F_.js";import{t as W}from"./CuiBBoxPlayground-Cmbd4_qG.js";import{t as pe}from"./cameras-DQ28quQb.js";import{n as me}from"./useCuiCameraDrawer-Dn97MLFe.js";import{t as he}from"./useCuiDialog-BbkaNkQN.js";import{t as ge}from"./CuiTopbarSlot-BDZoZ_yn.js";import{F as _e,G,H as ve,U as ye,V as be,W as xe,a as Se}from"./types-kxdn9XBW.js";import{t as Ce}from"./CuiSchema-B0M5qZi-.js";import{t as we}from"./plugins-DzRwEcA4.js";import{t as Te}from"./PluginSchema-CVJH7kNO.js";import{a as Ee,i as De,n as Oe,o as K,r as ke,t as Ae}from"./vendor-markdown-D3nVi7gw.js";import{t as je}from"./close-circle-i5PrRG0X.js";import{t as Me}from"./back-filled-CvLD0CND.js";import{t as Ne}from"./CuiPluginCard-5ItfIe1Z.js";var q=.15,J=.38,Y={class:`mb-4 rounded-xl overflow-hidden`},Pe=[`src`],Fe={class:`text-sm text-muted mb-4`},Ie={key:0,class:`ml-1`},Le={class:`flex gap-2 mb-4`},Re={key:0,class:`flex flex-col gap-2`},X={class:`text-sm truncate flex-1 mr-3`},Z={class:`flex items-center gap-2 shrink-0`},Q=T({__name:`PluginClipInterface`,props:{src:{},response:{},onTextSearch:{type:Function}},setup(e,{expose:t}){let i=e,s=n(``),c=n(!1),u=n([]);function f(e){return Math.max(0,Math.min(1,(e-q)/(J-q)))}async function p(){let e=s.value.trim();if(!(!e||c.value)){c.value=!0;try{let{score:t}=await i.onTextSearch(e);u.value.unshift({query:e,rawScore:t,displayScore:f(t)}),s.value=``}catch(e){console.error(`CLIP text search failed:`,e)}finally{c.value=!1}}}return t({}),(t,n)=>{let i=N,f=ae,h=U;return O(),r(`div`,null,[_(`div`,Y,[_(`img`,{src:e.src,alt:`CLIP test image`,class:`w-full object-contain`},null,8,Pe)]),_(`div`,Fe,[re(C(e.response.embeddings.length)+` embedding(s), `+C(e.response.embeddings[0]?.embedding?.length??0)+`-dim `,1),e.response.embeddingModel?(O(),r(`span`,Ie,`(`+C(e.response.embeddingModel)+`)`,1)):d(``,!0)]),_(`div`,Le,[w(i,{modelValue:E(s),"onUpdate:modelValue":n[0]||=e=>l(s)?s.value=e:null,class:`flex-1`,placeholder:t.$t(`components.clip_interface.enter_query`),onKeyup:m(p,[`enter`])},null,8,[`modelValue`,`placeholder`]),w(f,{class:`cui-button`,label:t.$t(`components.clip_interface.search`),loading:E(c),onClick:p},null,8,[`label`,`loading`])]),E(u).length?(O(),r(`div`,Re,[(O(!0),r(o,null,a(E(u),(e,t)=>(O(),r(`div`,{key:t,class:`flex items-center justify-between p-3 rounded-lg content-background`},[_(`span`,X,C(e.query),1),_(`div`,Z,[_(`div`,{class:S([`text-sm font-medium`,e.displayScore>=.5?`text-green-500`:e.displayScore>=.25?`text-yellow-500`:`text-red-400`])},C((e.displayScore*100).toFixed(0))+`% `,3),w(h,{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))])):d(``,!0)])}}}),ze=T({__name:`PluginMotionInterface`,props:{response:{}},setup(e){let{response:t}=x(e),n=c(`videoPlayerRef`);return p(()=>{if(n.value){let e=new Blob([t.value.videoData],{type:`video/mp4`});n.value.src=URL.createObjectURL(e),n.value.load()}}),(e,t)=>(O(),r(`div`,null,[_(`video`,{ref_key:`videoPlayerRef`,ref:n,controls:``,class:`w-full`},`Your browser does not support the video tag.`,512)]))}}),Be={class:`mb-5 h-min`},Ve=[`src`],$=T({__name:`PluginObjectInterface`,props:{src:{},response:{}},setup(e){let{response:t,src:n}=x(e),i=y(()=>t.value.detections);return(e,t)=>{let a=W;return O(),r(`div`,Be,[w(a,{detections:E(i)},null,8,[`detections`]),_(`img`,{src:E(n),alt:`Preview`,class:`w-full`},null,8,Ve)])}}}),He={key:0,class:`w-full`},Ue={class:`flex flex-col justify-center items-center mb-5`},We={for:`restoreInput`,class:`cursor-pointer text-center text-sm`},Ge=[`accept`],Ke={key:0,class:`text-red-500 text-sm`},qe={key:1,class:`w-full flex flex-col items-center justify-center`},Je={key:0,class:`relative mb-4`},Ye=[`src`],Xe={key:1,class:`relative mb-4 w-full`},Ze={key:2,class:`relative mb-4 w-full`},Qe=[`src`,`type`],$e={class:`flex items-center justify-center`},et={class:`mx-2`},tt={class:`text-muted`},nt={class:`flex items-center justify-center mt-2 text-xs text-muted`},rt={class:`mt-10`},it={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},at={key:0,class:`flex items-center justify-center text-sm text-muted mt-5`},ot=T({__name:`CuiDetectionInterface`,props:{type:{},pluginName:{}},emits:[`update:file`,`update:metadata`],setup(t,{emit:i}){let a=t,o=i,{t:s}=oe(),l=e(),u=he(),{type:p,pluginName:m}=x(a),{plugin:v,isLoading:te}=ie(m),T=c(`fileInputRef`),D=c(`videoPlayerRef`),k=c(`audioPlayerRef`),A=ne([]),j=n(!1),M=n(!1),N=n(!1),P=n(!1),F=n(``),I=n(!1),L=n(),R=n(!0),z=ne(),se=n(!1),ce=y(()=>se.value||te.value||I.value),B=y(()=>{switch(p.value){case`objectDetection`:case`faceDetection`:case`licensePlateDetection`:case`classifierDetection`:case`clipDetection`:return`image`;case`motionDetection`:return`video`;case`audioDetection`:return`audio`;default:return`image`}}),V=y(()=>{switch(B.value){case`image`:return ye;case`video`:return ve;case`audio`:return be;default:return[]}}),H=y(()=>{switch(B.value){case`image`:return _e;case`video`:return G;case`audio`:return xe;default:return 0}}),le=y(()=>V.value.join(`,`));async function U(){if(v.value){se.value=!0;try{let e;switch(p.value){case`motionDetection`:e=await v.value.motionDetectionSettings?.();break;case`objectDetection`:e=await v.value.objectDetectionSettings?.();break;case`audioDetection`:e=await v.value.audioDetectionSettings?.();break;case`faceDetection`:e=await v.value.faceDetectionSettings?.();break;case`licensePlateDetection`:e=await v.value.licensePlateDetectionSettings?.();break;case`classifierDetection`:e=await v.value.classifierDetectionSettings?.();break;case`clipDetection`:e=await v.value.clipSettings?.();break}z.value=e}catch(e){console.error(`Failed to load interface schema:`,e),z.value=void 0}finally{se.value=!1}}}function ue(e){let t=A.value.findIndex(t=>t.name===e);t>-1&&(A.value.splice(t,1),W(),F.value=``,B.value===`video`&&D.value&&(D.value.src=``),L.value=void 0,o(`update:file`,null),o(`update:metadata`,null))}function de(e){if(j.value=!1,M.value=!1,P.value=!1,A.value=[],e.dataTransfer)if(e.dataTransfer.files.length>1)M.value=!0;else{let t=e.dataTransfer.files[0];(V.value.length===0||V.value.includes(t.type))&&t.size<=H.value?(A.value.push(t),ee(()=>{pe(t)})):t.size>H.value?P.value=!0:M.value=!0}}function fe(e){M.value=!1,P.value=!1,A.value=[];let t=e.target;if(t&&t.files){if(t.files?.length>1)M.value=!0;else if(t.files.length===1){let e=t.files[0],n=V.value.length===0||V.value.includes(e.type);e.size<=H.value&&n?(A.value.push(e),ee(()=>{pe(e)})):e.size>H.value?P.value=!0:M.value=!0}}}function W(){T.value&&(T.value.value=``)}function pe(e){I.value=!0;let t=URL.createObjectURL(e);switch(B.value){case`image`:me(e,t);break;case`video`:ge(e,t);break;case`audio`:Se(e,t);break}}function me(e,t){let n=new Image;n.src=t,n.onload=()=>{F.value=n.src;let t={width:n.width,height:n.height};L.value=t,o(`update:metadata`,t),o(`update:file`,e),I.value=!1}}function ge(e,t){D.value&&(D.value.src=t,D.value.load(),D.value.onloadeddata=()=>{o(`update:file`,e),I.value=!1})}function Se(e,t){F.value=t;let n=new Audio;n.src=t,n.onloadedmetadata=()=>{let t={mimeType:e.type};L.value=t,o(`update:metadata`,t),o(`update:file`,e),I.value=!1}}function we(e){return e<1024?e+` bytes`:e<1048576?(e/1024).toFixed(1)+` KB`:(e/1048576).toFixed(1)+` MB`}function Te(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 Ee(e){if(!A.value.length){N.value=!0;return}if(!v.value){console.error(`Plugin not connected`);return}console.log(`Starting detection with config:`,e),I.value=!0;try{let t=await A.value[0].arrayBuffer();if(p.value===`audioDetection`){let n=await v.value.testAudioDetection?.(new Uint8Array(t),L.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`;l.add({severity:`success`,detail:`${e}${t}`,life:3e3})}else l.add({severity:`info`,detail:s(`components.detection_interface.audio_not_detected`),life:3e3})}else if(p.value===`motionDetection`){let n=await v.value.testMotionDetection?.(new Uint8Array(t),e);if(!n){console.warn(`No motion detection interface available`);return}u.openComponentDialog(ze,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{response:n}}})}else if(p.value===`faceDetection`){let n=await v.value.testFaceDetection?.(new Uint8Array(t),L.value,e);if(!n){console.warn(`No face detection interface available`);return}u.openComponentDialog($,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:F,response:n}}})}else if(p.value===`licensePlateDetection`){let n=await v.value.testLicensePlateDetection?.(new Uint8Array(t),L.value,e);if(!n){console.warn(`No license plate detection interface available`);return}u.openComponentDialog($,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:F,response:n}}})}else if(p.value===`classifierDetection`){let n=await v.value.testClassifierDetection?.(new Uint8Array(t),L.value,e);if(!n){console.warn(`No classifier detection interface available`);return}u.openComponentDialog($,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:F,response:n}}})}else if(p.value===`clipDetection`){let n=await v.value.testClipEmbedding?.(new Uint8Array(t),L.value,e);if(!n){console.warn(`No CLIP detection interface available`);return}if(!n.embeddings?.length){l.add({severity:`info`,detail:s(`components.detection_interface.no_detections`),life:3e3});return}let r=n.embeddings[0].embedding;u.openComponentDialog(Q,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:F,response:n,onTextSearch:async e=>{let t=await v.value.getTextEmbedding(e);return t?.embedding?.length?{score:Te(r,t.embedding)}:{score:0}}}}})}else{let n=await v.value.testObjectDetection?.(new Uint8Array(t),L.value,e);if(!n){console.warn(`No object detection interface available`);return}u.openComponentDialog($,{data:{title:s(`components.dialog.title.result`),hideConfirmButton:!0,contentProps:{src:F,response:n}}})}}catch(e){l.add({severity:`error`,detail:e,life:3e3})}finally{I.value=!1}}return f(v,e=>{e&&U()},{immediate:!0}),f(A,e=>{e.length>0?(N.value=!1,R.value=!1):(F.value=``,L.value=void 0,R.value=!0)},{immediate:!0,deep:!0}),(e,t)=>{let n=je,i=ae,a=Ce;return O(),r(`div`,null,[_(`div`,{class:`file-upload-box`,onDrop:t[1]||=g(e=>de(e),[`prevent`]),onDragover:t[2]||=g(e=>j.value=!0,[`prevent`]),onDragenter:t[3]||=g(e=>j.value=!0,[`prevent`]),onDragleave:t[4]||=g(e=>j.value=!1,[`prevent`])},[E(A).length?(O(),r(`div`,qe,[E(B)===`image`?(O(),r(`div`,Je,[_(`img`,{src:E(F),alt:`Preview`,class:`w-full`},null,8,Ye)])):E(B)===`video`?(O(),r(`div`,Xe,[_(`video`,{ref_key:`videoPlayerRef`,ref:D,controls:``,class:`w-full`},`Your browser does not support the video tag.`,512)])):E(B)===`audio`?(O(),r(`div`,Ze,[_(`audio`,{ref_key:`audioPlayerRef`,ref:k,controls:``,class:`w-full`},[_(`source`,{src:E(F),type:E(A)[0].type},null,8,Qe),t[5]||=re(` Your browser does not support the audio element. `,-1)],512)])):d(``,!0),_(`div`,$e,[w(i,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t[0]||=g(e=>ue(E(A)[0].name),[`stop`])},{icon:h(()=>[w(n,{width:`100%`,height:`100%`})]),_:1}),_(`b`,et,C(E(A)[0].name),1),_(`span`,tt,`(`+C(we(E(A)[0].size))+`)`,1)])])):(O(),r(`div`,He,[_(`div`,Ue,[_(`label`,We,C(e.$t(`components.detection_interface.drop_or_select_${E(B)}_to_detect${E(B)===`image`?`_objects`:E(B)===`video`?`_motion`:``}`)),1),_(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:T,type:`file`,class:`hidden`,accept:E(le),onChange:fe},null,40,Ge),E(M)?(O(),r(`p`,Ke,C(e.$t(`components.detection_interface.only_one_${E(B)}_allowed`)),1)):d(``,!0),E(N)?(O(),r(`p`,{key:1,class:S([`text-red-500 text-sm`,{"mt-2":E(M)}])},C(e.$t(`components.detection_interface.${E(B)}_required`)),3)):d(``,!0),E(P)?(O(),r(`p`,{key:2,class:S([`text-red-500 text-sm`,{"mt-2":E(M)||E(N)}])},C(e.$t(`components.detection_interface.file_size_error`)),3)):d(``,!0)])]))],32),_(`div`,nt,[_(`span`,null,`(`+C(E(H)/1024/1024)+`MB, `+C(E(V).join(`, `))+`)`,1)]),_(`div`,rt,[_(`h3`,it,C(e.$t(`components.detection_interface.interface_config`)),1),E(z)?.length?(O(),b(a,{key:1,"schema-form":{schema:E(z),config:{}},loading:E(ce),"save-button-label":e.$t(`components.detection_interface.detect`),"disable-button":E(R),"show-button":``,onOnFormSubmit:Ee},null,8,[`schema-form`,`loading`,`save-button-label`,`disable-button`])):(O(),r(`div`,at,C(e.$t(`components.detection_interface.no_interface_config`)),1))])])}}}),st={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function ct(e,t){return O(),r(`svg`,st,[...t[0]||=[_(`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 lt=v({name:`lucide-audio-lines`,render:ct}),ut={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function dt(e,t){return O(),r(`svg`,ut,[...t[0]||=[_(`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 ft=v({name:`material-symbols-detection-and-zone`,render:dt}),pt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function mt(e,t){return O(),r(`svg`,pt,[...t[0]||=[_(`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 ht=v({name:`material-symbols-face`,render:mt}),gt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function _t(e,t){return O(),r(`svg`,gt,[...t[0]||=[_(`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 vt=v({name:`material-symbols-motion-blur-rounded`,render:_t}),yt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function bt(e,t){return O(),r(`svg`,yt,[...t[0]||=[_(`g`,{fill:`none`,"fill-rule":`evenodd`},[_(`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`}),_(`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 xt=v({name:`mingcute-classify-2-fill`,render:bt}),St={viewBox:`0 0 256 256`,width:`1.2em`,height:`1.2em`};function Ct(e,t){return O(),r(`svg`,St,[...t[0]||=[_(`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 wt=v({name:`ph-text-aa-fill`,render:Ct}),Tt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Et(e,t){return O(),r(`svg`,Tt,[...t[0]||=[_(`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),_(`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 Dt=v({name:`solar-plate-bold`,render:Et}),Ot={class:`font-semibold text-xl truncate`},kt={class:`lg:col-span-2 order-1 !h-[220px]`},At={class:`flex w-full h-full items-center justify-center`},jt={class:`lg:col-span-1 lg:row-span-3 order-2`},Mt={class:`lg:!hidden card-title`},Nt={key:0,class:`w-full h-full flex items-center justify-center`},Pt={key:1},Ft={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},It={key:0,class:`flex items-center justify-center w-full h-full text-muted text-sm`},Lt=[`onClick`],Rt={key:0,class:`w-full h-full`},zt={key:0,class:`flex flex-col items-center justify-center w-full h-full text-muted text-sm gap-1 text-center`},Bt={key:2,class:`flex items-center justify-center w-full h-full text-muted text-sm`},Vt={key:8,class:`w-full h-full`},Ht={key:0,class:`flex items-center justify-center w-full h-full text-muted text-sm`},Ut={class:`lg:col-span-2 order-3`},Wt={class:`lg:!hidden card-title`},Gt={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Kt={key:0,class:`flex w-full h-full items-center justify-center`},qt=[`innerHTML`],Jt={class:`lg:col-span-2 order-4`},Yt={class:`lg:!hidden card-title`},Xt={class:`hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},Zt={key:0,class:`flex w-full h-full items-center justify-center`},Qt=[`innerHTML`],$t=L(T({__name:`Plugin`,setup(c){let p=new pe,m=new we,g=me(),v=I(),x=e(),ee=he(),{lgBreakpoint:ne}=R(),{t:T}=oe(),N=n(v.params.scope),L=n(v.params.pluginname),U=y(()=>N.value?`${N.value}/${L.value}`:L.value),{contract:W,error:_e}=ie(U);m.toggleQueryActivator(`getPluginContractQuery`,!1);let{data:G,isBusy:ve}=m.getPluginQuery(U),{data:ye,isBusy:be}=m.getPluginReadmeQuery(U),{data:xe,isBusy:je}=m.getPluginChangelogQuery(U),{data:q}=m.getPluginContractQuery(U),J=M(U),Y=J.config,Pe=J.isLoading,{mutate:Fe,isPending:Ie}=p.addCameraExtensionQuery(),{mutate:Le,isPending:Re}=p.removeCameraExtensionQuery(),X=n(`settings`),Z=n([]),Q=n([]),ze=y(()=>!!W.value&&k(W.value,j.NVR)),Be=Ae(`commonmark`,{highlight(e,t){if(t&&K.getLanguage(t))try{return`<pre><code class="hljs">`+K.highlight(e,{language:t,ignoreIllegals:!0}).value+`</code></pre>`}catch{}return`<pre><code class="hljs">`+Be.utils.escapeHtml(e)+`</code></pre>`}});K.registerLanguage(`typescript`,ke),K.registerLanguage(`yaml`,Oe),K.registerLanguage(`json`,Ee),K.registerLanguage(`python`,De);function Ve(e,t){return e.pluginInfo?.name===t}async function $(e){try{await J.setValue(e.key,void 0),x.add({severity:`success`,detail:T(`components.toast.config_updated`),life:3e3})}catch(e){x.add({severity:`error`,detail:e,life:3e3})}}async function He(e){try{let n=await J.submitValue(e.key,e.payload);if(n?.toast){let e=t(n.toast.type);x.add({severity:e,detail:n.toast.message,life:3e3})}n?.schema?.length&&ee.openComponentDialog(Te,{data:{title:T(`components.dialog.title.config`),hideConfirmButton:!0,contentProps:{schemaConfig:{schema:n.schema,config:e.payload},pluginName:U.value,buttonKey:e.key}}})}catch(e){x.add({severity:`error`,detail:e,life:3e3})}}async function Ue(e){if(Y.value?.schema.length)try{let t=Se(Y.value.schema,e);await J.setConfig(t),x.add({severity:`success`,detail:T(`components.toast.config_updated`),life:3e3})}catch(e){x.add({severity:`error`,detail:e,life:3e3})}}async function We(e){if(G.value&&G.value.contract){let t=P(G.value.contract)?[`hub`]:G.value.contract.provides;if(Q.value.includes(e.name))for(let n of t)Le({cameraname:e.name,pluginname:G.value.pluginName,type:n},{onSuccess:()=>{Q.value=Q.value.filter(t=>t!==e.name)}});else for(let n of t)Fe({cameraname:e.name,pluginname:G.value.pluginName,type:n},{onSuccess:()=>{Q.value=[...Q.value,e.name]}})}}return f(G,e=>{if(!e||e.disabled){let e=Z.value.some(e=>e.name===`settings`),t=Z.value.some(e=>e.name===`cameras`);e?X.value=`settings`:t&&(X.value=`cameras`)}},{deep:!0}),f(v,()=>{L.value=v.params.pluginname},{deep:!0,immediate:!0}),f([G,J.isConnected],async([e,t])=>{e&&!e.disabled&&t&&await J.getConfig()},{immediate:!0}),f(Y,()=>{Y.value?m.toggleQueryActivator(`getPluginContractQuery`,!0):m.toggleQueryActivator(`getPluginContractQuery`,!1)},{deep:!0,immediate:!0}),f([q,Y,W],()=>{let e=[],t=!1,n=ze.value||!!Y.value?.schema.length;e.push({name:`settings`,icon:de,isInterface:!1,tooltip:T(`views.plugin.settings_tab_tooltip`)}),W.value&&k(W.value,j.MotionDetection)&&(t=!0,e.push({name:`motion_detection`,icon:vt,isInterface:!0,tooltip:T(`views.plugin.motion_detection_tab_tooltip`)})),W.value&&k(W.value,j.ObjectDetection)&&(t=!0,e.push({name:`object_detection`,icon:ft,isInterface:!0,tooltip:T(`views.plugin.object_detection_tab_tooltip`)})),W.value&&k(W.value,j.AudioDetection)&&(t=!0,e.push({name:`audio_detection`,icon:lt,isInterface:!0,tooltip:T(`views.plugin.audio_detection_tab_tooltip`)})),W.value&&k(W.value,j.FaceDetection)&&(t=!0,e.push({name:`face_detection`,icon:ht,isInterface:!0,tooltip:T(`views.plugin.face_detection_tab_tooltip`)})),W.value&&k(W.value,j.LicensePlateDetection)&&(t=!0,e.push({name:`license_plate_detection`,icon:Dt,isInterface:!0,tooltip:T(`views.plugin.license_plate_detection_tab_tooltip`)})),W.value&&k(W.value,j.ClassifierDetection)&&(t=!0,e.push({name:`classifier_detection`,icon:xt,isInterface:!0,tooltip:T(`views.plugin.classifier_detection_tab_tooltip`)})),W.value&&k(W.value,j.ClipDetection)&&(t=!0,e.push({name:`clip_detection`,icon:wt,isInterface:!0,tooltip:T(`views.plugin.clip_detection_tab_tooltip`)})),e.push({name:`cameras`,icon:ue,isInterface:!1,tooltip:T(`views.plugin.cameras_tab_tooltip`)}),q.value?.cameras.length&&(Q.value=q.value.cameras.filter(e=>e.plugins?.some(e=>e.name===U.value)).map(e=>e.name)),Z.value=[...e],G.value?.disabled||(n?X.value=`settings`:t?X.value=Z.value.filter(e=>e.isInterface)[0].name:X.value=`settings`)},{deep:!0,immediate:!0}),f(_e,e=>{e&&G.value&&!G.value.disabled&&console.error(`Error connecting to plugin:`,e)}),(e,t)=>{let n=Me,c=ae,f=ge,p=A,m=F,v=Ne,y=z,x=H,ee=u(`RouterLink`),T=Ce,k=ot,ie=V,j=fe,M=ce,oe=le,N=se,P=B;return O(),r(`div`,{key:E(U)},[w(f,{position:`left`},{default:h(()=>[w(c,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:t[0]||=t=>e.$router.push(`/plugins`)},{icon:h(()=>[w(n,{class:`w-6 h-6`})]),_:1})]),_:1}),w(f,{position:`center`},{default:h(()=>[_(`span`,Ot,C(e.$t(`views.plugin.title`)),1)]),_:1}),_(`div`,{class:S([`grid grid-auto grid-cols-1 lg:grid-cols-3 gap-6 lg:h-full`,{"!gap-2":E(ne)}])},[_(`div`,kt,[E(G)?(O(),b(v,{key:1,plugin:E(G),class:`h-[220px]`},null,8,[`plugin`])):(O(),b(m,{key:0,class:`cui-card items-center justify-center !h-[220px]`},{content:h(()=>[_(`div`,At,[w(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])]),_:1}))]),_(`div`,jt,[_(`span`,Mt,C(e.$t(`views.plugin.settings`)),1),w(m,{class:S([`cui-card !h-auto lg:!h-full`,{"items-center justify-center":E(ve)||E(Pe)}])},{content:h(()=>[E(ve)||E(Pe)?(O(),r(`div`,Nt,[w(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(O(),r(`div`,Pt,[_(`h3`,Ft,C(e.$t(`views.plugin.settings`)),1),E(G)?.disabled?(O(),r(`div`,It,[_(`span`,null,C(e.$t(`views.plugin.disabled_info`)),1)])):(O(),b(N,{key:1,value:E(X),"onUpdate:value":t[1]||=e=>l(X)?X.value=e:null,scrollable:``},{default:h(()=>[w(x,{class:`justify-between`,pt:{activeBar:{class:`!w-auto`},content:{class:`border-[1px] border-color cui-rounded-corner overflow-hidden`}}},{default:h(()=>[(O(!0),r(o,null,a(E(Z),(e,t)=>(O(),b(y,{key:t,disabled:e.isInterface&&E(G)?.disabled,value:e.name,"as-child":``},{default:h(t=>[s((O(),r(`div`,te({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}),[(O(),b(i(e.icon),{class:`w-5 h-5`}))],16,Lt)),[[P,{value:e.tooltip}]])]),_:2},1032,[`disabled`,`value`]))),128))]),_:1}),w(oe,{class:`px-0 pb-0`},{default:h(()=>[(O(!0),r(o,null,a(E(Z),(t,n)=>(O(),b(M,{key:n,value:t.name,"as-child":``},{default:h(n=>[n.active?(O(),r(`div`,te({key:0,class:n.class},{ref_for:!0},n.a11yAttrs),[t.name===`settings`?(O(),r(`div`,Rt,[E(ze)?(O(),r(`div`,zt,[_(`span`,null,C(e.$t(`views.plugin.nvr_settings_hint`)),1),w(ee,{to:`/settings/recordings`,class:`text-primary-500 hover:underline`},{default:h(()=>[re(C(e.$t(`views.plugin.nvr_settings_link`)),1)]),_:1})])):E(Y)?.schema?.length?(O(),b(T,{key:1,"schema-form":{schema:E(Y).schema,config:E(Y).config},loading:E(J).isLoading.value,"save-button-color":`success`,onOnAction:$,onOnSubmit:He,onOnFormSubmit:Ue},null,8,[`schema-form`,`loading`])):(O(),r(`div`,Bt,[_(`span`,null,C(e.$t(`views.plugin.no_settings`)),1)]))])):t.name===`motion_detection`?(O(),b(k,{key:1,"plugin-name":E(U),type:`motionDetection`},null,8,[`plugin-name`])):t.name===`object_detection`?(O(),b(k,{key:2,"plugin-name":E(U),type:`objectDetection`},null,8,[`plugin-name`])):t.name===`audio_detection`?(O(),b(k,{key:3,"plugin-name":E(U),type:`audioDetection`},null,8,[`plugin-name`])):t.name===`face_detection`?(O(),b(k,{key:4,"plugin-name":E(U),type:`faceDetection`},null,8,[`plugin-name`])):t.name===`license_plate_detection`?(O(),b(k,{key:5,"plugin-name":E(U),type:`licensePlateDetection`},null,8,[`plugin-name`])):t.name===`classifier_detection`?(O(),b(k,{key:6,"plugin-name":E(U),type:`classifierDetection`},null,8,[`plugin-name`])):t.name===`clip_detection`?(O(),b(k,{key:7,"plugin-name":E(U),type:`clipDetection`},null,8,[`plugin-name`])):t.name===`cameras`?(O(),r(`div`,Vt,[E(q)?.cameras?.length?(O(!0),r(o,{key:1},a(E(q).cameras,e=>(O(),r(`div`,{key:e.name,class:`cui-list-item`},[w(j,{disabled:E(Ie)||E(Re)||E(J).isLoading.value,active:E(Q).includes(e.name),class:`h-14`,onClick:t=>E(g).open({cameraName:e.name})},D({default:h(()=>[_(`span`,null,C(e.name),1)]),_:2},[!E(G)||!Ve(e,E(G).pluginName)?{name:`append`,fn:h(()=>[w(ie,{"model-value":E(Q).includes(e.name),disabled:E(Ie)||E(Re)||E(J).isLoading.value,"onUpdate:modelValue":()=>We(e)},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`])]),key:`0`}:void 0]),1032,[`disabled`,`active`,`onClick`])]))),128)):(O(),r(`div`,Ht,[_(`span`,null,C(e.$t(`views.plugin.no_cameras`)),1)]))])):d(``,!0)],16)):d(``,!0)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`value`]))]))]),_:1},8,[`class`])]),_(`div`,Ut,[_(`span`,Wt,C(e.$t(`views.plugin.readme`)),1),w(m,{class:`cui-card !h-auto lg:!h-full`},{content:h(()=>[_(`h3`,Gt,C(e.$t(`views.plugin.readme`)),1),E(be)?(O(),r(`div`,Kt,[w(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(O(),r(`div`,{key:1,class:`markdown-body`,innerHTML:E(Be).render(E(ye)||e.$t(`views.plugin.no_readme`))},null,8,qt))]),_:1})]),_(`div`,Jt,[_(`span`,Yt,C(e.$t(`views.plugin.changelog`)),1),w(m,{class:`cui-card !h-auto lg:!h-full`},{content:h(()=>[_(`h3`,Xt,C(e.$t(`views.plugin.changelog`)),1),E(je)?(O(),r(`div`,Zt,[w(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(O(),r(`div`,{key:1,class:`markdown-body`,innerHTML:E(Be).render(E(xe)||e.$t(`views.plugin.no_changelog`))},null,8,Qt))]),_:1})])],2)])}}}),[[`__scopeId`,`data-v-495cf2e0`]]);export{$t as default};
@@ -1 +1 @@
1
- import{S as e,c as t}from"./api-BaywoTCE.js";import{$n as n,Rn as r,Yt as i,Zt as a,ar as o,dn as s,on as c,sr as l,wn as u}from"./vendor-DmhYd_sB.js";import{Ut as d,Wt as f,jt as p}from"./vendor-cameraui-DggYb17u.js";import{t as m}from"./CuiSchema-CTRLO0uq.js";var h=c({__name:`PluginSchema`,props:{schemaConfig:{},pluginName:{},cameraName:{},buttonKey:{},sensorId:{},pluginId:{}},setup(c,{expose:h}){let g=c,_=e(),v=s(`dialogRef`),y=s(`dialogRefProps`),{schemaConfig:b,pluginName:x,cameraName:S,buttonKey:C,sensorId:w,pluginId:T}=o(g),E=d(x),D=p(S,x),O=f(S,w,T),k=n({schema:[],config:{}}),A=i(()=>S.value&&w.value?`sensor`:S.value?`camera`:`plugin`),j=i(()=>{switch(A.value){case`sensor`:return O;case`camera`:return D;default:return E}}),M=i(()=>!!(y.loading?.value||j.value.isLoading.value));async function N(e){await j.value.setValue(e.key,void 0)}async function P(e){let n={...b.value.config,...e},r=await j.value.submitValue(C.value,n);if(r?.toast){let e=t(r.toast.type);_.add({severity:e,detail:r.toast.message,life:3e3})}r?.schema&&Object.keys(r.schema).length&&k.value?k.value.schema=r.schema:v.value.close()}return r(b,e=>{k.value=e},{deep:!0,immediate:!0}),h({isLoading:M}),(e,t)=>{let n=m;return u(),a(n,{"schema-form":l(k),loading:l(M),"show-button":``,onOnAction:N,onOnFormSubmit:P},null,8,[`schema-form`,`loading`])}}});export{h as t};
1
+ import{S as e,c as t}from"./api-BaywoTCE.js";import{$n as n,Rn as r,Yt as i,Zt as a,ar as o,dn as s,on as c,sr as l,wn as u}from"./vendor-DmhYd_sB.js";import{Ut as d,Wt as f,jt as p}from"./vendor-cameraui-DggYb17u.js";import{t as m}from"./CuiSchema-B0M5qZi-.js";var h=c({__name:`PluginSchema`,props:{schemaConfig:{},pluginName:{},cameraName:{},buttonKey:{},sensorId:{},pluginId:{}},setup(c,{expose:h}){let g=c,_=e(),v=s(`dialogRef`),y=s(`dialogRefProps`),{schemaConfig:b,pluginName:x,cameraName:S,buttonKey:C,sensorId:w,pluginId:T}=o(g),E=d(x),D=p(S,x),O=f(S,w,T),k=n({schema:[],config:{}}),A=i(()=>S.value&&w.value?`sensor`:S.value?`camera`:`plugin`),j=i(()=>{switch(A.value){case`sensor`:return O;case`camera`:return D;default:return E}}),M=i(()=>!!(y.loading?.value||j.value.isLoading.value));async function N(e){await j.value.setValue(e.key,void 0)}async function P(e){let n={...b.value.config,...e},r=await j.value.submitValue(C.value,n);if(r?.toast){let e=t(r.toast.type);_.add({severity:e,detail:r.toast.message,life:3e3})}r?.schema&&Object.keys(r.schema).length&&k.value?k.value.schema=r.schema:v.value.close()}return r(b,e=>{k.value=e},{deep:!0,immediate:!0}),h({isLoading:M}),(e,t)=>{let n=m;return u(),a(n,{"schema-form":l(k),loading:l(M),"show-button":``,onOnAction:N,onOnFormSubmit:P},null,8,[`schema-form`,`loading`])}}});export{h as t};
@@ -1 +1 @@
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-DmhYd_sB.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-DggYb17u.js";import{f as j,l as M}from"./vendor-core-B6F-imJj.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-riqEUgwX.js";import{n as R}from"./router-DGyFln7e.js";import{t as z}from"./hasPermission-DIF0bX8u.js";import{t as B}from"./CuiTopbarSlot-BDZoZ_yn.js";import{t as V}from"./routerState-DMVeYr60.js";import{n as H,t as U}from"./round-alt-arrow-left-bold-ekP_ATNV.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
+ 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-DmhYd_sB.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-DggYb17u.js";import{f as j,l as M}from"./vendor-core-B6F-imJj.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-riqEUgwX.js";import{n as R}from"./router-BQMVP169.js";import{t as z}from"./hasPermission-DIF0bX8u.js";import{t as B}from"./CuiTopbarSlot-BDZoZ_yn.js";import{t as V}from"./routerState-DMVeYr60.js";import{n as H,t as U}from"./round-alt-arrow-left-bold-ekP_ATNV.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 +1 @@
1
- import{S as e}from"./api-BaywoTCE.js";import{$t as t,Hn as n,Qt as r,Rn as ee,Vn as i,Xt as a,Yn as o,Yt as s,Zt as c,dr as l,in as u,on as d,rn as f,sr as p,ur as te,wn as m}from"./vendor-DmhYd_sB.js";import{Bn as h,Gn as ne,Ut as g,di as _,j as v,st as y,zt as b}from"./vendor-cameraui-DggYb17u.js";import{J as re,T as ie,h as ae,x as oe}from"./vendor-primevue--pcuf6kA.js";import{t as x}from"./cameras-DQ28quQb.js";import{t as se}from"./CuiSchema-CTRLO0uq.js";import{t as ce}from"./alert-outline-D3FCIX7_.js";import{l as S,n as le,o as C,r as w,s as T}from"./vendor-chart-Dnlz1Jgy.js";import{t as E}from"./CuiPluginOAuthButton-BJRU2JBX.js";var D={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function O(e,n){return m(),t(`svg`,D,[...n[0]||=[a(`path`,{fill:`currentColor`,d:`M11 15h2v2h-2zm0-8h2v6h-2zm1-5C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18a8 8 0 0 1-8-8a8 8 0 0 1 8-8a8 8 0 0 1 8 8a8 8 0 0 1-8 8`},null,-1)]])}var k=o({name:`mdi-alert-circle-outline`,render:O}),A={class:`flex flex-col w-full gap-6`},j={key:0,class:`cui-banner cui-banner-error`},M={key:1,class:`cui-banner cui-banner-warn`},N={class:`card-title`},P={class:`flex items-center justify-between gap-4`},F={class:`min-w-0`},I={class:`text-sm`},L={class:`text-xs text-muted-color mt-1`},R={class:`card-title`},z={key:0,class:`flex items-center justify-center py-8`},B={key:1,class:`text-sm text-muted-color text-center py-8`},V={key:2,class:`flex flex-col sm:flex-row items-center gap-6`},H={class:`shrink-0`,style:{width:`180px`,height:`180px`}},U={class:`text-color`},W={class:`font-medium`},ue={class:`card-title`},de={key:1,class:`flex items-center justify-center py-8`},fe={key:2,class:`text-sm text-muted-color text-center py-8`},pe={class:`card-title`},me={key:0,class:`flex items-center justify-center py-8`},he={key:1,class:`text-sm text-muted-color text-center py-8`},ge={class:`flex items-center justify-center`},_e={class:`font-medium`},ve={class:`text-center py-4 text-muted-color text-sm`},G=`@camera.ui/camera-ui-nvr`,K=d({__name:`SettingsRecordings`,setup(o){C.register(T,w,S);let d=new x,{t:D}=_(),O=e(),{stats:K,isLoading:q}=v(),{state:J}=b(G),{isConnected:ye,isLoading:Y,config:X,getConfig:be,setConfig:xe,setValue:Se,submitValue:Ce}=g(G),we=s(()=>{switch(J.value.status){case`connected`:return D(`components.oauth.connected_as`,{email:J.value.userEmail||`—`});case`awaiting_user`:case`polling`:return D(`components.oauth.tooltip_authorizing`);case`error`:return D(`components.oauth.error_generic`);default:return D(`views.settings.recordings.license_disconnected`)}}),{data:Te}=d.getCamerasQuery({page:1,pageSize:-1}),Z={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},Ee=s(()=>{let e=new Map;for(let t of Te.value?.result??[])e.set(t._id,t.name);return e}),De=s(()=>K.value?.cameras?Object.entries(K.value.cameras).map(([e,t])=>({id:e,name:Ee.value.get(e)||e,usedBytes:t.usedBytes,segmentCount:t.segmentCount,oldestDay:t.oldestDay,newestDay:t.newestDay,daysCount:t.daysCount,bandwidthMBh:t.bandwidthMBh,recordingMode:t.recordingMode,isRecording:t.isRecording})).sort((e,t)=>t.usedBytes-e.usedBytes):[]),Oe=s(()=>K.value?[{label:D(`views.settings.recordings.disk_total`),value:$(K.value.diskTotalGB)},{label:D(`views.settings.recordings.nvr_usage`),value:$(K.value.nvrUsedGB)},{label:D(`views.settings.recordings.quota`),value:K.value.nvrQuotaGB>0?$(K.value.nvrQuotaGB):D(`views.settings.recordings.unlimited`)},{label:D(`views.settings.recordings.retention`),value:K.value.retentionDays>0?D(`views.settings.recordings.days_count`,{count:K.value.retentionDays}):D(`views.settings.recordings.unlimited`)},{label:D(`views.settings.recordings.disk_free`),value:`${$(K.value.diskFreeGB)} (${K.value.diskFreePercent.toFixed(1)}%)`}]:[]),ke=s(()=>{let e=K.value?.nvrUsedGB??0,t=K.value?.diskFreeGB??0,n=Math.max(0,(K.value?.diskUsedGB??0)-e),r=e===0&&n===0&&t===0;return{labels:[D(`views.settings.recordings.chart_nvr`),D(`views.settings.recordings.chart_other`),D(`views.settings.recordings.chart_free`)],datasets:[{data:r?[0,0,1]:[e,n,t],backgroundColor:[`#df2a4c`,`rgba(223,42,76,0.35)`,`rgba(223,42,76,0.10)`],borderWidth:0}]}}),Ae=s(()=>({responsive:!0,maintainAspectRatio:!0,cutout:`65%`,animation:!1,plugins:{legend:{display:!1},tooltip:{callbacks:{label:e=>`${e.label}: ${$(e.parsed)}`}}}}));async function je(e){try{await Se(e.key,void 0),O.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3})}catch(e){O.add({severity:`error`,detail:e,life:3e3})}}async function Q(e){try{let t=await Ce(e.key,e.payload);t?.toast?O.add({severity:t.toast.type,detail:t.toast.message,life:3e3}):O.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3})}catch(e){O.add({severity:`error`,detail:e,life:3e3})}}async function Me(e){try{await xe(e),O.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3})}catch(e){O.add({severity:`error`,detail:e,life:3e3})}}function $(e){return e>=1e3?`${(e/1e3).toFixed(2)} TB`:e>=1?`${e.toFixed(2)} GB`:`${(e*1e3).toFixed(0)} MB`}function Ne(e){return e>=0xe8d4a51000?`${(e/0xe8d4a51000).toFixed(2)} TB`:e>=1e9?`${(e/1e9).toFixed(2)} GB`:e>=1e6?`${(e/1e6).toFixed(0)} MB`:`${(e/1e3).toFixed(0)} KB`}function Pe(e){let t=e*24/1e3;return t>=1?`${t.toFixed(1)} GB/d`:`${(t*1e3).toFixed(0)} MB/d`}return ee(ye,async e=>{e&&await be()},{immediate:!0}),(e,ee)=>{let o=k,s=ce,d=y,g=h,_=oe,v=ae,b=ne,x=ie,S=re;return m(),t(`div`,null,[a(`div`,A,[p(K)&&p(K).diskFreePercent>0&&p(K).diskFreePercent<5?(m(),t(`div`,j,[u(o,{class:`shrink-0 w-5 h-5`}),a(`span`,null,l(e.$t(`views.settings.recordings.disk_critical`)),1)])):p(K)&&p(K).diskFreePercent>0&&p(K).diskFreePercent<8?(m(),t(`div`,M,[u(s,{class:`shrink-0 w-5 h-5`}),a(`span`,null,l(e.$t(`views.settings.recordings.disk_warning`)),1)])):r(``,!0),a(`div`,null,[a(`span`,N,l(e.$t(`views.settings.recordings.license_title`)),1),u(d,{class:`cui-card`},{content:i(()=>[a(`div`,P,[a(`div`,F,[a(`p`,I,l(p(we)),1),a(`p`,L,l(e.$t(`views.settings.recordings.license_description`)),1)]),u(E,{"plugin-name":G,class:`flex-shrink-0`})])]),_:1})]),a(`div`,null,[a(`span`,R,l(e.$t(`views.settings.recordings.storage_overview`)),1),u(d,{class:`cui-card`},{content:i(()=>[p(q)&&!p(K)?(m(),t(`div`,z,[u(g,{style:{width:`24px`,height:`24px`},"stroke-width":`4`})])):p(K)?(m(),t(`div`,V,[a(`div`,H,[u(p(le),{data:p(ke),options:p(Ae)},null,8,[`data`,`options`])]),u(v,{value:p(Oe),pt:Z,"striped-rows":``,"show-headers":!1,class:`w-full`},{default:i(()=>[u(_,{field:`label`},{body:i(({data:e})=>[a(`span`,U,l(e.label),1)]),_:1}),u(_,{field:`value`,style:{"text-align":`right`}},{body:i(({data:e})=>[a(`span`,W,l(e.value),1)]),_:1})]),_:1},8,[`value`])])):(m(),t(`div`,B,l(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})]),a(`div`,null,[a(`span`,ue,l(e.$t(`views.settings.recordings.global_settings`)),1),u(d,{class:`cui-card`},{content:i(()=>[p(X)?(m(),c(se,{key:0,"schema-form":{schema:p(X).schema,config:p(X).config},loading:p(Y),"save-button-color":`success`,onOnAction:je,onOnSubmit:Q,onOnFormSubmit:Me},null,8,[`schema-form`,`loading`])):p(q)||p(Y)?(m(),t(`div`,de,[u(g,{style:{width:`24px`,height:`24px`},"stroke-width":`4`})])):(m(),t(`div`,fe,l(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})]),a(`div`,null,[a(`span`,pe,l(e.$t(`views.settings.recordings.camera_storage`)),1),u(d,{class:`cui-card`},{content:i(()=>[p(q)&&!p(K)?(m(),t(`div`,me,[u(g,{style:{width:`24px`,height:`24px`},"stroke-width":`4`})])):p(K)?(m(),c(v,{key:2,value:p(De),pt:Z,"striped-rows":``,scrollable:``},{empty:i(()=>[a(`div`,ve,l(e.$t(`views.settings.recordings.no_cameras`)),1)]),default:i(()=>[u(_,{field:`status`,header:``,style:{width:`3rem`}},{body:i(({data:t})=>[a(`div`,ge,[n(u(b,{style:te({background:t.isRecording?`green`:`gray`})},null,8,[`style`]),[[S,{value:t.isRecording?e.$t(`views.settings.recordings.status_recording`):e.$t(`views.settings.recordings.status_stopped`)}]])])]),_:1}),u(_,{field:`name`,header:e.$t(`views.settings.recordings.col_camera`)},{body:i(({data:e})=>[a(`span`,_e,l(e.name),1)]),_:1},8,[`header`]),u(_,{field:`size`,header:e.$t(`views.settings.recordings.col_size`)},{body:i(({data:e})=>[f(l(Ne(e.usedBytes)),1)]),_:1},8,[`header`]),u(_,{field:`daysCount`,header:e.$t(`views.settings.recordings.col_days`)},null,8,[`header`]),u(_,{field:`rate`,header:e.$t(`views.settings.recordings.col_rate`)},{body:i(({data:e})=>[f(l(e.bandwidthMBh>0?Pe(e.bandwidthMBh):`-`),1)]),_:1},8,[`header`]),u(_,{field:`recordingMode`,header:e.$t(`views.settings.recordings.col_mode`)},{body:i(({data:e})=>[u(x,{label:e.recordingMode,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`])]),_:1},8,[`value`])):(m(),t(`div`,he,l(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})])])])}}});export{K as default};
1
+ import{S as e}from"./api-BaywoTCE.js";import{$t as t,Hn as n,Qt as r,Rn as ee,Vn as i,Xt as a,Yn as o,Yt as s,Zt as c,dr as l,in as u,on as d,rn as f,sr as p,ur as te,wn as m}from"./vendor-DmhYd_sB.js";import{Bn as h,Gn as ne,Ut as g,di as _,j as v,st as y,zt as b}from"./vendor-cameraui-DggYb17u.js";import{J as re,T as ie,h as ae,x as oe}from"./vendor-primevue--pcuf6kA.js";import{t as x}from"./cameras-DQ28quQb.js";import{t as se}from"./CuiSchema-B0M5qZi-.js";import{t as ce}from"./alert-outline-D3FCIX7_.js";import{l as S,n as le,o as C,r as w,s as T}from"./vendor-chart-Dnlz1Jgy.js";import{t as E}from"./CuiPluginOAuthButton-BJRU2JBX.js";var D={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function O(e,n){return m(),t(`svg`,D,[...n[0]||=[a(`path`,{fill:`currentColor`,d:`M11 15h2v2h-2zm0-8h2v6h-2zm1-5C6.47 2 2 6.5 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18a8 8 0 0 1-8-8a8 8 0 0 1 8-8a8 8 0 0 1 8 8a8 8 0 0 1-8 8`},null,-1)]])}var k=o({name:`mdi-alert-circle-outline`,render:O}),A={class:`flex flex-col w-full gap-6`},j={key:0,class:`cui-banner cui-banner-error`},M={key:1,class:`cui-banner cui-banner-warn`},N={class:`card-title`},P={class:`flex items-center justify-between gap-4`},F={class:`min-w-0`},I={class:`text-sm`},L={class:`text-xs text-muted-color mt-1`},R={class:`card-title`},z={key:0,class:`flex items-center justify-center py-8`},B={key:1,class:`text-sm text-muted-color text-center py-8`},V={key:2,class:`flex flex-col sm:flex-row items-center gap-6`},H={class:`shrink-0`,style:{width:`180px`,height:`180px`}},U={class:`text-color`},W={class:`font-medium`},ue={class:`card-title`},de={key:1,class:`flex items-center justify-center py-8`},fe={key:2,class:`text-sm text-muted-color text-center py-8`},pe={class:`card-title`},me={key:0,class:`flex items-center justify-center py-8`},he={key:1,class:`text-sm text-muted-color text-center py-8`},ge={class:`flex items-center justify-center`},_e={class:`font-medium`},ve={class:`text-center py-4 text-muted-color text-sm`},G=`@camera.ui/camera-ui-nvr`,K=d({__name:`SettingsRecordings`,setup(o){C.register(T,w,S);let d=new x,{t:D}=_(),O=e(),{stats:K,isLoading:q}=v(),{state:J}=b(G),{isConnected:ye,isLoading:Y,config:X,getConfig:be,setConfig:xe,setValue:Se,submitValue:Ce}=g(G),we=s(()=>{switch(J.value.status){case`connected`:return D(`components.oauth.connected_as`,{email:J.value.userEmail||`—`});case`awaiting_user`:case`polling`:return D(`components.oauth.tooltip_authorizing`);case`error`:return D(`components.oauth.error_generic`);default:return D(`views.settings.recordings.license_disconnected`)}}),{data:Te}=d.getCamerasQuery({page:1,pageSize:-1}),Z={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},Ee=s(()=>{let e=new Map;for(let t of Te.value?.result??[])e.set(t._id,t.name);return e}),De=s(()=>K.value?.cameras?Object.entries(K.value.cameras).map(([e,t])=>({id:e,name:Ee.value.get(e)||e,usedBytes:t.usedBytes,segmentCount:t.segmentCount,oldestDay:t.oldestDay,newestDay:t.newestDay,daysCount:t.daysCount,bandwidthMBh:t.bandwidthMBh,recordingMode:t.recordingMode,isRecording:t.isRecording})).sort((e,t)=>t.usedBytes-e.usedBytes):[]),Oe=s(()=>K.value?[{label:D(`views.settings.recordings.disk_total`),value:$(K.value.diskTotalGB)},{label:D(`views.settings.recordings.nvr_usage`),value:$(K.value.nvrUsedGB)},{label:D(`views.settings.recordings.quota`),value:K.value.nvrQuotaGB>0?$(K.value.nvrQuotaGB):D(`views.settings.recordings.unlimited`)},{label:D(`views.settings.recordings.retention`),value:K.value.retentionDays>0?D(`views.settings.recordings.days_count`,{count:K.value.retentionDays}):D(`views.settings.recordings.unlimited`)},{label:D(`views.settings.recordings.disk_free`),value:`${$(K.value.diskFreeGB)} (${K.value.diskFreePercent.toFixed(1)}%)`}]:[]),ke=s(()=>{let e=K.value?.nvrUsedGB??0,t=K.value?.diskFreeGB??0,n=Math.max(0,(K.value?.diskUsedGB??0)-e),r=e===0&&n===0&&t===0;return{labels:[D(`views.settings.recordings.chart_nvr`),D(`views.settings.recordings.chart_other`),D(`views.settings.recordings.chart_free`)],datasets:[{data:r?[0,0,1]:[e,n,t],backgroundColor:[`#df2a4c`,`rgba(223,42,76,0.35)`,`rgba(223,42,76,0.10)`],borderWidth:0}]}}),Ae=s(()=>({responsive:!0,maintainAspectRatio:!0,cutout:`65%`,animation:!1,plugins:{legend:{display:!1},tooltip:{callbacks:{label:e=>`${e.label}: ${$(e.parsed)}`}}}}));async function je(e){try{await Se(e.key,void 0),O.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3})}catch(e){O.add({severity:`error`,detail:e,life:3e3})}}async function Q(e){try{let t=await Ce(e.key,e.payload);t?.toast?O.add({severity:t.toast.type,detail:t.toast.message,life:3e3}):O.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3})}catch(e){O.add({severity:`error`,detail:e,life:3e3})}}async function Me(e){try{await xe(e),O.add({severity:`success`,detail:D(`components.toast.config_updated`),life:3e3})}catch(e){O.add({severity:`error`,detail:e,life:3e3})}}function $(e){return e>=1e3?`${(e/1e3).toFixed(2)} TB`:e>=1?`${e.toFixed(2)} GB`:`${(e*1e3).toFixed(0)} MB`}function Ne(e){return e>=0xe8d4a51000?`${(e/0xe8d4a51000).toFixed(2)} TB`:e>=1e9?`${(e/1e9).toFixed(2)} GB`:e>=1e6?`${(e/1e6).toFixed(0)} MB`:`${(e/1e3).toFixed(0)} KB`}function Pe(e){let t=e*24/1e3;return t>=1?`${t.toFixed(1)} GB/d`:`${(t*1e3).toFixed(0)} MB/d`}return ee(ye,async e=>{e&&await be()},{immediate:!0}),(e,ee)=>{let o=k,s=ce,d=y,g=h,_=oe,v=ae,b=ne,x=ie,S=re;return m(),t(`div`,null,[a(`div`,A,[p(K)&&p(K).diskFreePercent>0&&p(K).diskFreePercent<5?(m(),t(`div`,j,[u(o,{class:`shrink-0 w-5 h-5`}),a(`span`,null,l(e.$t(`views.settings.recordings.disk_critical`)),1)])):p(K)&&p(K).diskFreePercent>0&&p(K).diskFreePercent<8?(m(),t(`div`,M,[u(s,{class:`shrink-0 w-5 h-5`}),a(`span`,null,l(e.$t(`views.settings.recordings.disk_warning`)),1)])):r(``,!0),a(`div`,null,[a(`span`,N,l(e.$t(`views.settings.recordings.license_title`)),1),u(d,{class:`cui-card`},{content:i(()=>[a(`div`,P,[a(`div`,F,[a(`p`,I,l(p(we)),1),a(`p`,L,l(e.$t(`views.settings.recordings.license_description`)),1)]),u(E,{"plugin-name":G,class:`flex-shrink-0`})])]),_:1})]),a(`div`,null,[a(`span`,R,l(e.$t(`views.settings.recordings.storage_overview`)),1),u(d,{class:`cui-card`},{content:i(()=>[p(q)&&!p(K)?(m(),t(`div`,z,[u(g,{style:{width:`24px`,height:`24px`},"stroke-width":`4`})])):p(K)?(m(),t(`div`,V,[a(`div`,H,[u(p(le),{data:p(ke),options:p(Ae)},null,8,[`data`,`options`])]),u(v,{value:p(Oe),pt:Z,"striped-rows":``,"show-headers":!1,class:`w-full`},{default:i(()=>[u(_,{field:`label`},{body:i(({data:e})=>[a(`span`,U,l(e.label),1)]),_:1}),u(_,{field:`value`,style:{"text-align":`right`}},{body:i(({data:e})=>[a(`span`,W,l(e.value),1)]),_:1})]),_:1},8,[`value`])])):(m(),t(`div`,B,l(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})]),a(`div`,null,[a(`span`,ue,l(e.$t(`views.settings.recordings.global_settings`)),1),u(d,{class:`cui-card`},{content:i(()=>[p(X)?(m(),c(se,{key:0,"schema-form":{schema:p(X).schema,config:p(X).config},loading:p(Y),"save-button-color":`success`,onOnAction:je,onOnSubmit:Q,onOnFormSubmit:Me},null,8,[`schema-form`,`loading`])):p(q)||p(Y)?(m(),t(`div`,de,[u(g,{style:{width:`24px`,height:`24px`},"stroke-width":`4`})])):(m(),t(`div`,fe,l(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})]),a(`div`,null,[a(`span`,pe,l(e.$t(`views.settings.recordings.camera_storage`)),1),u(d,{class:`cui-card`},{content:i(()=>[p(q)&&!p(K)?(m(),t(`div`,me,[u(g,{style:{width:`24px`,height:`24px`},"stroke-width":`4`})])):p(K)?(m(),c(v,{key:2,value:p(De),pt:Z,"striped-rows":``,scrollable:``},{empty:i(()=>[a(`div`,ve,l(e.$t(`views.settings.recordings.no_cameras`)),1)]),default:i(()=>[u(_,{field:`status`,header:``,style:{width:`3rem`}},{body:i(({data:t})=>[a(`div`,ge,[n(u(b,{style:te({background:t.isRecording?`green`:`gray`})},null,8,[`style`]),[[S,{value:t.isRecording?e.$t(`views.settings.recordings.status_recording`):e.$t(`views.settings.recordings.status_stopped`)}]])])]),_:1}),u(_,{field:`name`,header:e.$t(`views.settings.recordings.col_camera`)},{body:i(({data:e})=>[a(`span`,_e,l(e.name),1)]),_:1},8,[`header`]),u(_,{field:`size`,header:e.$t(`views.settings.recordings.col_size`)},{body:i(({data:e})=>[f(l(Ne(e.usedBytes)),1)]),_:1},8,[`header`]),u(_,{field:`daysCount`,header:e.$t(`views.settings.recordings.col_days`)},null,8,[`header`]),u(_,{field:`rate`,header:e.$t(`views.settings.recordings.col_rate`)},{body:i(({data:e})=>[f(l(e.bandwidthMBh>0?Pe(e.bandwidthMBh):`-`),1)]),_:1},8,[`header`]),u(_,{field:`recordingMode`,header:e.$t(`views.settings.recordings.col_mode`)},{body:i(({data:e})=>[u(x,{label:e.recordingMode,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`])]),_:1},8,[`value`])):(m(),t(`div`,he,l(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})])])])}}});export{K as default};