@camera.ui/server 2.2.5-beta.3 → 2.2.5
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-YZOLos9r.js → 404-CiOxoqnT.js} +1 -1
- package/dist/interface/assets/{About-HtxMc8JZ.js → About-DWOlfWEm.js} +1 -1
- package/dist/interface/assets/Assistant-B1xdMAkA.js +1 -0
- package/dist/interface/assets/{Assistant-BMscGKnc.css → Assistant-CXx7EY1W.css} +1 -1
- package/dist/interface/assets/{Automation-D3DcUyui.js → Automation-BJgwUkUB.js} +3 -3
- package/dist/interface/assets/{AutomationImport-Dp_hT6hQ.js → AutomationImport-9GRAndAt.js} +2 -2
- package/dist/interface/assets/{AutomationStore-BKR7GXMk.js → AutomationStore-D_HR2Xby.js} +2 -2
- package/dist/interface/assets/{AutomationStoreDetail-B9yh51WQ.js → AutomationStoreDetail-B9MxV2py.js} +2 -2
- package/dist/interface/assets/Automations-Bpw8olkc.js +2 -0
- package/dist/interface/assets/Camera-BpFfZDaS.js +2 -0
- package/dist/interface/assets/{CameraConsole-BI93OaRt.js → CameraConsole-BKPTLSTO.js} +1 -1
- package/dist/interface/assets/{Cameras-Ctub8sVt.js → Cameras-DcrVCgLy.js} +2 -2
- package/dist/interface/assets/Camview-C16pyCZk.js +1 -0
- package/dist/interface/assets/{Camview-CZct5cnP.css → Camview-DasO326h.css} +1 -1
- package/dist/interface/assets/{CertificateUpload-xW55NA1Q.js → CertificateUpload-BYFKZCP9.js} +1 -1
- package/dist/interface/assets/Config-BmEL5EaW.js +2 -0
- package/dist/interface/assets/{ConfigActionAssistant-B488rOp5.js → ConfigActionAssistant-DM4tIhoa.js} +1 -1
- package/dist/interface/assets/{ConfigActionCameraControl-ZMUuBxOs.js → ConfigActionCameraControl-Deo0eDPS.js} +1 -1
- package/dist/interface/assets/{ConfigActionDelay-BJ11xvOW.js → ConfigActionDelay-_EqbfWgo.js} +1 -1
- package/dist/interface/assets/{ConfigActionHttp-DOUo69OR.js → ConfigActionHttp-BxJmoshF.js} +1 -1
- package/dist/interface/assets/{ConfigActionImageInput-BMzuVZW9.js → ConfigActionImageInput-KrzXFQDm.js} +1 -1
- package/dist/interface/assets/{ConfigActionMqtt-Co_uksca.js → ConfigActionMqtt-BoYBomRC.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-CcZkstYx.js → ConfigActionNotification-CSAOijDt.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotificationControl--VeucoTw.js → ConfigActionNotificationControl-BOdyKiOs.js} +1 -1
- package/dist/interface/assets/{ConfigActionOutput-CyDa1LGA.js → ConfigActionOutput-CwsPcnd_.js} +1 -1
- package/dist/interface/assets/{ConfigActionPlugin-Kfg3ZEQF.js → ConfigActionPlugin-D3wyULpp.js} +1 -1
- package/dist/interface/assets/{ConfigActionSensor-DhAF0HPw.js → ConfigActionSensor-BmeaIxYY.js} +1 -1
- package/dist/interface/assets/{ConfigActionSnapshot-zMe3SPvW.js → ConfigActionSnapshot-DbyFKcYr.js} +1 -1
- package/dist/interface/assets/{ConfigActionVariable-BE5q3NwY.js → ConfigActionVariable-cThGJ1Pc.js} +1 -1
- package/dist/interface/assets/{ConfigConditionIfElse-BNIRtSVD.js → ConfigConditionIfElse-BugkJeXR.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSensorState-DTNd-SzI.js → ConfigConditionSensorState-Bf-mMf4E.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSwitch-BU5wWMU1.js → ConfigConditionSwitch-DcpFoYET.js} +1 -1
- package/dist/interface/assets/{ConfigConditionTime-KXTCIVIV.js → ConfigConditionTime-CM4bSMyU.js} +1 -1
- package/dist/interface/assets/{ConfigSensorValueInput-BC1FpMm-.js → ConfigSensorValueInput-CgAI34__.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerDetection-hIN1hi53.js → ConfigTriggerDetection-BWK6gfwM.js} +1 -1
- package/dist/interface/assets/ConfigTriggerGeofence-Cm3CU7Tl.js +1 -0
- package/dist/interface/assets/{ConfigTriggerManual-C5vwxS-e.js → ConfigTriggerManual-DgkR-GWy.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerMqtt-B4PtWC3E.js → ConfigTriggerMqtt-BMFjTAso.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSchedule-BZzUdGBa.js → ConfigTriggerSchedule-E_QWfNKy.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-D18nwMsj.js → ConfigTriggerSensor-DOdJkZRo.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-BhygWLB4.js → ConfigTriggerSystem-BFDIbZsE.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerWebhook-yyuBuhLD.js → ConfigTriggerWebhook-DDoUEVHb.js} +1 -1
- package/dist/interface/assets/Console-BIj7cIqO.js +1 -0
- package/dist/interface/assets/CuiAssistantConversation-CRNCKRHz.js +5 -0
- package/dist/interface/assets/{CuiAssistantConversation-lkpZg3ML.css → CuiAssistantConversation-DQ0wOJvV.css} +1 -1
- package/dist/interface/assets/CuiAutomationRunsDialog-DMUfNcsf.js +1 -0
- package/dist/interface/assets/CuiBottomSheet-CYi5c3fP.js +1 -0
- package/dist/interface/assets/{CuiBottomSheet-DWefGWK2.js → CuiBottomSheet-FwsPnJ3n.js} +1 -1
- package/dist/interface/assets/{CuiCameraPipCard-C2qaGJlH.js → CuiCameraPipCard-Cb_Qbly6.js} +1 -1
- package/dist/interface/assets/CuiCameraRecordings-BeciatDY.js +1 -0
- package/dist/interface/assets/{CuiCameraShares-DcqOcePX.js → CuiCameraShares-CSFwIYsg.js} +1 -1
- package/dist/interface/assets/CuiCameraTable-BgL5FZso.js +1 -0
- package/dist/interface/assets/{CuiCameraTable-BOkfp_5M.js → CuiCameraTable-DBRfGX3I.js} +2 -2
- package/dist/interface/assets/{CuiChartTable-DP38uBwK.js → CuiChartTable-CtasoxMM.js} +1 -1
- package/dist/interface/assets/{CuiConsole-C7xE_nQg.js → CuiConsole-DQbAafiz.js} +2 -2
- package/dist/interface/assets/CuiDataTable-JlD7Agky.js +1 -0
- package/dist/interface/assets/{CuiLightControl-ChGYpQAK.js → CuiLightControl-CLYl5pfN.js} +1 -1
- package/dist/interface/assets/{CuiList-DJp0__mV.js → CuiList-Dsu5m0TA.js} +1 -1
- package/dist/interface/assets/{CuiMarkdownContent-BUYtK_wD.js → CuiMarkdownContent-BYBQX_aF.js} +1 -1
- package/dist/interface/assets/CuiMarkdownContent-DTAm-EDR.js +1 -0
- package/dist/interface/assets/{CuiPluginCard-CWImTZ6l.js → CuiPluginCard-CC1oXY16.js} +2 -2
- package/dist/interface/assets/{CuiPluginCategoryChip-Ch_upS6Y.js → CuiPluginCategoryChip-B2bR5LQa.js} +1 -1
- package/dist/interface/assets/{CuiPluginOAuthButton-DEQ9xILN.js → CuiPluginOAuthButton-DfEjfcY-.js} +2 -2
- package/dist/interface/assets/{CuiPluginTrustBadge-sVWdvHcM.js → CuiPluginTrustBadge-C6CW6Soh.js} +1 -1
- package/dist/interface/assets/{CuiQRCode-DqSF4SkD.js → CuiQRCode-DGKBhDib.js} +1 -1
- package/dist/interface/assets/CuiSchema-pAAVh28m.js +1 -0
- package/dist/interface/assets/{CuiTopNavbarItem-B_KWykgq.js → CuiTopNavbarItem-ve-3Dsc3.js} +1 -1
- package/dist/interface/assets/Faces-1xd5yGuO.js +1 -0
- package/dist/interface/assets/{FirstSteps-QNYTkEJo.js → FirstSteps-E9cMqa0a.js} +1 -1
- package/dist/interface/assets/Floorplan-BovV_ATh.js +1 -0
- package/dist/interface/assets/Instances-BbxyB7vR.js +1 -0
- package/dist/interface/assets/{Logs-BSPT80vP.js → Logs-BhRactvQ.js} +2 -2
- package/dist/interface/assets/{Menu-HHtuhIS2.js → Menu-DMCmUVDs.js} +1 -1
- package/dist/interface/assets/Metrics-BgXrNl38.js +12 -0
- package/dist/interface/assets/Metrics-ChVnC6f6.css +1 -0
- package/dist/interface/assets/{OAuthDeviceFlow-Bn1nlWNa.js → OAuthDeviceFlow-BMEwVkIa.js} +1 -1
- package/dist/interface/assets/Plugin-CDNywaVE.js +1 -0
- package/dist/interface/assets/Plugin-Qr_Q_Qfi.css +1 -0
- package/dist/interface/assets/{PluginConsole-Cv-uhnPY.js → PluginConsole-C4Ba_U_1.js} +1 -1
- package/dist/interface/assets/{PluginDetail-cpOz7FkA.js → PluginDetail-13OWIzdd.js} +2 -2
- package/dist/interface/assets/{PluginSchema-DW3TGeTM.js → PluginSchema-DN0cSU8s.js} +1 -1
- package/dist/interface/assets/PluginSearch-sPkO8aH3.js +2 -0
- package/dist/interface/assets/PluginSearch-xNIlfXk4.js +1 -0
- package/dist/interface/assets/{PluginUpdateProgress-n6q6vzyd.js → PluginUpdateProgress-CeWuRp3Z.js} +1 -1
- package/dist/interface/assets/Plugins-C8yjhxnQ.js +1 -0
- package/dist/interface/assets/{RecentEventsFilter-CTR5JK_P.js → RecentEventsFilter-Kp_lTOuG.js} +1 -1
- package/dist/interface/assets/Recordings-BHT8Vvv_.js +1 -0
- package/dist/interface/assets/Recordings-DwuojaAw.css +1 -0
- package/dist/interface/assets/SensorEdit-C-yJdJuP.js +1 -0
- package/dist/interface/assets/{SensorHistory-9CdOpCPs.js → SensorHistory-ClAcOgHj.js} +1 -1
- package/dist/interface/assets/Sensors-Cza4Et2c.js +2 -0
- package/dist/interface/assets/Settings-Cj0leoGd.js +1 -0
- package/dist/interface/assets/SettingsAccount-COkcBBSz.js +1 -0
- package/dist/interface/assets/SettingsAccount-DjrJdssy.js +1 -0
- package/dist/interface/assets/{SettingsAppearance-BY1xQMx4.js → SettingsAppearance-CJt4xJEW.js} +1 -1
- package/dist/interface/assets/SettingsAppearance-D20YW7Vq.js +1 -0
- package/dist/interface/assets/SettingsAssistant-CDdbbG-c.css +1 -0
- package/dist/interface/assets/SettingsAssistant-DKWDp1AI.js +1 -0
- package/dist/interface/assets/{SettingsBackup-D_weokqu.js → SettingsBackup-DIJmci05.js} +1 -1
- package/dist/interface/assets/{SettingsList-Bq24WTDU.js → SettingsList-Cb_dLy5T.js} +1 -1
- package/dist/interface/assets/SettingsMqtt-LIuCRPT5.js +1 -0
- package/dist/interface/assets/{SettingsNotifications-8TZOUxg2.js → SettingsNotifications-CZxqqH_8.js} +1 -1
- package/dist/interface/assets/{SettingsPermissions-M8u_jrN0.js → SettingsPermissions-CJiz0Z7B.js} +1 -1
- package/dist/interface/assets/{SettingsRecordings-C1Kp5xW_.js → SettingsRecordings-BEpwMh-y.js} +1 -1
- package/dist/interface/assets/SettingsRemote-DRt-N_yA.js +2 -0
- package/dist/interface/assets/{SettingsSystem-Cetu2faJ.js → SettingsSystem-Cncdpx8T.js} +2 -2
- package/dist/interface/assets/{SettingsUsers-CDwtQLdV.js → SettingsUsers-DZkz8WlI.js} +1 -1
- package/dist/interface/assets/Terminal-U4yfJN3O.js +4 -0
- package/dist/interface/assets/Training-Bkn52mPJ.css +1 -0
- package/dist/interface/assets/Training-DfgE_dA8.js +1 -0
- package/dist/interface/assets/Updates-cCvbFq3w.js +2 -0
- package/dist/interface/assets/{VariableInput-BxPj5wo6.js → VariableInput-PVsqGYW0.js} +1 -1
- package/dist/interface/assets/{VariableSuggestions-CbizvAkz.js → VariableSuggestions-DwLtlzVz.js} +1 -1
- package/dist/interface/assets/{VersionsHandler-CePyEUVO.js → VersionsHandler-Df7dhddp.js} +2 -2
- package/dist/interface/assets/{VirtualSensorCreate-D_GVoeL7.js → VirtualSensorCreate-FTKANjd-.js} +1 -1
- package/dist/interface/assets/Workers-Ba37_3cY.js +2 -0
- package/dist/interface/assets/{account-Bu30He0P.js → account-DwW7pBOb.js} +1 -1
- package/dist/interface/assets/{alert-circle-D2fAQwTX.js → alert-circle-BdUVAt1B.js} +1 -1
- package/dist/interface/assets/{alert-outline-D7zaSJH_.js → alert-outline-IRxYbw0j.js} +1 -1
- package/dist/interface/assets/api-C1mraOYr.js +4 -0
- package/dist/interface/assets/{api-DW2niHRN.js → api-DpqXhwcx.js} +1 -1
- package/dist/interface/assets/api-z8ZVnoOl.css +2 -0
- package/dist/interface/assets/{arrow-left-BGLyEqqa.js → arrow-left-Bk-ZrOVr.js} +1 -1
- package/dist/interface/assets/assistant-Lz3mFLDo.js +1 -0
- package/dist/interface/assets/{assistantModels-D0soYqq7.js → assistantModels-BsSgRsws.js} +1 -1
- package/dist/interface/assets/{auth-Dc8bUpc-.js → auth-L7_5vsJs.js} +1 -1
- package/dist/interface/assets/{automations-DXrjbArj.js → automations-D1XFFSrm.js} +1 -1
- package/dist/interface/assets/{back-filled-BPBVnQjx.js → back-filled-D-X19YMO.js} +1 -1
- package/dist/interface/assets/{bell-ring-CyCFPUL_.js → bell-ring-DreEHgoT.js} +1 -1
- package/dist/interface/assets/{brain-CIJB1ree.js → brain-DuDAg544.js} +1 -1
- package/dist/interface/assets/{cameraSources-QJfUDOQJ.js → cameraSources-DEGJDtmK.js} +1 -1
- package/dist/interface/assets/{cctv-D6kxZ-lp.js → cctv-DM-C_8_6.js} +1 -1
- package/dist/interface/assets/{check-circle-DHAAn6A6.js → check-circle-Bevuw8-0.js} +1 -1
- package/dist/interface/assets/{check-circle-outline-BbqeKfIK.js → check-circle-outline-aMxkvksr.js} +1 -1
- package/dist/interface/assets/{chevron-down-ZYTrU871.js → chevron-down-CCFn9Z56.js} +1 -1
- package/dist/interface/assets/{chevron-up-LQXNz9CE.js → chevron-up-CSImUM3_.js} +1 -1
- package/dist/interface/assets/{clock-outline-CKTiLKoR.js → clock-outline-DH3WIEJt.js} +1 -1
- package/dist/interface/assets/{close-BbEPZQqa.js → close-CMxyM4v9.js} +1 -1
- package/dist/interface/assets/{close-circle-BSUSUs4K.js → close-circle-CfgJCZ9A.js} +1 -1
- package/dist/interface/assets/{cloud-check-BTGbrAQ_.js → cloud-check-CbdFLIdR.js} +1 -1
- package/dist/interface/assets/cloudHandoff-DkUx4m3P.js +1 -0
- package/dist/interface/assets/{config-CiQDwB4t.js → config-CVqy37fG.js} +1 -1
- package/dist/interface/assets/{content-copy-V0DW9ZbH.js → content-copy-Bz49QPOI.js} +1 -1
- package/dist/interface/assets/{copy-DsmMEtSH.js → copy-DA6QQHRt.js} +1 -1
- package/dist/interface/assets/{cube-scan-DGhUFV1x.js → cube-scan-IiH8zwm2.js} +1 -1
- package/dist/interface/assets/database-refresh-outline-CIUDpcuq.js +1 -0
- package/dist/interface/assets/{delete-CY8fsIW6.js → delete-Btu-UVx9.js} +1 -1
- package/dist/interface/assets/{dist-DNyx_J8o.js → dist-D_qWDAKp.js} +1 -1
- package/dist/interface/assets/{dots-vertical-pP1vP0Qa.js → dots-vertical-D496SIss.js} +1 -1
- package/dist/interface/assets/{download-CyjJ7yJW.js → download-BSC7lwq_.js} +1 -1
- package/dist/interface/assets/esm-0kxqa_1s.js +1 -0
- package/dist/interface/assets/esm-4p_M5mFV.js +1 -0
- package/dist/interface/assets/esm-8G-vO1KQ.js +1 -0
- package/dist/interface/assets/esm-8cB56ICb.js +1 -0
- package/dist/interface/assets/esm-B92csSEb.js +1 -0
- package/dist/interface/assets/esm-BHiNTIiN.js +1 -0
- package/dist/interface/assets/esm-Bu9PMLmw.js +1 -0
- package/dist/interface/assets/esm-CS6Ra46d.js +1 -0
- package/dist/interface/assets/esm-CWvQWALL.js +1 -0
- package/dist/interface/assets/esm-D2UDrwmt.js +1 -0
- package/dist/interface/assets/esm-D8OHF2X1.js +1 -0
- package/dist/interface/assets/esm-DrXkS8eG.js +1 -0
- package/dist/interface/assets/esm-pfoHiO1a.js +1 -0
- package/dist/interface/assets/esm-tJSCF7Vh.js +1 -0
- package/dist/interface/assets/{eventIcons-cdzqQc0W.js → eventIcons-UQutPG3p.js} +1 -1
- package/dist/interface/assets/{eye-off-JCu1iUer.js → eye-off-CSU0U8g7.js} +1 -1
- package/dist/interface/assets/{eye-off-outline-GErp76H2.js → eye-off-outline-DCxLRGo_.js} +1 -1
- package/dist/interface/assets/{flowSchema-BRTZHQ1w.js → flowSchema-CppNBDy1.js} +1 -1
- package/dist/interface/assets/{help-circle-outline-G43EJuch.js → help-circle-outline-Cr_yNhPi.js} +1 -1
- package/dist/interface/assets/{history-CNJREqJG.js → history-anuCbp1T.js} +1 -1
- package/dist/interface/assets/{home-B-_OQpZ6.js → home-N3bDR1vX.js} +1 -1
- package/dist/interface/assets/{information-outline-Blt4EtWJ.js → information-outline-CMWIvLNB.js} +1 -1
- package/dist/interface/assets/{intercomService-BnA-FQ0Q.js → intercomService-CjoJaOZ7.js} +1 -1
- package/dist/interface/assets/{lan-C3jliANx.js → lan-CYXjdk7L.js} +1 -1
- package/dist/interface/assets/main-BK3kmiG2.js +3 -0
- package/dist/interface/assets/{main-BoGhBedC.css → main-Bo0Lb1y2.css} +1 -1
- package/dist/interface/assets/{microphone-B6xc9JQ2.js → microphone-BB2pATI_.js} +1 -1
- package/dist/interface/assets/{minus-BI5qXFwJ.js → minus-BCp3ZNKO.js} +1 -1
- package/dist/interface/assets/{mqtt-iD9XHYO_.js → mqtt-BENV9Fx4.js} +1 -1
- package/dist/interface/assets/native-BEkWOGyD.js +1 -0
- package/dist/interface/assets/native-ugMg173F.js +1 -0
- package/dist/interface/assets/{nodeDefinitions-Dop49tx8.js → nodeDefinitions-ByrqsENY.js} +1 -1
- package/dist/interface/assets/{notifications-CbAJX7RF.js → notifications-By40oPng.js} +1 -1
- package/dist/interface/assets/{pause-DKzvPG2b.js → pause-BQlxwAW2.js} +1 -1
- package/dist/interface/assets/{pencil-DKbi9SsG.js → pencil-CDsNnEXi.js} +1 -1
- package/dist/interface/assets/{pencil-outline-CD3Xv98d.js → pencil-outline-CIQL5Kui.js} +1 -1
- package/dist/interface/assets/plugin-eafNQWg2.js +1 -0
- package/dist/interface/assets/{plugins-eIUrXNeM.js → plugins-09rEDbMz.js} +1 -1
- package/dist/interface/assets/{plus-CHPYoMO_.js → plus-Bp4q9G7S.js} +1 -1
- package/dist/interface/assets/{plus--kDl8ben.js → plus-CySoovdr.js} +1 -1
- package/dist/interface/assets/{power-C9wmNlFS.js → power-WmBLDR0-.js} +1 -1
- package/dist/interface/assets/{radar-B3ra28GD.js → radar-CyYAmume.js} +1 -1
- package/dist/interface/assets/{refresh-DfqyhMOh.js → refresh-CHTA3jVN.js} +1 -1
- package/dist/interface/assets/{restore-FMacmqd_.js → restore-C8RNM5yX.js} +1 -1
- package/dist/interface/assets/{rooms-BqPyo8jc.js → rooms-LBxn-Uuu.js} +1 -1
- package/dist/interface/assets/{round-alt-arrow-left-bold-56eF9Bol.js → round-alt-arrow-left-bold-Gh5mi_yR.js} +1 -1
- package/dist/interface/assets/{search-BXbDWhLk.js → search-BajCVmOI.js} +1 -1
- package/dist/interface/assets/sensorIcons-Csu5s0uk.js +1 -0
- package/dist/interface/assets/{sensorSlots-BZCXtnb6.js → sensorSlots-CtbKmsGG.js} +1 -1
- package/dist/interface/assets/{sensors-DttBNEEt.js → sensors-CbzNs18A.js} +1 -1
- package/dist/interface/assets/{server-DUFhf2c_.js → server-Btp5KILd.js} +1 -1
- package/dist/interface/assets/{settings-Cw63SIJl.js → settings-DnksaK7m.js} +1 -1
- package/dist/interface/assets/{source-branch-oyzrlfCD.js → source-branch-CzqIPffP.js} +1 -1
- package/dist/interface/assets/{theme-BMmjtQ4w.js → theme-GhzGwpqd.js} +1 -1
- package/dist/interface/assets/{trash-2-BQc04l9M.js → trash-2-DJeEhHf4.js} +1 -1
- package/dist/interface/assets/{trash-can-outline-Bk5eENNM.js → trash-can-outline-DrT6iw7I.js} +1 -1
- package/dist/interface/assets/{trash-fill-CXk8BmtF.js → trash-fill-Bb_-UicM.js} +1 -1
- package/dist/interface/assets/{trash2-2rUvghml.js → trash2-Dsl8gfxq.js} +1 -1
- package/dist/interface/assets/types-BAwhu9iv.js +1 -0
- package/dist/interface/assets/{types-DWTSNJ79.js → types-CklFkUXk.js} +1 -1
- package/dist/interface/assets/{types-CXw7CEzu.js → types-D8QWPhe-.js} +1 -1
- package/dist/interface/assets/{undo-Dcf7vcsv.js → undo-DoqJW-k7.js} +1 -1
- package/dist/interface/assets/ungrouped-BMk56E3L.js +1 -0
- package/dist/interface/assets/{ungrouped-DHMJ9Rg1.css → ungrouped-BnQIcSQd.css} +1 -1
- package/dist/interface/assets/{updates-TIPWXKzL.js → updates-CGo0T4sn.js} +1 -1
- package/dist/interface/assets/{upload-nnbfDypK.js → upload-C3w1XH-o.js} +1 -1
- package/dist/interface/assets/{upload-B-ZYPekV.js → upload-DtIcwiNC.js} +1 -1
- package/dist/interface/assets/{useAppVersion-BIz44Bg4.js → useAppVersion-CJlexqyz.js} +1 -1
- package/dist/interface/assets/{useAssistantActions-CLkkw9kB.js → useAssistantActions-Cc_O6M9_.js} +1 -1
- package/dist/interface/assets/useBackupRestore-_s8vS5WF.js +1 -0
- package/dist/interface/assets/{useCameraOptions-A97teAIr.js → useCameraOptions-CFISVNgk.js} +1 -1
- package/dist/interface/assets/{useKeyboardInset-DXVi1dLG.js → useKeyboardInset-DkUn62i7.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-BlFxVXjF.js → useLogsSocket-D-ndWAg0.js} +1 -1
- package/dist/interface/assets/{useNavLayout-C5obaCNv.js → useNavLayout-CG0X_3kt.js} +1 -1
- package/dist/interface/assets/{usePermissions-C8hB_pG1.js → usePermissions-BXTw4tII.js} +1 -1
- package/dist/interface/assets/{usePluginUpdates-DO0-Gk4Q.js → usePluginUpdates-nW_dt66E.js} +1 -1
- package/dist/interface/assets/{usePushRegistration-BUttCraQ.js → usePushRegistration-DCqOAxR4.js} +2 -2
- package/dist/interface/assets/{useServerRestart-Cz9eVHUE.js → useServerRestart-CxJGxAcU.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-BhS_MCCB.js → useStreamStatus-CXb1HbAq.js} +1 -1
- package/dist/interface/assets/{useTabSwipe-D4k8lm1M.js → useTabSwipe-DHb8__wU.js} +1 -1
- package/dist/interface/assets/{useUpdateChannel-D9lhfW0y.js → useUpdateChannel-BR4PMh1R.js} +1 -1
- package/dist/interface/assets/{useUpdatesSocket-DnH9sON5.js → useUpdatesSocket-DKDRZhvc.js} +1 -1
- package/dist/interface/assets/useUserOptions-lyc4WJ4L.js +1 -0
- package/dist/interface/assets/{variable-CcE0ZwTr.js → variable-ywTlRfo5.js} +1 -1
- package/dist/interface/assets/{vendor-cameraui-QXD8jkcj.js → vendor-cameraui-CK4yHsJi.js} +45 -45
- package/dist/interface/assets/{vendor-capacitor-COL6Kz75.js → vendor-capacitor-f9ShAzys.js} +2 -2
- package/dist/interface/assets/{vendor-chart-80wrH3md.js → vendor-chart-DBK083Hu.js} +1 -1
- package/dist/interface/assets/{vendor-core-CnhnyKDl.js → vendor-core-B-Q4es-f.js} +1 -1
- package/dist/interface/assets/{vendor-dnd-CEJS9JKU.js → vendor-dnd-DGQLvX6Y.js} +1 -1
- package/dist/interface/assets/{vendor-draggabilly-BY7O1F_Z.js → vendor-draggabilly-D8CK6M-y.js} +1 -1
- package/dist/interface/assets/{vendor-DGke_6M4.js → vendor-gFkr2qsZ.js} +1 -1
- package/dist/interface/assets/vendor-gridstack-DtDG3os6.js +3 -0
- package/dist/interface/assets/{vendor-markdown-DD4teg2u.js → vendor-markdown-qHIinIUE.js} +1 -1
- package/dist/interface/assets/{vendor-primevue-CCUqY55W.js → vendor-primevue-Cmp3VjIC.js} +72 -72
- package/dist/interface/assets/{vendor-vueflow-Bmwd2les.js → vendor-vueflow-bSwRZ9X8.js} +1 -1
- package/dist/interface/assets/web-3OOGlctS.js +1 -0
- package/dist/interface/assets/web-5NFVd9gs.js +1 -0
- package/dist/interface/assets/web-A4yovlXr.js +1 -0
- package/dist/interface/assets/web-BBC3YoWX.js +1 -0
- package/dist/interface/assets/web-B_9Qyt8E.js +1 -0
- package/dist/interface/assets/web-BjKL51lK-DUIsII0n.js +1 -0
- package/dist/interface/assets/web-C2-YAfsx.js +1 -0
- package/dist/interface/assets/web-CUL_MhvM.js +1 -0
- package/dist/interface/assets/web-CZVCXYLV.js +1 -0
- package/dist/interface/assets/web-DJ-LUxlV.js +1 -0
- package/dist/interface/assets/web-DNsEGLGS.js +1 -0
- package/dist/interface/assets/web-DZsU0QT_.js +1 -0
- package/dist/interface/assets/web-MoyOTbiU.js +1 -0
- package/dist/interface/assets/web-avRH_3t7.js +1 -0
- package/dist/interface/assets/{webhook-oVbP79Yk.js → webhook-CWKf2Qxu.js} +1 -1
- package/dist/interface/assets/workbox-window.prod.es5-BEYAF-e-.js +1 -0
- package/dist/interface/assets/{zoom-in-GKNy8xA7.js → zoom-in-CHkXAWHy.js} +1 -1
- package/dist/interface/ha/{404-DLhJqxRl.js → 404-B2T8Gktj.js} +1 -1
- package/dist/interface/ha/{About-DC0i1iE4.js → About-CrTKzU9_.js} +6 -6
- package/dist/interface/ha/{Assistant-BmazMPIg.js → Assistant-BDHJmYx_.js} +823 -820
- package/dist/interface/ha/{Automation-gabF9YzQ.js → Automation-Czo5EsAg.js} +337 -337
- package/dist/interface/ha/{AutomationImport-DaqZNs9s.js → AutomationImport-CuFAQbiX.js} +6 -6
- package/dist/interface/ha/{AutomationStore-DzM4huo5.js → AutomationStore-D-6x0JIt.js} +16 -16
- package/dist/interface/ha/{AutomationStoreDetail-CpzQMt_D.js → AutomationStoreDetail-Dad4q1MN.js} +19 -19
- package/dist/interface/ha/{Automations-Dcm4Us50.js → Automations-C-oGM5SR.js} +71 -71
- package/dist/interface/ha/{Camera-CNK3QR7l.js → Camera-CerkQGbZ.js} +214 -214
- package/dist/interface/ha/{CameraConsole-CpcF0411.js → CameraConsole-hRGwbjsD.js} +3 -3
- package/dist/interface/ha/{Cameras-Cf9rwRyf.js → Cameras-Bk5TFXA8.js} +92 -92
- package/dist/interface/ha/{Camview-BFKR2t6C.js → Camview-CsKKqxxY.js} +382 -382
- package/dist/interface/ha/{Config-1XH3zfr2.js → Config-Vl4-K3A_.js} +11 -11
- package/dist/interface/ha/{ConfigActionAssistant-C0-NFoTB.js → ConfigActionAssistant-OWUX8glZ.js} +4 -4
- package/dist/interface/ha/{ConfigActionCameraControl-DNSKZPSZ.js → ConfigActionCameraControl-DEaOot8w.js} +3 -3
- package/dist/interface/ha/{ConfigActionHttp-DVJAcGkl.js → ConfigActionHttp-CSr2BpKL.js} +2 -2
- package/dist/interface/ha/{ConfigActionImageInput-VVbHHHZs.js → ConfigActionImageInput--O8Tyca-.js} +1 -1
- package/dist/interface/ha/{ConfigActionMqtt-N5OUJDzM.js → ConfigActionMqtt-DQJ4-gs2.js} +4 -4
- package/dist/interface/ha/{ConfigActionNotification-s142tQoU.js → ConfigActionNotification-wR8CCA_T.js} +3 -3
- package/dist/interface/ha/{ConfigActionNotificationControl-Dh7kaKVP.js → ConfigActionNotificationControl-DNMrHwPz.js} +2 -2
- package/dist/interface/ha/{ConfigActionOutput-B4HHTg5C.js → ConfigActionOutput-C-LVFxFP.js} +1 -1
- package/dist/interface/ha/{ConfigActionPlugin-D20G2Dqf.js → ConfigActionPlugin-BCREAkNo.js} +5 -5
- package/dist/interface/ha/{ConfigActionSensor-BS3jrFaG.js → ConfigActionSensor-D48CQ6qR.js} +5 -5
- package/dist/interface/ha/{ConfigActionSnapshot-CInLAcwK.js → ConfigActionSnapshot-DpDy88Mg.js} +2 -2
- package/dist/interface/ha/{ConfigActionVariable-C5vADGNF.js → ConfigActionVariable-D9BxmwvB.js} +1 -1
- package/dist/interface/ha/{ConfigConditionIfElse-CPeWDD31.js → ConfigConditionIfElse-CW42tQFY.js} +3 -3
- package/dist/interface/ha/{ConfigConditionSensorState-BM5GmpN6.js → ConfigConditionSensorState-BZpij7kB.js} +4 -4
- package/dist/interface/ha/{ConfigConditionSwitch-Dmz9FduJ.js → ConfigConditionSwitch-DlTuJ9Sf.js} +5 -5
- package/dist/interface/ha/{ConfigSensorValueInput-Ch5njvtv.js → ConfigSensorValueInput-2QLHESlE.js} +5 -5
- package/dist/interface/ha/{ConfigTriggerDetection-BR2QWNyO.js → ConfigTriggerDetection-DPmUkmUJ.js} +3 -3
- package/dist/interface/ha/{ConfigTriggerGeofence-CaImOjyW.js → ConfigTriggerGeofence--T9OXhGl.js} +2 -2
- package/dist/interface/ha/{ConfigTriggerMqtt-DWz1XwZQ.js → ConfigTriggerMqtt-fZn_X6yY.js} +1 -1
- package/dist/interface/ha/{ConfigTriggerSensor-lfnhz0im.js → ConfigTriggerSensor-_3O6iBFX.js} +1 -1
- package/dist/interface/ha/{ConfigTriggerSystem-CwUhyFAj.js → ConfigTriggerSystem-CC9lqi8Q.js} +2 -2
- package/dist/interface/ha/{ConfigTriggerWebhook-J6Xts7GQ.js → ConfigTriggerWebhook-BuBcgXqf.js} +1 -1
- package/dist/interface/ha/{Console-BSdKFm6Y.js → Console-DNc49UEt.js} +13 -13
- package/dist/interface/ha/{CuiAutomationRunsDialog-BU8sympp.js → CuiAutomationRunsDialog-Dj_iiZht.js} +2 -2
- package/dist/interface/ha/{CuiBottomSheet-Bnp7ta7V.js → CuiBottomSheet-DG7wOV7m.js} +1 -1
- package/dist/interface/ha/{CuiCameraRecordings-E-mMqKSs.js → CuiCameraRecordings-BlOZTfQ4.js} +12 -12
- package/dist/interface/ha/{CuiCameraShares-DcNwd2OC.js → CuiCameraShares-BOn-mobi.js} +2 -2
- package/dist/interface/ha/{CuiCameraTable-DNW9Vm_A.js → CuiCameraTable-D50FLiK8.js} +9 -9
- package/dist/interface/ha/{CuiChartTable-muC7jL2H.js → CuiChartTable-CfcVRvdZ.js} +42 -42
- package/dist/interface/ha/{CuiConsole-ND8bcuTg.js → CuiConsole-UpN0Wihm.js} +6 -6
- package/dist/interface/ha/{CuiDataTable-CN4T8DgP.js → CuiDataTable-CpADXKNF.js} +6 -6
- package/dist/interface/ha/{CuiPluginCard-nIQiyQvH.js → CuiPluginCard-CT6ZfL9o.js} +52 -52
- package/dist/interface/ha/{CuiPluginOAuthButton-FJ49NfUh.js → CuiPluginOAuthButton-BJVKd6Ac.js} +6 -6
- package/dist/interface/ha/{CuiPluginTrustBadge-D6eanMyI.js → CuiPluginTrustBadge-gb9GI24w.js} +3 -3
- package/dist/interface/ha/{CuiQRCode-BdJzeeoE.js → CuiQRCode-DqKDx9zR.js} +7 -7
- package/dist/interface/ha/{CuiSchema-DY0V-8xP.js → CuiSchema-CHeJkx0k.js} +129 -129
- package/dist/interface/ha/{CuiTopNavbarItem-DT5pAKHp.js → CuiTopNavbarItem-CFeI6ZYU.js} +5 -5
- package/dist/interface/ha/Faces-CTfvhhCj.js +1441 -0
- package/dist/interface/ha/{FirstSteps-yS2M2cor.js → FirstSteps-C-WXJ8IL.js} +80 -80
- package/dist/interface/ha/{Floorplan-DSOeScjI.js → Floorplan-CDKTYN7B.js} +307 -307
- package/dist/interface/ha/{Instances-B4h5EKpF.js → Instances-n23yvN3L.js} +62 -62
- package/dist/interface/ha/{Logs-BH0Lxvs6.js → Logs-Dfm0BWOQ.js} +10 -10
- package/dist/interface/ha/{Menu-COH7QXuE.js → Menu-76kvdAEF.js} +15 -15
- package/dist/interface/ha/{Metrics-BtnRqL_I.js → Metrics-lnivlTWm.js} +101 -100
- package/dist/interface/ha/{OAuthDeviceFlow-D2QJ9MnP.js → OAuthDeviceFlow-4ChaymHu.js} +7 -7
- package/dist/interface/ha/{Plugin-EfUSqwyh.js → Plugin-BV8YA8aN.js} +486 -347
- package/dist/interface/ha/{PluginConsole-hh_o15f7.js → PluginConsole-csf1Km7f.js} +4 -4
- package/dist/interface/ha/{PluginDetail-DFiXGkrY.js → PluginDetail-DTff6cbA.js} +185 -185
- package/dist/interface/ha/{PluginSearch-Cdrfubrj.js → PluginSearch-CdjxmFPN.js} +116 -116
- package/dist/interface/ha/{PluginUpdateProgress-BD2g2kVj.js → PluginUpdateProgress-ClyF4pbA.js} +3 -3
- package/dist/interface/ha/{Plugins-qFiHW-Nk.js → Plugins-_xOrqP36.js} +34 -34
- package/dist/interface/ha/{RecentEventsFilter-UWrXnvfq.js → RecentEventsFilter-9ZkDHD1g.js} +1 -1
- package/dist/interface/ha/{Recordings-BzeC6tOz.js → Recordings-dTZv0pkp.js} +483 -458
- package/dist/interface/ha/{SensorEdit-BSgy7lkZ.js → SensorEdit-DDRkZjmm.js} +40 -40
- package/dist/interface/ha/{SensorHistory-IDvP8LKH.js → SensorHistory-DSGlRITr.js} +2 -2
- package/dist/interface/ha/{Sensors-Diqp4oZ0.js → Sensors-DjhGRUzM.js} +477 -462
- package/dist/interface/ha/{Settings-BgDsxAlx.js → Settings-DYuvz4de.js} +17 -17
- package/dist/interface/ha/{SettingsAccount-DBXMQPYk.js → SettingsAccount-DQAo8SnK.js} +146 -146
- package/dist/interface/ha/{SettingsAppearance-VmbjnT3o.js → SettingsAppearance-_tbhpUA0.js} +8 -8
- package/dist/interface/ha/{SettingsAssistant-C2R4ZetE.js → SettingsAssistant-DSf-dYuD.js} +656 -533
- package/dist/interface/ha/{SettingsBackup-BqY9TwYn.js → SettingsBackup-wLOa7xtw.js} +40 -40
- package/dist/interface/ha/{SettingsList-CzHcfo2N.js → SettingsList-CYujivw5.js} +4 -4
- package/dist/interface/ha/{SettingsMqtt-DqV3h3Ow.js → SettingsMqtt-DbxJ-h3J.js} +115 -115
- package/dist/interface/ha/{SettingsNotifications-yn5fIR_7.js → SettingsNotifications-DO2-KJvq.js} +118 -118
- package/dist/interface/ha/{SettingsRecordings-DDs1lyfY.js → SettingsRecordings-C47i1UhI.js} +9 -9
- package/dist/interface/ha/{SettingsRemote-jBw3l5E0.js → SettingsRemote-BPvb-KLI.js} +335 -335
- package/dist/interface/ha/{SettingsSystem-BOv9hNlk.js → SettingsSystem-BJPrv9JE.js} +9 -9
- package/dist/interface/ha/{SettingsUsers-Biv-2F4C.js → SettingsUsers-CcpCz6Y1.js} +89 -89
- package/dist/interface/ha/{Terminal-CmcrGEV0.js → Terminal-DT7-WNH1.js} +16 -16
- package/dist/interface/ha/Training-CqGBf8k1.js +1694 -0
- package/dist/interface/ha/{Updates-DJAcmDQJ.js → Updates-CgdrqX6R.js} +13 -13
- package/dist/interface/ha/{VariableInput-DlYg7t0m.js → VariableInput-DOzSFgxT.js} +1 -1
- package/dist/interface/ha/{VersionsHandler-UnrAWn-b.js → VersionsHandler-ItklhE2t.js} +10 -10
- package/dist/interface/ha/{VirtualSensorCreate-CssxeaCC.js → VirtualSensorCreate-DbS3VqHC.js} +2 -2
- package/dist/interface/ha/{Workers-CLpqLugC.js → Workers-6PU7yUv1.js} +36 -36
- package/dist/interface/ha/{api-BP7mlzjP.js → api-Dv3Lk_g5.js} +8832 -8608
- package/dist/interface/ha/{api-B_tDa73J.js → api-anWolhVj.js} +3 -3
- package/dist/interface/ha/{assistant-Cb6ACguQ.js → assistant-B3m0Kgev.js} +101 -97
- package/dist/interface/ha/{auth-DOYDRgFm.js → auth-CAkpM_7A.js} +33 -33
- package/dist/interface/ha/{automationBlueprint-CbbG_ku4.js → automationBlueprint-DwVvbKbw.js} +4 -4
- package/dist/interface/ha/cameraui-cards.js +1 -1
- package/dist/interface/ha/{cards-BpBP1zVW.js → cards-B0qagpBw.js} +743 -667
- package/dist/interface/ha/{config-DroY1HBs.js → config-C20itAPE.js} +14 -14
- package/dist/interface/ha/database-refresh-outline-PiqlCkA7.js +19 -0
- package/dist/interface/ha/{dist-BTp4AyuI.js → dist-BIngHzHx.js} +5 -5
- package/dist/interface/ha/{dist-C6MBHJhs.js → dist-oFWkn6pD.js} +5 -8
- package/dist/interface/ha/{mqtt-NJTVdd53.js → mqtt-C6JvkA5E.js} +14 -14
- package/dist/interface/ha/{notifications-BPTvvgvv.js → notifications-gLmNZxwZ.js} +19 -19
- package/dist/interface/ha/{pinia-C6gt7A_Q.js → pinia-Du8AM917.js} +639 -625
- package/dist/interface/ha/{plugins-B29K3nQP.js → plugins-6x0kBuQb.js} +53 -53
- package/dist/interface/ha/{rooms-DLw0WUy_.js → rooms-C-mLT6mX.js} +11 -11
- package/dist/interface/ha/{server-B4b5_Ecu.js → server-DuikIt69.js} +28 -28
- package/dist/interface/ha/{types-DJHHL7nn.js → types-C0NcQ4Cz.js} +49 -38
- package/dist/interface/ha/{types-XqA3YJPD.js → types-wLECk3Ml.js} +3 -1
- package/dist/interface/ha/{ungrouped-xyK1QrsM.js → ungrouped-ooCH0Izh.js} +120 -120
- package/dist/interface/ha/{updates-XFSu9Tfm.js → updates-H8MlOQLC.js} +36 -36
- package/dist/interface/ha/{useAppVersion-BH3rU1zz.js → useAppVersion-DAUCV_cn.js} +1 -1
- package/dist/interface/ha/{useLogsSocket-CaTRzvgU.js → useLogsSocket-BOLAXPuD.js} +1 -1
- package/dist/interface/ha/{useNavLayout-DV0_OQx0.js → useNavLayout-B7VoHzM1.js} +2 -2
- package/dist/interface/ha/{useServerRestart-C8tynLUf.js → useServerRestart-qSH0bqwY.js} +1 -1
- package/dist/interface/ha/{useTabSwipe-CFoLDp3j.js → useTabSwipe-DYzG_gVG.js} +1 -1
- package/dist/interface/ha/{useUpdateChannel-DSG2RTPe.js → useUpdateChannel-CK7JiWbG.js} +2 -2
- package/dist/interface/ha/{useUpdatesSocket-CSQ0g7-6.js → useUpdatesSocket-DrqkGMuR.js} +1 -1
- package/dist/interface/ha/{useUserOptions-CFaCy6L1.js → useUserOptions-BteVUdaT.js} +1 -1
- package/dist/interface/index.html +70 -70
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +28 -28
- package/dist/server/requirements.txt +2 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +44 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +2 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +7 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +42 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/assistant_models.py +300 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +9 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/helper.py +21 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +80 -4
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +6 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +2 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face.py +3 -7
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face_embedder.py +69 -0
- package/dist/server/src/api/controllers/assistant.controller.js +1 -1
- package/dist/server/src/api/controllers/assistant.controller.js.map +1 -1
- package/dist/server/src/api/database/index.d.ts +1 -1
- package/dist/server/src/api/database/index.js +1 -1
- package/dist/server/src/api/database/migrations/v2-2-5.d.ts +3 -0
- package/dist/server/src/api/database/migrations/v2-2-5.js +19 -0
- package/dist/server/src/api/database/migrations/v2-2-5.js.map +1 -0
- package/dist/server/src/api/database/record-schemas.d.ts +4 -2
- package/dist/server/src/api/database/record-schemas.js +4 -1
- package/dist/server/src/api/database/record-schemas.js.map +1 -1
- package/dist/server/src/api/database/types.d.ts +5 -1
- package/dist/server/src/api/schemas/assistant.schema.d.ts +21 -7
- package/dist/server/src/api/schemas/assistant.schema.js +4 -1
- package/dist/server/src/api/schemas/assistant.schema.js.map +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +56 -8
- package/dist/server/src/api/schemas/cameras.schema.js +4 -3
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/services/assistant.service.d.ts +1 -1
- package/dist/server/src/api/services/assistant.service.js +4 -1
- package/dist/server/src/api/services/assistant.service.js.map +1 -1
- package/dist/server/src/api/services/cameras.service.js +2 -2
- package/dist/server/src/api/services/cameras.service.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/logs.js +3 -3
- package/dist/server/src/api/websocket/nsp/logs.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/worker-perf.js +13 -0
- package/dist/server/src/api/websocket/nsp/worker-perf.js.map +1 -1
- package/dist/server/src/api/websocket/types.d.ts +12 -0
- package/dist/server/src/assistant/budget.d.ts +27 -0
- package/dist/server/src/assistant/budget.js +118 -0
- package/dist/server/src/assistant/budget.js.map +1 -0
- package/dist/server/src/assistant/compaction.d.ts +10 -0
- package/dist/server/src/assistant/compaction.js +83 -0
- package/dist/server/src/assistant/compaction.js.map +1 -0
- package/dist/server/src/assistant/docs.js +4 -3
- package/dist/server/src/assistant/docs.js.map +1 -1
- package/dist/server/src/assistant/history.d.ts +1 -0
- package/dist/server/src/assistant/history.js +28 -0
- package/dist/server/src/assistant/history.js.map +1 -1
- package/dist/server/src/assistant/manager.d.ts +10 -0
- package/dist/server/src/assistant/manager.js +261 -62
- package/dist/server/src/assistant/manager.js.map +1 -1
- package/dist/server/src/assistant/plugin-models.d.ts +34 -0
- package/dist/server/src/assistant/plugin-models.js +266 -0
- package/dist/server/src/assistant/plugin-models.js.map +1 -0
- package/dist/server/src/assistant/prompt.d.ts +7 -1
- package/dist/server/src/assistant/prompt.js +75 -11
- package/dist/server/src/assistant/prompt.js.map +1 -1
- package/dist/server/src/assistant/providers.js +7 -3
- package/dist/server/src/assistant/providers.js.map +1 -1
- package/dist/server/src/assistant/recap.d.ts +3 -0
- package/dist/server/src/assistant/recap.js +65 -0
- package/dist/server/src/assistant/recap.js.map +1 -0
- package/dist/server/src/assistant/registry.d.ts +16 -1
- package/dist/server/src/assistant/registry.js +49 -1
- package/dist/server/src/assistant/registry.js.map +1 -1
- package/dist/server/src/assistant/retry.js +38 -24
- package/dist/server/src/assistant/retry.js.map +1 -1
- package/dist/server/src/assistant/router.d.ts +7 -0
- package/dist/server/src/assistant/router.js +67 -0
- package/dist/server/src/assistant/router.js.map +1 -0
- package/dist/server/src/assistant/skills.d.ts +8 -0
- package/dist/server/src/assistant/skills.js +59 -1
- package/dist/server/src/assistant/skills.js.map +1 -1
- package/dist/server/src/assistant/threads.d.ts +1 -0
- package/dist/server/src/assistant/threads.js +7 -1
- package/dist/server/src/assistant/threads.js.map +1 -1
- package/dist/server/src/assistant/tool-names.js +9 -1
- package/dist/server/src/assistant/tool-names.js.map +1 -1
- package/dist/server/src/assistant/tool-rank.d.ts +2 -0
- package/dist/server/src/assistant/tool-rank.js +48 -0
- package/dist/server/src/assistant/tool-rank.js.map +1 -0
- package/dist/server/src/assistant/tool-schema.d.ts +3 -0
- package/dist/server/src/assistant/tool-schema.js +65 -0
- package/dist/server/src/assistant/tool-schema.js.map +1 -0
- package/dist/server/src/assistant/tools/api.js +7 -9
- package/dist/server/src/assistant/tools/api.js.map +1 -1
- package/dist/server/src/assistant/tools/ask.js +1 -2
- package/dist/server/src/assistant/tools/ask.js.map +1 -1
- package/dist/server/src/assistant/tools/automations.js +3 -5
- package/dist/server/src/assistant/tools/automations.js.map +1 -1
- package/dist/server/src/assistant/tools/cameras.js +3 -4
- package/dist/server/src/assistant/tools/cameras.js.map +1 -1
- package/dist/server/src/assistant/tools/docs.js +5 -6
- package/dist/server/src/assistant/tools/docs.js.map +1 -1
- package/dist/server/src/assistant/tools/instance.js +19 -19
- package/dist/server/src/assistant/tools/instance.js.map +1 -1
- package/dist/server/src/assistant/tools/memory.js +3 -4
- package/dist/server/src/assistant/tools/memory.js.map +1 -1
- package/dist/server/src/assistant/tools/metrics.js +1 -2
- package/dist/server/src/assistant/tools/metrics.js.map +1 -1
- package/dist/server/src/assistant/tools/notifications.js +4 -11
- package/dist/server/src/assistant/tools/notifications.js.map +1 -1
- package/dist/server/src/assistant/tools/plugins.js +12 -14
- package/dist/server/src/assistant/tools/plugins.js.map +1 -1
- package/dist/server/src/assistant/tools/report.js +17 -12
- package/dist/server/src/assistant/tools/report.js.map +1 -1
- package/dist/server/src/assistant/tools/schedules.js +6 -11
- package/dist/server/src/assistant/tools/schedules.js.map +1 -1
- package/dist/server/src/assistant/tools/sensors.js +63 -4
- package/dist/server/src/assistant/tools/sensors.js.map +1 -1
- package/dist/server/src/assistant/tools/settings.js +2 -3
- package/dist/server/src/assistant/tools/settings.js.map +1 -1
- package/dist/server/src/assistant/tools/system.js +3 -5
- package/dist/server/src/assistant/tools/system.js.map +1 -1
- package/dist/server/src/assistant/tools/terminal.js +4 -5
- package/dist/server/src/assistant/tools/terminal.js.map +1 -1
- package/dist/server/src/assistant/types.d.ts +10 -1
- package/dist/server/src/assistant/uploads.d.ts +2 -1
- package/dist/server/src/assistant/uploads.js +25 -3
- package/dist/server/src/assistant/uploads.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-coordinator.d.ts +5 -0
- package/dist/server/src/camera/decoder/detection-coordinator.js +45 -14
- package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-pipeline.js +2 -1
- package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
- package/dist/server/src/camera/decoder/event-manager.d.ts +27 -4
- package/dist/server/src/camera/decoder/event-manager.js +175 -48
- package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
- package/dist/server/src/camera/decoder/nvr-sink.d.ts +4 -1
- package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
- package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
- package/dist/server/src/camera/decoder/perf-tracker.d.ts +10 -0
- package/dist/server/src/camera/decoder/perf-tracker.js +20 -0
- package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
- package/dist/server/src/camera/decoder/secondary-stage.d.ts +21 -1
- package/dist/server/src/camera/decoder/secondary-stage.js +301 -59
- package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
- package/dist/server/src/camera/decoder/side-queue.d.ts +13 -0
- package/dist/server/src/camera/decoder/side-queue.js +53 -0
- package/dist/server/src/camera/decoder/side-queue.js.map +1 -0
- package/dist/server/src/camera/decoder/sources/buffered-source.d.ts +2 -0
- package/dist/server/src/camera/decoder/sources/buffered-source.js +7 -1
- package/dist/server/src/camera/decoder/sources/buffered-source.js.map +1 -1
- package/dist/server/src/camera/decoder/types.d.ts +11 -1
- package/dist/server/src/camera/decoder/types.js +9 -1
- package/dist/server/src/camera/decoder/types.js.map +1 -1
- package/dist/server/src/camera/sensors/controller.d.ts +1 -0
- package/dist/server/src/camera/sensors/controller.js +28 -4
- package/dist/server/src/camera/sensors/controller.js.map +1 -1
- package/dist/server/src/main.js +11 -2
- package/dist/server/src/main.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +1 -14
- package/dist/server/src/plugins/runtime/python/proxy/sensor.py +14 -1
- package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +1 -13
- package/dist/server/src/rpc/interfaces/detection.d.ts +14 -2
- package/dist/server/src/rpc/server.js +1 -0
- package/dist/server/src/rpc/server.js.map +1 -1
- package/dist/server/src/services/config/index.d.ts +1 -0
- package/dist/server/src/services/config/index.js +6 -11
- package/dist/server/src/services/config/index.js.map +1 -1
- package/dist/server/src/utils/camera.js +8 -5
- package/dist/server/src/utils/camera.js.map +1 -1
- package/dist/server/src/utils/instance-lock.d.ts +1 -0
- package/dist/server/src/utils/instance-lock.js +57 -0
- package/dist/server/src/utils/instance-lock.js.map +1 -0
- package/dist/server/src/workers/agent.d.ts +2 -0
- package/dist/server/src/workers/agent.js +11 -1
- package/dist/server/src/workers/agent.js.map +1 -1
- package/dist/server/src/workers/manager.js +9 -2
- package/dist/server/src/workers/manager.js.map +1 -1
- package/dist/server/src/workers/types.d.ts +1 -0
- package/npm-shrinkwrap.json +209 -209
- package/package.json +28 -28
- package/dist/interface/assets/Assistant-bB8RBo-m.js +0 -1
- package/dist/interface/assets/Automations-BdZZW2eN.js +0 -2
- package/dist/interface/assets/Camera-Ct7ndOxr.js +0 -2
- package/dist/interface/assets/Camview-BjQdTHNh.js +0 -1
- package/dist/interface/assets/Config-CBTbYd5v.js +0 -2
- package/dist/interface/assets/ConfigTriggerGeofence-Bl2ZacbY.js +0 -1
- package/dist/interface/assets/Console-Cfk9MA9m.js +0 -1
- package/dist/interface/assets/CuiAssistantConversation-BHK_i56I.js +0 -5
- package/dist/interface/assets/CuiAutomationRunsDialog-B0ohEHw0.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-NgX7VFao.js +0 -1
- package/dist/interface/assets/CuiCameraRecordings-BTD-CQAg.js +0 -1
- package/dist/interface/assets/CuiCameraTable-KPk46Xcl.js +0 -1
- package/dist/interface/assets/CuiDataTable-CsqH-RB1.js +0 -1
- package/dist/interface/assets/CuiMarkdownContent-DSArmS0V.js +0 -1
- package/dist/interface/assets/CuiSchema-ytExUVhI.js +0 -1
- package/dist/interface/assets/Faces-Cb6XMxDC.js +0 -1
- package/dist/interface/assets/Floorplan-DbqADtN1.js +0 -1
- package/dist/interface/assets/Instances-DrMzPD65.js +0 -1
- package/dist/interface/assets/Metrics-BUP_-7o7.css +0 -1
- package/dist/interface/assets/Metrics-CqhUnVRA.js +0 -12
- package/dist/interface/assets/Plugin-BDqNeTCT.css +0 -1
- package/dist/interface/assets/Plugin-DyOg_fbg.js +0 -1
- package/dist/interface/assets/PluginSearch-BgecD9Ob.js +0 -2
- package/dist/interface/assets/PluginSearch-C8xHKikH.js +0 -1
- package/dist/interface/assets/Plugins-CuujWEtM.js +0 -1
- package/dist/interface/assets/Recordings-9FJqCfdM.css +0 -1
- package/dist/interface/assets/Recordings-ths9khZr.js +0 -1
- package/dist/interface/assets/SensorEdit-BzoIH7QC.js +0 -1
- package/dist/interface/assets/Sensors-CK5uExfU.js +0 -2
- package/dist/interface/assets/Settings-DN5hFtw_.js +0 -1
- package/dist/interface/assets/SettingsAccount-BCrmon5O.js +0 -1
- package/dist/interface/assets/SettingsAccount-CSy1BAIH.js +0 -1
- package/dist/interface/assets/SettingsAppearance-h_XPZfQl.js +0 -1
- package/dist/interface/assets/SettingsAssistant-BESab92C.css +0 -1
- package/dist/interface/assets/SettingsAssistant-D8FmVbUL.js +0 -1
- package/dist/interface/assets/SettingsMqtt-DCkLIYpF.js +0 -1
- package/dist/interface/assets/SettingsRemote-DXlQKwlT.js +0 -2
- package/dist/interface/assets/Terminal-Dl-aAZME.js +0 -4
- package/dist/interface/assets/Training-B1oQjAr8.css +0 -1
- package/dist/interface/assets/Training-DdZjXgt1.js +0 -1
- package/dist/interface/assets/Updates-CkB1lXuo.js +0 -2
- package/dist/interface/assets/Workers-7yiebNkl.js +0 -2
- package/dist/interface/assets/api-DK2Bav9D.js +0 -4
- package/dist/interface/assets/api-DTCqDA-h.css +0 -2
- package/dist/interface/assets/assistant-BJ6xKcw_.js +0 -1
- package/dist/interface/assets/cloudHandoff-DtlquYGZ.js +0 -1
- package/dist/interface/assets/esm-4Hzzm93H.js +0 -1
- package/dist/interface/assets/esm-BrFPi5_4.js +0 -1
- package/dist/interface/assets/esm-C7pcdfXf.js +0 -1
- package/dist/interface/assets/esm-C8bsO829.js +0 -1
- package/dist/interface/assets/esm-CXzdnAMk.js +0 -1
- package/dist/interface/assets/esm-CZNGZkPu.js +0 -1
- package/dist/interface/assets/esm-D0iI7OVb.js +0 -1
- package/dist/interface/assets/esm-DKolm6KU.js +0 -1
- package/dist/interface/assets/esm-DTywI9gs.js +0 -1
- package/dist/interface/assets/esm-DifXcK9i.js +0 -1
- package/dist/interface/assets/esm-Dq5o-Xb4.js +0 -1
- package/dist/interface/assets/esm-IbQuUZ5l.js +0 -1
- package/dist/interface/assets/esm-Xre_AP5i.js +0 -1
- package/dist/interface/assets/esm-zYnXHhpH.js +0 -1
- package/dist/interface/assets/main-D74mRIxc.js +0 -3
- package/dist/interface/assets/native-CAujTO6L.js +0 -1
- package/dist/interface/assets/native-sQ88qazf.js +0 -1
- package/dist/interface/assets/plugin-D7K50k_y.js +0 -1
- package/dist/interface/assets/sensorIcons-DQVgryYP.js +0 -1
- package/dist/interface/assets/types-5rE8Tz0_.js +0 -1
- package/dist/interface/assets/ungrouped-D56FGIrg.js +0 -1
- package/dist/interface/assets/useBackupRestore-Crfd592q.js +0 -1
- package/dist/interface/assets/useUserOptions-BTRBUuE2.js +0 -1
- package/dist/interface/assets/vendor-gridstack-anPyIu9V.js +0 -3
- package/dist/interface/assets/web-3M-ddn4G.js +0 -1
- package/dist/interface/assets/web-BY80VGyU.js +0 -1
- package/dist/interface/assets/web-B_tUYyM0.js +0 -1
- package/dist/interface/assets/web-BjKL51lK-Bb5NYhpJ.js +0 -1
- package/dist/interface/assets/web-Bv-4PJGI.js +0 -1
- package/dist/interface/assets/web-C3Pk8qeB.js +0 -1
- package/dist/interface/assets/web-CLcvGPH6.js +0 -1
- package/dist/interface/assets/web-DO8gTOVJ.js +0 -1
- package/dist/interface/assets/web-DR5q_DmI.js +0 -1
- package/dist/interface/assets/web-DRHbG4Te.js +0 -1
- package/dist/interface/assets/web-DaQ8d8yk.js +0 -1
- package/dist/interface/assets/web-EVRW5whF.js +0 -1
- package/dist/interface/assets/web-S6Dk3UWN.js +0 -1
- package/dist/interface/assets/web-pWIp0wf0.js +0 -1
- package/dist/interface/assets/workbox-window.prod.es5-Dz5rcO1z.js +0 -1
- package/dist/interface/ha/Faces-C_svyTrr.js +0 -1282
- package/dist/interface/ha/Training-BEzPiXZg.js +0 -1512
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{Bt as e,Kt as t,P as n,Vr as r,ai as i,g as a,hi as o,z as s,zt as c}from"./vendor-cameraui-QXD8jkcj.js";import{An as l,In as u,K as d,Mn as f,_ as p,_t as m,ct as h,et as g,i as _,kn as v,kr as y,m as b,xn as x,z as ee,zr as S,zt as C}from"./api-DK2Bav9D.js";import{$n as w,Cr as T,Hn as E,In as D,Jn as O,On as k,Pn as te,Rn as A,Sr as j,Xn as M,br as ne,cn as N,d as P,dn as F,dr as I,er as L,gn as R,hn as z,jn as re,l as ie,ln as B,nn as ae,or as V,rn as H,sn as U,sr as W,tn as oe,u as se,un as G,vn as K,yr as q,zn as J}from"./vendor-DGke_6M4.js";import{G as Y,K as X,W as ce}from"./types-5rE8Tz0_.js";import{i as le}from"./alert-outline-D7zaSJH_.js";import{p as Z,s as ue}from"./eventIcons-cdzqQc0W.js";import{p as Q,u as de}from"./vendor-core-CnhnyKDl.js";import{B as fe,M as pe,R as me,a as he,i as ge,l as _e,q as ve,z as ye}from"./vendor-primevue-CCUqY55W.js";import{t as be}from"./close-BbEPZQqa.js";import{t as xe}from"./chevron-up-LQXNz9CE.js";import{t as Se}from"./chevron-down-ZYTrU871.js";import{a as Ce,i as we,n as Te,o as Ee,r as De,t as Oe}from"./assistant-BJ6xKcw_.js";import{t as ke}from"./clock-outline-CKTiLKoR.js";import{t as Ae}from"./help-circle-outline-G43EJuch.js";import{a as $,c as je,d as Me,i as Ne,l as Pe,o as Fe,s as Ie,u as Le}from"./assistantModels-D0soYqq7.js";import{t as Re}from"./refresh-DfqyhMOh.js";import{t as ze}from"./check-circle-outline-BbqeKfIK.js";import{t as Be}from"./CuiMarkdownContent-BUYtK_wD.js";import{t as Ve}from"./source-branch-oyzrlfCD.js";import{t as He}from"./pencil-outline-CD3Xv98d.js";import{t as Ue}from"./content-copy-V0DW9ZbH.js";import{t as We}from"./microphone-B6xc9JQ2.js";import{t as Ge}from"./brain-CIJB1ree.js";import{t as Ke}from"./useAssistantActions-CLkkw9kB.js";var qe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Je(e,t){return D(),F(`svg`,qe,[...t[0]||=[N(`path`,{fill:`currentColor`,d:`M17 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V7zm2 16H5V5h11.17L19 7.83zm-7-7c-1.66 0-3 1.34-3 3s1.34 3 3 3s3-1.34 3-3s-1.34-3-3-3M6 6h9v4H6z`},null,-1)]])}var Ye=W({name:`mdi-content-save-outline`,render:Je}),Xe={class:`cui-assistant-question rounded-xl px-4 py-3 text-sm flex flex-col gap-3`},Ze={class:`flex items-start gap-2`},Qe={class:`min-w-0 flex-1 font-medium text-color`},$e={key:0,class:`flex flex-wrap gap-2`},et={key:1,class:`flex flex-col sm:flex-row gap-2`},tt={class:`flex flex-1 flex-col gap-1`},nt=[`for`],rt={class:`flex flex-1 flex-col gap-1`},it=[`for`],at={class:`flex items-center gap-2`},ot={key:1,class:`flex-1`},st=f(K({__name:`CuiAssistantQuestion`,props:{question:{},canResolve:{type:Boolean},busy:{type:Boolean}},emits:[`answer`,`skip`],setup(t,{emit:n}){let r=t,i=n,a=I(``),o=I(``),c=I(``),l=U(()=>(r.question.options??[]).filter(e=>e.trim())),u=U(()=>r.question.kind===`time_range`?!o.value||!c.value?``:`from ${d(o.value)} to ${d(c.value)}`:a.value.trim());function d(e){let t=-new Date(e).getTimezoneOffset(),n=t>=0?`+`:`-`,r=e=>String(Math.abs(e)).padStart(2,`0`);return`${e.length===16?`${e}:00`:e}${n}${r(Math.floor(t/60))}:${r(t%60)}`}function f(){u.value&&i(`answer`,u.value)}return(n,r)=>{let d=Ae,p=e,m=s;return D(),F(`div`,Xe,[N(`div`,Ze,[R(d,{class:`w-5 h-5 shrink-0 text-muted mt-0.5`}),N(`div`,Qe,T(t.question.question),1)]),q(l).length?(D(),F(`div`,$e,[(D(!0),F(H,null,A(q(l),e=>(D(),B(p,{key:e,type:`button`,severity:`secondary`,outlined:``,class:`cui-button-small`,disabled:!t.canResolve||t.busy,label:e,onClick:t=>i(`answer`,e)},null,8,[`disabled`,`label`,`onClick`]))),128))])):G(``,!0),t.question.kind===`time_range`?(D(),F(`div`,et,[N(`div`,tt,[N(`label`,{for:`question-from-${t.question.toolCallId}`,class:`text-xs text-muted`},T(n.$t(`views.assistant.question_from`)),9,nt),R(m,{id:`question-from-${t.question.toolCallId}`,modelValue:q(o),"onUpdate:modelValue":r[0]||=e=>V(o)?o.value=e:null,type:`datetime-local`,fluid:``,size:`small`},null,8,[`id`,`modelValue`])]),N(`div`,rt,[N(`label`,{for:`question-to-${t.question.toolCallId}`,class:`text-xs text-muted`},T(n.$t(`views.assistant.question_to`)),9,it),R(m,{id:`question-to-${t.question.toolCallId}`,modelValue:q(c),"onUpdate:modelValue":r[1]||=e=>V(c)?c.value=e:null,type:`datetime-local`,fluid:``,size:`small`},null,8,[`id`,`modelValue`])])])):G(``,!0),N(`div`,at,[t.question.kind===`time_range`?(D(),F(`span`,ot)):(D(),B(m,{key:0,modelValue:q(a),"onUpdate:modelValue":r[2]||=e=>V(a)?a.value=e:null,class:`flex-1 min-w-0`,size:`small`,placeholder:n.$t(`views.assistant.question_placeholder`),onKeydown:oe(ae(f,[`prevent`]),[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeydown`])),R(p,{type:`button`,severity:`secondary`,text:``,class:`cui-button-small`,disabled:!t.canResolve||t.busy,label:n.$t(`views.assistant.question_skip`),onClick:r[3]||=e=>i(`skip`)},null,8,[`disabled`,`label`]),R(p,{type:`button`,class:`cui-button-small`,disabled:!t.canResolve||t.busy||!q(u),loading:t.busy,label:n.$t(`views.assistant.question_answer`),onClick:f},null,8,[`disabled`,`loading`,`label`])])])}}}),[[`__scopeId`,`data-v-49502a42`]]),ct={class:`cui-assistant-approval rounded-xl px-4 py-3 text-sm flex flex-col gap-3`},lt={class:`flex items-start gap-2`},ut={class:`min-w-0 flex-1`},dt={class:`font-medium text-color`},ft={class:`text-muted`},pt={key:0,class:`cui-assistant-pre mt-2 max-h-40 overflow-auto rounded-lg p-2 text-xs whitespace-pre-wrap break-words font-mono`},mt={key:1,class:`mt-2 flex flex-col gap-1`},ht={class:`flex justify-end gap-2`},gt=f(K({__name:`CuiAssistantApproval`,props:{toolName:{},args:{},canResolve:{type:Boolean},busy:{type:Boolean}},emits:[`approve`,`reject`],setup(t,{emit:n}){let r=t,i=n,a=I(!1),o=I(``),s=U(()=>Me(r.toolName)),c=U(()=>{if(r.args===void 0||r.args===null||typeof r.args==`object`&&Object.keys(r.args).length===0)return``;try{return JSON.stringify(r.args,null,2)}catch{return String(r.args)}}),l=U(()=>{if(!a.value)return!1;try{let e=JSON.parse(o.value);return!e||typeof e!=`object`||Array.isArray(e)}catch{return!0}});function u(){a.value=!a.value,a.value&&(o.value=c.value)}function d(){if(!a.value){i(`approve`);return}if(l.value)return;let e=JSON.parse(o.value);i(`approve`,c.value===o.value?void 0:e)}return(n,r)=>{let f=ue,p=ge,m=fe,h=e;return D(),F(`div`,ct,[N(`div`,lt,[R(f,{class:`w-5 h-5 shrink-0 text-warning mt-0.5`}),N(`div`,ut,[N(`div`,dt,T(n.$t(`views.assistant.approval_title`,{tool:q(s)})),1),N(`div`,ft,T(n.$t(`views.assistant.approval_hint`)),1),q(c)&&!q(a)?(D(),F(`pre`,pt,T(q(c)),1)):G(``,!0),q(a)?(D(),F(`div`,mt,[R(p,{modelValue:q(o),"onUpdate:modelValue":r[0]||=e=>V(o)?o.value=e:null,"auto-resize":``,rows:`4`,class:`w-full font-mono text-xs`},null,8,[`modelValue`]),q(l)?(D(),B(m,{key:0,severity:`warn`,variant:`simple`,size:`small`},{default:w(()=>[z(T(n.$t(`views.assistant.approval_invalid_json`)),1)]),_:1})):(D(),B(m,{key:1,severity:`secondary`,variant:`simple`,size:`small`},{default:w(()=>[z(T(n.$t(`views.assistant.approval_edit_hint`)),1)]),_:1}))])):G(``,!0)])]),N(`div`,ht,[q(c)?(D(),B(h,{key:0,type:`button`,severity:`secondary`,text:``,class:`cui-button-small mr-auto`,disabled:!t.canResolve||t.busy,label:q(a)?n.$t(`components.form.button.cancel`):n.$t(`views.assistant.approval_edit`),onClick:u},null,8,[`disabled`,`label`])):G(``,!0),R(h,{type:`button`,severity:`secondary`,outlined:``,class:`cui-button-small`,disabled:!t.canResolve||t.busy,label:n.$t(`views.assistant.reject`),onClick:r[1]||=e=>i(`reject`)},null,8,[`disabled`,`label`]),R(h,{type:`button`,class:`cui-button-small`,disabled:!t.canResolve||t.busy||q(l),loading:t.busy,label:n.$t(`views.assistant.approve`),onClick:d},null,8,[`disabled`,`loading`,`label`])])])}}}),[[`__scopeId`,`data-v-f3109818`]]),_t={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function vt(e,t){return D(),F(`svg`,_t,[...t[0]||=[N(`path`,{fill:`currentColor`,d:`M12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8s8 3.59 8 8s-3.59 8-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m-2 14.5l6-4.5l-6-4.5z`},null,-1)]])}var yt=W({name:`mdi-play-circle-outline`,render:vt}),bt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function xt(e,t){return D(),F(`svg`,bt,[...t[0]||=[N(`path`,{fill:`currentColor`,d:`M13 5v6h1.17L12 13.17L9.83 11H11V5zm2-2H9v6H5l7 7l7-7h-4zm4 15H5v2h14z`},null,-1)]])}var St=W({name:`mdi-download-outline`,render:xt}),Ct={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function wt(e,t){return D(),F(`svg`,Ct,[...t[0]||=[N(`path`,{fill:`currentColor`,d:`M15 8v8H5V8zm1-2H4a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-3.5l4 4v-11l-4 4V7a1 1 0 0 0-1-1`},null,-1)]])}var Tt=W({name:`mdi-video-outline`,render:wt});function Et(){let e=de(),{t}=r(),n=y(),i=h(),{openEpisodePlayer:o}=d(),s=a(`@camera.ui/camera-ui-nvr`),{download:c}=v(),l=I(null);async function u(){let e=await C({parameter:{page:1,pageSize:-1},signal:new AbortController().signal});return new Map(e.result.map(e=>[e._id,e]))}function f(e,t){i.openComponentDialog(g,{data:{title:e.name,dedupeKey:`camera-event:${e._id}:${t}`,stayActive:!0,hideCancelButton:!0,hideConfirmButton:!0,contentProps:{camera:e,eventTimestamp:t},draggable:!0,blockDragOnSelectors:[`.p-dialog-body`],dismissableMask:!1,modal:!1,dialogContentClass:`!px-0 h-full`,goTo:`/cameras/${e.name}?startTs=${t}`},dialogSize:{desktop:{maxWidth:`800px`,maxHeight:`calc(100vh - max(1rem, var(--safe-area-inset-top)) - max(1rem, var(--safe-area-inset-bottom)))`,width:`50vw`}}})}async function p(r){l.value=r.id;try{if(r.kind===`download`){if(!r.url)throw Error(`missing`);await c({url:r.url,filename:r.label||`clip.mp4`,mimeType:`video/mp4`});return}let t=await u();if(r.kind===`camera`){let n=t.get(r.id);if(!n)throw Error(`missing`);await e.push(`/cameras/${n.name}`);return}if(r.kind===`episode`){let e=s.getEpisode(r.id);if(e||=(await s.loadEpisodes({limit:50}),s.getEpisode(r.id)),!e||!o(e,t))throw Error(`missing`);return}let n=r.cameraId?t.get(r.cameraId):void 0;if(!n||!r.timestamp)throw Error(`missing`);f(n,r.timestamp)}catch{n.add({severity:`warn`,detail:t(`views.assistant.reference_missing`),life:4e3})}finally{l.value=null}}return{busy:l,open:p}}var Dt={class:`flex flex-wrap gap-1.5`},Ot=[`disabled`,`onClick`],kt={class:`truncate max-w-[16rem]`},At=f(K({__name:`CuiAssistantReferences`,props:{references:{}},setup(e){let{t}=r(),{busy:n,open:i}=Et();function a(e){return e.kind===`camera`?t(`views.assistant.open_camera`):e.kind===`episode`?t(`views.assistant.open_episode`):e.kind===`download`?t(`views.assistant.download_clip`):t(`views.assistant.open_recording`)}return(t,r)=>{let o=Tt,s=St,c=yt;return D(),F(`div`,Dt,[(D(!0),F(H,null,A(e.references,(e,t)=>(D(),F(`button`,{key:`${e.kind}:${e.id}:${t}`,type:`button`,class:`cui-assistant-ref flex cursor-pointer items-center gap-1.5 rounded-lg px-2.5 py-1 text-xs`,disabled:q(n)===e.id,onClick:t=>q(i)(e)},[e.kind===`camera`?(D(),B(o,{key:0,class:`w-3.5 h-3.5 shrink-0`})):e.kind===`download`?(D(),B(s,{key:1,class:`w-3.5 h-3.5 shrink-0`})):(D(),B(c,{key:2,class:`w-3.5 h-3.5 shrink-0`})),N(`span`,kt,T(e.label||a(e)),1)],8,Ot))),128))])}}}),[[`__scopeId`,`data-v-aae1a6dd`]]),jt={class:`flex items-center gap-3`},Mt={class:`flex min-w-0 flex-1 flex-col`},Nt={class:`text-sm font-medium`},Pt={class:`text-xs`},Ft=f(K({__name:`CuiAssistantNotice`,props:{title:{},text:{},severity:{default:`warn`}},setup(e){return(t,n)=>{let r=fe;return D(),B(r,{severity:e.severity,size:`small`,class:`cui-assistant-notice`},{default:w(()=>[N(`div`,jt,[N(`div`,Mt,[N(`span`,Nt,T(e.title),1),N(`span`,Pt,T(e.text),1)]),J(t.$slots,`default`,{},void 0,!0)])]),_:3},8,[`severity`])}}}),[[`__scopeId`,`data-v-1dc28011`]]),It=K({__name:`CuiAssistantSetting`,props:{setting:{},modelId:{}},setup(e){let t=new Oe,n=e,r=p(),{user:i}=Q(r),{data:a}=t.getAssistantInfoQuery(),o=t.patchAssistantInfoMutation(),s=U(()=>i.value?.role===`admin`||i.value?.role===`master`),c=U(()=>a.value?.settings.models??[]),l=U(()=>c.value.find(e=>e._id===n.modelId)??(a.value?$(a.value.settings):void 0)),u=U(()=>n.setting===`sendImages`?l.value?.sendImages===!0:a.value?.settings[n.setting]===!0);async function d(e){if(n.setting!==`sendImages`){await o.mutateAsync({[n.setting]:e});return}let t=l.value;t&&await o.mutateAsync({models:c.value.map(n=>({...Fe(n),...n._id===t._id?{sendImages:e}:{}}))})}return(t,n)=>{let r=ve,i=Ft;return D(),B(i,{severity:q(u)?`success`:`warn`,title:t.$t(`views.assistant.setting_${e.setting}_title`),text:q(u)?t.$t(`views.assistant.setting_on`):t.$t(q(s)?`views.assistant.setting_${e.setting}_off`:`views.assistant.setting_needs_admin`)},{default:w(()=>[q(s)?(D(),B(r,{key:0,"model-value":q(u),disabled:q(o).isPending.value,class:`shrink-0`,"onUpdate:modelValue":d},null,8,[`model-value`,`disabled`])):G(``,!0)]),_:1},8,[`severity`,`title`,`text`])}}}),Lt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Rt(e,t){return D(),F(`svg`,Lt,[...t[0]||=[N(`path`,{fill:`currentColor`,d:`M7 5h14v2H7zm0 8v-2h14v2zM4 4.5A1.5 1.5 0 0 1 5.5 6A1.5 1.5 0 0 1 4 7.5A1.5 1.5 0 0 1 2.5 6A1.5 1.5 0 0 1 4 4.5m0 6A1.5 1.5 0 0 1 5.5 12A1.5 1.5 0 0 1 4 13.5A1.5 1.5 0 0 1 2.5 12A1.5 1.5 0 0 1 4 10.5M7 19v-2h14v2zm-3-2.5A1.5 1.5 0 0 1 5.5 18A1.5 1.5 0 0 1 4 19.5A1.5 1.5 0 0 1 2.5 18A1.5 1.5 0 0 1 4 16.5`},null,-1)]])}var zt=W({name:`mdi-format-list-bulleted`,render:Rt}),Bt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Vt(e,t){return D(),F(`svg`,Bt,[...t[0]||=[N(`path`,{fill:`currentColor`,d:`M7 10h5v5H7m12 4H5V8h14m0-5h-1V1h-2v2H8V1H6v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2`},null,-1)]])}var Ht=W({name:`mdi-calendar-today`,render:Vt}),Ut={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Wt(e,t){return D(),F(`svg`,Ut,[...t[0]||=[N(`path`,{fill:`currentColor`,d:`M7.5 4A5.5 5.5 0 0 0 2 9.5c0 .5.09 1 .22 1.5H6.3l1.27-3.37c.3-.8 1.48-.88 1.86 0L11.5 13l.59-1.42c.13-.33.48-.58.91-.58h8.78c.13-.5.22-1 .22-1.5A5.5 5.5 0 0 0 16.5 4c-1.86 0-3.5.93-4.5 2.34C11 4.93 9.36 4 7.5 4M3 12.5a1 1 0 0 0-1 1a1 1 0 0 0 1 1h2.44L11 20c1 .9 1 .9 2 0l5.56-5.5H21a1 1 0 0 0 1-1a1 1 0 0 0-1-1h-7.6l-.93 2.3c-.4 1.01-1.55.87-1.92.03L8.5 9.5l-.96 2.33c-.15.38-.49.67-.94.67z`},null,-1)]])}var Gt=W({name:`mdi-heart-pulse`,render:Wt}),Kt={class:`cui-assistant-card rounded-xl px-4 py-3 text-sm`},qt={class:`flex items-start gap-2`},Jt={class:`min-w-0 flex-1`},Yt={class:`font-medium text-color`},Xt={key:0,class:`text-xs text-muted`},Zt={class:`mt-3 flex flex-col gap-2`},Qt={class:`min-w-0 flex-1 truncate text-color`},$t={key:0,class:`shrink-0 font-medium tabular-nums text-color`},en={key:0,class:`cui-assistant-card-bar ml-4 h-1 overflow-hidden rounded-full`},tn={key:1,class:`ml-4 text-xs text-muted`},nn={key:0,class:`mt-3 text-xs text-muted`},rn=f(K({__name:`CuiAssistantCard`,props:{card:{},references:{}},setup(e){let t=e,{busy:n,open:r}=Et();function i(e){if(e.episodeId)return t.references?.find(t=>t.kind===`episode`&&t.id===e.episodeId)??{kind:`episode`,id:e.episodeId};if(e.eventId)return t.references?.find(t=>t.kind===`event`&&t.id===e.eventId)}function a(e){return e===`ok`?`bg-success`:e===`warn`?`bg-warning`:e===`error`?`bg-danger`:`cui-assistant-card-dot-plain`}return(t,o)=>{let s=Gt,c=Ht,l=zt,u=x;return D(),F(`div`,Kt,[N(`div`,qt,[e.card.kind===`system_health`?(D(),B(s,{key:0,class:`w-5 h-5 shrink-0 text-muted mt-0.5`})):e.card.kind===`day_recap`?(D(),B(c,{key:1,class:`w-5 h-5 shrink-0 text-muted mt-0.5`})):(D(),B(l,{key:2,class:`w-5 h-5 shrink-0 text-muted mt-0.5`})),N(`div`,Jt,[N(`div`,Yt,T(e.card.title),1),e.card.subtitle?(D(),F(`div`,Xt,T(e.card.subtitle),1)):G(``,!0)])]),N(`div`,Zt,[(D(!0),F(H,null,A(e.card.items,(e,t)=>(D(),F(`div`,{key:t,class:`flex flex-col gap-1`},[(D(),B(E(i(e)?`button`:`div`),{type:i(e)?`button`:void 0,class:ne([`flex w-full items-baseline gap-2 text-left`,{"cui-assistant-card-link cursor-pointer rounded-md":i(e)}]),disabled:i(e)&&q(n)===i(e).id?!0:void 0,onClick:t=>i(e)&&q(r)(i(e))},{default:w(()=>[N(`span`,{class:ne([`cui-assistant-card-dot h-2 w-2 shrink-0 self-center rounded-full`,a(e.severity)])},null,2),N(`span`,Qt,T(e.label),1),e.value?(D(),F(`span`,$t,T(e.value),1)):G(``,!0),i(e)?(D(),B(u,{key:1,class:`h-4 w-4 shrink-0 self-center text-muted`})):G(``,!0)]),_:2},1032,[`type`,`class`,`disabled`,`onClick`])),e.share===void 0?G(``,!0):(D(),F(`div`,en,[N(`div`,{class:`cui-assistant-card-fill h-full rounded-full`,style:j({width:`${Math.round(Math.min(1,Math.max(0,e.share))*100)}%`})},null,4)])),e.note?(D(),F(`div`,tn,T(e.note),1)):G(``,!0)]))),128))]),e.card.footer?(D(),F(`div`,nn,T(e.card.footer),1)):G(``,!0)])}}}),[[`__scopeId`,`data-v-02b66e4e`]]),an={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function on(e,t){return D(),F(`svg`,an,[...t[0]||=[N(`path`,{fill:`currentColor`,d:`M12 20c-4.41 0-8-3.59-8-8s3.59-8 8-8s8 3.59 8 8s-3.59 8-8 8m0-18C6.47 2 2 6.47 2 12s4.47 10 10 10s10-4.47 10-10S17.53 2 12 2m2.59 6L12 10.59L9.41 8L8 9.41L10.59 12L8 14.59L9.41 16L12 13.41L14.59 16L16 14.59L13.41 12L16 9.41z`},null,-1)]])}var sn=W({name:`mdi-close-circle-outline`,render:on}),cn={class:`cui-assistant-tool rounded-xl text-sm`},ln={class:`font-medium truncate text-color`},un={class:`text-muted truncate`},dn={class:`ml-auto shrink-0 text-muted`},fn={key:0,class:`flex flex-wrap gap-2 px-3 pb-2`},pn=[`onClick`],mn=[`src`,`alt`],hn={key:1,class:`flex flex-col gap-2 px-3 pb-2`},gn={key:2,class:`flex flex-col gap-2 px-3 pb-2`},_n={key:3,class:`px-3 pb-2`},vn={key:4,class:`cui-assistant-tool-details px-3 py-2 flex flex-col gap-2`},yn={key:0},bn={class:`text-xs uppercase tracking-wide text-muted`},xn={class:`cui-assistant-pre mt-1 max-h-64 overflow-auto rounded-lg p-2 text-xs whitespace-pre-wrap break-words font-mono`},Sn={key:1},Cn={class:`text-xs uppercase tracking-wide text-muted`},wn={class:`cui-assistant-pre mt-1 max-h-64 overflow-auto rounded-lg p-2 text-xs whitespace-pre-wrap break-words font-mono`},Tn=f(K({__name:`CuiAssistantToolCall`,props:{part:{},result:{},extraImages:{},references:{},cards:{},settings:{},notices:{},modelId:{},inlineAttachments:{type:Boolean,default:!0},busy:{type:Boolean,default:!0}},setup(e){let t=e,{t:n}=r(),{openImageDialog:i}=h(),a=I(!1),o=U(()=>Me(t.part.name)),s=U(()=>[`awaiting-input`,`input-streaming`,`input-complete`,`approval-responded`].includes(t.part.state)&&!t.result),l=U(()=>s.value&&t.busy),u=U(()=>s.value&&!t.busy),d=U(()=>t.part.state===`approval-requested`),f=U(()=>t.part.approval?.needsApproval===!0&&t.part.approval.approved===!1),p=U(()=>t.part.state===`error`||t.result?.state===`error`||!!t.result?.error),m=U(()=>l.value?n(`views.assistant.tool_running`):u.value?n(`views.assistant.tool_unfinished`):d.value?n(`views.assistant.tool_waiting_approval`):f.value?n(`views.assistant.tool_rejected`):p.value?n(`views.assistant.tool_failed`):``),g=U(()=>{let e=t.part.input??Le(t.part.arguments);return e==null||typeof e==`object`&&Object.keys(e).length===0?``:b(e)}),_=U(()=>je(t.result)),v=U(()=>{if(t.result?.error)return t.result.error;let e=t.result?.content;return e===void 0?``:typeof e==`string`&&!_.value?b(Le(e)??e):(_.value??[]).filter(e=>e.type===`text`).map(e=>e.type===`text`?e.content:``).join(`
|
|
2
|
-
`)}),y=U(()=>[...t.extraImages??[],...Pe(_.value,o.value)]);function b(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function x(e){i({data:{title:o.value,src:e.src}})}return(t,n)=>{let r=c,i=Z,s=ue,h=sn,_=ze,b=xe,ee=Se,S=rn,C=It,w=Ft,E=At;return D(),F(`div`,cn,[N(`button`,{type:`button`,class:`flex w-full cursor-pointer items-center gap-2 px-3 py-2 text-left`,onClick:n[0]||=e=>a.value=!q(a)},[q(l)?(D(),B(r,{key:0,class:`w-4 h-4 m-0 shrink-0`,"stroke-width":`6`})):q(p)?(D(),B(i,{key:1,class:`w-4 h-4 shrink-0 text-danger`})):q(d)?(D(),B(s,{key:2,class:`w-4 h-4 shrink-0 text-warning`})):q(f)||q(u)?(D(),B(h,{key:3,class:`w-4 h-4 shrink-0 text-muted`})):(D(),B(_,{key:4,class:`w-4 h-4 shrink-0 text-success`})),N(`span`,ln,T(q(o)),1),N(`span`,un,T(q(m)),1),N(`span`,dn,[q(a)?(D(),B(b,{key:0,class:`w-4 h-4`})):(D(),B(ee,{key:1,class:`w-4 h-4`}))])]),e.inlineAttachments&&q(y).length?(D(),F(`div`,fn,[(D(!0),F(H,null,A(q(y),e=>(D(),F(`button`,{key:e.src,type:`button`,class:`cui-assistant-thumb cursor-pointer overflow-hidden rounded-lg`,onClick:t=>x(e)},[N(`img`,{src:e.src,alt:e.alt,class:`h-24 w-auto object-cover`,loading:`lazy`},null,8,mn)],8,pn))),128))])):G(``,!0),e.inlineAttachments&&e.cards?.length?(D(),F(`div`,hn,[(D(!0),F(H,null,A(e.cards,(t,n)=>(D(),B(S,{key:n,card:t,references:e.references},null,8,[`card`,`references`]))),128))])):G(``,!0),e.inlineAttachments&&(e.settings?.length||e.notices?.length)?(D(),F(`div`,gn,[(D(!0),F(H,null,A(e.settings,t=>(D(),B(C,{key:t,setting:t,"model-id":e.modelId},null,8,[`setting`,`model-id`]))),128)),(D(!0),F(H,null,A(e.notices,e=>(D(),B(w,{key:`${e.capability}:${e.model}`,title:t.$t(`views.assistant.notice_${e.capability}_title`,{model:e.model}),text:t.$t(`views.assistant.notice_${e.capability}_text`)},null,8,[`title`,`text`]))),128))])):G(``,!0),e.inlineAttachments&&e.references?.length?(D(),F(`div`,_n,[R(E,{references:e.references},null,8,[`references`])])):G(``,!0),q(a)?(D(),F(`div`,vn,[q(g)?(D(),F(`div`,yn,[N(`span`,bn,T(t.$t(`views.assistant.tool_arguments`)),1),N(`pre`,xn,T(q(g)),1)])):G(``,!0),q(v)?(D(),F(`div`,Sn,[N(`span`,Cn,T(t.$t(`views.assistant.tool_result`)),1),N(`pre`,wn,T(q(v)),1)])):G(``,!0)])):G(``,!0)])}}}),[[`__scopeId`,`data-v-661dfb47`]]),En={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Dn(e,t){return D(),F(`svg`,En,[...t[0]||=[N(`path`,{fill:`currentColor`,d:`M12 3v10.55c-.59-.34-1.27-.55-2-.55c-2.21 0-4 1.79-4 4s1.79 4 4 4s4-1.79 4-4V7h4V3z`},null,-1)]])}var On=W({name:`mdi-music-note`,render:Dn}),kn=`[continue]`;function An(e){return e.parts.filter(e=>e.type===`text`).map(e=>e.type===`text`?e.content:``).join(`
|
|
3
|
-
`).trim()}function jn(e){return e?.role===`user`&&An(e)===`[continue]`}var Mn={key:0,class:`group flex flex-col items-end`},Nn={key:0,class:`w-full max-w-[min(82%,54ch)]`},Pn={class:`mt-1.5 flex justify-end gap-1`},Fn={key:1,class:`cui-assistant-bubble max-w-[min(82%,54ch)] rounded-2xl rounded-br-[4px] px-3.5 py-2.5 text-[15px] leading-relaxed whitespace-pre-wrap break-words text-color`},In={key:0,class:`mt-2 flex flex-wrap gap-2`},Ln=[`src`],Rn={key:1,class:`mt-2 flex flex-wrap gap-2`},zn={key:2,class:`message-actions mt-1 flex gap-0.5`},Bn={key:1,class:`cui-assistant-answer group flex flex-col`},Vn={key:0,class:`mb-1.5 flex items-center gap-2 text-[12.5px] text-muted`},Hn={class:`flex min-w-0 flex-col gap-2.5`},Un={key:0,class:`text-[15px] leading-relaxed text-color break-words`},Wn={key:0,class:`cui-assistant-caret`},Gn=[`open`],Kn={class:`flex cursor-pointer select-none items-center gap-2 px-3 py-2`},qn={class:`shrink-0 font-medium text-color`},Jn={class:`truncate text-muted`},Yn={class:`flex flex-col gap-2 px-2 pb-2`},Xn={key:3,class:`text-xs text-muted`},Zn={class:`cursor-pointer select-none`},Qn={class:`mt-1 whitespace-pre-wrap break-words`},$n={key:0,class:`flex items-center gap-2 text-[13.5px] text-muted`},er={class:`cui-assistant-pulse flex items-center gap-1`,"aria-hidden":`true`},tr={key:0,class:`flex flex-wrap gap-2`},nr=[`onClick`],rr=[`src`,`alt`],ir={key:1,class:`mt-2 flex items-center gap-2 text-[12.5px] text-muted`},ar={key:2,class:`answer-footer mt-2 flex items-center gap-2`},or={key:0,class:`cui-assistant-usage text-[11px] tabular-nums text-muted`},sr={class:`message-actions flex gap-0.5`},cr=6,lr=f(K({__name:`CuiAssistantMessage`,props:{message:{},streaming:{type:Boolean},working:{type:Boolean},busy:{type:Boolean},continuation:{type:Boolean},stopped:{type:Boolean},toolImages:{},toolReferences:{},toolCards:{},toolSettings:{},toolNotices:{},modelId:{},usage:{}},emits:[`regenerate`,`edit`,`delete`,`branch`,`continue`],setup(n,{emit:i}){let a=n,o=i,{t:s}=r(),{openImageDialog:l}=h(),u=[`awaiting-input`,`input-streaming`,`input-complete`,`approval-responded`],d=O(`editRef`),f=I(!1),p=I(``),g=U(()=>An(a.message)),v=U(()=>a.message.parts.filter(e=>e.type===`image`).map(e=>e.type===`image`?e.source.type===`url`?e.source.value.startsWith(`attachment:`)?a.toolImages?.[e.source.value.slice(11)]?.[0]?.src??``:e.source.value:`data:${e.source.mimeType??`image/jpeg`};base64,${e.source.value}`:``).filter(Boolean)),y=U(()=>a.message.parts.filter(e=>e.type===`audio`||e.type===`video`).map(e=>({kind:e.type}))),b=U(()=>{let e=new Map;for(let t of a.message.parts)t.type===`tool-result`&&e.set(t.toolCallId,t);let t=[];for(let n of a.message.parts)if(n.type===`text`){let e=t[t.length-1];e?.kind===`text`?e.text+=n.content:n.content.trim()&&t.push({kind:`text`,text:n.content})}else n.type===`tool-call`?t.push({kind:`tool`,part:n,result:e.get(n.id)}):n.type===`thinking`&&n.content.trim()&&t.push({kind:`thinking`,text:n.content});return[...t.filter(e=>e.kind!==`text`),...t.filter(e=>e.kind===`text`)]}),x=U(()=>{let e=[];for(let t of b.value){let n=e[e.length-1];t.kind===`tool`&&n?.kind===`tool`?e[e.length-1]={kind:`steps`,items:[n,t]}:t.kind===`tool`&&n?.kind===`steps`?n.items.push(t):e.push(t)}return e}),S=U(()=>b.value.filter(e=>e.kind===`text`).map(e=>e.kind===`text`?e.text:``).join(`
|
|
4
|
-
|
|
5
|
-
`).trim()),C=U(()=>{if(a.streaming||!S.value)return null;let e=[],t=[],n=[],r=[],i=[],o=new Set;for(let s of b.value){if(s.kind!==`tool`)continue;let c=[...a.toolImages?.[s.part.id]??[],...Pe(je(s.result),Me(s.part.name))];for(let t of c)!o.has(t.src)&&o.add(t.src)&&e.push(t);t.push(...a.toolCards?.[s.part.id]??[]);for(let e of a.toolSettings?.[s.part.id]??[])r.includes(e)||r.push(e);for(let e of a.toolNotices?.[s.part.id]??[])i.some(t=>t.capability===e.capability&&t.model===e.model)||i.push(e);for(let e of a.toolReferences?.[s.part.id]??[]){let t=`${e.kind}:${e.id}`;!o.has(t)&&o.add(t)&&n.push(e)}}let s=new Set(t.flatMap(e=>e.items.flatMap(e=>[e.episodeId,e.eventId].filter(Boolean)))),c=[...n.filter(e=>e.kind===`download`),...n.filter(e=>e.kind!==`download`&&!s.has(e.id)).slice(0,cr)];return e.length||t.length||c.length||r.length||i.length?{images:e,cards:t,settings:r,notices:i,references:c,all:n}:null}),E=U(()=>{let e=x.value.at(-1);return e?.kind===`tool`||e?.kind===`steps`?s(`views.assistant.working`):s(`views.assistant.thinking`)}),te=U(()=>{let e=a.usage;if(!e)return``;let t=e.durationMs/1e3,n=[s(`views.assistant.usage_tokens`,{input:M(e.promptTokens),output:M(e.completionTokens)}),`${t.toFixed(1)} s`];return e.completionTokens&&t>0&&n.push(s(`views.assistant.usage_speed`,{n:Math.round(e.completionTokens/t)})),e.costUsd!==null&&n.push(s(`views.assistant.usage_cost`,{cost:P(e.costUsd)})),n.join(` · `)}),j=U(()=>{let e=a.usage;return e?s(`views.assistant.usage_details`,{model:e.model,turns:e.iterations,tools:e.toolCalls,cached:M(e.cachedTokens),reasoning:M(e.reasoningTokens)}):``});function M(e){return e<1e3?String(e):`${(e/1e3).toFixed(+(e<1e4))}k`}function P(e){return`$${e.toFixed(e<.01?4:3)}`}function re(e){return!!a.busy&&e.items.some(e=>!e.result&&u.includes(e.part.state))}async function ie(){p.value=g.value,f.value=!0,await k(),d.value?.$el.focus()}function W(){let e=p.value.trim();e&&(f.value=!1,e!==g.value&&o(`edit`,e))}function se(e){l({data:{title:e.alt,src:e.src}})}async function K(){await _(S.value)}return(r,i)=>{let a=ge,s=e,l=On,u=Tt,h=He,_=Ve,b=ee,O=Be,k=Tn,M=c,P=ze,I=rn,U=It,J=Ft,Y=At,X=Ie,ce=m,le=Re,Z=t;return n.message.role===`user`?(D(),F(`div`,Mn,[q(f)?(D(),F(`div`,Nn,[R(a,{ref_key:`editRef`,ref:d,modelValue:q(p),"onUpdate:modelValue":i[0]||=e=>V(p)?p.value=e:null,"auto-resize":``,rows:`2`,class:`w-full text-[15px] leading-relaxed`,onKeydown:[oe(ae(W,[`exact`,`prevent`]),[`enter`]),i[1]||=oe(ae(e=>f.value=!1,[`prevent`]),[`esc`])]},null,8,[`modelValue`,`onKeydown`]),N(`div`,Pn,[R(s,{type:`button`,size:`small`,severity:`secondary`,text:``,label:r.$t(`components.form.button.cancel`),onClick:i[2]||=e=>f.value=!1},null,8,[`label`]),R(s,{type:`button`,size:`small`,label:r.$t(`views.assistant.edit_send`),disabled:!q(p).trim(),onClick:W},null,8,[`label`,`disabled`])])])):(D(),F(`div`,Fn,[z(T(q(g))+` `,1),q(v).length?(D(),F(`div`,In,[(D(!0),F(H,null,A(q(v),e=>(D(),F(`img`,{key:e,src:e,class:`h-24 rounded-lg`,alt:``},null,8,Ln))),128))])):G(``,!0),q(y).length?(D(),F(`div`,Rn,[(D(!0),F(H,null,A(q(y),(e,t)=>(D(),F(`span`,{key:t,class:`cui-assistant-media inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs text-muted`},[e.kind===`audio`?(D(),B(l,{key:0,class:`w-3.5 h-3.5`})):(D(),B(u,{key:1,class:`w-3.5 h-3.5`})),z(` `+T(e.kind===`audio`?r.$t(`views.assistant.attachment_audio`):r.$t(`views.assistant.attachment_video`)),1)]))),128))])):G(``,!0)])),!q(f)&&!n.busy?(D(),F(`div`,zn,[L((D(),B(s,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md text-muted`,onClick:ie},{icon:w(()=>[R(h,{class:`w-3.5 h-3.5`})]),_:1})),[[Z,{value:r.$t(`views.assistant.edit_message`)},void 0,{top:!0}]]),L((D(),B(s,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md text-muted`,onClick:i[3]||=e=>o(`branch`)},{icon:w(()=>[R(_,{class:`w-3.5 h-3.5`})]),_:1})),[[Z,{value:r.$t(`views.assistant.branch_here`)},void 0,{top:!0}]]),L((D(),B(s,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md text-muted`,onClick:i[4]||=e=>o(`delete`)},{icon:w(()=>[R(b,{class:`w-3.5 h-3.5`})]),_:1})),[[Z,{value:r.$t(`views.assistant.delete_exchange`)},void 0,{top:!0}]])])):G(``,!0)])):(D(),F(`div`,Bn,[n.continuation?G(``,!0):(D(),F(`div`,Vn,[N(`span`,{class:ne([`cui-assistant-dot h-1.5 w-1.5 shrink-0 rounded-full`,{"cui-assistant-dot-live":n.working}])},null,2),N(`span`,null,T(r.$t(`views.assistant.title`)),1)])),N(`div`,Hn,[(D(!0),F(H,null,A(q(x),(e,t)=>(D(),F(H,{key:t},[e.kind===`text`?(D(),F(`div`,Un,[R(O,{content:e.text,class:`cui-assistant-markdown`},null,8,[`content`]),n.working&&t===q(x).length-1?(D(),F(`span`,Wn)):G(``,!0)])):e.kind===`tool`?(D(),B(k,{key:1,part:e.part,result:e.result,"extra-images":n.toolImages?.[e.part.id],references:n.toolReferences?.[e.part.id],cards:n.toolCards?.[e.part.id],settings:n.toolSettings?.[e.part.id],notices:n.toolNotices?.[e.part.id],"model-id":n.modelId,"inline-attachments":!q(C),busy:n.busy},null,8,[`part`,`result`,`extra-images`,`references`,`cards`,`settings`,`notices`,`model-id`,`inline-attachments`,`busy`])):e.kind===`steps`?(D(),F(`details`,{key:2,class:`cui-assistant-steps rounded-xl text-sm`,open:n.streaming},[N(`summary`,Kn,[re(e)?(D(),B(M,{key:0,class:`w-4 h-4 m-0 shrink-0`,"stroke-width":`6`})):(D(),B(P,{key:1,class:`w-4 h-4 shrink-0 text-success`})),N(`span`,qn,T(r.$t(`views.assistant.steps`,{n:e.items.length})),1),N(`span`,Jn,T(e.items.map(e=>q(Me)(e.part.name)).join(`, `)),1)]),N(`div`,Yn,[(D(!0),F(H,null,A(e.items,e=>(D(),B(k,{key:e.part.id,part:e.part,result:e.result,"extra-images":n.toolImages?.[e.part.id],references:n.toolReferences?.[e.part.id],cards:n.toolCards?.[e.part.id],settings:n.toolSettings?.[e.part.id],notices:n.toolNotices?.[e.part.id],"model-id":n.modelId,"inline-attachments":!q(C),busy:n.busy},null,8,[`part`,`result`,`extra-images`,`references`,`cards`,`settings`,`notices`,`model-id`,`inline-attachments`,`busy`]))),128))])],8,Gn)):e.kind===`thinking`?(D(),F(`details`,Xn,[N(`summary`,Zn,T(r.$t(`views.assistant.thinking`)),1),N(`pre`,Qn,T(e.text),1)])):G(``,!0)],64))),128)),n.working&&q(x).at(-1)?.kind!==`text`?(D(),F(`span`,$n,[N(`span`,er,[(D(),F(H,null,A(3,e=>N(`span`,{key:e,class:`h-1.5 w-1.5 rounded-full`})),64))]),z(` `+T(q(E)),1)])):G(``,!0),q(C)?(D(),F(H,{key:1},[q(C).images.length?(D(),F(`div`,tr,[(D(!0),F(H,null,A(q(C).images,e=>(D(),F(`button`,{key:e.src,type:`button`,class:`cui-assistant-thumb cursor-pointer overflow-hidden rounded-lg`,onClick:t=>se(e)},[N(`img`,{src:e.src,alt:e.alt,class:`h-32 w-auto object-cover`,loading:`lazy`},null,8,rr)],8,nr))),128))])):G(``,!0),(D(!0),F(H,null,A(q(C).cards,(e,t)=>(D(),B(I,{key:t,card:e,references:q(C).all},null,8,[`card`,`references`]))),128)),(D(!0),F(H,null,A(q(C).settings,e=>(D(),B(U,{key:e,setting:e,"model-id":n.modelId},null,8,[`setting`,`model-id`]))),128)),(D(!0),F(H,null,A(q(C).notices,e=>(D(),B(J,{key:`${e.capability}:${e.model}`,title:r.$t(`views.assistant.notice_${e.capability}_title`,{model:e.model}),text:r.$t(`views.assistant.notice_${e.capability}_text`)},null,8,[`title`,`text`]))),128)),q(C).references.length?(D(),B(Y,{key:1,references:q(C).references},null,8,[`references`])):G(``,!0)],64)):G(``,!0)]),n.stopped&&!n.streaming?(D(),F(`div`,ir,[N(`span`,null,T(r.$t(`views.assistant.answer_stopped`)),1),R(s,{type:`button`,size:`small`,severity:`secondary`,text:``,label:r.$t(`views.assistant.continue_answer`),disabled:n.busy,onClick:i[5]||=e=>o(`continue`)},{icon:w(()=>[R(X,{class:`w-3.5 h-3.5`})]),_:1},8,[`label`,`disabled`])])):G(``,!0),!n.streaming&&(q(S)||n.stopped)?(D(),F(`div`,ar,[q(te)?L((D(),F(`span`,or,[z(T(q(te)),1)])),[[Z,{value:q(j)},void 0,{top:!0}]]):G(``,!0),N(`div`,sr,[q(S)?L((D(),B(ce,{key:0,"action-text":r.$t(`views.assistant.copied`),icon:q(Ue),"icon-class":`w-3.5 h-3.5`,"button-props":{severity:`secondary`,text:!0,rounded:!0,class:`cui-icon-md text-muted`},onAction:K},null,8,[`action-text`,`icon`])),[[Z,{value:r.$t(`views.assistant.copy_answer`)},void 0,{top:!0}]]):G(``,!0),L((D(),B(s,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md text-muted`,disabled:n.busy,onClick:i[6]||=e=>o(`regenerate`)},{icon:w(()=>[R(le,{class:`w-3.5 h-3.5`})]),_:1},8,[`disabled`])),[[Z,{value:r.$t(`views.assistant.regenerate`)},void 0,{top:!0}]]),L((D(),B(s,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md text-muted`,disabled:n.busy,onClick:i[7]||=e=>o(`branch`)},{icon:w(()=>[R(_,{class:`w-3.5 h-3.5`})]),_:1},8,[`disabled`])),[[Z,{value:r.$t(`views.assistant.branch_here`)},void 0,{top:!0}]]),L((D(),B(s,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md text-muted`,disabled:n.busy,onClick:i[8]||=e=>o(`delete`)},{icon:w(()=>[R(b,{class:`w-3.5 h-3.5`})]),_:1},8,[`disabled`])),[[Z,{value:r.$t(`views.assistant.delete_exchange`)},void 0,{top:!0}]])])])):G(``,!0)]))}}}),[[`__scopeId`,`data-v-88ef583b`]]),ur={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function dr(e,t){return D(),F(`svg`,ur,[...t[0]||=[N(`path`,{fill:`currentColor`,d:`M13 20h-2V8l-5.5 5.5l-1.42-1.42L12 4.16l7.92 7.92l-1.42 1.42L13 8z`},null,-1)]])}var fr=W({name:`mdi-arrow-up`,render:dr}),pr={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function mr(e,t){return D(),F(`svg`,pr,[...t[0]||=[N(`path`,{fill:`currentColor`,d:`M18 18H6V6h12z`},null,-1)]])}var hr=W({name:`mdi-stop`,render:mr}),gr={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function _r(e,t){return D(),F(`svg`,gr,[...t[0]||=[N(`path`,{fill:`currentColor`,d:`M16.5 6v11.5a4 4 0 0 1-4 4a4 4 0 0 1-4-4V5A2.5 2.5 0 0 1 11 2.5A2.5 2.5 0 0 1 13.5 5v10.5a1 1 0 0 1-1 1a1 1 0 0 1-1-1V6H10v9.5a2.5 2.5 0 0 0 2.5 2.5a2.5 2.5 0 0 0 2.5-2.5V5a4 4 0 0 0-4-4a4 4 0 0 0-4 4v12.5a5.5 5.5 0 0 0 5.5 5.5a5.5 5.5 0 0 0 5.5-5.5V6z`},null,-1)]])}var vr=W({name:`mdi-paperclip`,render:_r}),yr={image:12582912,audio:26214400,video:62914560},br=`image/*,audio/*,video/*`,xr={de:`de-DE`,en:`en-US`,fr:`fr-FR`,es:`es-ES`,it:`it-IT`,nl:`nl-NL`,pt:`pt-PT`,pl:`pl-PL`,tr:`tr-TR`,ru:`ru-RU`,zh:`zh-CN`,ja:`ja-JP`},Sr={class:`cui-assistant-composer rounded-2xl`},Cr={key:0,class:`px-3 pb-2`},wr={key:1,class:`flex flex-wrap gap-2 px-3 pb-1`},Tr=[`src`],Er={key:1,class:`flex items-center gap-1.5 px-2.5 py-2`},Dr={class:`max-w-40 truncate`},Or={class:`text-muted`},kr=[`accept`],Ar={key:1,class:`ml-auto flex items-center gap-1.5 text-[11.5px] text-muted`},jr={key:2,class:`ml-auto`},Mr=f(K({__name:`CuiAssistantComposer`,props:{busy:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},placeholder:{default:``},compact:{type:Boolean,default:!1},visionMissing:{}},emits:[`send`,`stop`],setup(n,{expose:i,emit:a}){let o=n,s=a,{smBreakpoint:c}=u(),{t:l,locale:d}=r(),f=window.SpeechRecognition??window.webkitSpeechRecognition,p=!!f&&window.isSecureContext,m=O(`inputRef`),h=O(`fileInput`),g=I(``),_=I(!1),v=I([]),y=I(``),x=null,ee;function S(){let e=m.value?.$el;return e?.tagName===`TEXTAREA`?e:e?.querySelector(`textarea`)}function C(){S()?.focus()}function E(){let e=S();e&&(e.style.height=`auto`,e.style.height=`${e.scrollHeight}px`)}function te(){let e=g.value.trim();!e&&!v.value.length||o.disabled||(s(`send`,{text:e,attachments:v.value}),g.value=``,v.value=[])}function j(e){y.value=e,clearTimeout(ee),ee=setTimeout(()=>y.value=``,4e3)}function P(e){let t=e.type.split(`/`)[0];return t===`image`||t===`audio`||t===`video`?t:void 0}function ie(e){return e>=1048576?`${(e/1024/1024).toFixed(1)} MB`:`${Math.max(1,Math.round(e/1024))} KB`}function U(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>t(String(r.result)),r.onerror=()=>n(r.error),r.readAsDataURL(e)})}async function W(e){for(let t of e){let e=P(t);if(!e){j(l(`views.assistant.attach_unsupported`));continue}if(t.size>yr[e]){j(l(`views.assistant.attach_too_large`,{max:Math.round(yr[e]/1024/1024)}));continue}if(v.value.length>=8){j(l(`views.assistant.attach_too_many`,{max:8}));break}let n=await U(t);v.value.push({id:b(),name:t.name||e,kind:e,mimeType:t.type,size:t.size,data:n.slice(n.indexOf(`,`)+1),preview:e===`image`?n:void 0})}}async function se(e){let t=e.target;t.files?.length&&await W(Array.from(t.files)),t.value=``}async function K(e){let t=Array.from(e.clipboardData?.files??[]);t.length&&(e.preventDefault(),await W(t))}function Y(e){v.value=v.value.filter(t=>t.id!==e)}function X(){if(_.value){x?.stop();return}if(!f)return;let e=g.value.trim(),t=new f;t.lang=xr[d.value]??d.value,t.interimResults=!0,t.continuous=!1,t.onresult=t=>{let n=``;for(let e=0;e<t.results.length;e+=1)n+=t.results[e][0]?.transcript??``;g.value=e?`${e} ${n.trim()}`:n.trim()},t.onend=()=>{_.value=!1,x=null,C()},t.onerror=e=>{_.value=!1,x=null,e.error!==`no-speech`&&e.error!==`aborted`&&j(e.error===`not-allowed`||e.error===`service-not-allowed`?l(`views.assistant.voice_denied`):l(`views.assistant.voice_failed`,{error:e.error}))},x=t,_.value=!0,t.start()}return M(g,()=>k(E)),re(()=>{x?.abort(),clearTimeout(ee)}),i({focus:C}),(r,i)=>{let a=ge,o=Ft,l=On,u=Tt,d=be,f=e,b=fe,x=vr,ee=We,S=hr,C=fr,E=t;return D(),F(`div`,Sr,[R(a,{ref_key:`inputRef`,ref:m,modelValue:q(g),"onUpdate:modelValue":i[0]||=e=>V(g)?g.value=e:null,placeholder:n.placeholder,disabled:n.disabled,"auto-resize":``,rows:`1`,class:`cui-assistant-input block w-full max-h-52 resize-none px-4 pt-3.5 pb-1 text-[15px] leading-relaxed`,onKeydown:oe(ae(te,[`exact`,`prevent`]),[`enter`]),onPaste:K},null,8,[`modelValue`,`placeholder`,`disabled`,`onKeydown`]),n.visionMissing&&q(v).some(e=>e.kind===`image`)?(D(),F(`div`,Cr,[R(o,{title:r.$t(`views.assistant.notice_vision_title`,{model:n.visionMissing}),text:r.$t(`views.assistant.notice_vision_attach`)},null,8,[`title`,`text`])])):G(``,!0),q(v).length?(D(),F(`div`,wr,[(D(!0),F(H,null,A(q(v),e=>(D(),F(`div`,{key:e.id,class:`cui-assistant-attachment relative flex items-center rounded-lg text-xs text-color`},[e.kind===`image`?(D(),F(`img`,{key:0,src:e.preview,class:`h-14 w-14 rounded-lg object-cover`,alt:``},null,8,Tr)):(D(),F(`span`,Er,[e.kind===`audio`?(D(),B(l,{key:0,class:`w-4 h-4 text-muted`})):(D(),B(u,{key:1,class:`w-4 h-4 text-muted`})),N(`span`,Dr,T(e.name),1),N(`span`,Or,T(ie(e.size)),1)])),L((D(),B(f,{type:`button`,severity:`secondary`,rounded:``,class:`cui-assistant-attachment-remove cui-icon-sm absolute -top-1.5 -right-1.5`,onClick:t=>Y(e.id)},{icon:w(()=>[R(d,{class:`w-3 h-3`})]),_:1},8,[`onClick`])),[[E,{value:r.$t(`views.assistant.attach_remove`)},void 0,{top:!0}]])]))),128))])):G(``,!0),q(y)?(D(),B(b,{key:2,severity:`warn`,variant:`simple`,size:`small`,class:`px-3 pb-1`},{default:w(()=>[z(T(q(y)),1)]),_:1})):G(``,!0),N(`div`,{class:ne([`flex items-center px-2 pb-2 pl-3`,n.compact?`gap-0.5`:`gap-2`])},[J(r.$slots,`tools`,{},void 0,!0),L((D(),B(f,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`shrink-0`,disabled:n.disabled||n.busy,onClick:i[1]||=e=>q(h)?.click()},{icon:w(()=>[R(x,{class:`w-4 h-4`})]),_:1},8,[`disabled`])),[[E,{value:r.$t(`views.assistant.attach`)},void 0,{top:!0}]]),N(`input`,{ref_key:`fileInput`,ref:h,type:`file`,class:`hidden`,multiple:``,accept:q(br),onChange:se},null,40,kr),q(p)?L((D(),B(f,{key:0,type:`button`,severity:`secondary`,text:``,rounded:``,class:ne([`cui-assistant-voice shrink-0`,{"cui-assistant-voice-active":q(_)}]),disabled:n.disabled||n.busy,onClick:X},{icon:w(()=>[R(ee,{class:`w-4 h-4`})]),_:1},8,[`class`,`disabled`])),[[E,{value:q(_)?r.$t(`views.assistant.voice_stop`):r.$t(`views.assistant.voice_start`)},void 0,{top:!0}]]):G(``,!0),!q(c)&&!n.compact?(D(),F(`span`,Ar,[i[3]||=N(`kbd`,{class:`cui-assistant-kbd`},`↵`,-1),z(` `+T(r.$t(`views.assistant.hint_send`))+` · `,1),i[4]||=N(`kbd`,{class:`cui-assistant-kbd`},`⇧↵`,-1),z(` `+T(r.$t(`views.assistant.hint_newline`)),1)])):(D(),F(`span`,jr)),n.busy?L((D(),B(f,{key:3,type:`button`,severity:`secondary`,outlined:``,class:`cui-assistant-send shrink-0`,onClick:i[2]||=e=>s(`stop`)},{icon:w(()=>[R(S,{class:`w-4 h-4`})]),_:1})),[[E,{value:r.$t(`views.assistant.stop`)},void 0,{top:!0}]]):G(``,!0),R(f,{type:`button`,class:`cui-assistant-send shrink-0`,disabled:n.disabled||!q(g).trim()&&!q(v).length,onClick:te},{icon:w(()=>[R(C,{class:`w-4 h-4`})]),_:1},8,[`disabled`])],2)])}}}),[[`__scopeId`,`data-v-1b2f48d6`]]),Nr={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Pr(e,t){return D(),F(`svg`,Nr,[...t[0]||=[N(`path`,{fill:`currentColor`,d:`M3 17v2h6v-2zM3 5v2h10V5zm10 16v-2h8v-2h-8v-2h-2v6zM7 9v2H3v2h4v2h2V9zm14 4v-2H11v2zm-6-4h2V7h4V5h-4V3h-2z`},null,-1)]])}var Fr=W({name:`mdi-tune`,render:Pr}),Ir={id:`pending-answer`,role:`assistant`,parts:[]},Lr=[`terminalEnabled`,`memoryEnabled`,`sendImages`];function Rr(e){return typeof e==`string`&&Lr.includes(e)}async function zr(e,t){let n=new Headers(t?.headers??{});for(let[e,t]of Object.entries(await l()))n.set(e,t);return n.set(`X-Cui-Timezone`,Intl.DateTimeFormat().resolvedOptions().timeZone),fetch(e,{...t,headers:n})}function Br(){return`${(S().target.value?.endpoint.url??window.location.origin).replace(/\/+$/,``)}/api/assistant/chat`}function Vr(e,t){try{e.resolve(t)}catch{return{ok:!1,message:`unknown page`}}return setTimeout(()=>e.push(t),0),{ok:!0}}async function Hr(e,t,n,r){let i=typeof r.camera==`string`?r.camera.trim():``;switch(n){case`open_camera`:return i?Vr(e,`/cameras/${encodeURIComponent(i)}`):{ok:!1,message:`camera name is missing`};case`open_recording`:{let t=Date.parse(String(r.time??``));if(!i||Number.isNaN(t))return{ok:!1,message:`camera name or time is missing`};let n=Vr(e,{path:`/cameras/${encodeURIComponent(i)}`,query:{startTs:String(t)}});return n.ok?{ok:!0,message:`showing ${i} at ${new Date(t).toLocaleString()}`}:n}case`open_camview`:return Vr(e,`/camview`);case`open_page`:{let t=X[String(r.page??``)];return t?Vr(e,t.path):{ok:!1,message:`unknown page`}}case`open_settings`:{let t=String(r.page??``);return t?Vr(e,{name:`Settings${t.charAt(0).toUpperCase()}${t.slice(1)}`}):{ok:!1,message:`page is missing`}}case`ui_actions`:{let e=t.list();return e.length?{ok:!0,actions:e}:{ok:!0,message:`this page offers no actions`,actions:[]}}case`ui_action`:try{return{ok:!0,message:await t.run(String(r.name??``),r.args??{})}}catch(e){return{ok:!1,message:e?.message??String(e)}}default:return{ok:!1,message:`unknown tool`}}}function Ur(e){let t=de(),n=Ke(),r=[...(e.approvalTools??[]).filter(e=>e.approval&&e.inputSchema).map(e=>P({name:e.name,description:e.description,inputSchema:e.inputSchema,needsApproval:!0})),...Y.map(e=>P({name:e.name,description:e.description,inputSchema:e.inputSchema}).client(r=>Hr(t,n,e.name,r??{})))],i={language:e.language.value,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone},a=I({}),o=I({}),s=I({}),c=I({}),l=I({}),u=I({}),d=I(null);function f(t=!1){i.regenerate=t,i.disabledGroups=[...e.disabledGroups?.value??[]],i.instructions=e.instructions?.value?.trim()||void 0,i.modelId=e.modelId?.value??void 0}function p(e){for(let[t,n]of Object.entries(e))n.images.length&&(a.value[t]=n.images.map(e=>({src:`data:${e.mimeType};base64,${e.data}`,alt:e.caption??``}))),n.references.length&&(o.value[t]=n.references.map(e=>({...e}))),n.cards?.length&&(s.value[t]=n.cards.map(e=>({...e}))),n.settings?.length&&(c.value[t]=n.settings.filter(Rr)),n.notices?.length&&(l.value[t]=n.notices.map(e=>({...e})));a.value={...a.value},o.value={...o.value},s.value={...s.value},c.value={...c.value},l.value={...l.value}}p(e.initialAttachments??{});let m={...se(Br,{fetchClient:zr}),hydrate:async e=>{let t=await Ce(e);return p(t.attachments),t}},h=ie({connection:m,persistence:!0,tools:r,interrupts:[ce],queue:{whenBusy:`queue`,maxSize:5},threadId:e.threadId.value,initialMessages:e.initialMessages,forwardedProps:i,onFinish:e.onFinish,onError:e.onError,onCustomEvent:(e,t,n)=>{if(e===`assistant.usage`){let e=h.messages.value.findLast(e=>e.role===`assistant`);e&&(u.value={...u.value,[e.id]:t});return}let r=t,i=n.toolCallId??r.toolCallId;if(i){if(e===`assistant.image`){let e=t;if(!e.data)return;let n=a.value[i]??[];n.push({src:`data:${e.mimeType??`image/jpeg`};base64,${e.data}`,alt:e.caption??``}),a.value={...a.value,[i]:n}}else if(e===`assistant.card`){let e=t.card;if(!e)return;s.value={...s.value,[i]:[...s.value[i]??[],e]}}else if(e===`assistant.setting`){let e=t.setting;if(!Rr(e))return;c.value={...c.value,[i]:[...c.value[i]??[],e]}}else if(e===`assistant.notice`){let e=t.notice;if(!e?.model)return;l.value={...l.value,[i]:[...l.value[i]??[],e]}}else if(e===`assistant.reference`){let e=t;if(!e.id||!e.kind)return;let n=o.value[i]??[];n.push(e),o.value={...o.value,[i]:n}}}}}),g=U(()=>h.interrupts.value.filter(e=>e.kind===`tool-approval`)),_=U(()=>h.interrupts.value.filter(e=>e.kind===`generic`&&e.definitionId===`ask-user`)),v=U(()=>h.interrupts.value.some(e=>e.kind===`unbound`)),y=U(()=>h.isLoading.value||h.resuming.value);async function b(e){d.value=null,f(),await h.sendMessage(e)}async function x(){d.value=null,f(!0),await h.reload()}function ee(){let e=h.runId.value;e&&De(e).catch(()=>void 0),h.stop();let t=h.messages.value.at(-1);d.value=t?.role===`assistant`?t.id:null}async function S(){await b(kn)}function C(e,t){p(t),h.setMessages(e)}return{...h,sendMessage:b,reload:x,stop:ee,continueAnswer:S,replaceFromStore:C,approvals:g,questions:_,pausedElsewhere:v,busy:y,toolImages:a,toolReferences:o,toolCards:s,toolSettings:c,toolNotices:l,usage:u,stoppedId:d}}var Wr={class:`relative flex h-full min-h-0 flex-col`},Gr={key:0,class:`w-full max-w-2xl py-6`},Kr={class:`mb-7 flex flex-col items-center gap-3 text-center`},qr={class:`cui-assistant-mark flex h-11 w-11 items-center justify-center rounded-xl`},Jr={class:`m-0 text-[clamp(24px,4vw,32px)] font-semibold leading-tight tracking-tight text-color`},Yr={class:`mt-2 block text-[15px] font-normal tracking-normal text-muted`},Xr={class:`relative shrink-0`},Zr={key:0,class:`cui-assistant-badge`},Qr={class:`relative shrink-0`},$r={key:0,class:`cui-assistant-badge`},ei={key:1,class:`mt-4 flex flex-wrap justify-center gap-2`},ti=[`onClick`],ni={key:1,class:`cui-assistant-note pl-3 text-[13.5px] text-muted`},ri={key:2,class:`cui-assistant-note pl-3 text-[13.5px] text-muted`},ii={class:`font-medium text-color-faded`},ai={key:0,class:`relative px-4 pb-3 pt-6`},oi={class:`mx-auto w-full max-w-[720px]`},si={key:0,class:`mb-2 flex flex-col gap-1`},ci={class:`min-w-0 flex-1 truncate`},li={class:`relative shrink-0`},ui={key:0,class:`cui-assistant-badge`},di={class:`relative shrink-0`},fi={key:0,class:`cui-assistant-badge`},pi={class:`mt-2 text-center text-[11.5px] text-muted`},mi={class:`flex w-72 flex-col gap-3`},hi={class:`text-sm font-medium text-color`},gi={class:`flex flex-col gap-1`},_i={for:`assistantInstructions`,class:`text-xs text-muted`},vi={class:`flex flex-col gap-1`},yi={for:`assistantTools`,class:`text-xs text-muted`},bi={class:`flex min-w-0 flex-1 items-center gap-2`},xi={class:`truncate`},Si={class:`ml-auto shrink-0 text-xs text-muted`},Ci={key:0,class:`flex flex-col gap-1`},wi={for:`assistantModel`,class:`text-xs text-muted`},Ti={class:`flex min-w-0 flex-1 items-center gap-2`},Ei={class:`truncate`},Di={class:`ml-auto flex shrink-0 gap-1`},Oi={class:`flex flex-col gap-1`},ki={for:`assistantProfile`,class:`text-xs text-muted`},Ai={class:`flex min-w-0 flex-1 items-center gap-2`},ji={class:`truncate`},Mi={class:`ml-auto flex shrink-0 gap-1`},Ni={key:0,class:`mt-1 flex items-center gap-1`},Pi={class:`flex w-72 flex-col gap-3`},Fi={class:`flex items-baseline gap-2`},Ii={class:`text-sm font-medium text-color`},Li={key:0,class:`ml-auto text-xs tabular-nums text-muted`},Ri={key:0,class:`text-xs text-muted`},zi={key:1,class:`flex max-h-64 flex-col overflow-y-auto`},Bi={class:`min-w-0 flex-1 leading-snug`},Vi=f(K({__name:`CuiAssistantConversation`,props:{threadId:{},initialMessages:{},initialAttachments:{},initialPrompt:{default:void 0},suggestions:{default:()=>[]},approvalTools:{default:()=>[]},tools:{default:()=>[]},compact:{type:Boolean,default:!1}},emits:[`finished`,`branched`,`emptied`],setup(a,{expose:c,emit:l}){let u=new Oe,d=a,f=l,{t:p,locale:m}=r(),h=y(),{data:g}=u.listProfilesQuery(),_=u.createProfileMutation(),v=u.patchProfileMutation(),b=u.deleteProfileMutation(),{data:x,refetch:S}=u.memoryQuery(),C=u.deleteMemoryFactMutation(),E=u.deleteMemoryMutation(),{data:j}=u.getAssistantInfoQuery(),P=O(`scrollRef`),re=O(`contentRef`),ie=O(`composerRef`),W=O(`toolsPopover`),se=O(`memoryPopover`),K=I(!0),J=I([]),Y=I(``),X=I(null),ce=I(!1),Z=I(``),ue=I(null),Q=Ur({threadId:U(()=>d.threadId),initialMessages:d.initialMessages,initialAttachments:d.initialAttachments,language:m,disabledGroups:J,instructions:Y,modelId:ue,approvalTools:d.approvalTools,onFinish:()=>f(`finished`),onError:rt}),de=U(()=>Q.messages.value.length===0),fe=U(()=>j.value?.settings.models??[]),ve=U(()=>j.value?$(j.value.settings):void 0),xe=U(()=>fe.value.find(e=>e._id===ue.value)??ve.value),Ce=U(()=>xe.value?.capabilities?.vision===!1?xe.value.name:void 0),De=U(()=>Q.busy.value&&!Q.approvals.value.length&&!Q.questions.value.length&&!Q.pausedElsewhere.value),Ae=U(()=>De.value&&Q.messages.value.at(-1)?.role!==`assistant`),je=U(()=>{let e=Q.messages.value,t=[];return e.forEach((n,r)=>{if(jn(n))return;let i=n.role===`assistant`&&jn(e[r-1]),a=t[t.length-1];if(n.role===`assistant`&&!i&&a?.message.role===`assistant`&&!a.continuation&&a.lastIndex===r-1){a.message={...a.message,parts:[...a.message.parts,...n.parts]},a.ids.push(n.id),a.lastIndex=r;return}t.push({message:n,index:r,lastIndex:r,ids:[n.id],continuation:i})}),t}),Me=U(()=>{let e=new Map;for(let t of d.tools){let n=t.group===`core`?p(`views.assistant.tool_group_core`):t.group===`docs`?p(`views.assistant.tool_group_docs`):t.group===`terminal`?p(`views.assistant.tool_group_terminal`):t.source.kind===`plugin`?t.source.pluginName:t.source.kind===`external`?t.source.serverName:t.group,r=e.get(t.group)??{id:t.group,label:n,count:0};r.count+=1,e.set(t.group,r)}let t=e=>e===`core`?0:e===`docs`?1:e.startsWith(`plugin:`)?2:3;return Array.from(e.values()).sort((e,n)=>t(e.id)-t(n.id)||e.label.localeCompare(n.label))}),Pe=U({get:()=>Me.value.filter(e=>!J.value.includes(e.id)).map(e=>e.id),set:e=>{J.value=Me.value.filter(t=>!e.includes(t.id)).map(e=>e.id)}}),Fe=U(()=>{let e=new Date().getHours();return p(e<5?`views.assistant.greeting_night`:e<11?`views.assistant.greeting_morning`:e<18?`views.assistant.greeting_day`:`views.assistant.greeting_evening`)});function Ie(e){for(let t of e.ids)if(Q.usage.value[t])return Q.usage.value[t]}function Le(){let e=P.value;e&&(K.value=e.scrollHeight-e.scrollTop-e.clientHeight<120)}function Re(){K.value=!0,ze()}function ze(){let e=P.value;e&&(e.scrollTop=e.scrollHeight)}function Be(e){se.value?.toggle(e),S()}function Ve(e){let t=g.value?.find(t=>t._id===e);t&&(J.value=[...t.disabledGroups],Y.value=t.instructions,ue.value=fe.value.some(e=>e._id===t.modelId)?t.modelId:null)}function He(e){return fe.value.find(t=>t._id===e.modelId)??ve.value}function Ue(e){return e?Ne(e).filter(e=>e.severity!==`success`):[]}async function We(){let e=Z.value.trim();if(!e)return;let t=await _.mutateAsync({name:e,modelId:xe.value?._id??``,disabledGroups:[...J.value],instructions:Y.value.trim()});X.value=t._id,ce.value=!1,Z.value=``}async function Ke(){X.value&&await v.mutateAsync({profileId:X.value,patch:{modelId:xe.value?._id??``,disabledGroups:[...J.value],instructions:Y.value.trim()}})}async function qe(){X.value&&=(await b.mutateAsync(X.value),null)}function Je(){for(let e of[W.value,se.value])e?.visible&&e.alignOverlay()}function Xe(e){let t=Q.messages.value,n=e+1;for(;n<t.length&&(t[n].role!==`user`||jn(t[n]));)n++;return n}function Ze(e){let t=Q.messages.value,n=e;for(;n>0&&(t[n].role!==`user`||jn(t[n]));)n--;return n}async function Qe(e){K.value=!0,Q.setMessages(Q.messages.value.slice(0,e)),await Q.reload()}async function $e(e,t){K.value=!0;let n=Q.messages.value[e].parts.filter(e=>e.type===`image`||e.type===`audio`||e.type===`video`);Q.setMessages(Q.messages.value.slice(0,e)),n.length?await Q.sendMessage({content:[{type:`text`,content:t},...n]}):await Q.sendMessage(t)}async function et(e){let t=Q.messages.value,n=[...t.slice(0,Ze(e)),...t.slice(Xe(e))];if(Q.setMessages(n),!n.length){f(`emptied`);return}try{await Ee(d.threadId,n)}catch(e){e?.response?.status!==404&&h.add({severity:`error`,detail:e.message,life:5e3})}}async function tt(e){try{let t=await Te(d.threadId,Xe(e)-1);f(`branched`,t)}catch(e){h.add({severity:`error`,detail:e?.response?.status===404?p(`views.assistant.branch_unsaved`):e.message,life:5e3})}}async function nt(e){if(K.value=!0,!e.attachments.length){await Q.sendMessage(e.text);return}let t=e.text?[{type:`text`,content:e.text}]:[];for(let n of e.attachments)t.push({type:n.kind,source:{type:`data`,value:n.data,mimeType:n.mimeType}});await Q.sendMessage({content:t})}function rt(e){if(e.message.includes(`status: 409`)){it();return}h.add({severity:`error`,detail:e.message,life:5e3})}async function it(){let e=await we(d.threadId).catch(()=>void 0);e&&(Q.replaceFromStore(e.messages,e.attachments),h.add({severity:`info`,detail:p(`views.assistant.thread_reloaded`),life:5e3}))}function at(e){return!Q.busy.value&&(Q.replaceFromStore(e.messages,e.attachments),!0)}return M(()=>Q.messages.value,async()=>{K.value&&(await k(),ze())},{deep:!0}),M(()=>Q.approvals.value.length+Q.questions.value.length,async(e,t)=>{e<=t||(K.value=!0,await k(),ze())}),M(de,async()=>{await k(),ie.value?.focus()}),i(window,`scroll`,Je,{capture:!0,passive:!0}),o([P,re],()=>{K.value&&ze()}),te(async()=>{await k(),ze(),ie.value?.focus(),d.initialPrompt&&await nt({text:d.initialPrompt,attachments:[]})}),c({refreshFromStore:at}),(r,i)=>{let o=le,c=Ft,l=Fr,u=e,d=Ge,f=Mr,p=lr,m=gt,h=st,y=Se,S=ke,O=be,k=ge,te=_e,j=he,M=pe,I=Ye,U=me,we=ee,Te=ye,Ee=s,Oe=n,$=t;return D(),F(`div`,Wr,[N(`div`,{ref_key:`scrollRef`,ref:P,class:ne([`flex-1 min-h-0 overflow-y-auto px-4`,{"flex items-center justify-center pb-[8vh]":q(de)}]),onScrollPassive:Le},[q(de)?(D(),F(`div`,Gr,[N(`div`,Kr,[N(`div`,qr,[R(o,{class:`w-6 h-6 text-color`})]),N(`h1`,Jr,[z(T(q(Fe))+` `,1),N(`span`,Yr,T(r.$t(`views.assistant.greeting_sub`)),1)])]),q(xe)?.capabilities?.toolCalling===!1?(D(),B(c,{key:0,class:`mb-4`,title:r.$t(`views.assistant.notice_tools_title`,{model:q(xe).name}),text:r.$t(`views.assistant.notice_tools_text`)},null,8,[`title`,`text`])):G(``,!0),R(f,{ref_key:`composerRef`,ref:ie,busy:q(Q).busy.value,"vision-missing":q(Ce),compact:a.compact,placeholder:r.$t(`views.assistant.composer_placeholder`),onSend:nt,onStop:i[2]||=e=>q(Q).stop()},{tools:w(()=>[N(`span`,Xr,[L((D(),B(u,{type:`button`,severity:`secondary`,text:``,rounded:``,disabled:q(Q).busy.value,onClick:i[0]||=e=>q(W)?.toggle(e)},{icon:w(()=>[R(l,{class:`w-4 h-4`})]),_:1},8,[`disabled`])),[[$,{value:r.$t(`views.assistant.tools_title`)},void 0,{top:!0}]]),q(J).length?(D(),F(`span`,Zr,T(q(Pe).length),1)):G(``,!0)]),N(`span`,Qr,[L((D(),B(u,{type:`button`,severity:`secondary`,text:``,rounded:``,onClick:i[1]||=e=>Be(e)},{icon:w(()=>[R(d,{class:`w-4 h-4`})]),_:1})),[[$,{value:r.$t(`views.assistant.memory_title`)},void 0,{top:!0}]]),q(x)?.length?(D(),F(`span`,$r,T(q(x).length),1)):G(``,!0)])]),_:1},8,[`busy`,`vision-missing`,`compact`,`placeholder`]),a.suggestions.length?(D(),F(`div`,ei,[(D(!0),F(H,null,A(a.suggestions,e=>(D(),F(`button`,{key:e,type:`button`,class:`cui-assistant-chip cursor-pointer rounded-full px-3.5 py-1.5 text-[13px]`,onClick:t=>nt({text:e,attachments:[]})},T(e),9,ti))),128))])):G(``,!0)])):(D(),F(`div`,{key:1,ref_key:`contentRef`,ref:re,class:`mx-auto flex w-full max-w-[720px] flex-col gap-7 pt-6 pb-4`},[(D(!0),F(H,null,A(q(je),e=>(D(),B(p,{key:e.message.id,message:e.message,streaming:q(Q).isLoading.value&&e.lastIndex===q(Q).messages.value.length-1&&e.message.role===`assistant`,working:q(De)&&e.lastIndex===q(Q).messages.value.length-1&&e.message.role===`assistant`,busy:q(Q).busy.value,continuation:e.continuation,stopped:e.ids.includes(q(Q).stoppedId.value??``),"tool-images":q(Q).toolImages.value,"tool-references":q(Q).toolReferences.value,"tool-cards":q(Q).toolCards.value,"tool-settings":q(Q).toolSettings.value,"tool-notices":q(Q).toolNotices.value,"model-id":q(xe)?._id,usage:Ie(e),class:ne({"-mt-5":e.continuation}),onRegenerate:t=>Qe(e.index),onEdit:t=>$e(e.index,t),onDelete:t=>et(e.index),onBranch:t=>tt(e.index),onContinue:i[3]||=e=>q(Q).continueAnswer()},null,8,[`message`,`streaming`,`working`,`busy`,`continuation`,`stopped`,`tool-images`,`tool-references`,`tool-cards`,`tool-settings`,`tool-notices`,`model-id`,`usage`,`class`,`onRegenerate`,`onEdit`,`onDelete`,`onBranch`]))),128)),q(Ae)?(D(),B(p,{key:0,message:q(Ir),working:``,busy:``,continuation:q(jn)(q(Q).messages.value.at(-1)),class:ne({"-mt-5":q(jn)(q(Q).messages.value.at(-1))})},null,8,[`message`,`continuation`,`class`])):G(``,!0),(D(!0),F(H,null,A(q(Q).approvals.value,e=>(D(),B(m,{key:e.id,"tool-name":e.toolName,args:e.originalArgs,"can-resolve":e.canResolve,busy:q(Q).resuming.value,onApprove:t=>t?e.resolveInterrupt(!0,{editedArgs:t}):e.resolveInterrupt(!0),onReject:t=>e.resolveInterrupt(!1)},null,8,[`tool-name`,`args`,`can-resolve`,`busy`,`onApprove`,`onReject`]))),128)),(D(!0),F(H,null,A(q(Q).questions.value,e=>(D(),B(h,{key:e.id,question:e.payload??{toolCallId:e.id,question:``,kind:`text`},"can-resolve":e.canResolve,busy:q(Q).resuming.value,onAnswer:t=>e.resolveInterrupt({answer:t}),onSkip:t=>e.cancel()},null,8,[`question`,`can-resolve`,`busy`,`onAnswer`,`onSkip`]))),128)),q(Q).pausedElsewhere.value?(D(),F(`div`,ni,T(r.$t(`views.assistant.paused_elsewhere`)),1)):G(``,!0),q(Q).error.value?(D(),F(`div`,ri,[N(`strong`,ii,T(q(Q).error.value.message),1)])):G(``,!0)],512))],34),q(de)?G(``,!0):(D(),F(`div`,ai,[q(K)?G(``,!0):L((D(),B(u,{key:0,type:`button`,rounded:``,severity:`secondary`,class:`cui-assistant-jump absolute left-1/2 top-0 z-[2] -translate-x-1/2 -translate-y-1/2`,onClick:Re},{icon:w(()=>[R(y,{class:`w-4 h-4`})]),_:1})),[[$,{value:r.$t(`views.assistant.scroll_to_latest`)},void 0,{top:!0}]]),N(`div`,oi,[q(Q).queue.value.length?(D(),F(`div`,si,[(D(!0),F(H,null,A(q(Q).queue.value,e=>(D(),F(`div`,{key:e.id,class:`cui-assistant-queued flex items-center gap-2 rounded-lg px-3 py-1.5 text-[13px] text-muted`},[R(S,{class:`w-3.5 h-3.5 shrink-0`}),N(`span`,ci,T(typeof e.content==`string`?e.content:r.$t(`views.assistant.queued_attachment`)),1),L((D(),B(u,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:t=>q(Q).cancelQueued(e.id)},{icon:w(()=>[R(O,{class:`w-3.5 h-3.5`})]),_:1},8,[`onClick`])),[[$,{value:r.$t(`views.assistant.queue_cancel`)},void 0,{top:!0}]])]))),128))])):G(``,!0),R(f,{ref_key:`composerRef`,ref:ie,busy:q(Q).busy.value,"vision-missing":q(Ce),compact:a.compact,placeholder:r.$t(`views.assistant.composer_placeholder`),onSend:nt,onStop:i[6]||=e=>q(Q).stop()},{tools:w(()=>[N(`span`,li,[L((D(),B(u,{type:`button`,severity:`secondary`,text:``,rounded:``,disabled:q(Q).busy.value,onClick:i[4]||=e=>q(W)?.toggle(e)},{icon:w(()=>[R(l,{class:`w-4 h-4`})]),_:1},8,[`disabled`])),[[$,{value:r.$t(`views.assistant.tools_title`)},void 0,{top:!0}]]),q(J).length?(D(),F(`span`,ui,T(q(Pe).length),1)):G(``,!0)]),N(`span`,di,[L((D(),B(u,{type:`button`,severity:`secondary`,text:``,rounded:``,onClick:i[5]||=e=>Be(e)},{icon:w(()=>[R(d,{class:`w-4 h-4`})]),_:1})),[[$,{value:r.$t(`views.assistant.memory_title`)},void 0,{top:!0}]]),q(x)?.length?(D(),F(`span`,fi,T(q(x).length),1)):G(``,!0)])]),_:1},8,[`busy`,`vision-missing`,`compact`,`placeholder`]),N(`div`,pi,T(r.$t(`views.assistant.disclaimer`)),1)])])),R(Oe,{ref_key:`toolsPopover`,ref:W},{default:w(()=>[N(`div`,mi,[N(`span`,hi,T(r.$t(`views.assistant.tools_title`)),1),N(`div`,gi,[N(`label`,_i,T(r.$t(`views.assistant.instructions_label`)),1),R(k,{id:`assistantInstructions`,modelValue:q(Y),"onUpdate:modelValue":i[7]||=e=>V(Y)?Y.value=e:null,rows:`2`,"auto-resize":``,class:`text-sm`,placeholder:r.$t(`views.assistant.instructions_placeholder`)},null,8,[`modelValue`,`placeholder`])]),N(`div`,vi,[N(`label`,yi,T(r.$t(`views.assistant.tools_label`)),1),R(te,{modelValue:q(Pe),"onUpdate:modelValue":i[8]||=e=>V(Pe)?Pe.value=e:null,"input-id":`assistantTools`,options:q(Me),"option-label":`label`,"option-value":`id`,"max-selected-labels":2,"selected-items-label":r.$t(`views.assistant.tools_selected`,{n:q(Pe).length}),placeholder:r.$t(`views.assistant.tools_none`),class:`min-w-0`},{option:w(({option:e})=>[N(`div`,bi,[N(`span`,xi,T(e.label),1),N(`span`,Si,T(r.$t(`views.assistant.tools_count`,{n:e.count})),1)])]),_:1},8,[`modelValue`,`options`,`selected-items-label`,`placeholder`])]),q(fe).length>1?(D(),F(`div`,Ci,[N(`label`,wi,T(r.$t(`views.assistant.model_label`)),1),R(M,{modelValue:q(ue),"onUpdate:modelValue":i[9]||=e=>V(ue)?ue.value=e:null,"input-id":`assistantModel`,options:q(fe),"option-label":`name`,"option-value":`_id`,class:`min-w-0`,placeholder:q(ve)?.name},{option:w(({option:e})=>[N(`div`,Ti,[N(`span`,Ei,T(e.name),1),N(`span`,Di,[(D(!0),F(H,null,A(Ue(e),e=>(D(),B(j,{key:e.key,severity:e.severity,value:r.$t(`views.settings.assistant_capability_${e.key}`),class:`text-[10px]`},null,8,[`severity`,`value`]))),128))])])]),_:1},8,[`modelValue`,`options`,`placeholder`])])):G(``,!0),N(`div`,Oi,[N(`label`,ki,T(r.$t(`views.assistant.profiles_label`)),1),R(Te,null,{default:w(()=>[R(M,{modelValue:q(X),"onUpdate:modelValue":[i[10]||=e=>V(X)?X.value=e:null,Ve],"input-id":`assistantProfile`,options:q(g)??[],"option-label":`name`,"option-value":`_id`,"show-clear":``,class:`min-w-0`,placeholder:r.$t(`views.assistant.profile_none`)},{option:w(({option:e})=>[N(`div`,Ai,[N(`span`,ji,T(e.name),1),N(`span`,Mi,[(D(!0),F(H,null,A(Ue(He(e)),e=>(D(),B(j,{key:e.key,severity:e.severity,value:r.$t(`views.settings.assistant_capability_${e.key}`),class:`text-[10px]`},null,8,[`severity`,`value`]))),128))])])]),_:1},8,[`modelValue`,`options`,`placeholder`]),R(U,{class:`!p-0`},{default:w(()=>[L((D(),B(u,{type:`button`,severity:`secondary`,text:``,class:`h-full rounded-none`,loading:q(_).isPending.value||q(v).isPending.value,onClick:i[11]||=e=>q(X)?Ke():ce.value=!0},{icon:w(()=>[R(I,{class:`w-4 h-4`})]),_:1},8,[`loading`])),[[$,{value:q(X)?r.$t(`views.assistant.profile_update`):r.$t(`views.assistant.profile_save`)},void 0,{top:!0}]])]),_:1}),q(X)?(D(),B(U,{key:0,class:`!p-0`},{default:w(()=>[L((D(),B(u,{type:`button`,severity:`secondary`,text:``,class:`h-full rounded-none`,loading:q(b).isPending.value,onClick:qe},{icon:w(()=>[R(we,{class:`w-4 h-4`})]),_:1},8,[`loading`])),[[$,{value:r.$t(`views.assistant.profile_delete`)},void 0,{top:!0}]])]),_:1})):G(``,!0)]),_:1}),q(ce)?(D(),F(`div`,Ni,[R(Ee,{modelValue:q(Z),"onUpdate:modelValue":i[12]||=e=>V(Z)?Z.value=e:null,class:`flex-1 min-w-0`,size:`small`,placeholder:r.$t(`views.assistant.profile_name_placeholder`),onKeydown:[oe(ae(We,[`prevent`]),[`enter`]),i[13]||=oe(e=>ce.value=!1,[`esc`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`]),R(u,{type:`button`,size:`small`,label:r.$t(`components.form.button.save`),disabled:!q(Z).trim(),onClick:We},null,8,[`label`,`disabled`])])):G(``,!0)])])]),_:1},512),R(Oe,{ref_key:`memoryPopover`,ref:se},{default:w(()=>[N(`div`,Pi,[N(`div`,Fi,[N(`span`,Ii,T(r.$t(`views.assistant.memory_title`)),1),q(x)?.length?(D(),F(`span`,Li,T(q(x).length),1)):G(``,!0)]),q(x)?.length?(D(),F(`div`,zi,[(D(!0),F(H,null,A(q(x),e=>(D(),F(`div`,{key:e._id,class:`cui-assistant-fact flex items-center gap-2 py-1.5 text-[13px] text-color`},[N(`span`,Bi,T(e.text),1),L((D(),B(u,{type:`button`,severity:`secondary`,text:``,rounded:``,class:`cui-icon-md shrink-0 text-muted`,loading:q(C).isPending.value,onClick:t=>q(C).mutate(e._id)},{icon:w(()=>[R(O,{class:`w-3 h-3`})]),_:1},8,[`loading`,`onClick`])),[[$,{value:r.$t(`views.assistant.memory_forget`)},void 0,{top:!0}]])]))),128))])):(D(),F(`div`,Ri,T(r.$t(`views.assistant.memory_empty`)),1)),q(x)?.length?(D(),B(u,{key:2,type:`button`,size:`small`,severity:`secondary`,outlined:``,class:`w-full`,label:r.$t(`views.assistant.memory_forget_all`),loading:q(E).isPending.value,onClick:i[14]||=e=>q(E).mutate()},null,8,[`label`,`loading`])):G(``,!0)])]),_:1},512)])}}}),[[`__scopeId`,`data-v-e50ce56d`]]);export{Vi as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Jr as e,Kt as t,Vr as n,Z as r}from"./vendor-cameraui-QXD8jkcj.js";import{$n as i,Cr as a,In as o,Rn as s,br as c,cn as l,dn as u,dr as d,er as f,gn as p,hn as m,ln as h,rn as g,sn as _,sr as v,un as y,vn as b,yr as x}from"./vendor-DGke_6M4.js";import{B as S,a as ee}from"./vendor-primevue-CCUqY55W.js";import{t as C}from"./chevron-down-ZYTrU871.js";import{t as w}from"./history-CNJREqJG.js";import{t as T}from"./automations-DXrjbArj.js";import{t as E}from"./nodeDefinitions-Dop49tx8.js";var D={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function O(e,t){return o(),u(`svg`,D,[...t[0]||=[l(`path`,{fill:`currentColor`,d:`M13 14h-2V9h2m0 9h-2v-2h2M1 21h22L12 2z`},null,-1)]])}var k=v({name:`mdi-alert`,render:O}),A={class:`flex flex-col gap-2 min-w-0`},j={key:1,class:`flex flex-col items-center gap-2 py-10`},M={class:`text-sm text-muted`},N=[`onClick`],P={class:`flex flex-col flex-1 min-w-0`},F={class:`text-sm text-color truncate`},I={class:`text-xs text-muted truncate`},L={class:`flex items-center gap-1`},R={key:0,class:`flex flex-col gap-2 border-t border-surface p-3`},z={class:`flex items-center gap-2 min-w-0`},B={class:`text-sm text-color truncate`},V={key:1,class:`text-xs text-muted shrink-0 ml-auto`},H={key:0,class:`text-xs text-red-500 pl-4 break-words`},U={key:1,class:`flex flex-col gap-1 mt-1`},W={class:`text-xs font-medium text-color`},G=b({__name:`CuiAutomationRunsDialog`,props:{flowId:{}},setup(v){let b=new T,D=v,{t:O}=n(),{data:G,isBusy:K}=b.getAutomationRunsQuery(D.flowId),q=d(new Set),J=_(()=>[...G.value??[]].sort((e,t)=>t.startedAt-e.startedAt));function Y(e){let t=new Set(q.value);t.has(e)?t.delete(e):t.add(e),q.value=t}function X(e){let t=E(e);return t?O(t.labelKey):e}function Z(e){switch(e){case`completed`:return O(`views.automations.run_completed`);case`skipped`:return O(`views.automations.run_skipped`);default:return O(`views.automations.run_error`)}}function Q(e){switch(e){case`completed`:return`bg-green-500`;case`error`:return`bg-red-500`;default:return`bg-surface-400`}}function $(e){return e<1e3?`${Math.max(0,Math.round(e))} ms`:e<6e4?`${(e/1e3).toFixed(1)} s`:`${Math.floor(e/6e4)} min ${Math.round(e%6e4/1e3)} s`}return(n,d)=>{let _=r,v=w,b=ee,T=k,E=C,D=S,G=t;return o(),u(`div`,A,[x(K)?(o(),u(g,{key:0},s(3,e=>p(_,{key:e,height:`56px`})),64)):x(J).length?(o(!0),u(g,{key:2},s(x(J),(t,n)=>(o(),u(`div`,{key:`${t.startedAt}-${n}`,class:`shrink-0 border border-surface rounded-lg overflow-hidden`},[l(`div`,{class:`flex items-center gap-2 p-3 cursor-pointer select-none`,onClick:e=>Y(n)},[p(b,{severity:t.status===`success`?`success`:`danger`,value:t.status===`success`?x(O)(`views.automations.run_success`):x(O)(`views.automations.run_error`),class:`shrink-0`},null,8,[`severity`,`value`]),l(`div`,P,[f((o(),u(`span`,F,[m(a(x(e)(new Date(t.startedAt))),1)])),[[G,{value:new Date(t.startedAt).toLocaleString()}]]),l(`span`,I,a(X(t.triggerType))+` · `+a($(t.finishedAt-t.startedAt)),1)]),t.warnings.length?(o(),h(b,{key:0,severity:`warn`,class:`shrink-0`},{default:i(()=>[l(`div`,L,[p(T,{class:`w-3.5 h-3.5`}),l(`span`,null,a(t.warnings.length),1)])]),_:2},1024)):y(``,!0),p(E,{class:c([`w-4 h-4 shrink-0 text-muted transition-transform`,{"rotate-180":x(q).has(n)}])},null,8,[`class`])],8,N),x(q).has(n)?(o(),u(`div`,R,[t.error?(o(),h(D,{key:0,severity:`error`,class:`text-sm`},{default:i(()=>[m(a(t.error),1)]),_:2},1024)):y(``,!0),(o(!0),u(g,null,s(t.entries,e=>(o(),u(`div`,{key:`${e.nodeId}-${e.startedAt}`,class:`flex flex-col gap-0.5`},[l(`div`,z,[f(l(`span`,{class:c([`w-2 h-2 rounded-full shrink-0`,Q(e.status)])},null,2),[[G,{value:Z(e.status)}]]),l(`span`,B,a(X(e.nodeType)),1),e.handle?(o(),h(b,{key:0,severity:`secondary`,value:e.handle,class:`shrink-0`},null,8,[`value`])):y(``,!0),e.durationMs===void 0?y(``,!0):(o(),u(`span`,V,a($(e.durationMs)),1))]),e.error?(o(),u(`span`,H,a(e.error),1)):y(``,!0)]))),128)),t.warnings.length?(o(),u(`div`,U,[l(`span`,W,a(x(O)(`views.automations.run_warnings`)),1),(o(!0),u(g,null,s(t.warnings,e=>(o(),u(`span`,{key:e,class:`text-xs text-muted break-words`},a(e),1))),128))])):y(``,!0)])):y(``,!0)]))),128)):(o(),u(`div`,j,[p(v,{class:`w-8 h-8 text-muted`}),l(`span`,M,a(x(O)(`views.automations.no_runs`)),1)]))])}}});export{G as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./CuiBottomSheet-DWefGWK2.js";export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ai as e,Bt as t,Cr as n,D as r,I as ee,Kt as te,M as ne,P as re,Vr as i,_ as a,j as ie,n as o,r as s,u as c,wr as l,z as ae}from"./vendor-cameraui-QXD8jkcj.js";import{Mn as u,Y as oe,mt as d,tt as f}from"./api-DK2Bav9D.js";import{$n as p,Cn as m,Cr as h,Hn as g,In as _,Jn as v,Ln as y,On as b,cn as x,dn as S,dr as C,er as w,gn as T,ln as E,or as D,rn as se,sn as O,sr as k,un as A,vn as j,yr as M}from"./vendor-DGke_6M4.js";import{t as N}from"./eventIcons-cdzqQc0W.js";import{F as ce,I as le,W as ue}from"./vendor-primevue-CCUqY55W.js";import{i as de,r as fe,t as pe}from"./ungrouped-D56FGIrg.js";import{t as me}from"./utils-gctUU5q_.js";var P={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function F(e,t){return _(),S(`svg`,P,[...t[0]||=[x(`g`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`},[x(`path`,{d:`m3 3l18 18m-6-10v-1l4.553-2.276A1 1 0 0 1 21 8.618v6.764a1 1 0 0 1-.675.946`}),x(`path`,{d:`M10 6h3a2 2 0 0 1 2 2v3m0 4v1a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h1`})],-1)]])}var he=k({name:`tabler-video-off`,render:F}),I={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function L(e,t){return _(),S(`svg`,I,[...t[0]||=[x(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M16 17a1 1 0 1 0 2 0a1 1 0 1 0-2 0M6 7a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0 11L18 6`},null,-1)]])}var ge=k({name:`tabler-percentage`,render:L}),R={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function z(e,t){return _(),S(`svg`,R,[...t[0]||=[x(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M4 7a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2zm12-4v4M8 3v4m-4 4h16m-9 4h1m0 0v3`},null,-1)]])}var _e=k({name:`tabler-calendar`,render:z}),B={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function V(e,t){return _(),S(`svg`,B,[...t[0]||=[x(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M10 8v8m4-8v8m-6-6h8m-8 4h8M3 7V5a2 2 0 0 1 2-2h2M3 17v2a2 2 0 0 0 2 2h2M17 3h2a2 2 0 0 1 2 2v2m-4 14h2a2 2 0 0 0 2-2v-2`},null,-1)]])}var ve=k({name:`tabler-grid-scan`,render:V}),H={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function U(e,t){return _(),S(`svg`,H,[...t[0]||=[x(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M3 10a7 7 0 1 0 14 0a7 7 0 1 0-14 0m18 11l-6-6`},null,-1)]])}var ye=k({name:`tabler-search`,render:U}),W={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function G(e,t){return _(),S(`svg`,W,[...t[0]||=[x(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M5 12h14M5 12l6 6m-6-6l6-6`},null,-1)]])}var be=k({name:`tabler-arrow-left`,render:G}),xe={class:`flex flex-col h-full`},Se={class:`recordings-toolbar flex flex-col gap-1 py-1.5`},Ce={key:0,class:`flex items-center gap-1`},we={key:0,class:`flex items-center gap-1`},Te={key:1,class:`flex items-center gap-1`},Ee={class:`flex items-center`},De={class:`flex items-center gap-1 shrink-0`},Oe={class:`flex items-center`},ke={class:`max-w-[305px]`},Ae={class:`w-48 flex flex-col gap-2`},je={class:`flex items-center justify-between text-xs`},Me={class:`text-muted`},Ne={class:`font-mono`},Pe={class:`flex-1 min-h-0 flex flex-col mt-3`},Fe={key:1,class:`flex justify-center py-4`},Ie={key:2,class:`flex flex-col items-center justify-center py-10 gap-3`},Le={class:`text-muted text-sm`},K=u(j({__name:`CuiCameraRecordings`,props:{cameraId:{},cameraName:{},camera:{},compact:{type:Boolean,default:!1}},emits:[`scrollToEvent`],setup(u,{emit:k}){let j=u,P=k,{openEventTrace:F}=f(),{t:I}=i(),L=m(d,void 0);if(typeof VideoDecoder<`u`){let t=a({cacheSize:10});y(c,t),e(()=>t.dispose())}let{icons:R,generic:z}=N(),B=new Set([`motion`,`audio`]),V=new Set(n),H=[...l.filter(e=>!B.has(e)).map(e=>({label:I(`views.recordings.type_${e}`),value:e,icon:R[e]??z})),...n.map(e=>({label:I(`views.recordings.attr_${e}`),value:e,icon:R[e]??z})),{label:I(`views.recordings.type_other`),value:r,icon:R.other??z}],U=C(!1),W=v(`mobileSearchInputRef`),G=C(``),K=C([]),q=C([]),J=C(),Y=C(0),X=v(`datePopoverRef`),Z=v(`confidencePopoverRef`),Q=O(()=>[j.cameraId]),Re=O(()=>{let e=K.value.filter(e=>V.has(e)),t=K.value.length>0||q.value.length>0;return{types:K.value.length>0?K.value.filter(e=>!V.has(e)):void 0,triggers:q.value.length>0?q.value:void 0,attributes:e.length>0?e:void 0,search:G.value||void 0,hasDetections:!t}}),{events:ze,isLoading:$,hasMore:Be,loadMore:Ve,loadThumbnails:He,pluginUnavailable:Ue}=s({availableCameraIds:Q,cameraIds:Q,realtime:!0,pageSize:30,filter:Re}),We=O(()=>J.value?J.value.toLocaleDateString([],{day:`2-digit`,month:`2-digit`,year:`numeric`}):``),Ge=O(()=>{let e=ze.value.filter(e=>e.state===`ended`||(e.segments?.length??0)>0);if(J.value){let t=J.value,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime(),r=n+864e5;e=e.filter(e=>e.startTime>=n&&e.startTime<r)}Y.value>0&&(e=e.filter(e=>o(e)>=Y.value));let t=L?.regions.value;return t&&t.length>0&&(e=e.filter(e=>e.segments.some(e=>e.detections.some(e=>e.box&&me(e.box,t))))),e}),Ke=O(()=>pe(Ge.value));function qe(){L&&(L.active.value=!L.active.value,L.active.value||(L.regions.value=[]))}function Je(){U.value=!0,b(()=>W.value?.$el?.querySelector(`input`)?.focus())}function Ye(){U.value=!1,G.value=``}function Xe(e,t){j.camera&&F(e,j.camera,t)}return(e,n)=>{let r=be,i=t,a=ye,o=ce,s=ae,c=le,l=ve,d=_e,f=ge,m=ne,v=ue,y=ee,b=re,C=ie,O=de,k=oe,j=he,N=te;return _(),S(`div`,xe,[x(`div`,Se,[M(U)?(_(),S(`div`,Ce,[T(i,{text:``,rounded:``,severity:`secondary`,class:`shrink-0 cui-icon-md`,onClick:Ye},{icon:p(()=>[T(r,{width:`100%`,height:`100%`})]),_:1}),T(c,{class:`flex-1 min-w-0`},{default:p(()=>[T(o,null,{default:p(()=>[T(a,{class:`w-3.5 h-3.5`})]),_:1}),T(s,{ref_key:`mobileSearchInputRef`,ref:W,modelValue:M(G),"onUpdate:modelValue":n[0]||=e=>D(G)?G.value=e:null,placeholder:e.$t(`views.recordings.search_placeholder`),class:`w-full !text-xs !py-1.5`},null,8,[`modelValue`,`placeholder`])]),_:1})])):(_(),S(se,{key:1},[u.compact?(_(),S(`div`,we,[T(c,{class:`flex-1 min-w-0`},{default:p(()=>[T(o,null,{default:p(()=>[T(a,{class:`w-3.5 h-3.5`})]),_:1}),T(s,{modelValue:M(G),"onUpdate:modelValue":n[1]||=e=>D(G)?G.value=e:null,placeholder:e.$t(`views.recordings.search_placeholder`),class:`w-full !text-xs !py-1.5`},null,8,[`modelValue`,`placeholder`])]),_:1}),M(L)?w((_(),E(i,{key:0,text:``,rounded:``,class:`cui-icon-md shrink-0`,severity:M(L).active.value?`primary`:`secondary`,onClick:qe},{icon:p(()=>[T(l,{width:`100%`,height:`100%`})]),_:1},8,[`severity`])),[[N,{value:e.$t(`views.recordings.grid_search`)},void 0,{top:!0}]]):A(``,!0),w((_(),E(i,{text:``,rounded:``,class:`cui-icon-md shrink-0`,severity:M(J)?`primary`:`secondary`,onClick:n[2]||=e=>M(X)?.toggle(e)},{icon:p(()=>[T(d,{width:`100%`,height:`100%`})]),_:1},8,[`severity`])),[[N,{value:M(J)?M(We):e.$t(`views.recordings.date`)},void 0,{top:!0}]]),w((_(),E(i,{text:``,rounded:``,class:`cui-icon-md shrink-0`,severity:M(Y)>0?`primary`:`secondary`,onClick:n[3]||=e=>M(Z)?.toggle(e)},{icon:p(()=>[T(f,{width:`100%`,height:`100%`})]),_:1},8,[`severity`])),[[N,{value:e.$t(`views.recordings.confidence`)},void 0,{top:!0}]])])):A(``,!0),u.compact?A(``,!0):(_(),S(`div`,Te,[T(m,{modelValue:M(K),"onUpdate:modelValue":n[4]||=e=>D(K)?K.value=e:null,options:H,"option-label":`label`,"option-value":`value`,multiple:``,pt:{root:{class:`flex gap-0.5`},pcToggleButton:{root:{class:`!px-2 !py-1.5 !text-xs`}}}},{option:p(({option:e})=>[w((_(),S(`div`,Ee,[(_(),E(g(e.icon),{class:`w-3.5 h-3.5`}))])),[[N,e.label,void 0,{top:!0}]])]),_:1},8,[`modelValue`]),T(v,{class:`ml-auto`,layout:`vertical`}),x(`div`,De,[M(L)?w((_(),E(i,{key:0,text:``,rounded:``,class:`cui-icon-md`,severity:M(L).active.value?`primary`:`secondary`,onClick:qe},{icon:p(()=>[T(l,{width:`100%`,height:`100%`})]),_:1},8,[`severity`])),[[N,{value:e.$t(`views.recordings.grid_search`)},void 0,{top:!0}]]):A(``,!0),w((_(),E(i,{text:``,rounded:``,class:`cui-icon-md`,severity:M(J)?`primary`:`secondary`,onClick:n[5]||=e=>M(X)?.toggle(e)},{icon:p(()=>[T(d,{width:`100%`,height:`100%`})]),_:1},8,[`severity`])),[[N,{value:M(J)?M(We):e.$t(`views.recordings.date`)},void 0,{top:!0}]]),w((_(),E(i,{text:``,rounded:``,class:`cui-icon-md`,severity:M(Y)>0?`primary`:`secondary`,onClick:n[6]||=e=>M(Z)?.toggle(e)},{icon:p(()=>[T(f,{width:`100%`,height:`100%`})]),_:1},8,[`severity`])),[[N,{value:e.$t(`views.recordings.confidence`)},void 0,{top:!0}]]),T(c,{class:`hidden xl:flex`},{default:p(()=>[T(o,null,{default:p(()=>[T(a,{class:`w-3.5 h-3.5`})]),_:1}),T(s,{modelValue:M(G),"onUpdate:modelValue":n[7]||=e=>D(G)?G.value=e:null,placeholder:e.$t(`views.recordings.search_placeholder`),class:`!text-xs !py-1.5 !w-36`},null,8,[`modelValue`,`placeholder`])]),_:1}),w((_(),E(i,{text:``,rounded:``,severity:`secondary`,class:`xl:hidden cui-icon-md`,onClick:Je},{icon:p(()=>[T(a,{width:`100%`,height:`100%`})]),_:1})),[[N,{value:e.$t(`views.recordings.search`)},void 0,{top:!0}]])])])),u.compact?(_(),E(m,{key:2,modelValue:M(K),"onUpdate:modelValue":n[8]||=e=>D(K)?K.value=e:null,options:H,"option-label":`label`,"option-value":`value`,fluid:``,multiple:``,pt:{root:{class:`flex gap-0.5 flex-wrap`},pcToggleButton:{root:{class:`!px-2 !py-1.5 !text-xs`}}}},{option:p(({option:e})=>[w((_(),S(`div`,Oe,[(_(),E(g(e.icon),{class:`w-3.5 h-3.5`}))])),[[N,e.label,void 0,{top:!0}]])]),_:1},8,[`modelValue`])):A(``,!0)],64))]),T(b,{ref_key:`datePopoverRef`,ref:X,class:`border-none`,pt:{content:{class:`p-0`}}},{default:p(()=>[x(`div`,ke,[T(y,{modelValue:M(J),"onUpdate:modelValue":n[9]||=e=>D(J)?J.value=e:null,"max-date":new Date,inline:``,"clear-button-props":{class:`hidden`},class:`hover:text-primary active:text-primary focus:text-primary text-muted-color`,pt:{pcInputText:{root:{class:`text-sm !text-color`}},inputIconContainer:{class:`transition-all text-current`}}},null,8,[`modelValue`,`max-date`]),M(J)?(_(),E(i,{key:0,label:e.$t(`views.recordings.grid_clear`),severity:`secondary`,outlined:``,size:`small`,class:`text-xs mt-2`,fluid:``,onClick:n[10]||=e=>J.value=void 0},null,8,[`label`])):A(``,!0)])]),_:1},512),T(b,{ref_key:`confidencePopoverRef`,ref:Z,pt:{content:{class:`p-3`}}},{default:p(()=>[x(`div`,Ae,[x(`div`,je,[x(`span`,Me,h(e.$t(`views.recordings.confidence`)),1),x(`span`,Ne,h(Math.round(M(Y)*100))+`%`,1)]),T(C,{modelValue:M(Y),"onUpdate:modelValue":n[11]||=e=>D(Y)?Y.value=e:null,min:0,max:1,step:.05,class:`w-full`},null,8,[`modelValue`]),M(Y)>0?(_(),E(i,{key:0,label:e.$t(`views.recordings.grid_clear`),severity:`secondary`,outlined:``,size:`small`,class:`text-xs`,fluid:``,onClick:n[12]||=e=>Y.value=0},null,8,[`label`])):A(``,!0)])]),_:1},512),x(`div`,Pe,[M(Ke).length?(_(),E(fe,{key:0,items:M(Ke),"min-item-width":150,gap:8,"has-more":M(Be),"load-more":M(Ve),"item-key":e=>e.key,class:`flex-1 min-h-0`},{item:p(({item:e})=>[T(O,{event:e.event,"seg-index":e.segIndex,"hide-segment-badge":``,"camera-name":u.cameraName,camera:u.camera,"load-thumbnails":M(He),onScrollToEvent:n[13]||=e=>P(`scrollToEvent`,e),onOpenTrace:t=>Xe(e.event,t)},null,8,[`event`,`seg-index`,`camera-name`,`camera`,`load-thumbnails`,`onOpenTrace`])]),_:1},8,[`items`,`has-more`,`load-more`,`item-key`])):A(``,!0),M($)?(_(),S(`div`,Fe,[T(k,{width:`24px`,height:`24px`,class:`text-muted`})])):A(``,!0),!M(Ge).length&&!M($)?(_(),S(`div`,Ie,[T(j,{class:`w-12 h-12 text-muted opacity-30`}),x(`p`,Le,h(M(Ue)?e.$t(`views.recordings.recordings_unavailable`):e.$t(`views.recordings.no_recordings`)),1)])):A(``,!0)])])}}}),[[`__scopeId`,`data-v-06790bfa`]]);export{K as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./CuiCameraTable-BOkfp_5M.js";export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ai as e,hi as t}from"./vendor-cameraui-QXD8jkcj.js";import{Lr as n,Mn as r,Wn as i}from"./api-DK2Bav9D.js";import{$n as a,Dn as o,In as s,Jn as c,On as l,Pn as u,Rn as d,Tn as f,Xn as p,Xt as m,bn as h,cn as g,dn as _,dr as v,gn as y,pn as b,sn as x,sr as S,un as C,vn as w,xr as T,yr as E,zn as D}from"./vendor-DGke_6M4.js";import{p as O}from"./vendor-core-CnhnyKDl.js";import{g as k}from"./vendor-primevue-CCUqY55W.js";var A={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function j(e,t){return s(),_(`svg`,A,[...t[0]||=[g(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M19 12H5m14 0l-4 4m4-4l-4-4`},null,-1)]])}var M=S({name:`flowbite-arrow-right-outline`,render:j}),N={paginatorTemplate:n,pageLinkSize:3},P={key:0,class:`pointer-events-none absolute right-[0px] top-[-10px] z-2`},F=r(w({inheritAttrs:!1,__name:`CuiDataTable`,props:f({value:{},rows:{},paginator:{type:Boolean},paginatorTemplate:{},pageLinkSize:{}},N),setup(n){let r=n,f=i(),{uiSettings:g}=O(f),S=c(`root`),w=v(!1),A=x(()=>r.rows??g.value.interface.tableRows),j=x(()=>r.paginator||(r.value?.length??0)>A.value);function N(){let e=S.value?.querySelector(`.p-datatable-table-container`);w.value=e?e.scrollWidth-e.clientWidth-Math.ceil(e.scrollLeft)>1:!1}return e(S,`scroll`,N,{capture:!0,passive:!0}),t(S,N),p(()=>r.value,()=>l(N)),u(()=>l(N)),(e,t)=>{let r=M,i=k;return s(),_(`div`,{ref_key:`root`,ref:S,class:`cui-datatable relative w-full`},[y(m,{name:`fade`},{default:a(()=>[E(w)?(s(),_(`div`,P,[y(r,{width:`20px`,height:`20px`,class:`opacity-15`})])):C(``,!0)]),_:1}),y(i,o(e.$attrs,{value:n.value,rows:E(A),paginator:E(j),"paginator-template":n.paginatorTemplate,"page-link-size":n.pageLinkSize}),b({_:2},[d(e.$slots,(t,n)=>({name:n,fn:a(t=>[D(e.$slots,n,T(h(t??{})),void 0,!0)])}))]),1040,[`value`,`rows`,`paginator`,`paginator-template`,`page-link-size`])],512)}}}),[[`__scopeId`,`data-v-31b49404`]]);export{M as n,F as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./CuiMarkdownContent-BUYtK_wD.js";export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{Bt as t,Kr as n,Kt as r,Vr as i,X as a,z as o}from"./vendor-cameraui-QXD8jkcj.js";import{Mn as s,_t as c,gt as l,i as u,jn as ee,kr as d,o as f,wn as te}from"./api-DK2Bav9D.js";import{$n as p,Bn as ne,C as re,Cn as m,Cr as h,Dn as g,En as _,In as v,Jn as y,Kn as b,Ln as x,Rn as S,S as C,Xn as w,Xt as T,_r as E,br as D,c as O,cn as k,dn as A,dr as j,en as M,er as N,gn as P,hn as F,ln as I,nn as L,or as R,rn as z,sn as B,sr as ie,un as V,vn as H,x as U,yr as W,zn as G}from"./vendor-DGke_6M4.js";import{a as ae}from"./intercomService-BnA-FQ0Q.js";import{_ as oe,a as K,c as se,d as q,f as ce,g as le,h as ue,l as de,m as J,n as Y,o as X,p as fe,r as Z,s as Q,t as pe,u as me,v as $,y as he}from"./types-5rE8Tz0_.js";import{p as ge}from"./vendor-core-CnhnyKDl.js";import{A as _e,B as ve,D as ye,E as be,G as xe,K as Se,M as Ce,O as we,R as Te,U as Ee,i as De,k as Oe,l as ke,q as Ae,s as je,v as Me,z as Ne}from"./vendor-primevue-CCUqY55W.js";import{t as Pe}from"./close-BbEPZQqa.js";import{n as Fe}from"./theme-BMmjtQ4w.js";var Ie=H({__name:`CuiChipGroup`,props:_({selectedClass:{},disabled:{type:Boolean},mandatory:{type:Boolean},multiple:{type:Boolean}},{modelValue:{required:!1},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=e,n=b(e,`modelValue`),{selectedClass:r,disabled:i,mandatory:a,multiple:o}=E(t);function s(e){if(!i.value){if(o.value){let t=[...Array.isArray(n.value)?n.value:[]];t.includes(e)?(!a.value||t.length>1)&&(t=t.filter(t=>t!==e)):t.push(e),n.value=t}else n.value===e?a.value||(n.value=void 0):n.value=e}}return x(`chipGroup`,{modelValue:n,selectedClass:r,disabled:i,mandatory:a,updateSelected:s}),(e,t)=>(v(),A(`div`,{class:D([`flex flex-wrap gap-2`,{"opacity-60 pointer-events-none":W(i)}])},[G(e.$slots,`default`)],2))}}),Le={key:0,class:`absolute left-1 top-1/2 transform -translate-y-1/2 flex items-center justify-center cui-icon-sm`},Re=s(H({__name:`CuiChip`,props:{value:{},removable:{type:Boolean},disabled:{type:Boolean},size:{},filter:{type:Boolean}},setup(e){let{value:t,removable:n,disabled:r,size:i,filter:a}=E(e),o=m(`chipGroup`),s=B(()=>!!(r.value||o?.disabled.value)),c=B(()=>{if(!o)return!1;let e=o.modelValue.value;return Array.isArray(e)?e.includes(t.value):e===t.value}),l=B(()=>c.value?o?.selectedClass.value:void 0);function u(){s.value||o?.updateSelected(t.value)}return(e,t)=>{let r=te,o=be;return v(),I(o,{removable:W(n),disabled:W(s),class:D([`cui-chip inline-flex cursor-pointer rounded-full py-1 px-2 relative justify-center items-center`,[{"cui-chip-selected":W(c),"cui-chip-disabled":W(s),"cui-chip-small":W(i)===`small`,"cui-chip-medium":W(i)===`medium`,"cui-chip-large":W(i)===`large`,"pl-7":W(a)&&W(c)},W(l)]]),onClick:u},{default:p(()=>[P(T,{name:`fade`},{default:p(()=>[W(a)&&W(c)?(v(),A(`div`,Le,[P(r,{width:`100%`,height:`100%`})])):V(``,!0)]),_:1}),G(e.$slots,`default`,{},void 0,!0),G(e.$slots,`append`,{},void 0,!0)]),_:3},8,[`removable`,`disabled`,`class`])}}}),[[`__scopeId`,`data-v-a2cecd15`]]),ze={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Be(e,t){return v(),A(`svg`,ze,[...t[0]||=[k(`path`,{fill:`currentColor`,d:`M17 13h-4v4h-2v-4H7v-2h4V7h2v4h4m-5-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2`},null,-1)]])}var Ve=ie({name:`mdi-plus-circle`,render:Be}),He={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ue(e,t){return v(),A(`svg`,He,[...t[0]||=[k(`path`,{fill:`currentColor`,d:`M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2`},null,-1)]])}var We=ie({name:`mdi-information`,render:Ue}),Ge=e(O(),1),Ke={key:0,class:`flex flex-col field-gap`},qe=[`for`],Je={key:1,class:`flex flex-col field-gap`},Ye=[`for`],Xe=[`for`],Ze=[`for`],Qe={class:`flex items-center gap-4`},$e={class:`flex flex-col field-switch-gap`},et=[`for`],tt=[`for`],nt={key:8,class:`flex flex-col gap-6 border border-color-inner rounded-lg p-4`},rt={key:0,class:`flex items-center`},it={class:`text-color text-sm`},at={class:`flex gap-2 items-center w-full`},ot={class:`text-color`},st={class:`w-full h-full flex flex-col gap-6`},ct={class:`flex flex-row w-full items-center justify-center mt-3`},lt=H({__name:`CuiSchemaField`,props:_({schemaField:{},configKey:{},arrayItem:{},loading:{type:Boolean,default:!1}},{modelValue:{type:Object,required:!0},modelModifiers:{}}),emits:_([`onAction`,`onSubmit`,`onTrigger`],[`update:modelValue`]),setup(e,{emit:i}){let s=e,d=i,f=b(e,`modelValue`),te=Fe(),{theme:re}=ge(te),{schemaField:m,configKey:_}=E(s),y=j(0),x=j(0),D=j(m.value.opened?[_.value]:[]),O=n(async()=>{if(J(m.value)&&m.value.format===`qrCode`){let e;return e=re.value===`dark`?{dark:`#FFFFFFFF`,light:`#FF000000`}:{dark:`#404040FF`,light:`#FFFFFFFF`},await Ge.toDataURL(H.value||``,{margin:.5,type:`image/png`,color:e,scale:10})}},void 0,{lazy:!0}),M=B(()=>{if(!q(m.value))return[];let e=m.value.enumLabels;return m.value.enum.map(t=>({label:e?.[t]??t,value:t}))}),ie=B(()=>{if(J(m.value)&&m.value.format===`image`)return H.value}),H=B({get:()=>(y.value,X(f.value,_.value)),set:e=>{let t=m.value,n=e;q(t)?n=t.multiple?Array.isArray(e)?e:[e]:e&&e.toString():J(t)?n=e==null?``:e.toString():ce(t)?n=typeof e==`number`?e:parseFloat(e)||0:se(t)&&(n=e===`true`||e===!0),he(f.value,_.value,n),y.value++}});function G(e){if(!e.step)return 3;let t=String(e.step),n=t.indexOf(`.`);return n===-1?0:t.length-n-1}function ae(e,t){let n=X(e,t);return Array.isArray(n)?n:[]}function oe(e){let t=X(f.value,e),n=Array.isArray(t)?[...t]:[];Q(m.value)&&m.value.items&&(n.push(Z(m.value.items)),he(f.value,e,n),x.value++)}function K(e,t){let n=X(f.value,e);if(Array.isArray(n)){let r=[...n];r.splice(t,1),he(f.value,e,r),x.value++,d(`onTrigger`)}}return w(f,()=>{y.value++},{deep:!0}),(n,i)=>{let s=ee,te=De,re=o,y=je,b=c,w=Te,E=Pe,j=t,B=Ne,Y=ve,X=Me,Z=Ae,pe=Ce,me=ke,$=ne(`CuiSchemaField`,!0),he=We,ge=Oe,be=Ve,xe=_e,Se=we,Ee=ye,Fe=a,Ie=r;return v(),A(`div`,null,[W(J)(W(m))&&W(m).format===`qrCode`?(v(),A(`div`,Ke,[k(`label`,{for:W(_),class:`cui-label`},h(W(m).title),9,qe),P(s,{src:W(O),class:`mb-3`,"image-container-class":`w-full h-full`},null,8,[`src`])])):V(``,!0),W(J)(W(m))&&W(m).format===`image`?(v(),A(`div`,Je,[k(`label`,{for:W(_),class:`cui-label`},h(W(m).title),9,Ye),P(s,{src:W(ie),class:`mb-3`,"image-container-class":`w-full h-full`},null,8,[`src`])])):W(le)(W(m))?(v(),I(W(C),{key:2,modelValue:W(H),"onUpdate:modelValue":i[2]||=e=>R(H)?H.value=e:null,modelModifiers:{trim:!0},name:W(_),as:`div`,class:`flex flex-col field-gap`},{default:p(({field:t,errors:r})=>[k(`label`,{for:W(_),class:`cui-label`},h(W(m).title),9,Xe),P(B,null,{default:p(()=>[W(m).format===`textarea`?(v(),I(te,g({key:0},t,{class:`w-full`,invalid:r.length>0,readonly:W(m).readonly,placeholder:W(m).placeholder,rows:`4`,"auto-resize":``}),null,16,[`invalid`,`readonly`,`placeholder`])):W(m).format===`password`?(v(),I(y,g({key:2,"model-value":W(H),invalid:r.length>0,readonly:W(m).readonly},t,{feedback:!1,"toggle-mask":``}),null,16,[`model-value`,`invalid`,`readonly`])):(v(),I(re,g({key:1},t,{invalid:r.length>0,readonly:W(m).readonly,placeholder:W(m).placeholder,loading:e.loading,type:`text`}),null,16,[`invalid`,`readonly`,`placeholder`,`loading`])),W(m).readonly?(v(),I(w,{key:3},{default:p(()=>[P(b,{"action-text":n.$t(`components.form.tooltip.copied`),icon:W(l),"button-props":{severity:`secondary`,text:!0},onAction:i[0]||=e=>W(u)(String(W(H)??``))},null,8,[`action-text`,`icon`])]),_:1})):V(``,!0),e.arrayItem?(v(),I(w,{key:4},{default:p(()=>[P(j,{text:``,severity:`secondary`,loading:e.loading,onClick:i[1]||=t=>K(e.arrayItem.key,e.arrayItem.index)},{icon:p(()=>[P(E)]),_:1},8,[`loading`])]),_:1})):V(``,!0)]),_:2},1024),P(T,{name:`fade`},{default:p(()=>[P(W(U),{name:W(_),class:`cui-input-error`},null,8,[`name`])]),_:1}),!r.length&&W(m).description?(v(),I(Y,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[F(h(W(m).description),1)]),_:1})):V(``,!0)]),_:1},8,[`modelValue`,`name`])):W(ce)(W(m))?(v(),I(W(C),{key:3,"model-value":W(H),name:W(_),as:`div`,class:`flex flex-col field-gap`},{default:p(({field:t,errors:r})=>[k(`label`,{for:W(_),class:`cui-label`},h(W(m).title),9,Ze),P(B,null,{default:p(()=>[P(X,g(t,{modelValue:W(H),"onUpdate:modelValue":i[3]||=e=>R(H)?H.value=e:null,invalid:r.length>0,readonly:W(m).readonly,step:W(m).step||1,min:W(m).minimum,max:W(m).maximum,"max-fraction-digits":G(W(m)),"show-buttons":!W(m).readonly,"use-grouping":!1,loading:e.loading,onValueChange:i[4]||=e=>H.value=e??void 0,onInput:i[5]||=e=>H.value=e.value??void 0}),null,16,[`modelValue`,`invalid`,`readonly`,`step`,`min`,`max`,`max-fraction-digits`,`show-buttons`,`loading`]),W(m).readonly?(v(),I(w,{key:0},{default:p(()=>[P(b,{"action-text":n.$t(`components.form.tooltip.copied`),icon:W(l),"button-props":{severity:`secondary`,text:!0},onAction:i[6]||=e=>W(u)(String(W(H)??``))},null,8,[`action-text`,`icon`])]),_:1})):V(``,!0),e.arrayItem?(v(),I(w,{key:1},{default:p(()=>[P(j,{text:``,rounded:``,severity:`danger`,loading:e.loading,onClick:i[7]||=t=>K(e.arrayItem.key,e.arrayItem.index)},{icon:p(()=>[P(E)]),_:1},8,[`loading`])]),_:1})):V(``,!0)]),_:2},1024),P(T,{name:`fade`},{default:p(()=>[P(W(U),{name:W(_),class:`cui-input-error`},null,8,[`name`])]),_:1}),!r.length&&W(m).description?(v(),I(Y,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[F(h(W(m).description),1)]),_:1})):V(``,!0)]),_:1},8,[`model-value`,`name`])):W(se)(W(m))?(v(),I(W(C),{key:4,"model-value":W(H),value:!0,"unchecked-value":!1,type:`checkbox`,name:W(_),as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:p(({field:t,errors:n})=>[k(`div`,Qe,[k(`div`,$e,[k(`label`,{for:W(_),class:`cui-label-switch`},h(W(m).title),9,et),P(Y,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:p(()=>[F(h(W(m).description),1)]),_:1}),P(T,{name:`fade`},{default:p(()=>[P(W(U),{name:W(_),class:`cui-input-switch-error`},null,8,[`name`])]),_:1})]),P(Z,g({"model-value":W(H)},t,{invalid:n.length>0,loading:e.loading,class:`ml-auto shrink-0`,onValueChange:i[8]||=e=>H.value=e}),null,16,[`model-value`,`invalid`,`loading`])])]),_:1},8,[`model-value`,`name`])):W(q)(W(m))?(v(),I(W(C),{key:5,"model-value":W(H),name:W(_),as:`div`,class:`flex flex-col field-gap`},{default:p(({field:t,errors:n})=>[k(`label`,{for:W(_),class:`cui-label`},h(W(m).title),9,tt),P(B,null,{default:p(()=>[W(m).multiple?(v(),I(me,g({key:1},t,{"model-value":W(H),options:W(M),"option-label":`label`,"option-value":`value`,invalid:n.length>0,disabled:W(m).readonly,placeholder:W(m).placeholder,"show-clear":!W(m).required&&!W(m).readonly,"show-toggle-all":!1,"max-selected-labels":3,loading:e.loading,onValueChange:i[10]||=e=>H.value=e}),null,16,[`model-value`,`options`,`invalid`,`disabled`,`placeholder`,`show-clear`,`loading`])):(v(),I(pe,g({key:0},t,{"model-value":W(H),options:W(M),"option-label":`label`,"option-value":`value`,invalid:n.length>0,disabled:W(m).readonly,placeholder:W(m).placeholder,loading:e.loading,onValueChange:i[9]||=e=>H.value=e}),null,16,[`model-value`,`options`,`invalid`,`disabled`,`placeholder`,`loading`])),e.arrayItem?(v(),I(w,{key:2},{default:p(()=>[P(j,{text:``,rounded:``,severity:`danger`,loading:e.loading,onClick:i[11]||=t=>K(e.arrayItem.key,e.arrayItem.index)},{icon:p(()=>[P(E)]),_:1},8,[`loading`])]),_:1})):V(``,!0)]),_:2},1024),P(T,{name:`fade`},{default:p(()=>[P(W(U),{name:W(_),class:`cui-input-error`},null,8,[`name`])]),_:1}),!n.length&&W(m).description?(v(),I(Y,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[F(h(W(m).description),1)]),_:1})):V(``,!0)]),_:1},8,[`model-value`,`name`])):W(de)(W(m))?(v(),A(z,{key:6},[P(j,{fluid:``,class:`mt-3 mb-1 cui-button-medium`,severity:W(m).color,loading:e.loading,label:W(m).title,onClick:i[12]||=L(e=>d(`onAction`,{key:W(_)}),[`prevent`])},null,8,[`severity`,`loading`,`label`]),W(m).description?(v(),I(Y,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[F(h(W(m).description),1)]),_:1})):V(``,!0)],64)):W(ue)(W(m))?(v(),A(z,{key:7},[P(j,{fluid:``,class:`mt-3 mb-1 cui-button-medium`,severity:W(m).color,loading:e.loading,label:W(m).title,onClick:i[13]||=L(e=>d(`onSubmit`,{key:W(m).key}),[`prevent`])},null,8,[`severity`,`loading`,`label`]),W(m).description?(v(),I(Y,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[F(h(W(m).description),1)]),_:1})):V(``,!0)],64)):W(fe)(W(m))&&W(m).properties?(v(),A(`div`,nt,[e.arrayItem?(v(),A(`div`,rt,[k(`span`,it,h(W(m).title),1),P(j,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md ml-auto`,loading:e.loading,onClick:i[14]||=t=>K(e.arrayItem.key,e.arrayItem.index)},{icon:p(()=>[P(E)]),_:1},8,[`loading`])])):V(``,!0),(v(!0),A(z,null,S(W(m).properties,t=>(v(),I($,{key:t.key,modelValue:f.value,"onUpdate:modelValue":i[15]||=e=>f.value=e,"schema-field":t,"config-key":`${W(_)}.${t.key}`,loading:e.loading,onOnAction:i[16]||=e=>d(`onAction`,e),onOnSubmit:i[17]||=e=>d(`onSubmit`,e)},null,8,[`modelValue`,`schema-field`,`config-key`,`loading`]))),128))])):W(Q)(W(m))&&W(m).items?(v(),I(Fe,{key:9,class:`cui-card border-color-inner`,pt:{body:{class:`p-1`}}},{content:p(()=>[(v(),I(Ee,{key:W(x),value:W(D),"onUpdate:value":i[24]||=e=>R(D)?D.value=e:null,multiple:``},{default:p(()=>[P(Se,{value:W(_)??`0`,class:`border-none`},{default:p(()=>[P(ge,null,{default:p(()=>[k(`div`,at,[W(m).description?N((v(),I(he,{key:0,class:`text-muted`},null,512)),[[Ie,{value:W(m).description}]]):V(``,!0),k(`span`,ot,h(W(m).title||W(_)),1),e.arrayItem?(v(),I(j,{key:1,text:``,rounded:``,severity:`danger`,class:`cui-icon-md ml-auto mr-2`,loading:e.loading,onClick:i[18]||=t=>K(e.arrayItem.key,e.arrayItem.index)},{icon:p(()=>[P(E,{width:`100%`,height:`100%`})]),_:1},8,[`loading`])):V(``,!0)])]),_:1}),P(xe,null,{default:p(()=>[k(`div`,st,[(v(!0),A(z,null,S(ae(f.value,W(_)),(t,n)=>(v(),I($,{key:`item-${n}`,modelValue:f.value,"onUpdate:modelValue":i[19]||=e=>f.value=e,"schema-field":W(m).items,"config-key":`${W(_)}[${n}]`,"array-item":{key:W(_),index:n},loading:e.loading,onOnAction:i[20]||=e=>d(`onAction`,e),onOnSubmit:i[21]||=e=>d(`onSubmit`,e),onOnTrigger:i[22]||=()=>x.value++},null,8,[`modelValue`,`schema-field`,`config-key`,`array-item`,`loading`]))),128)),k(`div`,ct,[P(j,{text:``,rounded:``,class:`cui-icon-md`,loading:e.loading,onClick:i[23]||=L(e=>oe(W(_)),[`prevent`])},{icon:p(()=>[P(be,{width:`100%`,height:`100%`})]),_:1},8,[`loading`])])])]),_:1})]),_:1},8,[`value`])]),_:1},8,[`value`]))]),_:1})):V(``,!0)])}}}),ut={key:0,class:`flex flex-col gap-6`},dt={class:`card-title`},ft={class:`flex flex-col gap-6`},pt={key:0,class:`text-sm`},mt={key:1,class:`flex flex-row items-end justify-end`},ht={key:1,class:`flex flex-col gap-6`},gt={key:2,class:`flex flex-col gap-6`},_t=H({__name:`CuiSchema`,props:{schemaForm:{},loading:{type:Boolean,default:!1},disableButton:{type:Boolean},saveButton:{type:Boolean,default:!0},saveButtonLabel:{},saveButtonColor:{},showButton:{type:Boolean,default:!1},groupsAsCards:{type:Boolean,default:!1},groupDescriptions:{}},emits:[`onSubmit`,`onAction`,`onFormSubmit`,`changeGroup`],setup(e,{expose:n,emit:r}){let o=e,s=r,{schemaForm:c,loading:l,saveButton:u,saveButtonLabel:ee,showButton:te,disableButton:ne,saveButtonColor:m,groupsAsCards:_}=E(o),b=ae(),x=d(),{t:C}=i(),T=y(`formRef`),D=j(``),O=j(!1),L=j({}),ie=B(()=>K(c.value.schema)),H=B(()=>{let e=[];return c.value.schema.forEach(t=>{t.group&&!t.hidden&&!e.includes(t.group)&&e.push(t.group)}),e});w(H,e=>{e.length?e.includes(D.value)||(D.value=e[0]):D.value&&=``},{immediate:!0});let U=B(()=>_.value&&H.value.length?H.value.every(e=>oe(c.value.schema,e)):oe(c.value.schema,D.value)),G=B(()=>_.value&&H.value.length?H.value.some(e=>$(c.value.schema,e)):$(c.value.schema,D.value)),se=B(()=>c.value.schema.filter(e=>!e.group&&!e.hidden));function q(e){return c.value.schema.filter(t=>t.group===e&&!t.hidden)}function ce(e){return u.value&&$(c.value.schema,e)&&!oe(c.value.schema,e)}function le(e){let t=J(e)&&e.format===`qrCode`,n=J(e)&&e.format===`image`,r=de(e)||ue(e);return!t&&!n&&!r}function X(e){return`condition`in e&&e.condition&&!pe(e.condition,L.value)?!1:!e.hidden||e.hidden&&le(e)}async function fe(){return await T.value?.validate()}function Z(e){s(`onAction`,e)}async function Q(e){let t=await fe();t?.valid&&t?.values?(O.value=!1,s(`onSubmit`,{key:e.key,payload:t.values})):(O.value=!0,b.error(`result`,t))}function he({errors:e}){O.value=!0,b.error(`Form validation failed:`,e),x.add({severity:`error`,detail:C(`components.toast.config_invalid`),life:5e3})}async function ge(){let e=await fe();e?.valid&&e?.values?(O.value=!1,s(`onFormSubmit`,e.values)):(O.value=!0,b.error(`Form validation failed:`,e))}function _e(){T.value?.resetForm()}return w([c,T],([])=>{T.value&&(!me(T.value.values,c.value.schema)||O.value)&&(L.value=T.value.values),c.value.config&&Object.keys(c.value.config).length?L.value={...Y(c.value.schema),...f(c.value.config)}:L.value=Y(c.value.schema)},{immediate:!0,deep:!0}),w(D,e=>{e&&s(`changeGroup`,e)}),n({reset:_e,validate:fe}),(n,r)=>{let i=lt,o=t,s=a,d=Re,f=Ie,y=Ee,b=xe,x=Se;return v(),A(`div`,null,[P(W(re),{ref_key:`formRef`,ref:T,"validation-schema":W(ie),onSubmit:ge,onInvalidSubmit:he},{default:p(()=>[W(H).length&&W(_)?(v(),A(`div`,ut,[(v(!0),A(z,null,S(W(H),t=>(v(),A(`div`,{key:t},[k(`span`,dt,h(t),1),P(s,{class:`cui-card`},{content:p(()=>[k(`div`,ft,[e.groupDescriptions?.[t]?(v(),A(`span`,pt,h(e.groupDescriptions[t]),1)):V(``,!0),(v(!0),A(z,null,S(q(t),e=>(v(),A(z,{key:e.key},[X(e)?N((v(),I(i,{key:0,modelValue:W(L),"onUpdate:modelValue":r[0]||=e=>R(L)?L.value=e:null,"schema-field":e,"config-key":e.key,loading:W(l),onOnAction:Z,onOnSubmit:Q},null,8,[`modelValue`,`schema-field`,`config-key`,`loading`])),[[M,!e.hidden]]):V(``,!0)],64))),128)),ce(t)?(v(),A(`div`,mt,[P(o,{class:`cui-button-medium`,severity:W(m),type:`submit`,loading:W(l),disabled:W(ne),label:W(ee)||n.$t(`components.form.button.save`)},null,8,[`severity`,`loading`,`disabled`,`label`])])):V(``,!0)])]),_:2},1024)]))),128)),(v(!0),A(z,null,S(W(se),e=>(v(),A(z,{key:e.key},[X(e)?N((v(),I(i,{key:0,modelValue:W(L),"onUpdate:modelValue":r[1]||=e=>R(L)?L.value=e:null,"schema-field":e,"config-key":e.key,loading:W(l),onOnAction:Z,onOnSubmit:Q},null,8,[`modelValue`,`schema-field`,`config-key`,`loading`])),[[M,!e.hidden]]):V(``,!0)],64))),128))])):W(H).length?(v(),A(`div`,ht,[P(f,{modelValue:W(D),"onUpdate:modelValue":r[2]||=e=>R(D)?D.value=e:null,mandatory:``},{default:p(()=>[(v(!0),A(z,null,S(W(H),e=>(v(),I(d,{key:e,size:`small`,value:e},{default:p(()=>[F(h(e),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`]),P(x,{value:W(D),"onUpdate:value":r[4]||=e=>R(D)?D.value=e:null,scrollable:``,class:`w-full h-full`},{default:p(()=>[P(b,{class:`p-0`},{default:p(()=>[(v(!0),A(z,null,S(W(H),(e,t)=>(v(),I(y,{key:t,value:e,"as-child":``},{default:p(t=>[N(k(`div`,g({class:t.class},{ref_for:!0},t.a11yAttrs,{class:`flex flex-col gap-6`}),[(v(!0),A(z,null,S(q(e),e=>(v(),A(z,{key:e.key},[X(e)?N((v(),I(i,{key:0,modelValue:W(L),"onUpdate:modelValue":r[3]||=e=>R(L)?L.value=e:null,"schema-field":e,"config-key":e.key,loading:W(l),onOnAction:Z,onOnSubmit:Q},null,8,[`modelValue`,`schema-field`,`config-key`,`loading`])),[[M,!e.hidden]]):V(``,!0)],64))),128))],16),[[M,t.active]])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`value`]),(v(!0),A(z,null,S(W(se),e=>(v(),A(z,{key:e.key},[X(e)?N((v(),I(i,{key:0,modelValue:W(L),"onUpdate:modelValue":r[5]||=e=>R(L)?L.value=e:null,"schema-field":e,"config-key":e.key,loading:W(l),onOnAction:Z,onOnSubmit:Q},null,8,[`modelValue`,`schema-field`,`config-key`,`loading`])),[[M,!e.hidden]]):V(``,!0)],64))),128))])):(v(),A(`div`,gt,[(v(!0),A(z,null,S(W(c).schema,e=>(v(),A(z,{key:e.key},[X(e)?N((v(),I(i,{key:0,modelValue:W(L),"onUpdate:modelValue":r[6]||=e=>R(L)?L.value=e:null,"schema-field":e,"config-key":e.key,loading:W(l),onOnAction:Z,onOnSubmit:Q},null,8,[`modelValue`,`schema-field`,`config-key`,`loading`])),[[M,!e.hidden]]):V(``,!0)],64))),128))])),!(W(_)&&W(H).length)&&(!W(U)&&W(G)&&W(u)||W(te))?(v(),I(o,{key:3,fluid:``,class:`mt-7 cui-button-medium`,severity:W(m),type:`submit`,loading:W(l),disabled:W(ne),label:W(ee)||n.$t(`components.form.button.save`)},null,8,[`severity`,`loading`,`disabled`,`label`])):V(``,!0)]),_:1},8,[`validation-schema`])])}}});export{Ie as a,Re as i,We as n,Ve as r,_t as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Bt as e,Kt as t,Pr as n,Rr as r,Vr as i,X as a,Z as o,l as s,w as c,z as l}from"./vendor-cameraui-QXD8jkcj.js";import{Bn as u,H as d,In as f,L as p,Nn as m,Pn as h,R as g,U as _,ct as v,kr as ee,u as y,wn as b,z as te}from"./api-DK2Bav9D.js";import{$n as x,Cr as S,In as C,Jn as ne,Rn as w,Sr as T,Xn as E,br as D,cn as O,dn as k,dr as A,er as j,gn as M,ln as N,nn as P,or as F,rn as I,sn as L,sr as R,un as z,vn as B,yr as V}from"./vendor-DGke_6M4.js";import{h as re}from"./eventIcons-cdzqQc0W.js";import{A as ie,D as ae,M as oe,O as se,T as H,k as ce}from"./vendor-primevue-CCUqY55W.js";import{t as le}from"./close-BbEPZQqa.js";import{t as ue}from"./minus-BI5qXFwJ.js";import{n as de,t as fe}from"./eye-off-JCu1iUer.js";import{t as pe}from"./refresh-DfqyhMOh.js";import{t as U}from"./plugins-eIUrXNeM.js";import{t as me}from"./delete-CY8fsIW6.js";import{t as W}from"./upload-nnbfDypK.js";import{t as he}from"./back-filled-BPBVnQjx.js";import{t as ge}from"./plus-CHPYoMO_.js";var G={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function _e(e,t){return C(),k(`svg`,G,[...t[0]||=[O(`path`,{fill:`currentColor`,d:`M13 8a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4a4 4 0 0 1 4 4m4 10v2H1v-2c0-2.21 3.58-4 8-4s8 1.79 8 4m3.5-3.5V16H19v-1.5zm-2-5H17V9a3 3 0 0 1 3-3a3 3 0 0 1 3 3c0 .97-.5 1.88-1.29 2.41l-.3.19c-.57.4-.91 1.01-.91 1.7v.2H19v-.2c0-1.19.6-2.3 1.59-2.95l.29-.19c.39-.26.62-.69.62-1.16A1.5 1.5 0 0 0 20 7.5A1.5 1.5 0 0 0 18.5 9z`},null,-1)]])}var ve=R({name:`mdi-account-question`,render:_e}),K={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function ye(e,t){return C(),k(`svg`,K,[...t[0]||=[O(`path`,{fill:`currentColor`,d:`M15 14c-2.67 0-8 1.33-8 4v2h16v-2c0-2.67-5.33-4-8-4m-9-4V7H4v3H1v2h3v3h2v-3h3v-2m6 2a4 4 0 0 0 4-4a4 4 0 0 0-4-4a4 4 0 0 0-4 4a4 4 0 0 0 4 4`},null,-1)]])}var be=R({name:`mdi-account-plus`,render:ye}),q={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function xe(e,t){return C(),k(`svg`,q,[...t[0]||=[O(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M5 12h14`},null,-1)]])}var Se=R({name:`tabler-minus`,render:xe}),Ce={class:`aspect-square overflow-hidden flex items-center justify-center bg-black/5 dark:bg-black/30`},we=[`src`],Te=[`src`],J={class:`font-medium truncate`},Ee={class:`text-xs text-muted`},De={class:`bg-neutral-900 w-full rounded-xl overflow-hidden relative border-[1px] border-color shadow-lg`,style:{"aspect-ratio":`1 / 1`}},Oe=[`src`],ke={key:1,class:`w-full h-full flex items-center justify-center bg-neutral-800/80`},Ae=[`src`],Y={class:`absolute top-0 left-0 right-0 p-2 bg-gradient-to-b from-black/60 to-transparent`},je={class:`flex items-center justify-between`},Me={class:`text-xs text-white/70`},Ne={key:2,class:`absolute bottom-2 left-2 pointer-events-none`},Pe={key:3,class:`absolute bottom-0 left-0 right-0 p-1.5 bg-gradient-to-t from-black/60 to-transparent flex items-center justify-center gap-1 dark-mode`},Fe=B({__name:`CuiFaceCard`,props:{variant:{},thumbnail:{},name:{},imageCount:{},cameraName:{},timestamp:{},confidence:{},compact:{type:Boolean},showRemove:{type:Boolean},selectionMode:{type:Boolean},selected:{type:Boolean},assignValue:{},assignOptions:{}},emits:[`click`,`assign`,`assign-prompt`,`skip`,`remove`,`ignore`,`restore`],setup(n){let r=n,i=y(),o=L(()=>r.confidence?r.confidence>=.9?`text-green-400`:r.confidence>=.7?`text-yellow-400`:`text-red-400`:`text-white/50`),s=L(()=>r.timestamp?new Date(r.timestamp).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}):``);return(r,c)=>{let l=a,u=b,d=de,f=e,p=Se,m=be,h=fe,g=me,_=t;return n.variant===`known`?(C(),N(l,{key:0,class:`cui-card transition-shadow cursor-pointer hover:shadow-md`,onClick:c[0]||=e=>r.$emit(`click`)},{header:x(()=>[O(`div`,Ce,[n.thumbnail?(C(),k(`img`,{key:0,src:n.thumbnail,class:`w-full h-full object-cover`},null,8,we)):(C(),k(`img`,{key:1,src:V(i),class:`w-1/2 h-1/2 object-contain`},null,8,Te))])]),content:x(()=>[O(`div`,J,S(n.name),1),O(`div`,Ee,S(n.imageCount)+` `+S(r.$t(`views.faces.images`)),1)]),_:1})):(C(),k(`div`,{key:1,class:D([`relative`,n.selectionMode?`cursor-pointer`:`cursor-default`]),onClick:c[6]||=e=>n.selectionMode&&r.$emit(`click`)},[O(`div`,De,[n.thumbnail?(C(),k(`img`,{key:0,src:n.thumbnail,class:`w-full h-full object-cover`},null,8,Oe)):(C(),k(`div`,ke,[O(`img`,{src:V(i),class:`w-1/3 h-1/3 object-contain opacity-20`},null,8,Ae)])),O(`div`,Y,[O(`div`,je,[O(`span`,Me,S(V(s)),1),n.confidence?(C(),k(`span`,{key:0,class:D([`text-xs font-medium`,V(o)])},S(Math.round(n.confidence*100))+`%`,3)):z(``,!0)])]),n.selectionMode?(C(),k(`div`,Ne,[O(`div`,{class:D([`w-6 h-6 rounded-full border-2 flex items-center justify-center transition-colors`,n.selected?`bg-primary border-primary`:`bg-black/40 border-white/80`])},[n.selected?(C(),N(u,{key:0,class:`w-4 h-4 text-white`})):z(``,!0)],2)])):z(``,!0),n.selectionMode?z(``,!0):(C(),k(`div`,Pe,[n.variant===`ignored`?j((C(),N(f,{key:0,severity:`secondary`,rounded:``,size:`small`,class:`cui-icon-sm text-white`,onClick:c[1]||=P(e=>r.$emit(`restore`),[`stop`])},{icon:x(()=>[M(d,{width:`100%`,height:`100%`})]),_:1})),[[_,r.$t(`views.faces.restore`),void 0,{top:!0}]]):(C(),k(I,{key:1},[n.showRemove?j((C(),N(f,{key:0,severity:`secondary`,rounded:``,size:`small`,class:`cui-icon-sm text-white`,onClick:c[2]||=P(e=>r.$emit(`remove`),[`stop`])},{icon:x(()=>[M(p,{class:`w-4 h-4`})]),_:1})),[[_,r.$t(`views.faces.remove_from_cluster`),void 0,{top:!0}]]):j((C(),N(f,{key:1,severity:`secondary`,rounded:``,size:`small`,class:`cui-icon-sm text-white`,onClick:c[3]||=P(e=>r.$emit(`assign-prompt`),[`stop`])},{icon:x(()=>[M(m,{width:`100%`,height:`100%`})]),_:1})),[[_,r.$t(`views.faces.assign`),void 0,{top:!0}]]),j((C(),N(f,{severity:`secondary`,rounded:``,size:`small`,class:`cui-icon-sm text-white`,onClick:c[4]||=P(e=>r.$emit(`ignore`),[`stop`])},{icon:x(()=>[M(h,{width:`100%`,height:`100%`})]),_:1})),[[_,r.$t(`views.faces.ignore`),void 0,{top:!0}]]),j((C(),N(f,{severity:`danger`,rounded:``,size:`small`,class:`cui-icon-sm text-white`,onClick:c[5]||=P(e=>r.$emit(`skip`),[`stop`])},{icon:x(()=>[M(g,{width:`100%`,height:`100%`})]),_:1})),[[_,r.$t(`views.faces.discard`),void 0,{top:!0}]])],64))]))])],2))}}}),Ie={key:0,class:`text-sm text-muted mb-4`},Le={key:1,class:`grid grid-cols-3 gap-2`},Re=[`src`],ze={key:2,class:`text-muted text-sm text-center py-8`},X=B({__name:`FaceDetail`,props:{face:{},onRemoveImage:{type:Function},onDeletePerson:{type:Function}},setup(t,{expose:n}){let r=t,i=L(()=>r.face);return n({onConfirm:async()=>(r.onDeletePerson(),!0)}),(n,r)=>{let a=le,o=e;return C(),k(`div`,null,[V(i).imageCount?(C(),k(`div`,Ie,S(V(i).imageCount)+` `+S(n.$t(`views.faces.training_images`)),1)):z(``,!0),V(i).images.length?(C(),k(`div`,Le,[(C(!0),k(I,null,w(V(i).images,(e,n)=>(C(),k(`div`,{key:n,class:`relative aspect-square rounded-2xl overflow-hidden bg-surface-100 dark:bg-surface-800`},[O(`img`,{src:e.src,class:`w-full h-full object-cover`},null,8,Re),e.confidence?(C(),k(`div`,{key:0,class:D([`absolute bottom-0.5 right-0.5 text-[10px] font-medium px-1 rounded bg-black/60`,e.confidence>=.9?`text-green-400`:e.confidence>=.7?`text-yellow-400`:`text-red-400`])},S(Math.round(e.confidence*100))+`% `,3)):z(``,!0),M(o,{severity:`danger`,rounded:``,class:`!absolute top-1 right-1 cui-icon-sm text-white`,onClick:e=>t.onRemoveImage(n)},{icon:x(()=>[M(a,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])]))),128))])):(C(),k(`div`,ze,S(n.$t(`views.faces.no_known_faces`)),1))])}}}),Be={class:`flex flex-col gap-2 w-full`},Ve={for:`personName`,class:`cui-label`},Z=B({__name:`FaceNewPerson`,props:{knownNames:{}},setup(e,{expose:t}){let n=e,r=A(``),i=A([]);function a(e){let t=e.query.trim().toLowerCase(),r=n.knownNames??[];i.value=t?r.filter(e=>e.toLowerCase().includes(t)):[...r]}return t({onConfirm:async()=>r.value.trim()||null}),(e,t)=>{let n=H;return C(),k(`div`,Be,[O(`label`,Ve,S(e.$t(`views.faces.name`)),1),M(n,{id:`personName`,modelValue:V(r),"onUpdate:modelValue":t[0]||=e=>F(r)?r.value=e:null,suggestions:V(i),class:`w-full`,fluid:``,dropdown:``,"dropdown-mode":`blank`,"complete-on-focus":``,placeholder:e.$t(`views.faces.enter_or_pick_name`),autofocus:``,onComplete:a},null,8,[`modelValue`,`suggestions`,`placeholder`])])}}}),He=[`image/jpeg`,`image/png`,`image/webp`],Ue={class:`flex flex-col gap-6`},We={class:`cui-label`},Q={class:`cui-label`},Ge={key:0},$={class:`text-sm text-muted`},Ke={key:1},qe=[`src`],Je=[`accept`],Ye={key:0,class:`text-xs text-red-500 mt-1`},Xe={class:`flex items-center justify-center mt-2 text-xs text-muted`},Ze=B({__name:`FaceUpload`,props:{onEnroll:{type:Function}},setup(e,{expose:t}){let a=new U,o=e,{t:s}=i(),{data:c}=a.getPluginsExtensionsQuery({page:1,pageSize:-1}),u=A(``),d=A(``),f=A(``),p=A(null),m=A(``),h=A(),g=L(()=>(c.value?.result??[]).filter(e=>n(e.contract,r.FaceDetection)).map(e=>({label:e.displayName,value:e.pluginName})));function _(){h.value?.click()}function v(e){let t=e.target.files?.[0];t&&b(t)}function ee(e){let t=e.dataTransfer?.files[0];t&&b(t)}function y(e){return He.includes(e.type)?e.size>10485760?s(`views.faces.file_too_large`,{maxSize:10}):null:s(`views.faces.invalid_format`)}function b(e){m.value=``;let t=y(e);if(t){m.value=t,p.value=null,f.value=``;return}let n=new FileReader;n.onload=()=>{p.value=new Uint8Array(n.result)},n.readAsArrayBuffer(e);let r=new FileReader;r.onload=()=>{f.value=r.result},r.readAsDataURL(e)}return E(g,e=>{!d.value&&e.length===1&&(d.value=e[0].value)},{immediate:!0}),t({onConfirm:async()=>!u.value||!d.value||!p.value?null:(await o.onEnroll(u.value,p.value,d.value),!0)}),(e,t)=>{let n=l,r=oe,i=W;return C(),k(`div`,Ue,[O(`div`,null,[O(`label`,We,S(e.$t(`views.faces.name`)),1),M(n,{modelValue:V(u),"onUpdate:modelValue":t[0]||=e=>F(u)?u.value=e:null,modelModifiers:{trim:!0},placeholder:e.$t(`views.faces.enter_name`),class:`w-full`,autofocus:``},null,8,[`modelValue`,`placeholder`])]),O(`div`,null,[O(`label`,Q,S(e.$t(`views.faces.face_plugin`)),1),M(r,{modelValue:V(d),"onUpdate:modelValue":t[1]||=e=>F(d)?d.value=e:null,options:V(g),"option-label":`label`,"option-value":`value`,placeholder:e.$t(`views.faces.select_plugin`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`])]),O(`div`,null,[t[3]||=O(`label`,{class:`cui-label mb-1`},`Image`,-1),O(`div`,{class:`border-2 border-dashed border-surface-300 dark:border-surface-600 rounded-lg p-6 text-center cursor-pointer hover:border-primary transition-colors`,onClick:_,onDragover:t[2]||=P(()=>{},[`prevent`]),onDrop:P(ee,[`prevent`])},[V(f)?(C(),k(`div`,Ke,[O(`img`,{src:V(f),class:`max-h-48 mx-auto rounded`},null,8,qe)])):(C(),k(`div`,Ge,[M(i,{class:`w-8 h-8 text-muted mx-auto mb-2`}),O(`div`,$,S(e.$t(`views.faces.drop_image`)),1)]))],32),O(`input`,{ref_key:`fileInput`,ref:h,type:`file`,accept:V(He).join(`,`),class:`hidden`,onChange:v},null,40,Je),V(m)?(C(),k(`div`,Ye,S(V(m)),1)):z(``,!0),O(`div`,Xe,[O(`span`,null,`(`+S(V(10))+`MB, `+S(V(He).join(`, `))+`)`,1)])])])}}}),Qe={class:`flex flex-col`},$e={key:0,class:`flex items-center justify-between`},et={class:`page-title`},tt={class:`p-3`},nt={key:0,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4`},rt={class:`text-muted text-sm`},it={class:`mb-6 p-px`},at={class:`flex items-center justify-between mb-3`},ot={class:`card-title m-0!`},st={key:1,class:`text-muted text-sm`},ct={class:`mb-6 p-px`},lt={class:`flex items-center justify-between mb-3`},ut={class:`card-title m-0!`},dt={class:`flex flex-col gap-3`},ft={class:`flex items-center gap-3 w-full`},pt=[`onClick`],mt={class:`w-10 h-10 rounded-full overflow-hidden bg-surface-100 dark:bg-surface-800 shrink-0`},ht=[`src`],gt={class:`font-medium`},_t={class:`flex items-center gap-3 w-full`},vt={class:`w-10 h-10 rounded-full overflow-hidden bg-surface-100 dark:bg-surface-800 shrink-0 flex items-center justify-center`},yt={class:`flex flex-col`},bt={class:`font-medium`},xt={class:`text-muted text-sm font-normal`},St={class:`flex items-center gap-3 w-full`},Ct={class:`w-10 h-10 rounded-full overflow-hidden bg-surface-100 dark:bg-surface-800 shrink-0 flex items-center justify-center`},wt={class:`flex flex-col`},Tt={class:`font-medium`},Et={class:`text-muted text-sm font-normal`},Dt={key:0,class:`text-muted text-sm`},Ot=B({__name:`Faces`,setup(n){let r=v(),l=ee(),{t:y}=i(),{smBreakpoint:E}=f(),{width:F}=u(),R=c(),B=R.clusteredUnknowns,oe=ne(`knownSkeletonRef`),H=A(!1),de=L(()=>[...B.value.clusters.flatMap(e=>e.faces),...B.value.ungrouped]),{selectionMode:U,selectedIds:W,selectedItems:G,allSelected:_e,bulkBusy:K,enterSelectionMode:ye,exitSelectionMode:q,toggleSelectAll:xe,toggleSelection:Ce}=p(de,e=>e.id),we=L(()=>{let e=new Set(B.value.clusters.flatMap(e=>e.faces.map(e=>e.id)));return[...W.value].filter(t=>e.has(t))}),Te=L(()=>{F.value;let e=E.value?140:160,t=oe.value?.clientWidth??F.value;return Math.floor((t+12)/(e+12))||4});function J(e){let t=0;for(let n of e)W.value.has(n.id)&&t++;return t===0?`none`:t===e.length?`all`:`some`}function Ee(e){let t=new Set(W.value),n=e.every(e=>t.has(e.id));for(let r of e)n?t.delete(r.id):t.add(r.id);W.value=t}async function De(){H.value=!0;try{let e=await R.rescanFaces();e>0?l.add({severity:`success`,detail:y(`views.faces.rescan_complete`,{count:e}),life:3e3}):l.add({severity:`info`,detail:y(`views.faces.rescan_no_matches`),life:3e3})}catch(e){l.add({severity:`error`,detail:e,life:3e3})}finally{H.value=!1}}async function Oe(e){let t=A([]);try{t.value=(await R.getFaceImages(e.name)).map(e=>{let t=s(e.jpeg);return t?{id:e.id,src:t,confidence:e.confidence??0}:null}).filter(Boolean)}catch{}let n=r.openComponentDialog(X,{data:{title:e.name,contentProps:{face:L(()=>({...e,images:t.value,imageCount:t.value.length})),onRemoveImage:async n=>{let r=t.value[n];if(r)try{await R.removeFaceImage(e.name,r.id),t.value.splice(n,1),l.add({severity:`success`,detail:y(`views.faces.image_removed`),life:3e3}),await R.refresh(!0)}catch(e){l.add({severity:`error`,detail:e,life:3e3})}},onDeletePerson:async()=>{try{await R.deleteFace(e.name),l.add({severity:`success`,detail:y(`views.faces.person_deleted`),life:3e3}),n.close(),await R.refresh(!0)}catch(e){l.add({severity:`error`,detail:e,life:3e3})}}},confirmText:y(`views.faces.delete_person`),confirmButtonProps:{severity:`danger`}}})}function ke(){r.openComponentDialog(Ze,{data:{title:y(`views.faces.add_face`),confirmText:y(`views.faces.enroll`),contentProps:{onEnroll:async(e,t,n)=>{await R.enrollFace(e,t,n),l.add({severity:`success`,detail:y(`views.faces.face_enrolled`),life:3e3}),await R.refresh(!0)}}}})}async function Ae(e,t){let n=e.faces.map(e=>e.id);if(t===`__new__`){Y(n);return}try{await R.enrollCluster(t,n),l.add({severity:`success`,detail:y(`views.faces.face_assigned`),life:3e3})}catch(e){l.add({severity:`error`,detail:e,life:3e3})}}function Y(e){r.openComponentDialog(Z,{data:{title:y(`views.faces.enter_person_name`),confirmText:y(`views.faces.enroll`),contentProps:{knownNames:R.knownFaces.value.map(e=>e.name)}},onConfirm:async t=>{try{await R.enrollCluster(t,e),l.add({severity:`success`,detail:y(`views.faces.face_enrolled`),life:3e3})}catch(e){l.add({severity:`error`,detail:e,life:3e3})}}})}async function je(e){try{await R.deleteUnknownFacesByCluster(e.clusterId)}catch(e){l.add({severity:`error`,detail:e,life:3e3})}}async function Me(e){try{await R.deleteUnknownFace(e.id)}catch(e){l.add({severity:`error`,detail:e,life:3e3})}}async function Ne(e){try{await R.removeFromCluster(e.id)}catch(e){l.add({severity:`error`,detail:e,life:3e3})}}async function Pe(e){try{await R.ignoreFaces([e.id]),l.add({severity:`success`,detail:y(`views.faces.face_ignored`),life:3e3})}catch(e){l.add({severity:`error`,detail:e,life:3e3})}}async function Ie(e){try{await R.ignoreCluster(e.clusterId),l.add({severity:`success`,detail:y(`views.faces.face_ignored`),life:3e3})}catch(e){l.add({severity:`error`,detail:e,life:3e3})}}async function Le(){let e=G.value.map(e=>e.id);if(e.length){K.value=!0;try{await R.ignoreFaces(e),l.add({severity:`success`,detail:y(`views.faces.face_ignored`),life:3e3}),q()}catch(e){l.add({severity:`error`,detail:e,life:3e3})}finally{K.value=!1}}}async function Re(e){try{await R.unignoreFaces([e.id]),l.add({severity:`success`,detail:y(`views.faces.face_restored`),life:3e3})}catch(e){l.add({severity:`error`,detail:e,life:3e3})}}function ze(e){r.openComponentDialog(Z,{data:{title:y(`views.faces.assign`),confirmText:y(`views.faces.enroll`),contentProps:{knownNames:R.knownFaces.value.map(e=>e.name)}},onConfirm:async t=>{try{await R.enrollFromEvent(t,e.id),l.add({severity:`success`,detail:y(`views.faces.face_assigned`),life:3e3}),await R.refresh(!0)}catch(e){l.add({severity:`error`,detail:e,life:3e3})}}})}function Be(){let e=G.value.map(e=>e.id);e.length&&r.openComponentDialog(Z,{data:{title:y(`views.faces.assign`),confirmText:y(`views.faces.enroll`),contentProps:{knownNames:R.knownFaces.value.map(e=>e.name)}},onConfirm:async t=>{K.value=!0;try{await R.enrollCluster(t,e),l.add({severity:`success`,detail:y(`views.faces.face_assigned`),life:3e3}),q()}catch(e){l.add({severity:`error`,detail:e,life:3e3})}finally{K.value=!1}}})}async function Ve(){let e=we.value;if(e.length){K.value=!0;try{await R.removeFacesFromCluster(e),q()}catch(e){l.add({severity:`error`,detail:e,life:3e3})}finally{K.value=!1}}}async function He(){let e=G.value.map(e=>e.id);if(e.length){K.value=!0;try{await R.deleteUnknownFaces(e),q()}catch(e){l.add({severity:`error`,detail:e,life:3e3})}finally{K.value=!1}}}async function Ue(){try{await R.deleteUngroupedUnknownFaces(),l.add({severity:`success`,detail:y(`views.faces.all_unknown_cleared`),life:3e3})}catch(e){l.add({severity:`error`,detail:e,life:3e3})}}return(n,r)=>{let i=pe,c=e,l=he,u=_,f=o,p=re,v=Fe,ee=b,y=ue,ne=be,A=fe,F=me,L=ce,G=ie,Y=se,X=ae,Z=a,We=ve,Q=m,Ge=h,$=t;return C(),k(`div`,Qe,[V(E)?z(``,!0):(C(),k(`div`,$e,[O(`h1`,et,S(n.$t(`views.faces.title`)),1),V(R).knownFaces.value.length?j((C(),N(c,{key:0,severity:`secondary`,text:``,rounded:``,class:`cui-icon-lg relative z-2`,loading:V(H),onClick:De},{icon:x(()=>[M(i,{width:`100%`,height:`100%`})]),_:1},8,[`loading`])),[[$,{value:n.$t(`views.faces.rescan_events`)},void 0,{bottom:!0}]]):z(``,!0)])),M(u,{position:`left`},{default:x(()=>[M(c,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:r[0]||=e=>n.$router.push(`/menu`)},{icon:x(()=>[M(l,{class:`w-6 h-6`})]),_:1})]),_:1}),M(u,{position:`right`},{default:x(()=>[V(R).knownFaces.value.length?(C(),N(c,{key:0,severity:`secondary`,class:`cui-button p-2 text-color`,text:``,rounded:``,loading:V(H),onClick:De},{icon:x(()=>[M(i,{width:`100%`,height:`100%`})]),_:1},8,[`loading`])):z(``,!0)]),_:1}),V(R).isLoading.value?(C(),k(`section`,{key:1,ref_key:`knownSkeletonRef`,ref:oe,class:`mb-6 p-px`},[M(f,{height:`16px`,width:`140px`,class:`mb-3`}),O(`div`,{class:`grid w-full gap-3 p-px`,style:T({gridTemplateColumns:`repeat(auto-fill, minmax(${V(E)?`140px`:`160px`}, 1fr))`})},[(C(!0),k(I,null,w(V(Te),e=>(C(),k(`div`,{key:e,class:`cui-card overflow-hidden`},[M(f,{class:`aspect-square`,width:`100%`,height:`100%`}),O(`div`,tt,[M(f,{height:`14px`,width:`70%`,class:`mb-1`}),M(f,{height:`12px`,width:`40%`})])]))),128))],4)],512)):(C(),k(I,{key:2},[!V(R).knownFaces.value.length&&!V(R).unknownFaces.value.length&&!V(R).ignoredFaces.value.length?(C(),k(`div`,nt,[M(p,{class:`w-12 h-12 text-muted`}),O(`span`,rt,S(n.$t(`views.faces.no_faces_yet`)),1)])):(C(),k(I,{key:1},[O(`section`,it,[O(`div`,at,[O(`span`,ot,S(n.$t(`views.faces.known_faces`))+` (`+S(V(R).knownFaces.value.length)+`)`,1)]),V(R).knownFaces.value.length?(C(),k(`div`,{key:0,class:`grid w-full gap-3 p-px`,style:T({gridTemplateColumns:`repeat(auto-fill, minmax(${V(E)?`140px`:`160px`}, 1fr))`})},[(C(!0),k(I,null,w(V(R).knownFaces.value,e=>(C(),N(v,{key:e.name,variant:`known`,thumbnail:V(s)(e.thumbnail),name:e.name,"image-count":e.imageCount,onClick:t=>Oe(e)},null,8,[`thumbnail`,`name`,`image-count`,`onClick`]))),128))],4)):(C(),k(`div`,st,S(n.$t(`views.faces.no_known_faces`)),1))]),O(`section`,ct,[O(`div`,lt,[O(`span`,ut,S(n.$t(`views.faces.unknown_faces`))+` (`+S(V(R).unknownFaces.value.length)+`)`,1)]),O(`div`,dt,[V(B).clusters.length?(C(),N(Z,{key:0,class:`cui-card border-color-inner h-auto!`,pt:{body:{class:`pb-0`}}},{content:x(()=>[M(X,{multiple:``},{default:x(()=>[(C(!0),k(I,null,w(V(B).clusters,(e,t)=>(C(),N(Y,{key:e.clusterId,value:e.clusterId,class:D({"border-b-0":t===V(B).clusters.length-1})},{default:x(()=>[M(L,{class:D({"px-0 pt-0":t===0,"px-0":t!==0,"pb-5":t===V(B).clusters.length-1})},{default:x(()=>[O(`span`,ft,[V(U)?(C(),k(`div`,{key:0,class:`shrink-0`,onClick:P(t=>Ee(e.faces),[`stop`])},[O(`div`,{class:D([`w-6 h-6 rounded-full border-2 flex items-center justify-center transition-colors cursor-pointer`,J(e.faces)===`none`?`border-surface-400 dark:border-surface-500`:`bg-primary border-primary`])},[J(e.faces)===`all`?(C(),N(ee,{key:0,class:`w-4 h-4 text-white`})):J(e.faces)===`some`?(C(),N(y,{key:1,class:`w-4 h-4 text-white`})):z(``,!0)],2)],8,pt)):z(``,!0),O(`div`,mt,[e.bestThumbnail?(C(),k(`img`,{key:0,src:e.bestThumbnail,class:`w-full h-full object-cover`},null,8,ht)):z(``,!0)]),O(`span`,gt,S(e.faces.length)+` `+S(n.$t(`views.faces.faces_in_cluster`)),1),O(`span`,{class:`ml-auto flex items-center gap-1 mr-2`,onClick:r[1]||=P(()=>{},[`stop`])},[j((C(),N(c,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-lg`,onClick:t=>Ae(e,`__new__`)},{icon:x(()=>[M(ne,{class:`w-4 h-4`})]),_:1},8,[`onClick`])),[[$,n.$t(`views.faces.assign_cluster`),void 0,{top:!0}]]),j((C(),N(c,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-lg`,onClick:t=>Ie(e)},{icon:x(()=>[M(A,{class:`w-4 h-4`})]),_:1},8,[`onClick`])),[[$,n.$t(`views.faces.ignore_cluster`),void 0,{top:!0}]]),j((C(),N(c,{severity:`danger`,text:``,rounded:``,class:`cui-icon-lg`,onClick:t=>je(e)},{icon:x(()=>[M(F,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[$,n.$t(`views.faces.discard`),void 0,{top:!0}]])])])]),_:2},1032,[`class`]),M(G,{pt:{content:{class:{"px-0":!0,"pb-5":t===V(B).clusters.length-1}}}},{default:x(()=>[O(`div`,{class:`grid w-full gap-3`,style:T({gridTemplateColumns:`repeat(auto-fill, minmax(${V(E)?`120px`:`140px`}, 1fr))`})},[(C(!0),k(I,null,w(e.faces,e=>(C(),N(v,{key:e.id,variant:`unknown`,"show-remove":``,thumbnail:V(s)(e.thumbnail),timestamp:e.timestamp,confidence:e.confidence,"selection-mode":V(U),selected:V(W).has(e.id),onClick:t=>V(Ce)(e.id),onAssignPrompt:t=>ze(e),onRemove:t=>Ne(e),onIgnore:t=>Pe(e),onSkip:t=>Me(e)},null,8,[`thumbnail`,`timestamp`,`confidence`,`selection-mode`,`selected`,`onClick`,`onAssignPrompt`,`onRemove`,`onIgnore`,`onSkip`]))),128))],4)]),_:2},1032,[`pt`])]),_:2},1032,[`value`,`class`]))),128))]),_:1})]),_:1})):z(``,!0),V(B).ungrouped.length?(C(),N(Z,{key:1,class:`cui-card border-color-inner h-auto!`,pt:{body:{class:`pb-0`}}},{content:x(()=>[M(X,null,{default:x(()=>[M(Y,{value:`__ungrouped__`,class:`border-b-0`},{default:x(()=>[M(L,{class:`px-0 pt-0 pb-5`},{default:x(()=>[O(`span`,_t,[V(U)?(C(),k(`div`,{key:0,class:`shrink-0`,onClick:r[2]||=P(e=>Ee(V(B).ungrouped),[`stop`])},[O(`div`,{class:D([`w-6 h-6 rounded-full border-2 flex items-center justify-center transition-colors cursor-pointer`,J(V(B).ungrouped)===`none`?`border-surface-400 dark:border-surface-500`:`bg-primary border-primary`])},[J(V(B).ungrouped)===`all`?(C(),N(ee,{key:0,class:`w-4 h-4 text-white`})):J(V(B).ungrouped)===`some`?(C(),N(y,{key:1,class:`w-4 h-4 text-white`})):z(``,!0)],2)])):z(``,!0),O(`div`,vt,[M(We,{class:`w-5 h-5 text-muted`})]),O(`span`,yt,[O(`span`,bt,S(n.$t(`views.faces.ungrouped`))+` (`+S(V(B).ungrouped.length)+`)`,1),O(`span`,xt,S(n.$t(`views.faces.ungrouped_hint`)),1)]),O(`span`,{class:`ml-auto flex items-center gap-1 mr-2`,onClick:r[3]||=P(()=>{},[`stop`])},[j((C(),N(c,{severity:`danger`,text:``,rounded:``,class:`cui-icon-lg`,onClick:Ue},{icon:x(()=>[M(F,{width:`100%`,height:`100%`})]),_:1})),[[$,n.$t(`views.faces.discard`),void 0,{top:!0}]])])])]),_:1}),M(G,{pt:{content:{class:`px-0 pb-5`}}},{default:x(()=>[O(`div`,{class:`grid w-full gap-3`,style:T({gridTemplateColumns:`repeat(auto-fill, minmax(${V(E)?`120px`:`140px`}, 1fr))`})},[(C(!0),k(I,null,w(V(B).ungrouped,e=>(C(),N(v,{key:e.id,variant:`unknown`,thumbnail:V(s)(e.thumbnail),timestamp:e.timestamp,confidence:e.confidence,"selection-mode":V(U),selected:V(W).has(e.id),onClick:t=>V(Ce)(e.id),onAssignPrompt:t=>ze(e),onIgnore:t=>Pe(e),onSkip:t=>Me(e)},null,8,[`thumbnail`,`timestamp`,`confidence`,`selection-mode`,`selected`,`onClick`,`onAssignPrompt`,`onIgnore`,`onSkip`]))),128))],4)]),_:1})]),_:1})]),_:1})]),_:1})):z(``,!0),V(R).ignoredFaces.value.length?(C(),N(Z,{key:2,class:`cui-card border-color-inner h-auto!`,pt:{body:{class:`pb-0`}}},{content:x(()=>[M(X,null,{default:x(()=>[M(Y,{value:`__ignored__`,class:`border-b-0`},{default:x(()=>[M(L,{class:`px-0 pt-0 pb-5`},{default:x(()=>[O(`span`,St,[O(`div`,Ct,[M(A,{class:`w-5 h-5 text-muted`})]),O(`span`,wt,[O(`span`,Tt,S(n.$t(`views.faces.ignored_faces`))+` (`+S(V(R).ignoredFaces.value.length)+`)`,1),O(`span`,Et,S(n.$t(`views.faces.ignored_hint`)),1)])])]),_:1}),M(G,{pt:{content:{class:`px-0 pb-5`}}},{default:x(()=>[O(`div`,{class:`grid w-full gap-3`,style:T({gridTemplateColumns:`repeat(auto-fill, minmax(${V(E)?`120px`:`140px`}, 1fr))`})},[(C(!0),k(I,null,w(V(R).ignoredFaces.value,e=>(C(),N(v,{key:e.id,variant:`ignored`,thumbnail:V(s)(e.thumbnail),timestamp:e.timestamp,onRestore:t=>Re(e)},null,8,[`thumbnail`,`timestamp`,`onRestore`]))),128))],4)]),_:1})]),_:1})]),_:1})]),_:1})):z(``,!0)]),!V(R).unknownFaces.value.length&&!V(R).ignoredFaces.value.length?(C(),k(`div`,Dt,S(n.$t(`views.faces.no_unknown_faces`)),1)):z(``,!0)])],64))],64)),M(Ge,{"force-visible":V(U)},{default:x(()=>[V(U)?(C(),k(I,{key:1},[M(Q,{grouped:``,"tooltip-props":{value:n.$t(`components.form.tooltip.cancel_selection`)},"button-props":{severity:`secondary`},icon:V(le),"icon-props":{width:`100%`,height:`100%`},onClick:V(q)},null,8,[`tooltip-props`,`icon`,`onClick`]),M(Q,{grouped:``,"tooltip-props":{value:V(_e)?n.$t(`components.form.tooltip.deselect_all`):n.$t(`components.form.tooltip.select_all`)},"button-props":{severity:V(_e)?`primary`:`secondary`},icon:V(d),"icon-props":{width:`100%`,height:`100%`},onClick:V(xe)},null,8,[`tooltip-props`,`button-props`,`icon`,`onClick`]),M(Q,{grouped:``,"tooltip-props":{value:n.$t(`views.faces.assign`)},"button-props":{severity:`secondary`,disabled:!V(W).size||V(K)},icon:V(be),"icon-props":{width:`100%`,height:`100%`},onClick:Be},null,8,[`tooltip-props`,`button-props`,`icon`]),M(Q,{grouped:``,"tooltip-props":{value:n.$t(`views.faces.remove_from_cluster`)},"button-props":{severity:`secondary`,disabled:!V(we).length||V(K)},icon:V(Se),"icon-props":{width:`100%`,height:`100%`},onClick:Ve},null,8,[`tooltip-props`,`button-props`,`icon`]),M(Q,{grouped:``,"tooltip-props":{value:n.$t(`views.faces.ignore`)},"button-props":{severity:`secondary`,disabled:!V(W).size||V(K)},icon:V(fe),"icon-props":{width:`100%`,height:`100%`},onClick:Le},null,8,[`tooltip-props`,`button-props`,`icon`]),M(Q,{grouped:``,"tooltip-props":{value:n.$t(`views.faces.discard`)},"button-props":{severity:`danger`,disabled:!V(W).size||V(K)},icon:V(te),"icon-props":{width:`100%`,height:`100%`},onClick:He},null,8,[`tooltip-props`,`button-props`,`icon`])],64)):(C(),k(I,{key:0},[V(de).length?(C(),N(Q,{key:0,grouped:``,"tooltip-props":{value:n.$t(`views.faces.select`)},"button-props":{severity:`secondary`},icon:V(g),"icon-props":{width:`100%`,height:`100%`},onClick:V(ye)},null,8,[`tooltip-props`,`icon`,`onClick`])):z(``,!0),M(Q,{grouped:``,"tooltip-props":{value:n.$t(`views.faces.add_face`)},"button-props":{class:`text-white`},icon:V(ge),"icon-props":{width:`30px`,height:`30px`},onClick:ke},null,8,[`tooltip-props`,`icon`])],64))]),_:1},8,[`force-visible`])])}}});export{Ot as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Bt as e,Kt as t,P as n,Vr as r,j as i,lr as a,yt as o,z as s,zt as c}from"./vendor-cameraui-QXD8jkcj.js";import{Ct as l,Dt as u,Et as d,In as ee,It as te,Ln as ne,Mn as f,Rr as re,Sn as ie,St as p,Tt as ae,U as oe,Xt as m,at as h,bt as se,ct as ce,hn as le,kr as ue,m as de,s as fe,tn as pe,vr as me,vt as he,wt as ge,xt as _e,yt as g}from"./api-DK2Bav9D.js";import{$n as _,Cr as v,Dn as y,Fn as b,Hn as x,In as S,Jn as ve,On as ye,Pn as be,Rn as C,Sr as w,Xn as xe,br as T,cn as E,dn as D,dr as O,er as k,gn as A,hn as j,ln as M,lr as Se,mr as N,nn as P,nr as F,or as Ce,rn as I,sn as L,sr as R,un as z,vn as we,yr as B}from"./vendor-DGke_6M4.js";import{s as Te,u as Ee}from"./vendor-core-CnhnyKDl.js";import{A as De,B as Oe,D as ke,M as Ae,O as je,W as Me,i as Ne,k as Pe,o as Fe}from"./vendor-primevue-CCUqY55W.js";import{t as Ie}from"./close-BbEPZQqa.js";import{t as Le}from"./minus-BI5qXFwJ.js";import{t as Re}from"./chevron-up-LQXNz9CE.js";import{t as ze}from"./chevron-down-ZYTrU871.js";import{t as Be}from"./pencil-outline-CD3Xv98d.js";import{t as Ve}from"./plus--kDl8ben.js";import{t as He}from"./trash-can-outline-Bk5eENNM.js";import{t as Ue}from"./restore-FMacmqd_.js";import{n as We}from"./rooms-BqPyo8jc.js";import{t as Ge}from"./CuiBottomSheet-DWefGWK2.js";import{t as Ke}from"./cctv-D6kxZ-lp.js";import{t as qe}from"./back-filled-BPBVnQjx.js";import{i as Je,n as Ye,r as Xe,t as Ze}from"./undo-Dcf7vcsv.js";import{c as V,i as H,n as U}from"./vendor-vueflow-Bmwd2les.js";import{t as W}from"./eye-off-outline-GErp76H2.js";var G={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function K(e,t){return S(),D(`svg`,G,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M14 3v2h3.59l-9.83 9.83l1.41 1.41L19 6.41V10h2V3m-2 16H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7h-2z`},null,-1)]])}var Qe=R({name:`mdi-open-in-new`,render:K}),$e={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function q(e,t){return S(),D(`svg`,$e,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M2 2h6v2h8V2h6v6h-2v8h2v6h-6v-2H8v2H2v-6h2V8H2zm14 6V6H8v2H6v8h2v2h8v-2h2V8zM4 4v2h2V4zm14 0v2h2V4zM4 18v2h2v-2zm14 0v2h2v-2z`},null,-1)]])}var et=R({name:`mdi-vector-square`,render:q}),tt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function nt(e,t){return S(),D(`svg`,tt,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M12 3c-1.11 0-2 .89-2 2H3v14H2v2h20v-2h-1V5c0-1.11-.89-2-2-2zm0 2h7v14h-7zm-7 6h2v2H5z`},null,-1)]])}var rt=R({name:`mdi-door-open`,render:nt}),it=.55,at={min:.2,max:3},J={min:100,max:3e3},ot=[`door`,`opening`,`stairs`],st={min:40,max:400},ct=`application/floorplanitem`;function Y(e){return e/100}function lt(e,t=2){return`${Y(e).toFixed(t)} m`}function ut(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}function dt(e,t){let n=Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y),r=Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x);if(n>0&&(e.x+e.width===t.x||t.x+t.width===e.x))return{x:e.x+e.width===t.x?t.x:e.x,y:Math.max(e.y,t.y),stepX:0,stepY:1,length:n};if(r>0&&(e.y+e.height===t.y||t.y+t.height===e.y)){let n=e.y+e.height===t.y?t.y:e.y;return{x:Math.max(e.x,t.x),y:n,stepX:1,stepY:0,length:r}}return null}function ft(e,t,n){let r=Math.min(n,e.length)/2,i=Math.min(Math.max(t??e.length/2,r),e.length-r);return{x1:e.x+e.stepX*(i-r),y1:e.y+e.stepY*(i-r),x2:e.x+e.stepX*(i+r),y2:e.y+e.stepY*(i+r)}}function pt(e,t,n){let r=t.filter(t=>t.roomId===e.fromRoomId),i=t.filter(t=>t.roomId===e.toRoomId);if(!r.length||!i.length)return null;let a=r.some(e=>e.levelId===n),o=i.some(e=>e.levelId===n);if(!a&&!o)return null;if(a!==o){let t=a?e.fromShapeId:e.toShapeId,n=a?r:i;return{kind:`badge`,roomId:a?e.fromRoomId:e.toRoomId,shapeId:n.find(e=>e.id===t)?.id??n[0].id}}let s=r.find(t=>t.id===e.fromShapeId),c=i.find(t=>t.id===e.toShapeId),l=s&&c?[[s,c]]:r.flatMap(e=>i.map(t=>[e,t]));for(let[t,n]of l){let r=dt(t,n);if(r)return{kind:`edge`,...ft(r,e.offset,e.width),wall:r}}let u=ut(r[0]),d=ut(i[0]);return{kind:`link`,x1:u.x,y1:u.y,x2:d.x,y2:d.y}}function mt(e,t,n){let r=ht(e);return{fill:r.map(e=>gt(e,t,[])).join(` `),wall:r.map(e=>gt(e,t,n)).join(` `)}}function ht(e){if(!e.length)return[];let t=[...new Set(e.flatMap(e=>[e.x,e.x+e.width]))].sort((e,t)=>e-t),n=[...new Set(e.flatMap(e=>[e.y,e.y+e.height]))].sort((e,t)=>e-t),r=(r,i)=>{if(r<0||i<0||r>=t.length-1||i>=n.length-1)return!1;let a=(t[r]+t[r+1])/2,o=(n[i]+n[i+1])/2;return e.some(e=>a>e.x&&a<e.x+e.width&&o>e.y&&o<e.y+e.height)},i=e=>`${e.x},${e.y}`,a=new Map;for(let e=0;e<t.length-1;e++)for(let o=0;o<n.length-1;o++){if(!r(e,o))continue;let s=t[e],c=t[e+1],l=n[o],u=n[o+1];r(e,o-1)||a.set(i({x:s,y:l}),{x:c,y:l}),r(e+1,o)||a.set(i({x:c,y:l}),{x:c,y:u}),r(e,o+1)||a.set(i({x:c,y:u}),{x:s,y:u}),r(e-1,o)||a.set(i({x:s,y:u}),{x:s,y:l})}let o=[];for(;a.size;){let[e]=a.keys(),t=[],n={x:Number(e.split(`,`)[0]),y:Number(e.split(`,`)[1])};for(;n;){let e=a.get(i(n));if(!e)break;a.delete(i(n)),t.push(n),n=a.has(i(e))?e:void 0}t.length>2&&o.push(X(t))}return o}function X(e){return e.filter((t,n)=>{let r=e[(n-1+e.length)%e.length],i=e[(n+1)%e.length];return(r.x!==t.x||i.x!==t.x)&&(r.y!==t.y||i.y!==t.y)})}function gt(e,t,n){let r=[],i=[],a=[];for(let n=0;n<e.length;n++){let o=e[n],s=e[(n-1+e.length)%e.length],c=e[(n+1)%e.length],l=vt(s,o),u=vt(o,c),d=Math.min(t,l/2,u/2);r.push({x:o.x+(s.x-o.x)/l*d,y:o.y+(s.y-o.y)/l*d}),i.push({x:o.x+(c.x-o.x)/u*d,y:o.y+(c.y-o.y)/u*d}),a.push(d)}let o=n.length===0,s=[],c=!1;for(let t=0;t<e.length;t++){let l=(t+1)%e.length;for(let e of _t(i[t],r[l],n))(!c||!o)&&s.push(`M ${Z(e.x1)} ${Z(e.y1)}`),s.push(`L ${Z(e.x2)} ${Z(e.y2)}`),c=!0;if(a[l]>0){let n=e[(l+1)%e.length],o=(e[l].x-e[t].x)*(n.y-e[l].y)-(e[l].y-e[t].y)*(n.x-e[l].x);c||s.push(`M ${Z(r[l].x)} ${Z(r[l].y)}`),s.push(`A ${Z(a[l])} ${Z(a[l])} 0 0 ${+(o>0)} ${Z(i[l].x)} ${Z(i[l].y)}`),c=!0}}return o?`${s.join(` `)} Z`:s.join(` `)}function _t(e,t,n){let r=vt(e,t);if(r===0)return[];let i=(t.x-e.x)/r,a=(t.y-e.y)/r,o=t=>({x:e.x+i*t,y:e.y+a*t}),s=t=>(t.x-e.x)*i+(t.y-e.y)*a,c=[];for(let i of n){let n=e.x===t.x&&i.x1===i.x2&&Math.abs(i.x1-e.x)<1,a=e.y===t.y&&i.y1===i.y2&&Math.abs(i.y1-e.y)<1;if(!n&&!a)continue;let o=s({x:i.x1,y:i.y1}),l=s({x:i.x2,y:i.y2}),u=Math.max(0,Math.min(o,l)),d=Math.min(r,Math.max(o,l));d>u&&c.push({start:u,end:d})}c.sort((e,t)=>e.start-t.start);let l=[],u=0;for(let e of c){if(e.start>u){let t=o(u),n=o(e.start);l.push({x1:t.x,y1:t.y,x2:n.x,y2:n.y})}u=Math.max(u,e.end)}if(u<r){let e=o(u),t=o(r);l.push({x1:e.x,y1:e.y,x2:t.x,y2:t.y})}return l}function vt(e,t){return Math.abs(t.x-e.x)+Math.abs(t.y-e.y)}function Z(e){return Math.round(e*100)/100}var yt={class:`h-full flex flex-col overflow-hidden`},bt={class:`flex items-center gap-2 px-4 py-3 border-bottom-color`},xt={class:`flex items-center justify-center w-8 h-8 rounded-md shrink-0 inspector-icon`},St={class:`flex-1 min-w-0`},Ct={class:`text-sm font-semibold truncate text-color`},wt={class:`text-xs text-muted truncate`},Tt={class:`flex-1 overflow-y-auto`},Et={class:`text-color font-normal text-sm`},Dt={class:`flex flex-col gap-6`},Ot={key:0,class:`flex flex-col field-gap`},kt={class:`cui-label`},At={class:`flex flex-col field-gap`},jt={class:`cui-label`},Mt={class:`flex flex-col field-gap`},Nt={class:`cui-label`},Pt={class:`flex flex-col field-gap`},Ft={class:`cui-label`},It={class:`flex flex-col field-gap`},Lt={class:`cui-label`},Rt={class:`flex flex-col field-gap`},Q={class:`cui-label`},zt={class:`text-sm text-muted`},Bt={class:`text-color font-normal text-sm`},Vt={class:`flex flex-col field-gap`},Ht={class:`cui-label`},Ut={key:1,class:`text-sm text-color`},Wt={key:0,class:`flex flex-col field-gap mt-6`},Gt={class:`cui-label`},Kt={class:`flex flex-col field-gap mt-6`},qt={class:`cui-label`},Jt={class:`text-color font-normal text-sm`},Yt={class:`flex flex-col gap-6`},Xt={class:`flex flex-col field-gap`},Zt={class:`cui-label`},Qt={key:0,class:`flex flex-col field-gap`},$t={class:`cui-label`},en={class:`flex flex-col field-gap`},$={class:`cui-label`},tn={class:`text-color font-normal text-sm`},nn={class:`flex flex-col gap-6`},rn={class:`flex flex-col field-gap`},an={class:`cui-label`},on={class:`flex flex-col field-gap`},sn={class:`cui-label`},cn={class:`text-color font-normal text-sm`},ln={class:`flex flex-col gap-6`},un={class:`flex flex-col field-gap`},dn={class:`cui-label`},fn={class:`flex flex-col field-gap`},pn={class:`cui-label`},mn={class:`flex flex-col field-gap`},hn={class:`cui-label`},gn={key:0,class:`p-4 border-top-color`},_n=f(we({__name:`CuiFloorplanInspector`,props:{fluid:{type:Boolean},rooms:{},connections:{},cameras:{},sensors:{},levels:{},selection:{},readOnly:{type:Boolean}},emits:[`close`,`update-room`,`update-camera`,`update-sensor`,`update-connection`,`remove`],setup(t,{emit:n}){let a=t,o=n,{t:c}=r(),l=O([`general`,`view`]),u=L(()=>a.selection?.kind===`room`?a.rooms.find(e=>e.id===a.selection?.id):void 0),d=L(()=>a.selection?.kind===`camera`?a.cameras.find(e=>e.id===a.selection?.id):void 0),ee=L(()=>a.levels.map(e=>({label:e.name,value:e.id}))),te=L(()=>u.value?.outdoor?u.value.publicSpace?`public`:`outdoor`:`indoor`),ne=L(()=>[`indoor`,`outdoor`,`public`].map(e=>({label:c(`views.floorplan.room_kind_${e}`),value:e}))),f=L(()=>u.value?a.rooms.filter(e=>e.roomId===u.value?.roomId).length:0),re=L(()=>{let e=u.value;if(!e)return[];let t=new Set,n=[{label:e.name,value:e.roomId}];t.add(e.roomId);for(let r of a.rooms)r.roomId===e.roomId||t.has(r.roomId)||r.levelId!==e.levelId||dt(e,r)&&(t.add(r.roomId),n.push({label:r.name,value:r.roomId}));return n}),ie=L(()=>{let e=new Set;return a.rooms.filter(t=>t.levelId===d.value?.levelId&&!e.has(t.roomId)&&e.add(t.roomId)).map(e=>({label:e.name,value:e.roomId}))}),p=L(()=>a.selection?.kind===`sensor`?a.sensors.find(e=>e.id===a.selection?.id):void 0),ae=L(()=>{let e=new Set;return a.rooms.filter(t=>t.levelId===p.value?.levelId&&!e.has(t.roomId)&&e.add(t.roomId)).map(e=>({label:e.name,value:e.roomId}))}),oe=L(()=>p.value?a.connections.filter(e=>e.fromRoomId===p.value?.roomId||e.toRoomId===p.value?.roomId).map(e=>{let t=e.fromRoomId===p.value?.roomId?e.toRoomId:e.fromRoomId;return{label:a.rooms.find(e=>e.roomId===t)?.name??t,value:e.id}}):[]),m=L(()=>a.selection?.kind===`connection`?a.connections.find(e=>e.id===a.selection?.id):void 0),h=L(()=>{if(!m.value)return!1;let e=a.rooms.find(e=>e.roomId===m.value?.fromRoomId),t=a.rooms.find(e=>e.roomId===m.value?.toRoomId);return!!e&&!!t&&e.levelId!==t.levelId}),se=L(()=>ot.filter(e=>e!==`stairs`).map(e=>({label:c(`views.floorplan.connection_${e}`),value:e}))),ce=L(()=>m.value?`${a.rooms.find(e=>e.roomId===m.value?.fromRoomId)?.name??``} · ${a.rooms.find(e=>e.roomId===m.value?.toRoomId)?.name??``}`:``),le=L(()=>((d.value?.rotation??0)%360+360)%360),ue=L(()=>p.value?p.value.owner||(a.rooms.find(e=>e.roomId===p.value?.roomId)?.name??``):u.value?a.levels.find(e=>e.id===u.value?.levelId)?.name??``:m.value?c(`views.floorplan.connection_${m.value.type}`):d.value?a.rooms.find(e=>e.roomId===d.value?.roomId)?.name??c(`views.floorplan.no_room`):``);function de(e){p.value&&o(`update-sensor`,{id:p.value.id,patch:e})}function fe(e){return{outdoor:e!==`indoor`,publicSpace:e===`public`}}function pe(e){u.value&&o(`update-room`,{id:u.value.id,patch:e})}function me(e){d.value&&o(`update-camera`,{id:d.value.id,patch:e})}function he(){u.value?o(`remove`,{kind:`room`,id:u.value.id}):p.value?o(`remove`,{kind:`sensor`,id:p.value.id}):d.value?o(`remove`,{kind:`camera`,id:d.value.id}):m.value&&o(`remove`,{kind:`connection`,id:m.value.id})}return(n,r)=>{let a=Ke,c=rt,ge=et,_e=Ie,g=e,y=Pe,b=Ae,x=Oe,ve=s,ye=Ne,be=De,C=je,w=i,xe=ke;return S(),D(`div`,yt,[E(`div`,bt,[E(`div`,xt,[B(d)?(S(),M(a,{key:0,class:`w-4 h-4`})):B(m)?(S(),M(c,{key:1,class:`w-4 h-4`})):(S(),M(ge,{key:2,class:`w-4 h-4`}))]),E(`div`,St,[E(`div`,Ct,v(B(u)?.name??B(d)?.name??B(p)?.name??B(ce)),1),E(`div`,wt,v(B(ue)),1)]),A(g,{severity:`secondary`,text:``,rounded:``,class:`shrink-0 cui-icon-sm`,onClick:r[0]||=e=>o(`close`)},{icon:_(()=>[A(_e,{width:`100%`,height:`100%`})]),_:1})]),E(`div`,Tt,[A(xe,{multiple:``,value:B(l),class:T(t.fluid?`w-full`:`w-[300px]`)},{default:_(()=>[B(u)?(S(),M(C,{key:0,value:`general`},{default:_(()=>[A(y,{class:`px-4 rounded-none!`},{default:_(()=>[E(`span`,Et,v(n.$t(`views.floorplan.section_room`)),1)]),_:1}),A(be,{pt:{content:{class:t.fluid?`px-4 w-full`:`px-4 w-[300px]`}}},{default:_(()=>[E(`div`,Dt,[B(re).length>1?(S(),D(`div`,Ot,[E(`label`,kt,v(n.$t(`views.floorplan.belongs_to`)),1),A(b,{"model-value":B(u).roomId,options:B(re),"option-label":`label`,"option-value":`value`,disabled:t.readOnly,"onUpdate:modelValue":r[1]||=e=>e&&pe({roomId:e})},null,8,[`model-value`,`options`,`disabled`]),A(x,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[j(v(n.$t(`views.floorplan.belongs_to_hint`)),1)]),_:1})])):z(``,!0),E(`div`,At,[E(`label`,jt,v(n.$t(`views.floorplan.room_name`)),1),A(ve,{"model-value":B(u).name,disabled:t.readOnly,"onUpdate:modelValue":r[2]||=e=>pe({name:e??``})},null,8,[`model-value`,`disabled`]),B(f)>1?(S(),M(x,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[j(v(n.$t(`views.floorplan.room_parts`,{count:B(f)})),1)]),_:1})):z(``,!0)]),E(`div`,Mt,[E(`label`,Nt,v(n.$t(`views.floorplan.level`)),1),A(b,{"model-value":B(u).levelId,options:B(ee),"option-label":`label`,"option-value":`value`,disabled:t.readOnly,"onUpdate:modelValue":r[3]||=e=>pe({levelId:e})},null,8,[`model-value`,`options`,`disabled`])]),E(`div`,Pt,[E(`label`,Ft,v(n.$t(`views.floorplan.room_kind`)),1),A(b,{"model-value":B(te),options:B(ne),"option-label":`label`,"option-value":`value`,disabled:t.readOnly,"onUpdate:modelValue":r[4]||=e=>pe(fe(e))},null,8,[`model-value`,`options`,`disabled`]),A(x,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[j(v(n.$t(`views.floorplan.room_kind_${B(te)}_hint`)),1)]),_:1})]),E(`div`,It,[E(`label`,Lt,v(n.$t(`views.floorplan.note`)),1),A(ye,{"model-value":B(u).note,disabled:t.readOnly,maxlength:B(240),rows:`3`,"auto-resize":``,"onUpdate:modelValue":r[5]||=e=>pe({note:e??``})},null,8,[`model-value`,`disabled`,`maxlength`]),A(x,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[j(v(n.$t(`views.floorplan.note_hint`)),1)]),_:1})]),E(`div`,Rt,[E(`label`,Q,v(n.$t(`views.floorplan.size`)),1),E(`span`,zt,v(B(lt)(B(u).width))+` x `+v(B(lt)(B(u).height)),1)])])]),_:1},8,[`pt`])]),_:1})):z(``,!0),B(m)?(S(),M(C,{key:1,value:`general`},{default:_(()=>[A(y,{class:`px-4 rounded-none!`},{default:_(()=>[E(`span`,Bt,v(n.$t(`views.floorplan.section_connection`)),1)]),_:1}),A(be,{pt:{content:{class:t.fluid?`px-4 w-full`:`px-4 w-[300px]`}}},{default:_(()=>[E(`div`,Vt,[E(`label`,Ht,v(n.$t(`views.floorplan.connection_type`)),1),B(h)?(S(),D(`span`,Ut,v(n.$t(`views.floorplan.connection_stairs`)),1)):(S(),M(b,{key:0,"model-value":B(m).type,options:B(se),"option-label":`label`,"option-value":`value`,disabled:t.readOnly,"onUpdate:modelValue":r[6]||=e=>o(`update-connection`,{id:B(m).id,patch:{type:e}})},null,8,[`model-value`,`options`,`disabled`])),A(x,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[j(v(B(h)?n.$t(`views.floorplan.connection_level_hint`):n.$t(`views.floorplan.connection_type_hint`)),1)]),_:1})]),B(h)?z(``,!0):(S(),D(`div`,Wt,[E(`label`,Gt,v(n.$t(`views.floorplan.connection_width`,{value:B(Y)(B(m).width).toFixed(2)})),1),A(w,{"model-value":B(m).width,disabled:t.readOnly,min:B(st).min,max:B(st).max,step:5,"onUpdate:modelValue":r[7]||=e=>o(`update-connection`,{id:B(m).id,patch:{width:Number(e)}})},null,8,[`model-value`,`disabled`,`min`,`max`]),A(x,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[j(v(n.$t(`views.floorplan.connection_width_hint`)),1)]),_:1})])),E(`div`,Kt,[E(`label`,qt,v(n.$t(`views.floorplan.note`)),1),A(ye,{"model-value":B(m).note,disabled:t.readOnly,maxlength:B(240),rows:`3`,"auto-resize":``,"onUpdate:modelValue":r[8]||=e=>o(`update-connection`,{id:B(m).id,patch:{note:e??``}})},null,8,[`model-value`,`disabled`,`maxlength`]),A(x,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[j(v(n.$t(`views.floorplan.note_hint`)),1)]),_:1})])]),_:1},8,[`pt`])]),_:1})):z(``,!0),B(p)?(S(),M(C,{key:2,value:`general`},{default:_(()=>[A(y,{class:`px-4 rounded-none!`},{default:_(()=>[E(`span`,Jt,v(n.$t(`views.floorplan.section_sensor`)),1)]),_:1}),A(be,{pt:{content:{class:t.fluid?`px-4 w-full`:`px-4 w-[300px]`}}},{default:_(()=>[E(`div`,Yt,[E(`div`,Xt,[E(`label`,Zt,v(n.$t(`views.floorplan.assigned_room`)),1),A(b,{"model-value":B(p).roomId,options:B(ae),disabled:t.readOnly,"option-label":`label`,"option-value":`value`,"onUpdate:modelValue":r[9]||=e=>e&&de({roomId:e})},null,8,[`model-value`,`options`,`disabled`])]),B(oe).length?(S(),D(`div`,Qt,[E(`label`,$t,v(n.$t(`views.floorplan.sensor_passage`)),1),A(b,{"model-value":B(p).connectionId,options:B(oe),disabled:t.readOnly,"option-label":`label`,"option-value":`value`,"show-clear":``,"onUpdate:modelValue":r[10]||=e=>de({connectionId:e??null})},null,8,[`model-value`,`options`,`disabled`]),A(x,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[j(v(n.$t(`views.floorplan.sensor_passage_hint`)),1)]),_:1})])):z(``,!0),E(`div`,en,[E(`label`,$,v(n.$t(`views.floorplan.note`)),1),A(ye,{"model-value":B(p).note,disabled:t.readOnly,maxlength:B(240),rows:`3`,"auto-resize":``,"onUpdate:modelValue":r[11]||=e=>de({note:e??``})},null,8,[`model-value`,`disabled`,`maxlength`]),A(x,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[j(v(n.$t(`views.floorplan.note_hint`)),1)]),_:1})])])]),_:1},8,[`pt`])]),_:1})):z(``,!0),B(d)?(S(),D(I,{key:3},[A(C,{value:`general`},{default:_(()=>[A(y,{class:`px-4 rounded-none!`},{default:_(()=>[E(`span`,tn,v(n.$t(`views.floorplan.section_camera`)),1)]),_:1}),A(be,{pt:{content:{class:t.fluid?`px-4 w-full`:`px-4 w-[300px]`}}},{default:_(()=>[E(`div`,nn,[E(`div`,rn,[E(`label`,an,v(n.$t(`views.floorplan.assigned_room`)),1),A(b,{"model-value":B(d).roomId,options:B(ie),disabled:t.readOnly,"option-label":`label`,"option-value":`value`,"onUpdate:modelValue":r[12]||=e=>e&&me({roomId:e})},null,8,[`model-value`,`options`,`disabled`]),A(x,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[j(v(n.$t(`views.floorplan.assigned_room_hint`)),1)]),_:1})]),E(`div`,on,[E(`label`,sn,v(n.$t(`views.floorplan.note`)),1),A(ye,{"model-value":B(d).note,disabled:t.readOnly,maxlength:B(240),rows:`3`,"auto-resize":``,"onUpdate:modelValue":r[13]||=e=>me({note:e??``})},null,8,[`model-value`,`disabled`,`maxlength`]),A(x,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:_(()=>[j(v(n.$t(`views.floorplan.note_hint`)),1)]),_:1})])])]),_:1},8,[`pt`])]),_:1}),A(C,{value:`view`},{default:_(()=>[A(y,{class:`px-4 rounded-none!`},{default:_(()=>[E(`span`,cn,v(n.$t(`views.floorplan.section_view`)),1)]),_:1}),A(be,{pt:{content:{class:t.fluid?`px-4 w-full`:`px-4 w-[300px]`}}},{default:_(()=>[E(`div`,ln,[E(`div`,un,[E(`label`,dn,v(n.$t(`views.floorplan.direction`,{value:B(le)})),1),A(w,{"model-value":B(le),disabled:t.readOnly,min:0,max:359,"onUpdate:modelValue":r[14]||=e=>me({rotation:Number(e)})},null,8,[`model-value`,`disabled`])]),E(`div`,fn,[E(`label`,pn,v(n.$t(`views.floorplan.fov`,{value:B(d).fov})),1),A(w,{"model-value":B(d).fov,disabled:t.readOnly,min:30,max:180,"onUpdate:modelValue":r[15]||=e=>me({fov:Number(e)})},null,8,[`model-value`,`disabled`])]),E(`div`,mn,[E(`label`,hn,v(n.$t(`views.floorplan.range`,{value:B(Y)(B(d).range).toFixed(1)})),1),A(w,{disabled:t.readOnly,"model-value":B(d).range,min:B(J).min,max:B(J).max,step:50,"onUpdate:modelValue":r[16]||=e=>me({range:Number(e)})},null,8,[`disabled`,`model-value`,`min`,`max`])])])]),_:1},8,[`pt`])]),_:1})],64)):z(``,!0)]),_:1},8,[`value`,`class`])]),t.readOnly?z(``,!0):(S(),D(`div`,gn,[A(g,{severity:`danger`,fluid:``,class:`w-full cui-button-medium`,label:B(u)?n.$t(`views.floorplan.delete_room`):B(m)?n.$t(`views.floorplan.remove_connection`):B(p)?n.$t(`views.floorplan.remove_sensor`):n.$t(`views.floorplan.remove_camera`),onClick:he},null,8,[`label`])]))])}}}),[[`__scopeId`,`data-v-74664afa`]]),vn={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function yn(e,t){return S(),D(`svg`,vn,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M10 13a2 2 0 0 1 2 2c0 1.11-.89 2-2 2s-2-.89-2-2s.9-2 2-2m8-12c-2.76 0-5 2.24-5 5v2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2h-1V6c0-1.66 1.34-3 3-3s3 1.34 3 3v2h2V6c0-2.76-2.24-5-5-5m-2 9v10H4V10z`},null,-1)]])}var bn=R({name:`mdi-lock-open-variant-outline`,render:yn}),xn={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Sn(e,t){return S(),D(`svg`,xn,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M17 4h3c1.1 0 2 .9 2 2v2h-2V6h-3zM4 8V6h3V4H4c-1.1 0-2 .9-2 2v2zm16 8v2h-3v2h3c1.1 0 2-.9 2-2v-2zM7 18H4v-2H2v2c0 1.1.9 2 2 2h3zm9-8v4H8v-4zm2-2H6v8h12z`},null,-1)]])}var Cn=R({name:`mdi-fit-to-screen-outline`,render:Sn}),wn=[`width`,`height`],Tn=[`width`,`height`],En=[`y2`,`stroke-width`],Dn=[`id`],On=[`d`],kn=[`width`,`height`],An=[`y2`,`stroke-width`],jn=[`x`,`y`,`width`,`height`],Mn=[`d`],Nn=[`clip-path`],Pn=[`d`,`transform`],Fn=[`transform`],In=[`d`],Ln=[`d`,`stroke-width`],Rn=[`clip-path`],zn=[`d`,`transform`],Bn=[`x`,`y`,`width`,`height`],Vn=[`x`,`y`,`width`,`height`,`onPointerdown`],Hn=[`x`,`y`,`font-size`,`transform`],Un=[`onPointerdown`],Wn=[`d`,`stroke-width`],Gn=[`d`,`stroke-width`],Kn=[`cx`,`cy`,`r`,`stroke-width`,`onPointerdown`],qn=[`d`,`stroke-width`,`onPointerdown`],Jn=[`onPointerdown`,`onPointerenter`],Yn=[`cx`,`cy`,`r`,`stroke-width`],Xn=[`cx`,`cy`,`r`],Zn={key:0,class:`camera-chip`},Qn=[`x`,`y`,`width`,`height`,`rx`],$n=[`x`,`y`,`width`,`height`],er=[`x`,`y`,`font-size`],tr=[`cx`,`cy`,`r`,`stroke-width`,`onPointerdown`],nr=[`d`,`stroke-width`],rr=[`onPointerdown`,`onPointerenter`],ir=[`cx`,`cy`,`r`,`stroke-width`],ar=[`x`,`y`,`width`,`height`],or={key:0,class:`camera-chip`},sr=[`x`,`y`,`width`,`height`,`rx`],cr=[`x`,`y`,`font-size`],lr=[`onPointerenter`],ur=[`cx`,`cy`,`r`,`stroke-width`],dr=[`cx`,`cy`,`r`],fr={key:0,class:`camera-chip`},pr=[`x`,`y`,`width`,`height`,`rx`],mr=[`x`,`y`,`font-size`],hr=[`onPointerdown`],gr=[`cx`,`cy`,`r`,`stroke-width`],_r=[`d`,`stroke-width`],vr=[`x`,`y`,`font-size`],yr={key:1,class:`camera-chip`},br=[`x`,`y`,`width`,`height`,`rx`],xr=[`x`,`y`,`font-size`],Sr=[`d`,`stroke-width`],Cr=[`d`,`stroke-width`],wr=[`x`,`y`,`width`,`height`,`rx`,`stroke-width`],Tr=[`cx`,`cy`,`r`,`stroke-width`],Er={width:`46`,height:`46`,viewBox:`0 0 46 46`},Dr=[`transform`],Or={class:`flex flex-col overflow-hidden floorplan-controls`},kr={class:`floorplan-scale flex items-center gap-2 px-2 py-1`},Ar=[`width`],jr=[`d`],Mr={class:`text-xs text-muted whitespace-nowrap`},Nr=60,Pr=f(we({__name:`CuiFloorplanCanvas`,props:{mobile:{type:Boolean},bottomInset:{},bottomInsetDragging:{type:Boolean},levels:{},rooms:{},connections:{},cameras:{},sensors:{},levelId:{},selection:{},north:{},readOnly:{type:Boolean}},emits:[`select`,`history`,`move-room`,`resize-room`,`move-camera`,`rotate-camera`,`create-connection`,`move-connection`,`resize-connection`,`drop`,`update-north`,`request-stairs`,`settle-room`,`hover-camera`,`move-sensor`,`hover-sensor`],setup(e,{expose:n,emit:r}){let i=e,a=r,s=ve(`wrapperRef`),c=O(!1),u=O(!1),d=ve(`compassRef`),ee=O({x:null,y:null}),te=O(null),ne=O(null),f=O(null),re=O(null),ie=new Set([`motion`,`audio`]),oe=new Set([`object`,`face`,`licensePlate`,`classifier`,`objectAssist`,`clip`]),h=null,se=!1,ce=null,{viewport:le,zoomIn:ue,zoomOut:de,fitBounds:fe}=V(),{sensors:me}=o(),he=L(()=>i.sensors.filter(e=>e.levelId===i.levelId)),ge=L(()=>{let e=new Map;for(let t of me.value){let n=String(t.type),r=ie.has(n),i=oe.has(n);if(!r&&!i||t.getProperty(`detected`)!==!0)continue;let a=We(t,n);for(let n of t.assignedCameraIds.value){let t=e.get(n);e.set(n,{level:t?.level===`detection`||i?`detection`:`motion`,labels:[...new Set([...t?.labels??[],...a])]})}}return e}),g=L(()=>{let e=F.value.find(e=>e.id===re.value);if(!e)return null;let t=`${lt(e.width,1)} x ${lt(e.height,1)}`;return{text:t,width:nt(t),x:e.x+e.width/2,y:e.y+e.height+10/y.value}}),y=L(()=>le.value.zoom),j=L(()=>({x:le.value.x,y:le.value.y})),Se=L(()=>i.north??0),N=L(()=>i.readOnly===!0||c.value),F=L(()=>i.rooms.filter(e=>e.levelId===i.levelId)),Ce=L(()=>i.cameras.filter(e=>e.levelId===i.levelId)),R=L(()=>{let e=4e3,t=[0],n=[0];for(let e of F.value)t.push(e.x,e.x+e.width),n.push(e.y,e.y+e.height);for(let e of Ce.value)t.push(e.x-e.range,e.x+e.range),n.push(e.y-e.range,e.y+e.range);let r=Math.min(...t)-e,i=Math.min(...n)-e;return{x:r,y:i,width:Math.max(...t)+e-r,height:Math.max(...n)+e-i}}),we=[{id:`scene`,type:`scene`,position:{x:0,y:0},draggable:!1,selectable:!1,data:{}}],Te=L(()=>i.selection?.kind===`room`?F.value.find(e=>e.id===i.selection?.id):void 0),Ee=L(()=>i.selection?.kind===`camera`?Ce.value.find(e=>e.id===i.selection?.id):void 0),De=L(()=>y.value>=.45),Oe=L(()=>{let e=[.5,1,2,5,10,20,50],t=e.filter(e=>e*100*y.value<=130).pop()??e[0];return{meters:t,width:Math.round(t*100*y.value),label:`${t} m`}}),ke=L(()=>i.connections.map(e=>({connection:e,geometry:pt(e,i.rooms,i.levelId)})).filter(e=>e.geometry!==null)),Ae=L(()=>new Map([...je.value].map(([e,t])=>[e,q(t.reduce((e,t)=>t.width*t.height>e.width*e.height?t:e))]))),je=L(()=>{let e=new Map;for(let t of F.value)e.set(t.roomId,[...e.get(t.roomId)??[],t]);return e}),Me=L(()=>{let e=new Map;for(let t of ke.value){if(t.geometry.kind!==`edge`)continue;let n={x1:t.geometry.x1,y1:t.geometry.y1,x2:t.geometry.x2,y2:t.geometry.y2};for(let r of[t.connection.fromRoomId,t.connection.toRoomId])e.set(r,[...e.get(r)??[],n])}return e}),Ne=L(()=>[...je.value].map(([e,t])=>({roomId:e,parts:t,...mt(t,8/y.value,Me.value.get(e)??[]),outdoor:t.every(e=>e.outdoor),publicSpace:t.every(e=>e.publicSpace),selected:t.some(e=>Y(`room`,e.id))})).sort((e,t)=>Number(e.selected)-Number(t.selected))),Pe=L(()=>{let e=new Map;for(let t of je.value.keys())e.set(t,t);let t=t=>{let n=t;for(;e.get(n)!==n;)n=e.get(n);return n},n=e=>(je.value.get(e)??[]).every(e=>e.outdoor);for(let r of i.connections){if(!e.has(r.fromRoomId)||!e.has(r.toRoomId)||!n(r.fromRoomId)||!n(r.toRoomId))continue;let i=t(r.fromRoomId),a=t(r.toRoomId);i!==a&&e.set(i,a)}let r=new Map;for(let[e,n]of je.value){let i=t(e);r.set(i,[...r.get(i)??[],...n])}let a=new Map;for(let[e,t]of r)a.set(e,mt(t,8/y.value,[]).fill);return[...je.value.keys()].map(e=>({roomId:e,path:a.get(t(e))??``}))}),Fe=L(()=>ke.value.flatMap(e=>{if(e.geometry.kind!==`edge`)return[];let{x1:t,y1:n,x2:r,y2:i,wall:a}=e.geometry;return[{id:e.connection.id,type:e.connection.type,wall:a,line:`M ${t} ${n} L ${r} ${i}`,handles:[{x:t,y:n},{x:r,y:i}]}]})),Ie=L(()=>{let e=Te.value;return!e||N.value?[]:F.value.filter(t=>t.roomId!==e.roomId).map(t=>({other:t,wall:dt(e,t)})).filter(e=>e.wall!==null).map(t=>({fromRoomId:e.roomId,fromShapeId:e.id,roomId:t.other.roomId,shapeId:t.other.id,x:t.wall.x+t.wall.stepX*t.wall.length/2,y:t.wall.y+t.wall.stepY*t.wall.length/2}))}),Re=L(()=>{let e=new Map,t=t=>{for(;e.get(t)!==t;)t=e.get(t);return t};for(let n of i.connections)if(n.type===`stairs`){for(let t of[n.fromRoomId,n.toRoomId])e.has(t)||e.set(t,t);e.set(t(n.fromRoomId),t(n.toRoomId))}let n=[];for(let r of F.value){if(!e.has(r.roomId))continue;let a=t(r.roomId),o=i.cameras.filter(n=>n.roomId!==r.roomId&&e.has(n.roomId)&&t(n.roomId)===a);o.length&&n.push({key:`${r.id}-flight`,label:o.map(e=>e.name).join(`, `),x:r.x+r.width/2,y:r.y+r.height/2})}return n}),ze=L(()=>{let e=[],t=new Map,n=(n,r,i,a)=>{let o=F.value.find(e=>e.id===r)??F.value.find(e=>e.roomId===n);if(!o||o.width*y.value<80||o.height*y.value<60)return;let s=t.get(o.id)??0;t.set(o.id,s+1),e.push({key:i??`stairs-${n}`,roomId:n,connectionId:i,direction:a,x:o.x+o.width-(16+s*30)/y.value,y:o.y+16/y.value})};for(let e of ke.value)e.geometry.kind===`badge`&&n(e.geometry.roomId,e.geometry.shapeId,e.connection.id,K(e.connection,e.geometry.roomId));return Be.value&&n(Be.value.roomId,Be.value.shapeId,void 0,void 0),e}),Be=L(()=>{let e=Te.value;if(!e||N.value)return null;let t=new Set(i.connections.flatMap(e=>[e.fromRoomId,e.toRoomId].join(`|`)));return i.rooms.some(n=>n.levelId!==e.levelId&&!t.has([e.roomId,n.roomId].join(`|`))&&!t.has([n.roomId,e.roomId].join(`|`)))?{roomId:e.roomId,shapeId:e.id}:null}),He=L(()=>{let e=s.value?.getBoundingClientRect(),t=e?.width??0,n=e?.height??0;return{left:-j.value.x/y.value,top:-j.value.y/y.value,right:(t-j.value.x)/y.value,bottom:(n-j.value.y)/y.value}}),Ue=L(()=>new Set(Ce.value.filter(e=>ge.value.has(e.id)).map(e=>e.roomId)));function We(e,t){switch(t){case`object`:case`classifier`:{let t=e.getProperty(`labels`);return Array.isArray(t)&&t.length?t:[`other`]}case`face`:return[`face`];case`licensePlate`:return[`license_plate`];case`motion`:case`audio`:return[`motion`];case`clip`:case`objectAssist`:return[];default:return[`other`]}}function Ge(e){return ge.value.get(e)?.level}function Ke(e){return ge.value.get(e.id)?.labels??[]}function qe(e){let t=(8+Ke(e).length*17)/y.value;return{width:t+nt(e.name)-10/y.value,textOffset:t}}function Je(e,t){f.value=t.id,e.pointerType===`mouse`&&a(`hover-sensor`,{sensorId:t.id,x:e.clientX,y:e.clientY})}function Ye(){f.value=null,a(`hover-sensor`,null)}function Xe(e){return me.value.find(t=>t.id===e)}function Ze(e){return ae(e.sensorType,l(Xe(e.id)))}function G(e){let t=p(Xe(e.id));return t?`${e.name} · ${t}`:e.name}function K(e,t){let n=e.fromRoomId===t?e.toRoomId:e.fromRoomId,r=i.rooms.find(e=>e.roomId===t)?.levelId,a=i.rooms.find(e=>e.roomId===n)?.levelId;if(!r||!a)return;let o=i.levels.findIndex(e=>e.id===r),s=i.levels.findIndex(e=>e.id===a);if(!(o<0||s<0||o===s))return s>o?`↑`:`↓`}function Qe(e,t){if(t.connectionId)return xt(e,t.connectionId);a(`request-stairs`,{roomId:t.roomId,event:e})}function $e(e){let t=Ae.value.get(e.roomId);return t?[t]:[]}function q(e){let t=e.width>=e.height,n=t?e.width:e.height,r=t?e.height:e.width,i=9/y.value,a=Math.max(Math.min(15,r*.3),i);if(a>r)return null;let o=n-a,s=a*it,c=e.name;if(s*c.length>o){let e=Math.floor(o/s)-1;if(e<2)return null;c=`${c.slice(0,e)}…`}return{text:c,size:a,x:e.x+e.width/2,y:e.y+e.height/2+a*.35,upright:t}}function et(e,t){e.pointerType===`mouse`&&(te.value=t.id,a(`hover-camera`,{cameraId:t.id,x:e.clientX,y:e.clientY}))}function tt(){te.value=null,a(`hover-camera`,null)}function nt(e){return(e.length*7+20)/y.value}function rt(e,t){let n=4/y.value;return`M ${e-n*2} ${t+n*1.5} L ${e-n} ${t+n*1.5} L ${e-n} ${t} L ${e+n} ${t} L ${e+n} ${t-n*1.5} L ${e+n*2} ${t-n*1.5}`}function ot(e){return e*Math.PI/180}function Y(e,t){return i.selection?.kind===e&&i.selection.id===t}function ut(e){let t=ot(e.fov/2),n=Math.cos(-t)*e.range,r=Math.sin(-t)*e.range,i=Math.cos(t)*e.range,a=Math.sin(t)*e.range,o=+(e.fov>180);return`M 0 0 L ${n} ${r} A ${e.range} ${e.range} 0 ${o} 1 ${i} ${a} Z`}function ht(e){let t=s.value?.getBoundingClientRect();return t?{x:(e.clientX-t.left-j.value.x)/y.value,y:(e.clientY-t.top-j.value.y)/y.value}:{x:0,y:0}}function X(e){return Math.round(e/10)*10}function gt(e,t){return F.value.some(n=>n.id!==t&&e.x<n.x+n.width&&e.x+e.width>n.x&&e.y<n.y+n.height&&e.y+e.height>n.y)}function _t(e,t,n){let r=10/y.value,i=n===`end`?[e.x+e.width]:[e.x,e.x+e.width],a=n===`end`?[e.y+e.height]:[e.y,e.y+e.height],o,s;for(let e of F.value)if(e.id!==t){for(let t of i)for(let n of[e.x,e.x+e.width]){let e=n-t;Math.abs(e)<=r&&(o===void 0||Math.abs(e)<Math.abs(o))&&(o=e)}for(let t of a)for(let n of[e.y,e.y+e.height]){let e=n-t;Math.abs(e)<=r&&(s===void 0||Math.abs(e)<Math.abs(s))&&(s=e)}}return ee.value={x:o===void 0?null:(n===`end`?e.x+e.width:e.x)+o,y:s===void 0?null:(n===`end`?e.y+e.height:e.y)+s},n===`end`?{...e,width:e.width+(o??0),height:e.height+(s??0)}:{...e,x:e.x+(o??0),y:e.y+(s??0)}}function vt(e,t,n){return Math.min(Math.max(e,t),n)}function Z(e,t,n){let r=je.value.get(e);if(!r?.length||r.some(e=>t>=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+e.height))return{x:t,y:n};let i={x:t,y:n},a=1/0;for(let e of r){let r={x:vt(t,e.x,e.x+e.width),y:vt(n,e.y,e.y+e.height)},o=Math.hypot(r.x-t,r.y-n);o<a&&(a=o,i=r)}return i}function yt(e){return Ce.value.filter(t=>t.roomId===e)}function bt(e){s.value?.setPointerCapture?.(e.pointerId)}function xt(e,t){Pt(e,{kind:`connection`,id:t})}function St(e,t){if(Pt(e,{kind:`room`,id:t.id}),N.value)return;e.stopPropagation();let n=ht(e);h={mode:`room`,id:t.id,offsetX:n.x-t.x,offsetY:n.y-t.y},bt(e)}function Ct(e,t){a(`select`,{kind:`room`,id:t.id}),!N.value&&(e.stopPropagation(),re.value=t.id,h={mode:`resize`,id:t.id,originX:t.x,originY:t.y},bt(e))}function wt(e,t){if(Pt(e,{kind:`camera`,id:t.id}),N.value)return;e.stopPropagation();let n=ht(e);h={mode:`camera`,id:t.id,offsetX:n.x-t.x,offsetY:n.y-t.y},bt(e)}function Tt(e,t){a(`select`,{kind:`camera`,id:t.id}),!N.value&&(e.stopPropagation(),h={mode:`rotate`,id:t.id},bt(e))}function Et(e){if(!h)return;if(h.mode===`north`){let t=d.value?.getBoundingClientRect();if(!t)return;let n=Math.atan2(e.clientY-(t.top+t.height/2),e.clientX-(t.left+t.width/2))*180/Math.PI;a(`update-north`,Math.round((n+450)%360));return}se||(se=!0,a(`history`));let t=ht(e);if(h.mode===`room`){let e=h.id,n=F.value.find(t=>t.id===e);if(!n)return;let r=_t({x:X(t.x-h.offsetX),y:X(t.y-h.offsetY),width:n.width,height:n.height},n.id,`both`),i=gt(n,n.id)?{x:r.x,y:r.y}:Dt(n,r);i&&a(`move-room`,{id:n.id,x:i.x,y:i.y});return}if(h.mode===`resize`){let e=h.id,n=F.value.find(t=>t.id===e);if(!n)return;let r=_t({x:n.x,y:n.y,width:Math.max(60,X(t.x-h.originX)),height:Math.max(60,X(t.y-h.originY))},n.id,`end`),i=gt({...r,height:n.height},n.id)?n.width:Math.max(60,r.width),o=gt({...r,width:i},n.id)?n.height:Math.max(60,r.height);a(`resize-room`,{id:n.id,width:i,height:o});return}if(h.mode===`passage`){let e=h,n=i.connections.find(t=>t.id===e.id);if(!n)return;let r=ft(e.wall,n.offset,n.width),o=Nt(e.wall,{x:(r.x1+r.x2)/2,y:(r.y1+r.y2)/2}),s=Nt(e.wall,t);a(`move-connection`,{id:e.id,offset:Math.round(o+(s-e.grab))}),e.grab=s;return}if(h.mode===`passage-resize`){let e=h,n=i.connections.find(t=>t.id===e.id);if(!n)return;let r=ft(e.wall,n.offset,n.width),o=Nt(e.wall,e.end===0?{x:r.x2,y:r.y2}:{x:r.x1,y:r.y1}),s=Math.min(Math.max(Nt(e.wall,t),0),e.wall.length),c=Math.min(Math.max(Math.abs(s-o),st.min),st.max),l=s<o?o-c:o;a(`resize-connection`,{id:e.id,offset:Math.round(l+c/2),width:Math.round(c)});return}if(h.mode===`sensor`){let e=h.id,n=Z(he.value.find(t=>t.id===e)?.roomId??``,X(t.x-h.offsetX),X(t.y-h.offsetY));a(`move-sensor`,{id:e,...n});return}if(h.mode===`camera`){let e=h.id,n=Z(Ce.value.find(t=>t.id===e)?.roomId??``,X(t.x-h.offsetX),X(t.y-h.offsetY));a(`move-camera`,{id:e,...n});return}let n=h.id,r=Ce.value.find(e=>e.id===n);if(!r)return;let o=t.x-r.x,s=t.y-r.y;a(`rotate-camera`,{id:n,rotation:Math.round(Math.atan2(s,o)*180/Math.PI),range:Math.round(vt(Math.hypot(o,s),J.min,J.max))})}function Dt(e,t){for(let n of[t,{...t,y:e.y},{...t,x:e.x}])if(!gt(n,e.id))return{x:n.x,y:n.y}}function Ot(e){N.value||(e.stopPropagation(),a(`history`),h={mode:`north`},d.value?.setPointerCapture?.(e.pointerId))}function kt(e){let t=e.dataTransfer?.getData(ct);if(!t||i.readOnly)return;e.preventDefault();let n=JSON.parse(t),r=s.value?.getBoundingClientRect();r&&a(`drop`,{...n,x:X((e.clientX-r.left-j.value.x)/y.value),y:X((e.clientY-r.top-j.value.y)/y.value)})}function At(e,t){if(Pt(e,{kind:`sensor`,id:t.id}),N.value)return;e.stopPropagation();let n=ht(e);h={mode:`sensor`,id:t.id,offsetX:n.x-t.x,offsetY:n.y-t.y},bt(e)}function jt(e,t){Pt(e,{kind:`connection`,id:t.id}),!N.value&&(e.stopPropagation(),h={mode:`passage`,id:t.id,wall:t.wall,grab:Nt(t.wall,ht(e))},bt(e))}function Mt(e,t,n){N.value||(e.stopPropagation(),h={mode:`passage-resize`,id:t.id,wall:t.wall,end:n},bt(e))}function Nt(e,t){return(t.x-e.x)*e.stepX+(t.y-e.y)*e.stepY}function Pt(e,t){ce={target:t,x:e.clientX,y:e.clientY}}function Ft(e){re.value=null,ce&&=(e&&Math.abs(e.clientX-ce.x)<4&&Math.abs(e.clientY-ce.y)<4&&a(`select`,ce.target),null),h?.mode===`room`&&se&&a(`settle-room`,h.id),h=null,se=!1,ee.value={x:null,y:null}}function It(){let e=[],t=[];for(let n of F.value)e.push(n.x,n.x+n.width),t.push(n.y,n.y+n.height);for(let n of Ce.value)e.push(n.x-Nr,n.x+Nr),t.push(n.y-Nr,n.y+Nr);if(!e.length)return;let n=Math.min(...e),r=Math.min(...t);fe({x:n,y:r,width:Math.max(Math.max(...e)-n,1),height:Math.max(Math.max(...t)-r,1)},{padding:.15})}return xe(()=>i.levelId,()=>ye(It)),be(()=>{window.addEventListener(`pointerup`,Ft),ye(It)}),b(()=>window.removeEventListener(`pointerup`,Ft)),n({fit:It}),(n,r)=>{let i=Ve,o=Le,l=Cn,re=m,ie=bn,p=W,ae=t;return S(),D(`div`,{ref_key:`wrapperRef`,ref:s,class:T([`floorplan-canvas relative w-full h-full overflow-hidden border-left-color border-bottom-color border-right-color rounded-b-xl`,{"rounded-none! border-0!":e.mobile}]),onPointermove:Et,onPointerup:Ft,onPointercancel:Ft,onDrop:kt,onDragover:r[14]||=P(()=>{},[`prevent`]),onDragenter:r[15]||=P(()=>{},[`prevent`])},[A(B(H),{nodes:we,"nodes-draggable":!1,"nodes-connectable":!1,"elements-selectable":!1,"zoom-on-double-click":!1,"min-zoom":B(at).min,"max-zoom":B(at).max,"default-viewport":{x:0,y:0,zoom:1},class:`floorplan-flow`,onPaneClick:r[3]||=e=>a(`select`,null)},{"node-scene":_(()=>[(S(),D(`svg`,{class:`floorplan-scene`,style:w({left:`${B(R).x}px`,top:`${B(R).y}px`,width:`${B(R).width}px`,height:`${B(R).height}px`})},[E(`defs`,null,[E(`pattern`,{id:`floorplan-public`,width:14/B(y),height:14/B(y),patternUnits:`userSpaceOnUse`,patternTransform:`rotate(45)`},[E(`rect`,{width:14/B(y),height:14/B(y),class:`public-base`},null,8,Tn),E(`line`,{x1:`0`,y1:`0`,x2:`0`,y2:14/B(y),class:`public-hatch`,"stroke-width":1.5/B(y)},null,8,En)],8,wn),(S(!0),D(I,null,C(B(Pe),e=>(S(),D(`clipPath`,{id:`floorplan-sight-${e.roomId}`,key:e.roomId},[E(`path`,{d:e.path},null,8,On)],8,Dn))),128)),E(`pattern`,{id:`floorplan-gaps-hatch`,width:10/B(y),height:10/B(y),patternUnits:`userSpaceOnUse`,patternTransform:`rotate(-45)`},[E(`line`,{x1:`0`,y1:`0`,x2:`0`,y2:10/B(y),class:`gaps-hatch`,"stroke-width":1.5/B(y)},null,8,An)],8,kn),B(u)?(S(),D(`mask`,{key:0,id:`floorplan-gaps`,maskUnits:`userSpaceOnUse`,x:B(R).x,y:B(R).y,width:B(R).width,height:B(R).height},[(S(!0),D(I,null,C(B(Ne),e=>(S(),D(I,{key:`gap-room-${e.roomId}`},[e.publicSpace?z(``,!0):(S(),D(`path`,{key:0,d:e.fill,fill:`white`},null,8,Mn))],64))),128)),(S(!0),D(I,null,C(B(Pe),e=>(S(),D(`g`,{key:`gap-sight-${e.roomId}`,"clip-path":`url(#floorplan-sight-${e.roomId})`},[(S(!0),D(I,null,C(yt(e.roomId),e=>(S(),D(`path`,{key:`gap-cone-${e.id}`,d:ut(e),fill:`black`,transform:`translate(${e.x} ${e.y}) rotate(${e.rotation})`},null,8,Pn))),128))],8,Nn))),128))],8,jn)):z(``,!0)]),E(`g`,{transform:`translate(${-B(R).x} ${-B(R).y})`},[(S(!0),D(I,null,C(B(Ne),e=>(S(),D(`g`,{key:e.roomId},[E(`path`,{d:e.fill,class:T([`room`,{"room-outdoor":e.outdoor&&!e.publicSpace,"room-public":e.publicSpace,"room-active":B(Ue).has(e.roomId)}])},null,10,In),E(`path`,{d:e.wall,class:T([`room-wall`,{"room-selected":e.selected,"room-public-wall":e.publicSpace}]),"stroke-width":(e.selected?2.5:1.5)/B(y)},null,10,Ln)]))),128)),(S(!0),D(I,null,C(B(Pe),e=>(S(),D(`g`,{key:`sight-${e.roomId}`,"clip-path":`url(#floorplan-sight-${e.roomId})`},[(S(!0),D(I,null,C(yt(e.roomId),e=>(S(),D(`path`,{key:e.id,d:ut(e),class:T([`cone`,[`cone-${Ge(e.id)??`idle`}`,{"cone-selected":Y(`camera`,e.id)}]]),transform:`translate(${e.x} ${e.y}) rotate(${e.rotation})`},null,10,zn))),128))],8,Rn))),128)),B(u)?(S(),D(`rect`,{key:0,x:B(R).x,y:B(R).y,width:B(R).width,height:B(R).height,fill:`url(#floorplan-gaps-hatch)`,mask:`url(#floorplan-gaps)`,class:`gaps-layer`},null,8,Bn)):z(``,!0),(S(!0),D(I,null,C(B(Ne),e=>(S(),D(`g`,{key:`hits-${e.roomId}`},[(S(!0),D(I,null,C(e.parts,e=>(S(),D(`rect`,{key:e.id,x:e.x,y:e.y,width:e.width,height:e.height,class:T([`room-hit`,{nopan:!B(N)}]),onPointerdown:t=>St(t,e)},null,42,Vn))),128)),(S(!0),D(I,null,C($e(e),e=>(S(),D(`text`,{key:e.text,x:e.x,y:e.y,"font-size":e.size,transform:e.upright?void 0:`rotate(-90 ${e.x} ${e.y})`,class:`room-label`,"text-anchor":`middle`},v(e.text),9,Hn))),128))]))),128)),(S(!0),D(I,null,C(B(Fe),e=>(S(),D(`g`,{key:e.id,class:T({nopan:!B(N)}),onPointerdown:t=>jt(t,e)},[E(`path`,{d:e.line,class:`connection-hit`,"stroke-width":24/B(y)},null,8,Wn),E(`path`,{d:e.line,class:T([`connection`,[`connection-${e.type}`,{"connection-selected":Y(`connection`,e.id)}]]),"stroke-width":7/B(y)},null,10,Gn),(S(!0),D(I,null,C(Y(`connection`,e.id)&&!B(N)?e.handles:[],(t,n)=>(S(),D(`circle`,{key:n,cx:t.x,cy:t.y,r:7/B(y),class:`passage-handle nopan`,"stroke-width":2/B(y),onPointerdown:t=>Mt(t,e,n)},null,40,Kn))),128))],42,Un))),128)),(S(!0),D(I,null,C(B(ke),e=>(S(),D(I,{key:e.connection.id},[e.geometry.kind===`link`?(S(),D(`path`,{key:0,d:`M ${e.geometry.x1} ${e.geometry.y1} L ${e.geometry.x2} ${e.geometry.y2}`,class:T([`connection connection-stairs`,{"connection-selected":Y(`connection`,e.connection.id)}]),"stroke-width":2/B(y),onPointerdown:t=>xt(t,e.connection.id)},null,42,qn)):z(``,!0)],64))),128)),(S(!0),D(I,null,C(B(Ce),e=>(S(),D(`g`,{key:e.id,class:T({nopan:!B(N)}),onPointerdown:t=>wt(t,e),onPointerenter:t=>et(t,e),onPointerleave:tt},[E(`circle`,{cx:e.x,cy:e.y,r:13/B(y),class:T([`camera-body`,[`camera-${Ge(e.id)??`idle`}`,{"camera-selected":Y(`camera`,e.id)}]]),"stroke-width":2/B(y)},null,10,Yn),E(`circle`,{cx:e.x,cy:e.y,r:4/B(y),class:`camera-lens`},null,8,Xn),B(te)===e.id||Y(`camera`,e.id)||B(ge).has(e.id)?(S(),D(`g`,Zn,[E(`rect`,{x:e.x-qe(e).width/2,y:e.y-42/B(y),width:qe(e).width,height:20/B(y),rx:10/B(y)},null,8,Qn),(S(!0),D(I,null,C(Ke(e),(t,n)=>(S(),D(`foreignObject`,{key:t,x:e.x-qe(e).width/2+(8+n*17)/B(y),y:e.y-39.5/B(y),width:15/B(y),height:15/B(y),class:`chip-glyph`},[(S(),M(x(B(pe)(t).icon),{width:`100%`,height:`100%`}))],8,$n))),128)),E(`text`,{x:e.x-qe(e).width/2+qe(e).textOffset,y:e.y-28/B(y),"font-size":12/B(y)},v(e.name),9,er)])):z(``,!0)],42,Jn))),128)),(S(!0),D(I,null,C(B(De)?B(Ie):[],e=>(S(),D(`g`,{key:e.roomId},[E(`circle`,{cx:e.x,cy:e.y,r:11/B(y),class:`connection-ghost nopan`,"stroke-width":1.5/B(y),onPointerdown:P(t=>a(`create-connection`,{fromRoomId:e.fromRoomId,toRoomId:e.roomId,fromShapeId:e.fromShapeId,toShapeId:e.shapeId}),[`stop`])},null,40,tr),E(`path`,{d:`M ${e.x-5/B(y)} ${e.y} L ${e.x+5/B(y)} ${e.y} M ${e.x} ${e.y-5/B(y)} L ${e.x} ${e.y+5/B(y)}`,class:`connection-ghost-plus`,"stroke-width":1.5/B(y)},null,8,nr)]))),128)),(S(!0),D(I,null,C(B(he),e=>(S(),D(`g`,{key:`sensor-${e.id}`,class:T({nopan:!B(N)}),onPointerdown:t=>At(t,e),onPointerenter:t=>Je(t,e),onPointerleave:Ye},[E(`circle`,{cx:e.x,cy:e.y,r:11/B(y),class:T([`sensor-body`,{"sensor-selected":Y(`sensor`,e.id)}]),"stroke-width":2/B(y)},null,10,ir),(S(),D(`foreignObject`,{x:e.x-7/B(y),y:e.y-7/B(y),width:14/B(y),height:14/B(y),class:`sensor-glyph`},[(S(),M(x(B(_e)(e.sensorType,Xe(e.id))),{width:`100%`,height:`100%`,style:w(Ze(e))},null,8,[`style`]))],8,ar)),B(f)===e.id||Y(`sensor`,e.id)?(S(),D(`g`,or,[E(`rect`,{x:e.x-nt(G(e))/2,y:e.y-42/B(y),width:nt(G(e)),height:20/B(y),rx:10/B(y)},null,8,sr),E(`text`,{x:e.x,y:e.y-28/B(y),"text-anchor":`middle`,"font-size":12/B(y)},v(G(e)),9,cr)])):z(``,!0)],42,rr))),128)),(S(!0),D(I,null,C(B(Re),e=>(S(),D(`g`,{key:e.key,class:`flight-camera`,onPointerenter:t=>ne.value=e.key,onPointerleave:r[0]||=e=>ne.value=null},[E(`circle`,{cx:e.x,cy:e.y,r:11/B(y),class:`flight-camera-body`,"stroke-width":1.5/B(y)},null,8,ur),E(`circle`,{cx:e.x,cy:e.y,r:3.5/B(y),class:`flight-camera-lens`},null,8,dr),B(ne)===e.key?(S(),D(`g`,fr,[E(`rect`,{x:e.x-nt(e.label)/2,y:e.y-42/B(y),width:nt(e.label),height:20/B(y),rx:10/B(y)},null,8,pr),E(`text`,{x:e.x,y:e.y-28/B(y),"text-anchor":`middle`,"font-size":12/B(y)},v(e.label),9,mr)])):z(``,!0)],40,lr))),128)),(S(!0),D(I,null,C(B(ze),e=>(S(),D(`g`,{key:e.key,class:T({nopan:!B(N)}),onPointerdown:t=>Qe(t,e)},[E(`circle`,{cx:e.x,cy:e.y,r:12/B(y),class:T([e.connectionId?`connection-badge`:`connection-ghost`,{"connection-selected":e.connectionId&&Y(`connection`,e.connectionId)}]),"stroke-width":(e.connectionId?2:1.5)/B(y)},null,10,gr),E(`path`,{d:rt(e.x,e.y),class:`badge-glyph`,"stroke-width":1.5/B(y),fill:`none`,"stroke-linejoin":`round`},null,8,_r),e.direction?(S(),D(`text`,{key:0,x:e.x+13/B(y),y:e.y-7/B(y),class:`badge-direction`,"font-size":12/B(y)},v(e.direction),9,vr)):z(``,!0),B(g)?(S(),D(`g`,yr,[E(`rect`,{x:B(g).x-B(g).width/2,y:B(g).y,width:B(g).width,height:20/B(y),rx:10/B(y)},null,8,br),E(`text`,{x:B(g).x,y:B(g).y+14/B(y),"text-anchor":`middle`,"font-size":12/B(y)},v(B(g).text),9,xr)])):z(``,!0)],42,hr))),128)),B(ee).x===null?z(``,!0):(S(),D(`path`,{key:1,d:`M ${B(ee).x} ${B(He).top} L ${B(ee).x} ${B(He).bottom}`,class:`guide`,"stroke-width":1/B(y)},null,8,Sr)),B(ee).y===null?z(``,!0):(S(),D(`path`,{key:2,d:`M ${B(He).left} ${B(ee).y} L ${B(He).right} ${B(ee).y}`,class:`guide`,"stroke-width":1/B(y)},null,8,Cr)),B(Te)&&!B(N)?(S(),D(`rect`,{key:3,x:B(Te).x+B(Te).width-7/B(y),y:B(Te).y+B(Te).height-7/B(y),width:14/B(y),height:14/B(y),rx:3/B(y),class:`handle nopan`,"stroke-width":1.5/B(y),onPointerdown:r[1]||=e=>Ct(e,B(Te))},null,40,wr)):z(``,!0),B(Ee)&&!B(N)?(S(),D(`circle`,{key:4,cx:B(Ee).x+Math.cos(ot(B(Ee).rotation))*B(Ee).range,cy:B(Ee).y+Math.sin(ot(B(Ee).rotation))*B(Ee).range,r:9/B(y),class:`handle nopan`,"stroke-width":1.5/B(y),onPointerdown:r[2]||=e=>Tt(e,B(Ee))},null,40,Tr)):z(``,!0)],8,Fn)],4))]),default:_(()=>[A(B(U),{gap:B(16),size:B(1),"pattern-color":`#81818a`},null,8,[`gap`,`size`])]),_:1},8,[`min-zoom`,`max-zoom`]),k((S(),D(`div`,{ref_key:`compassRef`,ref:d,class:T([`floorplan-compass absolute top-3 right-3`,{"cursor-grab active:cursor-grabbing":!B(N)}]),onPointerdown:P(Ot,[`stop`])},[(S(),D(`svg`,Er,[r[17]||=E(`circle`,{cx:`23`,cy:`23`,r:`21`,class:`compass-ring`,"stroke-width":`1`},null,-1),E(`g`,{transform:`rotate(${B(Se)} 23 23)`},[...r[16]||=[E(`path`,{d:`M 23 6 L 27 23 L 23 19 L 19 23 Z`,class:`compass-needle`},null,-1),E(`text`,{x:`23`,y:`41`,"text-anchor":`middle`,class:`compass-label`,"font-size":`9`},`N`,-1)]],8,Dr)]))],34)),[[ae,{value:B(N)?n.$t(`views.floorplan.north_reading`,{value:B(Se)}):n.$t(`views.floorplan.north_hint`)},void 0,{left:!0}]]),E(`div`,{class:`absolute left-3 flex flex-col gap-2 items-start`,style:w({bottom:`${12+(e.bottomInset??0)}px`,transition:e.bottomInsetDragging?`none`:`bottom 0.2s ease-in-out`})},[E(`div`,Or,[k((S(),D(`button`,{type:`button`,class:`control-button`,onPointerdown:r[4]||=P(()=>{},[`stop`]),onClick:r[5]||=P(e=>B(ue)(),[`stop`])},[A(i,{class:`w-4 h-4`})],32)),[[ae,{value:n.$t(`views.floorplan.zoom_in`)},void 0,{right:!0}]]),k((S(),D(`button`,{type:`button`,class:`control-button`,onPointerdown:r[6]||=P(()=>{},[`stop`]),onClick:r[7]||=P(e=>B(de)(),[`stop`])},[A(o,{class:`w-4 h-4`})],32)),[[ae,{value:n.$t(`views.floorplan.zoom_out`)},void 0,{right:!0}]]),k((S(),D(`button`,{type:`button`,class:`control-button`,onPointerdown:r[8]||=P(()=>{},[`stop`]),onClick:r[9]||=P(e=>It(),[`stop`])},[A(l,{class:`w-4 h-4`})],32)),[[ae,{value:n.$t(`views.floorplan.fit`)},void 0,{right:!0}]]),k((S(),D(`button`,{type:`button`,class:T([`control-button`,{"control-active":B(c)}]),onPointerdown:r[10]||=P(()=>{},[`stop`]),onClick:r[11]||=P(e=>c.value=!B(c),[`stop`])},[B(c)?(S(),M(re,{key:0,class:`w-4 h-4`})):(S(),M(ie,{key:1,class:`w-4 h-4`}))],34)),[[ae,{value:B(c)?n.$t(`views.floorplan.unlock`):n.$t(`views.floorplan.lock`)},void 0,{right:!0}]]),k((S(),D(`button`,{type:`button`,class:T([`control-button`,{"control-active":B(u)}]),onPointerdown:r[12]||=P(()=>{},[`stop`]),onClick:r[13]||=P(e=>u.value=!B(u),[`stop`])},[A(p,{class:`w-4 h-4`})],34)),[[ae,{value:n.$t(`views.floorplan.blind_spots`)},void 0,{right:!0}]])]),E(`div`,kr,[(S(),D(`svg`,{width:B(Oe).width,height:`10`,class:`shrink-0`},[E(`path`,{d:`M 1 1 L 1 9 M 1 5 L ${B(Oe).width-1} 5 M ${B(Oe).width-1} 1 L ${B(Oe).width-1} 9`,class:`scale-line`,"stroke-width":`1`},null,8,jr)],8,Ar)),E(`span`,Mr,v(B(Oe).label),1)])],4)],34)}}}),[[`__scopeId`,`data-v-27e461bb`]]),Fr={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ir(e,t){return S(),D(`svg`,Fr,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M13 19c0-.3 0-.7.1-1H8v-2H6V8h2V6h8v2h2v5.1c.3-.1.7-.1 1-.1s.7 0 1 .1V8h2V2h-6v2H8V2H2v6h2v8H2v6h6v-2h5.1c-.1-.3-.1-.7-.1-1m5-15h2v2h-2zM4 4h2v2H4zm2 16H4v-2h2zm14-5v3h3v2h-3v3h-2v-3h-3v-2h3v-3z`},null,-1)]])}var Lr=R({name:`mdi-vector-square-plus`,render:Ir}),Rr={key:0,class:`text-xs font-semibold text-muted uppercase tracking-wider mb-3`},zr={class:`mb-4`},Br={class:`text-xs font-medium text-muted mb-2`},Vr=[`draggable`],Hr={class:`flex items-center gap-2.5 flex-1 min-w-0 px-3 py-2.5`},Ur={class:`flex items-center justify-center w-8 h-8 rounded-lg shrink-0 palette-icon`},Wr={class:`text-[13px] font-medium truncate text-color leading-tight`},Gr={key:0,class:`flex flex-col gap-1.5 mt-1.5`},Kr=[`draggable`,`onDragstart`,`onClick`],qr={class:`flex items-center gap-2.5 flex-1 min-w-0 px-3 py-2.5`},Jr={class:`flex items-center justify-center w-8 h-8 rounded-lg shrink-0 palette-icon`},Yr={class:`text-[13px] font-medium truncate text-color leading-tight`},Xr={class:`mb-4`},Zr={class:`text-xs font-medium text-muted mb-2`},Qr={key:0,class:`text-xs text-muted px-1`},$r={key:1,class:`flex flex-col gap-1.5`},ei=[`draggable`,`onDragstart`,`onClick`],ti={class:`flex items-center gap-2.5 flex-1 min-w-0 px-3 py-2.5`},ni={class:`flex items-center justify-center w-8 h-8 rounded-lg shrink-0 palette-icon`},ri={class:`text-[13px] font-medium truncate text-color leading-tight`},ii={class:`text-xs font-medium text-muted mb-2`},ai={key:0,class:`text-xs text-muted px-1`},oi={key:1,class:`flex flex-col gap-1.5`},si=[`draggable`,`onDragstart`,`onClick`],ci={class:`flex items-center gap-2.5 flex-1 min-w-0 px-3 py-2.5`},li={class:`flex items-center justify-center w-8 h-8 rounded-lg shrink-0 palette-icon`},ui={class:`flex flex-col min-w-0`},di={class:`text-[13px] font-medium truncate text-color leading-tight`},fi={key:0,class:`text-[11px] text-muted truncate leading-tight`},pi=f(we({__name:`CuiFloorplanPalette`,props:{cameras:{},sensors:{},rooms:{},mode:{default:`drag`},disabled:{type:Boolean}},emits:[`pick`],setup(e,{emit:n}){let r=e,i=n;function a(e,t,n,i,a){!r.disabled&&e.dataTransfer&&(e.dataTransfer.setData(ct,JSON.stringify({kind:t,cameraId:n,roomId:i,sensorId:a?.id,sensorType:a?.sensorType})),e.dataTransfer.effectAllowed=`move`)}return(n,r)=>{let o=Oe,s=et,c=Lr,l=Ke,u=t;return S(),D(`div`,{class:T([`overflow-y-auto p-3`,e.mode===`drag`?`h-full`:``])},[e.mode===`drag`?(S(),D(`div`,Rr,v(n.$t(`views.floorplan.palette`)),1)):z(``,!0),e.disabled?(S(),M(o,{key:1,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint mb-3`},{default:_(()=>[j(v(n.$t(`views.floorplan.needs_level`)),1)]),_:1})):z(``,!0),E(`div`,zr,[E(`div`,Br,v(n.$t(`views.floorplan.section_room`)),1),E(`div`,{class:T([`floorplan-palette-item`,[e.mode===`drag`?`cursor-grab active:cursor-grabbing`:`cursor-pointer`,{"palette-disabled":e.disabled}]]),draggable:e.mode===`drag`&&!e.disabled,onDragstart:r[0]||=e=>a(e,`room`),onClick:r[1]||=t=>!e.disabled&&i(`pick`,{kind:`room`})},[E(`div`,Hr,[E(`div`,Ur,[A(s,{class:`w-4 h-4`})]),E(`span`,Wr,v(n.$t(`views.floorplan.new_room`)),1)])],42,Vr),e.rooms.length?(S(),D(`div`,Gr,[(S(!0),D(I,null,C(e.rooms,t=>k((S(),D(`div`,{key:t.id,class:T([`floorplan-palette-item`,[e.mode===`drag`?`cursor-grab active:cursor-grabbing`:`cursor-pointer`,{"palette-disabled":e.disabled}]]),draggable:e.mode===`drag`&&!e.disabled,onDragstart:e=>a(e,`room`,void 0,t.id),onClick:n=>!e.disabled&&i(`pick`,{kind:`room`,roomId:t.id})},[E(`div`,qr,[E(`div`,Jr,[A(c,{class:`w-4 h-4`})]),E(`span`,Yr,v(t.name),1)])],42,Kr)),[[u,{value:n.$t(`views.floorplan.room_not_drawn`)},void 0,{right:!0}]])),128))])):z(``,!0)]),E(`div`,Xr,[E(`div`,Zr,v(n.$t(`views.floorplan.section_cameras`)),1),e.cameras.length?(S(),D(`div`,$r,[(S(!0),D(I,null,C(e.cameras,t=>(S(),D(`div`,{key:t.id,class:T([`floorplan-palette-item`,[e.mode===`drag`?`cursor-grab active:cursor-grabbing`:`cursor-pointer`,{"palette-disabled":e.disabled}]]),draggable:e.mode===`drag`&&!e.disabled,onDragstart:e=>a(e,`camera`,t.id),onClick:n=>!e.disabled&&i(`pick`,{kind:`camera`,cameraId:t.id})},[E(`div`,ti,[E(`div`,ni,[A(l,{class:`w-4 h-4`})]),E(`span`,ri,v(t.name),1)])],42,ei))),128))])):(S(),D(`span`,Qr,v(n.$t(`views.floorplan.all_cameras_placed`)),1))]),E(`div`,null,[E(`div`,ii,v(n.$t(`views.floorplan.section_sensors`)),1),e.sensors.length?(S(),D(`div`,oi,[(S(!0),D(I,null,C(e.sensors,t=>(S(),D(`div`,{key:t.id,class:T([`floorplan-palette-item`,[e.mode===`drag`?`cursor-grab active:cursor-grabbing`:`cursor-pointer`,{"palette-disabled":e.disabled}]]),draggable:e.mode===`drag`&&!e.disabled,onDragstart:e=>a(e,`sensor`,void 0,void 0,t),onClick:n=>!e.disabled&&i(`pick`,{kind:`sensor`,sensorId:t.id,sensorType:t.sensorType})},[E(`div`,ci,[E(`div`,li,[(S(),M(x(B(_e)(t.sensorType,void 0)),{class:`w-4 h-4`}))]),E(`div`,ui,[E(`span`,di,v(t.name),1),t.subtitle?(S(),D(`span`,fi,v(t.subtitle),1)):z(``,!0)])])],42,si))),128))])):(S(),D(`span`,ai,v(n.$t(`views.floorplan.all_sensors_placed`)),1))])],2)}}}),[[`__scopeId`,`data-v-531420ee`]]),mi={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function hi(e,t){return S(),D(`svg`,mi,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`m12 18.54l7.37-5.74L21 14.07l-9 7l-9-7l1.62-1.26zM12 16L3 9l9-7l9 7zm0-11.47L6.26 9L12 13.47L17.74 9z`},null,-1)]])}var gi=R({name:`mdi-layers-outline`,render:hi}),_i={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function vi(e,t){return S(),D(`svg`,_i,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M15 5v4h-4v4H7v4H3v3h7v-4h4v-4h4V8h4V5z`},null,-1)]])}var yi=R({name:`mdi-stairs`,render:vi});async function bi({signal:e}={}){return(await re.get(`/floorplan`,{signal:e})).data}async function xi(e){return(await re.put(`/floorplan`,e)).data}var Si={class:`flex flex-col gap-2 w-full`},Ci={for:`floorplanLevelName`,class:`cui-label`},wi=we({__name:`FloorplanLevel`,props:{name:{default:``}},setup(e,{expose:t}){let n=O(e.name);return t({onConfirm:async()=>n.value.trim()||null}),(e,t)=>{let r=s;return S(),D(`div`,Si,[E(`label`,Ci,v(e.$t(`components.form.label.name`)),1),A(r,{id:`floorplanLevelName`,modelValue:B(n),"onUpdate:modelValue":t[0]||=e=>Ce(n)?n.value=e:null,class:`w-full`,placeholder:e.$t(`views.floorplan.level_name_placeholder`),autofocus:``},null,8,[`modelValue`,`placeholder`])])}}}),Ti=Se({plan:null}),Ei=null,Di=null,Oi=new Set;function ki(){Di||(Ei=F(!0),Ei.run(()=>{let e=me(`/camera.ui`);Di=e,e.on(`floorplan-changed`,e=>{Ti.plan=e;for(let t of Oi)try{t(e)}catch{}})}))}function Ai(){function e(){ki()}function t(e){return Oi.add(e),()=>Oi.delete(e)}return{plan:L(()=>Ti.plan),connect:e,onPlan:t}}var ji={class:`h-full w-full relative overflow-hidden flex flex-col`},Mi={class:`flex items-center gap-2 px-3 py-2 border-bottom-color card-background min-h-[48px]`},Ni={key:0,class:`flex-1 flex items-center justify-center`},Pi={key:1,class:`flex flex-1 min-h-0`},Fi={class:`relative w-6 h-6`},Ii={class:`flex items-center gap-2.5`},Li={class:`flex items-center justify-center w-8 h-8 rounded-lg shrink-0 palette-icon`},Ri={class:`flex-1 min-w-0`},zi={class:`text-sm font-semibold truncate text-color`},Bi={key:0,class:`text-[11px] text-muted truncate`},Vi={class:`text-xs text-muted truncate`},Hi={key:0,class:`text-xs text-muted`},Ui={key:1,class:`flex flex-col gap-1`},Wi={class:`flex items-center justify-center`},Gi={key:0,class:`flex items-center gap-2 pl-3 pr-2 py-1.5`},Ki={class:`flex-1 min-w-0 text-sm font-semibold truncate text-color`},qi=50,Ji=92,Yi=f(we({__name:`Floorplan`,setup(i){let{t:s}=r(),{smBreakpoint:l}=ee(),{bottombarHeight:f}=ne(),re=ce(),p=ue(),ae=Ee(),m=Ai(),pe=new te,{sensors:me}=o(),{data:j}=pe.getCamerasQuery({page:1,pageSize:-1}),Se=O(),P=O(),F=O(null),we=O(null),De=O({x:0,y:0}),Oe=O(null),ke=O({x:0,y:0}),Ae=O(),je=O(null),Ne=O({x:0,y:0}),Pe=O(),Ie=O(null),Le=O(null),Ke=O({version:0,updatedAt:0,levels:[],rooms:[]}),V=O([]),H=O([]),U=O([]),W=O([]),G=O([]),K=O(``),$e=O(null),q=O(null),et=O(!1),tt=O(!0),nt=O(!1),rt=O(``),it=ve(`sheetRef`),at=O(0),J=O(0),ot=O(!1),st=N([]),ct=N([]),Y=[{value:a.Disarmed,labelKey:`views.floorplan.security_disarmed`},{value:a.StayArm,labelKey:`views.floorplan.security_stay`},{value:a.AwayArm,labelKey:`views.floorplan.security_away`},{value:a.NightArm,labelKey:`views.floorplan.security_night`}],lt=0,ut=!1,pt,mt,ht,X=ie(void 0,`admin`),gt=L(()=>Math.max(at.value-Ji,0)),_t=L(()=>st.value.length>0),vt=L(()=>ct.value.length>0),Z=L(()=>(j.value?.result??[]).find(e=>e._id===Le.value)),yt=L(()=>V.value.find(e=>e.id===K.value)),bt=L(()=>Ft()!==rt.value),xt=L(()=>new Map((j.value?.result??[]).map(e=>[e._id,e.name]))),St=L(()=>me.value.filter(e=>g.has(String(e.type)))),Ct=L(()=>new Map(St.value.map(e=>[e.id,{name:Nt(e),owner:Pt(e)}]))),wt=L(()=>{let e=new Set(G.value.map(e=>e.id));return St.value.filter(t=>!e.has(t.id)).map(e=>({id:e.id,name:Nt(e),subtitle:Pt(e),sensorType:String(e.type)}))}),Tt=L(()=>{let e=new Set(H.value.map(e=>e.roomId));return Ke.value.rooms.filter(t=>!e.has(t.id)).map(e=>({id:e.id,name:e.name}))}),Et=L(()=>{let e=new Set(W.value.map(e=>e.id));return(j.value?.result??[]).filter(t=>!e.has(t._id)).map(e=>({id:e._id,name:e.name}))}),Dt=L(()=>l.value||!q.value?void 0:`calc(300px + 1.25rem + var(--safe-area-inset-right))`),Ot=L(()=>V.value.findIndex(e=>e.id===K.value)),kt=L(()=>[...V.value].reverse().map(e=>({key:e.id,label:e.name,icon:R(gi),active:e.id===K.value,onClick:()=>K.value=e.id}))),At=L(()=>[{label:s(`views.floorplan.undo`),icon:Ze,buttonProps:{disabled:!_t.value},command:zt},{label:s(`views.floorplan.redo`),icon:Xe,buttonProps:{disabled:!vt.value},command:Bt},{label:s(`views.floorplan.clear_level`),icon:Je,buttonProps:{disabled:!V.value.length},command:Mn},{label:s(`views.floorplan.revert`),icon:Ue,buttonProps:{disabled:!bt.value},command:In}]),jt=L(()=>{let e=H.value.find(e=>e.roomId===F.value);if(!e)return[];let t=new Set(U.value.flatMap(e=>[e.fromRoomId,e.toRoomId].join(`|`))),n=new Set;return H.value.filter(r=>r.levelId===e.levelId||n.has(r.roomId)||t.has([e.roomId,r.roomId].join(`|`))||t.has([r.roomId,e.roomId].join(`|`))?!1:(n.add(r.roomId),!0)).map(t=>({key:t.roomId,label:t.name,description:V.value.find(e=>e.id===t.levelId)?.name,icon:R(yi),onClick:()=>mn({fromRoomId:e.roomId,toRoomId:t.roomId})}))}),Mt=L(()=>{let e=H.value.filter(e=>e.levelId===K.value);if(!e.length)return{x:0,y:0};let t=Math.min(...e.map(e=>e.x)),n=Math.min(...e.map(e=>e.y)),r=Math.max(...e.map(e=>e.x+e.width)),i=Math.max(...e.map(e=>e.y+e.height));return{x:Math.round((t+r)/2),y:Math.round((n+i)/2)}});function Nt(e){return e.displayName.value||e.name}function Pt(e){return e.assignedCameraIds.value.map(e=>xt.value.get(e)).filter(Boolean).join(`, `)}function Ft(){return JSON.stringify(It())}function It(){return{catalogVersion:Ke.value.version,north:$e.value,levels:V.value.map((e,t)=>({id:e.id,name:e.name,order:t})),rooms:H.value.map(e=>({id:e.id,roomId:e.roomId,name:e.name,note:e.note,publicSpace:e.publicSpace,levelId:e.levelId,outdoor:e.outdoor,x:e.x,y:e.y,width:e.width,height:e.height})),connections:U.value.map(e=>({...e})),sensors:G.value.map(e=>({sensorId:e.id,sensorType:e.sensorType,roomId:e.roomId,connectionId:e.connectionId,note:e.note,x:e.x,y:e.y})),cameras:W.value.map(e=>({cameraId:e.id,roomId:e.roomId,note:e.note,x:e.x,y:e.y,rotation:e.rotation,fov:e.fov,range:e.range}))}}function Lt(e){$e.value=e.north,V.value=e.levels.map(e=>({id:e.id,name:e.name})),H.value=e.rooms.map(e=>({...e}));let t=new Map(H.value.map(e=>[e.roomId,e.levelId]));U.value=e.connections.map(e=>Ht({...e})),W.value=e.cameras.map(e=>({id:e.cameraId,name:xt.value.get(e.cameraId)??e.cameraId,levelId:t.get(e.roomId)??``,roomId:e.roomId,note:e.note??``,x:e.x,y:e.y,rotation:e.rotation,fov:e.fov,range:e.range})),G.value=e.sensors.map(e=>({id:e.sensorId,name:Ct.value.get(e.sensorId)?.name??e.sensorId,owner:Ct.value.get(e.sensorId)?.owner??``,sensorType:e.sensorType,levelId:t.get(e.roomId)??``,roomId:e.roomId,connectionId:e.connectionId,note:e.note??``,x:e.x,y:e.y})),V.value.some(e=>e.id===K.value)||(K.value=V.value[0]?.id??``),q.value=null}function Rt(e,t){Ke.value=t;let n=new Map(t.rooms.map(e=>[e.id,e]));Lt({catalogVersion:t.version,north:e.north,levels:[...t.levels].sort((e,t)=>e.order-t.order),rooms:e.rooms.flatMap(e=>{let t=n.get(e.roomId);return t?.levelId?[{id:e.id,roomId:t.id,name:t.name,note:t.note??``,levelId:t.levelId,outdoor:t.outdoor,publicSpace:t.publicSpace??!1,x:e.x,y:e.y,width:e.width,height:e.height}]:[]}),connections:e.connections,cameras:e.cameras,sensors:e.sensors??[]}),rt.value=Ft(),st.value=[],ct.value=[]}function Q(e=!1){let t=Date.now();if(e&&t-lt<600)return;lt=t;let n=[...st.value,Ft()];n.length>qi&&n.shift(),st.value=n,ct.value=[]}function zt(){let e=[...st.value],t=e.pop();t&&(ct.value=[...ct.value,Ft()],st.value=e,lt=0,Lt(JSON.parse(t)))}function Bt(){let e=[...ct.value],t=e.pop();t&&(st.value=[...st.value,Ft()],ct.value=e,lt=0,Lt(JSON.parse(t)))}function Vt(e){return H.value.find(t=>t.id===e)}function Ht(e){if(e.width||=90,e.offset??=null,e.note??=``,e.fromShapeId&&e.toShapeId)return e;let t=H.value.filter(t=>t.roomId===e.fromRoomId),n=H.value.filter(t=>t.roomId===e.toRoomId);for(let r of t)for(let t of n)if(dt(r,t))return{...e,fromShapeId:r.id,toShapeId:t.id};return{...e,fromShapeId:t[0]?.id??null,toShapeId:n[0]?.id??null}}function Ut(e){return H.value.filter(t=>t.roomId===e)}function Wt(e){let t=Vt(e);if(!t)return;let n=Ut(t.roomId).filter(e=>e.id!==t.id);if(!n.length||n.some(e=>dt(t,e)))return;let r=new Set(H.value.map(e=>e.name.toLowerCase())),i=t.name;for(let e=2;r.has(i.toLowerCase());e++)i=`${t.name} ${e}`;let a=de();for(let e of W.value)e.roomId===t.roomId&&yn(t,e)&&(e.roomId=a);Object.assign(t,{roomId:a,name:i}),p.add({severity:`info`,detail:s(`views.floorplan.room_detached`,{name:i}),life:4e3})}function Gt(e,t){let n=Ut(t)[0];if(!n)return;let r=e.roomId;Object.assign(e,{roomId:t,name:n.name,note:n.note,levelId:n.levelId,outdoor:n.outdoor,publicSpace:n.publicSpace});for(let n of W.value)n.roomId===r&&yn(e,n)&&(n.roomId=t);Ut(r).length||(W.value=W.value.filter(e=>e.roomId!==r),U.value=U.value.filter(e=>e.fromRoomId!==r&&e.toRoomId!==r))}function Kt(e){return W.value.find(t=>t.id===e)}function qt({id:e,x:t,y:n}){let r=Vt(e);if(!r)return;let i=t-r.x,a=n-r.y;r.x=t,r.y=n;for(let e of W.value)e.roomId===r.roomId&&yn(r,e)&&(e.x+=i,e.y+=a)}function Jt({id:e,width:t,height:n}){let r=Vt(e);if(r){r.width=t,r.height=n;for(let e of W.value)e.roomId===r.id&&(e.x=Math.min(Math.max(e.x,r.x),r.x+r.width),e.y=Math.min(Math.max(e.y,r.y),r.y+r.height))}}function Yt({id:e,x:t,y:n}){let r=Kt(e);r&&(r.x=t,r.y=n)}function Xt({id:e,rotation:t,range:n}){let r=Kt(e);r&&(r.rotation=t,r.range=n)}function Zt({id:e,patch:t}){Q(!0);let n=Vt(e);if(!n)return;if(t.roomId&&t.roomId!==n.roomId){Gt(n,t.roomId);return}let r={name:t.name,note:t.note,levelId:t.levelId,outdoor:t.outdoor,publicSpace:t.publicSpace},i=Object.fromEntries(Object.entries(r).filter(([,e])=>e!==void 0));if(Object.assign(n,t),Object.keys(i).length){for(let e of Ut(n.roomId))Object.assign(e,i);if(t.levelId)for(let e of W.value)e.roomId===n.roomId&&(e.levelId=t.levelId)}}function Qt({id:e,patch:t}){Q(!0);let n=Kt(e);if(n&&(Object.assign(n,t),t.roomId)){let e=Ut(t.roomId),r=e.find(e=>yn(e,n))??e[0];r&&!yn(r,n)&&(n.x=Math.round(r.x+r.width/2),n.y=Math.round(r.y+r.height/2),n.levelId=r.levelId)}}function $t({id:e,x:t,y:n}){let r=G.value.find(t=>t.id===e);r&&Object.assign(r,{x:t,y:n})}function en({id:e,patch:t}){Q(!0);let n=G.value.find(t=>t.id===e);n&&Object.assign(n,t)}let $=L(()=>G.value.find(e=>e.id===Ie.value));function tn(e){return me.value.find(t=>t.id===e)}function nn(e){return X&&!he.has(e)}async function rn(e){X&&await u(tn(e))}async function an(e,t){X&&await d(tn(e),t)}function on(){clearTimeout(mt)}function sn(){clearTimeout(mt),mt=setTimeout(()=>{Ie.value=null,Pe.value?.hide()},220)}function cn(e){if(!e)return sn();on(),Ie.value=e.sensorId,Ne.value={x:e.x,y:e.y},ye(()=>{je.value&&Pe.value?.show({currentTarget:je.value})})}function ln(e){if(clearTimeout(pt),!e){dn();return}ke.value={x:e.x,y:e.y},Le.value=e.cameraId,pt=setTimeout(()=>{Oe.value&&Ae.value?.show({currentTarget:Oe.value})},350)}function un(){clearTimeout(pt)}function dn(){pt=setTimeout(()=>{Ae.value?.hide(),Le.value=null},200)}function fn({roomId:e,event:t}){F.value=e,De.value={x:t.clientX,y:t.clientY},ye(()=>P.value?.toggleMenu(t,we.value))}function pn({id:e,patch:t}){Q(!0);let n=U.value.find(t=>t.id===e);n&&Object.assign(n,t)}function mn({fromRoomId:e,toRoomId:t,fromShapeId:n,toShapeId:r}){Q();let i=H.value.find(e=>e.id===n)??Ut(e)[0],a=H.value.find(e=>e.id===r)??Ut(t)[0],o=i&&a?dt(i,a):null,s={id:de(),fromRoomId:e,toRoomId:t,fromShapeId:i?.id??null,toShapeId:a?.id??null,offset:o?hn(o,i?.id,a?.id):null,width:90,note:``,type:i&&a&&i.levelId!==a.levelId?`stairs`:`door`};U.value.push(s),q.value={kind:`connection`,id:s.id}}function hn(e,t,n){let r=U.value.filter(e=>e.fromShapeId===t&&e.toShapeId===n).map(t=>ft(e,t.offset,t.width)).map(t=>{let n=(t.x1-e.x)*e.stepX+(t.y1-e.y)*e.stepY,r=(t.x2-e.x)*e.stepX+(t.y2-e.y)*e.stepY;return{start:Math.min(n,r),end:Math.max(n,r)}}).sort((e,t)=>e.start-t.start),i=Math.min(90,e.length)/2,a=0;for(let e of r){if(e.start-a>=i*2)break;a=Math.max(a,e.end)}return Math.round(Math.min(Math.max(a+i,i),e.length-i))}function gn({id:e,offset:t}){Q(!0);let n=U.value.find(t=>t.id===e);n&&(n.offset=t)}function vn({id:e,offset:t,width:n}){Q(!0);let r=U.value.find(t=>t.id===e);r&&Object.assign(r,{offset:t,width:n})}function yn(e,t){return t.x>=e.x&&t.x<=e.x+e.width&&t.y>=e.y&&t.y<=e.y+e.height}function bn(e){if(Q(),e.kind===`room`){let t=Vt(e.id);if(!t)return;H.value=H.value.filter(t=>t.id!==e.id),W.value=W.value.filter(e=>e.roomId!==t.roomId||!yn(t,e)),Ut(t.roomId).length||(W.value=W.value.filter(e=>e.roomId!==t.roomId),U.value=U.value.filter(e=>e.fromRoomId!==t.roomId&&e.toRoomId!==t.roomId))}else e.kind===`connection`?U.value=U.value.filter(t=>t.id!==e.id):e.kind===`sensor`?G.value=G.value.filter(t=>t.id!==e.id):W.value=W.value.filter(t=>t.id!==e.id);q.value=null}function xn(e,t,n){Q();let r=Sn(Math.round(e-120),Math.round(t-100),240,200),i=n?Ke.value.rooms.find(e=>e.id===n):void 0,a={id:de(),roomId:i?.id??de(),name:i?.name??s(`views.floorplan.new_room`),note:i?.note??``,publicSpace:i?.publicSpace??!1,levelId:K.value,outdoor:i?.outdoor??!1,x:r.x,y:r.y,width:240,height:200};H.value.push(a),q.value={kind:`room`,id:a.id}}function Sn(e,t,n,r){let i=H.value.filter(e=>e.levelId===K.value),a=(e,t)=>i.some(i=>e<i.x+i.width&&e+n>i.x&&t<i.y+i.height&&t+r>i.y);if(!a(e,t))return{x:e,y:t};for(let i=1;i<=12;i++)for(let[o,s]of[[1,0],[0,1],[-1,0],[0,-1],[1,1],[-1,1],[1,-1],[-1,-1]]){let c=e+o*i*(n+20),l=t+s*i*(r+20);if(!a(c,l))return{x:c,y:l}}return{x:e,y:t}}function Cn(e,t,n){let r=H.value.find(e=>e.levelId===K.value&&t>=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+e.height);if(!r)return;Q();let i={id:e,name:xt.value.get(e)??e,levelId:K.value,roomId:r.roomId,note:``,x:Math.round(t),y:Math.round(n),rotation:0,fov:90,range:800};W.value.push(i),q.value={kind:`camera`,id:i.id}}function wn(e,t,n,r){let i=H.value.find(e=>e.levelId===K.value&&n>=e.x&&n<=e.x+e.width&&r>=e.y&&r<=e.y+e.height);if(!i)return;Q();let a={id:e,name:Ct.value.get(e)?.name??e,owner:Ct.value.get(e)?.owner??``,sensorType:t,levelId:K.value,roomId:i.roomId,connectionId:null,note:``,x:Math.round(n),y:Math.round(r)};G.value.push(a),q.value={kind:`sensor`,id:a.id}}function Tn({kind:e,cameraId:t,sensorId:n,sensorType:r,roomId:i,x:a,y:o}){V.value.length&&(e===`room`?xn(a,o,i):e===`sensor`&&n&&r?wn(n,r,a,o):t&&Cn(t,a,o))}function En(e){Tn({...e,x:Mt.value.x,y:Mt.value.y})}function Dn(e){et.value=!1,En(e)}function On(){re.openComponentDialog(wi,{data:{title:s(`views.floorplan.add_level`),confirmText:s(`components.form.button.add`),contentProps:{}},onConfirm:e=>{if(!e)return;Q();let t={id:de(),name:e};V.value.push(t),K.value=t.id,q.value=null}})}function kn(){let e=yt.value;e&&re.openComponentDialog(wi,{data:{title:s(`views.floorplan.rename_level`),confirmText:s(`components.form.button.save`),contentProps:{name:e.name}},onConfirm:t=>{t&&(Q(),e.name=t)}})}function An(){if(!yt.value)return;Q();let e=K.value,t=new Set(H.value.filter(t=>t.levelId===e).map(e=>e.id));V.value=V.value.filter(t=>t.id!==e),H.value=H.value.filter(t=>t.levelId!==e),W.value=W.value.filter(t=>t.levelId!==e),U.value=U.value.filter(e=>!t.has(e.fromRoomId)&&!t.has(e.toRoomId)),K.value=V.value[0]?.id??``,q.value=null}function jn(e){let t=Ot.value,n=t+e;if(t<0||n<0||n>=V.value.length)return;Q();let r=[...V.value];[r[t],r[n]]=[r[n],r[t]],V.value=r}function Mn(){Q();let e=new Set(H.value.filter(e=>e.levelId===K.value).map(e=>e.id));H.value=H.value.filter(e=>e.levelId!==K.value),W.value=W.value.filter(e=>e.levelId!==K.value),U.value=U.value.filter(t=>!e.has(t.fromRoomId)&&!e.has(t.toRoomId)),q.value=null}async function Nn(){nt.value=!0;try{Rt(await xi(It()),await We()),await Pn(),p.add({severity:`success`,detail:s(`views.floorplan.saved`),life:3e3})}catch(e){p.add({severity:`error`,detail:fe(e),life:5e3})}finally{nt.value=!1}}async function Pn(){await Promise.all([pe.queryClient.refetchQueries({queryKey:[`camerasList`]}),pe.queryClient.refetchQueries({queryKey:[`cameras`]}),pe.queryClient.refetchQueries({queryKey:[`rooms`],exact:!0})])}async function Fn(){try{let[e,t]=await Promise.all([bi(),We()]);Rt(e,t)}catch(e){p.add({severity:`error`,detail:fe(e),life:5e3})}finally{tt.value=!1}}async function In(){await Fn()}function Ln(e){if(!X)return;let t=e.target;if(t?.isContentEditable||[`INPUT`,`TEXTAREA`,`SELECT`].includes(t?.tagName??``))return;let n=e.metaKey||e.ctrlKey;if(n&&e.key.toLowerCase()===`z`){e.preventDefault(),e.shiftKey?Bt():zt();return}if(n&&e.key.toLowerCase()===`y`){e.preventDefault(),Bt();return}(e.key===`Delete`||e.key===`Backspace`)&&q.value&&(e.preventDefault(),bn(q.value))}let Rn=m.onPlan(async e=>{bt.value||(Rt(e,await We()),await Pn())});function zn(e){let t=e.clientY,n=J.value,r=!1;ot.value=!0,e.currentTarget.setPointerCapture(e.pointerId);let i=e=>{Math.abs(e.clientY-t)>3&&(r=!0),J.value=Math.min(Math.max(n+(e.clientY-t),0),gt.value)},a=()=>{window.removeEventListener(`pointermove`,i),window.removeEventListener(`pointerup`,a),window.removeEventListener(`pointercancel`,a),ot.value=!1,r?J.value=J.value>gt.value*.35?gt.value:0:J.value=n>0?0:gt.value};window.addEventListener(`pointermove`,i),window.addEventListener(`pointerup`,a),window.addEventListener(`pointercancel`,a)}return xe(xt,e=>{for(let t of W.value)t.name=e.get(t.id)??t.id}),xe(Ct,e=>{for(let t of G.value)t.name=e.get(t.id)?.name??t.id,t.owner=e.get(t.id)?.owner??``}),xe(it,e=>{if(ht?.disconnect(),!e){at.value=0;return}ht=new ResizeObserver(([e])=>at.value=Math.round(e.contentRect.height)),ht.observe(e)}),xe(()=>q.value&&`${q.value.kind}:${q.value.id}`,()=>J.value=0),be(()=>{m.connect(),window.addEventListener(`keydown`,Ln),Fn()}),Te(e=>!bt.value||ut?!0:(re.openTextDialog({data:{title:s(`views.floorplan.unsaved_title`),contentText:s(`views.floorplan.unsaved_message`),confirmText:s(`views.floorplan.discard`)},onConfirm:async()=>{ut=!0,ae.push(e.fullPath)}}),!1)),b(()=>{clearTimeout(pt),clearTimeout(mt),Rn(),ht?.disconnect(),window.removeEventListener(`keydown`,Ln)}),(r,i)=>{let a=qe,o=e,s=oe,u=gi,d=ze,ee=Re,te=Me,ne=He,re=Be,ie=Ve,p=c,ae=pi,m=Pr,ce=_n,ue=Fe,de=Ye,fe=Ge,pe=n,me=h,he=Qe,g=le,b=t;return S(),D(`div`,ji,[A(s,{position:`left`},{default:_(()=>[A(o,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:i[0]||=e=>r.$router.push(`/menu`)},{icon:_(()=>[A(a,{class:`w-6 h-6`})]),_:1})]),_:1}),E(`div`,Mi,[A(o,{severity:`secondary`,text:``,class:`cui-button-medium shrink-0`,label:B(yt)?.name??r.$t(`views.floorplan.no_levels`),disabled:!B(V).length,onClick:i[1]||=e=>B(Se)?.toggleMenu(e)},{icon:_(()=>[A(u)]),_:1},8,[`label`,`disabled`]),i[13]||=E(`div`,{class:`flex-1`},null,-1),B(X)?(S(),D(I,{key:0},[k((S(),M(o,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-md shrink-0`,disabled:B(Ot)<1,onClick:i[2]||=e=>jn(-1)},{icon:_(()=>[A(d,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`])),[[b,{value:r.$t(`views.floorplan.level_down`)},void 0,{bottom:!0}]]),k((S(),M(o,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-md shrink-0`,disabled:B(Ot)<0||B(Ot)>=B(V).length-1,onClick:i[3]||=e=>jn(1)},{icon:_(()=>[A(ee,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`])),[[b,{value:r.$t(`views.floorplan.level_up`)},void 0,{bottom:!0}]]),A(te,{layout:`vertical`,class:`floorplan-divider`}),k((S(),M(o,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-md shrink-0`,disabled:!B(V).length,onClick:An},{icon:_(()=>[A(ne,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`])),[[b,{value:r.$t(`views.floorplan.remove_level`)},void 0,{bottom:!0}]]),k((S(),M(o,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-md shrink-0`,disabled:!B(V).length,onClick:kn},{icon:_(()=>[A(re,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`])),[[b,{value:r.$t(`views.floorplan.rename_level`)},void 0,{bottom:!0}]]),k((S(),M(o,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:On},{icon:_(()=>[A(ie,{width:`100%`,height:`100%`})]),_:1})),[[b,{value:r.$t(`views.floorplan.add_level`)},void 0,{bottom:!0}]])],64)):z(``,!0)]),B(tt)?(S(),D(`div`,Ni,[A(p,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(S(),D(`div`,Pi,[B(X)&&!B(l)?(S(),M(ae,{key:0,cameras:B(Et),sensors:B(wt),rooms:B(Tt),disabled:!B(V).length,class:`w-[240px] shrink-0`,onPick:En},null,8,[`cameras`,`sensors`,`rooms`,`disabled`])):z(``,!0),A(m,{mobile:B(l),"bottom-inset":B(l)&&B(q)?Math.max(B(at)-B(J),0):0,"bottom-inset-dragging":B(ot),levels:B(V),rooms:B(H),connections:B(U),cameras:B(W),sensors:B(G),"level-id":B(K),selection:B(q),"read-only":!B(X),north:B($e),class:`flex-1 min-w-0`,onSelect:i[4]||=e=>q.value=e,onHistory:i[5]||=e=>Q(),onCreateConnection:mn,onDrop:Tn,onUpdateNorth:i[6]||=e=>$e.value=e,onRequestStairs:fn,onHoverCamera:ln,onMoveRoom:qt,onResizeRoom:Jt,onSettleRoom:Wt,onMoveCamera:Yt,onMoveSensor:$t,onHoverSensor:cn,onRotateCamera:Xt,onMoveConnection:gn,onResizeConnection:vn},null,8,[`mobile`,`bottom-inset`,`bottom-inset-dragging`,`levels`,`rooms`,`connections`,`cameras`,`sensors`,`level-id`,`selection`,`read-only`,`north`]),B(l)?z(``,!0):(S(),D(`div`,{key:1,class:`shrink-0 overflow-hidden transition-[width] duration-200 ease-in-out`,style:w({width:B(q)?`300px`:`0px`})},[B(q)?(S(),M(ce,{key:0,rooms:B(H),connections:B(U),cameras:B(W),sensors:B(G),levels:B(V),selection:B(q),"read-only":!B(X),class:`w-[300px]`,onClose:i[7]||=e=>q.value=null,onUpdateRoom:Zt,onUpdateCamera:Qt,onUpdateSensor:en,onUpdateConnection:pn,onRemove:bn},null,8,[`rooms`,`connections`,`cameras`,`sensors`,`levels`,`selection`,`read-only`])):z(``,!0)],4))])),B(l)&&B(q)?(S(),D(`div`,{key:2,ref_key:`sheetRef`,ref:it,class:`fixed inset-x-0 z-[16] rounded-t-xl overflow-hidden shadow-lg border-top-color card-background`,style:w({bottom:`calc(${B(f)}px + var(--safe-area-inset-bottom))`,transform:`translateY(${B(J)}px)`,transition:B(ot)?`none`:`transform 0.2s ease-in-out`})},[E(`div`,{class:`flex justify-center py-2 cursor-grab active:cursor-grabbing sheet-grip`,onPointerdown:zn},[...i[14]||=[E(`div`,{class:`w-10 h-1 rounded-full sheet-grip-bar`},null,-1)]],32),A(ce,{rooms:B(H),connections:B(U),cameras:B(W),sensors:B(G),levels:B(V),selection:B(q),"read-only":!B(X),fluid:``,class:`max-h-[55vh]`,onClose:i[8]||=e=>q.value=null,onUpdateRoom:Zt,onUpdateCamera:Qt,onUpdateSensor:en,onUpdateConnection:pn,onRemove:bn},null,8,[`rooms`,`connections`,`cameras`,`sensors`,`levels`,`selection`,`read-only`])],4)):z(``,!0),B(X)&&!B(tt)?(S(),M(ue,{key:3,model:B(At),direction:`up`,"transition-delay":80,"tooltip-options":{position:`left`,event:void 0},style:w({position:`fixed`,zIndex:15,bottom:`calc(${B(f)}px + ${B(bt)?`4.25rem`:`1.25rem`} + var(--safe-area-inset-bottom))`,right:B(Dt)||`calc(1.25rem + var(--safe-area-inset-right))`,transition:`right 0.2s ease-in-out, bottom 0.2s ease-in-out`}),pt:{root:{style:`pointer-events: none`}}},{button:_(({visible:e,toggleCallback:t})=>[A(o,{rounded:``,severity:`secondary`,class:`pointer-events-auto`,onClick:t},{icon:_(()=>[E(`div`,Fi,[E(`div`,{class:T([`absolute top-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full transform transition-all duration-100 origin-center`,{"w-4 h-[2px] rotate-45 top-1/2 -translate-y-1/2 rounded-none":e}]),style:{backgroundColor:`var(--text-color)`}},null,2),E(`div`,{class:T([`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-1.5 h-1.5 rounded-full transition-all duration-100`,{"opacity-0 scale-0":e}]),style:{backgroundColor:`var(--text-color)`}},null,2),E(`div`,{class:T([`absolute bottom-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full transform transition-all duration-100 origin-center`,{"w-4 h-[2px] -rotate-45 bottom-1/2 translate-y-1/2 rounded-none":e}]),style:{backgroundColor:`var(--text-color)`}},null,2)])]),_:2},1032,[`onClick`])]),item:_(({item:e,toggleCallback:t})=>[k((S(),M(o,y({severity:`secondary`},e.buttonProps,{rounded:``,class:`pointer-events-auto`,onClick:t}),{icon:_(()=>[(S(),M(x(e.icon)))]),_:2},1040,[`onClick`])),[[b,{value:e.label}]])]),_:1},8,[`model`,`style`])):z(``,!0),B(X)&&B(bt)?k((S(),M(o,{key:4,rounded:``,severity:`success`,class:`text-white`,loading:B(nt),style:w({position:`fixed`,zIndex:15,bottom:`calc(${B(f)}px + ${Math.max(B(at)-B(J),0)}px + 1.25rem + var(--safe-area-inset-bottom))`,right:B(Dt)||`calc(1.25rem + var(--safe-area-inset-right))`,transition:B(ot)?`right 0.2s ease-in-out`:`right 0.2s ease-in-out, bottom 0.2s ease-in-out`}),onClick:Nn},{icon:_(()=>[A(de,{class:`w-5 h-5`})]),_:1},8,[`loading`,`style`])),[[b,{value:r.$t(`views.floorplan.save`)}]]):z(``,!0),B(X)&&B(l)&&!B(tt)?k((S(),M(o,{key:5,rounded:``,class:`pointer-events-auto text-white`,style:w({position:`fixed`,zIndex:15,bottom:`calc(${B(f)}px + 1.25rem + var(--safe-area-inset-bottom))`,right:`calc(4.75rem + var(--safe-area-inset-right))`}),onClick:i[9]||=e=>et.value=!0},{icon:_(()=>[A(ie,{class:`w-5 h-5`})]),_:1},8,[`style`])),[[b,{value:r.$t(`views.floorplan.palette`)}]]):z(``,!0),A(fe,{modelValue:B(et),"onUpdate:modelValue":i[10]||=e=>Ce(et)?et.value=e:null,title:r.$t(`views.floorplan.palette`),"max-height":`70vh`},{default:_(()=>[A(ae,{cameras:B(Et),sensors:B(wt),rooms:B(Tt),disabled:!B(V).length,mode:`click`,onPick:Dn},null,8,[`cameras`,`sensors`,`rooms`,`disabled`])]),_:1},8,[`modelValue`,`title`]),E(`div`,{ref_key:`menuAnchorRef`,ref:we,class:`fixed w-0 h-0`,style:w({left:`${B(De).x}px`,top:`${B(De).y}px`})},null,4),E(`div`,{ref_key:`previewAnchorRef`,ref:Oe,class:`fixed w-0 h-0`,style:w({left:`${B(ke).x}px`,top:`${B(ke).y}px`})},null,4),E(`div`,{ref_key:`sensorAnchorRef`,ref:je,class:`fixed w-0 h-0`,style:w({left:`${B(Ne).x}px`,top:`${B(Ne).y}px`})},null,4),A(pe,{ref_key:`sensorPopoverRef`,ref:Pe,class:`shadow-lg cui-rounded-corner`,pt:{content:{class:`p-3`}}},{default:_(()=>[B($)?(S(),D(`div`,{key:0,class:`w-[220px] flex flex-col gap-3`,onPointerenter:on,onPointerleave:sn},[E(`div`,Ii,[E(`div`,Li,[(S(),M(x(B(_e)(B($).sensorType,tn(B($).id))),{class:`w-4 h-4`}))]),E(`div`,Ri,[E(`div`,zi,v(B($).name),1),B($).owner?(S(),D(`div`,Bi,v(B($).owner),1)):z(``,!0),E(`div`,Vi,v(B(ge)(B($).sensorType,tn(B($).id))),1)])]),B($).note?(S(),D(`div`,Hi,v(B($).note),1)):z(``,!0),B($).sensorType===`securitySystem`?(S(),D(`div`,Ui,[(S(),D(I,null,C(Y,e=>A(o,{key:e.value,severity:`secondary`,outlined:B(se)(tn(B($).id))!==e.value,size:`small`,class:`cui-button-medium`,label:r.$t(e.labelKey),onClick:t=>an(B($).id,e.value)},null,8,[`outlined`,`label`,`onClick`])),64))])):nn(B($).sensorType)?(S(),M(o,{key:2,severity:`secondary`,size:`small`,class:`cui-button-medium`,label:r.$t(`views.floorplan.sensor_toggle`),onClick:i[11]||=e=>rn(B($).id)},null,8,[`label`])):z(``,!0)],32)):z(``,!0)]),_:1},512),A(pe,{ref_key:`previewRef`,ref:Ae,class:`shadow-lg cui-rounded-corner overflow-hidden`,pt:{content:{class:`p-0`}}},{default:_(()=>[E(`div`,{class:`w-[280px] flex flex-col`,onPointerenter:un,onPointerleave:dn},[E(`div`,Wi,[B(Z)?(S(),M(me,{key:0,"camera-info":B(Z),"source-role":`low-resolution`,"streaming-mode":`auto`,toolbar:!1,control:!1,subcontrol:!1,"isolated-stream":!0,"live-indicator-overlay":``,class:`w-full`,"flat-card":``},null,8,[`camera-info`])):z(``,!0)]),B(Z)?(S(),D(`div`,Gi,[E(`span`,Ki,v(B(Z).name),1),k((S(),M(o,{severity:`secondary`,text:``,class:`cui-button p-1.5`,onClick:i[12]||=e=>r.$router.push(`/cameras/${B(Z).name}`)},{icon:_(()=>[A(he,{class:`w-4 h-4`})]),_:1})),[[b,{value:r.$t(`views.floorplan.open_camera`)},void 0,{top:!0}]])])):z(``,!0)],32)]),_:1},512),A(g,{ref_key:`stairsMenuRef`,ref:P,items:B(jt),"max-height":`320px`,popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`]),A(g,{ref_key:`levelMenuRef`,ref:Se,items:B(kt),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}}),[[`__scopeId`,`data-v-e56f8b21`]]);export{Yi as default};
|