@camera.ui/server 0.0.104 → 0.0.105
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/{404-CJ99-HuF.js → 404-dD7prz4d.js} +1 -1
- package/dist/interface/assets/{About-B0RkqPCF.js → About-4w_Ij32a.js} +1 -1
- package/dist/interface/assets/{Adminpanel-BzjRR4E-.js → Adminpanel-BgxU0Yh6.js} +1 -1
- package/dist/interface/assets/{Automation-BxZOk7_I.js → Automation-CYsN1p2P.js} +2 -2
- package/dist/interface/assets/{Automations-DCnYU4ec.js → Automations-CRd6MuM2.js} +1 -1
- package/dist/interface/assets/{Camera-uZPZMDm6.js → Camera-DCqFhkAt.js} +2 -2
- package/dist/interface/assets/{CameraConsole-C_TUwy4O.js → CameraConsole-DfIBG8ZV.js} +1 -1
- package/dist/interface/assets/{Cameras-CCjDWbDk.js → Cameras-BK67w1OJ.js} +1 -1
- package/dist/interface/assets/{Camview-DGtE5Z3s.js → Camview-B0go1EMt.js} +1 -1
- package/dist/interface/assets/{Config-QQ7HALtt.js → Config-CeEi3tKd.js} +1 -1
- package/dist/interface/assets/{ConfigActionCameraControl-C7ZfjHnE.js → ConfigActionCameraControl-rP-oa_3f.js} +1 -1
- package/dist/interface/assets/{ConfigActionDelay-C9zOKCqa.js → ConfigActionDelay-BJeC4VAJ.js} +1 -1
- package/dist/interface/assets/{ConfigActionHttp-zeFP7jW9.js → ConfigActionHttp-F8Mpo56C.js} +1 -1
- package/dist/interface/assets/{ConfigActionImageInput-D19IiOQh.js → ConfigActionImageInput-Drtv5ElC.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-vKL_FJi6.js → ConfigActionNotification-DR8c22Y1.js} +1 -1
- package/dist/interface/assets/{ConfigActionOutput-C9P9NVNR.js → ConfigActionOutput-CbT2-VnU.js} +1 -1
- package/dist/interface/assets/{ConfigActionPlugin-BfjaRyTe.js → ConfigActionPlugin-DE-S6S0y.js} +1 -1
- package/dist/interface/assets/{ConfigActionSensor-BGIRJ1VF.js → ConfigActionSensor-Dw_V9cYY.js} +1 -1
- package/dist/interface/assets/{ConfigActionSnapshot-ClUBwM1R.js → ConfigActionSnapshot-5xUvGsae.js} +1 -1
- package/dist/interface/assets/{ConfigActionVariable-COV3XNCP.js → ConfigActionVariable-Bub1V_a3.js} +1 -1
- package/dist/interface/assets/{ConfigConditionIfElse-CRzCscc-.js → ConfigConditionIfElse-CAt9ubD2.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSensorState-DZJkEOJX.js → ConfigConditionSensorState-DhP32uo8.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSwitch-CY52JGdW.js → ConfigConditionSwitch-DB2r6i-I.js} +1 -1
- package/dist/interface/assets/{ConfigConditionTime-o7CY--td.js → ConfigConditionTime-zqIQQ-tD.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerDetection-DRM0HbdD.js → ConfigTriggerDetection-CVW5HXeG.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerGeofence-CJi5c7cN.js → ConfigTriggerGeofence-BsPsPO4j.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerManual-B8iZq1a7.js → ConfigTriggerManual-DhafkyQd.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSchedule-sG8s23os.js → ConfigTriggerSchedule-Bx3qlITv.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-Dc9qP7jS.js → ConfigTriggerSensor-FVgMXGty.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-wZjLxEWq.js → ConfigTriggerSystem-BJo-wIMS.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerWebhook-BpWO2kXx.js → ConfigTriggerWebhook-BaUrOAZB.js} +1 -1
- package/dist/interface/assets/{Console-B79GknLp.js → Console-B23nM1WG.js} +1 -1
- package/dist/interface/assets/{CuiActionButton-DaeBGbij.js → CuiActionButton-Dywht3_D.js} +1 -1
- package/dist/interface/assets/{CuiAvatar-CMR4MZZv.js → CuiAvatar-CdoyvPP1.js} +1 -1
- package/dist/interface/assets/{CuiBBoxPlayground-BJxrh8Hk.js → CuiBBoxPlayground-DcAhwW8k.js} +1 -1
- package/dist/interface/assets/CuiBottomSheet-CU8irFoy.js +1 -0
- package/dist/interface/assets/{CuiBottomSheet-DmanZWbm.js → CuiBottomSheet-CvkbklC_.js} +1 -1
- package/dist/interface/assets/CuiCameraCard-BxWf13Ct.js +1 -0
- package/dist/interface/assets/{CuiCameraPipCard-BvJJFMV2.js → CuiCameraPipCard-CR5a-MkM.js} +1 -1
- package/dist/interface/assets/CuiCameraRecordings-BXfAlbHm.js +1 -0
- package/dist/interface/assets/{CuiCameraShares-BNyn9lMv.js → CuiCameraShares-CJpSVfdl.js} +1 -1
- package/dist/interface/assets/{CuiCameraSnapshot-DzweaAbD.js → CuiCameraSnapshot-Cg8Vjve3.js} +1 -1
- package/dist/interface/assets/{CuiCameraTable-CCu87mix.js → CuiCameraTable-CfJNlsEQ.js} +1 -1
- package/dist/interface/assets/{CuiDataTable-Q0cMKDSG.js → CuiDataTable-C9mtC73b.js} +1 -1
- package/dist/interface/assets/{CuiFloatingButton-CLb4OXWq.js → CuiFloatingButton-Bi1jS25U.js} +1 -1
- package/dist/interface/assets/{CuiImage-OMrwpQrB.js → CuiImage-DJcQfDpa.js} +1 -1
- package/dist/interface/assets/{CuiMenu-BXurM_rM.js → CuiMenu-150v0xB6.js} +1 -1
- package/dist/interface/assets/{CuiPluginCard-o4XyKYKV.js → CuiPluginCard-CHLd5hzA.js} +2 -2
- package/dist/interface/assets/{CuiPluginOAuthButton-CT_taZrW.js → CuiPluginOAuthButton-B7JHhElr.js} +2 -2
- package/dist/interface/assets/{CuiQRCode-Dv03yW5H.js → CuiQRCode-ZbDxg42W.js} +1 -1
- package/dist/interface/assets/{CuiRecordingsGrid-34f2-J9w.js → CuiRecordingsGrid-Bl0vRmPG.js} +1 -1
- package/dist/interface/assets/{CuiSchema-DPegn_DL.js → CuiSchema-DvWek91_.js} +1 -1
- package/dist/interface/assets/{CuiTopNavbarItem-D1yZXVK4.js → CuiTopNavbarItem-Dwm5c6so.js} +1 -1
- package/dist/interface/assets/{CuiTopbarSlot-D8e3DC_V.js → CuiTopbarSlot-DE7fTsSm.js} +1 -1
- package/dist/interface/assets/{Faces-CNCw8AXF.js → Faces-6nDCr24_.js} +1 -1
- package/dist/interface/assets/{FirstSteps-Dcr9xd_H.js → FirstSteps-DB7hnFYh.js} +1 -1
- package/dist/interface/assets/{Instances-DCrJqqdk.js → Instances-KpdnZAmV.js} +1 -1
- package/dist/interface/assets/{Logs-9KBZQ4SH.js → Logs-Cq2AF2x-.js} +1 -1
- package/dist/interface/assets/{Menu-D82CRc95.js → Menu-CeDR7bvT.js} +1 -1
- package/dist/interface/assets/{OAuthDeviceFlow-C6sk2XbU.js → OAuthDeviceFlow-BVOHNDTs.js} +1 -1
- package/dist/interface/assets/{Plugin-DY1-hTa-.js → Plugin-BB6k9AtE.js} +1 -1
- package/dist/interface/assets/{PluginConsole-D8K2fOf6.js → PluginConsole-Cbo8LA6t.js} +1 -1
- package/dist/interface/assets/{PluginSchema-JKttwvkD.js → PluginSchema-CCfTSjTD.js} +1 -1
- package/dist/interface/assets/{Plugins-5y2A-S9R.js → Plugins-DpTVWC5S.js} +2 -2
- package/dist/interface/assets/Recordings-B0_4e1tu.js +1 -0
- package/dist/interface/assets/{Settings-BQSZwEux.js → Settings-Wz10iv8b.js} +1 -1
- package/dist/interface/assets/{SettingsAccount-7HSGeh_G.js → SettingsAccount-BNSg5Wx5.js} +1 -1
- package/dist/interface/assets/SettingsAccount-DlGKfeGf.js +1 -0
- package/dist/interface/assets/SettingsAppearance-N4r7TCgr.js +1 -0
- package/dist/interface/assets/{SettingsAppearance-DAtwb17b.js → SettingsAppearance-VHR3IVCx.js} +1 -1
- package/dist/interface/assets/{SettingsBackup-Bj2pUzxN.js → SettingsBackup-DGhqvHHm.js} +1 -1
- package/dist/interface/assets/{SettingsNotifications-Bk40tvnT.js → SettingsNotifications-BHcRDJAp.js} +1 -1
- package/dist/interface/assets/{SettingsRecordings-BfbVsR6a.js → SettingsRecordings-CrMGLPfU.js} +1 -1
- package/dist/interface/assets/{SettingsRemote-CPq1K5z8.js → SettingsRemote-B1m3_4lr.js} +1 -1
- package/dist/interface/assets/{SettingsSystem-C9qSkCyX.js → SettingsSystem-z5r89MJJ.js} +2 -2
- package/dist/interface/assets/{SettingsUsers-BpwM-HIU.js → SettingsUsers-yReLqEQ1.js} +1 -1
- package/dist/interface/assets/{Terminal-BB9MM3FG.js → Terminal-BAiV8ZVj.js} +1 -1
- package/dist/interface/assets/{VariableInput-YR8KBCWL.js → VariableInput-Dw0KbkD9.js} +1 -1
- package/dist/interface/assets/{VariableSuggestions-BF2MDSW8.js → VariableSuggestions-D5_Zu_un.js} +1 -1
- package/dist/interface/assets/{VersionsHandler-D2lhMYGG.js → VersionsHandler-BDWjtbp0.js} +1 -1
- package/dist/interface/assets/{Workers-Cn-kFp5K.js → Workers-DbnD_Bpy.js} +1 -1
- package/dist/interface/assets/api-C-NlYhuP.js +2 -0
- package/dist/interface/assets/{api-BSSGwZUW.js → api-D6SjwBWd.js} +1 -1
- package/dist/interface/assets/{auth-DuxuZzUv.js → auth-dyUBxkxf.js} +1 -1
- package/dist/interface/assets/{automations-D4BRxXp2.js → automations-BH3C3DOU.js} +1 -1
- package/dist/interface/assets/{automations-BjPRCiP3.js → automations-CrRSdJyJ.js} +1 -1
- package/dist/interface/assets/{backup-B01_Kkb-.js → backup-C2-2-LD2.js} +1 -1
- package/dist/interface/assets/{cameras-B4_XIEvq.js → cameras-Co3xGKAG.js} +1 -1
- package/dist/interface/assets/{cameras.schema-BJtNPf50.js → cameras.schema-y2YP50-k.js} +1 -1
- package/dist/interface/assets/cloudHandoff-C9HXr7Oq.js +1 -0
- package/dist/interface/assets/{deviceId-Csqx7wv1.js → deviceId-CiXrj9Di.js} +1 -1
- package/dist/interface/assets/{hasPermission-C2RWjXuT.js → hasPermission-DKTmzAJw.js} +1 -1
- package/dist/interface/assets/{instances-Etl_yihq.js → instances-BgFvZ06K.js} +1 -1
- package/dist/interface/assets/{locale-BslWmL0t.js → locale-CH0o3x5d.js} +1 -1
- package/dist/interface/assets/main-DZb_R3L7.js +3 -0
- package/dist/interface/assets/{notifications-SVoDimTP.js → notifications-DEU1TXne.js} +1 -1
- package/dist/interface/assets/{plugins-VMgnZZzG.js → plugins-Bj4_KCp7.js} +1 -1
- package/dist/interface/assets/{round-restart-alt-D3SOXMVf.js → round-restart-alt-BMdTt76H.js} +1 -1
- package/dist/interface/assets/{router-BqJLYjxq.js → router-CIvI3oge.js} +2 -2
- package/dist/interface/assets/{routerState-g4QLPAT2.js → routerState-cQknQxNw.js} +1 -1
- package/dist/interface/assets/{server-8uNYIjzr.js → server-DeMUCrCz.js} +1 -1
- package/dist/interface/assets/{shares-DsjePQGf.js → shares-B5r7Nr5g.js} +1 -1
- package/dist/interface/assets/{theme-DN8GOT_w.js → theme-kssRfqyJ.js} +1 -1
- package/dist/interface/assets/{types-B39ppbYi.js → types-BK05hngw.js} +1 -1
- package/dist/interface/assets/{ui-CEzY0rCW.js → ui-B2i8B4yr.js} +1 -1
- package/dist/interface/assets/{useBiometricCredentials-BWuRf0H0.js → useBiometricCredentials-I52MbNzM.js} +1 -1
- package/dist/interface/assets/{useCameraOptions-DLmEgMil.js → useCameraOptions-uXN6hbSO.js} +1 -1
- package/dist/interface/assets/{useCuiCameraDrawer-PokkyjqH.js → useCuiCameraDrawer-BuIrXxOt.js} +1 -1
- package/dist/interface/assets/{useCuiDialog-BEerzsp3.js → useCuiDialog-C4xS4vrs.js} +1 -1
- package/dist/interface/assets/{useFileDownload-BzheFQ77.js → useFileDownload-C_Am2BRz.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-CeW070HG.js → useLogsSocket-PUFDb8MH.js} +1 -1
- package/dist/interface/assets/{useSharedComposables-B5-Uy9Br.js → useSharedComposables-Ca_A3w0h.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-BPixdI1Y.js → useStreamStatus-CIPBILoa.js} +1 -1
- package/dist/interface/assets/{users.schema-D443yTkQ.js → users.schema-DGYmUjqk.js} +1 -1
- package/dist/interface/assets/vendor-cameraui-BABuGvhg.js +1978 -0
- package/dist/interface/assets/{vendor-core-DSNqTlQH.js → vendor-core-C6lCucBy.js} +1 -1
- package/dist/interface/assets/{vendor-primevue-CWF_imvX.js → vendor-primevue-CsC6U_Xu.js} +1 -1
- package/dist/interface/assets/{view-grid-BE5Jf7kM.js → view-grid-DM5fFhOq.js} +1 -1
- package/dist/interface/index.html +40 -40
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +3 -3
- package/dist/server/requirements.txt +1 -1
- package/dist/server/src/api/plugins/natsSubFirewall.d.ts +1 -0
- package/dist/server/src/api/plugins/natsSubFirewall.js +15 -1
- package/dist/server/src/api/plugins/natsSubFirewall.js.map +1 -1
- package/package.json +3 -3
- package/dist/interface/assets/CuiBottomSheet-3-36plJ0.js +0 -1
- package/dist/interface/assets/CuiCameraCard-DYkArUIE.js +0 -1
- package/dist/interface/assets/CuiCameraRecordings-qS2sljLl.js +0 -1
- package/dist/interface/assets/Recordings-Bdii8y2w.js +0 -1
- package/dist/interface/assets/SettingsAccount-pc1G5uya.js +0 -1
- package/dist/interface/assets/SettingsAppearance-CDlFqm-u.js +0 -1
- package/dist/interface/assets/api-CPonLnGH.js +0 -2
- package/dist/interface/assets/cloudHandoff-DR4OiIia.js +0 -1
- package/dist/interface/assets/main-QYfiMUtP.js +0 -3
- package/dist/interface/assets/vendor-cameraui-D9I8uPRL.js +0 -1978
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,D as t,E as n,S as r,T as i,_ as a,a as ee,b as te,c as ne,d as re,f as ie,g as ae,h as oe,i as se,l as ce,m as le,n as ue,o,p as de,r as fe,s as pe,t as me,u as he,v as ge,w as s,x as _e,y as ve}from"./vendor-cameraui-D9I8uPRL.js";import{S as c}from"./vendor-zxCOTbSj.js";import{_ as l,a as u,b as d,c as f,d as ye,f as be,g as xe,h as p,i as m,l as Se,m as h,n as g,o as _,p as v,r as y,s as b,t as x,u as Ce,v as S,x as C,y as we}from"./vendor-zod-V2qTUMVc.js";p({tempToken:S().trim().min(1,`Temporary token is required`),code:S().trim().min(1,`Code is required`)}).strict(),p({code:S().trim().length(6,`Code must be 6 digits`)}).strict(),p({code:S().trim().min(1,`Code is required`)}).strict(),p({code:S().trim().min(1,`Code is required`)}).strict(),p({grant_type:S().optional(),username:S().trim().min(1,`Username is required`),password:S().min(1,`Password is required`),scope:S().optional(),client_id:S().optional(),client_secret:S().optional()}),p({refresh_token:S().min(1,`Refresh token is required`)}),p({id:S()});function Te(e){let t=[`kasa://`,`nest:`,`ring:`,`tapo://`];return e.some(e=>t.some(t=>e.startsWith(t)))}var w=[`#df2a4c`,`#2a7fdf`,`#2adf7f`,`#df7f2a`,`#7f2adf`,`#2adfdf`,`#df2adf`,`#7fdf2a`];function Ee(){return w[Math.floor(Math.random()*w.length)]}function De(){return{name:`Default Zone`,points:[[0,0],[100,0],[100,100],[0,100]],type:`contain`,filter:`include`,labels:[`motion`,`person`,`vehicle`,`animal`],isPrivacyMask:!1,color:Ee()}}p({enabled:b().default(!1)}).strict();var T=S().trim().min(1,`Detection label is required`),E=we([h(),h()]),D=p({name:S().trim().min(1,`Zone Name is required`),points:E.array().min(3,`At least 3 points are required`),type:d([v(`intersect`),v(`contain`)]),filter:d([v(`include`),v(`exclude`)]),labels:T.array(),isPrivacyMask:b(),color:S().trim().regex(/^#([0-9A-Fa-f]{3}){1,2}$/,`Must be a valid hex color (e.g. #FF0000 or #F00)`).default(`#df2a4c`)}).array(),O=p({name:S().trim().min(1,`Line Name is required`),points:we([E,E]),direction:d([v(`both`),v(`a-to-b`),v(`b-to-a`)]),labels:T.array(),color:S().trim().regex(/^#([0-9A-Fa-f]{3}){1,2}$/,`Must be a valid hex color (e.g. #FF0000 or #F00)`).default(`#df2a4c`)}).array(),Oe=p({motion:p({resolution:d([v(`low`),v(`medium`),v(`high`)]),timeout:h().min(10,`Minimum 10 seconds`)}),object:p({confidence:h().min(.3,`Minimum 0.3`).max(1,`Maximum 1`)}),audio:p({minDecibels:h().min(-100,`Minimum -100 dBFS`).max(0,`Maximum 0 dBFS`),timeout:h().min(10,`Minimum 10 seconds`)}),sensor:p({timeout:h().min(10,`Minimum 10 seconds`),triggers:_(p({sensorType:S().trim().min(1,`Sensor type is required`),sensorName:S().trim().min(1,`Sensor name is required`),pluginId:S().trim().min(1,`Plugin ID is required`)})).default([])}),cascadeDetection:b().default(!0),cascadeTimeout:h().min(1,`Minimum 1 second`).max(300,`Maximum 300 seconds`).default(10),snooze:b().default(!1)}),ke={enabled:!1,targetLabels:[`person`],minConfidence:.5,triggerDeadZone:.05,returnToHome:!1,homeWaitMs:1e4},Ae=p({enabled:b().default(!1),targetLabels:S().trim().min(1,`Target label is required`).array().default([`person`]),minConfidence:h().min(.3,`Minimum 0.3`).max(1,`Maximum 1`).default(.5),triggerDeadZone:h().min(0,`Minimum 0`).max(.3,`Maximum 0.3`).default(.05),returnToHome:b().default(!1),homeWaitMs:h().min(1e3,`Minimum 1000 ms`).max(6e4,`Maximum 60000 ms`).default(1e4)}),k=d([v(`high-resolution`),v(`mid-resolution`),v(`low-resolution`),v(`snapshot`)]),je=d([v(`high-resolution`),v(`mid-resolution`),v(`low-resolution`)]),Me=d([v(`bubble://`),v(`cui://`),v(`doorbird://`),v(`dvrip://`),v(`eseecloud://`),v(`ffmpeg:`),v(`flussonic://`),v(`gopro://`),v(`hass:`),v(`homekit://`),v(`http://`),v(`https://`),v(`httpx://`),v(`isapi://`),v(`ivideon:`),v(`kasa://`),v(`nest:`),v(`onvif://`),v(`ring:`),v(`roborock://`),v(`rtmp://`),v(`rtsp://`),v(`rtspx://`),v(`tapo://`),v(`tcp://`),v(`tuya://`),v(`xiaomi://`),v(`yandex:`),v(`webrtc:`),v(`webtorrent:`),v(`wyze://`)]),Ne=Me.options.map(e=>e.value),Pe=RegExp(`^(${Ne.join(`|`)})`),Fe=S().refine(e=>{if(!Pe.test(e))return!1;try{return new URL(e),!0}catch{return!1}},{message:`Invalid URL format or unsupported protocol`}),Ie=p({_id:S().default(c()).transform(()=>c()),name:S().trim().min(1,`Camera Source Name is required`).transform(e=>e.replace(/ /g,`_`).toLowerCase()),role:k,useForSnapshot:b().default(!1),hotMode:b().default(!0),preload:b().default(!0),urls:Fe.array().min(1,`At least one valid URL is required`),childSourceId:S().trim().min(1,`Child Source ID is required`).optional()}).strict(),Le=p({_id:S().default(c()).transform(()=>c()),name:S().trim().min(1,`Camera Source Name is required`).transform(e=>e.replace(/ /g,`_`).toLowerCase()),role:k,useForSnapshot:b().default(!1),hotMode:b().default(!0),preload:b().default(!0),urls:Fe.array().min(1,`At least one valid URL is required`),childSourceId:S().trim().min(1,`Child Source ID is required`).optional()}).strict(),A=p({id:S(),name:S().trim()}),Re=p({motion:A.optional(),object:A.optional(),audio:A.optional(),face:A.optional(),licensePlate:A.optional(),ptz:A.optional(),battery:A.optional(),cameraController:A.optional(),classifier:A.array().optional(),light:A.array().optional(),siren:A.array().optional(),switch:A.array().optional(),securitySystem:A.array().optional(),contact:A.array().optional(),doorbell:A.array().optional(),hub:A.array().optional()}).strict(),ze=d([v(`auto`),v(`mse`),v(`webrtc`),v(`webrtc/tcp`)]),Be=d([v(`16:9`),v(`9:16`),v(`8:3`),v(`4:3`),v(`1:1`)]),Ve=p({fps:h().min(0,`Minimum 0 fps`).max(30,`Maximum 30 fps`)}),He=d([v(`camera`),v(`doorbell`)]),Ue=p({streamingMode:ze,streamingSource:je,aspectRatio:Be}),j=p({model:S().trim().optional(),manufacturer:S().trim().optional(),hardware:S().trim().optional(),serialNumber:S().trim().optional(),firmwareVersion:S().trim().optional(),supportUrl:S().trim().optional()});p({name:S().trim().min(1,`Camera name is required`),url:C(`Must be a valid URL`).trim().min(1,`Camera URL is required`),type:d([v(`Google`),v(`Ring`),v(`HomeKit`),v(`Onvif`),v(`Hass`),v(`GoPro`),v(`Roborock`),v(`FFmpeg`),v(`DVRip`),v(`Webtorrent`)]),username:S().trim().optional(),email:Ce(`Must be a valid email`).trim().optional(),password:S().trim().optional(),pin:S().trim().length(8,`PIN must be 8 characters long`).optional(),clientId:S().trim().optional(),clientSecret:S().trim().optional(),refreshToken:S().trim().optional(),projectId:S().trim().optional()}).strict().refine(e=>e.type===`HomeKit`?!!e.pin:!0,{message:`PIN is required for HomeKit cameras`,path:[`pin`]}).refine(e=>e.type===`Google`?!!e.clientId:!0,{message:`Client ID is required for Google cameras`,path:[`clientId`]}).refine(e=>e.type===`Google`?!!e.clientSecret:!0,{message:`Client Secret is required for Google cameras`,path:[`clientSecret`]}).refine(e=>e.type===`Google`?!!e.projectId:!0,{message:`Project ID is required for Google cameras`,path:[`projectId`]}).refine(e=>e.type===`Google`?!!e.refreshToken:!0,{message:`Refresh Token is required for Google cameras`,path:[`refreshToken`]}).refine(e=>e.type===`Ring`?!!e.email:!0,{message:`Email is required`,path:[`email`]}).refine(e=>e.type===`Roborock`?!!e.username:!0,{message:`Username is required`,path:[`username`]}).refine(e=>e.type===`Roborock`||e.type===`Ring`?!!e.password:!0,{message:`Password is required`,path:[`password`]});var We=p({id:S(),name:S().trim()}).strict(),M=p({autoRefresh:b().default(!0),ttl:h().min(10,`Minimum 10 seconds`).max(60,`Maximum 60 seconds`).default(50),interval:h().min(10,`Minimum 10 seconds`).max(60,`Maximum 60 seconds`).default(60)}).strict(),N=p({_id:S().default(c()).transform(()=>c()),nativeId:S().trim().optional(),pluginInfo:We.optional(),disabled:b().default(!1),name:S().trim().min(1,`Camera name is required`),room:S().trim().min(1,`Room is required`).default(`Default`),type:He.default(`camera`),isCloud:b().default(!1),snapshotSettings:M.default({autoRefresh:!0,ttl:50,interval:60}),info:j.default({model:`IP Camera`,manufacturer:`camera.ui`,hardware:`Camera`,serialNumber:`Unknown`,firmwareVersion:`Unknown`,supportUrl:`Unknown`}),sources:Ie.array().refine(e=>e.some(e=>e.role===`high-resolution`||e.role===`mid-resolution`||e.role===`low-resolution`),{path:[`sources[].role`],message:`One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required`}).refine(e=>e.filter(e=>e.useForSnapshot).length<=1,{message:`Only one source can be used for snapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.useForSnapshot),{message:`Snapshot source can not be used with useForSnapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.hotMode),{message:`Snapshot source can not be used with hotMode`}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.preload),{message:`Snapshot source can not be used with preload`}).refine(e=>{let t=e.map(e=>e.role).filter(Boolean);return new Set(t).size===t.length},{message:`Each source role can be assigned to only one source`,path:[`sources`]}),plugins:A.array().default([]),assignments:Re.default({}),interfaceSettings:Ue.default({streamingMode:`webrtc`,streamingSource:`high-resolution`,aspectRatio:`16:9`}),detectionZones:D.default([]),detectionLines:O.default([]),detectionSettings:Oe.default({motion:{resolution:`low`,timeout:30},object:{confidence:.5},audio:{minDecibels:-40,timeout:30},sensor:{timeout:30,triggers:[]},cascadeDetection:!0,cascadeTimeout:10,snooze:!1}),ptzAutotrack:Ae.default(ke),frameWorkerSettings:Ve.default({fps:10})}).strict();N.transform(e=>{let t=e.sources.flatMap(e=>e.urls),n=e.detectionZones.length===0?[De()]:e.detectionZones;return e.isCloud||Te(t)?{...e,isCloud:!0,detectionZones:n}:{...e,detectionZones:n}});var Ge=p({disabled:b().optional(),type:He.optional(),name:S().trim().min(1,`Camera name is required`).optional(),room:S().trim().min(1,`Room is required`).optional(),isCloud:b().optional(),snapshotSettings:M.partial().optional(),info:j.partial().optional(),sources:Le.array().refine(e=>e.some(e=>e.role===`high-resolution`||e.role===`mid-resolution`||e.role===`low-resolution`),{path:[`sources[].role`],message:`One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required`}).refine(e=>e.filter(e=>e.useForSnapshot).length<=1,{message:`Only one source can be used for snapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.useForSnapshot),{message:`Snapshot source can not be used with useForSnapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.hotMode),{message:`Snapshot source can not be used with hotMode`}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.preload),{message:`Snapshot source can not be used with preload`}).refine(e=>{let t=e.map(e=>e.role).filter(Boolean);return new Set(t).size===t.length},{message:`Each source role can be assigned to only one source`,path:[`sources`]}).optional(),plugins:A.array().optional(),assignments:Re.partial().optional(),interfaceSettings:Ue.partial().optional(),detectionZones:D.optional(),detectionLines:O.optional(),detectionSettings:Oe.partial().optional(),ptzAutotrack:Ae.partial().optional(),frameWorkerSettings:Ve.partial().optional()}).strict().transform(e=>{if(e.sources){let t=e.sources.flatMap(e=>e.urls);if(e.isCloud===!0||Te(t))return{...e,isCloud:!0}}return e});p({url:S().trim().refine(e=>!/^\s*(exec|echo|expr):/i.test(e),`Command-execution stream sources are not allowed`)}).strict(),p({cameraname:S()}),p({cameraname:S(),sourcename:S()}),p({cameraid:S(),sourcename:S()}),p({cameraname:S(),pluginname:S()}),p({cameraname:S(),scope:S(),pluginname:S()}),p({cameraname:S(),pluginname:S(),sensorId:S()}),p({cameraname:S(),scope:S(),pluginname:S(),sensorId:S()}),p({type:S().optional()}),p({video:x().optional(),audio:x().optional(),microphone:x().optional(),refresh:x().optional()}),p({forceNew:x().optional()}),p({name:S().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`),url:C(`Must be a valid URL`).trim(),credentials:p({username:S().trim().min(1,`Username is required`),password:S().min(1,`Password is required`)})}),p({name:S().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional(),url:C(`Must be a valid URL`).trim().optional(),credentials:p({username:S().trim().min(1,`Username is required`),password:S().min(1,`Password is required`)}).nullable().optional()}),p({id:S().min(1,`ID is required`)});var Ke=/^((@[\w-.]*)\/)?(camera-ui-[\w-]*)$/,qe=function(e){return e.READY=`ready`,e.STARTING=`starting`,e.STARTED=`started`,e.STOPPING=`stopping`,e.STOPPED=`stopped`,e.ERROR=`error`,e.UNKNOWN=`unknown`,e.DISABLED=`disabled`,e}({});function P(e){return e.mimetype!==void 0}function Je(e){return P(e)?Buffer.byteLength(e._buf):e.size}function Ye(e){return P(e)?e.mimetype:e.type}function F(e,t,n,r){return f().refine(t=>Je(t)<=e,n).refine(e=>t.includes(Ye(e)),r)}var Xe=p({start:g().optional(),page:g().optional(),pageSize:g().optional()}),I=[`image/jpeg`,`image/png`],Ze=1024*1024*2,L=[`video/mp4`,`video/quicktime`],R=1024*1024*10,z=[`audio/mpeg`,`audio/wav`,`audio/ogg`],B=1024*1024*2,V=()=>F(Ze,I,`Max file size is 2 MB`,`.jpeg and .png files are accepted`),H=f().transform(e=>JSON.parse(e.value)),U=f().transform(e=>JSON.parse(e.value)),Qe=f().transform(e=>JSON.parse(e.value));p({pluginname:S().trim().refine(e=>Ke.test(e),`Not a valid plugin name`),pluginversion:S().trim().refine(e=>/^[a-z][\w-]*$/i.test(e)||/^v?\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/i.test(e),`Not a valid plugin version (expected a dist-tag or exact semver)`).optional().default(`latest`)}).strict(),p({actionId:S(),payload:u()}).strict(),l(u(),u()),p({upload:V(),metadata:U,config:H}),p({upload:F(B,z,`Max file size is 2 MB`,`.mp3, .wav and .ogg files are accepted`),metadata:Qe,config:H}),p({upload:F(R,L,`Max file size is 5 MB`,`.mp4 files are accepted`),config:H}),p({upload:V(),metadata:U,config:H}),p({upload:V(),metadata:U,config:H}),p({upload:V(),metadata:U,config:H}),p({pluginname:S()}),p({scope:S(),pluginname:S()}),Xe.extend({pluginname:S().trim().optional()}),p({removeStorage:x().optional()}),p({pluginversion:S().trim().optional()});var $e=p({enabled:b().optional(),directEnabled:b().optional(),directMode:m([`cloudflare`,`customDomain`]).optional(),customDomain:p({url:C(`Must be a valid URL`).trim().nullable()}).strict().optional(),cloudflare:p({mode:m([`quick`,`token`,`managed`]).optional(),hostname:S().trim().min(1,`Hostname is required`).max(253,`Hostname cannot be more than 253 characters`).nullable().optional(),token:S().trim().min(1,`Token is required`).nullable().optional()}).strict().optional()}).strict().refine(e=>!(e.directMode===`customDomain`&&!e.customDomain?.url),{message:`Custom domain URL is required when directMode is "customDomain"`,path:[`customDomain`,`url`]}).refine(e=>!(e.cloudflare?.mode===`token`&&!e.cloudflare?.token),{message:`Token is required when cloudflare.mode is "token"`,path:[`cloudflare`,`token`]}).refine(e=>!(e.cloudflare?.mode&&e.cloudflare.mode!==`quick`&&!e.cloudflare?.hostname),{message:`Hostname is required when cloudflare.mode is "token" or "managed"`,path:[`cloudflare`,`hostname`]});p({mode:m([`cloudflare`,`customDomain`])}).strict(),p({hostname:S().trim().min(1,`Hostname is required`).max(253,`Hostname cannot be more than 253 characters`).regex(/^[a-z0-9.-]+\.[a-z]{2,}$/i,`Invalid hostname`)}).strict(),p({name:S().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional()}).strict(),p({name:S().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional()}).strict(),p({name:S().trim().min(1,`Server name is required`).max(100,`Server name cannot be more than 100 characters`)}).strict(),p({version:S().trim().optional().default(`latest`)}).strict();var et=p({serverAddresses:d([ye().trim(),be().trim()]).array().default([])}).strict();l(S(),u()),p({key:S()}).strict(),p({key:S(),payload:u()}).strict();var tt=[`image/jpeg`,`image/jpg`,`image/png`],nt=1024*1024*5,rt=p({index:h(),cameraId:S(),colSpan:h().optional(),rowSpan:h().optional(),x:h().optional(),y:h().optional()}),it=d([v(1),v(4),v(6),v(7),v(9),v(10),v(12),v(13),v(15),v(16),v(20),v(26)]),at=d([v(`dnd`),v(`view`)]),ot=p({_id:S().default(c()).transform(()=>c()),name:S().trim().min(1,`Layout name is required`),viewSize:it,cameras:rt.array(),type:at});p({name:S().trim().min(1,`Layout name is required`),viewSize:it,cameras:rt.array()}).partial().optional();var st=p({views:ot.array()}),ct=m([`contact`,`temperature`,`humidity`,`occupancy`,`smoke`,`leak`,`light`,`siren`,`switch`,`lock`,`garage`,`doorbell`,`securitySystem`,`battery`]),lt=Se(`type`,[p({_id:S().default(c()).transform(()=>c()),type:v(`camera`),cameraId:S(),points:E}),p({_id:S().default(c()).transform(()=>c()),type:v(`sensor`),sensorType:ct,sensorName:S(),sensorPluginId:S(),sensorCameraId:S(),points:E})]);d([p({type:v(`camera`),cameraId:S(),points:E}).partial(),p({type:v(`sensor`),sensorType:ct,sensorName:S(),sensorPluginId:S(),sensorCameraId:S(),points:E}).partial()]).optional();var ut=p({shortcuts:lt.array()}),dt=p({camview:st,cameras:l(S().trim(),ut)}),W=S().trim().min(10,`Password must be at least 10 characters long`).regex(/[A-Z]/,`Password must contain at least one uppercase letter`).regex(/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/,`Password must contain at least one special character (!@#$%^&*()_+-=[]{};:'"\\|,.<>/?)`).max(32,`Password cannot be more than 32 characters`),ft=p({_id:S().default(c()).transform(()=>c()),username:S().trim().min(1,`Username is required`),password:W,passwordConfirm:S().trim().min(1,`Please confirm your password`),role:d([v(`admin`),v(`user`)]),firstLogin:b().default(!0),preferences:dt.default({camview:{views:[]},cameras:{}})}).strict().refine(e=>e.password===e.passwordConfirm,{path:[`passwordConfirm`],message:`Passwords do not match`});p({username:S().trim().min(1,`Username is required`),password:S().trim().min(1,`Password is required`),kind:m([`native`,`web`]),persistent:b().default(!1),device:p({id:S().min(1,`Device id is required`).max(128,`Device id cannot be more than 128 characters`),name:S().trim().min(1,`Device name is required`).max(100,`Device name cannot be more than 100 characters`)})}).strict();var pt=p({username:S().trim().min(1,`Username is required`).optional(),password:W.optional(),passwordConfirm:S().trim().optional(),role:d([v(`admin`),v(`user`)]).optional(),upload:xe(F(nt,tt,`Max file size is 5MB.`,`.jpg, .jpeg, .png files are accepted.`)),firstLogin:b().optional(),preferences:dt.partial().optional()}).strict().refine(e=>e.password===e.passwordConfirm,{path:[`passwordConfirm`],message:`Passwords do not match`});p({username:S()}),p({username:S(),cameraname:S()}),p({username:S(),cameraname:S(),shortcutid:S()}),p({username:S(),viewid:S()}),p({username:S()});var G={[t.Motion]:{category:n.Sensor,assignmentKey:`motion`,multiProvider:!1,isDetectionType:!0},[t.Object]:{category:n.Sensor,assignmentKey:`object`,multiProvider:!1,isDetectionType:!0},[t.Audio]:{category:n.Sensor,assignmentKey:`audio`,multiProvider:!1,isDetectionType:!0},[t.Face]:{category:n.Sensor,assignmentKey:`face`,multiProvider:!1,isDetectionType:!0},[t.LicensePlate]:{category:n.Sensor,assignmentKey:`licensePlate`,multiProvider:!1,isDetectionType:!0},[t.Classifier]:{category:n.Sensor,assignmentKey:`classifier`,multiProvider:!0,isDetectionType:!0},[t.Clip]:{category:n.Sensor,assignmentKey:`clip`,multiProvider:!1,isDetectionType:!0},[t.Contact]:{category:n.Sensor,assignmentKey:`contact`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`detected`,value:!0,sustained:!0}},[t.Light]:{category:n.Control,assignmentKey:`light`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`on`,value:!0,sustained:!0}},[t.Siren]:{category:n.Control,assignmentKey:`siren`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`active`,value:!0,sustained:!0}},[t.Switch]:{category:n.Control,assignmentKey:`switch`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`on`,value:!0,sustained:!0}},[t.PTZ]:{category:n.Control,assignmentKey:`ptz`,multiProvider:!1,isDetectionType:!1},[t.Lock]:{category:n.Control,assignmentKey:`lock`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`currentState`,value:1,sustained:!0}},[t.SecuritySystem]:{category:n.Control,assignmentKey:`securitySystem`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`currentState`,value:4,sustained:!0}},[t.Doorbell]:{category:n.Trigger,assignmentKey:`doorbell`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`ring`,value:!0,sustained:!1}},[t.Temperature]:{category:n.Info,assignmentKey:`temperature`,multiProvider:!0,isDetectionType:!1},[t.Humidity]:{category:n.Info,assignmentKey:`humidity`,multiProvider:!0,isDetectionType:!1},[t.Occupancy]:{category:n.Sensor,assignmentKey:`occupancy`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`detected`,value:!0,sustained:!0}},[t.Smoke]:{category:n.Sensor,assignmentKey:`smoke`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`detected`,value:!0,sustained:!0}},[t.Leak]:{category:n.Sensor,assignmentKey:`leak`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`detected`,value:!0,sustained:!0}},[t.Garage]:{category:n.Control,assignmentKey:`garage`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`currentState`,value:0,sustained:!0}},[t.Battery]:{category:n.Info,assignmentKey:`battery`,multiProvider:!1,isDetectionType:!1}};t.Battery,s.Charging,e.Charging,s.Low,e.LowBattery,t.Light,le.Brightness,de.Brightness,t.Siren,o.Volume,ee.Volume;function mt(){return Object.entries(G).filter(([,e])=>e.multiProvider).map(([e])=>e)}function ht(){return Object.entries(G).filter(([,e])=>e.isDetectionType).map(([e])=>e)}function gt(e){return G[e].assignmentKey}function _t(){return Object.entries(G).filter(([,e])=>e.category===n.Sensor&&!e.multiProvider).map(([e])=>e)}function vt(){return Object.entries(G).filter(([,e])=>!e.multiProvider&&e.category!==n.Sensor).map(([e])=>e)}function yt(){return Object.entries(G).filter(([,e])=>e.multiProvider).map(([e])=>e)}function bt(e){return!G[e].multiProvider}var xt={[t.Motion]:Object.values(re),[t.Object]:Object.values(he),[t.Audio]:Object.values(i),[t.Face]:Object.values(ve),[t.LicensePlate]:Object.values(oe),[t.Classifier]:Object.values(r),[t.Clip]:[],[t.Contact]:Object.values(_e),[t.Temperature]:Object.values(ue),[t.Humidity]:Object.values(a),[t.Occupancy]:Object.values(ce),[t.Smoke]:Object.values(se),[t.Leak]:Object.values(ae),[t.Light]:Object.values(le),[t.Siren]:Object.values(o),[t.Switch]:Object.values(fe),[t.Lock]:Object.values(ie),[t.Garage]:Object.values(ge),[t.PTZ]:Object.values(ne),[t.SecuritySystem]:Object.values(pe),[t.Doorbell]:Object.values(te),[t.Battery]:Object.values(s)};function St(e){return xt[e]??[]}new Set(mt()),new Set(ht());var Ct=`bubble://.cui://.doorbird://.dvrip://.echo:.eseecloud://.exec:.expr:.ffmpeg:.flussonic://.gopro://.hass:.homekit://.http://.https://.httpx://.isapi://.ivideon:.kasa://.nest:.onvif://.ring:.roborock://.rtmp://.rtsp://.rtspx://.tapo://.tcp://.tuya://.xiaomi://.yandex:.webrtc:.webtorrent:.wyze://`.split(`.`),wt=[`#backchannel=`,`#header=`,`#media=audio`,`#media=video`,`#timeout=10`,`#timeout=20`,`#timeout=30`,`#transport=`],Tt=`#audio=aac.#audio=aac/16000.#audio=mp3.#audio=opus.#audio=pcm.#audio=pcm/8000.#audio=pcm/16000.#audio=pcm/48000.#audio=pcma.#audio=pcma/8000.#audio=pcma/16000.#audio=pcma/48000.#audio=pcml.#audio=pcml/8000.#audio=pcml/44100.#audio=pcmu.#audio=pcmu/8000.#audio=pcmu/16000.#audio=pcmu/48000.#drawtext.#hardware.#hardware=cuda.#hardware=dxva2.#hardware=rkmpp.#hardware=v4l2m2m.#hardware=vaapi.#hardware=videotoolbox.#height=.#raw=.#rotate=-90.#rotate=90.#rotate=180.#rotate=270.#video=copy.#video=h264.#video=h265.#video=mjpeg.#width=`.split(`.`),Et=[`client_id=`,`client_private=`,`device_id=`,`device_public=`],Dt=[`#header=`],Ot=[`client_id=`,`client_secret=`,`refresh_token=`,`project_id=`,`device_id=`],kt=[`device_id=`,`refresh_token=`],At=[`#client_id=`,`#format=openipc`,`#format=wyze`,`#format=kinesis`,`#ice_servers=`];function jt(e){return e.type===`string`&&!(`enum`in e)}function Mt(e){return e.type===`number`}function Nt(e){return e.type===`boolean`}function K(e){return e.type===`string`&&`enum`in e}function Pt(e){return e.type===`array`}function q(e){return e.type===`button`}function J(e){return e.type===`submit`}function Ft(e){return jt(e)&&(!e.format||e.format!==`qrCode`&&e.format!==`image`)}var Y=(e,t)=>{let n=Q(t,e.key),r=e.value;switch(e.operator??`eq`){case`eq`:return n===r;case`neq`:return n==null||n===``?!1:n!==r;case`gt`:return typeof n==`number`&&typeof r==`number`&&n>r;case`lt`:return typeof n==`number`&&typeof r==`number`&&n<r;case`in`:return(Array.isArray(r)?r:[r]).includes(n);case`nin`:return n==null||n===``?!1:!(Array.isArray(r)?r:[r]).includes(n);default:return!0}};function X(e,t){return Array.isArray(e)?e.every(e=>Y(e,t)):Y(e,t)}function It(e,t){if(!e||Object.keys(e).length===0)return!0;let n=t.filter(e=>!q(e)&&!J(e));for(let t of n){let n=Q(e,t.key),r=Z(t);if(n!==void 0&&!me(n,r,!0))return!1}return!0}function Z(e){if(`defaultValue`in e&&e.defaultValue!==void 0)return e.defaultValue;switch(e.type){case`string`:return K(e)?e.multiple?[]:e.required?e.enum[0]:``:``;case`number`:return 0;case`boolean`:return!1;case`array`:return[];default:return}}function Lt(e){let t={};for(let n of e)q(n)||J(n)||(t[n.key]=Z(n));return t}function Q(e={},t){if(!t.includes(`.`)&&!t.includes(`[`))return e[t];let n=t.split(`.`).reduce((e,t)=>{if(t.includes(`[`)){let[n,r]=t.split(`[`);e.push(n,r.slice(0,-1))}else e.push(t);return e},[]),r=e;for(let e of n){if(r==null)return;r=r[e]}return r}function Rt(e,t,n){if(!t.includes(`.`)&&!t.includes(`[`)){e[t]=n;return}let r=t.split(`.`).reduce((e,t)=>{if(t.includes(`[`)){let[n,r]=t.split(`[`);e.push(n,r.slice(0,-1))}else e.push(t);return e},[]),i=r.pop();if(!i)return;let a=e;for(let e of r){if(a[e]===void 0||a[e]===null){let t=r[r.indexOf(e)+1];a[e]=isNaN(Number(t))?{}:[]}a=a[e]}a[i]=n}function zt(e,t){let n={};for(let r of e)if(`store`in r&&r.store&&!q(r)&&!J(r)){let e=Q(t,r.key);e!==void 0&&(n[r.key]=e)}return n}function Bt(e,t){return t?e.filter(e=>`group`in e&&e.group===t):e}function Vt(e,t){let n=Bt(e,t);return n.length>0&&n.every(e=>`readonly`in e&&e.readonly)}function Ht(e,t){let n=Bt(e,t);return n.length>0&&n.some(e=>`store`in e&&e.store)}function Ut(e,t){if(!t)return!0;let n={"date-time":e=>/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d+)?(Z|[+-]\d{2}:\d{2})?$/.test(e),date:e=>/^\d{4}-\d{2}-\d{2}$/.test(e),time:e=>/^([01]?[0-9]|2[0-3]):([0-5][0-9])(:([0-5][0-9]))?$/.test(e),email:e=>/^\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b$/.test(e),uuid:e=>/^[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(e),ipv4:e=>/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/.test(e),ipv6:e=>/^\s*([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4})\s*$/.test(e)};return t in n?n[t](e):!0}function $(e){if(q(e)||J(e))return u();switch(e.type){case`string`:if(K(e))if(e.multiple){let t=_(S().trim().refine(t=>e.enum.includes(t),{error:`Invalid selection`}));return e.required&&(t=t.min(1,{error:`Required`})),e.required?t:t.optional()}else{let t=m(e.enum);return e.required?t:t.optional()}let t=S().trim();return e.required&&(t=t.nonempty(`Required`)),e.minLength!==void 0&&(t=t.min(e.minLength)),e.maxLength!==void 0&&(t=t.max(e.maxLength)),e.format&&(t=t.refine(t=>!t||t.trim()===``||Ut(t,e.format),{message:`Invalid ${e.format} format`})),e.required?t:t.optional();case`number`:let n=h();return e.minimum!==void 0&&(n=n.min(e.minimum)),e.maximum!==void 0&&(n=n.max(e.maximum)),e.required&&(n=n.refine(e=>e!=null,{error:`Required`})),e.required?n:n.optional();case`boolean`:return e.required?b():b().optional();case`array`:let r=_($(e.items));return e.required?r:r.optional();default:return e.required?u():u().optional()}}var Wt=(e,t,n)=>t.filter(e=>`group`in e&&e.group===n).some(t=>{let n=e[t.key];return n!=null&&n!==``});function Gt(e){let t={},n=new Set;e.forEach(e=>{`group`in e&&e.group&&n.add(e.group)}),e.forEach(e=>{if(!q(e)&&!J(e)){let n=`group`in e&&e.group,r=`condition`in e&&e.condition;(n||r)&&e.required?t[e.key]=$({...e,required:!1}):t[e.key]=$(e)}});let r=p(t),i=e.filter(e=>`condition`in e&&e.condition&&`required`in e&&e.required&&!q(e)&&!J(e));return(n.size>0||i.length>0)&&(r=r.superRefine((t,r)=>{for(let i of n)if(Wt(t,e,i)){let n=e.filter(e=>`group`in e&&e.group===i);for(let e of n)if(`required`in e&&e.required){if(`condition`in e&&e.condition&&!X(e.condition,t))continue;let n=t[e.key];(n==null||n===``)&&r.addIssue({code:y.custom,message:`Required`,path:[e.key]})}}for(let e of i)if(!(`group`in e&&e.group)&&`condition`in e&&e.condition&&X(e.condition,t)){let n=t[e.key];(n==null||n===``)&&r.addIssue({code:y.custom,message:`Required`,path:[e.key]})}})),r}var Kt=function(e){return e.READY=`ready`,e.RESTARTING=`restarting`,e.STARTING=`starting`,e.STARTED=`started`,e.STOPPED=`stopped`,e.ERROR=`error`,e.UNKNOWN=`unknown`,e}({});export{Ge as $,gt as A,et as B,Ot as C,At as D,Ct as E,nt as F,B as G,z as H,ft as I,N as J,R as K,W as L,_t as M,St as N,G as O,bt as P,k as Q,pt as R,Dt as S,wt as T,L as U,$e as V,I as W,D as X,O as Y,Me as Z,Vt as _,zt as a,Tt as b,Pt as c,It as d,K as f,Ft as g,J as h,Z as i,vt as j,yt as k,Nt as l,jt as m,X as n,Gt as o,Mt as p,qe as q,Lt as r,Q as s,Kt as t,q as u,Ht as v,kt as w,Et as x,Rt as y,ot as z};
|
|
1
|
+
import{C as e,D as t,E as n,S as r,T as i,_ as a,a as ee,b as te,c as ne,d as re,f as ie,g as ae,h as oe,i as se,l as ce,m as le,n as ue,o,p as de,r as fe,s as pe,t as me,u as he,v as ge,w as s,x as _e,y as ve}from"./vendor-cameraui-BABuGvhg.js";import{S as c}from"./vendor-zxCOTbSj.js";import{_ as l,a as u,b as d,c as f,d as ye,f as be,g as xe,h as p,i as m,l as Se,m as h,n as g,o as _,p as v,r as y,s as b,t as x,u as Ce,v as S,x as C,y as we}from"./vendor-zod-V2qTUMVc.js";p({tempToken:S().trim().min(1,`Temporary token is required`),code:S().trim().min(1,`Code is required`)}).strict(),p({code:S().trim().length(6,`Code must be 6 digits`)}).strict(),p({code:S().trim().min(1,`Code is required`)}).strict(),p({code:S().trim().min(1,`Code is required`)}).strict(),p({grant_type:S().optional(),username:S().trim().min(1,`Username is required`),password:S().min(1,`Password is required`),scope:S().optional(),client_id:S().optional(),client_secret:S().optional()}),p({refresh_token:S().min(1,`Refresh token is required`)}),p({id:S()});function Te(e){let t=[`kasa://`,`nest:`,`ring:`,`tapo://`];return e.some(e=>t.some(t=>e.startsWith(t)))}var w=[`#df2a4c`,`#2a7fdf`,`#2adf7f`,`#df7f2a`,`#7f2adf`,`#2adfdf`,`#df2adf`,`#7fdf2a`];function Ee(){return w[Math.floor(Math.random()*w.length)]}function De(){return{name:`Default Zone`,points:[[0,0],[100,0],[100,100],[0,100]],type:`contain`,filter:`include`,labels:[`motion`,`person`,`vehicle`,`animal`],isPrivacyMask:!1,color:Ee()}}p({enabled:b().default(!1)}).strict();var T=S().trim().min(1,`Detection label is required`),E=we([h(),h()]),D=p({name:S().trim().min(1,`Zone Name is required`),points:E.array().min(3,`At least 3 points are required`),type:d([v(`intersect`),v(`contain`)]),filter:d([v(`include`),v(`exclude`)]),labels:T.array(),isPrivacyMask:b(),color:S().trim().regex(/^#([0-9A-Fa-f]{3}){1,2}$/,`Must be a valid hex color (e.g. #FF0000 or #F00)`).default(`#df2a4c`)}).array(),O=p({name:S().trim().min(1,`Line Name is required`),points:we([E,E]),direction:d([v(`both`),v(`a-to-b`),v(`b-to-a`)]),labels:T.array(),color:S().trim().regex(/^#([0-9A-Fa-f]{3}){1,2}$/,`Must be a valid hex color (e.g. #FF0000 or #F00)`).default(`#df2a4c`)}).array(),Oe=p({motion:p({resolution:d([v(`low`),v(`medium`),v(`high`)]),timeout:h().min(10,`Minimum 10 seconds`)}),object:p({confidence:h().min(.3,`Minimum 0.3`).max(1,`Maximum 1`)}),audio:p({minDecibels:h().min(-100,`Minimum -100 dBFS`).max(0,`Maximum 0 dBFS`),timeout:h().min(10,`Minimum 10 seconds`)}),sensor:p({timeout:h().min(10,`Minimum 10 seconds`),triggers:_(p({sensorType:S().trim().min(1,`Sensor type is required`),sensorName:S().trim().min(1,`Sensor name is required`),pluginId:S().trim().min(1,`Plugin ID is required`)})).default([])}),cascadeDetection:b().default(!0),cascadeTimeout:h().min(1,`Minimum 1 second`).max(300,`Maximum 300 seconds`).default(10),snooze:b().default(!1)}),ke={enabled:!1,targetLabels:[`person`],minConfidence:.5,triggerDeadZone:.05,returnToHome:!1,homeWaitMs:1e4},Ae=p({enabled:b().default(!1),targetLabels:S().trim().min(1,`Target label is required`).array().default([`person`]),minConfidence:h().min(.3,`Minimum 0.3`).max(1,`Maximum 1`).default(.5),triggerDeadZone:h().min(0,`Minimum 0`).max(.3,`Maximum 0.3`).default(.05),returnToHome:b().default(!1),homeWaitMs:h().min(1e3,`Minimum 1000 ms`).max(6e4,`Maximum 60000 ms`).default(1e4)}),k=d([v(`high-resolution`),v(`mid-resolution`),v(`low-resolution`),v(`snapshot`)]),je=d([v(`high-resolution`),v(`mid-resolution`),v(`low-resolution`)]),Me=d([v(`bubble://`),v(`cui://`),v(`doorbird://`),v(`dvrip://`),v(`eseecloud://`),v(`ffmpeg:`),v(`flussonic://`),v(`gopro://`),v(`hass:`),v(`homekit://`),v(`http://`),v(`https://`),v(`httpx://`),v(`isapi://`),v(`ivideon:`),v(`kasa://`),v(`nest:`),v(`onvif://`),v(`ring:`),v(`roborock://`),v(`rtmp://`),v(`rtsp://`),v(`rtspx://`),v(`tapo://`),v(`tcp://`),v(`tuya://`),v(`xiaomi://`),v(`yandex:`),v(`webrtc:`),v(`webtorrent:`),v(`wyze://`)]),Ne=Me.options.map(e=>e.value),Pe=RegExp(`^(${Ne.join(`|`)})`),Fe=S().refine(e=>{if(!Pe.test(e))return!1;try{return new URL(e),!0}catch{return!1}},{message:`Invalid URL format or unsupported protocol`}),Ie=p({_id:S().default(c()).transform(()=>c()),name:S().trim().min(1,`Camera Source Name is required`).transform(e=>e.replace(/ /g,`_`).toLowerCase()),role:k,useForSnapshot:b().default(!1),hotMode:b().default(!0),preload:b().default(!0),urls:Fe.array().min(1,`At least one valid URL is required`),childSourceId:S().trim().min(1,`Child Source ID is required`).optional()}).strict(),Le=p({_id:S().default(c()).transform(()=>c()),name:S().trim().min(1,`Camera Source Name is required`).transform(e=>e.replace(/ /g,`_`).toLowerCase()),role:k,useForSnapshot:b().default(!1),hotMode:b().default(!0),preload:b().default(!0),urls:Fe.array().min(1,`At least one valid URL is required`),childSourceId:S().trim().min(1,`Child Source ID is required`).optional()}).strict(),A=p({id:S(),name:S().trim()}),Re=p({motion:A.optional(),object:A.optional(),audio:A.optional(),face:A.optional(),licensePlate:A.optional(),ptz:A.optional(),battery:A.optional(),cameraController:A.optional(),classifier:A.array().optional(),light:A.array().optional(),siren:A.array().optional(),switch:A.array().optional(),securitySystem:A.array().optional(),contact:A.array().optional(),doorbell:A.array().optional(),hub:A.array().optional()}).strict(),ze=d([v(`auto`),v(`mse`),v(`webrtc`),v(`webrtc/tcp`)]),Be=d([v(`16:9`),v(`9:16`),v(`8:3`),v(`4:3`),v(`1:1`)]),Ve=p({fps:h().min(0,`Minimum 0 fps`).max(30,`Maximum 30 fps`)}),He=d([v(`camera`),v(`doorbell`)]),Ue=p({streamingMode:ze,streamingSource:je,aspectRatio:Be}),j=p({model:S().trim().optional(),manufacturer:S().trim().optional(),hardware:S().trim().optional(),serialNumber:S().trim().optional(),firmwareVersion:S().trim().optional(),supportUrl:S().trim().optional()});p({name:S().trim().min(1,`Camera name is required`),url:C(`Must be a valid URL`).trim().min(1,`Camera URL is required`),type:d([v(`Google`),v(`Ring`),v(`HomeKit`),v(`Onvif`),v(`Hass`),v(`GoPro`),v(`Roborock`),v(`FFmpeg`),v(`DVRip`),v(`Webtorrent`)]),username:S().trim().optional(),email:Ce(`Must be a valid email`).trim().optional(),password:S().trim().optional(),pin:S().trim().length(8,`PIN must be 8 characters long`).optional(),clientId:S().trim().optional(),clientSecret:S().trim().optional(),refreshToken:S().trim().optional(),projectId:S().trim().optional()}).strict().refine(e=>e.type===`HomeKit`?!!e.pin:!0,{message:`PIN is required for HomeKit cameras`,path:[`pin`]}).refine(e=>e.type===`Google`?!!e.clientId:!0,{message:`Client ID is required for Google cameras`,path:[`clientId`]}).refine(e=>e.type===`Google`?!!e.clientSecret:!0,{message:`Client Secret is required for Google cameras`,path:[`clientSecret`]}).refine(e=>e.type===`Google`?!!e.projectId:!0,{message:`Project ID is required for Google cameras`,path:[`projectId`]}).refine(e=>e.type===`Google`?!!e.refreshToken:!0,{message:`Refresh Token is required for Google cameras`,path:[`refreshToken`]}).refine(e=>e.type===`Ring`?!!e.email:!0,{message:`Email is required`,path:[`email`]}).refine(e=>e.type===`Roborock`?!!e.username:!0,{message:`Username is required`,path:[`username`]}).refine(e=>e.type===`Roborock`||e.type===`Ring`?!!e.password:!0,{message:`Password is required`,path:[`password`]});var We=p({id:S(),name:S().trim()}).strict(),M=p({autoRefresh:b().default(!0),ttl:h().min(10,`Minimum 10 seconds`).max(60,`Maximum 60 seconds`).default(50),interval:h().min(10,`Minimum 10 seconds`).max(60,`Maximum 60 seconds`).default(60)}).strict(),N=p({_id:S().default(c()).transform(()=>c()),nativeId:S().trim().optional(),pluginInfo:We.optional(),disabled:b().default(!1),name:S().trim().min(1,`Camera name is required`),room:S().trim().min(1,`Room is required`).default(`Default`),type:He.default(`camera`),isCloud:b().default(!1),snapshotSettings:M.default({autoRefresh:!0,ttl:50,interval:60}),info:j.default({model:`IP Camera`,manufacturer:`camera.ui`,hardware:`Camera`,serialNumber:`Unknown`,firmwareVersion:`Unknown`,supportUrl:`Unknown`}),sources:Ie.array().refine(e=>e.some(e=>e.role===`high-resolution`||e.role===`mid-resolution`||e.role===`low-resolution`),{path:[`sources[].role`],message:`One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required`}).refine(e=>e.filter(e=>e.useForSnapshot).length<=1,{message:`Only one source can be used for snapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.useForSnapshot),{message:`Snapshot source can not be used with useForSnapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.hotMode),{message:`Snapshot source can not be used with hotMode`}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.preload),{message:`Snapshot source can not be used with preload`}).refine(e=>{let t=e.map(e=>e.role).filter(Boolean);return new Set(t).size===t.length},{message:`Each source role can be assigned to only one source`,path:[`sources`]}),plugins:A.array().default([]),assignments:Re.default({}),interfaceSettings:Ue.default({streamingMode:`webrtc`,streamingSource:`high-resolution`,aspectRatio:`16:9`}),detectionZones:D.default([]),detectionLines:O.default([]),detectionSettings:Oe.default({motion:{resolution:`low`,timeout:30},object:{confidence:.5},audio:{minDecibels:-40,timeout:30},sensor:{timeout:30,triggers:[]},cascadeDetection:!0,cascadeTimeout:10,snooze:!1}),ptzAutotrack:Ae.default(ke),frameWorkerSettings:Ve.default({fps:10})}).strict();N.transform(e=>{let t=e.sources.flatMap(e=>e.urls),n=e.detectionZones.length===0?[De()]:e.detectionZones;return e.isCloud||Te(t)?{...e,isCloud:!0,detectionZones:n}:{...e,detectionZones:n}});var Ge=p({disabled:b().optional(),type:He.optional(),name:S().trim().min(1,`Camera name is required`).optional(),room:S().trim().min(1,`Room is required`).optional(),isCloud:b().optional(),snapshotSettings:M.partial().optional(),info:j.partial().optional(),sources:Le.array().refine(e=>e.some(e=>e.role===`high-resolution`||e.role===`mid-resolution`||e.role===`low-resolution`),{path:[`sources[].role`],message:`One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required`}).refine(e=>e.filter(e=>e.useForSnapshot).length<=1,{message:`Only one source can be used for snapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.useForSnapshot),{message:`Snapshot source can not be used with useForSnapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.hotMode),{message:`Snapshot source can not be used with hotMode`}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.preload),{message:`Snapshot source can not be used with preload`}).refine(e=>{let t=e.map(e=>e.role).filter(Boolean);return new Set(t).size===t.length},{message:`Each source role can be assigned to only one source`,path:[`sources`]}).optional(),plugins:A.array().optional(),assignments:Re.partial().optional(),interfaceSettings:Ue.partial().optional(),detectionZones:D.optional(),detectionLines:O.optional(),detectionSettings:Oe.partial().optional(),ptzAutotrack:Ae.partial().optional(),frameWorkerSettings:Ve.partial().optional()}).strict().transform(e=>{if(e.sources){let t=e.sources.flatMap(e=>e.urls);if(e.isCloud===!0||Te(t))return{...e,isCloud:!0}}return e});p({url:S().trim().refine(e=>!/^\s*(exec|echo|expr):/i.test(e),`Command-execution stream sources are not allowed`)}).strict(),p({cameraname:S()}),p({cameraname:S(),sourcename:S()}),p({cameraid:S(),sourcename:S()}),p({cameraname:S(),pluginname:S()}),p({cameraname:S(),scope:S(),pluginname:S()}),p({cameraname:S(),pluginname:S(),sensorId:S()}),p({cameraname:S(),scope:S(),pluginname:S(),sensorId:S()}),p({type:S().optional()}),p({video:x().optional(),audio:x().optional(),microphone:x().optional(),refresh:x().optional()}),p({forceNew:x().optional()}),p({name:S().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`),url:C(`Must be a valid URL`).trim(),credentials:p({username:S().trim().min(1,`Username is required`),password:S().min(1,`Password is required`)})}),p({name:S().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional(),url:C(`Must be a valid URL`).trim().optional(),credentials:p({username:S().trim().min(1,`Username is required`),password:S().min(1,`Password is required`)}).nullable().optional()}),p({id:S().min(1,`ID is required`)});var Ke=/^((@[\w-.]*)\/)?(camera-ui-[\w-]*)$/,qe=function(e){return e.READY=`ready`,e.STARTING=`starting`,e.STARTED=`started`,e.STOPPING=`stopping`,e.STOPPED=`stopped`,e.ERROR=`error`,e.UNKNOWN=`unknown`,e.DISABLED=`disabled`,e}({});function P(e){return e.mimetype!==void 0}function Je(e){return P(e)?Buffer.byteLength(e._buf):e.size}function Ye(e){return P(e)?e.mimetype:e.type}function F(e,t,n,r){return f().refine(t=>Je(t)<=e,n).refine(e=>t.includes(Ye(e)),r)}var Xe=p({start:g().optional(),page:g().optional(),pageSize:g().optional()}),I=[`image/jpeg`,`image/png`],Ze=1024*1024*2,L=[`video/mp4`,`video/quicktime`],R=1024*1024*10,z=[`audio/mpeg`,`audio/wav`,`audio/ogg`],B=1024*1024*2,V=()=>F(Ze,I,`Max file size is 2 MB`,`.jpeg and .png files are accepted`),H=f().transform(e=>JSON.parse(e.value)),U=f().transform(e=>JSON.parse(e.value)),Qe=f().transform(e=>JSON.parse(e.value));p({pluginname:S().trim().refine(e=>Ke.test(e),`Not a valid plugin name`),pluginversion:S().trim().refine(e=>/^[a-z][\w-]*$/i.test(e)||/^v?\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/i.test(e),`Not a valid plugin version (expected a dist-tag or exact semver)`).optional().default(`latest`)}).strict(),p({actionId:S(),payload:u()}).strict(),l(u(),u()),p({upload:V(),metadata:U,config:H}),p({upload:F(B,z,`Max file size is 2 MB`,`.mp3, .wav and .ogg files are accepted`),metadata:Qe,config:H}),p({upload:F(R,L,`Max file size is 5 MB`,`.mp4 files are accepted`),config:H}),p({upload:V(),metadata:U,config:H}),p({upload:V(),metadata:U,config:H}),p({upload:V(),metadata:U,config:H}),p({pluginname:S()}),p({scope:S(),pluginname:S()}),Xe.extend({pluginname:S().trim().optional()}),p({removeStorage:x().optional()}),p({pluginversion:S().trim().optional()});var $e=p({enabled:b().optional(),directEnabled:b().optional(),directMode:m([`cloudflare`,`customDomain`]).optional(),customDomain:p({url:C(`Must be a valid URL`).trim().nullable()}).strict().optional(),cloudflare:p({mode:m([`quick`,`token`,`managed`]).optional(),hostname:S().trim().min(1,`Hostname is required`).max(253,`Hostname cannot be more than 253 characters`).nullable().optional(),token:S().trim().min(1,`Token is required`).nullable().optional()}).strict().optional()}).strict().refine(e=>!(e.directMode===`customDomain`&&!e.customDomain?.url),{message:`Custom domain URL is required when directMode is "customDomain"`,path:[`customDomain`,`url`]}).refine(e=>!(e.cloudflare?.mode===`token`&&!e.cloudflare?.token),{message:`Token is required when cloudflare.mode is "token"`,path:[`cloudflare`,`token`]}).refine(e=>!(e.cloudflare?.mode&&e.cloudflare.mode!==`quick`&&!e.cloudflare?.hostname),{message:`Hostname is required when cloudflare.mode is "token" or "managed"`,path:[`cloudflare`,`hostname`]});p({mode:m([`cloudflare`,`customDomain`])}).strict(),p({hostname:S().trim().min(1,`Hostname is required`).max(253,`Hostname cannot be more than 253 characters`).regex(/^[a-z0-9.-]+\.[a-z]{2,}$/i,`Invalid hostname`)}).strict(),p({name:S().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional()}).strict(),p({name:S().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional()}).strict(),p({name:S().trim().min(1,`Server name is required`).max(100,`Server name cannot be more than 100 characters`)}).strict(),p({version:S().trim().optional().default(`latest`)}).strict();var et=p({serverAddresses:d([ye().trim(),be().trim()]).array().default([])}).strict();l(S(),u()),p({key:S()}).strict(),p({key:S(),payload:u()}).strict();var tt=[`image/jpeg`,`image/jpg`,`image/png`],nt=1024*1024*5,rt=p({index:h(),cameraId:S(),colSpan:h().optional(),rowSpan:h().optional(),x:h().optional(),y:h().optional()}),it=d([v(1),v(4),v(6),v(7),v(9),v(10),v(12),v(13),v(15),v(16),v(20),v(26)]),at=d([v(`dnd`),v(`view`)]),ot=p({_id:S().default(c()).transform(()=>c()),name:S().trim().min(1,`Layout name is required`),viewSize:it,cameras:rt.array(),type:at});p({name:S().trim().min(1,`Layout name is required`),viewSize:it,cameras:rt.array()}).partial().optional();var st=p({views:ot.array()}),ct=m([`contact`,`temperature`,`humidity`,`occupancy`,`smoke`,`leak`,`light`,`siren`,`switch`,`lock`,`garage`,`doorbell`,`securitySystem`,`battery`]),lt=Se(`type`,[p({_id:S().default(c()).transform(()=>c()),type:v(`camera`),cameraId:S(),points:E}),p({_id:S().default(c()).transform(()=>c()),type:v(`sensor`),sensorType:ct,sensorName:S(),sensorPluginId:S(),sensorCameraId:S(),points:E})]);d([p({type:v(`camera`),cameraId:S(),points:E}).partial(),p({type:v(`sensor`),sensorType:ct,sensorName:S(),sensorPluginId:S(),sensorCameraId:S(),points:E}).partial()]).optional();var ut=p({shortcuts:lt.array()}),dt=p({camview:st,cameras:l(S().trim(),ut)}),W=S().trim().min(10,`Password must be at least 10 characters long`).regex(/[A-Z]/,`Password must contain at least one uppercase letter`).regex(/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/,`Password must contain at least one special character (!@#$%^&*()_+-=[]{};:'"\\|,.<>/?)`).max(32,`Password cannot be more than 32 characters`),ft=p({_id:S().default(c()).transform(()=>c()),username:S().trim().min(1,`Username is required`),password:W,passwordConfirm:S().trim().min(1,`Please confirm your password`),role:d([v(`admin`),v(`user`)]),firstLogin:b().default(!0),preferences:dt.default({camview:{views:[]},cameras:{}})}).strict().refine(e=>e.password===e.passwordConfirm,{path:[`passwordConfirm`],message:`Passwords do not match`});p({username:S().trim().min(1,`Username is required`),password:S().trim().min(1,`Password is required`),kind:m([`native`,`web`]),persistent:b().default(!1),device:p({id:S().min(1,`Device id is required`).max(128,`Device id cannot be more than 128 characters`),name:S().trim().min(1,`Device name is required`).max(100,`Device name cannot be more than 100 characters`)})}).strict();var pt=p({username:S().trim().min(1,`Username is required`).optional(),password:W.optional(),passwordConfirm:S().trim().optional(),role:d([v(`admin`),v(`user`)]).optional(),upload:xe(F(nt,tt,`Max file size is 5MB.`,`.jpg, .jpeg, .png files are accepted.`)),firstLogin:b().optional(),preferences:dt.partial().optional()}).strict().refine(e=>e.password===e.passwordConfirm,{path:[`passwordConfirm`],message:`Passwords do not match`});p({username:S()}),p({username:S(),cameraname:S()}),p({username:S(),cameraname:S(),shortcutid:S()}),p({username:S(),viewid:S()}),p({username:S()});var G={[t.Motion]:{category:n.Sensor,assignmentKey:`motion`,multiProvider:!1,isDetectionType:!0},[t.Object]:{category:n.Sensor,assignmentKey:`object`,multiProvider:!1,isDetectionType:!0},[t.Audio]:{category:n.Sensor,assignmentKey:`audio`,multiProvider:!1,isDetectionType:!0},[t.Face]:{category:n.Sensor,assignmentKey:`face`,multiProvider:!1,isDetectionType:!0},[t.LicensePlate]:{category:n.Sensor,assignmentKey:`licensePlate`,multiProvider:!1,isDetectionType:!0},[t.Classifier]:{category:n.Sensor,assignmentKey:`classifier`,multiProvider:!0,isDetectionType:!0},[t.Clip]:{category:n.Sensor,assignmentKey:`clip`,multiProvider:!1,isDetectionType:!0},[t.Contact]:{category:n.Sensor,assignmentKey:`contact`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`detected`,value:!0,sustained:!0}},[t.Light]:{category:n.Control,assignmentKey:`light`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`on`,value:!0,sustained:!0}},[t.Siren]:{category:n.Control,assignmentKey:`siren`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`active`,value:!0,sustained:!0}},[t.Switch]:{category:n.Control,assignmentKey:`switch`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`on`,value:!0,sustained:!0}},[t.PTZ]:{category:n.Control,assignmentKey:`ptz`,multiProvider:!1,isDetectionType:!1},[t.Lock]:{category:n.Control,assignmentKey:`lock`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`currentState`,value:1,sustained:!0}},[t.SecuritySystem]:{category:n.Control,assignmentKey:`securitySystem`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`currentState`,value:4,sustained:!0}},[t.Doorbell]:{category:n.Trigger,assignmentKey:`doorbell`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`ring`,value:!0,sustained:!1}},[t.Temperature]:{category:n.Info,assignmentKey:`temperature`,multiProvider:!0,isDetectionType:!1},[t.Humidity]:{category:n.Info,assignmentKey:`humidity`,multiProvider:!0,isDetectionType:!1},[t.Occupancy]:{category:n.Sensor,assignmentKey:`occupancy`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`detected`,value:!0,sustained:!0}},[t.Smoke]:{category:n.Sensor,assignmentKey:`smoke`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`detected`,value:!0,sustained:!0}},[t.Leak]:{category:n.Sensor,assignmentKey:`leak`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`detected`,value:!0,sustained:!0}},[t.Garage]:{category:n.Control,assignmentKey:`garage`,multiProvider:!0,isDetectionType:!1,cascadeTrigger:{property:`currentState`,value:0,sustained:!0}},[t.Battery]:{category:n.Info,assignmentKey:`battery`,multiProvider:!1,isDetectionType:!1}};t.Battery,s.Charging,e.Charging,s.Low,e.LowBattery,t.Light,le.Brightness,de.Brightness,t.Siren,o.Volume,ee.Volume;function mt(){return Object.entries(G).filter(([,e])=>e.multiProvider).map(([e])=>e)}function ht(){return Object.entries(G).filter(([,e])=>e.isDetectionType).map(([e])=>e)}function gt(e){return G[e].assignmentKey}function _t(){return Object.entries(G).filter(([,e])=>e.category===n.Sensor&&!e.multiProvider).map(([e])=>e)}function vt(){return Object.entries(G).filter(([,e])=>!e.multiProvider&&e.category!==n.Sensor).map(([e])=>e)}function yt(){return Object.entries(G).filter(([,e])=>e.multiProvider).map(([e])=>e)}function bt(e){return!G[e].multiProvider}var xt={[t.Motion]:Object.values(re),[t.Object]:Object.values(he),[t.Audio]:Object.values(i),[t.Face]:Object.values(ve),[t.LicensePlate]:Object.values(oe),[t.Classifier]:Object.values(r),[t.Clip]:[],[t.Contact]:Object.values(_e),[t.Temperature]:Object.values(ue),[t.Humidity]:Object.values(a),[t.Occupancy]:Object.values(ce),[t.Smoke]:Object.values(se),[t.Leak]:Object.values(ae),[t.Light]:Object.values(le),[t.Siren]:Object.values(o),[t.Switch]:Object.values(fe),[t.Lock]:Object.values(ie),[t.Garage]:Object.values(ge),[t.PTZ]:Object.values(ne),[t.SecuritySystem]:Object.values(pe),[t.Doorbell]:Object.values(te),[t.Battery]:Object.values(s)};function St(e){return xt[e]??[]}new Set(mt()),new Set(ht());var Ct=`bubble://.cui://.doorbird://.dvrip://.echo:.eseecloud://.exec:.expr:.ffmpeg:.flussonic://.gopro://.hass:.homekit://.http://.https://.httpx://.isapi://.ivideon:.kasa://.nest:.onvif://.ring:.roborock://.rtmp://.rtsp://.rtspx://.tapo://.tcp://.tuya://.xiaomi://.yandex:.webrtc:.webtorrent:.wyze://`.split(`.`),wt=[`#backchannel=`,`#header=`,`#media=audio`,`#media=video`,`#timeout=10`,`#timeout=20`,`#timeout=30`,`#transport=`],Tt=`#audio=aac.#audio=aac/16000.#audio=mp3.#audio=opus.#audio=pcm.#audio=pcm/8000.#audio=pcm/16000.#audio=pcm/48000.#audio=pcma.#audio=pcma/8000.#audio=pcma/16000.#audio=pcma/48000.#audio=pcml.#audio=pcml/8000.#audio=pcml/44100.#audio=pcmu.#audio=pcmu/8000.#audio=pcmu/16000.#audio=pcmu/48000.#drawtext.#hardware.#hardware=cuda.#hardware=dxva2.#hardware=rkmpp.#hardware=v4l2m2m.#hardware=vaapi.#hardware=videotoolbox.#height=.#raw=.#rotate=-90.#rotate=90.#rotate=180.#rotate=270.#video=copy.#video=h264.#video=h265.#video=mjpeg.#width=`.split(`.`),Et=[`client_id=`,`client_private=`,`device_id=`,`device_public=`],Dt=[`#header=`],Ot=[`client_id=`,`client_secret=`,`refresh_token=`,`project_id=`,`device_id=`],kt=[`device_id=`,`refresh_token=`],At=[`#client_id=`,`#format=openipc`,`#format=wyze`,`#format=kinesis`,`#ice_servers=`];function jt(e){return e.type===`string`&&!(`enum`in e)}function Mt(e){return e.type===`number`}function Nt(e){return e.type===`boolean`}function K(e){return e.type===`string`&&`enum`in e}function Pt(e){return e.type===`array`}function q(e){return e.type===`button`}function J(e){return e.type===`submit`}function Ft(e){return jt(e)&&(!e.format||e.format!==`qrCode`&&e.format!==`image`)}var Y=(e,t)=>{let n=Q(t,e.key),r=e.value;switch(e.operator??`eq`){case`eq`:return n===r;case`neq`:return n==null||n===``?!1:n!==r;case`gt`:return typeof n==`number`&&typeof r==`number`&&n>r;case`lt`:return typeof n==`number`&&typeof r==`number`&&n<r;case`in`:return(Array.isArray(r)?r:[r]).includes(n);case`nin`:return n==null||n===``?!1:!(Array.isArray(r)?r:[r]).includes(n);default:return!0}};function X(e,t){return Array.isArray(e)?e.every(e=>Y(e,t)):Y(e,t)}function It(e,t){if(!e||Object.keys(e).length===0)return!0;let n=t.filter(e=>!q(e)&&!J(e));for(let t of n){let n=Q(e,t.key),r=Z(t);if(n!==void 0&&!me(n,r,!0))return!1}return!0}function Z(e){if(`defaultValue`in e&&e.defaultValue!==void 0)return e.defaultValue;switch(e.type){case`string`:return K(e)?e.multiple?[]:e.required?e.enum[0]:``:``;case`number`:return 0;case`boolean`:return!1;case`array`:return[];default:return}}function Lt(e){let t={};for(let n of e)q(n)||J(n)||(t[n.key]=Z(n));return t}function Q(e={},t){if(!t.includes(`.`)&&!t.includes(`[`))return e[t];let n=t.split(`.`).reduce((e,t)=>{if(t.includes(`[`)){let[n,r]=t.split(`[`);e.push(n,r.slice(0,-1))}else e.push(t);return e},[]),r=e;for(let e of n){if(r==null)return;r=r[e]}return r}function Rt(e,t,n){if(!t.includes(`.`)&&!t.includes(`[`)){e[t]=n;return}let r=t.split(`.`).reduce((e,t)=>{if(t.includes(`[`)){let[n,r]=t.split(`[`);e.push(n,r.slice(0,-1))}else e.push(t);return e},[]),i=r.pop();if(!i)return;let a=e;for(let e of r){if(a[e]===void 0||a[e]===null){let t=r[r.indexOf(e)+1];a[e]=isNaN(Number(t))?{}:[]}a=a[e]}a[i]=n}function zt(e,t){let n={};for(let r of e)if(`store`in r&&r.store&&!q(r)&&!J(r)){let e=Q(t,r.key);e!==void 0&&(n[r.key]=e)}return n}function Bt(e,t){return t?e.filter(e=>`group`in e&&e.group===t):e}function Vt(e,t){let n=Bt(e,t);return n.length>0&&n.every(e=>`readonly`in e&&e.readonly)}function Ht(e,t){let n=Bt(e,t);return n.length>0&&n.some(e=>`store`in e&&e.store)}function Ut(e,t){if(!t)return!0;let n={"date-time":e=>/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d+)?(Z|[+-]\d{2}:\d{2})?$/.test(e),date:e=>/^\d{4}-\d{2}-\d{2}$/.test(e),time:e=>/^([01]?[0-9]|2[0-3]):([0-5][0-9])(:([0-5][0-9]))?$/.test(e),email:e=>/^\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b$/.test(e),uuid:e=>/^[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(e),ipv4:e=>/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/.test(e),ipv6:e=>/^\s*([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4})\s*$/.test(e)};return t in n?n[t](e):!0}function $(e){if(q(e)||J(e))return u();switch(e.type){case`string`:if(K(e))if(e.multiple){let t=_(S().trim().refine(t=>e.enum.includes(t),{error:`Invalid selection`}));return e.required&&(t=t.min(1,{error:`Required`})),e.required?t:t.optional()}else{let t=m(e.enum);return e.required?t:t.optional()}let t=S().trim();return e.required&&(t=t.nonempty(`Required`)),e.minLength!==void 0&&(t=t.min(e.minLength)),e.maxLength!==void 0&&(t=t.max(e.maxLength)),e.format&&(t=t.refine(t=>!t||t.trim()===``||Ut(t,e.format),{message:`Invalid ${e.format} format`})),e.required?t:t.optional();case`number`:let n=h();return e.minimum!==void 0&&(n=n.min(e.minimum)),e.maximum!==void 0&&(n=n.max(e.maximum)),e.required&&(n=n.refine(e=>e!=null,{error:`Required`})),e.required?n:n.optional();case`boolean`:return e.required?b():b().optional();case`array`:let r=_($(e.items));return e.required?r:r.optional();default:return e.required?u():u().optional()}}var Wt=(e,t,n)=>t.filter(e=>`group`in e&&e.group===n).some(t=>{let n=e[t.key];return n!=null&&n!==``});function Gt(e){let t={},n=new Set;e.forEach(e=>{`group`in e&&e.group&&n.add(e.group)}),e.forEach(e=>{if(!q(e)&&!J(e)){let n=`group`in e&&e.group,r=`condition`in e&&e.condition;(n||r)&&e.required?t[e.key]=$({...e,required:!1}):t[e.key]=$(e)}});let r=p(t),i=e.filter(e=>`condition`in e&&e.condition&&`required`in e&&e.required&&!q(e)&&!J(e));return(n.size>0||i.length>0)&&(r=r.superRefine((t,r)=>{for(let i of n)if(Wt(t,e,i)){let n=e.filter(e=>`group`in e&&e.group===i);for(let e of n)if(`required`in e&&e.required){if(`condition`in e&&e.condition&&!X(e.condition,t))continue;let n=t[e.key];(n==null||n===``)&&r.addIssue({code:y.custom,message:`Required`,path:[e.key]})}}for(let e of i)if(!(`group`in e&&e.group)&&`condition`in e&&e.condition&&X(e.condition,t)){let n=t[e.key];(n==null||n===``)&&r.addIssue({code:y.custom,message:`Required`,path:[e.key]})}})),r}var Kt=function(e){return e.READY=`ready`,e.RESTARTING=`restarting`,e.STARTING=`starting`,e.STARTED=`started`,e.STOPPED=`stopped`,e.ERROR=`error`,e.UNKNOWN=`unknown`,e}({});export{Ge as $,gt as A,et as B,Ot as C,At as D,Ct as E,nt as F,B as G,z as H,ft as I,N as J,R as K,W as L,_t as M,St as N,G as O,bt as P,k as Q,pt as R,Dt as S,wt as T,L as U,$e as V,I as W,D as X,O as Y,Me as Z,Vt as _,zt as a,Tt as b,Pt as c,It as d,K as f,Ft as g,J as h,Z as i,vt as j,yt as k,Nt as l,jt as m,X as n,Gt as o,Mt as p,qe as q,Lt as r,Q as s,Kt as t,q as u,Ht as v,kt as w,Et as x,Rt as y,ot as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Oi as e}from"./vendor-cameraui-
|
|
1
|
+
import{Oi as e}from"./vendor-cameraui-BABuGvhg.js";import{d as t}from"./vendor-core-C6lCucBy.js";var n=[`account`,`appearance`,`user`,`recordings`,`instances`,`remote`,`backup`,`system`],r={cameras:{showEvents:!0,order:[],groupOrder:{},viewMode:`default`,dragDisabled:!0},camview:{dragDisabled:!1},config:{zoom:12},console:{zoom:12},interface:{showBottomBarOnMobile:!0,selectedSettingsView:`account`,navbarStayCollapsed:!0}},i=t(`ui`,()=>({uiSettings:e(`ui`,r,{mergeDefaults:!0})}));export{i as n,n as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./api-
|
|
1
|
+
import"./api-C-NlYhuP.js";import"./vendor-zxCOTbSj.js";async function e(){return{available:!1,enrolled:!1}}async function t(e){return!1}async function n(e,t){}async function r(e){}async function i(e,t){return null}export{i as a,n as i,r as n,t as r,e as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Dn as e,qt as t}from"./vendor-cameraui-
|
|
1
|
+
import{Dn as e,qt as t}from"./vendor-cameraui-BABuGvhg.js";import{Xt as n}from"./vendor-zxCOTbSj.js";import{t as r}from"./cameras-Co3xGKAG.js";import{A as i,N as a,O as o}from"./types-BK05hngw.js";function s(){let{data:s}=new r().getCamerasQuery({page:1,pageSize:-1}),c=n(()=>s.value?.result??[]),l=n(()=>c.value.map(e=>({label:e.name,value:e._id})));function u(t){let n=c.value.find(e=>e._id===t);return n?.assignments?Object.values(e).filter(e=>{let t=i(e),r=n.assignments[t];return r?Array.isArray(r)?r.length>0:!0:!1}).map(e=>({label:e,value:e,meta:o[e]})):[]}function d(e,r){let{sensors:i,isLoading:a}=t(e,r);return{instanceOptions:n(()=>i.value.map(e=>({label:e.displayName.value||e.name,sensorName:e.name,pluginId:e.pluginId}))),isLoading:a}}function f(e){return a(e).map(e=>({label:e,value:e}))}return{cameras:c,cameraOptions:l,getSensorTypes:u,useSensorInstances:d,getPropertiesForSensor:f}}export{s as t};
|
package/dist/interface/assets/{useCuiCameraDrawer-PokkyjqH.js → useCuiCameraDrawer-BuIrXxOt.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{wi as e}from"./vendor-cameraui-
|
|
1
|
+
import{wi as e}from"./vendor-cameraui-BABuGvhg.js";import{Xt as t,er as n}from"./vendor-zxCOTbSj.js";var r=e(Symbol(`cui-camera-drawer`)),i={position:`right`,showCloseIcon:!1,modal:!0,dismissable:!0,baseZIndex:1e3,blockScroll:!0,pt:{root:{class:`w-full sm:w-[400px]`}}};function a(){let e=n(!1),a=t(()=>e.value);return r.on(t=>{switch(t.type){case`close`:e.value=!1;break;case`open`:e.value=!0;break}}),{open:(t,n)=>{r.emit({type:`open`,options:t,props:{...i,...n}}),e.value=!0},close:()=>{r.emit({type:`close`}),e.value=!1},isOpen:a,getEventBus:()=>r}}export{a as n,i as t};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/CuiMarkdownContent-DL3Xnrg7.js","assets/vendor-zxCOTbSj.js","assets/rolldown-runtime-DAXXjFlN.js","assets/vendor-markdown-BrmS8cUD.js","assets/vendor-markdown-DtOhvyRx.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{Hn as e,Qt as t,Si as n,Vn as r,fi as i,yi as a}from"./vendor-cameraui-D9I8uPRL.js";import{C as o,u as s}from"./api-CPonLnGH.js";import{$t as c,At as l,Cn as u,Dn as ee,En as d,Hn as f,Kt as p,Ln as m,Mn as h,Qn as g,Qt as _,Tn as v,Un as te,Xn as y,Xt as b,Zt as x,an as S,cr as C,dr as ne,en as w,er as T,fn as re,fr as ie,gn as E,jn as ae,lr as D,on as O,or as k,sn as A,sr as oe,un as j,wn as se,zn as M,zt as ce}from"./vendor-zxCOTbSj.js";import{l as le}from"./vendor-core-DSNqTlQH.js";import{a as ue,t as de}from"./useSharedComposables-B5-Uy9Br.js";import{t as fe}from"./close-BlkMdXhr.js";import{t as pe}from"./useElectron-mh8HQUAI.js";import{A as N,J as me}from"./vendor-primevue-CWF_imvX.js";import{t as he}from"./CuiImage-OMrwpQrB.js";var ge={viewBox:`0 0 16 16`,width:`1.2em`,height:`1.2em`};function P(e,t){return v(),w(`svg`,ge,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M4.75 3.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h6.5c.69 0 1.25-.56 1.25-1.25v-1.5a.75.75 0 0 1 1.5 0v1.5A2.75 2.75 0 0 1 11.25 14h-6.5A2.75 2.75 0 0 1 2 11.25v-6.5A2.75 2.75 0 0 1 4.75 2h1.5a.75.75 0 0 1 0 1.5zM8 2.75A.75.75 0 0 1 8.75 2h4.5a.75.75 0 0 1 .75.75v4.5a.75.75 0 0 1-1.5 0V4.561l-3.22 3.22A.75.75 0 1 1 8.22 6.72l3.22-3.22H8.75A.75.75 0 0 1 8 2.75`},null,-1)]])}var F=y({name:`fluent-open16-filled`,render:P}),I={viewBox:`0 0 16 16`,width:`1.2em`,height:`1.2em`};function L(e,t){return v(),w(`svg`,I,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M9.78 12.78a.75.75 0 0 1-1.06 0L4.47 8.53a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.042.018a.75.75 0 0 1 .018 1.042L6.06 8l3.72 3.72a.75.75 0 0 1 0 1.06`},null,-1)]])}var _e=y({name:`octicon-chevron-left16`,render:L}),R=A({render(){return j(`div`,{class:`flex items-center justify-center w-full h-full min-h-[100px]`},[j(r,{class:`w-[24px] h-[24px] m-0`,strokeWidth:`5`})])}});function z(e,t){return O({loader:e,loadingComponent:R,delay:t?.delay??150})}var ve=Symbol(`DialogStepper`);function ye(e){let t=T(e),n=T(void 0),r={},i=(e,t)=>{r[e]||(r[e]=[]),r[e].push(t)},a=(e,t)=>{let n=r[e];if(n){let e=n.indexOf(t);e!==-1&&n.splice(e,1)}},o=(e,t)=>{let n=r[e];n&&n.forEach(e=>{e(t)})},s={currentTab:n,tabs:t,isMainTab:b(()=>!n.value),goToTab:e=>{let r=t.value.find(t=>t.id===e);r&&(n.value=e,o(`tabChange`,r))},goToMainTab:()=>{n.value=void 0,o(`tabChange`,void 0)},registerTab:e=>{t.value.some(t=>t.id===e.id)||t.value.push(e)},updateTabConfig:(e,n)=>{let r=t.value.findIndex(t=>t.id===e);r!==-1&&(t.value[r]={...t.value[r],...n},n.title&&o(`updateTabTitle`,{tabId:e,title:n.title}))},on:i,off:a,emit:o};return d(ve,s),s}var be={class:`p-dialog-content`},xe={key:0,class:`p-dialog-header-actions`},Se={class:`p-dialog-title truncate min-w-0 flex-1`},Ce={class:`p-dialog-header-actions ml-auto gap-2`},we={key:0,class:`text-wrap`},Te={key:0,class:`flex items-center justify-center shrink-0 w-full p-5 pb-safe-offset-5 mt-5 self-end`,style:{background:`var(--border-color)`}},Ee=A({__name:`CuiDialog`,setup(t){let r=z(()=>l(()=>import(`./CuiMarkdownContent-DL3Xnrg7.js`),__vite__mapDeps([0,1,2,3,4]))),s=le(),y=o(),{t:O}=i(),{mdBreakpoint:A}=de(),{width:j,height:N}=ue(),{isElectronApp:ge}=pe(),P=re(`dialogRef`),I=m(`dialogHeader`),L=k(P.value.data),{contentText:R,contentProps:ve,loading:Ee,disabled:B,cancelButtonProps:V,confirmButtonProps:H,hideCancelButton:U,hideConfirmButton:W,dialogContentClass:De,dialogContentStyle:Oe,cancelText:ke,confirmText:Ae,stayActive:je,src:Me,title:G,fullscreen:Ne,tabs:K,goTo:Pe,draggable:Fe,rootId:q,markdown:Ie,headerActions:Le}=L;d(`dialogRefProps`,L);let J=g({});d(`dialogHeaderToggles`,J);let Re=P.value.options.templates,ze=n(document.getElementById(`app`)),Y=T(!1),X=T(null),Be=T(!1),Z=T(G.value),Ve=T(!1),Q,{style:He,x:Ue,y:We}=a(I,{disabled:!Fe?.value,containerElement(){return document.getElementById(`app`)},onStart(){Ve.value=!0}}),Ge=b(()=>{let e=document.getElementById(q?.value||``);if(!e)return 1/0;let t=e.offsetWidth;return ze.width.value-t}),Ke=b(()=>{let e=document.getElementById(q?.value||``);if(!e)return 1/0;let t=e.offsetHeight;return ze.height.value-t}),qe=b(()=>!!(Y.value||Ee?.value||oe(X.value?.isLoading))),Je=b(()=>K.value!==void 0&&K.value.length>0),Ye=b(()=>ke?.value?ke.value:O(`components.form.button.close`)),Xe=b(()=>Ae?.value?Ae.value:O(`components.form.button.save`)),Ze=b(()=>({...V?.value,label:Ye.value,loading:void 0,size:`small`,severity:V?.value&&`severity`in V.value?V.value.severity:`secondary`,class:void 0})),Qe=b(()=>({...H?.value,label:Xe.value,loading:void 0,size:`small`,severity:H?.value&&`severity`in H.value?H.value.severity:`success`,class:`ml-auto`,disabled:B.value}));function $e(e){let t=X.value?.resolveGoTo?.();P.value.close(),s.push(t??e)}async function et(){try{Y.value=!0;let e=await X.value?.onCancel?.();P.value.close({status:`cancel`,data:e})}catch(e){y.add({severity:`error`,detail:e,life:3e3})}finally{Y.value=!1}}async function tt(){try{Y.value=!0;let e=await X.value?.onConfirm?.();if(e===null)return;je?.value?P.value.options.onConfirm?.(e):P.value.close({status:`confirm`,data:e})}catch(e){y.add({severity:`error`,detail:e,life:3e3})}finally{Y.value=!1}}function $(){let e=document.getElementById(q?.value||``)?.closest(`.p-dialog-mask`);if(!e)return;let t=Array.from(document.querySelectorAll(`.p-dialog-mask`)),n=0;for(let e of t){let t=parseInt(e.style.zIndex,10)||0;t>n&&(n=t)}(parseInt(e.style.zIndex,10)||0)<n&&(e.style.zIndex=String(n+1))}return Je.value&&(Q=ye(K.value??[]),M(Q.isMainTab,e=>{Be.value=!e},{immediate:!0}),Q.on(`updateTabTitle`,({tabId:e,title:t})=>{Q?.currentTab.value===e&&G?.value&&(Z.value=t)}),Q.on(`tabChange`,e=>{Z.value=e?.title??G.value})),M([He,j,N],()=>{if(!Ve.value)return;let e=document.getElementById(q?.value||``);if(e){let t=Math.max(0,Math.min(Ue.value,Ge.value)),n=Math.max(0,Math.min(We.value,Ke.value));e.style.left=`${t}px`,e.style.top=`${n}px`}}),u(()=>{let e=document.getElementById(q?.value||``)?.closest(`.p-dialog-mask`);e&&(e.addEventListener(`pointerdown`,$),$())}),se(()=>{let e=document.getElementById(q?.value||``)?.closest(`.p-dialog-mask`);e&&e.removeEventListener(`pointerdown`,$)}),(t,n)=>{let i=_e,a=e,o=F,s=fe,l=he,u=me;return v(),w(`div`,be,[x(`div`,{ref_key:`dialogHeader`,ref:I,class:D([`p-dialog-header justify-start gap-1`,{"cursor-move":C(Fe),"pt-6!":C(ge)&&(C(Ne)||C(A))}])},[S(ce,{name:`slide-left`},{default:f(()=>[C(Be)?(v(),w(`div`,xe,[S(a,{severity:`secondary`,text:``,rounded:``,class:`p-dialog-back-button`,onClick:C(Q)?.goToMainTab},{icon:f(()=>[S(i,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])])):c(``,!0)]),_:1}),x(`span`,Se,ie(C(Z)),1),x(`div`,Ce,[(v(!0),w(p,null,ee(C(Le)??[],(e,t)=>te((v(),_(a,{key:t,severity:`secondary`,text:``,rounded:``,loading:e.loading,class:D([`p-dialog-close-button`,{"!text-primary":e.toggle&&C(J)[t]}]),onClick:()=>{e.toggle&&(C(J)[t]=!C(J)[t]),e.onClick()}},{icon:f(()=>[(v(),_(ae(e.icon),{width:`100%`,height:`100%`}))]),_:2},1032,[`loading`,`class`,`onClick`])),[[u,e.tooltip?{value:e.tooltip}:void 0,void 0,{bottom:!0}]])),128)),C(Pe)?te((v(),_(a,{key:0,severity:`secondary`,text:``,rounded:``,class:`p-dialog-close-button`,onClick:n[0]||=e=>$e(C(Pe))},{icon:f(()=>[S(o,{width:`100%`,height:`100%`})]),_:1})),[[u,{value:t.$t(`components.dialog.open`)},void 0,{bottom:!0}]]):c(``,!0),S(a,{severity:`secondary`,text:``,rounded:``,class:`p-dialog-close-button`,onClick:C(P).close},{icon:f(()=>[S(s,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])])],2),x(`div`,{class:D([`p-dialog-body flex justify-center w-full overflow-y-auto px-5 py-1 text-balance`,{"h-full":C(Ne)},C(De)]),style:ne(C(Oe))},[C(R)&&!C(Ie)?(v(),w(`span`,we,ie(C(R)),1)):C(R)&&C(Ie)?(v(),_(C(r),{key:1,content:C(R)},null,8,[`content`])):C(Me)?(v(),_(l,{key:2,src:C(Me),"image-container-class":`w-full h-full`},null,8,[`src`])):(v(),_(ae(C(Re)?.content),E({key:3,ref_key:`componentRef`,ref:X,class:`w-full h-full relative`},C(ve),h(C(P).options.events||{})),null,16))],6),n[2]||=x(`div`,{class:`mt-auto`},null,-1),!C(U)||!C(W)?(v(),w(`div`,Te,[C(U)?c(``,!0):(v(),_(a,E({key:0},C(Ze),{class:`cui-button-medium`,onClick:et}),null,16)),n[1]||=x(`div`,{class:`ml-auto`},null,-1),C(W)?c(``,!0):(v(),_(a,E({key:1},C(Qe),{loading:C(qe),disabled:C(B),class:`cui-button-medium`,onClick:tt}),null,16,[`loading`,`disabled`]))])):c(``,!0)])}}}),B={modal:!0,closable:!0,blockScroll:!0,draggable:!1,dismissableMask:!0,baseZIndex:1100,showHeader:!1},V={pt:{root:{class:`p-dialog-maximized pt-safe border-none`}}},H={pt:{root:{class:`shadow-xl shadow-black/30 overflow-hidden`}}},U={mobile:{textDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V},imageDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V},componentDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V},stepperDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V}},desktop:{textDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`auto`},...H},imageDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`70vw`},...H},componentDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`70vw`},...H},stepperDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`70vw`},...H}}};function W(){return{open:(e,t)=>{let n={content:e&&y(e),options:t||{},data:t&&t.data,close:e=>{N.emit(`close`,{instance:n,params:e})}};return N.emit(`open`,{instance:n}),n}}}function De(){let e=W(),{mdBreakpoint:n}=de(),r=(e,n,r)=>{let i=g({...e});r&&(n.pt.root.class=(n.pt.root.class?n.pt.root.class+` `:``)+`fixed mt-0`),t(i.options.props,n)},i=(e,t,i,a)=>{let o={mobile:a?.mobile?{style:{...a.mobile},...V}:void 0,desktop:a?.desktop?{style:{...a.desktop},...H}:void 0};return M(n,n=>{if(n)switch(t){case`text`:r(e,o.mobile??U.mobile.textDialog,i);break;case`image`:r(e,o.mobile??U.mobile.imageDialog,i);break;case`component`:r(e,o.mobile??U.mobile.componentDialog,i);break;case`stepper`:r(e,o.mobile??U.mobile.stepperDialog,i);break;default:break}else switch(t){case`text`:r(e,o.desktop??U.desktop.textDialog,i);break;case`image`:r(e,o.desktop??U.desktop.imageDialog,i);break;case`component`:r(e,o.desktop??U.desktop.componentDialog,i);break;case`stepper`:r(e,o.desktop??U.desktop.stepperDialog,i);break;default:break}},{immediate:!0}),e};function a(t,n,r){let{component:a,data:o,onConfirm:c,onCancel:l,onSettled:u,events:ee,...d}=n,f={content:a?y(a):void 0};r?.pt||(r={...r,pt:{root:{}}});let p=C(o.draggable)??!1;p&&(r.draggable=!0);let m=C(o.dismissableMask);m!==void 0&&(r.dismissableMask=m);let h=C(o.modal);h!==void 0&&(r.modal=h);let _=o.rootId??s(10);r.pt.root.id=_;let v=e.open(Ee,{data:k(g({confirmText:o.confirmText??void 0,cancelText:o.cancelText??void 0,hideConfirmButton:o.hideConfirmButton??!1,hideCancelButton:o.hideCancelButton??!1,loading:o.loading??!1,disabled:o.disabled??!1,confirmButtonProps:o.confirmButtonProps??void 0,cancelButtonProps:o.cancelButtonProps??void 0,dialogContentClass:o.dialogContentClass??void 0,dialogContentStyle:o.dialogContentStyle??void 0,stayActive:o.stayActive??!1,fullscreen:o.fullscreen??!1,contentText:o.contentText??void 0,src:o.src??void 0,markdown:o.markdown??!1,contentProps:o.contentProps??void 0,tabs:o.tabs??void 0,rootId:_,...o})),props:r,templates:f,events:ee,onConfirm:c,onCancel:l,onClose:e=>{if(e?.data?.status===`confirm`){let{status:t,...n}=e.data;c?.(n?.data??n)}else l?.();u?.(e?.data?.data??e?.data)}});return o.fullscreen?v:i(v,t,p,d?.dialogSize)}function o(e){let{data:t,...n}=e,r=structuredClone(B);return r.style={...B.style,width:`auto`,minWidth:`400px`},t.fullscreen&&(r.style={...r.style,maxWidth:`none`,maxHeight:`100vh`},r.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`text`,{data:t,...n},r)}function c(e){let{data:t,...n}=e,r=structuredClone(B);return t.fullscreen&&(r.style={...r.style,maxWidth:`none`,maxHeight:`100vh`},r.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`image`,{data:t,...n},r)}function l(e,t){let{data:n,...r}=t,i=structuredClone(B);return n.fullscreen&&(i.style={...i.style,maxWidth:`none`,maxHeight:`100vh`},i.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`component`,{component:e,data:n,...r},i)}function u(e,t){let{data:n,...r}=t,i=structuredClone(B);return n.fullscreen&&(i.style={...i.style,maxWidth:`none`,maxHeight:`100vh`},i.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`stepper`,{component:e,data:n,...r},i)}return{openTextDialog:o,openImageDialog:c,openComponentDialog:l,openStepperDialog:u}}export{z as n,F as r,De as t};
|
|
2
|
+
import{Hn as e,Qt as t,Si as n,Vn as r,fi as i,yi as a}from"./vendor-cameraui-BABuGvhg.js";import{C as o,u as s}from"./api-C-NlYhuP.js";import{$t as c,At as l,Cn as u,Dn as ee,En as d,Hn as f,Kt as p,Ln as m,Mn as h,Qn as g,Qt as _,Tn as v,Un as te,Xn as y,Xt as b,Zt as x,an as S,cr as C,dr as ne,en as w,er as T,fn as re,fr as ie,gn as E,jn as ae,lr as D,on as O,or as k,sn as A,sr as oe,un as j,wn as se,zn as M,zt as ce}from"./vendor-zxCOTbSj.js";import{l as le}from"./vendor-core-C6lCucBy.js";import{a as ue,t as de}from"./useSharedComposables-Ca_A3w0h.js";import{t as fe}from"./close-BlkMdXhr.js";import{t as pe}from"./useElectron-mh8HQUAI.js";import{A as N,J as me}from"./vendor-primevue-CsC6U_Xu.js";import{t as he}from"./CuiImage-DJcQfDpa.js";var ge={viewBox:`0 0 16 16`,width:`1.2em`,height:`1.2em`};function P(e,t){return v(),w(`svg`,ge,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M4.75 3.5c-.69 0-1.25.56-1.25 1.25v6.5c0 .69.56 1.25 1.25 1.25h6.5c.69 0 1.25-.56 1.25-1.25v-1.5a.75.75 0 0 1 1.5 0v1.5A2.75 2.75 0 0 1 11.25 14h-6.5A2.75 2.75 0 0 1 2 11.25v-6.5A2.75 2.75 0 0 1 4.75 2h1.5a.75.75 0 0 1 0 1.5zM8 2.75A.75.75 0 0 1 8.75 2h4.5a.75.75 0 0 1 .75.75v4.5a.75.75 0 0 1-1.5 0V4.561l-3.22 3.22A.75.75 0 1 1 8.22 6.72l3.22-3.22H8.75A.75.75 0 0 1 8 2.75`},null,-1)]])}var F=y({name:`fluent-open16-filled`,render:P}),I={viewBox:`0 0 16 16`,width:`1.2em`,height:`1.2em`};function L(e,t){return v(),w(`svg`,I,[...t[0]||=[x(`path`,{fill:`currentColor`,d:`M9.78 12.78a.75.75 0 0 1-1.06 0L4.47 8.53a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.042.018a.75.75 0 0 1 .018 1.042L6.06 8l3.72 3.72a.75.75 0 0 1 0 1.06`},null,-1)]])}var _e=y({name:`octicon-chevron-left16`,render:L}),R=A({render(){return j(`div`,{class:`flex items-center justify-center w-full h-full min-h-[100px]`},[j(r,{class:`w-[24px] h-[24px] m-0`,strokeWidth:`5`})])}});function z(e,t){return O({loader:e,loadingComponent:R,delay:t?.delay??150})}var ve=Symbol(`DialogStepper`);function ye(e){let t=T(e),n=T(void 0),r={},i=(e,t)=>{r[e]||(r[e]=[]),r[e].push(t)},a=(e,t)=>{let n=r[e];if(n){let e=n.indexOf(t);e!==-1&&n.splice(e,1)}},o=(e,t)=>{let n=r[e];n&&n.forEach(e=>{e(t)})},s={currentTab:n,tabs:t,isMainTab:b(()=>!n.value),goToTab:e=>{let r=t.value.find(t=>t.id===e);r&&(n.value=e,o(`tabChange`,r))},goToMainTab:()=>{n.value=void 0,o(`tabChange`,void 0)},registerTab:e=>{t.value.some(t=>t.id===e.id)||t.value.push(e)},updateTabConfig:(e,n)=>{let r=t.value.findIndex(t=>t.id===e);r!==-1&&(t.value[r]={...t.value[r],...n},n.title&&o(`updateTabTitle`,{tabId:e,title:n.title}))},on:i,off:a,emit:o};return d(ve,s),s}var be={class:`p-dialog-content`},xe={key:0,class:`p-dialog-header-actions`},Se={class:`p-dialog-title truncate min-w-0 flex-1`},Ce={class:`p-dialog-header-actions ml-auto gap-2`},we={key:0,class:`text-wrap`},Te={key:0,class:`flex items-center justify-center shrink-0 w-full p-5 pb-safe-offset-5 mt-5 self-end`,style:{background:`var(--border-color)`}},Ee=A({__name:`CuiDialog`,setup(t){let r=z(()=>l(()=>import(`./CuiMarkdownContent-DL3Xnrg7.js`),__vite__mapDeps([0,1,2,3,4]))),s=le(),y=o(),{t:O}=i(),{mdBreakpoint:A}=de(),{width:j,height:N}=ue(),{isElectronApp:ge}=pe(),P=re(`dialogRef`),I=m(`dialogHeader`),L=k(P.value.data),{contentText:R,contentProps:ve,loading:Ee,disabled:B,cancelButtonProps:V,confirmButtonProps:H,hideCancelButton:U,hideConfirmButton:W,dialogContentClass:De,dialogContentStyle:Oe,cancelText:ke,confirmText:Ae,stayActive:je,src:Me,title:G,fullscreen:Ne,tabs:K,goTo:Pe,draggable:Fe,rootId:q,markdown:Ie,headerActions:Le}=L;d(`dialogRefProps`,L);let J=g({});d(`dialogHeaderToggles`,J);let Re=P.value.options.templates,ze=n(document.getElementById(`app`)),Y=T(!1),X=T(null),Be=T(!1),Z=T(G.value),Ve=T(!1),Q,{style:He,x:Ue,y:We}=a(I,{disabled:!Fe?.value,containerElement(){return document.getElementById(`app`)},onStart(){Ve.value=!0}}),Ge=b(()=>{let e=document.getElementById(q?.value||``);if(!e)return 1/0;let t=e.offsetWidth;return ze.width.value-t}),Ke=b(()=>{let e=document.getElementById(q?.value||``);if(!e)return 1/0;let t=e.offsetHeight;return ze.height.value-t}),qe=b(()=>!!(Y.value||Ee?.value||oe(X.value?.isLoading))),Je=b(()=>K.value!==void 0&&K.value.length>0),Ye=b(()=>ke?.value?ke.value:O(`components.form.button.close`)),Xe=b(()=>Ae?.value?Ae.value:O(`components.form.button.save`)),Ze=b(()=>({...V?.value,label:Ye.value,loading:void 0,size:`small`,severity:V?.value&&`severity`in V.value?V.value.severity:`secondary`,class:void 0})),Qe=b(()=>({...H?.value,label:Xe.value,loading:void 0,size:`small`,severity:H?.value&&`severity`in H.value?H.value.severity:`success`,class:`ml-auto`,disabled:B.value}));function $e(e){let t=X.value?.resolveGoTo?.();P.value.close(),s.push(t??e)}async function et(){try{Y.value=!0;let e=await X.value?.onCancel?.();P.value.close({status:`cancel`,data:e})}catch(e){y.add({severity:`error`,detail:e,life:3e3})}finally{Y.value=!1}}async function tt(){try{Y.value=!0;let e=await X.value?.onConfirm?.();if(e===null)return;je?.value?P.value.options.onConfirm?.(e):P.value.close({status:`confirm`,data:e})}catch(e){y.add({severity:`error`,detail:e,life:3e3})}finally{Y.value=!1}}function $(){let e=document.getElementById(q?.value||``)?.closest(`.p-dialog-mask`);if(!e)return;let t=Array.from(document.querySelectorAll(`.p-dialog-mask`)),n=0;for(let e of t){let t=parseInt(e.style.zIndex,10)||0;t>n&&(n=t)}(parseInt(e.style.zIndex,10)||0)<n&&(e.style.zIndex=String(n+1))}return Je.value&&(Q=ye(K.value??[]),M(Q.isMainTab,e=>{Be.value=!e},{immediate:!0}),Q.on(`updateTabTitle`,({tabId:e,title:t})=>{Q?.currentTab.value===e&&G?.value&&(Z.value=t)}),Q.on(`tabChange`,e=>{Z.value=e?.title??G.value})),M([He,j,N],()=>{if(!Ve.value)return;let e=document.getElementById(q?.value||``);if(e){let t=Math.max(0,Math.min(Ue.value,Ge.value)),n=Math.max(0,Math.min(We.value,Ke.value));e.style.left=`${t}px`,e.style.top=`${n}px`}}),u(()=>{let e=document.getElementById(q?.value||``)?.closest(`.p-dialog-mask`);e&&(e.addEventListener(`pointerdown`,$),$())}),se(()=>{let e=document.getElementById(q?.value||``)?.closest(`.p-dialog-mask`);e&&e.removeEventListener(`pointerdown`,$)}),(t,n)=>{let i=_e,a=e,o=F,s=fe,l=he,u=me;return v(),w(`div`,be,[x(`div`,{ref_key:`dialogHeader`,ref:I,class:D([`p-dialog-header justify-start gap-1`,{"cursor-move":C(Fe),"pt-6!":C(ge)&&(C(Ne)||C(A))}])},[S(ce,{name:`slide-left`},{default:f(()=>[C(Be)?(v(),w(`div`,xe,[S(a,{severity:`secondary`,text:``,rounded:``,class:`p-dialog-back-button`,onClick:C(Q)?.goToMainTab},{icon:f(()=>[S(i,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])])):c(``,!0)]),_:1}),x(`span`,Se,ie(C(Z)),1),x(`div`,Ce,[(v(!0),w(p,null,ee(C(Le)??[],(e,t)=>te((v(),_(a,{key:t,severity:`secondary`,text:``,rounded:``,loading:e.loading,class:D([`p-dialog-close-button`,{"!text-primary":e.toggle&&C(J)[t]}]),onClick:()=>{e.toggle&&(C(J)[t]=!C(J)[t]),e.onClick()}},{icon:f(()=>[(v(),_(ae(e.icon),{width:`100%`,height:`100%`}))]),_:2},1032,[`loading`,`class`,`onClick`])),[[u,e.tooltip?{value:e.tooltip}:void 0,void 0,{bottom:!0}]])),128)),C(Pe)?te((v(),_(a,{key:0,severity:`secondary`,text:``,rounded:``,class:`p-dialog-close-button`,onClick:n[0]||=e=>$e(C(Pe))},{icon:f(()=>[S(o,{width:`100%`,height:`100%`})]),_:1})),[[u,{value:t.$t(`components.dialog.open`)},void 0,{bottom:!0}]]):c(``,!0),S(a,{severity:`secondary`,text:``,rounded:``,class:`p-dialog-close-button`,onClick:C(P).close},{icon:f(()=>[S(s,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])])],2),x(`div`,{class:D([`p-dialog-body flex justify-center w-full overflow-y-auto px-5 py-1 text-balance`,{"h-full":C(Ne)},C(De)]),style:ne(C(Oe))},[C(R)&&!C(Ie)?(v(),w(`span`,we,ie(C(R)),1)):C(R)&&C(Ie)?(v(),_(C(r),{key:1,content:C(R)},null,8,[`content`])):C(Me)?(v(),_(l,{key:2,src:C(Me),"image-container-class":`w-full h-full`},null,8,[`src`])):(v(),_(ae(C(Re)?.content),E({key:3,ref_key:`componentRef`,ref:X,class:`w-full h-full relative`},C(ve),h(C(P).options.events||{})),null,16))],6),n[2]||=x(`div`,{class:`mt-auto`},null,-1),!C(U)||!C(W)?(v(),w(`div`,Te,[C(U)?c(``,!0):(v(),_(a,E({key:0},C(Ze),{class:`cui-button-medium`,onClick:et}),null,16)),n[1]||=x(`div`,{class:`ml-auto`},null,-1),C(W)?c(``,!0):(v(),_(a,E({key:1},C(Qe),{loading:C(qe),disabled:C(B),class:`cui-button-medium`,onClick:tt}),null,16,[`loading`,`disabled`]))])):c(``,!0)])}}}),B={modal:!0,closable:!0,blockScroll:!0,draggable:!1,dismissableMask:!0,baseZIndex:1100,showHeader:!1},V={pt:{root:{class:`p-dialog-maximized pt-safe border-none`}}},H={pt:{root:{class:`shadow-xl shadow-black/30 overflow-hidden`}}},U={mobile:{textDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V},imageDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V},componentDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V},stepperDialog:{style:{maxWidth:`none`,maxHeight:`100vh`},...V}},desktop:{textDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`auto`},...H},imageDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`70vw`},...H},componentDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`70vw`},...H},stepperDialog:{style:{maxWidth:`1000px`,maxHeight:`90vh`,width:`70vw`},...H}}};function W(){return{open:(e,t)=>{let n={content:e&&y(e),options:t||{},data:t&&t.data,close:e=>{N.emit(`close`,{instance:n,params:e})}};return N.emit(`open`,{instance:n}),n}}}function De(){let e=W(),{mdBreakpoint:n}=de(),r=(e,n,r)=>{let i=g({...e});r&&(n.pt.root.class=(n.pt.root.class?n.pt.root.class+` `:``)+`fixed mt-0`),t(i.options.props,n)},i=(e,t,i,a)=>{let o={mobile:a?.mobile?{style:{...a.mobile},...V}:void 0,desktop:a?.desktop?{style:{...a.desktop},...H}:void 0};return M(n,n=>{if(n)switch(t){case`text`:r(e,o.mobile??U.mobile.textDialog,i);break;case`image`:r(e,o.mobile??U.mobile.imageDialog,i);break;case`component`:r(e,o.mobile??U.mobile.componentDialog,i);break;case`stepper`:r(e,o.mobile??U.mobile.stepperDialog,i);break;default:break}else switch(t){case`text`:r(e,o.desktop??U.desktop.textDialog,i);break;case`image`:r(e,o.desktop??U.desktop.imageDialog,i);break;case`component`:r(e,o.desktop??U.desktop.componentDialog,i);break;case`stepper`:r(e,o.desktop??U.desktop.stepperDialog,i);break;default:break}},{immediate:!0}),e};function a(t,n,r){let{component:a,data:o,onConfirm:c,onCancel:l,onSettled:u,events:ee,...d}=n,f={content:a?y(a):void 0};r?.pt||(r={...r,pt:{root:{}}});let p=C(o.draggable)??!1;p&&(r.draggable=!0);let m=C(o.dismissableMask);m!==void 0&&(r.dismissableMask=m);let h=C(o.modal);h!==void 0&&(r.modal=h);let _=o.rootId??s(10);r.pt.root.id=_;let v=e.open(Ee,{data:k(g({confirmText:o.confirmText??void 0,cancelText:o.cancelText??void 0,hideConfirmButton:o.hideConfirmButton??!1,hideCancelButton:o.hideCancelButton??!1,loading:o.loading??!1,disabled:o.disabled??!1,confirmButtonProps:o.confirmButtonProps??void 0,cancelButtonProps:o.cancelButtonProps??void 0,dialogContentClass:o.dialogContentClass??void 0,dialogContentStyle:o.dialogContentStyle??void 0,stayActive:o.stayActive??!1,fullscreen:o.fullscreen??!1,contentText:o.contentText??void 0,src:o.src??void 0,markdown:o.markdown??!1,contentProps:o.contentProps??void 0,tabs:o.tabs??void 0,rootId:_,...o})),props:r,templates:f,events:ee,onConfirm:c,onCancel:l,onClose:e=>{if(e?.data?.status===`confirm`){let{status:t,...n}=e.data;c?.(n?.data??n)}else l?.();u?.(e?.data?.data??e?.data)}});return o.fullscreen?v:i(v,t,p,d?.dialogSize)}function o(e){let{data:t,...n}=e,r=structuredClone(B);return r.style={...B.style,width:`auto`,minWidth:`400px`},t.fullscreen&&(r.style={...r.style,maxWidth:`none`,maxHeight:`100vh`},r.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`text`,{data:t,...n},r)}function c(e){let{data:t,...n}=e,r=structuredClone(B);return t.fullscreen&&(r.style={...r.style,maxWidth:`none`,maxHeight:`100vh`},r.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`image`,{data:t,...n},r)}function l(e,t){let{data:n,...r}=t,i=structuredClone(B);return n.fullscreen&&(i.style={...i.style,maxWidth:`none`,maxHeight:`100vh`},i.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`component`,{component:e,data:n,...r},i)}function u(e,t){let{data:n,...r}=t,i=structuredClone(B);return n.fullscreen&&(i.style={...i.style,maxWidth:`none`,maxHeight:`100vh`},i.pt={root:{class:`p-dialog-maximized pt-safe border-none`}}),a(`stepper`,{component:e,data:n,...r},i)}return{openTextDialog:o,openImageDialog:c,openComponentDialog:l,openStepperDialog:u}}export{z as n,F as r,De as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as e}from"./api-
|
|
1
|
+
import{N as e}from"./api-C-NlYhuP.js";import"./vendor-zxCOTbSj.js";async function t(e){let t=await i(e);a()&&await o(t,e.filename)||s(t,e.filename)}function n(t){return/^https?:\/\//i.test(t)?t:`${e().target.value?.endpoint.url??window.location.origin}${t.startsWith(`/`)?``:`/`}${t}`}function r(){let t={},n=e().target.value?.tokens;return n?.access&&(t.Authorization=`Bearer ${n.access}`),n?.proxySession&&(t[`X-Proxy-Session`]=n.proxySession),t}async function i(e){if(`blob`in e)return e.blob;if(`dataUrl`in e)return(await fetch(e.dataUrl)).blob();let t=await fetch(n(e.url),{headers:r(),credentials:`include`});if(!t.ok)throw Error(`Download failed: ${t.status} ${t.statusText}`);return t.blob()}function a(){return typeof window>`u`?!1:window.matchMedia(`(display-mode: standalone)`).matches?!0:!!window.navigator.standalone}async function o(e,t){if(typeof navigator>`u`||!navigator.canShare||!navigator.share)return!1;let n=new File([e],t,{type:e.type||`application/octet-stream`});if(!navigator.canShare({files:[n]}))return!1;try{return await navigator.share({files:[n]}),!0}catch(e){return e instanceof Error&&e.name===`AbortError`}}function s(e,t){let n=URL.createObjectURL(e),r=document.createElement(`a`);r.href=n,r.download=t,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3)}export{t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Si as e,Ti as t,Yi as n,fi as r,qi as i,vi as a}from"./vendor-cameraui-
|
|
1
|
+
import{Si as e,Ti as t,Yi as n,fi as r,qi as i,vi as a}from"./vendor-cameraui-BABuGvhg.js";import{C as o,v as s}from"./api-C-NlYhuP.js";import{Cn as c,Ln as l,Tn as u,Xt as d,cr as f,en as p,er as m,lr as h,or as g,rr as _,sn as v,wn as y,zn as b}from"./vendor-zxCOTbSj.js";import{t as x}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ee}from"./useSharedComposables-Ca_A3w0h.js";import{a as te,i as S,n as C,r as w,t as T}from"./vendor-xterm-BRN-hOYD.js";var E=x(v({__name:`CuiConsole`,props:{options:{default:()=>({fontSize:14})},ignoreBreakpoint:{type:Boolean}},emits:[`resize`],setup(s,{expose:v,emit:x}){let E=s,D=x,{smBreakpoint:ne}=ee(),{t:re}=r(),ie=o(),{copy:ae}=a({legacy:!0}),{options:O,ignoreBreakpoint:k}=g(E),A={fontSize:14,scrollback:5e3,allowTransparency:!1,smoothScrollDuration:0,disableStdin:!0,allowProposedApi:!0},j=l(`terminalContainerRef`),M=m(0),N=_(null),P=m(!1),F=null,I=null,L=null,R=null,z,B=``,V=!1,H=!0,U=e(j),W=d(()=>{if(!N.value)return!0;let e=N.value.buffer.active.length-N.value.rows;return M.value>=e});function G(){N.value&&(M.value=N.value.buffer.active.viewportY)}function K(){!N.value||!F||(F.fit(),G(),N.value.cols&&D(`resize`,N.value.cols))}function q(){K(),N.value?.scrollToBottom(),G()}let J=i(G,16),Y=i(q,100),{start:oe,stop:se,isPending:ce}=n(()=>{N.value&&B&&(N.value.write(B),B=``,J())},16,{immediate:!1});function le(e){if(H){if(e=e.replace(/^[\r\n]+/,``),!e)return;H=!1}V&&=(B+=`
|
|
2
2
|
`,!1),e.endsWith(`
|
|
3
3
|
`)?(B+=e.slice(0,-1),V=!0):e.endsWith(`\r
|
|
4
4
|
`)?(B+=e.slice(0,-2),V=!0):B+=e,ce.value||oe()}function X(){requestAnimationFrame(()=>{N.value?.scrollToBottom(),J()})}function ue(){se(),B=``,V=!1,H=!0,N.value?.reset(),J()}function de(){if(!N.value)return``;let e=N.value.buffer.active,t=[];for(let n=0;n<e.length;n++)t.push(e.getLine(n)?.translateToString(!0)??``);return t.join(`
|
package/dist/interface/assets/{useSharedComposables-B5-Uy9Br.js → useSharedComposables-Ca_A3w0h.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ai as e,Fi as t,Ui as n,Vi as r,ki as i,wi as a}from"./vendor-cameraui-
|
|
1
|
+
import{Ai as e,Fi as t,Ui as n,Vi as r,ki as i,wi as a}from"./vendor-cameraui-BABuGvhg.js";import{Qn as o,Xt as s,sr as c}from"./vendor-zxCOTbSj.js";import{c as l,f as u}from"./vendor-core-C6lCucBy.js";import{n as d}from"./ui-B2i8B4yr.js";function f(){let{angle:e}=x(),t=S({listenOrientation:!0});return{xxsBreakpoint:s(()=>{let n=t.width.value;return e.value>0&&(n=screen.height>screen.width?screen.height:screen.width),n<=360}),xsBreakpoint:s(()=>{let n=t.width.value;return e.value>0&&(n=screen.height>screen.width?screen.height:screen.width),n<=450}),smBreakpoint:s(()=>{let n=t.width.value;return e.value>0&&(n=screen.height>screen.width?screen.height:screen.width),n<640}),mdBreakpoint:s(()=>{let n=t.width.value;return e.value>0&&(n=screen.height>screen.width?screen.height:screen.width),n<768}),xmdBreakpoint:s(()=>{let n=t.width.value;return e.value>0&&(n=screen.height>screen.width?screen.height:screen.width),n>=640&&n<1024}),lgBreakpoint:s(()=>{let n=t.width.value;return e.value>0&&(n=screen.height>screen.width?screen.height:screen.width),n>=1024}),xlBreakpoint:s(()=>{let n=t.width.value;return e.value>0&&(n=screen.height>screen.width?screen.height:screen.width),n>=1280}),xxlBreakpoint:s(()=>{let n=t.width.value;return e.value>0&&(n=screen.height>screen.width?screen.height:screen.width),n>=1536})}}function p(){let e=s(()=>typeof window>`u`?!1:[/Android/i,/webOS/i,/iPhone/i,/iPad/i,/iPod/i,/BlackBerry/i,/Windows Phone/i].some(e=>navigator.userAgent.match(e))),t=s(()=>typeof window>`u`?!1:[/Android/i].some(e=>navigator.userAgent.match(e))),n=s(()=>typeof window>`u`?!1:r.value||i.value),r=s(()=>typeof window>`u`?!1:[/iPhone/i].some(e=>navigator.userAgent.match(e))),i=s(()=>typeof window>`u`?!1:[/Macintosh/i].some(e=>navigator.userAgent.match(e)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>1)),a=s(()=>typeof window>`u`?[0,0]:r.value&&navigator.userAgent.match(/OS [\d_]+/i)?.[0].substr(3).split(`_`).map(e=>parseInt(e))||[0,0]),o=s(()=>typeof window>`u`?!1:[/Safari/i].some(e=>navigator.userAgent.match(e))),c=s(()=>typeof window>`u`?null:navigator.userAgent.match(/Version\/(\d+).+Safari/)),l=s(()=>typeof window>`u`?!1:[/Firefox/i].some(e=>navigator.userAgent.match(e))),u=s(()=>typeof window>`u`?!1:[/Chrome/i].some(e=>navigator.userAgent.match(e))),d=s(()=>{let e=!1;if(`maxTouchPoints`in navigator)e=navigator.maxTouchPoints>0;else if(`msMaxTouchPoints`in navigator)navigator!==null&&(e=navigator.msMaxTouchPoints>0);else{let t=matchMedia(`(pointer:coarse)`);if(t&&t.media===`(pointer:coarse)`)e=!!t.matches;else if(`orientation`in window)e=!0;else{let t=navigator.userAgent;e=/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(t)||/\b(Android|Windows Phone|iPad|iPod)\b/i.test(t)}}return e}),f=s(()=>D(`(display-mode: standalone)`).value||window.navigator.standalone||document.referrer.includes(`android-app://`)),p=s(()=>{let e=document.body.requestFullscreen!==void 0||document.body.mozRequestFullScreen!==void 0||document.body.webkitRequestFullscreen!==void 0||document.body.msRequestFullscreen!==void 0||document.exitFullscreen!==void 0||document.mozCancelFullScreen!==void 0||document.webkitExitFullscreen!==void 0,[t,n]=a.value,i=t&&t>=17&&n&&n>=2;return!!(e||!r.value||r.value&&i)});return{isPWA:f,isMobile:e,isAndroid:t,isIos:n,isIphone:r,isIpad:i,iosVersion:a,isSafari:o,safariVersion:c,isFirefox:l,isChrome:u,isTouch:d,isPipSupported:s(()=>{let e=`pictureInPictureEnabled`in document;return n.value&&f.value?!1:e}),isFsSupported:p}}var m={HEIGHT:70},h={HEIGHT:60};function g(){let e=l(),t=s(()=>e.meta.ui);return{ui:t,showNavbar:s(()=>!!c(t.value?.showNavbar)),showTopbar:s(()=>!!c(t.value?.showTopbar)),showBottombar:s(()=>!!c(t.value?.showBottombar)),showRouterLoading:s(()=>!!c(t.value?.showRouterLoading)),showRouterLoadingSub:s(()=>!!c(t.value?.showRouterLoadingSub)),minifiedTopbar:s(()=>!!c(t.value?.minifiedTopbar)),background:s(()=>c(t.value?.background)),padding:s(()=>!!c(t.value?.containerSettings?.padding)),paddingTop:s(()=>c(t.value?.containerSettings?.paddingTop)),paddingBottom:s(()=>c(t.value?.containerSettings?.paddingBottom)),paddingLeft:s(()=>c(t.value?.containerSettings?.paddingLeft)),paddingRight:s(()=>c(t.value?.containerSettings?.paddingRight)),showTitle:s(()=>!!c(t.value?.containerSettings?.showTitle)),fullwidth:s(()=>!!c(t.value?.containerSettings?.fullwidth)),disableScroll:s(()=>!!c(t.value?.containerSettings?.disableScroll)),ignoreSafeAreaBottom:s(()=>!!c(t.value?.containerSettings?.ignoreSafeAreaBottom)),noExtraPadding:s(()=>!!c(t.value?.containerSettings?.noExtraPadding)),allowOverflowX:s(()=>!!c(t.value?.containerSettings?.allowOverflowX))}}var _=Symbol(`cui-app-bus`),v=o({navbarState:void 0,subbarState:void 0});function y(){let e=a(_);return e.on(({subbarState:e,navbarState:t})=>{e&&e!==v.subbarState&&(v.subbarState=e),t&&t!==v.navbarState&&(v.navbarState=t)}),{state:v,bus:e}}function b(){let e=d(),t=l(),n=g(),{state:r}=y(),{mdBreakpoint:i,smBreakpoint:a,xlBreakpoint:o}=w(),{uiSettings:c}=u(e),f=s(()=>{if(_.value)return c.value.interface.navbarStayCollapsed&&r.navbarState!==`opened`?i.value?`closed`:`minified`:o.value||r.navbarState===`opened`?`opened`:i.value?`closed`:`minified`}),p=s(()=>t.path.includes(`/settings`)?o.value?`opened`:r.subbarState?r.subbarState:`closed`:void 0),_=s(()=>n.showNavbar.value),v=s(()=>n.showBottombar.value&&c.value.interface.showBottomBarOnMobile&&a.value),b=s(()=>n.showTopbar.value);return{navbarState:f,subbarState:p,showBottombar:v,showNavbar:_,showTopbar:b,topbarHeight:s(()=>b.value?n.minifiedTopbar.value?0:h.HEIGHT:0),bottombarHeight:s(()=>v.value?m.HEIGHT:0)}}var x=n(t),S=n(r),C=n(e),w=n(f),T=n(p),E=n(b),D=n(i);export{S as a,C as i,E as n,y as o,T as r,g as s,w as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{v as e}from"./api-
|
|
1
|
+
import{v as e}from"./api-C-NlYhuP.js";import{Gn as t,Qn as n,Xt as r}from"./vendor-zxCOTbSj.js";var i=1e4,a=n({streamStatus:{}}),o=null,s=null,c;function l(){s?.emit(`get-stream-status`)}function u(){return s||(o=t(!0),o.run(()=>{let t=e(`/camera.ui`);s=t,t.on(`stream-status`,e=>{a.streamStatus=e}),t.onReady(()=>{l()})}),c||=setInterval(l,i),s)}function d(e){let t=Object.values(e);if(t.length===0)return`idle`;let n=t.filter(e=>e===`connected`).length,r=t.filter(e=>e===`error`).length,i=t.filter(e=>e===`connecting`).length;return n===t.length?`connected`:r===t.length?`error`:i>0&&n===0&&r===0?`connecting`:n>0&&(r>0||t.some(e=>e===`idle`))?`partial`:n>0?`connected`:i>0?`connecting`:`idle`}function f(){function e(){u()}function t(){}function n(e){let t=a.streamStatus[e];return t?d(t):`idle`}function i(e){return a.streamStatus[e]}function o(e,t){return a.streamStatus[e]?.[t]??`idle`}return{streamStatus:r(()=>a.streamStatus),getCameraStatus:n,getCameraSources:i,getSourceStatus:o,connect:e,disconnect:t,refresh:l}}export{f as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,S as t,w as n}from"./vendor-zod-V2qTUMVc.js";import{I as r,L as i,R as a,z as o}from"./types-
|
|
1
|
+
import{C as e,S as t,w as n}from"./vendor-zod-V2qTUMVc.js";import{I as r,L as i,R as a,z as o}from"./types-BK05hngw.js";var s=e({username:n().trim().min(1,`Username is required`),password:n().trim().min(1,`Password is required`),rememberMe:t().optional()}).strict(),c=r,l=a,u=i,d=o;export{d as a,l as i,c as n,u as r,s as t};
|