@camera.ui/server 0.0.12-alpha.4 → 0.0.13-alpha.0
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.
- package/dist/interface/assets/{Account-CWvLwuSI.js → Account-ztef-k66.js} +1 -1
- package/dist/interface/assets/Adminpanel-BEcJey3P.js +2 -0
- package/dist/interface/assets/Adminpanel-BVlDKLbx.css +1 -0
- package/dist/interface/assets/{Appearance-Bt86BtvT.js → Appearance-CsfsWFip.js} +1 -1
- package/dist/interface/assets/{Backup-BoCWS3SS.js → Backup-BwyitGhD.js} +1 -1
- package/dist/interface/assets/{Camera-DGGyL9at.js → Camera-C3krHJdP.js} +1 -1
- package/dist/interface/assets/{Cameras-BT6tKbp5.js → Cameras-B3CGK5bP.js} +1 -1
- package/dist/interface/assets/{Camview-BIiqI_Yj.js → Camview-DYA9NpZ3.js} +1 -1
- package/dist/interface/assets/{Config-EHUrVnjH.js → Config-C4Yj-UzO.js} +1 -1
- package/dist/interface/assets/{Console-D7qigIrb.js → Console-CqFPXqb4.js} +1 -1
- package/dist/interface/assets/FirstSteps-CXJW46_r.css +1 -0
- package/dist/interface/assets/FirstSteps-DZRXrwSw.js +1 -0
- package/dist/interface/assets/{NewCamera-DrIOe7GH.js → NewCamera-8rlzf_6H.js} +19 -19
- package/dist/interface/assets/NewCamera-XducYkxQ.css +1 -0
- package/dist/interface/assets/{Plugin-CZN7KLfw.js → Plugin-mw4kghIK.js} +1 -1
- package/dist/interface/assets/{Plugins-DJCy47sz.css → Plugins-OYudBc-U.css} +1 -1
- package/dist/interface/assets/Plugins-roT2R7G-.js +1 -0
- package/dist/interface/assets/{Recordings-BsNa4nl1.js → Recordings-C8o1REyq.js} +1 -1
- package/dist/interface/assets/{Recordings-CBmeBTjC.js → Recordings-Cb66bgzd.js} +1 -1
- package/dist/interface/assets/Settings-CIMHAESW.js +1 -0
- package/dist/interface/assets/Settings-DO7S-9Ob.css +1 -0
- package/dist/interface/assets/{System-BeXkfJHe.js → System-D9FiXyM6.js} +2 -2
- package/dist/interface/assets/{User-CA1u4oTs.js → User-D97-Rs68.js} +1 -1
- package/dist/interface/assets/{VConfigEditor.vue_vue_type_script_setup_true_lang-DzQETeRW.js → VConfigEditor.vue_vue_type_script_setup_true_lang-DE77uadd.js} +1 -1
- package/dist/interface/assets/{VConsole-B1XFaB1X.js → VConsole-Bf-WItOk.js} +1 -1
- package/dist/interface/assets/VConsole-Ce_ESyGu.css +1 -0
- package/dist/interface/assets/{VPlayer-B1HHlrNE.css → VPlayer-BWeNP9xt.css} +1 -1
- package/dist/interface/assets/VPlayer-CjBoAE42.js +1 -0
- package/dist/interface/assets/{VPluginCard-DxspPu-g.js → VPluginCard-23hHloPd.js} +1 -1
- package/dist/interface/assets/{axios--Jv2L996.js → axios-BI2i94Vb.js} +1 -1
- package/dist/interface/assets/{main-Uk5-SrnC.css → main-CTF7x7Fg.css} +1 -1
- package/dist/interface/assets/{main-g2kR7sEX.js → main-CltTNKYj.js} +8 -8
- package/dist/interface/assets/{plugins-S3SjQeRW.js → plugins-BvEiuWHs.js} +1 -1
- package/dist/interface/assets/{system-l2HUoPBI.js → system-4fS8k88J.js} +1 -1
- package/dist/interface/index.html +3 -3
- package/dist/interface/pwa/pwa-120x120.png +0 -0
- package/dist/interface/pwa/pwa-144x144.png +0 -0
- package/dist/interface/pwa/pwa-152x152.png +0 -0
- package/dist/interface/pwa/pwa-167x167.png +0 -0
- package/dist/interface/pwa/pwa-192x192.png +0 -0
- package/dist/interface/pwa/pwa-24x24.png +0 -0
- package/dist/interface/pwa/pwa-36x36.png +0 -0
- package/dist/interface/pwa/pwa-48x48.png +0 -0
- package/dist/interface/pwa/pwa-50x50.png +0 -0
- package/dist/interface/pwa/pwa-64x64.png +0 -0
- package/dist/interface/pwa/pwa-72x72.png +0 -0
- package/dist/interface/pwa/pwa-88x88.png +0 -0
- package/dist/interface/pwa/pwa-96x96.png +0 -0
- package/dist/interface/sw.js +1 -1
- package/dist/server/bin/cameraui.js +1 -2
- package/dist/server/bin/cameraui.js.map +1 -1
- package/dist/server/package.json +1 -1
- package/dist/server/src/api/controllers/plugins.controller.js +2 -5
- package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
- package/dist/server/src/plugins/worker.js +2 -4
- package/dist/server/src/plugins/worker.js.map +1 -1
- package/dist/server/src/polyglot/python/plugins/plugin_api.py +0 -2
- package/dist/server/src/services/logger/index.d.ts +3 -9
- package/dist/server/src/services/logger/index.js +3 -21
- package/dist/server/src/services/logger/index.js.map +1 -1
- package/dist/server/src/utils/pythonInstaller.js +5 -6
- package/dist/server/src/utils/pythonInstaller.js.map +1 -1
- package/package.json +1 -1
- package/dist/interface/assets/Adminpanel-Cp92VRfz.css +0 -1
- package/dist/interface/assets/Adminpanel-D1acAd4f.js +0 -2
- package/dist/interface/assets/FirstSteps-BdNf60c3.js +0 -1
- package/dist/interface/assets/FirstSteps-tMe0mt29.css +0 -1
- package/dist/interface/assets/NewCamera-CHMgUDbC.css +0 -1
- package/dist/interface/assets/Plugins-DePXhcTc.js +0 -1
- package/dist/interface/assets/Settings-HBKa6UiL.js +0 -1
- package/dist/interface/assets/Settings-JES2wb8p.css +0 -1
- package/dist/interface/assets/VConsole-MV9pQtJj.css +0 -1
- package/dist/interface/assets/VPlayer-DpgP5_CU.js +0 -1
- package/dist/server/src/polyglot/node/decoder/wasm/test/imageUtils.py +0 -106
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var Fo=Object.defineProperty;var Bo=(o,s,n)=>s in o?Fo(o,s,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[s]=n;var Sa=(o,s,n)=>Bo(o,typeof s!="symbol"?s+"":s,n);import{a as Io,e as so,d as Bt,s as To,w as Aa,i as Tt,x as Le,G as qo,H as Ao,I as Oo,J as No,f as lo,K as ro,k as Pa,u as Qo,U as Do,t as Lo,h as Ro}from"./main-g2kR7sEX.js";import{F as vt,t as ft,r as b,c as W,J as Ma,e as l,f as v,u as e,N as be,j as p,T as d,M as a,l as A,O as P,R as t,m as Pe,as as da,q as K,V as w,i as ze,Q as $e,w as xe,ak as jo,al as Uo,y as ya,n as jt,z as St,ai as Zo,aj as Ko,am as Wo,k as za,W as io,I as Ho,a3 as uo,a0 as co,ag as Yo,U as Jo,g as yt,X as qt}from"./@vue-DMh6qW6s.js";import{m as Xo,a as Go,s as At,_ as Za,F as mo,G as po,e as vo,N as en,a0 as tn,V as fo,a4 as an,a5 as on,a6 as nn,a7 as sn,c as Ea,a8 as Ka,a9 as ln,aa as rn,ab as Wa,ac as Oa,ad as un,Y as cn,i as dn,ae as Ha,af as mn,ag as pn,ah as vn,ai as fn,Q as gn,R as yn,K as hn,aj as bn,ak as _n,al as kn,am as wn,S as xn,T as Cn,an as Ya,I as $n,J as Vn,E as Sn,ao as Pn,ap as zn,aq as Mn,ar as En,as as Fn,at as Bn}from"./@mdi-CmcijEFB.js";import{b as In}from"./qrcode-SHonoxyK.js";import{F as Fe,a as ma}from"./vee-validate-9vrYaQFq.js";import{z as ot,c as we}from"./zod-BaF2dDCd.js";import{s as go}from"./pinia-BQbsPkIS.js";import{y as Tn,k as Yt,o as Na,z as qn,A as An,w as On,t as Lt,B as Nn}from"./@vueuse-D76s02Ot.js";import{c as rt,b as te,e as j,d as Fa,y as Ot,m as at,L as ht,M as bt,X as pt,N as _t,K as kt,Y as Et,w as Qa,x as Da,V as Pt,f as Ba,J as Ia,n as He,Z as Ja,U as Qn,W as Dn,_ as Ln,C as Rn,G as Xa,I as Ga,o as eo,T as Vt}from"./vuetify-DYU2dOLI.js";import{t as ha}from"./@vee-validate-BY5H7fGS.js";import{i as wt}from"./vue3-toastify-D8Ru9hkX.js";import{P as yo}from"./plugins-S3SjQeRW.js";import{D as ho}from"./draggabilly-Arakw9Dk.js";import{u as jn,b as tt,a as Rt}from"./@tanstack-BvYNCsQh.js";import{u as Un,a as bo}from"./vue-router-Bje-Muh5.js";const Ta=o=>/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(.\d+)?(Z|[+-]\d{2}:\d{2})?)?$/.test(o),_o=(o,s)=>(s.mode==="withSeconds"?/^([01]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/:/^([01]?[0-9]|2[0-3]):([0-5][0-9])$/).test(o),ko=o=>/^\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b$/.test(o),wo=o=>/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/.test(o),pa=(o,s)=>(s===4?/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/:/^\s*([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4})\s*$/).test(o),Zn=o=>{const s={};return Object.entries(o).forEach(([n,C])=>{s[n]=La(C)}),{schema:s}},La=o=>{switch(!0){case o===void 0:case typeof o>"u":case typeof o=="function":case typeof o=="symbol":case o instanceof Date:throw new TypeError(`Invalid JSON value: ${String(o)}`);case typeof o=="number":return Hn();case typeof o=="boolean":return Yn();case typeof o=="string":return Jn(o);case Array.isArray(o):return o.every(n=>typeof n=="string"||typeof n=="number"||typeof n=="boolean")?Xn(o):es(o);case o instanceof Object:return Gn(o);default:throw new TypeError(`Invalid JSON value: ${o}`)}},Kn=o=>{const s={};return Object.entries(o.schema).forEach(([n,C])=>{s[n]=va(C)}),s},va=o=>{switch(o.type){case"string":case"number":case"boolean":return Jt(o)?o.multiple?o.defaultValue!==void 0?[o.defaultValue]:void 0:o.defaultValue!==void 0?o.defaultValue:o.required?o.enum[0]:void 0:o.defaultValue;case"object":return o.properties?Object.entries(o.properties).reduce((s,[n,C])=>(s[n]=va(C),s),{}):{};case"array":return o.items?[va(o.items)]:[];default:return}},to=(o,s,n="")=>{const C={},E=(Q,L)=>{const _=n?`${n}.${L}`:L,U=$o(s,_);if(Ut(Q)&&Q.properties){const S=to(Q.properties,s,_);Object.keys(S).length>0&&(C[L]=S)}else if(ga(Q)&&Q.items){const S=U;Array.isArray(S)&&(C[L]=S.map((M,x)=>to(Q.items,{[x]:M},`${_}[${x}]`)).filter(M=>Object.keys(M).length>0))}else Q.store&&(C[L]=U)};return as(o)?E(o,n):Object.entries(o).forEach(([Q,L])=>{E(L,Q)}),C},xo=o=>!!(o.readonly||Ut(o)&&o.properties&&Object.values(o.properties).every(s=>xo(s))),Co=o=>!!(o.store||Ut(o)&&o.properties&&Object.values(o.properties).some(s=>Co(s))),$o=(o={},s)=>{const n=s.split(".").reduce((E,Q)=>{if(Q.includes("[")){const[L,_]=Q.split("[");E.push(L,_.slice(0,-1))}else E.push(Q);return E},[]);let C=o;for(const E of n){if(C===void 0)return;C=C[E]}return C},Wn=o=>{const s={};return Object.entries(o.schema).forEach(([n,C])=>{s[n]=Ra(C)}),ot.object(s).strict()},Ra=o=>{switch(o.type){case"string":case"number":case"boolean":return Jt(o)?ls(o):Ft(o)?os(o):fa(o)?ns(o):ss(o);case"object":return rs(o);case"array":return is(o);case"button":return ot.any()}},Hn=()=>({type:"number"}),Yn=()=>({type:"boolean"}),Jn=o=>{const s={type:"string"};return Ta(o)&&(s.format=o.includes("T")?"date-time":"date"),_o(o.split("+")[0],{mode:"withSeconds"})&&(s.format="time"),ko(o)&&(s.format="email"),wo(o)&&(s.format="uuid"),pa(o,4)&&(s.format="ipv4"),pa(o,6)&&(s.format="ipv6"),s},Xn=o=>({type:"string",enum:o.map(s=>s.toString())}),Gn=o=>{if(!Object.keys(o).length)return{type:"object"};const s={};return Object.entries(o).forEach(([n,C])=>{const E=La(C);E.key=n,E.description=E.description||`Description for ${n}`,E.required=E.required===void 0?!0:E.required,E.readonly=E.readonly||!1,s[n]=E}),{type:"object",properties:s}},es=o=>{if(o.length===0)return{type:"array"};const s=o.every(E=>typeof E=="object"&&E!==null&&!Array.isArray(E)),n=o.every(E=>typeof E=="string"),C=o.every(E=>typeof E=="number");if(s){const E={},Q={};return o.forEach(L=>{Object.keys(L).forEach(_=>{Q[_]=(Q[_]||0)+1})}),o.forEach(L=>{Object.entries(L).forEach(([_,U])=>{if(!E[_]){const S=Q[_]===o.length;E[_]={...La(U),required:S,title:_,description:`Description for ${_}`,readonly:!1}}})}),{type:"array",items:{type:"object",properties:E}}}else return n?{type:"array",items:{type:"string"}}:C?{type:"array",items:{type:"number"}}:{type:"array",items:{type:"boolean"}}},Ft=o=>o.type==="string"&&!("enum"in o),fa=o=>o.type==="number"&&!("enum"in o),qa=o=>o.type==="boolean"&&!("enum"in o),Jt=o=>"enum"in o,Ut=o=>o.type==="object",ao=o=>Ut(o)&&"buttons"in o,ga=o=>o.type==="array",ts=o=>o.type==="button",as=o=>Ft(o)||fa(o)||qa(o)||Jt(o)||Ut(o)||ga(o),os=o=>{let s=ot.string();if(o.required&&(s=s.nonempty("Required")),o.minLength!==void 0&&(s=s.min(o.minLength)),o.maxLength!==void 0&&(s=s.max(o.maxLength)),o.format)switch(o.format){case"date-time":s=s.refine(n=>Ta(n)&&n.includes("T"),{message:"Invalid date-time"});break;case"date":s=s.refine(n=>Ta(n),{message:"Invalid date"});break;case"time":s=s.refine(n=>_o(n.split("+")[0],{mode:"withSeconds"}),{message:"Invalid time"});break;case"email":s=s.refine(n=>ko(n),{message:"Invalid email"});break;case"uuid":s=s.refine(n=>wo(n),{message:"Invalid uuid"});break;case"ipv4":s=s.refine(n=>pa(n,4),{message:"Invalid ipv4"});break;case"ipv6":s=s.refine(n=>pa(n,6),{message:"Invalid ipv6"});break}return o.required?s:s.optional()},ns=o=>{let s=ot.number();return o.minimum!==void 0&&(s=s.min(o.minimum)),o.maximum!==void 0&&(s=s.max(o.maximum)),o.required&&(s=s.refine(n=>n!==void 0&&typeof n=="number",{message:"Required"})),o.required?s:s.optional()},ss=o=>{const s=ot.boolean();return o.required?s:s.optional()},ls=o=>{const s=o.enum.map(C=>o.required?ot.literal(C):ot.literal(C).optional()),n=o.required?ot.union(s):ot.any().transform(C=>!C||C===""||!o.enum.some(E=>E===C)?void 0:C);return o.multiple?o.required?n.array():n.array().optional():o.required?n:n.optional()},rs=o=>{let s;if(o.properties){const n=Object.entries(o.properties).reduce((C,[E,Q])=>(C[E]=Ra(Q),C),{});s=ot.object(n).strict()}else s=ot.record(ot.any());return o.required?s:s.optional()},is=o=>{let s;return o.items?s=Ra(o.items).array():s=ot.any().array(),o.required?s:s.optional()},us={0:"person",1:"bicycle",2:"car",3:"motorcycle",4:"airplane",5:"bus",6:"train",7:"truck",8:"boat",9:"traffic light",10:"fire hydrant",11:"stop sign",12:"parking meter",13:"bench",14:"bird",15:"cat",16:"dog",17:"horse",18:"sheep",19:"cow",20:"elephant",21:"bear",22:"zebra",23:"giraffe",24:"backpack",25:"umbrella",26:"handbag",27:"tie",28:"suitcase",29:"frisbee",30:"skis",31:"snowboard",32:"sports ball",33:"kite",34:"baseball bat",35:"baseball glove",36:"skateboard",37:"surfboard",38:"tennis racket",39:"bottle",40:"wine glass",41:"cup",42:"fork",43:"knife",44:"spoon",45:"bowl",46:"banana",47:"apple",48:"sandwich",49:"orange",50:"broccoli",51:"carrot",52:"hot dog",53:"pizza",54:"donut",55:"cake",56:"chair",57:"couch",58:"potted plant",59:"bed",60:"dining table",61:"toilet",62:"tv",63:"laptop",64:"mouse",65:"remote",66:"keyboard",67:"cell phone",68:"microwave",69:"oven",70:"toaster",71:"sink",72:"refrigerator",73:"book",74:"clock",75:"vase",76:"scissors",77:"teddy bear",78:"hair drier",79:"toothbrush",100:"motion"},cs={class:"w-full my-3"},ds=["for"],ms=["for"],ps=["for"],vs=["for"],fs=["for"],gs={class:"v-input__details",style:{"padding-inline":"16px"}},ys={class:"v-messages"},hs={key:0,class:"v-messages__message"},bs={class:"flex flex-row items-center justify-center ml-auto"},_s={key:0,class:"flex flex-col w-full items-center justify-center mt-3"},ks={class:"flex flex-row w-full items-center justify-center mt-3"},ws=vt({__name:"VCustomField",props:{schemaField:{},configKey:{},modelValue:{},removable:{},loading:{type:Boolean,default:!1}},emits:["onChange","onSubmit","onAction"],setup(o,{emit:s}){const n=Io(),C=s,E=o,{theme:Q}=go(n),{modelValue:L,schemaField:_,configKey:U,removable:S,loading:M}=ft(E),x=b(!1),k=Tn(async()=>{if(Ft(_.value)&&_.value.format==="qrCode"){let I;return Q.value==="dark"?I={dark:"#FFFFFFFF",light:"#FF000000"}:I={dark:"#404040FF",light:"#FFFFFFFF"},await In.toDataURL(me.value,{margin:.5,type:"image/png",color:I,scale:10})}},void 0,{lazy:!0}),z=W(()=>{if(Ft(_.value)&&_.value.format==="image")return me.value}),u=(I,h)=>{const ee=g(L.value,I);Array.isArray(ee)&&ee.splice(h,1)},q=I=>{let h=g(L.value,I);h||(J(L.value,I,[]),h=g(L.value,I));const ee=_.value;if(Array.isArray(h)&&ee&&ga(ee)&&ee.items){const O=va(ee.items);h.push(O)}},ae=I=>{var h;return((h=I.match(/[^.[\]]+|\[\d+\]/g))==null?void 0:h.map(ee=>ee.startsWith("[")?parseInt(ee.slice(1,-1)):ee))||[]},g=(I,h)=>{const ee=ae(h);let O=I;for(const T of ee){if(O==null)return;O=O[T]}if(!(O||!1)){const T=de(_.value,h);return T&&"defaultValue"in T?T.defaultValue:void 0}return O},J=(I,h,ee)=>{const O=ae(h),H=O.pop(),T=O.reduce((V,R)=>(V[R]||(V[R]={}),V[R]),I);H!==void 0&&(T[H]=ee)},de=(I,h)=>{const ee=ae(h);let O=I;for(const H of ee)if(O.type==="object"&&O.properties)O=O.properties[H];else if(O.type==="array"&&O.items&&!("anyOf"in O.items))O=O.items;else return O;return O},ce=I=>I.type==="string"&&I.format!=="qrCode"&&I.format!=="image",me=W({get:()=>g(L.value,U.value),set:I=>{const h=_.value;let ee=I;h&&(Jt(h)?h.multiple?ee=Array.isArray(I)?I:[I]:ee=I&&I.toString():Ft(h)?ee=I&&I.toString():fa(h)?ee=isNaN(parseFloat(I))?h.minimum!==void 0?h.minimum:0:parseFloat(I):qa(h)?ee=I==="true"||I===!0:ee=I),J(L.value,U.value,ee)}});return(I,h)=>{const ee=so,O=Ma("v-number-input"),H=Ma("VCustomField",!0);return l(),v("div",cs,[e(Ft)(e(_))&&e(_).format==="qrCode"?(l(),v(be,{key:0},[p("label",{for:e(U),class:"v-label"},d(e(_).title),9,ds),a(ee,{src:e(k),class:"mb-3"},null,8,["src"])],64)):A("",!0),e(Ft)(e(_))&&e(_).format==="image"?(l(),v(be,{key:1},[p("label",{for:e(U),class:"v-label"},d(e(_).title),9,ms),a(ee,{src:e(z),class:"mb-3"},null,8,["src"])],64)):e(Ft)(e(_))&&ce(e(_))?(l(),P(e(Fe),{key:2,modelValue:e(me),"onUpdate:modelValue":h[2]||(h[2]=T=>ze(me)?me.value=T:null),name:e(U)},{default:t(({field:T,errorMessage:V,errors:R})=>[p("label",{for:e(U),class:"v-label"},d(e(_).title),9,ps),a(rt,Pe({"model-value":T.value,error:R.length>0,"error-messages":V,readonly:e(_).readonly,placeholder:e(_).placeholder,hint:e(_).description,"persistent-hint":""},T,{variant:"outlined",density:"compact",type:e(_).format==="password"?e(x)?"text":"password":"text","append-inner-icon":e(_).format==="password"?e(x)?e(Xo):e(Go):void 0,"onClick:appendInner":h[1]||(h[1]=Y=>x.value=!e(x))}),da({_:2},[e(S)?{name:"append-inner",fn:t(()=>[a(te,{size:"22.5",rounded:"",color:"red",variant:"text",class:"mx-2",onClick:h[0]||(h[0]=K(Y=>u(e(S).path,e(S).index),["stop"]))},{default:t(()=>[a(j,null,{default:t(()=>[w(d(e(At)),1)]),_:1})]),_:1})]),key:"0"}:void 0]),1040,["model-value","error","error-messages","readonly","placeholder","hint","type","append-inner-icon"])]),_:1},8,["modelValue","name"])):e(fa)(e(_))?(l(),P(e(Fe),{key:3,modelValue:e(me),"onUpdate:modelValue":h[4]||(h[4]=T=>ze(me)?me.value=T:null),name:e(U)},{default:t(({field:T,errorMessage:V,errors:R})=>[p("label",{for:e(U),class:"v-label"},d(e(_).title),9,vs),a(O,Pe({"model-value":T.value,error:R.length>0,"error-messages":V,readonly:e(_).readonly,hint:e(_).description,step:e(_).step||1,"persistent-hint":""},T,{variant:"outlined",type:"number",density:"compact"}),da({_:2},[e(S)?{name:"append-inner",fn:t(()=>[a(te,{size:"22.5",rounded:"",color:"red",variant:"text",class:"mx-2",onClick:h[3]||(h[3]=K(Y=>u(e(S).path,e(S).index),["stop"]))},{default:t(()=>[a(j,null,{default:t(()=>[w(d(e(At)),1)]),_:1})]),_:1})]),key:"0"}:void 0]),1040,["model-value","error","error-messages","readonly","hint","step"])]),_:1},8,["modelValue","name"])):e(qa)(e(_))?(l(),P(e(Fe),{key:4,modelValue:e(me),"onUpdate:modelValue":h[6]||(h[6]=T=>ze(me)?me.value=T:null),name:e(U),type:"checkbox","checked-value":!0,"unchecked-value":!1},{default:t(({field:T,errors:V,errorMessage:R})=>[a(Fa,Pe({"model-value":T.checked,class:"w-full"},T,{color:"#df2a4c",type:"checkbox","persistent-hint":"",label:e(_).title,error:V.length>0,"error-messages":R,hint:e(_).description}),da({_:2},[e(S)?{name:"append",fn:t(()=>[a(te,{size:"22.5",rounded:"",color:"red",variant:"text",class:"mx-2",onClick:h[5]||(h[5]=K(Y=>u(e(S).path,e(S).index),["stop"]))},{default:t(()=>[a(j,null,{default:t(()=>[w(d(e(At)),1)]),_:1})]),_:1})]),key:"0"}:void 0]),1040,["model-value","label","error","error-messages","hint"])]),_:1},8,["modelValue","name"])):e(Jt)(e(_))?(l(),P(e(Fe),{key:5,modelValue:e(me),"onUpdate:modelValue":h[8]||(h[8]=T=>ze(me)?me.value=T:null),name:e(U)},{default:t(({field:T,errorMessage:V,errors:R})=>[p("label",{for:e(U),class:"v-label"},d(e(_).title),9,fs),a(Ot,Pe({items:e(_).enum,error:R.length>0,"error-messages":V,readonly:e(_).readonly,hint:e(_).description,"model-value":T.value,"persistent-hint":""},T,{variant:"outlined",density:"compact",chips:"",multiple:e(_).multiple,clearable:!e(_).required&&!e(_).readonly,onKeydown:h[7]||(h[7]=K(()=>{},["prevent"]))}),{chip:t(({item:Y})=>[a(at,{color:"#df2a4c"},{default:t(()=>[w(d(Y.title),1)]),_:2},1024)]),_:2},1040,["items","error","error-messages","readonly","hint","model-value","multiple","clearable"])]),_:1},8,["modelValue","name"])):e(ts)(e(_))?(l(),v(be,{key:6},[a(te,{width:"100%",color:"#df2a4c",variant:"flat",class:"mt-3",loading:e(M),onClick:h[9]||(h[9]=K(T=>C("onAction",{configPath:e(U)}),["prevent"]))},{default:t(()=>[w(d(e(_).title),1)]),_:1},8,["loading"]),p("div",gs,[p("div",ys,[e(_).description?(l(),v("div",hs,d(e(_).description),1)):A("",!0)])])],64)):e(Ut)(e(_))||e(ao)(e(_))?(l(),P(kt,{key:7,"model-value":e(_).opened?[0]:[],class:"inner-component-2 mt-0 mb-3"},{default:t(()=>[a(ht,{elevation:"0"},{default:t(()=>[a(bt,{style:{height:"48px",width:"-webkit-fill-available"},class:"truncate"},da({default:t(()=>[e(_).description?(l(),P(pt,{key:0,text:e(_).description,location:"top"},{activator:t(({props:T})=>[a(j,Pe({size:"20"},T,{class:"mr-3 text-passive"}),{default:t(()=>[w(d(e(Za)),1)]),_:2},1040)]),_:1},8,["text"])):A("",!0),w(" "+d(e(_).title||e(U))+" ",1)]),_:2},[e(S)?{name:"actions",fn:t(({expanded:T})=>[p("div",bs,[a(te,{size:"22.5",rounded:"",color:"red",variant:"text",class:"mx-2",onClick:h[10]||(h[10]=K(V=>u(e(S).path,e(S).index),["stop"]))},{default:t(()=>[a(j,null,{default:t(()=>[w(d(e(At)),1)]),_:1})]),_:1}),T?(l(),P(j,{key:0,size:"22.5"},{default:t(()=>[w(d(e(mo)),1)]),_:1})):(l(),P(j,{key:1,size:"22.5"},{default:t(()=>[w(d(e(po)),1)]),_:1}))])]),key:"0"}:void 0]),1024),a(_t,{eager:""},{default:t(()=>{var T;return[(l(!0),v(be,null,$e(e(_).properties,(V,R)=>(l(),v("div",{key:`${e(U)}.${R}`},[V.hidden?A("",!0):(l(),P(H,{key:0,modelValue:e(L),"onUpdate:modelValue":h[11]||(h[11]=Y=>ze(L)?L.value=Y:null),"schema-field":V,"config-key":`${e(U)}.${R}`,loading:e(M),onOnSubmit:h[12]||(h[12]=Y=>C("onSubmit",Y)),onOnAction:h[13]||(h[13]=Y=>C("onAction",Y))},null,8,["modelValue","schema-field","config-key","loading"]))]))),128)),e(ao)(e(_))&&((T=e(_).buttons)!=null&&T.length)?(l(),v("div",_s,[(l(!0),v(be,null,$e(e(_).buttons,(V,R)=>(l(),P(te,{key:`button-${R}`,variant:"flat",loading:e(M),class:"px-0 w-100 my-2",style:{background:"rgba(141, 141, 141, 0.2)"},onClick:K(()=>V?C("onSubmit",{actionId:V.onSubmit,payload:e($o)(e(L),e(U))}):void 0,["prevent"])},{default:t(()=>[w(d(V==null?void 0:V.label),1)]),_:2},1032,["loading","onClick"]))),128))])):A("",!0)]}),_:1})]),_:1})]),_:1},8,["model-value"])):e(ga)(e(_))&&e(_).items?(l(),P(kt,{key:8,"model-value":e(_).opened?[0]:[],class:"inner-component-2 mt-0 mb-3"},{default:t(()=>[a(ht,{elevation:"0"},{default:t(()=>[a(bt,{style:{height:"48px",width:"-webkit-fill-available"},class:"truncate"},{default:t(()=>[e(_).description?(l(),P(pt,{key:0,text:e(_).description,location:"top"},{activator:t(({props:T})=>[a(j,Pe({size:"20"},T,{class:"mr-3 text-passive"}),{default:t(()=>[w(d(e(Za)),1)]),_:2},1040)]),_:1},8,["text"])):A("",!0),w(" "+d(e(_).title||e(U)),1)]),_:1}),a(_t,{eager:""},{default:t(()=>[(l(!0),v(be,null,$e(g(e(L),e(U)),(T,V)=>(l(),v("div",{key:`item-${V}-${(T==null?void 0:T.key)||T||V}`,class:"w-full"},[e(_).items.hidden?A("",!0):(l(),P(H,{key:0,modelValue:e(L),"onUpdate:modelValue":h[14]||(h[14]=R=>ze(L)?L.value=R:null),"schema-field":e(_).items,"config-key":`${e(U)}[${V}]`,removable:{path:e(U),index:V},loading:e(M),onOnSubmit:h[15]||(h[15]=R=>C("onSubmit",R)),onOnAction:h[16]||(h[16]=R=>C("onAction",R))},null,8,["modelValue","schema-field","config-key","removable","loading"]))]))),128)),p("div",ks,[a(te,{variant:"text",color:"#df2a4c",icon:"",onClick:h[17]||(h[17]=K(T=>q(e(U)),["prevent"]))},{default:t(()=>[a(j,{size:"30"},{default:t(()=>[w(d(e(vo)),1)]),_:1})]),_:1})])]),_:1})]),_:1})]),_:1},8,["model-value"])):A("",!0)])}}}),xs=Bt(ws,[["__scopeId","data-v-ccf723c8"]]),Cs={key:0},$s={key:1},Vs={key:2,class:"flex w-full mt-7"},Vo=vt({__name:"VJsonSchema",props:{config:{},uiSchema:{},loading:{type:Boolean,default:!1},disableButton:{type:Boolean},saveButton:{type:Boolean,default:!0},saveButtonLabel:{},saveButtonColor:{default:"green"},showButton:{type:Boolean,default:!1}},emits:["onSubmit","onAction","onFormSubmit","changeGroup"],setup(o,{emit:s}){const n=s,C=o,{uiSchema:E,config:Q,loading:L,saveButton:_,saveButtonLabel:U,showButton:S,disableButton:M,saveButtonColor:x}=ft(C),k=b(),z=b(),u=W(()=>Object.keys(Q.value).length?{...To(Q.value)}:E.value?Kn(E.value):{}),q=W(()=>E.value?E.value:Zn(Q.value)),ae=W(()=>Wn(q.value)),g=W(()=>ha(ae.value)),J=W(()=>Object.keys(q.value.schema).every(O=>xo(q.value.schema[O]))),de=W(()=>Object.keys(q.value.schema).some(O=>Co(q.value.schema[O]))),ce=W(()=>{const O=q.value,H=[];for(const[,T]of Object.entries(O.schema))T.group&&!T.hidden&&!H.includes(T.group)&&H.push(T.group);return H.length&&(z.value=H[0]),H});xe(z,O=>{O&&n("changeGroup",O)});const me=async()=>{var O;return await((O=k.value)==null?void 0:O.validate())},I=async O=>{n("onAction",O)},h=async O=>{const H=await me();H!=null&&H.valid&&n("onSubmit",O)},ee=async()=>{const O=await me();O!=null&&O.valid&&n("onFormSubmit",u.value)};return(O,H)=>{const T=xs;return l(),v("div",null,[a(e(ma),{ref_key:"formRef",ref:k,"validation-schema":e(g),onSubmit:ee},{default:t(()=>[e(ce).length?(l(),v("div",Cs,[a(Et,{modelValue:e(z),"onUpdate:modelValue":H[0]||(H[0]=V=>ze(z)?z.value=V:null),"selected-class":"primary-color",mandatory:"",column:""},{default:t(()=>[(l(!0),v(be,null,$e(e(ce),V=>(l(),P(at,{key:V,size:"small",value:V},{default:t(()=>[w(d(V),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"]),a(Qa,{modelValue:e(z),"onUpdate:modelValue":H[2]||(H[2]=V=>ze(z)?z.value=V:null),mandatory:"",eager:"",class:"mt-3"},{default:t(()=>[(l(!0),v(be,null,$e(e(ce),(V,R)=>(l(),P(Da,{key:V,value:V,transition:"instant","reverse-transition":"instant"},{default:t(()=>[(l(!0),v(be,null,$e(e(q).schema,(Y,Oe)=>(l(),v("div",{key:Oe},[!Y.hidden&&(Y.group===V||!Y.group&&R===0)?(l(),P(T,{key:0,modelValue:e(u),"onUpdate:modelValue":H[1]||(H[1]=je=>ze(u)?u.value=je:null),"schema-field":Y,"config-key":Oe.toString(),loading:e(L),onOnSubmit:h,onOnAction:I},null,8,["modelValue","schema-field","config-key","loading"])):A("",!0)]))),128))]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])])):(l(),v("div",$s,[(l(!0),v(be,null,$e(e(q).schema,(V,R)=>(l(),v("div",{key:R},[V.hidden?A("",!0):(l(),P(T,{key:0,modelValue:e(u),"onUpdate:modelValue":H[3]||(H[3]=Y=>ze(u)?u.value=Y:null),"schema-field":V,"config-key":R.toString(),loading:e(L),onOnSubmit:h,onOnAction:I},null,8,["modelValue","schema-field","config-key","loading"]))]))),128))])),!e(J)&&e(_)&&e(de)||e(S)?(l(),v("div",Vs,[a(te,{class:"w-full my-3",color:e(x),variant:"flat",type:"submit",loading:e(L),disabled:e(M)},{default:t(()=>[w(d(e(U)||O.$t("components.form.button.save")),1)]),_:1},8,["color","loading","disabled"])])):A("",!0)]),_:1},8,["validation-schema"])])}}}),Ss=vt({__name:"VJsonSchemaDialog",props:jo({pluginConfig:{},uiSchema:{},pluginName:{}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const s=new yo,n=Uo(o,"modelValue"),C=o,E=b(!1),Q=b(),{uiSchema:L,pluginConfig:_,pluginName:U}=ft(C),{mutateAsync:S,isPending:M}=s.actionButtonQuery(),x=W(()=>E.value||M.value);xe(L,z=>{Q.value=z},{deep:!0,immediate:!0});const k=async z=>{E.value=!0;const u={..._.value,...z.payload};await S({pluginName:U.value,actionId:z.actionId,payload:u},{onSuccess:q=>{q!=null&&q.toast&&wt[q.toast.type](q.toast.message),q!=null&&q.schema&&Object.keys(q.schema).length&&Q.value?Q.value.schema.config=q.schema.config:n.value=!1},onSettled:()=>{E.value=!1}})};return(z,u)=>{const q=Vo,ae=Aa;return l(),P(ae,{modelValue:n.value,"onUpdate:modelValue":u[0]||(u[0]=g=>n.value=g),title:z.$t("components.dialog.title.config"),loading:e(x),"hide-confirm-button":""},{content:t(()=>[a(q,{config:{},"ui-schema":e(Q),loading:e(x),"save-button":!1,onOnSubmit:k},null,8,["ui-schema","loading"])]),_:1},8,["modelValue","title","loading"])}}}),Ps=async({cameraData:o})=>(await Le.post("/cameras",o)).data,zs=async({cameraData:o})=>(await Le.post("/cameras/preview",o)).data,So=async({cameraname:o,signal:s})=>(await Le.get(`/cameras/${o}`,{signal:s})).data,Ms=async({cameraname:o,signal:s})=>(await Le.get(`/cameras/${o}/snapshot`,{signal:s})).data,Es=async({parameter:o,signal:s})=>(await Le.get("/cameras",{params:o,signal:s})).data,Fs=async({cameraname:o,cameraData:s})=>(await Le.patch(`/cameras/${o}`,s)).data,Bs=async({cameraname:o,signal:s})=>(await Le.get(`/cameras/${o}/extensions`,{signal:s})).data,Is=async({cameraname:o,pluginname:s,signal:n})=>(await Le.get(`/cameras/${o}/${s}`,{signal:n})).data,Ts=async({cameraname:o,pluginname:s,configData:n})=>(await Le.patch(`/cameras/${o}/${s}`,n)).data,qs=async({cameraname:o,pluginname:s,configPath:n})=>(await Le.post(`/cameras/${o}/${s}/submit`,{configPath:n})).data,As=async({cameraname:o,pluginname:s,type:n})=>(await Le.put(`/cameras/${o}/${s}/enable`,null,{params:{type:n}})).data,Os=async({cameraname:o,pluginname:s,type:n})=>(await Le.put(`/cameras/${o}/${s}/disable`,null,{params:{type:n}})).data,Ns=async({cameraname:o,pluginname:s})=>(await Le.post(`/cameras/${o}/${s}`)).data,Qs=async({cameraname:o,pluginname:s})=>(await Le.delete(`/cameras/${o}/${s}`)).data,Ds=async({cameraname:o,zonename:s,signal:n})=>(await Le.get(`/cameras/${o}/zones/${s}`,{signal:n})).data,Ls=async({cameraname:o,zoneData:s})=>(await Le.post(`/cameras/${o}/zones`,s)).data,Rs=async({cameraname:o,zonename:s,zoneData:n})=>(await Le.patch(`/cameras/${o}/zones/${s}`,n)).data,js=async({cameraname:o,zonename:s})=>(await Le.delete(`/cameras/${o}/zones/${s}`)).data,Us=async({cameraname:o})=>(await Le.delete(`/cameras/${o}`)).data,Zs=async()=>(await Le.delete("/cameras")).data;class Xt{constructor(){Sa(this,"_queryClient",jn());Sa(this,"queryActivator",b([{name:"getCameraQuery",enabled:!0},{name:"getCamerasQuery",enabled:!0},{name:"getCameraSnapshotQuery",enabled:!0},{name:"getCameraExtensionsQuery",enabled:!0},{name:"getCameraExtensionConfigQuery",enabled:!0},{name:"getZoneQuery",enabled:!0}]))}get queryClient(){return this._queryClient}createCameraQuery(){return tt({mutationFn:Ps,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:["camerasList"]}),wt.success(Tt.global.t("components.toast.camera_added"))}})}previewCameraQuery(){return tt({mutationFn:zs})}getCameraQuery(s){return Rt({queryKey:["cameras",s],queryFn:({signal:n})=>So({cameraname:e(s),signal:n}),enabled:()=>this.queryActivator.value.some(n=>n.name==="getCameraQuery"&&n.enabled)})}getCameraExtensionsQuery(s){return Rt({queryKey:["camerasExtensions",s],queryFn:({signal:n})=>Bs({cameraname:e(s),signal:n}),enabled:()=>this.queryActivator.value.some(n=>n.name==="getCameraExtensionsQuery"&&n.enabled)})}getCameraSnapshotQuery(s){return Rt({queryKey:["camerasSnapshot",s],queryFn:({signal:n})=>Ms({cameraname:e(s),signal:n}),enabled:()=>this.queryActivator.value.some(n=>n.name==="getCameraSnapshotQuery"&&n.enabled),staleTime:6e4,retry:!1})}getCamerasQuery(s){return Rt({queryKey:["camerasList",s],queryFn:({signal:n})=>Es({parameter:e(s),signal:n}),placeholderData:n=>n,enabled:()=>this.queryActivator.value.some(n=>n.name==="getCamerasQuery"&&n.enabled)})}patchCameraQuery(){return tt({mutationFn:Fs,onSuccess:async(s,n)=>{if(n.cameraData.name&&n.cameraData.name!==n.cameraname){const E=n.cameraname;await this._queryClient.invalidateQueries({queryKey:[E]}),await this._queryClient.refetchQueries({queryKey:["camerasList"]})}else await this._queryClient.refetchQueries({queryKey:["cameras",n.cameraname]}),await this._queryClient.refetchQueries({queryKey:["camerasExtensions",n.cameraname]}),await this._queryClient.refetchQueries({queryKey:["cameras","extensions",n.cameraname]});wt.success(Tt.global.t("components.toast.camera_updated"))}})}getCameraExtensionConfigQuery(s,n,C){return Rt({staleTime:0,queryKey:["cameras","extensions",s,n],queryFn:({signal:E})=>Is({cameraname:e(s),pluginname:e(n),signal:E}),enabled:()=>this.queryActivator.value.some(E=>E.name==="getCameraExtensionConfigQuery"&&E.enabled),refetchInterval(){if(C.value)return 3e3}})}patchCameraExtensionConfigQuery(){return tt({mutationFn:Ts,onSuccess:async(s,n)=>{await this._queryClient.refetchQueries({queryKey:["cameras",n.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:["cameras","extensions",n.cameraname]}),await this._queryClient.refetchQueries({queryKey:["camerasExtensions",n.cameraname]})}})}submitCameraExtensionConfigQuery(){return tt({mutationFn:qs,onSuccess:async(s,n)=>{await this._queryClient.refetchQueries({queryKey:["cameras",n.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:["cameras","extensions",n.cameraname]}),await this._queryClient.refetchQueries({queryKey:["camerasExtensions",n.cameraname]})}})}enableCameraExtensionQuery(){return tt({mutationFn:As,onSuccess:async(s,n)=>{await this._queryClient.refetchQueries({queryKey:["cameras",n.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:["camerasExtensions",n.cameraname]})}})}disableCameraExtensionQuery(){return tt({mutationFn:Os,onSuccess:async(s,n)=>{await this._queryClient.refetchQueries({queryKey:["cameras",n.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:["camerasExtensions",n.cameraname]})}})}addCameraExtensionQuery(){return tt({mutationFn:Ns,onSuccess:async(s,n)=>{await this._queryClient.refetchQueries({queryKey:["cameras",n.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:["camerasExtensions",n.cameraname]})}})}getZoneQuery(s,n){return Rt({queryKey:["cameras",s,"zones",n],queryFn:({signal:C})=>Ds({cameraname:e(s),zonename:e(n),signal:C}),enabled:()=>this.queryActivator.value.some(C=>C.name==="getZoneQuery"&&C.enabled)})}addCameraZoneQuery(){return tt({mutationFn:Ls,onSuccess:async(s,n)=>{await this._queryClient.refetchQueries({queryKey:["cameras",n.cameraname],exact:!0}),wt.success(Tt.global.t("components.toast.zone_added"))}})}patchCameraZoneQuery(){return tt({mutationFn:Rs,onSuccess:async(s,n)=>{await this._queryClient.refetchQueries({queryKey:["cameras",n.cameraname],exact:!0}),wt.success(Tt.global.t("components.toast.zone_updated"))}})}removeCameraZoneQuery(){return tt({mutationFn:js,onSuccess:async(s,n)=>{await this._queryClient.refetchQueries({queryKey:["cameras",n.cameraname],exact:!0}),wt.success(Tt.global.t("components.toast.zone_removed"))}})}removeCameraExtensionQuery(){return tt({mutationFn:Qs,onSuccess:async(s,n)=>{await this._queryClient.refetchQueries({queryKey:["cameras",n.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:["camerasExtensions",n.cameraname]})}})}removeCameraQuery(){return tt({mutationFn:Us,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:["camerasList"]}),wt.success(Tt.global.t("components.toast.camera_removed"))}})}removeCamerasQuery(){return tt({mutationFn:Zs,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:["camerasList"]}),wt.success(Tt.global.t("components.toast.cameras_removed"))}})}toggleQueryActivator(s,n){const C=this.queryActivator.value.find(E=>E.name===s);C&&(C.enabled=n)}}const Ks=we.union([we.literal("bubble://"),we.literal("dvrip://"),we.literal("echo:"),we.literal("exec:"),we.literal("expr:"),we.literal("ffmpeg:"),we.literal("gopro://"),we.literal("hass:"),we.literal("homekit://"),we.literal("http://"),we.literal("https://"),we.literal("isapi://"),we.literal("ivideon:"),we.literal("kasa://"),we.literal("nest:"),we.literal("onvif://"),we.literal("roborock://"),we.literal("rtmp://"),we.literal("rtsp://"),we.literal("rtspx://"),we.literal("tapo://"),we.literal("tcp://"),we.literal("webrtc:"),we.literal("webtorrent:")]),Ws=we.object({protocol:Ks,url:we.string().min(1,"Camera Source is required").array().nonempty("Camera Source is required")}).strict(),Hs=we.object({name:we.string().min(1,"Camera Source Name is required"),roles:qo.array().nonempty("Minimum one role is required"),urls:Ws.array()}).strict(),Ys=Hs.array(),Js=we.object({...Ao.shape,sources:Ys}).strict(),Cu=ha(Js),oo=ha(Oo),Po=ha(No),zo=o=>(Zo("data-v-0cdb0e1b"),o=o(),Ko(),o),Xs={key:0},Gs={key:1,class:"flex flex-col justify-center items-center"},el={class:"relative w-full"},tl={class:"w-full flex flex-col items-center justify-center"},al={class:"relative w-full flex flex-col items-center justify-center"},ol={class:"absolute top-0 left-0 right-0 bottom-0"},nl={class:"playground-container flex w-full h-full"},sl={class:"sandbox w-full h-full"},ll={class:"handles"},rl=["data-id","data-coord","data-region","onDblclick"],il=zo(()=>p("div",{class:"delete-point"},null,-1)),ul=[il],cl={class:"clipboard"},dl={width:"100%",height:"100%",class:"polygon-container"},ml=["d","onClick","onDblclick","onMousedown","onTouchstart"],pl=zo(()=>p("div",{class:"shadowboard on"},null,-1)),vl={class:"flex align-center flex-column pa-6 zone-buttons"},fl={class:"w-100"},gl=["for"],yl={key:1,class:"text-grey text-caption align-self-center"},hl={key:1,class:"w-100"},bl={class:"v-label"},_l={key:0},kl={key:1},wl={key:0},xl={key:1},Cl={key:0},$l={key:1},Vl=vt({__name:"VZoneEditor",props:{cameraName:{},zones:{},isNewZone:{type:Boolean}},emits:["show-modal"],setup(o,{emit:s}){const n=new Xt,C=s,E=o,{cameraName:Q,zones:L,isNewZone:_}=ft(E),U=b(!0),S=b(!1),M=b([]),x=b([]),k=b([]),z=b(null),u=b(),q=b(!1),ae=b(0),g=b(-1),J=b(null),de=b(-1),ce=b(Object.values(us).sort((m,f)=>m==="motion"?-1:f==="motion"?1:0));let me=!1,I={x:0,y:0};const h=Yt(z);Na(J,m=>{const f=m.target,oe=f.closest(".polygon"),se=f.closest(".edit-button"),he=f.closest(".remove-button"),G=f.closest(".handle"),Ee=f.closest(".zone-buttons"),Ie=f.closest(".coco-labels");!oe&&!se&&!he&&!G&&!S.value&&!Ee&&!Ie&&(g.value=-1)});const{mutateAsync:ee,isPending:O}=n.addCameraZoneQuery(),{mutateAsync:H,isPending:T}=n.patchCameraZoneQuery(),V=W(()=>q.value||O.value||T.value),R=W(()=>{var m,f;return((f=(m=u.value)==null?void 0:m.regions[g.value])==null?void 0:f.classes.length)===ce.value.length}),Y=W(()=>{var m,f;return(((f=(m=u.value)==null?void 0:m.regions[g.value])==null?void 0:f.classes.length)||0)>0}),Oe=W(()=>{var f;const m=[];return S.value&&m.push("customizing"),(f=u.value)!=null&&f.regions.length||m.push("start"),m.join(" ")});xe(de,()=>{de.value=-1}),xe(L,m=>{m&&(u.value=JSON.parse(JSON.stringify(m)))},{deep:!0,immediate:!0}),xe(u,m=>{m&&(M.value=m.regions.map((f,oe)=>f.coords.map((se,he)=>({_id:se._id,regionIndex:oe,coordIndex:he,coord:se.points}))).flat()||[])},{deep:!0,immediate:!0}),xe(U,m=>{m||setTimeout(()=>C("show-modal",!1),300)}),xe([h.width,h.height],()=>{ne()});const je=()=>{!u.value||!u.value.regions[g.value]||(R.value?u.value.regions[g.value].classes=[]:u.value.regions[g.value].classes=[...ce.value])},Ue=m=>{if("touches"in m){const f=m.touches[0];return{x:f.clientX,y:f.clientY}}return{x:m.clientX,y:m.clientY}},Qe=(m,f)=>{if(m.stopPropagation(),!z.value)return;Xe(S.value),me=!0,g.value=f;const oe=z.value.getBoundingClientRect(),{x:se,y:he}=Ue(m);I.x=(se-oe.left)/oe.width*100,I.y=(he-oe.top)/oe.height*100},Ze=m=>{if(!me||!z.value||g.value===-1||!u.value)return;const f=z.value.getBoundingClientRect(),{x:oe,y:se}=Ue(m),he=(oe-f.left)/f.width*100,G=(se-f.top)/f.height*100,Ee=he-I.x,Ie=G-I.y,Ce=u.value.regions[g.value].coords;let pe=!1;for(let _e=0;_e<Ce.length;_e++){let ct=Ce[_e].points[0]+Ee,st=Ce[_e].points[1]+Ie;if(ct<0||ct>100||st<0||st>100){pe=!0;break}}if(!pe)for(let _e=0;_e<Ce.length;_e++){Ce[_e].points[0]+=Ee,Ce[_e].points[1]+=Ie,Ce[_e].points[0]=Math.max(0,Math.min(100,Ce[_e].points[0])),Ce[_e].points[1]=Math.max(0,Math.min(100,Ce[_e].points[1]));const ct=Ce[_e].points[0]/100*f.width,st=Ce[_e].points[1]/100*f.height,Ge=x.value.find(Nt=>Nt.id===Ce[_e]._id);Ge==null||Ge.setPosition(ct,st)}I.x=he,I.y=G},Ve=()=>{setTimeout(()=>{me=!1},100)},Me=()=>{!u.value||g.value===-1||(u.value.regions[g.value].isPrivacyMask=!u.value.regions[g.value].isPrivacyMask)},Be=()=>{!u.value||!u.value.regions[g.value]||(u.value.regions[g.value].filter=u.value.regions[g.value].filter==="include"?"exclude":"include")},qe=()=>{!u.value||!u.value.regions[g.value]||(u.value.regions[g.value].type=u.value.regions[g.value].type==="intersect"?"contain":"intersect")},Ke=m=>{if(!S.value||!u.value||me)return;const f=ae.value,oe=Math.min(Math.max(Math.round((m.offsetX-10)/h.width.value*100),0),100),se=Math.min(Math.max(Math.round((m.offsetY-10)/h.height.value*100),0),100);u.value.regions[f]||u.value.regions.push({_id:Math.random().toString(36).substring(7),coords:[],filter:"include",type:"contain",classes:[],isPrivacyMask:!1});const he={_id:Math.random().toString(36).substring(7),points:[oe,se]};u.value.regions[f].coords.push(he),St(()=>{it({_id:he._id,regionIndex:f,coordIndex:u.value.regions[f].coords.length-1,coord:[oe,se]})})},it=m=>{var oe;if(m.regionIndex===void 0||m.coordIndex===void 0)return;const f=(oe=k.value)==null?void 0:oe.filter(se=>se.dataset.coord===m.coordIndex.toString()&&se.dataset.region===m.regionIndex.toString());f.length!==0&&Se(f[0],m.coord)},nt=m=>{if(!u.value)return;let f=Math.round(m.coord[0]/h.width.value*100),oe=Math.round(m.coord[1]/h.height.value*100);const se={_id:m._id,points:[f,oe]};u.value.regions[m.regionIndex].coords[m.coordIndex]=se},Ye=()=>{u.value&&(S.value=!0,ae.value=u.value.regions.length||0)},Xe=m=>{var oe;if(!u.value)return;S.value=m||!1;const f=ae.value;!u.value.regions.length||!u.value.regions[f]||!u.value.regions[f].coords||(u.value.regions[f].coords.length<3?u.value.regions=u.value.regions.filter((se,he)=>he!==f):(oe=k.value)==null||oe.forEach(se=>Je(se)))},N=()=>{S.value=!0,ae.value=g.value},gt=()=>{g.value===-1||!u.value||(u.value.regions=u.value.regions.filter((m,f)=>f!==g.value),g.value=-1)},ut=()=>{var oe,se;if(!((oe=u.value)!=null&&oe.regions.length))return;const m=he=>{var G,Ee,Ie,Ce,pe;(Ee=(G=u.value)==null?void 0:G.regions[he])!=null&&Ee.coords.length&&((Ce=(Ie=u.value.regions[he])==null?void 0:Ie.coords)==null||Ce.pop(),(pe=u.value.regions[he])!=null&&pe.coords.length||u.value.regions.pop())};let f=u.value.regions.length;(se=u.value.regions[f-1].coords)!=null&&se.length&&f--,!(f<0)&&m(f)},Ne=()=>{me=!1,S.value=!1,M.value=[],u.value&&(u.value.regions=[])},Z=m=>{if(!m)return"";const f=m.map(se=>{const he=Math.round(se[0]/100*h.width.value),G=Math.round(se[1]/100*h.height.value);return`${he+10},${G+10}`});if(f.length===0)return"";let oe=`M ${f[0]}`;for(let se=1;se<f.length;se++)oe+=` L ${f[se]}`;return oe+=" Z",oe},X=m=>{S.value||(g.value=m)},ne=()=>{ie(),k.value.forEach(m=>{var oe;if(!m.dataset.region||!m.dataset.coord||!u.value)return;const f=(oe=u.value.regions[parseInt(m.dataset.region)])==null?void 0:oe.coords[parseInt(m.dataset.coord)];Se(m,f.points),Je(m)})},ie=()=>{x.value.forEach(m=>m.destroy()),x.value=[]},le=m=>{var f;!u.value||((f=u.value.regions[m.regionIndex])==null?void 0:f.coords.length)<4||u.value.regions[m.regionIndex].coords.splice(m.coordIndex,1)},Se=(m,f)=>{Object.assign(m.style,De(f))},De=m=>({left:Math.round(m[0]/100*h.width.value)+"px",top:Math.round(m[1]/100*h.height.value)+"px"}),Je=m=>{m.classList.add("draggable");let f=new ho(m,{containment:!0,grid:[0,0]}).on("pointerDown",()=>{var oe;(oe=document.querySelectorAll('[data-point="'+m.dataset.region+"-"+m.dataset.coord+'"]')[0])==null||oe.classList.add("changing")}).on("dragMove",()=>{if(!m.dataset.region||!m.dataset.coord||!m.dataset.id)return;const oe=f.position.x,se=f.position.y;nt({_id:m.dataset.id,coord:[oe,se],coordIndex:parseInt(m.dataset.coord),regionIndex:parseInt(m.dataset.region)})}).on("pointerUp",()=>{document.querySelectorAll(".point").forEach(oe=>oe.classList.remove("changing"))});f.id=m.dataset.id,x.value.push(f)},ye=async()=>{if(u.value)try{q.value=!0;const m=await Po.parse(u.value);m.value?(_.value?await ee({cameraname:Q.value,zoneData:u.value}):await H({cameraname:Q.value,zonename:u.value.name,zoneData:u.value}),U.value=!1):wt.error(m.errors[0].errors[0])}catch(m){console.error(m)}finally{q.value=!1}};return ya(async()=>{setTimeout(()=>{ne()})}),(m,f)=>{const oe=ja,se=Aa;return l(),P(se,{modelValue:e(U),"onUpdate:modelValue":f[12]||(f[12]=he=>ze(U)?U.value=he:null),title:`${m.$t("components.zone_editor.zone")}: ${e(u)?e(u).name:m.$t("components.dialog.title.unknown")}`,loading:e(V),onConfirm:f[13]||(f[13]=he=>ye())},{content:t(()=>{var he;return[e(u)?(l(),v("div",Gs,[p("div",el,[p("div",{ref_key:"outsideEl",ref:J},null,512),p("div",tl,[p("div",al,[p("div",ol,[p("div",nl,[p("section",{class:jt(["playground w-full h-full",e(Oe)]),onClick:Ke},[p("div",sl,[p("div",ll,[(l(!0),v(be,null,$e(e(M),G=>(l(),v("div",{key:G._id,ref_for:!0,ref_key:"draggables",ref:k,class:"handle","data-id":G._id,"data-coord":G.coordIndex,"data-region":G.regionIndex,onDblclick:K(Ee=>le(G),["prevent"])},ul,40,rl))),128)),p("div",cl,[(l(),v("svg",dl,[(l(!0),v(be,null,$e((he=e(u))==null?void 0:he.regions,(G,Ee)=>(l(),v("path",{key:G._id,d:Z(G.coords.map(Ie=>Ie.points)),class:jt({polygon:G.filter=="include"&&!G.isPrivacyMask,"polygon-exclude":G.filter=="exclude"&&!G.isPrivacyMask,"polygon-privacy":G.isPrivacyMask,dash:G.type==="intersect"&&!G.isPrivacyMask,selected:e(g)===Ee}),onClick:Ie=>X(Ee),onDblclick:()=>G.isPrivacyMask=!G.isPrivacyMask,onMousedown:Ie=>Qe(Ie,Ee),onMousemove:Ze,onMouseup:Ve,onTouchstart:Ie=>Qe(Ie,Ee),onTouchmove:Ze,onTouchend:Ve},null,42,ml))),128))]))])]),pl])],2)])]),p("div",{ref_key:"player",ref:z,class:"w-full h-full flex flex-col items-center justify-center",style:{width:"calc(100% - 20px)","margin-top":"10px","margin-bottom":"10px"}},[a(oe,{mode:"webrtc",target:"stream","current-camera":e(Q),"border-radius":0,border:"","source-role":"low-resolution"},null,8,["current-camera"])],512)]),p("div",vl,[p("div",fl,[e(u)&&e(u).regions&&e(g)>=0&&e(u).regions[e(g)]?(l(),P(e(Fe),{key:0,modelValue:e(u).regions[e(g)].classes,"onUpdate:modelValue":f[0]||(f[0]=G=>e(u).regions[e(g)].classes=G),name:`regions[${e(g)}].classes`},{default:t(({field:G,errorMessage:Ee,errors:Ie})=>[p("label",{for:`regions[${e(g)}].classes`,class:"v-label"},d(m.$t("components.form.label.classes")),9,gl),a(Ot,Pe({loading:e(V),items:e(ce),class:"coco-labels w-100",variant:"outlined",name:`regions[${e(g)}].classes`,type:"text",density:"compact",chips:"",multiple:"",clearable:""},G,{error:Ie.length>0,"error-messages":Ee,"model-value":G.value,"menu-props":{class:"coco-labels"},onKeydown:K(()=>null,["prevent"])}),{"prepend-item":t(()=>[a(Ba,{title:m.$t("components.form.label.select_all"),onClick:je},{prepend:t(()=>[a(Ia,{indeterminate:e(Y)&&!e(R),"model-value":e(R)},null,8,["indeterminate","model-value"])]),_:1},8,["title"]),a(He,{class:"mt-2"})]),chip:t(({item:Ce,index:pe})=>[pe<5?(l(),P(at,{key:0,color:"#df2a4c"},{default:t(()=>[w(d(Ce.title),1)]),_:2},1024)):A("",!0),pe===5?(l(),v("span",yl," (+"+d(e(u).regions[e(g)].classes.length-2)+") ",1)):A("",!0)]),_:2},1040,["loading","items","name","error","error-messages","model-value"])]),_:1},8,["modelValue","name"])):(l(),v("div",hl,[p("label",bl,d(m.$t("components.form.label.classes")),1),a(Ot,{disabled:"",class:"w-100",variant:"outlined",type:"text",density:"compact"})]))]),a(Ja,{modelValue:e(de),"onUpdate:modelValue":f[7]||(f[7]=G=>ze(de)?de.value=G:null),variant:"outlined",divided:"",rounded:"xl",class:"mt-5"},{default:t(()=>[e(S)?(l(),P(te,{key:1,loading:e(V),onClick:f[2]||(f[2]=K(G=>Xe(!1),["prevent"]))},{default:t(()=>[a(pt,{activator:"parent",location:"top"},{default:t(()=>[w(d(m.$t("components.form.tooltip.finish")),1)]),_:1}),a(j,{size:"20"},{default:t(()=>[w(d(e(tn)),1)]),_:1})]),_:1},8,["loading"])):(l(),P(te,{key:0,loading:e(V),onClick:f[1]||(f[1]=K(G=>Ye(),["prevent"]))},{default:t(()=>[a(pt,{activator:"parent",location:"top"},{default:t(()=>[w(d(m.$t("components.form.tooltip.new")),1)]),_:1}),a(j,{size:"20"},{default:t(()=>[w(d(e(en)),1)]),_:1})]),_:1},8,["loading"])),a(te,{loading:e(V),disabled:!e(u).regions.length||e(g)<0||e(S),onClick:f[3]||(f[3]=K(G=>N(),["prevent"]))},{default:t(()=>[a(pt,{activator:"parent",location:"top"},{default:t(()=>[w(d(m.$t("components.form.tooltip.edit")),1)]),_:1}),a(j,{size:"20"},{default:t(()=>[w(d(e(fo)),1)]),_:1})]),_:1},8,["loading","disabled"]),a(te,{loading:e(V),disabled:!e(u).regions.length||e(g)<0,onClick:f[4]||(f[4]=K(G=>gt(),["prevent"]))},{default:t(()=>[a(pt,{activator:"parent",location:"top"},{default:t(()=>[w(d(m.$t("components.form.tooltip.delete")),1)]),_:1}),a(j,{size:"20"},{default:t(()=>[w(d(e(an)),1)]),_:1})]),_:1},8,["loading","disabled"]),a(te,{loading:e(V),disabled:!e(u).regions.length,onClick:f[5]||(f[5]=K(G=>ut(),["prevent"]))},{default:t(()=>[a(pt,{activator:"parent",location:"top"},{default:t(()=>[w(d(m.$t("components.form.tooltip.undo")),1)]),_:1}),a(j,{size:"20"},{default:t(()=>[w(d(e(on)),1)]),_:1})]),_:1},8,["loading","disabled"]),a(te,{loading:e(V),disabled:!e(u).regions.length,onClick:f[6]||(f[6]=K(G=>Ne(),["prevent"]))},{default:t(()=>[a(pt,{activator:"parent",location:"top"},{default:t(()=>[w(d(m.$t("components.form.tooltip.clear")),1)]),_:1}),a(j,{size:"20"},{default:t(()=>[w(d(e(nn)),1)]),_:1})]),_:1},8,["loading","disabled"])]),_:1},8,["modelValue"]),a(Ja,{modelValue:e(de),"onUpdate:modelValue":f[11]||(f[11]=G=>ze(de)?de.value=G:null),variant:"outlined",divided:"",rounded:"xl",class:"mt-5"},{default:t(()=>[a(te,{disabled:!(e(u)&&e(u).regions&&e(g)>=0&&e(u).regions[e(g)]),loading:e(V),onClick:f[8]||(f[8]=K(G=>Me(),["prevent"]))},{default:t(()=>[e(u)&&e(u).regions&&e(g)>=0&&e(u).regions[e(g)]?(l(),v("div",_l,[a(pt,{activator:"parent",location:"top"},{default:t(()=>[w(d(e(u).regions[e(g)].isPrivacyMask?m.$t("components.form.tooltip.privacy_mask"):m.$t("components.form.tooltip.public_mask")),1)]),_:1}),a(j,{size:"20"},{default:t(()=>[w(d(e(u).regions[e(g)].isPrivacyMask?e(sn):e(Ea)),1)]),_:1})])):(l(),v("div",kl,[a(j,{size:"20"},{default:t(()=>[w(d(e(Ea)),1)]),_:1})]))]),_:1},8,["disabled","loading"]),a(te,{disabled:!(e(u)&&e(u).regions&&e(g)>=0&&e(u).regions[e(g)]&&!e(u).regions[e(g)].isPrivacyMask),loading:e(V),onClick:f[9]||(f[9]=K(G=>Be(),["prevent"]))},{default:t(()=>[e(u)&&e(u).regions&&e(g)>=0&&e(u).regions[e(g)]&&!e(u).regions[e(g)].isPrivacyMask?(l(),v("div",wl,[a(pt,{activator:"parent",location:"top"},{default:t(()=>[w(d(e(u).regions[e(g)].filter==="include"?m.$t("components.form.tooltip.include"):m.$t("components.form.tooltip.exclude")),1)]),_:1}),a(j,{size:"20"},{default:t(()=>[w(d(e(u).regions[e(g)].filter==="include"?e(Ka):e(ln)),1)]),_:1})])):(l(),v("div",xl,[a(j,{size:"20"},{default:t(()=>[w(d(e(Ka)),1)]),_:1})]))]),_:1},8,["disabled","loading"]),a(te,{disabled:!(e(u)&&e(u).regions&&e(g)>=0&&e(u).regions[e(g)]&&!e(u).regions[e(g)].isPrivacyMask),loading:e(V),onClick:f[10]||(f[10]=K(G=>qe(),["prevent"]))},{default:t(()=>[e(u)&&e(u).regions&&e(g)>=0&&e(u).regions[e(g)]&&!e(u).regions[e(g)].isPrivacyMask?(l(),v("div",Cl,[a(pt,{activator:"parent",location:"top"},{default:t(()=>[w(d(e(u).regions[e(g)].type==="intersect"?m.$t("components.form.tooltip.intersect"):m.$t("components.form.tooltip.contain")),1)]),_:1}),a(j,{size:"20"},{default:t(()=>[w(d(e(u).regions[e(g)].type==="intersect"?e(rn):e(Wa)),1)]),_:1})])):(l(),v("div",$l,[a(j,{size:"20"},{default:t(()=>[w(d(e(Wa)),1)]),_:1})]))]),_:1},8,["disabled","loading"])]),_:1},8,["modelValue"])])])])])):(l(),v("div",Xs,[a(Pt,{indeterminate:"",color:"#df2a4c"})]))]}),_:1},8,["modelValue","title","loading"])}}}),Sl=Bt(Vl,[["__scopeId","data-v-0cdb0e1b"]]),Pl={class:"flex flex-col w-full",style:{height:"calc(100% - 45px - env(safe-area-inset-bottom, 0px))"}},zl={class:"flex w-full p-2 items-center"},Ml={key:0},El={class:"options-segments flex items-center justify-between"},Fl={class:"flex flex-col items-center justify-center"},Bl={class:"options-segments-text"},Il={key:0,class:"options-container flex justify-center items-center"},Tl={class:"mt-auto"},ql=vt({__name:"VOptionsSidebar",props:{state:{type:Boolean,default:!1},title:{},segments:{default:()=>["default"]},loading:{type:Boolean,default:!1},width:{default:400}},emits:["close","selected"],setup(o,{emit:s}){Wo(q=>({bd3ce394:e(k)}));const n=o,C=s,{segments:E,state:Q,title:L,loading:_,width:U}=ft(n),S=b(null),M=b(E.value[0]),x=b(!1),k=b(`${U.value}px`),{smallMobileActive:z}=lo();xe(Q,()=>{x.value=Q.value}),xe(x,()=>{x.value!==Q.value&&setTimeout(()=>{C("close")},300),u(z.value&&x.value)}),xe(z,()=>{u(z.value&&x.value)});const u=q=>{};return Na(S,q=>{const ae=q.target,g=ae.closest(".v-overlay-container"),J=ae.closest(".Toastify");!g&&!J&&(x.value=!1)}),ya(()=>{C("selected",M.value)}),(q,ae)=>(l(),P(io,{name:"options-slide",mode:"out-in"},{default:t(()=>[e(x)?(l(),v("div",{key:0,ref_key:"optionsSidebar",ref:S,class:"options-sidebar"},[p("div",Pl,[p("div",zl,[e(L)?(l(),v("b",Ml,d(e(L)),1)):A("",!0),a(te,{class:"ml-auto",size:"28",rounded:"",density:"compact",variant:"text",onClick:ae[0]||(ae[0]=K(g=>x.value=!1,["prevent"]))},{default:t(()=>[a(j,{size:"20"},{default:t(()=>[w(d(e(At)),1)]),_:1})]),_:1})]),p("div",El,[a(Qn,{modelValue:e(M),"onUpdate:modelValue":[ae[1]||(ae[1]=g=>ze(M)?M.value=g:null),ae[2]||(ae[2]=g=>C("selected",g))],height:"100%",grow:"","slider-color":"#df2a4c"},{default:t(()=>[(l(!0),v(be,null,$e(e(E),(g,J)=>(l(),P(Dn,{key:J,value:g,disabled:e(_),"min-width":"auto"},{default:t(()=>[p("div",Fl,[za(q.$slots,`segmentIcon.${g}`,{},()=>[a(j,{size:"20"},{default:t(()=>[w(d(e(Oa)),1)]),_:1})],!0),p("span",Bl,d(q.$t(`components.options_sidebar.segment_tab_${g.toLowerCase()}`)),1)])]),_:2},1032,["value","disabled"]))),128))]),_:3},8,["modelValue"])]),e(_)?(l(),v("div",Il,[a(Pt,{color:"#df2a4c",indeterminate:""})])):(l(),P(Qa,{key:1,modelValue:e(M),"onUpdate:modelValue":ae[3]||(ae[3]=g=>ze(M)?M.value=g:null),class:"options-container",continuous:""},{default:t(()=>[(l(!0),v(be,null,$e(e(E),(g,J)=>(l(),P(Da,{key:J,value:g,class:"h-full pb-safe overflow-y-scroll",eager:"",continuous:""},{default:t(()=>[za(q.$slots,`body.${g}`,{},void 0,!0)]),_:2},1032,["value"]))),128))]),_:3},8,["modelValue"])),p("div",Tl,[za(q.$slots,"footer",{},void 0,!0)])])],512)):A("",!0)]),_:3}))}}),Al=Bt(ql,[["__scopeId","data-v-03a5e73e"]]),Ol={class:"text-sm"},Nl={class:"text-right"},Ql={class:"text-right"},Dl={key:0},Ll={key:0},Rl={class:"text-right"},jl={key:1},Ul={class:"text-right"},Zl={key:2},Kl={class:"text-right"},Wl={class:"flex justify-start"},Hl={class:"v-label mb-0 ml-2",for:"disabled"},Yl={class:"relative mt-2"},Jl={for:"name",class:"v-label"},Xl={class:"relative"},Gl={for:"info.manufacturer",class:"v-label"},er={class:"relative"},tr={for:"info.model",class:"v-label"},ar={class:"relative"},or={for:"info.hardware",class:"v-label"},nr={class:"relative"},sr={for:"info.serialNumber",class:"v-label"},lr={class:"relative"},rr={for:"info.firmwareVersion",class:"v-label"},ir={class:"relative"},ur={for:"info.supportUrl",class:"v-label"},cr={for:"interface.streamingMode",class:"v-label"},dr={class:"flex justify-start"},mr={class:"v-label mb-0 ml-2",for:"recording.enabled"},pr={class:"text-sm"},vr={class:"w-full flex flex-col items-center justify-center mt-5"},fr={class:"relative w-full"},gr={for:"activitySettings.motion.timeout",class:"v-label"},yr={class:"text-sm"},hr={class:"w-full flex flex-col items-center justify-center mt-5"},br={class:"relative w-full"},_r={for:"activitySettings.motion.confidence",class:"v-label"},kr={class:"w-full flex flex-col items-center justify-center"},wr={key:0,class:"text-sm text-passive mb-3"},xr={class:"relative"},Cr={for:"frameWorkerSettings.decoder",class:"v-label"},$r={class:"relative"},Vr={for:"frameWorkerSettings.resolution",class:"v-label"},Sr={class:"relative"},Pr={for:"frameWorkerSettings.fps",class:"v-label"},zr={class:"flex flex-row items-center justify-center ml-auto"},Mr={class:"relative mt-2"},Er=["for"],Fr={class:"relative mt-2"},Br=["for"],Ir={class:"relative mt-2 flex flex-col w-full"},Tr=["for"],qr={class:"w-full flex items-center justify-center my-3"},Ar={class:"plugints-title p-2"},Or={class:"v-label"},Nr={key:0,class:"plugints-title p-2"},Qr={class:"v-label"},Dr={key:1,class:"w-full h-full flex items-center justify-center",style:{height:"43px"}},Lr={class:"text-sm text-passive"},Rr={key:1,class:"plugints-title p-2"},jr={class:"v-label"},Ur={key:1,class:"w-full h-full flex items-center justify-center",style:{height:"43px"}},Zr={class:"text-sm text-passive"},Kr={key:2,class:"plugints-title p-2"},Wr={class:"v-label"},Hr={key:1,class:"w-full h-full flex items-center justify-center",style:{height:"43px"}},Yr={class:"text-sm text-passive"},Jr={key:3,class:"plugints-title p-2"},Xr={class:"v-label"},Gr={key:1,class:"w-full h-full flex items-center justify-center",style:{height:"43px"}},ei={class:"text-sm text-passive"},ti={key:4,class:"plugints-title p-2"},ai={class:"v-label"},oi={key:1,class:"w-full h-full flex items-center justify-center",style:{height:"43px"}},ni={class:"text-sm text-passive"},si={key:5,class:"plugints-title p-2"},li={class:"v-label"},ri={key:1,class:"w-full h-full flex items-center justify-center",style:{height:"43px"}},ii={class:"text-sm text-passive"},ui={class:"p-2"},ci={key:0,class:"mb-4"},di={key:0},mi={class:"v-label"},pi={class:"v-label"},vi={key:1},fi={class:"v-label"},gi={key:0,class:"w-full flex items-center justify-center my-5"},yi={key:1,class:"w-full flex items-center justify-center my-5"},hi={class:"text-sm text-passive"},bi={key:0,class:"p-2"},_i={class:"v-label"},ki=vt({__name:"VCameraOptions",props:{cameraName:{},show:{type:Boolean,default:!1}},emits:["close"],setup(o,{emit:s}){const n=new Xt,C=new yo,E=Un(),Q=bo(),{api:L}=ro(),_=o,U=s,{cameraName:S,show:M}=ft(_),x=b(),k=b(),z=b(),u=b(),q=b(),ae=b(["hub","motionDetection","objectDetection","audioDetection","prebuffer","ptz","extensions"]),g=b(!1),J=b(!1),de=b(),ce=b(),me=b({page:1,pageSize:-1}),I=b(!1),h=b("hub"),ee=b(),O=b(),H=b(),T=b(),V=b(),R=b(),Y=b(""),Oe=b(),je=b(!0),Ue=b(!1),Qe=b(!1),Ze=b(["high-resolution","mid-resolution","low-resolution","snapshot"]),Ve=b(["hls","mjpeg","mp4","mse","webrtc","webrtc/tcp"]),Me=b([640,480,320]),Be=b(["pillow","wasm"]),qe=b(!0),Ke=b(),it=b(),nt=b(),Ye=b(!1),Xe=b({name:"",regions:[]});n.toggleQueryActivator("getCameraExtensionConfigQuery",!1);const{data:N,isLoading:gt,suspense:ut}=n.getCameraQuery(S),{data:Ne,isLoading:Z,suspense:X}=n.getCameraExtensionsQuery(S),{data:ne,isLoading:ie}=n.getCameraExtensionConfigQuery(S.value,Y,qe),{mutate:le,isPending:Se}=n.removeCameraQuery(),{mutate:De,isPending:Je}=n.patchCameraQuery(),{mutate:ye,isPending:m}=n.patchCameraExtensionConfigQuery(),{mutate:f,isPending:oe}=n.submitCameraExtensionConfigQuery(),{mutateAsync:se,isPending:he}=n.addCameraExtensionQuery(),{mutateAsync:G,isPending:Ee}=n.removeCameraExtensionQuery(),{mutateAsync:Ie,isPending:Ce}=n.enableCameraExtensionQuery(),{mutateAsync:pe,isPending:_e}=n.disableCameraExtensionQuery(),{mutateAsync:ct,isPending:st}=n.removeCameraZoneQuery(),{data:Ge,isLoading:Nt,suspense:Zt}=C.getPluginsQuery(me),{data:dt,isLoading:xt}=C.getPluginsExtensionsQuery(me),{mutate:We,isPending:ba}=C.actionButtonQuery(),ke=W(()=>gt.value||Se.value),Re=W(()=>Z.value||xt.value||he.value||Ee.value||Ce.value||_e.value||st.value),Qt=W(()=>st.value),et=W(()=>Qt.value||Re.value||g.value||ba.value||m.value||Je.value||oe.value),Kt=W(()=>{var c;const i=((c=Ne.value)==null?void 0:c.filter(D=>D.type.includes("hub")))||[];return i.length&&Ge.value&&Ge.value.result.some(D=>D.pluginName===i[0].pluginName&&!D.disabled)?(ee.value=i[0].pluginName,Y.value=i[0].pluginName):ee.value=void 0,Ct(i)}),Gt=W(()=>{var c,D,fe;const i=((c=Ne.value)==null?void 0:c.filter(re=>re.type.includes("motionDetection")))||[];return i.length&&Te((D=N==null?void 0:N.value)==null?void 0:D.extensions.motionDetection)?O.value=(fe=N==null?void 0:N.value)==null?void 0:fe.extensions.motionDetection:O.value=void 0,Ct(i)}),ea=W(()=>{var c,D,fe;const i=((c=Ne.value)==null?void 0:c.filter(re=>re.type.includes("audioDetection")))||[];return i.length&&Te((D=N==null?void 0:N.value)==null?void 0:D.extensions.audioDetection)?H.value=(fe=N==null?void 0:N.value)==null?void 0:fe.extensions.audioDetection:H.value=void 0,Ct(i)}),Wt=W(()=>{var c,D,fe;const i=((c=Ne.value)==null?void 0:c.filter(re=>re.type.includes("objectDetection")))||[];return i.length&&Te((D=N==null?void 0:N.value)==null?void 0:D.extensions.objectDetection)?T.value=(fe=N==null?void 0:N.value)==null?void 0:fe.extensions.objectDetection:T.value=void 0,Ct(i)}),Ht=W(()=>{var c,D,fe;const i=((c=Ne.value)==null?void 0:c.filter(re=>re.type.includes("ptz")))||[];return i.length&&Te((D=N==null?void 0:N.value)==null?void 0:D.extensions.ptz)?V.value=(fe=N==null?void 0:N.value)==null?void 0:fe.extensions.ptz:V.value=void 0,Ct(i)}),ta=W(()=>{var c,D,fe;const i=((c=Ne.value)==null?void 0:c.filter(re=>re.type.includes("prebuffer")))||[];return i.length&&Te((D=N==null?void 0:N.value)==null?void 0:D.extensions.prebuffer)?R.value=(fe=N==null?void 0:N.value)==null?void 0:fe.extensions.prebuffer:R.value=void 0,Ct(i)});xe(ee,(i,c)=>{i&&i!==c&&zt()}),xe(h,(i,c)=>{i===void 0&&(h.value=c)}),xe(M,i=>{if(I.value){I.value=!1,U("close");return}St(()=>I.value=i)}),xe(N,i=>{i&&(k.value=Ho(i))},{deep:!0,immediate:!0}),xe(O,(i,c)=>{i!==c&&(!i&&c?lt(c,!1,"motionDetection"):i&<(i,!0,"motionDetection"))}),xe(T,(i,c)=>{i!==c&&(!i&&c?lt(c,!1,"objectDetection"):i&<(i,!0,"objectDetection"))}),xe(V,(i,c)=>{i!==c&&(!i&&c?lt(c,!1,"ptz"):i&<(i,!0,"ptz"))}),xe(H,(i,c)=>{i!==c&&(!i&&c?lt(c,!1,"audioDetection"):i&<(i,!0,"audioDetection"))}),xe(R,(i,c)=>{i!==c&&(!i&&c?lt(c,!1,"prebuffer"):i&<(i,!0,"prebuffer"))}),xe(J,i=>{i||(de.value=void 0,ce.value=void 0)});const Ct=i=>i.sort((c,D)=>!Te(c.pluginName)&&Te(D.pluginName)?1:Te(c.pluginName)&&!Te(D.pluginName)?-1:c.displayName.localeCompare(D.displayName)),aa=async(i,c)=>{await n.queryClient.refetchQueries({queryKey:["cameras","extensions",i,c]})},oa=i=>{var c;(c=k.value)==null||c.sources[i].urls.push("")},_a=(i,c)=>{var D;(D=k.value)==null||D.sources[i].urls.splice(c,1)},Dt=()=>{le({cameraname:S.value},{onSuccess:()=>{E.path.includes(S.value)&&Q.push({path:"/cameras"}),Ue.value=!1}})},na=()=>{k.value&&k.value.sources.push({_id:"",name:"",roles:[],urls:[]})},ka=i=>{k.value&&k.value.sources.splice(i,1)},wa=()=>{Xe.value={name:"",regions:[]},Qe.value=!0},xa=()=>{Qe.value=!1,Oe.value=void 0,Ye.value=!1,Xe.value={name:"",regions:[]}},sa=async(i,c)=>{var D;if(c){const fe=await((D=q.value)==null?void 0:D.validate());if(!(fe!=null&&fe.valid))return}Qe.value=!1,c?Ye.value=!0:Ye.value=!1,Oe.value=i},Ca=async i=>{await ct({cameraname:S.value,zonename:i})},lt=async(i,c,D)=>{c?(!D||!N.value||N.value.extensions[D]!==i)&&(await Ie({cameraname:S.value,pluginname:i,type:D}),St(()=>zt())):(!D||!N.value||N.value.extensions[D]===i)&&(await pe({cameraname:S.value,pluginname:i,type:D}),St(()=>zt()))},Te=i=>{if(i&&Ge.value&&Ge.value.result.some(c=>c.pluginName===i&&!c.disabled))return i},zt=(i,c)=>{var D,fe,re,It,Mt,y;switch(n.toggleQueryActivator("getCameraExtensionConfigQuery",!1),h.value){case"hub":Y.value=Te((D=Kt.value[0])==null?void 0:D.pluginName)||"";break;case"motionDetection":Y.value=Te((fe=N==null?void 0:N.value)==null?void 0:fe.extensions.motionDetection)||"";break;case"audioDetection":Y.value=Te((re=N==null?void 0:N.value)==null?void 0:re.extensions.audioDetection)||"";break;case"objectDetection":Y.value=Te((It=N==null?void 0:N.value)==null?void 0:It.extensions.objectDetection)||"";break;case"ptz":Y.value=Te((Mt=N==null?void 0:N.value)==null?void 0:Mt.extensions.ptz)||"";break;case"prebuffer":Y.value=Te((y=N==null?void 0:N.value)==null?void 0:y.extensions.prebuffer)||"";break;default:Y.value="";break}Y.value&&Y.value!==""&&n.toggleQueryActivator("getCameraExtensionConfigQuery",!0)},la=async i=>{Ne.value&&(Ne.value.some(c=>c.pluginName===i.pluginName)?await G({cameraname:S.value,pluginname:i.pluginName}):await se({cameraname:S.value,pluginname:i.pluginName}))},ra=async(i,c)=>{g.value=!0,f({cameraname:S.value,pluginname:c,configPath:i.configPath},{onSettled:()=>{g.value=!1}})},$a=(i,c)=>{g.value=!0,We({pluginName:c,actionId:i.actionId,payload:i.payload},{onSuccess:D=>{D!=null&&D.toast&&wt[D.toast.type](D.toast.message),D!=null&&D.schema&&Object.keys(D.schema).length&&(ce.value=i.payload,de.value=D,J.value=!0)},onSettled:()=>{g.value=!1}})},Va=(i,c,D)=>{g.value=!0,ye({cameraname:i,pluginname:c,configData:D},{onSettled:()=>{g.value=!1}})},ia=async()=>{var D,fe;g.value=!0;const i=await((D=z.value)==null?void 0:D.validate()),c=await((fe=u.value)==null?void 0:fe.validate());if(i!=null&&i.valid&&(c!=null&&c.valid)){const re={...i.values,...c.values};De({cameraname:S.value,cameraData:re},{onSettled:()=>{g.value=!1}})}else g.value=!1};return uo(async()=>{await Zt(),await ut(),await X(),zt()}),ya(async()=>{var i,c,D,fe;x.value=await L.deviceManager.getCameraByName(S.value),(i=x.value)==null||i.onMotionDetected.subscribe(re=>{re.state||re.detections.length?Ke.value=re.timestamp:re.lastEvent&&(re.lastEvent.state||re.lastEvent.detections.length)&&(Ke.value=re.lastEvent.timestamp)}),(c=x.value)==null||c.onAudioDetected.subscribe(re=>{re.state?it.value=re.timestamp:re.lastEvent&&re.lastEvent.state&&(it.value=re.lastEvent.timestamp)}),(D=x.value)==null||D.onObjectDetected.subscribe(re=>{re.detections.length?nt.value=re.timestamp:re.lastEvent&&re.lastEvent.detections.length&&(nt.value=re.lastEvent.timestamp)}),await((fe=x.value)==null?void 0:fe.start())}),co(()=>{var i;qe.value=!1,(i=x.value)==null||i.close()}),(i,c)=>{var ue;const D=ja,fe=Ma("v-number-input"),re=Vo,It=Al,Mt=Aa,y=Sl,B=Ss;return l(),v(be,null,[e(M)?(l(),P(It,{key:0,state:e(I),title:e(S),segments:["overview","sources","settings","extensions"],loading:e(ke)||!e(k),onClose:c[29]||(c[29]=r=>U("close")),onSelected:c[30]||(c[30]=r=>je.value=r!=="extensions"&&r!=="overview")},{"segmentIcon.overview":t(()=>[a(j,{size:"20"},{default:t(()=>[w(d(e(un)),1)]),_:1})]),"body.overview":t(()=>[a(He,{style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"}}),a(D,{target:"snapshot","current-camera":e(S),"border-radius":0,style:{"border-bottom":"1px solid var(--border)"}},null,8,["current-camera"]),a(Ln,{class:"table-fixed w-full p-2",style:{background:"none !important"}},{default:t(()=>{var r,F,$,ve,Ae,ge;return[p("tbody",Ol,[p("tr",null,[p("td",null,d(i.$t("components.camera_options.name")),1),p("td",Nl,d(e(S)),1)]),p("tr",null,[p("td",null,d(i.$t("components.camera_options.plugin")),1),p("td",Ql,[e(Nt)?(l(),v("span",Dl,[a(Pt,{color:"#df2a4c",size:"20",indeterminate:""})])):A("",!0),p("span",null,d(((r=e(N))==null?void 0:r.pluginId)!=="native"?(($=(F=e(Ge))==null?void 0:F.result.find($t=>{var mt;return $t.id===((mt=e(N))==null?void 0:mt.pluginId)}))==null?void 0:$.pluginName)||i.$t("components.camera_options.unknown"):i.$t("components.camera_options.native")),1)])]),(ve=e(N))!=null&&ve.extensions.motionDetection?(l(),v("tr",Ll,[p("td",null,d(i.$t("components.camera_options.last_motion")),1),p("td",Rl,d(e(Ke)?e(Pa)(e(Ke),"DD.MM.YYYY, HH:mm:ss"):"-"),1)])):A("",!0),(Ae=e(N))!=null&&Ae.extensions.objectDetection?(l(),v("tr",jl,[p("td",null,d(i.$t("components.camera_options.last_object")),1),p("td",Ul,d(e(nt)?e(Pa)(e(nt),"DD.MM.YYYY, HH:mm:ss"):"-"),1)])):A("",!0),(ge=e(N))!=null&&ge.extensions.audioDetection?(l(),v("tr",Zl,[p("td",null,d(i.$t("components.camera_options.last_audio")),1),p("td",Kl,d(e(it)?e(Pa)(e(it),"DD.MM.YYYY, HH:mm:ss"):"-"),1)])):A("",!0)])]}),_:1})]),"segmentIcon.settings":t(()=>[a(j,{size:"20"},{default:t(()=>[w(d(e(Oa)),1)]),_:1})]),"body.settings":t(()=>[a(He,{style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"}}),a(e(ma),{ref_key:"cameraVeeForm1",ref:z,class:"flex flex-col h-full w-full p-2","validation-schema":e(oo)},{default:t(()=>[a(kt,null,{default:t(()=>[a(ht,{elevation:"0"},{default:t(()=>[a(bt,{style:{height:"48px"},class:"truncate"},{default:t(()=>[w(d(i.$t("components.camera_options.general")),1)]),_:1}),a(_t,{eager:""},{default:t(()=>[p("div",Wl,[a(e(Fe),{modelValue:e(k).disabled,"onUpdate:modelValue":c[0]||(c[0]=r=>e(k).disabled=r),name:"disabled",type:"checkbox","checked-value":!0,"unchecked-value":!1},{default:t(({field:r,errorMessage:F,errors:$})=>[a(Fa,Pe({loading:e(ke),name:"disabled"},r,{color:"#df2a4c",type:"checkbox",error:$.length>0,"error-messages":F,"hide-details":"","model-value":r.checked,style:{"max-width":"fit-content"}}),null,16,["loading","error","error-messages","model-value"]),p("label",Hl,d(i.$t("components.form.label.disabled")),1)]),_:1},8,["modelValue"])]),p("div",Yl,[a(e(Fe),{modelValue:e(k).name,"onUpdate:modelValue":c[1]||(c[1]=r=>e(k).name=r),name:"name"},{default:t(({field:r,errorMessage:F,errors:$})=>[p("label",Jl,d(i.$t("components.form.label.name")),1),a(rt,Pe({loading:e(ke),variant:"outlined",name:"name",type:"text",density:"compact"},r,{error:$.length>0,"error-messages":F}),null,16,["loading","error","error-messages"])]),_:1},8,["modelValue"])]),a(te,{width:"100%",color:"red",variant:"flat",class:"mt-3",loading:e(ke)||e(et),onClick:c[2]||(c[2]=K(r=>Ue.value=!0,["prevent"]))},{default:t(()=>[w(d(i.$t("components.form.button.remove")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1}),a(He,{style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"},class:"my-1"}),a(kt,null,{default:t(()=>[a(ht,{elevation:"0"},{default:t(()=>[a(bt,{style:{height:"48px"},class:"truncate"},{default:t(()=>[w(d(i.$t("components.camera_options.information")),1)]),_:1}),a(_t,{eager:""},{default:t(()=>[p("div",Xl,[a(e(Fe),{modelValue:e(k).info.manufacturer,"onUpdate:modelValue":c[3]||(c[3]=r=>e(k).info.manufacturer=r),name:"info.manufacturer"},{default:t(({field:r,errorMessage:F,errors:$})=>[p("label",Gl,d(i.$t("components.form.label.camera_manufacturer")),1),a(rt,Pe({loading:e(ke),variant:"outlined",name:"info.manufacturer",type:"text",density:"compact"},r,{error:$.length>0,"error-messages":F}),null,16,["loading","error","error-messages"])]),_:1},8,["modelValue"])]),p("div",er,[a(e(Fe),{modelValue:e(k).info.model,"onUpdate:modelValue":c[4]||(c[4]=r=>e(k).info.model=r),name:"info.model"},{default:t(({field:r,errorMessage:F,errors:$})=>[p("label",tr,d(i.$t("components.form.label.camera_model")),1),a(rt,Pe({loading:e(ke),variant:"outlined",name:"info.model",type:"text",density:"compact"},r,{error:$.length>0,"error-messages":F}),null,16,["loading","error","error-messages"])]),_:1},8,["modelValue"])]),p("div",ar,[a(e(Fe),{modelValue:e(k).info.hardware,"onUpdate:modelValue":c[5]||(c[5]=r=>e(k).info.hardware=r),name:"info.hardware"},{default:t(({field:r,errorMessage:F,errors:$})=>[p("label",or,d(i.$t("components.form.label.camera_hardware")),1),a(rt,Pe({loading:e(ke),variant:"outlined",name:"info.hardware",type:"text",density:"compact"},r,{error:$.length>0,"error-messages":F}),null,16,["loading","error","error-messages"])]),_:1},8,["modelValue"])]),p("div",nr,[a(e(Fe),{modelValue:e(k).info.serialNumber,"onUpdate:modelValue":c[6]||(c[6]=r=>e(k).info.serialNumber=r),name:"info.serialNumber"},{default:t(({field:r,errorMessage:F,errors:$})=>[p("label",sr,d(i.$t("components.form.label.camera_serialNumber")),1),a(rt,Pe({loading:e(ke),variant:"outlined",name:"info.serialNumber",type:"text",density:"compact"},r,{error:$.length>0,"error-messages":F}),null,16,["loading","error","error-messages"])]),_:1},8,["modelValue"])]),p("div",lr,[a(e(Fe),{modelValue:e(k).info.firmwareVersion,"onUpdate:modelValue":c[7]||(c[7]=r=>e(k).info.firmwareVersion=r),name:"info.firmwareVersion"},{default:t(({field:r,errorMessage:F,errors:$})=>[p("label",rr,d(i.$t("components.form.label.camera_firmwareVersion")),1),a(rt,Pe({loading:e(ke),variant:"outlined",name:"info.firmwareVersion",type:"text",density:"compact"},r,{error:$.length>0,"error-messages":F}),null,16,["loading","error","error-messages"])]),_:1},8,["modelValue"])]),p("div",ir,[a(e(Fe),{modelValue:e(k).info.supportUrl,"onUpdate:modelValue":c[8]||(c[8]=r=>e(k).info.supportUrl=r),name:"info.supportUrl"},{default:t(({field:r,errorMessage:F,errors:$})=>[p("label",ur,d(i.$t("components.form.label.camera_supportUrl")),1),a(rt,Pe({loading:e(ke),variant:"outlined",name:"info.supportUrl",type:"text",density:"compact"},r,{error:$.length>0,"error-messages":F}),null,16,["loading","error","error-messages"])]),_:1},8,["modelValue"])])]),_:1})]),_:1})]),_:1}),a(He,{style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"},class:"my-1"}),a(kt,null,{default:t(()=>[a(ht,{elevation:"0"},{default:t(()=>[a(bt,{style:{height:"48px"},class:"truncate"},{default:t(()=>[w(d(i.$t("components.camera_options.interface")),1)]),_:1}),a(_t,{eager:""},{default:t(()=>[a(e(Fe),{modelValue:e(k).interface.streamingMode,"onUpdate:modelValue":c[9]||(c[9]=r=>e(k).interface.streamingMode=r),name:"interface.streamingMode"},{default:t(({field:r,errorMessage:F,errors:$})=>[p("label",cr,d(i.$t("components.form.label.streaming_mode")),1),a(Ot,Pe({loading:e(ke),items:e(Ve),variant:"outlined",name:"interface.streamingMode",type:"text",density:"compact",chips:""},r,{error:$.length>0,"error-messages":F,"model-value":r.value,onKeydown:K(()=>null,["prevent"])}),{chip:t(({item:ve})=>[a(at,{color:"#df2a4c"},{default:t(()=>[w(d(ve.title),1)]),_:2},1024)]),_:2},1040,["loading","items","error","error-messages","model-value"])]),_:1},8,["modelValue"])]),_:1})]),_:1})]),_:1}),a(He,{style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"},class:"my-1"}),a(kt,null,{default:t(()=>[a(ht,{elevation:"0"},{default:t(()=>[a(bt,{style:{height:"48px"},class:"truncate"},{default:t(()=>[w(d(i.$t("components.camera_options.recordings")),1)]),_:1}),a(_t,{eager:""},{default:t(()=>[p("div",dr,[a(e(Fe),{modelValue:e(k).recording.enabled,"onUpdate:modelValue":c[10]||(c[10]=r=>e(k).recording.enabled=r),name:"recording.enabled",type:"checkbox","checked-value":!0,"unchecked-value":!1},{default:t(({field:r,errorMessage:F,errors:$})=>[a(Fa,Pe(r,{loading:e(ke),name:"recording.enabled",color:"#df2a4c",type:"checkbox",error:$.length>0,"error-messages":F,"hide-details":"","model-value":r.checked,style:{"max-width":"fit-content"}}),null,16,["loading","error","error-messages","model-value"]),p("label",mr,d(i.$t("components.form.label.enabled")),1)]),_:1},8,["modelValue"])])]),_:1})]),_:1})]),_:1}),a(He,{style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"},class:"my-1"}),a(kt,null,{default:t(()=>[a(ht,{elevation:"0"},{default:t(()=>[a(bt,{style:{height:"48px"},class:"truncate"},{default:t(()=>[w(d(i.$t("components.camera_options.activity_detection")),1)]),_:1}),a(_t,{eager:""},{default:t(()=>[p("span",pr,d(i.$t("components.camera_options.motion_detection_settings")),1),p("div",vr,[p("div",fr,[a(e(Fe),{modelValue:e(k).activitySettings.motion.timeout,"onUpdate:modelValue":c[11]||(c[11]=r=>e(k).activitySettings.motion.timeout=r),name:"activitySettings.motion.timeout"},{default:t(({field:r,errorMessage:F,errors:$})=>[p("label",gr,d(i.$t("components.form.label.motion_duration")),1),a(fe,Pe({"model-value":r.value,loading:e(ke),variant:"outlined",name:"activitySettings.motion.timeout",type:"number",density:"compact"},r,{error:$.length>0,"error-messages":F}),null,16,["model-value","loading","error","error-messages"])]),_:1},8,["modelValue"])])]),a(He,{style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"},class:"my-5"}),p("span",yr,d(i.$t("components.camera_options.object_detection_settings")),1),p("div",hr,[p("div",br,[a(e(Fe),{modelValue:e(k).activitySettings.object.confidence,"onUpdate:modelValue":c[12]||(c[12]=r=>e(k).activitySettings.object.confidence=r),name:"activitySettings.object.confidence"},{default:t(({field:r,errorMessage:F,errors:$})=>[p("label",_r,d(i.$t("components.form.label.confidence")),1),a(fe,Pe({"model-value":r.value,loading:e(ke),variant:"outlined",name:"activitySettings.object.confidence",type:"number",density:"compact"},r,{step:.01,error:$.length>0,"error-messages":F}),null,16,["model-value","loading","error","error-messages"])]),_:1},8,["modelValue"])])])]),_:1})]),_:1})]),_:1}),a(He,{style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"},class:"my-1"}),a(kt,null,{default:t(()=>[a(ht,{elevation:"0"},{default:t(()=>[a(bt,{style:{height:"48px"},class:"truncate"},{default:t(()=>[w(d(i.$t("components.camera_options.activity_zones")),1)]),_:1}),a(_t,{eager:""},{default:t(()=>{var r,F,$;return[p("div",kr,[(F=(r=e(N))==null?void 0:r.activityZones)!=null&&F.length?(l(!0),v(be,{key:1},$e(($=e(N))==null?void 0:$.activityZones,(ve,Ae)=>(l(),v("div",{key:Ae,class:"w-full flex flex-row items-center"},[a(rt,{class:"my-1","model-value":ve.name,variant:"outlined",density:"compact",type:"text","hide-details":"",readonly:""},{"append-inner":t(()=>[a(te,{class:"mr-2",size:"24",rounded:"",density:"compact",variant:"flat",color:"green",loading:e(Qt),onClick:K(ge=>sa(ve,!1),["prevent"])},{default:t(()=>[a(j,{size:"16"},{default:t(()=>[w(d(e(fo)),1)]),_:1})]),_:2},1032,["loading","onClick"]),a(te,{size:"24",rounded:"",density:"compact",variant:"flat",color:"red",loading:e(Qt),onClick:K(ge=>Ca(ve.name),["prevent"])},{default:t(()=>[a(j,{size:"16"},{default:t(()=>[w(d(e(At)),1)]),_:1})]),_:2},1032,["loading","onClick"])]),_:2},1032,["model-value"])]))),128)):(l(),v("span",wr,d(i.$t("components.camera_options.no_zones")),1))]),a(te,{class:"mt-3",block:"",color:"#df2a4c",loading:e(Qt),variant:"flat",onClick:c[13]||(c[13]=K(ve=>wa(),["prevent"]))},{default:t(()=>[w(d(i.$t("components.form.button.new_zone")),1)]),_:1},8,["loading"])]}),_:1})]),_:1})]),_:1}),a(He,{style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"},class:"my-1"}),a(kt,null,{default:t(()=>[a(ht,{elevation:"0"},{default:t(()=>[a(bt,{style:{height:"48px"},class:"truncate"},{default:t(()=>[w(d(i.$t("components.camera_options.frame_worker_settings")),1)]),_:1}),a(_t,{eager:""},{default:t(()=>[p("div",xr,[a(e(Fe),{modelValue:e(k).frameWorkerSettings.decoder,"onUpdate:modelValue":c[14]||(c[14]=r=>e(k).frameWorkerSettings.decoder=r),name:"frameWorkerSettings.decoder"},{default:t(({field:r,errorMessage:F,errors:$})=>[p("label",Cr,d(i.$t("components.form.label.decoder")),1),a(Ot,Pe({loading:e(ke),items:e(Be),variant:"outlined",name:"frameWorkerSettings.decoder",type:"text",density:"compact",chips:""},r,{error:$.length>0,"error-messages":F,"model-value":r.value,onKeydown:K(()=>null,["prevent"])}),{chip:t(({item:ve})=>[a(at,{color:"#df2a4c"},{default:t(()=>[w(d(ve.title),1)]),_:2},1024)]),_:2},1040,["loading","items","error","error-messages","model-value"])]),_:1},8,["modelValue"])]),p("div",$r,[a(e(Fe),{modelValue:e(k).frameWorkerSettings.resolution,"onUpdate:modelValue":c[15]||(c[15]=r=>e(k).frameWorkerSettings.resolution=r),name:"frameWorkerSettings.resolution"},{default:t(({field:r,errorMessage:F,errors:$})=>[p("label",Vr,d(i.$t("components.form.label.resolution")),1),a(Ot,Pe({loading:e(ke),items:e(Me),variant:"outlined",name:"frameWorkerSettings.resolution",type:"number",density:"compact",chips:""},r,{error:$.length>0,"error-messages":F,"model-value":r.value,onKeydown:K(()=>null,["prevent"])}),{chip:t(({item:ve})=>[a(at,{color:"#df2a4c"},{default:t(()=>[w(d(ve.title),1)]),_:2},1024)]),_:2},1040,["loading","items","error","error-messages","model-value"])]),_:1},8,["modelValue"])]),p("div",Sr,[a(e(Fe),{modelValue:e(k).frameWorkerSettings.fps,"onUpdate:modelValue":c[16]||(c[16]=r=>e(k).frameWorkerSettings.fps=r),name:"frameWorkerSettings.fps"},{default:t(({field:r,errorMessage:F,errors:$})=>[p("label",Pr,d(i.$t("components.form.label.fps")),1),a(fe,Pe({"model-value":r.value,loading:e(ke),variant:"outlined",name:"frameWorkerSettings.fps",type:"number",density:"compact"},r,{min:5,max:10,step:1,error:$.length>0,"error-messages":F}),null,16,["model-value","loading","error","error-messages"])]),_:1},8,["modelValue"])])]),_:1})]),_:1})]),_:1})]),_:1},8,["validation-schema"])]),"segmentIcon.sources":t(()=>[a(j,{size:"20"},{default:t(()=>[w(d(e(Ea)),1)]),_:1})]),"body.sources":t(()=>[a(He,{style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"}}),a(e(ma),{ref_key:"cameraVeeForm2",ref:u,class:"flex flex-col h-full w-full p-2","validation-schema":e(oo)},{default:t(()=>[(l(!0),v(be,null,$e(e(k).sources,(r,F)=>(l(),v("div",{key:F},[a(kt,null,{default:t(()=>[a(ht,{elevation:"0"},{default:t(()=>[a(bt,{style:{height:"48px"},class:"truncate"},{actions:t(({expanded:$})=>{var ve;return[p("div",zr,[a(te,{loading:e(ke),disabled:((ve=e(k))==null?void 0:ve.sources)!==void 0&&e(k).sources.length<2,size:"22.5",rounded:"",color:"red",variant:"text",class:"mx-2",onClick:K(Ae=>ka(F),["stop"])},{default:t(()=>[a(j,null,{default:t(()=>[w(d(e(At)),1)]),_:1})]),_:2},1032,["loading","disabled","onClick"]),$?(l(),P(j,{key:0,size:"22.5"},{default:t(()=>[w(d(e(mo)),1)]),_:1})):(l(),P(j,{key:1,size:"22.5"},{default:t(()=>[w(d(e(po)),1)]),_:1}))])]}),default:t(()=>[w(d(i.$t("components.camera_options.source")+": "+r.name.replace(/ /g,"_").toLowerCase())+" ",1)]),_:2},1024),a(_t,{eager:""},{default:t(()=>[p("div",Mr,[a(e(Fe),{modelValue:r.name,"onUpdate:modelValue":$=>r.name=$,name:`sources[${F}].name`},{default:t(({field:$,errorMessage:ve,errors:Ae})=>[p("label",{for:`sources[${F}].name`,class:"v-label"},d(i.$t("components.form.label.source_name")),9,Er),a(rt,Pe({loading:e(ke),variant:"outlined",name:`sources[${F}].name`,type:"text",density:"compact",ref_for:!0},$,{error:Ae.length>0,"error-messages":ve}),null,16,["loading","name","error","error-messages"])]),_:2},1032,["modelValue","onUpdate:modelValue","name"])]),p("div",Fr,[a(e(Fe),{modelValue:r.roles,"onUpdate:modelValue":$=>r.roles=$,name:`sources[${F}].roles`},{default:t(({field:$,errorMessage:ve,errors:Ae})=>[p("label",{for:`sources[${F}].roles`,class:"v-label"},d(i.$t("components.form.label.source_role")),9,Br),a(Ot,Pe({loading:e(ke),items:e(Ze).filter(ge=>!e(k).sources.some(($t,mt)=>$t.roles.includes(ge)&&mt!==F)),variant:"outlined",name:`sources[${F}].roles`,type:"text",density:"compact",chips:"",multiple:"",ref_for:!0},$,{"model-value":$.value,error:Ae.length>0,"error-messages":ve,onKeydown:K(()=>null,["prevent"])}),{chip:t(({item:ge})=>[a(at,{color:"#df2a4c"},{default:t(()=>[w(d(ge.title),1)]),_:2},1024)]),_:2},1040,["loading","items","name","model-value","error","error-messages"])]),_:2},1032,["modelValue","onUpdate:modelValue","name"])]),p("div",Ir,[p("label",{for:`sources[${F}].urls[]`,class:"v-label"},d(i.$t("components.form.label.sources")),9,Tr),(l(!0),v(be,null,$e(r.urls,($,ve)=>(l(),v("div",{key:ve},[a(e(Fe),{modelValue:r.urls[ve],"onUpdate:modelValue":Ae=>r.urls[ve]=Ae,name:`sources[${F}].urls[${ve}]`,value:$},{default:t(({field:Ae,errorMessage:ge,errors:$t})=>[a(rt,Pe({loading:e(ke),variant:"outlined",name:`sources[${F}].urls[${ve}]`,type:"text",density:"compact",ref_for:!0},Ae,{error:$t.length>0,"error-messages":ge}),{"append-inner":t(()=>[r.urls.length>1?(l(),P(te,{key:0,loading:e(ke),size:"28",variant:"text",rounded:"",density:"compact",color:"red",disabled:r.urls.length<2,onClick:K(mt=>_a(F,ve),["prevent"])},{default:t(()=>[a(j,{size:"20"},{default:t(()=>[w(d(e(cn)),1)]),_:1})]),_:2},1032,["loading","disabled","onClick"])):A("",!0)]),_:2},1040,["loading","name","error","error-messages"])]),_:2},1032,["modelValue","onUpdate:modelValue","name","value"])]))),128)),a(te,{loading:e(ke),color:"#df2a4c",variant:"flat",class:"ml-auto",onClick:K($=>oa(F),["prevent"])},{default:t(()=>[w(d(i.$t("components.form.button.add_source")),1)]),_:2},1032,["loading","onClick"])])]),_:2},1024)]),_:2},1024)]),_:2},1024),a(He,{style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"},class:"my-1"})]))),128)),p("div",qr,[a(te,{loading:e(ke),variant:"text",color:"#df2a4c",icon:"",onClick:K(na,["prevent"])},{default:t(()=>[a(j,{size:"30"},{default:t(()=>[w(d(e(vo)),1)]),_:1})]),_:1},8,["loading"])])]),_:1},8,["validation-schema"])]),"segmentIcon.extensions":t(()=>[a(j,{size:"20"},{default:t(()=>[w(d(e(dn)),1)]),_:1})]),"body.extensions":t(()=>[a(He,{style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"}}),p("div",Ar,[p("label",Or,d(i.$t("components.camera_options.categories")),1),a(Et,{modelValue:e(h),"onUpdate:modelValue":[c[17]||(c[17]=r=>ze(h)?h.value=r:null),c[18]||(c[18]=r=>zt("@update:model-value chip group select"))],"selected-class":"primary-color",disabled:e(Re),mandatory:"",column:""},{default:t(()=>[(l(!0),v(be,null,$e(e(ae),r=>(l(),P(at,{key:r,size:"small",disabled:e(et),value:r},{default:t(()=>[w(d(i.$t(`components.camera_options.chip_${r}`)),1)]),_:2},1032,["disabled","value"]))),128))]),_:1},8,["modelValue","disabled"])]),a(He,{style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"}}),e(h)==="hub"?(l(),v("div",Nr,[p("label",Qr,d(i.$t("components.camera_options.chip_extensions")),1),e(Kt).length?(l(),P(Et,{key:0,modelValue:e(ee),"onUpdate:modelValue":c[19]||(c[19]=r=>ze(ee)?ee.value=r:null),"selected-class":"primary-color",disabled:e(Re),mandatory:"",column:""},{default:t(()=>[(l(!0),v(be,null,$e(e(Kt),r=>(l(),P(at,{key:r.pluginName,disabled:!Te(r.pluginName)||e(et),size:"small",value:r.pluginName},{default:t(()=>[w(d(r.displayName),1)]),_:2},1032,["disabled","value"]))),128))]),_:1},8,["modelValue","disabled"])):(l(),v("div",Dr,[p("span",Lr,d(i.$t("components.camera_options.no_extensions_enabled")),1)]))])):e(h)==="motionDetection"?(l(),v("div",Rr,[p("label",jr,d(i.$t("components.camera_options.enabled_extension")),1),e(Gt).length?(l(),P(Et,{key:0,modelValue:e(O),"onUpdate:modelValue":c[20]||(c[20]=r=>ze(O)?O.value=r:null),"selected-class":"primary-color",disabled:e(Re),filter:"",column:""},{default:t(()=>[(l(!0),v(be,null,$e(e(Gt),r=>(l(),P(at,{key:r.pluginName,disabled:!Te(r.pluginName)||e(et),size:"small",value:r.pluginName},{default:t(()=>[w(d(r.displayName),1)]),_:2},1032,["disabled","value"]))),128))]),_:1},8,["modelValue","disabled"])):(l(),v("div",Ur,[p("span",Zr,d(i.$t("components.camera_options.no_extensions_enabled")),1)]))])):e(h)==="objectDetection"?(l(),v("div",Kr,[p("label",Wr,d(i.$t("components.camera_options.enabled_extension")),1),e(Wt).length?(l(),P(Et,{key:0,modelValue:e(T),"onUpdate:modelValue":c[21]||(c[21]=r=>ze(T)?T.value=r:null),"selected-class":"primary-color",disabled:e(Re),filter:"",column:""},{default:t(()=>[(l(!0),v(be,null,$e(e(Wt),r=>(l(),P(at,{key:r.pluginName,disabled:!Te(r.pluginName)||e(et),size:"small",value:r.pluginName},{default:t(()=>[w(d(r.displayName),1)]),_:2},1032,["disabled","value"]))),128))]),_:1},8,["modelValue","disabled"])):(l(),v("div",Hr,[p("span",Yr,d(i.$t("components.camera_options.no_extensions_enabled")),1)]))])):e(h)==="audioDetection"?(l(),v("div",Jr,[p("label",Xr,d(i.$t("components.camera_options.enabled_extension")),1),e(ea).length?(l(),P(Et,{key:0,modelValue:e(H),"onUpdate:modelValue":c[22]||(c[22]=r=>ze(H)?H.value=r:null),"selected-class":"primary-color",disabled:e(Re),filter:"",column:""},{default:t(()=>[(l(!0),v(be,null,$e(e(ea),r=>(l(),P(at,{key:r.pluginName,disabled:!Te(r.pluginName)||e(et),size:"small",value:r.pluginName},{default:t(()=>[w(d(r.displayName),1)]),_:2},1032,["disabled","value"]))),128))]),_:1},8,["modelValue","disabled"])):(l(),v("div",Gr,[p("span",ei,d(i.$t("components.camera_options.no_extensions_enabled")),1)]))])):e(h)==="prebuffer"?(l(),v("div",ti,[p("label",ai,d(i.$t("components.camera_options.enabled_extension")),1),e(ta).length?(l(),P(Et,{key:0,modelValue:e(R),"onUpdate:modelValue":c[23]||(c[23]=r=>ze(R)?R.value=r:null),"selected-class":"primary-color",disabled:e(Re),filter:"",column:""},{default:t(()=>[(l(!0),v(be,null,$e(e(ta),r=>(l(),P(at,{key:r.pluginName,disabled:!Te(r.pluginName)||e(et),size:"small",value:r.pluginName},{default:t(()=>[w(d(r.displayName),1)]),_:2},1032,["disabled","value"]))),128))]),_:1},8,["modelValue","disabled"])):(l(),v("div",oi,[p("span",ni,d(i.$t("components.camera_options.no_extensions_enabled")),1)]))])):e(h)==="ptz"?(l(),v("div",si,[p("label",li,d(i.$t("components.camera_options.enabled_extension")),1),e(Ht).length?(l(),P(Et,{key:0,modelValue:e(V),"onUpdate:modelValue":c[24]||(c[24]=r=>ze(V)?V.value=r:null),"selected-class":"primary-color",disabled:e(Re),filter:"",column:""},{default:t(()=>[(l(!0),v(be,null,$e(e(Ht),r=>(l(),P(at,{key:r.pluginName,disabled:!Te(r.pluginName)||e(et),size:"small",value:r.pluginName},{default:t(()=>[w(d(r.displayName),1)]),_:2},1032,["disabled","value"]))),128))]),_:1},8,["modelValue","disabled"])):(l(),v("div",ri,[p("span",ii,d(i.$t("components.camera_options.no_extensions_enabled")),1)]))])):A("",!0),a(He,{style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"}}),e(Re)?(l(),P(Rn,{key:6,height:"2",color:"#df2a4c",indeterminate:"",style:{"margin-top":"-2px"}})):A("",!0),p("div",ui,[a(Qa,{modelValue:e(h),"onUpdate:modelValue":c[28]||(c[28]=r=>ze(h)?h.value=r:null),disabled:e(Re),mandatory:"",eager:""},{default:t(()=>[(l(!0),v(be,null,$e(e(ae),r=>(l(),P(Da,{key:r,value:r,transition:"instant","reverse-transition":"instant"},{default:t(()=>{var F,$,ve,Ae;return[r==="extensions"?(l(),v("div",ci,[(F=e(Ne))!=null&&F.filter(ge=>ge.builtIn).length?(l(),v("div",di,[p("label",mi,d(i.$t("components.camera_options.builtin_extensions")),1),(l(!0),v(be,null,$e(($=e(Ne))==null?void 0:$.filter(ge=>ge.builtIn),(ge,$t)=>{var mt;return l(),v("div",{key:ge.pluginName},[a(Xa,{"select-strategy":"classic",class:"py-0",disabled:e(Re)},{default:t(()=>[a(Ba,{value:ge.pluginName,class:"px-2",active:!1},{prepend:t(()=>[a(Ga,{start:""},{default:t(()=>[a(Ia,{"model-value":!0,color:"#df2a4c",disabled:!0})]),_:1})]),append:t(()=>[a(te,{class:"ml-auto",size:"28",rounded:"",density:"compact",variant:"text",onClick:K(()=>i.$router.push(`/plugins/${ge.pluginName}`),["stop"])},{default:t(()=>[a(j,{size:"18"},{default:t(()=>[w(d(e(Ha)),1)]),_:1})]),_:2},1032,["onClick"])]),default:t(()=>[w(d(ge.displayName)+" ",1)]),_:2},1032,["value"])]),_:2},1032,["disabled"]),$t!==(((mt=e(Ne))==null?void 0:mt.filter(ua=>ua.builtIn))||[]).length-1?(l(),P(He,{key:0,style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"},class:"my-1"})):A("",!0)])}),128))])):A("",!0),p("div",null,[p("label",pi,d(i.$t("components.camera_options.manage_extensions")),1),(l(!0),v(be,null,$e((ve=e(dt))==null?void 0:ve.result,(ge,$t)=>{var mt,ua;return l(),v("div",{key:ge.pluginName},[a(Xa,{"select-strategy":"classic",class:"py-0",disabled:e(Re),"onUpdate:selected":()=>la(ge)},{default:t(()=>{var Ua;return[a(Ba,{value:ge.pluginName,class:"px-2",active:(Ua=e(Ne))==null?void 0:Ua.some(ca=>ca.pluginName===ge.pluginName)},{prepend:t(()=>[a(Ga,{start:""},{default:t(()=>{var ca;return[a(Ia,{"model-value":(ca=e(Ne))==null?void 0:ca.some(Eo=>Eo.pluginName===ge.pluginName),color:"#df2a4c"},null,8,["model-value"])]}),_:2},1024)]),append:t(()=>[a(te,{class:"ml-auto",size:"28",rounded:"",density:"compact",variant:"text",onClick:K(()=>i.$router.push(`/plugins/${ge.pluginName}`),["stop"])},{default:t(()=>[a(j,{size:"18"},{default:t(()=>[w(d(e(Ha)),1)]),_:1})]),_:2},1032,["onClick"])]),default:t(()=>[w(d(ge.displayName)+" ",1)]),_:2},1032,["value","active"])]}),_:2},1032,["disabled","onUpdate:selected"]),(mt=e(dt))!=null&&mt.result&&$t!==((ua=e(dt))==null?void 0:ua.result.length)-1?(l(),P(He,{key:0,style:{"border-color":"rgba(var(--color-rgb), 0.1)",opacity:"1"},class:"my-1"})):A("",!0)])}),128))])])):(l(),v("div",vi,[p("label",fi,d(i.$t("components.camera_options.extension_settings")),1),e(ie)?(l(),v("div",gi,[a(Pt,{color:"#df2a4c",indeterminate:""})])):!e(Y)||!((Ae=e(ne))!=null&&Ae.rootSchema)?(l(),v("div",yi,[p("span",hi,d(i.$t("components.camera_options.no_config")),1)])):e(ne)?(l(),P(re,{key:r,config:e(ne).config||{},"ui-schema":e(ne).rootSchema,loading:e(et),onOnFormSubmit:c[25]||(c[25]=ge=>Va(e(S),e(Y),ge)),onOnSubmit:ge=>$a(ge,r),onOnAction:c[26]||(c[26]=ge=>ra(ge,e(Y))),onChangeGroup:c[27]||(c[27]=()=>aa(e(S),e(Y)))},null,8,["config","ui-schema","loading","onOnSubmit"])):A("",!0)]))]}),_:2},1032,["value"]))),128))]),_:1},8,["modelValue","disabled"])])]),footer:t(()=>[e(je)?(l(),v("div",bi,[a(te,{width:"100%",color:"green",variant:"flat",loading:e(ke)||e(et),onClick:K(ia,["prevent"])},{default:t(()=>[w(d(i.$t("components.form.button.save")),1)]),_:1},8,["loading"])])):A("",!0)]),_:1},8,["state","title","loading"])):A("",!0),a(Mt,{modelValue:e(Ue),"onUpdate:modelValue":c[31]||(c[31]=r=>ze(Ue)?Ue.value=r:null),title:i.$t("components.dialog.title.confirm"),"confirm-text":"components.form.button.remove",loading:e(ke)||e(et),onConfirm:c[32]||(c[32]=r=>Dt())},{content:t(()=>[p("span",null,d(i.$t("components.dialog.message.confirm_remove")),1)]),_:1},8,["modelValue","title","loading"]),a(Mt,{modelValue:e(Qe),"onUpdate:modelValue":c[34]||(c[34]=r=>ze(Qe)?Qe.value=r:null),title:i.$t("components.dialog.title.confirm"),"confirm-text":"components.form.button.open_editor",loading:e(ke)||e(et),onConfirm:c[35]||(c[35]=r=>sa(e(Xe),!0))},{content:t(()=>[a(e(ma),{ref_key:"cameraVeeForm3",ref:q,"validation-schema":e(Po),"initial-values":e(Xe)},{default:t(()=>[a(e(Fe),{modelValue:e(Xe).name,"onUpdate:modelValue":c[33]||(c[33]=r=>e(Xe).name=r),name:"name",type:"text"},{default:t(({field:r,errorMessage:F,errors:$})=>[p("label",_i,d(i.$t("components.form.label.zone_name")),1),a(rt,Pe({class:"my-1",variant:"outlined",density:"compact",type:"text",name:"name"},r,{error:$.length>0,"error-messages":F}),null,16,["error","error-messages"])]),_:1},8,["modelValue"])]),_:1},8,["validation-schema","initial-values"])]),_:1},8,["modelValue","title","loading"]),e(Oe)?(l(),P(y,{key:1,"camera-name":e(S),zones:e(Oe),"is-new-zone":e(Ye),onShowModal:c[36]||(c[36]=r=>r?null:xa())},null,8,["camera-name","zones","is-new-zone"])):A("",!0),(ue=e(de))!=null&&ue.schema?(l(),P(B,{key:2,modelValue:e(J),"onUpdate:modelValue":c[37]||(c[37]=r=>ze(J)?J.value=r:null),"ui-schema":{schema:e(de).schema},"plugin-config":e(ce)||{},"plugin-name":e(Y)},null,8,["modelValue","ui-schema","plugin-config","plugin-name"])):A("",!0)],64)}}}),wi=Bt(ki,[["__scopeId","data-v-f163d2c1"]]),xi={class:"w-full h-full flex items-center justify-center bg-black aspect-video"},Mo=vt({__name:"VCameraSnapshot",props:{cameraName:{},src:{},loading:{type:Boolean}},setup(o,{expose:s}){const n=new Xt,C=o,{cameraName:E,loading:Q,src:L}=ft(C);L.value&&n.toggleQueryActivator("getCameraSnapshotQuery",!1);const{data:_,isLoading:U}=n.getCameraSnapshotQuery(E),S=W(()=>Q.value||U.value),M=W(()=>L.value?L.value:_.value?`data:image/jpeg;base64,${_.value}`:"");return s({download:()=>{if(M.value){const k=`${E.value.replace(/ /g,"_").toLowerCase()}_${new Date().toISOString()}.png`,z=document.createElement("a");z.setAttribute("download",k),z.href=M.value,document.body.appendChild(z),z.click(),z.remove()}}}),(k,z)=>{const u=so;return l(),v("div",xi,[e(S)?(l(),P(Pt,{key:0,color:"#df2a4c",indeterminate:""})):(l(),P(u,{key:1,src:e(M),width:"100%",height:"100%","aspect-ratio":"16/9",cover:""},null,8,["src"]))])}}}),Ci=["data-ignore-id"],$i={class:"snapshot-hover-container flex items-center justify-center elevation-3"},Vi={key:0,style:{width:"100%","aspect-ratio":"16/9"}},Si={class:"shortcut-menu p-3 elevation-5"},Pi=vt({__name:"VCameraShortcuts",props:{currentCamera:{},clickInsideId:{},addingShortcuts:{type:Boolean}},setup(o){var Ne;const s=new Xt,n=new Do,C=Qo(),E=bo(),Q=o,{clickInsideId:L,currentCamera:_,addingShortcuts:U}=ft(Q),{loginState:S}=go(C),M=b(null),x=b(null),k=b({}),z=b({}),u=b({}),q=b(!1),ae=b(),g=b({page:1,pageSize:-1}),J=b(!1),de=b([]),ce=b({}),me=Yt(x),{data:I,isLoading:h}=s.getCameraQuery(_),{data:ee,isLoading:O}=s.getCamerasQuery(g),{data:H,isLoading:T}=n.getUserQuery(((Ne=S.value.user)==null?void 0:Ne.username)||""),{mutate:V,isPending:R}=n.patchShortcutQuery(),{mutateAsync:Y,isPending:Oe}=n.createShortcutQuery(),{mutateAsync:je,isPending:Ue}=n.removeShortcutQuery(),Qe=W(()=>h.value||T.value||R.value||O.value||Oe.value||Ue.value),Ze=W(()=>{var Z;return(Z=ee.value)!=null&&Z.result?ee.value.result.filter(X=>X.name!==_.value):[]});xe([H,I],()=>{var Z;H.value&&I.value&&(de.value=((Z=H.value.preferences.cameras[I.value._id])==null?void 0:Z.shortcuts)||[])},{immediate:!0,deep:!0}),xe([me.width,me.height],()=>{J.value=!0,St(()=>{it()})}),xe(de,()=>{St(()=>{nt()})},{deep:!0,immediate:!0}),xe(J,Z=>{Z&&(ae.value=void 0)});const Ve=(Z,X)=>{ce.value[Z]=q.value?!1:X,Object.entries(ce.value).forEach(([ne,ie])=>{ne!==Z&&ie&&(ce.value[ne]=!1)})},Me=Z=>{q.value||N(Z)},Be=(Z,X)=>{Z||(ce.value[X._id]?(Ve(X._id,!1),ut(X.cameraId)):Ve(X._id,!0))},qe=()=>{Object.entries(z.value).forEach(([Z,X])=>{const ne=x.value;if(!ne)return;const ie=ne.getBoundingClientRect(),le=X.element.getBoundingClientRect(),Se=(le.left-ie.left)/ie.width*100,De=(le.top-ie.top)/ie.height*100;u.value[Z]={x:Math.max(0,Math.min(Se,100)),y:Math.max(0,Math.min(De,100))}})},Ke=()=>{Object.entries(z.value).forEach(([Z,X])=>{const ne=u.value[Z];if(!ne)return;const ie=x.value;if(!ie)return;const le=ie.getBoundingClientRect(),Se=X.element.getBoundingClientRect(),De=le.width-Se.width,Je=le.height-Se.height,ye=Math.max(0,Math.min(ne.x/100*le.width,De)),m=Math.max(0,Math.min(ne.y/100*le.height,Je));X.setPosition(ye,m)}),J.value=!1},it=()=>{Object.entries(u.value).forEach(([Z,X])=>{u.value[Z]={x:Math.max(0,Math.min(X.x,100)),y:Math.max(0,Math.min(X.y,100))}}),Ke()},nt=()=>{for(const[Z,X]of Object.entries(z.value))de.value.find(ne=>ne._id===Z)||(X.destroy(),delete z.value[Z],delete u.value[Z]);for(const[Z]of Object.entries(u.value))de.value.find(X=>X._id===Z)||delete u.value[Z];for(const[Z,X]of Object.entries(k.value)){const ne=de.value.find(ie=>ie._id===Z);if(X&&ne&&x.value){z.value[ne._id]&&z.value[ne._id].destroy();const ie=new ho(X,{containment:x.value});z.value[ne._id]=ie;const[le,Se]=ne.coords.points,De=x.value.getBoundingClientRect(),Je=le/100*De.width,ye=Se/100*De.height;ie.setPosition(Je,ye),u.value[ne._id]={x:le,y:Se},ie.on("dragMove",()=>{q.value=!0}),ie.on("dragEnd",()=>{if(setTimeout(()=>{q.value=!1},50),qe(),!H.value||!I.value)return;const m=u.value[ne._id];V({username:H.value.username,cameraname:I.value.name,shortcutid:ne._id,shortcutData:{coords:{_id:ne.coords._id,points:[m.x,m.y]}}})})}}Ke()},Ye=Z=>{if(!U.value||!x.value)return;const X=x.value.getBoundingClientRect(),ne=35,ie=35;ae.value={x:Math.max(0,Math.min(Z.clientX-X.left-ne/2,X.width-ne)),y:Math.max(0,Math.min(Z.clientY-X.top-ie/2,X.height-ie))}},Xe=async Z=>{if(!M.value||!H.value||!I.value||!x.value)return;const X=x.value,ne=M.value,ie=X.getBoundingClientRect(),le=ne.getBoundingClientRect(),Se=le.left-ie.left,De=le.top-ie.top,Je=Se/ie.width*100,ye=De/ie.height*100;await Y({username:H.value.username,cameraname:I.value.name,shortcutData:{_id:"",coords:{_id:"",points:[Je,ye]},cameraId:Z._id}},{onSuccess:m=>{de.value=m}}),ae.value=void 0},N=async Z=>{!H.value||!I.value||await je({username:H.value.username,cameraname:I.value.name,shortcutid:Z._id},{onSuccess:X=>{de.value=X}})},gt=(Z,X)=>{k.value[X]=Z},ut=async Z=>{if(q.value)return;const X=new AbortController,ie=(await So({cameraname:Z,signal:X.signal})).name;ie&&E.push(`/cameras/${ie}`)};return Yo(()=>{k.value={}}),ya(()=>{St(()=>{nt()})}),Jo(()=>{Object.values(z.value).forEach(Z=>Z.destroy())}),(Z,X)=>{const ne=ja,ie=Mo;return l(),v("div",{ref_key:"shortcutContainer",ref:x,class:"shortcut-container relative",style:qt({cursor:e(U)?"pointer":"default"}),onClick:K(Ye,["self"])},[(l(!0),v(be,null,$e(e(de),le=>yt((l(),v("div",{ref_for:!0,ref:Se=>gt(Se,le._id),key:le._id,class:"draggable absolute","data-ignore-id":e(L),style:qt({background:e(ce)[le._id]?"#545454":void 0})},[a(te,{color:"#383838",size:"32",density:"compact",icon:"",variant:"elevated",active:e(ce)[le._id]},{default:t(()=>[a(j,{size:"30",style:{"margin-top":"3px"}},{default:t(()=>[w(d("$cuiCamera"))]),_:1})]),_:2},1032,["active"]),a(eo,{"model-value":e(q)?!1:e(ce)[le._id]||void 0,target:"parent",offset:[10,20]},{default:t(()=>{var Se;return[p("div",$i,[(Se=e(ee))!=null&&Se.result.find(De=>De._id===le.cameraId)?(l(),P(ne,{key:1,"current-camera":e(ee).result.find(De=>De._id===le.cameraId).name,"border-radius":0,target:"stream","source-role":"low-resolution","show-mode":!1,"show-live-indicator":""},null,8,["current-camera"])):(l(),v("div",Vi,[a(Pt,{color:"#df2a4c",indeterminate:""})]))])]}),_:2},1032,["model-value"])],12,Ci)),[[e(qn),Se=>Ve(le._id,Se)],[e(An),[()=>Me(le),{distanceThreshold:24,delay:1e3,onMouseUp:(Se,De,Je)=>Be(Je,le)}]]])),128)),e(ae)?(l(),v("div",{key:0,ref_key:"placeholderEl",ref:M,class:"draggable absolute",style:qt(`left: ${e(ae).x}px; top: ${e(ae).y}px;`)},[a(te,{color:"#383838",size:"32",density:"compact",icon:"",variant:"elevated"},{default:t(()=>[a(j,{size:"30",style:{"margin-top":"3px"}},{default:t(()=>[w(d("$cuiCamera"))]),_:1})]),_:1})],4)):A("",!0),e(U)&&!e(q)&&!e(J)?(l(),P(eo,{key:1,offset:[30,0],activator:"parent",target:"cursor","onUpdate:modelValue":X[0]||(X[0]=le=>le?null:ae.value=void 0)},{default:t(()=>[p("div",Si,[(l(!0),v(be,null,$e(e(Ze),le=>(l(),P(ie,{key:le._id,class:"shortcut-menu-item elevation-1","camera-name":le.name,width:"100%",loading:e(Qe),onClick:K(Se=>Xe(le),["prevent"])},null,8,["camera-name","loading","onClick"]))),128))])]),_:1})):A("",!0)],4)}}}),zi=Bt(Pi,[["__scopeId","data-v-216a3cdc"]]),Mi={class:"stream-control flex flex-row items-center justify-center elevation-2"},Ei=vt({__name:"VPlayerController",props:{showVolume:{type:Boolean,default:!0},showRewind:{type:Boolean,default:!1},showFastForward:{type:Boolean,default:!1},showPlayPause:{type:Boolean,default:!0},showMicrophone:{type:Boolean,default:!1},showAirplay:{type:Boolean,default:!1},showPip:{type:Boolean,default:!1},showFs:{type:Boolean,default:!1},playing:{type:Boolean},muted:{type:Boolean},micActive:{type:Boolean},isFs:{type:Boolean},isPip:{type:Boolean},loading:{type:Boolean},collapsedControls:{default(){return[]}}},emits:["toggle-mute","toggle-play","toggle-microphone","toggle-airplay","toggle-picture-in-picture","toggle-fullscreen","toggle-rewind","toggle-fast-forward","toggle-playback-rate"],setup(o,{emit:s}){const n=s,C=o,{showAirplay:E,showFastForward:Q,showMicrophone:L,showPip:_,showPlayPause:U,showRewind:S,showVolume:M,playing:x,micActive:k,muted:z,loading:u,showFs:q,isFs:ae,isPip:g,collapsedControls:J}=ft(C),de=W(()=>J.value.includes("airplay")),ce=W(()=>J.value.includes("fast-forward")),me=W(()=>J.value.includes("microphone")),I=W(()=>J.value.includes("pip")),h=W(()=>J.value.includes("play-pause")),ee=W(()=>J.value.includes("rewind")),O=W(()=>J.value.includes("volume")),H=W(()=>J.value.includes("fs"));return(T,V)=>(l(),v("div",Mi,[e(ee)?A("",!0):(l(),P(te,{key:0,disabled:!e(S)||e(u),variant:"text",size:"40",style:{height:"100%","border-radius":"0px"},onClick:V[0]||(V[0]=K(R=>n("toggle-rewind"),["prevent"]))},{default:t(()=>[a(j,{color:"#fff",size:"18"},{default:t(()=>[w(d(e(mn)),1)]),_:1})]),_:1},8,["disabled"])),e(h)?A("",!0):(l(),P(te,{key:1,disabled:!e(U)||e(u),variant:"text",size:"40",style:{height:"100%","border-radius":"0px"},onClick:V[1]||(V[1]=K(R=>n("toggle-play"),["prevent"]))},{default:t(()=>[e(h)?A("",!0):(l(),P(j,{key:0,color:"#fff",size:"18"},{default:t(()=>[w(d(e(x)?e(pn):e(vn)),1)]),_:1}))]),_:1},8,["disabled"])),e(ce)?A("",!0):(l(),P(te,{key:2,disabled:!e(Q)||e(u),variant:"text",size:"40",style:{height:"100%","border-radius":"0px"},onClick:V[2]||(V[2]=K(R=>n("toggle-fast-forward"),["prevent"]))},{default:t(()=>[a(j,{color:"#fff",size:"18"},{default:t(()=>[w(d(e(fn)),1)]),_:1})]),_:1},8,["disabled"])),e(O)?A("",!0):(l(),P(te,{key:3,disabled:!e(M)||e(u),variant:"text",size:"40",style:{height:"100%","border-radius":"0px"},onClick:V[3]||(V[3]=K(R=>n("toggle-mute"),["prevent"]))},{default:t(()=>[a(j,{color:"#fff",size:"18"},{default:t(()=>[w(d(e(z)?e(gn):e(yn)),1)]),_:1})]),_:1},8,["disabled"])),e(me)?A("",!0):(l(),P(te,{key:4,disabled:!e(L)||e(u),variant:"text",size:"40",style:{height:"100%","border-radius":"0px"},onClick:V[4]||(V[4]=K(R=>n("toggle-microphone"),["prevent"]))},{default:t(()=>[a(j,{color:"#fff",size:"18"},{default:t(()=>[w(d(e(k)?e(hn):e(bn)),1)]),_:1})]),_:1},8,["disabled"])),e(de)?A("",!0):(l(),P(te,{key:5,disabled:!e(E)||e(u),variant:"text",size:"40",style:{height:"100%","border-radius":"0px"},onClick:V[5]||(V[5]=K(R=>n("toggle-airplay"),["prevent"]))},{default:t(()=>[a(j,{color:"#fff",size:"18"},{default:t(()=>[w(d(e(_n)),1)]),_:1})]),_:1},8,["disabled"])),e(I)?A("",!0):(l(),P(te,{key:6,disabled:!e(_)||e(u)||e(ae),variant:"text",size:"40",style:{height:"100%","border-radius":"0px"},onClick:V[6]||(V[6]=K(R=>n("toggle-picture-in-picture"),["prevent"]))},{default:t(()=>[a(j,{color:"#fff",size:"18"},{default:t(()=>[w(d(e(g)?e(kn):e(wn)),1)]),_:1})]),_:1},8,["disabled"])),e(H)?A("",!0):(l(),P(te,{key:7,disabled:!e(q)||e(u)||e(g),variant:"text",size:"40",style:{height:"100%","border-radius":"0px"},onClick:V[7]||(V[7]=K(R=>n("toggle-fullscreen"),["prevent"]))},{default:t(()=>[a(j,{color:"#fff",size:"18"},{default:t(()=>[w(d(e(ae)?e(xn):e(Cn)),1)]),_:1})]),_:1},8,["disabled"]))]))}}),Fi=Bt(Ei,[["__scopeId","data-v-b5e30f72"]]),Bi=vt({__name:"VBBoxPlayground",props:{color:{default:"#df2a4c"},detections:{default(){return[]}}},setup(o,{expose:s}){const n=o,{color:C,detections:E}=ft(n),Q=b(null),L=Yt(Q),_=S=>{if(!Q.value)return;const x=Q.value.getContext("2d");if(x&&(U(),S.length)){const k=S[0].origWidth,z=S[0].origHeight;Q.value.width=L.width.value,Q.value.height=L.height.value;const u=Q.value.width/k,q=Q.value.height/z;S.forEach(ae=>{const{origHeight:g,origWidth:J,inputWidth:de,inputHeight:ce}=ae,[me,I,h,ee]=ae.boundingBox,O=Math.round(me*J/de),H=Math.round(I*g/ce),T=Math.round(h*J/de),V=Math.round(ee*g/ce),R=O*u,Y=H*q,Oe=T*u,je=V*q;x.strokeStyle=C.value,x.lineWidth=2,x.beginPath(),x.moveTo(R+5,Y),x.lineTo(Oe-5,Y),x.quadraticCurveTo(Oe,Y,Oe,Y+5),x.lineTo(Oe,je-5),x.quadraticCurveTo(Oe,je,Oe-5,je),x.lineTo(R+5,je),x.quadraticCurveTo(R,je,R,je-5),x.lineTo(R,Y+5),x.quadraticCurveTo(R,Y,R+5,Y),x.closePath(),x.stroke();const Ue=`${ae.label} (${(ae.confidence*100).toFixed(2)}%)`,Qe=x.measureText(Ue).width+27,Ze=20;let Ve=R,Me=Y-Ze-5;Me<0&&(Me=Y+5);const Be=10,qe=5;x.beginPath(),x.moveTo(Ve+qe,Me),x.lineTo(Ve+Qe+Be*2-qe,Me),x.quadraticCurveTo(Ve+Qe+Be*2,Me,Ve+Qe+Be*2,Me+qe),x.lineTo(Ve+Qe+Be*2,Me+Ze-qe),x.quadraticCurveTo(Ve+Qe+Be*2,Me+Ze,Ve+Qe+Be*2-qe,Me+Ze),x.lineTo(Ve+qe,Me+Ze),x.quadraticCurveTo(Ve,Me+Ze,Ve,Me+Ze-qe),x.lineTo(Ve,Me+qe),x.quadraticCurveTo(Ve,Me,Ve+qe,Me),x.closePath(),x.fillStyle="rgba(255, 255, 255, 0.7)",x.fill(),x.fillStyle="black",x.font="bold 13px sans-serif",x.textAlign="left",x.textBaseline="bottom",x.fillText(Ue,Ve+Be,Me+Ze-3)})}},U=()=>{if(!Q.value)return;const S=Q.value.getContext("2d");S&&S.clearRect(0,0,L.width.value,L.height.value)};return xe(E,S=>{St(()=>{_(S)})},{deep:!0,immediate:!0}),s({draw:_,clear:U}),(S,M)=>(l(),v("canvas",{ref_key:"bboxCanvas",ref:Q,class:"canvas-container"},null,512))}}),no=Bt(Bi,[["__scopeId","data-v-bb909d51"]]);function Ii(){const o=W(()=>typeof window>"u"?!1:[/Android/i,/webOS/i,/iPhone/i,/iPad/i,/iPod/i,/BlackBerry/i,/Windows Phone/i].some(z=>navigator.userAgent.match(z))),s=W(()=>typeof window>"u"?!1:[/Android/i].some(z=>navigator.userAgent.match(z))),n=W(()=>typeof window>"u"?!1:[/iPhone/i].some(z=>navigator.userAgent.match(z))),C=W(()=>typeof window>"u"?!1:[/iPad/i].some(z=>navigator.userAgent.match(z))),E=W(()=>C.value||n.value),Q=W(()=>{var z;if(typeof window>"u")return[0,0];const k=/OS [\d_]+/i;return n.value?((z=navigator.userAgent.match(k))==null?void 0:z[0].substr(3).split("_").map(u=>parseInt(u)))||[0,0]:[0,0]}),L=W(()=>typeof window>"u"?!1:[/Safari/i].some(z=>navigator.userAgent.match(z))),_=W(()=>{if(typeof window>"u")return null;const k=/Version\/(\d+).+Safari/;return navigator.userAgent.match(k)}),U=W(()=>typeof window>"u"?!1:[/Firefox/i].some(z=>navigator.userAgent.match(z))),S=W(()=>typeof window>"u"?!1:[/Chrome/i].some(z=>navigator.userAgent.match(z))),M=W(()=>{let k=!1;if("maxTouchPoints"in navigator)k=navigator.maxTouchPoints>0;else if("msMaxTouchPoints"in navigator)navigator!==null&&(k=navigator.msMaxTouchPoints>0);else{const z=matchMedia("(pointer:coarse)");if(z&&z.media==="(pointer:coarse)")k=!!z.matches;else if("orientation"in window)k=!0;else{const u=navigator.userAgent;k=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(u)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(u)}}return k}),x=W(()=>{const k=typeof document.body.requestFullscreen<"u"||typeof document.body.mozRequestFullScreen<"u"||typeof document.body.webkitRequestFullscreen<"u"||typeof document.body.msRequestFullscreen<"u"||typeof document.exitFullscreen<"u"||typeof document.mozCancelFullScreen<"u"||typeof document.webkitExitFullscreen<"u",[z,u]=Q.value,q=z&&z>=17&&u&&u>=2;return!!(k||!n.value||n.value&&q)});return{isMobile:o,isAndroid:s,isIphone:n,isIpad:C,isAppleMobile:E,iosVersion:Q,isSafari:L,safariVersion:_,isFirefox:U,isChrome:S,isTouch:M,fsSupported:x}}const Ti=["data-inside-id"],qi={class:"relative player-container-main w-full",style:"background: var(--background-img);"},Ai={class:"relative w-full h-full flex items-center justify-center"},Oi={key:1,class:"relative w-full h-full"},Ni={key:0,class:"camera-name text-white"},Qi={class:"video-extras flex items-center justify-center"},Di={key:0,class:"video-extras-bg text-white p-2"},Li={key:1,class:"mx-1"},Ri={key:1,class:"absolute w-full h-full flex flex-col items-center justify-center"},ji={key:0,class:"mt-3 text-white text-sm"},Ui={key:4,width:"100%",height:"100%",class:"zones-container polygon-container"},Zi=["d"],Ki=["muted"],Wi={key:2,class:"relative w-full h-full"},Hi=["data-ignore-id"],Yi={class:"flex items-center justify-between"},Ji={class:"leading-4 flex flex-col p-2"},Xi={key:0,class:"text-left"},Gi={key:0},eu={class:"player-camera-subtitle ml-1"},tu={key:1},au={class:"player-camera-subtitle ml-1"},ou={class:"player-camera-settings-box flex items-center ml-auto"},nu=["data-ignore-id"],su=5e3,lu=1e4,ru=vt({__name:"VPlayer",props:{currentCamera:{},target:{},mode:{},previewSrc:{},showCameraName:{type:Boolean,default:!1},showMode:{type:Boolean,default:!0},showTitle:{type:Boolean,default:!1},showLiveIndicator:{type:Boolean,default:!1},absoluteTitle:{type:Boolean,default:!1},clickableTitle:{type:Boolean,default:!1},clickableContainer:{type:Boolean,default:!1},enableControl:{type:Boolean,default:!1},autoHideControl:{type:Boolean,default:!0},allowStreamRunningInBg:{type:Boolean,default:!1},showTooltips:{type:Boolean,default:!0},border:{type:Boolean,default:!1},borderRadius:{default:3},buttonElevation:{default:"0"},timelineScrolling:{type:Boolean,default:!1},zoomModel:{default:5},shortcuts:{type:Boolean,default:!1},settings:{type:Boolean,default:!1},share:{type:Boolean,default:!1},snapshot:{type:Boolean,default:!1},zoom:{type:Boolean,default:!1},motions:{type:Boolean,default:!1},objects:{type:Boolean,default:!1},zones:{type:Boolean,default:!1},sourceRole:{default:"high-resolution"}},emits:["settings","share","snapshot","resize","zoom-in","zoom-out","fullscreen"],setup(o,{expose:s,emit:n}){var It,Mt;const C=new Xt,{api:E}=ro(),{mobileActive:Q}=lo(),{fsSupported:L,isIphone:_,isMobile:U}=Ii(),S=o,{absoluteTitle:M,allowStreamRunningInBg:x,autoHideControl:k,border:z,borderRadius:u,buttonElevation:q,clickableTitle:ae,clickableContainer:g,currentCamera:J,enableControl:de,target:ce,mode:me,previewSrc:I,settings:h,share:ee,showTitle:O,snapshot:H,timelineScrolling:T,zoom:V,zoomModel:R,objects:Y,motions:Oe,zones:je,sourceRole:Ue,showCameraName:Qe,showMode:Ze,showLiveIndicator:Ve,shortcuts:Me,showTooltips:Be}=ft(S),qe=n,Ke=b(Lo()),it=b(),nt=b(null),Ye=b(!1),Xe=b(!1),N=b(null),gt=b(!1),ut=b(!1),Ne=b(null),Z=b(!1),X=b(!1),ne=b(!0),ie=b(!0),le=b(!1),Se=b(),De=b(),Je=b(),ye=b(),m=b(null),f=b([]),oe=b(),se=b(!1),he=b(!1),G=b(!1),Ee=b(!0),Ie=b(!1),Ce=b(!1),pe=b(null),_e=b("loading"),ct=b(),st=b(!1),Ge=b(!1);let Nt,Zt,dt,xt;C.toggleQueryActivator("getCameraQuery",ce.value!=="preview");const We=C.getCameraQuery(J),ba=Yt(N),ke=Yt(pe),{isFullscreen:Re,toggle:Qt}=On(Ne);Lt(pe,"pause",()=>{Ie.value=!1}),Lt(pe,"play",()=>{Ie.value=!0}),Lt(pe,"loadeddata",()=>{Ce.value=!0,se.value=!1}),Lt(pe,"enterpictureinpicture",()=>G.value=!0),Lt(pe,"leavepictureinpicture",()=>G.value=!1),de.value&&Na(nt,y=>{const B=y.target,ue=B.closest(`[data-inside-id='${Ke.value}']`),r=B.closest(`[data-ignore-id='${Ke.value}']`),F=B.closest(".resizable-b");ue&&!r&&!F&&!Ye.value&&(k.value&&ra(),ut.value=!ut.value)}),((It=We==null?void 0:We.data.value)==null?void 0:It.interface.streamingMode)==="hls"&&((Mt=pe.value)!=null&&Mt.canPlayType("application/vnd.apple.mpegurl"))&&window.WebKitPlaybackTargetAvailabilityEvent&&Lt(pe,"webkitplaybacktargetavailabilitychanged",y=>{switch(y.availability){case"available":oe.value=!0;break;case"not-available":oe.value=void 0;break}});const et=W(()=>ce.value==="stream"&&_e.value!=="mjpeg"&&_e.value!=="mp4"),Kt=W(()=>navigator.mediaDevices&&ce.value==="stream"&&Ge.value),Gt=W(()=>{var y,B;return!!(_e.value==="hls"&&((y=We==null?void 0:We.data.value)==null?void 0:y.interface.streamingMode)==="hls"&&((B=pe.value)!=null&&B.canPlayType("application/vnd.apple.mpegurl"))&&oe.value!==void 0)}),ea=W(()=>document.pictureInPictureEnabled&&!_.value&&ce.value==="stream"&&_e.value!=="mp4"&&_e.value!=="mjpeg"),Wt=W(()=>ce.value==="stream"&&_e.value!=="mjpeg"&&_e.value!=="mp4"),Ht=W(()=>!!(We!=null&&We.isLoading.value||!Ce.value));if(xe(se,async y=>{y&&await i(!1,!1)}),xe(ba.height,(y,B)=>{qe("resize",y-B)},{deep:!0}),xe(gt,y=>{St(()=>Xe.value=y)}),xe(Re,y=>{qe("fullscreen",y)}),!x.value&&ce.value==="stream"&&!U.value){const y=Nn();xe(y,B=>{var ue;B==="hidden"?he.value===!1&&(clearTimeout(Zt),Zt=setTimeout(()=>{re()},lu)):(clearTimeout(Zt),he.value&&((ue=m.value)==null||ue.reconnect()))})}const ta=async()=>{var ve;if(de.value&&k.value&&ut.value&&ra(),await(We==null?void 0:We.suspense()),ye.value=await E.deviceManager.getCameraByName(J.value),!ye.value)throw new Error("Camera not found!");let y;const B=ye.value.streamSource,ue=ye.value.snapshotSource,r=ye.value.highResolutionSource,F=ye.value.midResolutionSource,$=ye.value.lowResolutionSource;if(Ue.value==="high-resolution"?r?y=r:(console.warn("High resolution source not found, using stream source instead"),y=B):Ue.value==="mid-resolution"?F?y=F:(console.warn("Mid resolution source not found, using stream source instead"),y=B):Ue.value==="low-resolution"?$?y=$:(console.warn("Low resolution source not found, using stream source instead"),y=B):Ue.value==="snapshot"?ue?y=ue:(console.warn("Snapshot source not found, using stream source instead"),y=B):y=B,it.value=`${J.value.replace(/ /g,"_").toLowerCase()}_${y.name}`,ne.value=!ye.value.hasMotionDetector,ie.value=!ye.value.hasObjectDetector,ye.value.onPropertyChange("hasMotionDetector").subscribe(({newData:Ae})=>{ne.value=!Ae}),ye.value.onPropertyChange("hasObjectDetector").subscribe(({newData:Ae})=>{ie.value=!Ae}),!pe.value)throw new Error("Video player not found!");m.value=ye.value.createSession({mode:me.value||((ve=We==null?void 0:We.data.value)==null?void 0:ve.interface.streamingMode)||"webrtc",sourceName:it.value,videoElement:pe.value,reconnectInterval:5e3}),m.value.addEventListener("error",Ct),m.value.addEventListener("reconnect",aa),m.value.addEventListener("finishLoading",oa),m.value.connect()},Ct=y=>{console.error(J.value,y),_e.value="error",Ge.value=!1,Ce.value=!1,se.value=!1},aa=()=>{_e.value="reconnecting",Ge.value=!1,Ce.value=!1,se.value=!0},oa=()=>{Ge.value=m.value.hasBackchannel,_e.value=m.value.mode,Ce.value=!0,se.value=!1},_a=()=>{var y,B;if(pe.value){const ue=document.createElement("canvas");ue.width=pe.value.videoWidth,ue.height=pe.value.videoHeight,(y=ue.getContext("2d"))==null||y.drawImage(pe.value,0,0,ue.width,ue.height);const r=ue.toDataURL("image/png"),F=`${J.value.replace(/ /g,"_").toLowerCase()}_${new Date().toISOString()}.png`,$=document.createElement("a");$.setAttribute("download",F),$.href=r,document.body.appendChild($),$.click(),$.remove()}else(B=Je.value)==null||B.download()},Dt=y=>{const B=zt(y);B==null||B.clear()},na=(y,B)=>{const ue=zt(y);ue==null||ue.draw(B)},ka=async()=>{var y;le.value||(le.value=!0,f.value=((y=ye.value)==null?void 0:y.activityZones)||[])},wa=()=>{le.value=!1,f.value=[]},xa=y=>{if(!y)return"";const B=y.map(r=>{const F=Math.round(r[0]/100*ke.width.value),$=Math.round(r[1]/100*ke.height.value);return`${F},${$}`});if(B.length===0)return"";let ue=`M ${B[0]}`;for(let r=1;r<B.length;r++)ue+=` L ${B[r]}`;return ue+=" Z",ue},sa=async()=>{var y,B;Z.value||(Dt("motion"),Z.value=!0,await((y=ye.value)==null?void 0:y.start()),dt=(B=ye.value)==null?void 0:B.onMotionDetected.subscribe(ue=>{na("motion",ue.detections)}))},Ca=async()=>{var y,B;X.value||(Dt("object"),X.value=!0,await((y=ye.value)==null?void 0:y.start()),xt=(B=ye.value)==null?void 0:B.onObjectDetected.subscribe(ue=>{na("object",ue.detections)}))},lt=()=>{var y;Dt("motion"),Z.value=!1,X.value||(y=ye.value)==null||y.stop(),dt==null||dt.unsubscribe()},Te=()=>{var y;Dt("object"),X.value=!1,Z.value||(y=ye.value)==null||y.stop(),xt==null||xt.unsubscribe()},zt=y=>y==="motion"?Se.value:De.value,la=async()=>{var y;if(pe.value)try{await pe.value.play()}catch(B){if(!((y=pe.value)!=null&&y.muted))return pe.value.muted=!0,la();console.warn(J.value,B)}},ra=()=>{clearTimeout(Nt),Nt=setTimeout(()=>{ut.value=!1},su)},$a=()=>{var y;(y=pe.value)==null||y.webkitShowPlaybackTargetPicker()},Va=()=>{L.value?Qt():Re.value=!Re.value},ia=y=>{Ee.value=y!==void 0?y:!Ee.value},i=async(y,B=!1)=>{var ue,r;if((ue=m.value)!=null&&ue.micTransceiver)if(st.value=y!==void 0?y:!st.value,st.value)try{ct.value=await navigator.mediaDevices.getUserMedia({audio:!0});const F=ct.value.getAudioTracks()[0];Ee.value=!B,m.value.micTransceiver.sender.replaceTrack(F)}catch(F){console.warn(J.value,F)}else(r=ct.value)==null||r.getTracks().forEach(F=>F.stop()),ct.value=void 0,m.value.micTransceiver.sender.replaceTrack(null)},c=()=>{var y;document.pictureInPictureElement?document.exitPictureInPicture():document.pictureInPictureEnabled&&((y=pe.value)==null||y.requestPictureInPicture())},D=()=>{pe.value&&(Ie.value?pe.value.pause():la())},fe=()=>{he.value=!0,Ce.value=!1,Ee.value=!0},re=()=>{var y;fe(),(y=m.value)==null||y.close()};return uo(async()=>{try{ce.value==="stream"&&await ta()}catch(y){console.error(y)}}),co(()=>{var y,B,ue,r;re(),(y=m.value)==null||y.removeEventListener("error",Ct),(B=m.value)==null||B.removeEventListener("reconnect",aa),(ue=m.value)==null||ue.removeEventListener("finishLoading",oa),dt==null||dt.unsubscribe(),xt==null||xt.unsubscribe(),(r=ye.value)==null||r.close(),ye.value=void 0}),s({toggleMicrophone:i,toggleMute:ia}),(y,B)=>{const ue=Fi,r=zi,F=wi;return l(),v("div",{ref_key:"playerContainer",ref:N,"data-inside-id":e(Ke),class:"player-container w-full relative",style:qt(`border-radius: ${e(u)}px; border: ${e(z)?1:0}px solid var(--border);`)},[p("div",{ref_key:"fakeClick",ref:nt,class:"fake-click"},null,512),p("div",qi,[p("div",{ref_key:"videoPlayerWrapper",ref:Ne,class:jt(["w-full h-full",{"fullscreen-video":!e(L)&&e(Re)}])},[p("div",Ai,[p("div",{class:"video-container w-full aspect-video",style:qt(!e(L)&&e(Re)?"width: unset":void 0)},[a(io,{name:"fade",mode:"out-in"},{default:t(()=>[e(ut)&&e(de)?(l(),P(ue,{key:0,"data-ignore-id":e(Ke),loading:e(Ht),"show-rewind":"","show-fast-forward":"","show-volume":e(et),"show-play-pause":e(Wt),"show-microphone":e(Kt),"show-airplay":e(Gt)&&e(Wt),"show-pip":e(ea),"show-fs":e(L),"is-fs":e(Re),"is-pip":e(G),muted:e(Ee),playing:e(Ie),"mic-active":e(st),"collapsed-controls":["airplay"],onToggleMute:ia,onTogglePlay:D,onToggleMicrophone:B[0]||(B[0]=()=>i(void 0,!0)),onToggleAirplay:$a,onTogglePictureInPicture:c,onToggleFullscreen:Va},null,8,["data-ignore-id","loading","show-volume","show-play-pause","show-microphone","show-airplay","show-pip","show-fs","is-fs","is-pip","muted","playing","mic-active"])):A("",!0)]),_:1}),e(Me)?(l(),P(r,{key:0,"current-camera":e(J),"adding-shortcuts":e(Ye),"click-inside-id":e(Ke)},null,8,["current-camera","adding-shortcuts","click-inside-id"])):A("",!0),e(ce)==="stream"?(l(),v("div",Oi,[e(Qe)?(l(),v("div",Ni,d(e(J)),1)):A("",!0),p("div",Qi,[e(Ze)&&!e(Q)?(l(),v("div",Di,d(e(_e).toUpperCase()),1)):A("",!0),e(Ze)&&e(Ve)?(l(),v("div",Li)):A("",!0),e(Ve)?(l(),v("div",{key:2,class:"live-indicator elevation-3",style:qt({background:e(Ce)?"red":"gray"})},null,4)):A("",!0)]),e(Ht)?(l(),v("div",Ri,[a(Pt,{color:"#df2a4c",indeterminate:""}),e(se)?(l(),v("span",ji,d(y.$t("components.player.reconnecting"))+"...",1)):A("",!0)])):A("",!0),e(Oe)&&!e(ne)?(l(),P(no,{key:2,ref_key:"motionCanvas",ref:Se},null,512)):A("",!0),e(Y)&&!e(ie)?(l(),P(no,{key:3,ref_key:"objectCanvas",ref:De,color:"green"},null,512)):A("",!0),e(je)?(l(),v("svg",Ui,[(l(!0),v(be,null,$e(e(f),($,ve)=>(l(),v("path",{key:ve,d:xa($.points.map(Ae=>Ae)),class:jt({polygon:$.filter=="include"&&!$.isPrivacyMask,"polygon-exclude":$.filter=="exclude"&&!$.isPrivacyMask,"polygon-privacy":$.isPrivacyMask,dash:$.type==="intersect"&&!$.isPrivacyMask})},null,10,Zi))),128))])):A("",!0),p("video",{id:"videoPlayer",ref_key:"videoPlayer",ref:pe,playsinline:"",autoplay:"",preload:"auto",muted:e(Ee),class:"video-player"},null,8,Ki)])):(l(),v("div",Wi,[a(Mo,{ref_key:"cameraSnapshot",ref:Je,"camera-name":e(J),src:e(I)},null,8,["camera-name","src"])]))],4)])],2)]),e(O)?(l(),v("div",{key:0,"data-ignore-id":e(Ke),class:jt(["p-2 px-3",{"player-header-absolute":e(M),"player-header-container":!e(M)}])},[p("div",Yi,[a(te,{class:jt({"player-title-text":!e(M),"cursor-pointer":e(ae),"cursor-default":!e(ae)}),style:{padding:"0"},ripple:e(M),color:e(M)?"#212121":void 0,height:"100%",variant:e(M)?"elevated":"text",elevation:e(q),rounded:"",to:e(ae)?`/cameras/${e(J)}`:void 0},{default:t(()=>[p("div",Ji,[p("h3",{class:"player-camera-title",style:qt(`color: ${e(M)?"#ffffff":"color: var(--color);"}`)},d(e(J)),5),e(ce)==="stream"?(l(),v("div",Xi,[e(T)?(l(),v("div",Gi,[a(Pt,{size:"10",width:"1",indeterminate:"",color:"#0173ff"},{default:t(()=>[a(j,{size:"20",color:"#0173ff",icon:e(Ya)},null,8,["icon"])]),_:1}),p("span",eu,d(y.$t("general.loading")),1)])):(l(),v("div",tu,[a(Pt,{size:"10",width:"1","model-value":100,color:"red"},{default:t(()=>[a(j,{size:"20",color:"red",icon:e(Ya)},null,8,["icon"])]),_:1}),p("span",au,d(y.$t("components.player.live")),1)]))])):A("",!0)])]),_:1},8,["class","ripple","color","variant","elevation","to"]),p("div",ou,[e(V)?yt((l(),P(te,{key:0,size:"28",density:"compact",disabled:e(R)==1,variant:e(M)?"elevated":"text",icon:!e(M),rounded:!0,elevation:e(q),color:e(M)?"#212121":void 0,class:"ml-1",onClick:B[1]||(B[1]=K($=>qe("zoom-out"),["prevent"]))},{default:t(()=>[a(j,{size:"20",icon:e($n)},null,8,["icon"])]),_:1},8,["disabled","variant","icon","elevation","color"])),[[Vt,{disabled:!e(Be),text:y.$t("components.player.zoom_out")}]]):A("",!0),e(V)?yt((l(),P(te,{key:1,size:"28",density:"compact",disabled:e(R)==5,variant:e(M)?"elevated":"text",icon:!e(M),rounded:!0,elevation:e(q),color:e(M)?"#212121":void 0,class:"ml-1",onClick:B[2]||(B[2]=K($=>qe("zoom-in"),["prevent"]))},{default:t(()=>[a(j,{size:"20",icon:e(Vn)},null,8,["icon"])]),_:1},8,["disabled","variant","icon","elevation","color"])),[[Vt,{disabled:!e(Be),text:y.$t("components.player.zoom_in")}]]):A("",!0),e(ee)?yt((l(),P(te,{key:2,size:"28",density:"compact",variant:e(M)?"elevated":"text",icon:!e(M),rounded:!0,elevation:e(q),color:e(M)?"#212121":void 0,class:"ml-1",onClick:B[3]||(B[3]=K($=>qe("share"),["prevent"]))},{default:t(()=>[a(j,{size:"20",icon:e(Sn)},null,8,["icon"])]),_:1},8,["variant","icon","elevation","color"])),[[Vt,{disabled:!e(Be),text:y.$t("components.player.share_camera")}]]):A("",!0),e(H)?yt((l(),P(te,{key:3,size:"28",density:"compact",variant:e(M)?"elevated":"text",icon:!e(M),rounded:!0,elevation:e(q),color:e(M)?"#212121":void 0,class:"ml-1",onClick:B[4]||(B[4]=K($=>_a(),["prevent"]))},{default:t(()=>[a(j,{size:"20",icon:e(Pn)},null,8,["icon"])]),_:1},8,["variant","icon","elevation","color"])),[[Vt,{disabled:!e(Be),text:y.$t("components.player.capture_snapshot")}]]):A("",!0),e(Oe)&&!e(ne)?yt((l(),P(te,{key:4,size:"28",density:"compact",variant:e(M)?"elevated":"text",icon:!e(M),rounded:!0,elevation:e(q),color:e(M)?"#212121":void 0,class:"ml-1",onClick:B[5]||(B[5]=K($=>e(Z)?lt():sa(),["prevent"]))},{default:t(()=>[a(j,{size:"20",icon:e(zn),disabled:!e(Z)},null,8,["icon","disabled"])]),_:1},8,["variant","icon","elevation","color"])),[[Vt,{disabled:!e(Be),text:e(Z)?y.$t("components.player.hide_motions"):y.$t("components.player.show_motions")}]]):A("",!0),e(Y)&&!e(ie)?yt((l(),P(te,{key:5,size:"28",density:"compact",variant:e(M)?"elevated":"text",icon:!e(M),rounded:!0,elevation:e(q),color:e(M)?"#212121":void 0,class:"ml-1",onClick:B[6]||(B[6]=K($=>e(X)?Te():Ca(),["prevent"]))},{default:t(()=>[a(j,{size:"20",icon:e(Mn),disabled:!e(X)},null,8,["icon","disabled"])]),_:1},8,["variant","icon","elevation","color"])),[[Vt,{disabled:!e(Be),text:e(X)?y.$t("components.player.hide_objects"):y.$t("components.player.show_objects")}]]):A("",!0),e(je)?yt((l(),P(te,{key:6,size:"28",density:"compact",variant:e(M)?"elevated":"text",icon:!e(M),rounded:!0,elevation:e(q),color:e(M)?"#212121":void 0,class:"ml-1",onClick:B[7]||(B[7]=K($=>e(le)?wa():ka(),["prevent"]))},{default:t(()=>[a(j,{size:"20",icon:e(En),disabled:!e(le)},null,8,["icon","disabled"])]),_:1},8,["variant","icon","elevation","color"])),[[Vt,{disabled:!e(Be),text:e(le)?y.$t("components.player.hide_zones"):y.$t("components.player.show_zones")}]]):A("",!0),e(Me)?yt((l(),P(te,{key:7,size:"28",density:"compact",variant:e(M)?"elevated":"text",icon:!e(M),rounded:!0,elevation:e(q),color:e(M)?"#212121":void 0,class:"ml-1",onClick:B[8]||(B[8]=K($=>Ye.value=!e(Ye),["prevent"]))},{default:t(()=>[a(j,{size:"20"},{default:t(()=>[w(d(e(Ye)?e(Fn):e(Bn)),1)]),_:1})]),_:1},8,["variant","icon","elevation","color"])),[[Vt,{disabled:!e(Be),text:e(Ye)?y.$t("components.player.save_shortcuts"):y.$t("components.player.add_shortcuts")}]]):A("",!0),e(h)&&e(Ro)(void 0,"admin")?yt((l(),P(te,{key:8,size:"28",density:"compact",variant:e(M)?"elevated":"text",icon:!e(M),rounded:!0,elevation:e(q),color:e(M)?"#212121":void 0,class:"ml-1",onClick:B[9]||(B[9]=K($=>gt.value=!0,["prevent"]))},{default:t(()=>[a(j,{size:"20",icon:e(Oa)},null,8,["icon"])]),_:1},8,["variant","icon","elevation","color"])),[[Vt,{disabled:!e(Be),text:y.$t("components.player.settings")}]]):A("",!0)])])],10,Hi)):A("",!0),e(g)?(l(),v("div",{key:1,class:"absolute w-100 h-100 top-0 cursor-pointer",onClick:B[10]||(B[10]=K($=>y.$router.push(`/cameras/${e(J)}`),["prevent"]))})):A("",!0),e(gt)?(l(),v("div",{key:2,"data-ignore-id":e(Ke)},[a(F,{"camera-name":e(J),show:e(Xe),onClose:B[11]||(B[11]=$=>gt.value=!1)},null,8,["camera-name","show"])],8,nu)):A("",!0)],12,Ti)}}}),ja=Bt(ru,[["__scopeId","data-v-2a0456a7"]]);export{Xt as C,ja as _,Vo as a,no as b,Cu as c,wi as d,Ss as e,to as g,Ii as u};
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
import time
|
|
3
|
-
from typing import Any, Literal
|
|
4
|
-
|
|
5
|
-
import numpy as np
|
|
6
|
-
from PIL import Image
|
|
7
|
-
|
|
8
|
-
width = 640
|
|
9
|
-
height = 360
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def yuv420_to_rgb(yuv_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
|
|
13
|
-
frame_size = width * height
|
|
14
|
-
uv_size = frame_size // 4
|
|
15
|
-
|
|
16
|
-
raw_data = np.frombuffer(yuv_bytes, dtype=np.uint8)
|
|
17
|
-
|
|
18
|
-
y = raw_data[:frame_size].reshape((height, width)).astype(np.float32) - 16.0
|
|
19
|
-
u = (
|
|
20
|
-
raw_data[frame_size : frame_size + uv_size].reshape((height // 2, width // 2)).astype(np.float32)
|
|
21
|
-
- 128.0
|
|
22
|
-
)
|
|
23
|
-
v = raw_data[frame_size + uv_size :].reshape((height // 2, width // 2)).astype(np.float32) - 128.0
|
|
24
|
-
|
|
25
|
-
# Upsample U and V to match Y dimensions in one step
|
|
26
|
-
u = u.repeat(2, axis=0).repeat(2, axis=1)
|
|
27
|
-
v = v.repeat(2, axis=0).repeat(2, axis=1)
|
|
28
|
-
|
|
29
|
-
# Perform YUV to RGB conversion
|
|
30
|
-
r = y + 1.402 * v
|
|
31
|
-
g = y - 0.344136 * u - 0.714136 * v
|
|
32
|
-
b = y + 1.772 * u
|
|
33
|
-
|
|
34
|
-
# return np.clip(np.stack((r, g, b), axis=-1), 0, 255).astype(np.uint8)
|
|
35
|
-
rgb = np.stack((r, g, b), axis=-1)
|
|
36
|
-
return np.clip(rgb, 0, 255).astype(np.uint8)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
def yuv420_to_rgba(yuv_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
|
|
40
|
-
rgb = yuv420_to_rgb(yuv_bytes, width, height)
|
|
41
|
-
alpha = np.full((height, width, 1), 255, dtype=np.uint8) # Alpha direkt als uint8
|
|
42
|
-
rgba = np.concatenate((rgb, alpha), axis=-1)
|
|
43
|
-
return rgba
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
def yuv420_to_gray(yuv_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
|
|
47
|
-
frame_size = width * height
|
|
48
|
-
raw_data = np.frombuffer(yuv_bytes, dtype=np.uint8)
|
|
49
|
-
return raw_data[:frame_size].reshape((height, width)).astype(np.uint8)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
def read_yuv_file():
|
|
53
|
-
with open("frame.yuv", "rb") as f:
|
|
54
|
-
return f.read()
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
def main(format: Literal["rgb", "rgba", "gray"]):
|
|
58
|
-
yuv_bytes = read_yuv_file()
|
|
59
|
-
|
|
60
|
-
if format == "rgb":
|
|
61
|
-
rgb = yuv420_to_rgb(yuv_bytes, width, height)
|
|
62
|
-
rgb_image = Image.fromarray(rgb)
|
|
63
|
-
rgb_image.save("frame_rgb.jpg")
|
|
64
|
-
elif format == "rgba":
|
|
65
|
-
rgba = yuv420_to_rgba(yuv_bytes, width, height)
|
|
66
|
-
rgba_image = Image.fromarray(rgba)
|
|
67
|
-
rgba_image.save("frame_rgba.png")
|
|
68
|
-
elif format == "gray":
|
|
69
|
-
gray = yuv420_to_gray(yuv_bytes, width, height)
|
|
70
|
-
gray_image = Image.fromarray(gray)
|
|
71
|
-
gray_image.save("frame_gray.jpg")
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
async def benchmark(format: Literal["rgb", "rgba", "gray"]):
|
|
75
|
-
yuv_bytes = read_yuv_file()
|
|
76
|
-
|
|
77
|
-
fps = 10
|
|
78
|
-
total_frames = 3000
|
|
79
|
-
average_latency_in_ms = 6
|
|
80
|
-
frame_duration = 1.0 / fps
|
|
81
|
-
current_frame = 0
|
|
82
|
-
|
|
83
|
-
start = time.time()
|
|
84
|
-
|
|
85
|
-
while current_frame < total_frames:
|
|
86
|
-
if format == "rgb":
|
|
87
|
-
rgb = yuv420_to_rgb(yuv_bytes, width, height)
|
|
88
|
-
Image.fromarray(rgb)
|
|
89
|
-
elif format == "rgba":
|
|
90
|
-
rgba = yuv420_to_rgba(yuv_bytes, width, height)
|
|
91
|
-
Image.fromarray(rgba)
|
|
92
|
-
elif format == "gray":
|
|
93
|
-
gray = yuv420_to_gray(yuv_bytes, width, height)
|
|
94
|
-
Image.fromarray(gray)
|
|
95
|
-
|
|
96
|
-
current_frame += 1
|
|
97
|
-
await asyncio.sleep(frame_duration + average_latency_in_ms / 1000.0)
|
|
98
|
-
|
|
99
|
-
end = time.time()
|
|
100
|
-
print("Simulation completed! Total duration:", (end - start) * 1000, "ms")
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
format: Literal["rgb", "rgba", "gray"] = "gray"
|
|
104
|
-
|
|
105
|
-
main(format)
|
|
106
|
-
asyncio.run(benchmark(format))
|