@camera.ui/server 2.2.8 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +8 -1
- package/dist/interface/assets/{404-BYV0u5qE.js → 404-C0X5UBF4.js} +1 -1
- package/dist/interface/assets/About-Ctp_u5qK.js +1 -0
- package/dist/interface/assets/Assistant-Bj2bAUHD.css +1 -0
- package/dist/interface/assets/Assistant-CDrBV_mg.js +1 -0
- package/dist/interface/assets/Automation-Dp6V80Iz.js +3 -0
- package/dist/interface/assets/{Automation-BSicfOGF.css → Automation-R5o9sXYY.css} +1 -1
- package/dist/interface/assets/{AutomationImport-Iu-K82Os.js → AutomationImport-DKgg7atE.js} +2 -2
- package/dist/interface/assets/AutomationStore-CU-m5VC8.js +2 -0
- package/dist/interface/assets/{AutomationStoreDetail-BbvLRJ5u.js → AutomationStoreDetail-CiyIs8Iu.js} +2 -2
- package/dist/interface/assets/Automations-Dljh-sWu.js +2 -0
- package/dist/interface/assets/Camera-0p0P_mbp.css +1 -0
- package/dist/interface/assets/Camera-Bvovab-8.js +2 -0
- package/dist/interface/assets/{CameraConsole-JBD3ZmJ6.js → CameraConsole-D_Fv-MAi.js} +1 -1
- package/dist/interface/assets/{Cameras-R5mJGMK9.js → Cameras-Cq7Gw-fk.js} +2 -2
- package/dist/interface/assets/{Camview-DH6_8CxH.css → Camview-Bs2VvmUS.css} +1 -1
- package/dist/interface/assets/Camview-CP6PA20C.js +1 -0
- package/dist/interface/assets/{CertificateUpload-B9S4EOQs.js → CertificateUpload-DjzNMFc3.js} +1 -1
- package/dist/interface/assets/{Config-CbFl5Wcp.js → Config-Dl2TlyFe.js} +1 -1
- package/dist/interface/assets/{ConfigActionAssistant-DIOh6-np.js → ConfigActionAssistant-DCkJ_Iqq.js} +1 -1
- package/dist/interface/assets/ConfigActionCameraControl-2pzl59gR.js +1 -0
- package/dist/interface/assets/{ConfigActionDelay-B9i4YZjy.js → ConfigActionDelay-BAp1dr0N.js} +1 -1
- package/dist/interface/assets/{ConfigActionHttp-DFtxAa3U.js → ConfigActionHttp-_kqgEuun.js} +1 -1
- package/dist/interface/assets/{ConfigActionImageInput-CuTH4Nw2.js → ConfigActionImageInput-BgtACnCm.js} +1 -1
- package/dist/interface/assets/{ConfigActionMqtt-B9SfWP-G.js → ConfigActionMqtt-z7UzccW5.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-BGMIByJT.js → ConfigActionNotification-bhbb5AqU.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotificationControl-Cz72szMd.js → ConfigActionNotificationControl-BbvX8MFu.js} +1 -1
- package/dist/interface/assets/{ConfigActionOutput-BG6DoIRe.js → ConfigActionOutput-DdgSg3FU.js} +1 -1
- package/dist/interface/assets/{ConfigActionPlugin-B5oRSE9n.js → ConfigActionPlugin-DGjZd1L0.js} +1 -1
- package/dist/interface/assets/ConfigActionSensor-DmImWFAo.js +1 -0
- package/dist/interface/assets/{ConfigActionSnapshot-Di-uxMrg.js → ConfigActionSnapshot-hVHSfdtS.js} +1 -1
- package/dist/interface/assets/{ConfigActionVariable-BBpUti5A.js → ConfigActionVariable-BIpruwsx.js} +1 -1
- package/dist/interface/assets/{ConfigConditionIfElse-DjOKPXQw.js → ConfigConditionIfElse-DRSpsoR4.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSensorState-BzvvZvD0.js → ConfigConditionSensorState-C2SNARH7.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSwitch-DQvdfUxR.js → ConfigConditionSwitch-4SbQcU7N.js} +1 -1
- package/dist/interface/assets/{ConfigConditionTime-BqOElX5C.js → ConfigConditionTime-ESX3shbg.js} +1 -1
- package/dist/interface/assets/{ConfigSensorValueInput-BT-0LhSH.js → ConfigSensorValueInput-CTUdAA-R.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerDetection-1OkudUah.js → ConfigTriggerDetection-BRr6ixxQ.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerGeofence-HGatk3C5.js → ConfigTriggerGeofence-D-xRMGrT.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerManual-DpRr_vVq.js → ConfigTriggerManual-aXD6k1qa.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerMqtt-C_MId3BY.js → ConfigTriggerMqtt-pjHW4yOL.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSchedule-BmwDqd6N.js → ConfigTriggerSchedule-CYOt57qg.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-Rgx8q4g8.js → ConfigTriggerSensor-BwJ_cAqd.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-4VsHPmbn.js → ConfigTriggerSystem-DBXIrjzU.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerWebhook-Bs7zEfY0.js → ConfigTriggerWebhook-CccBmMCb.js} +1 -1
- package/dist/interface/assets/Console-DWAaz1C6.js +1 -0
- package/dist/interface/assets/CuiAssistantConversation-B3xEiNNt.js +5 -0
- package/dist/interface/assets/{CuiAssistantConversation-BmBhwrNh.css → CuiAssistantConversation-C5ca1lgX.css} +1 -1
- package/dist/interface/assets/CuiAutomationRunsDialog-CfylVPLI.js +1 -0
- package/dist/interface/assets/CuiBottomSheet-ACN23VLS.js +1 -0
- package/dist/interface/assets/{CuiBottomSheet-Dd3uOtnC.js → CuiBottomSheet-DEVNeDqa.js} +1 -1
- package/dist/interface/assets/CuiCameraPipCard-rR_FW9zq.js +1 -0
- package/dist/interface/assets/CuiCameraRecordings-CnorhPhf.js +1 -0
- package/dist/interface/assets/CuiCameraShares-BxUgedC_.js +1 -0
- package/dist/interface/assets/{CuiCameraTable-C7WLZ2pA.js → CuiCameraTable-C3GB4Q2y.js} +2 -2
- package/dist/interface/assets/CuiCameraTable-MHfnZSyK.js +1 -0
- package/dist/interface/assets/CuiChartTable-TAzZgetO.js +1 -0
- package/dist/interface/assets/{CuiConsole-CkZML0iY.js → CuiConsole-Cf5lOCE1.js} +2 -2
- package/dist/interface/assets/{CuiDataTable-BFIhx1D3.js → CuiDataTable-DfjXa0C1.js} +1 -1
- package/dist/interface/assets/CuiLightControl-ChK-SvJp.js +1 -0
- package/dist/interface/assets/CuiList-C4fxd9lD.js +1 -0
- package/dist/interface/assets/CuiPluginCard-DMpANIQj.js +2 -0
- package/dist/interface/assets/CuiPluginCategoryChip-BKxJMid7.js +1 -0
- package/dist/interface/assets/{CuiPluginOAuthButton-BQZkTcgo.js → CuiPluginOAuthButton-DnQ838JJ.js} +2 -2
- package/dist/interface/assets/{CuiPluginTrustBadge-DbqdfdaL.js → CuiPluginTrustBadge-DyYDUWV6.js} +1 -1
- package/dist/interface/assets/{CuiQRCode-2WsWJQFi.js → CuiQRCode-S9fPi0_l.js} +1 -1
- package/dist/interface/assets/CuiSchema-DScmDQsh.js +1 -0
- package/dist/interface/assets/CuiTopNavbarItem-CT10aAlO.js +1 -0
- package/dist/interface/assets/Faces-Coy-tUVM.js +1 -0
- package/dist/interface/assets/FirstSteps-CrMJC049.js +1 -0
- package/dist/interface/assets/Floorplan-Bj_mVrxp.js +1 -0
- package/dist/interface/assets/{Floorplan-Ci63Zd8W.css → Floorplan-CT5TrMSD.css} +1 -1
- package/dist/interface/assets/Instances-B_mpKAng.js +1 -0
- package/dist/interface/assets/{Logs-DMehPk0t.js → Logs-fY1dpQk4.js} +2 -2
- package/dist/interface/assets/Menu-Bgi-NLdg.js +1 -0
- package/dist/interface/assets/Metrics-DnMeIrkf.css +1 -0
- package/dist/interface/assets/Metrics-k9KACiwh.js +12 -0
- package/dist/interface/assets/OAuthDeviceFlow-xTh83xmc.js +1 -0
- package/dist/interface/assets/Plugin-BB7x7UHw.css +1 -0
- package/dist/interface/assets/Plugin-VWq7sONB.js +1 -0
- package/dist/interface/assets/{PluginConsole-D1BRQCO9.js → PluginConsole-LnnDOVBL.js} +2 -2
- package/dist/interface/assets/PluginDetail-CKD9sbDx.js +2 -0
- package/dist/interface/assets/{PluginSchema-B9VsBHOU.js → PluginSchema-BnB0_6Sk.js} +1 -1
- package/dist/interface/assets/PluginSearch-BoBZLLbr.js +1 -0
- package/dist/interface/assets/PluginSearch-kGhweU1J.js +2 -0
- package/dist/interface/assets/{PluginUpdateProgress-uj0XPV-_.js → PluginUpdateProgress-DMx0QlgE.js} +1 -1
- package/dist/interface/assets/{Plugins-CPx9Hszm.js → Plugins-Ekmr6aVa.js} +1 -1
- package/dist/interface/assets/RecentEventsFilter-StLJNuks.js +1 -0
- package/dist/interface/assets/Recordings-8PqxJOI3.css +1 -0
- package/dist/interface/assets/Recordings-Bvkuk_TV.js +1 -0
- package/dist/interface/assets/SensorEdit-CAf9Nb01.js +1 -0
- package/dist/interface/assets/SensorHistory-il8bDErX.js +1 -0
- package/dist/interface/assets/Sensors-sxQ6HLKo.js +2 -0
- package/dist/interface/assets/Settings-Bu0G7Ebx.js +1 -0
- package/dist/interface/assets/{Settings-D7495zbV.css → Settings-DtCSaLPb.css} +1 -1
- package/dist/interface/assets/SettingsAccount-8OZJLQi-.js +1 -0
- package/dist/interface/assets/SettingsAccount-bSfFi9YH.js +1 -0
- package/dist/interface/assets/SettingsAppearance-CnvN_Tzr.js +1 -0
- package/dist/interface/assets/SettingsAppearance-EvPWgF4c.js +1 -0
- package/dist/interface/assets/SettingsAssistant-B6s6pHCx.js +1 -0
- package/dist/interface/assets/SettingsBackup-Dd2FaUcN.js +1 -0
- package/dist/interface/assets/SettingsList-SvCO_gfG.js +1 -0
- package/dist/interface/assets/SettingsMqtt-BXBzHX84.js +1 -0
- package/dist/interface/assets/SettingsNotifications-CV-jJwFV.js +1 -0
- package/dist/interface/assets/SettingsPermissions-GchFaWjz.js +1 -0
- package/dist/interface/assets/SettingsRecordings-C4Ch_jmV.js +1 -0
- package/dist/interface/assets/SettingsRemote-OZHDJKSq.js +2 -0
- package/dist/interface/assets/SettingsSystem-BJlHXwVs.js +2 -0
- package/dist/interface/assets/SettingsUsers-RGOkOzx0.js +1 -0
- package/dist/interface/assets/Terminal-DX-ECC91.js +4 -0
- package/dist/interface/assets/Training-B8my7vka.js +1 -0
- package/dist/interface/assets/Training-D1DDjCCD.css +1 -0
- package/dist/interface/assets/Updates-DmavyhAn.js +2 -0
- package/dist/interface/assets/{VariableInput-CcILik4M.js → VariableInput-DQJle67Y.js} +1 -1
- package/dist/interface/assets/{VariableSuggestions-Bj0HdrYW.js → VariableSuggestions-D8V739dF.js} +1 -1
- package/dist/interface/assets/{VersionsHandler-BA8Lcysg.js → VersionsHandler-B41TJhgY.js} +1 -1
- package/dist/interface/assets/{VirtualSensorCreate-DvHyw7I2.js → VirtualSensorCreate-MfLh-LpH.js} +1 -1
- package/dist/interface/assets/Workers-CafDeRhH.js +2 -0
- package/dist/interface/assets/api-By0v6EeA.css +2 -0
- package/dist/interface/assets/api-D1iULsSy.js +4 -0
- package/dist/interface/assets/{api-CKbL5jC7.js → api-DbUdfXO_.js} +1 -1
- package/dist/interface/assets/{assistant-CwmHp5bB.js → assistant-7hqP6OpA.js} +1 -1
- package/dist/interface/assets/{auth-AfZrkJ2f.js → auth-CDxrn7fe.js} +1 -1
- package/dist/interface/assets/{automations-DOCG0q8-.js → automations-CTTQlGCW.js} +1 -1
- package/dist/interface/assets/{cameraSources-mHEz9ROa.js → cameraSources-MOiE_1-W.js} +1 -1
- package/dist/interface/assets/cloudHandoff-CJzFH7CW.js +1 -0
- package/dist/interface/assets/{config-AG0SnOiY.js → config-6EiGxiYm.js} +1 -1
- package/dist/interface/assets/eventLabels-idFWh3Y_.js +1 -0
- package/dist/interface/assets/{flowSchema-B0d3VjU7.js → flowSchema-Dp_-p9WA.js} +1 -1
- package/dist/interface/assets/{intercomService-DG3EeZ6s.js → intercomService-BQYzjnAi.js} +1 -1
- package/dist/interface/assets/main-0oXl_8v7.js +3 -0
- package/dist/interface/assets/main-CdvAniEp.css +1 -0
- package/dist/interface/assets/mqtt-ChvXxMhR.js +1 -0
- package/dist/interface/assets/{notifications-8FH4ApEz.js → notifications-CbL-1oMs.js} +1 -1
- package/dist/interface/assets/{plugins-2JLUEMYc.js → plugins-lsoAntRQ.js} +1 -1
- package/dist/interface/assets/{rooms-DoAfzA8W.js → rooms-P8WrRIco.js} +1 -1
- package/dist/interface/assets/sensorIcons-BRTtoaHX.js +1 -0
- package/dist/interface/assets/{sensorSlots-biaL-O8E.js → sensorSlots-BTj-IM7z.js} +1 -1
- package/dist/interface/assets/{sensors-DyAMdS-H.js → sensors-Dxc7HgjZ.js} +1 -1
- package/dist/interface/assets/{server-BDRUGj61.js → server-DlK8gUoE.js} +1 -1
- package/dist/interface/assets/{theme-CLxrnR60.js → theme-BOppzzar.js} +1 -1
- package/dist/interface/assets/types-CeruGCb8.js +1 -0
- package/dist/interface/assets/{types-8JXzkoC8.js → types-J1Drrxo1.js} +1 -1
- package/dist/interface/assets/types-U4AuTNLR.js +1 -0
- package/dist/interface/assets/ungrouped-ING_JAuK.js +1 -0
- package/dist/interface/assets/{updates-F-veEP1I.js → updates-DtVp84Y0.js} +1 -1
- package/dist/interface/assets/{useAppVersion-BjUQmB7M.js → useAppVersion-BGgCk5GD.js} +1 -1
- package/dist/interface/assets/{useAssistantActions-CNEJol4o.js → useAssistantActions-C13O5EHU.js} +1 -1
- package/dist/interface/assets/useBackupRestore-vrhmc9i-.js +1 -0
- package/dist/interface/assets/{useCameraOptions-D_oduve2.js → useCameraOptions-CI1baRmm.js} +1 -1
- package/dist/interface/assets/{useKeyboardInset-CPWSVYlA.js → useKeyboardInset-CvgJp091.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-B_jXUqv8.js → useLogsSocket-Bf0BI8ET.js} +1 -1
- package/dist/interface/assets/{useNavLayout-DEngIIeU.js → useNavLayout-6zM1Y-7B.js} +1 -1
- package/dist/interface/assets/{usePermissions-DAO92InI.js → usePermissions-DZitFsBQ.js} +1 -1
- package/dist/interface/assets/{usePluginUpdates-CJi8Y_wl.js → usePluginUpdates-VZdpJ_Ax.js} +1 -1
- package/dist/interface/assets/{usePushRegistration-j9WCeFbv.js → usePushRegistration-vcbMrTxZ.js} +1 -1
- package/dist/interface/assets/{useServerRestart-BVks5tuC.js → useServerRestart-DrpuNbIu.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-DQ0NSyU8.js → useStreamStatus-l3Pfk1H4.js} +1 -1
- package/dist/interface/assets/{useTabSwipe-CVq7EcIY.js → useTabSwipe-BSpi25WV.js} +1 -1
- package/dist/interface/assets/{useUpdateChannel-C0fjDvNP.js → useUpdateChannel-kAl-5UNY.js} +1 -1
- package/dist/interface/assets/{useUpdatesSocket-DXKF9hzc.js → useUpdatesSocket-CaFz_fEb.js} +1 -1
- package/dist/interface/assets/{useUserOptions-UjMeAL5n.js → useUserOptions-BKteXnmU.js} +1 -1
- package/dist/interface/assets/vendor-cameraui-K1Nw4PvF.js +2326 -0
- package/dist/interface/assets/vendor-core-CJdfpB0I.js +1 -0
- package/dist/interface/assets/{vendor-primevue-Zx6t06A4.js → vendor-primevue-DoA2Rwcb.js} +871 -871
- package/dist/interface/assets/walk-B8FNhXuj.js +1 -0
- package/dist/interface/ha/{404-D5gfy0Cd.js → 404-RtgPpD9N.js} +1 -1
- package/dist/interface/ha/{About-JzlpCzBN.js → About-0PRv9bU0.js} +4 -4
- package/dist/interface/ha/{Assistant-DgOfGesf.js → Assistant-DbwxVfpl.js} +1021 -1021
- package/dist/interface/ha/{Automation-BDaWYiBu.js → Automation-D3HomdH7.js} +159 -155
- package/dist/interface/ha/{AutomationImport-BNB_PJ9R.js → AutomationImport-nQUUvZcv.js} +6 -6
- package/dist/interface/ha/{AutomationStore-_TeOt1wz.js → AutomationStore-BXDD92wZ.js} +8 -8
- package/dist/interface/ha/{AutomationStoreDetail-jjIEZoRi.js → AutomationStoreDetail-BYeq7FID.js} +19 -19
- package/dist/interface/ha/{Automations-DM6FEVOw.js → Automations-CJlGqmSP.js} +74 -74
- package/dist/interface/ha/Camera-Ai4BxVh_.js +747 -0
- package/dist/interface/ha/{CameraConsole-BoVql05l.js → CameraConsole-UMNOX3dE.js} +4 -4
- package/dist/interface/ha/{Cameras-cQBGvXq7.js → Cameras-BW-AEXYi.js} +266 -266
- package/dist/interface/ha/{Camview-mkG5FXZM.js → Camview-jikpVEE0.js} +195 -194
- package/dist/interface/ha/{Config-BNPDzo_h.js → Config-BOxwBH2D.js} +111 -111
- package/dist/interface/ha/{ConfigActionAssistant-C-8P3DYz.js → ConfigActionAssistant--3iWk9sq.js} +4 -4
- package/dist/interface/ha/{ConfigActionCameraControl-x1ksGL7m.js → ConfigActionCameraControl-DbVXWTeA.js} +3 -3
- package/dist/interface/ha/{ConfigActionHttp-DzCJp85z.js → ConfigActionHttp-Du3n2Yj0.js} +2 -2
- package/dist/interface/ha/{ConfigActionImageInput-C5C5U_2z.js → ConfigActionImageInput-BrJrTZTY.js} +4 -4
- package/dist/interface/ha/{ConfigActionMqtt-T29xb75r.js → ConfigActionMqtt-DZd1BNUt.js} +4 -4
- package/dist/interface/ha/{ConfigActionNotification-BcnyilF9.js → ConfigActionNotification-CJWW10gt.js} +3 -3
- package/dist/interface/ha/{ConfigActionNotificationControl-D3wIVKuU.js → ConfigActionNotificationControl-Bl41AVv1.js} +2 -2
- package/dist/interface/ha/{ConfigActionOutput-hD-yVczw.js → ConfigActionOutput-OTj7Lwgq.js} +1 -1
- package/dist/interface/ha/{ConfigActionPlugin-Bz1O-O4Q.js → ConfigActionPlugin-B790PEk0.js} +8 -8
- package/dist/interface/ha/{ConfigActionSensor-FOz-PYl_.js → ConfigActionSensor-BG3jZxge.js} +5 -5
- package/dist/interface/ha/{ConfigActionSnapshot-CmxEOuK1.js → ConfigActionSnapshot-fGmLl6jb.js} +2 -2
- package/dist/interface/ha/{ConfigActionVariable-BCvkrdCh.js → ConfigActionVariable-CK3vYDsr.js} +1 -1
- package/dist/interface/ha/{ConfigConditionIfElse-icfTG9OA.js → ConfigConditionIfElse-DyFLGg3y.js} +3 -3
- package/dist/interface/ha/{ConfigConditionSensorState-ClUAsm0d.js → ConfigConditionSensorState-BUTfeFO2.js} +7 -7
- package/dist/interface/ha/{ConfigConditionSwitch-C8AMCkn6.js → ConfigConditionSwitch-iDG_ubif.js} +5 -5
- package/dist/interface/ha/{ConfigSensorValueInput-ChvDQzGd.js → ConfigSensorValueInput-BmRIGUKB.js} +5 -5
- package/dist/interface/ha/{ConfigTriggerDetection-aUSyaClu.js → ConfigTriggerDetection-DyPQGt9M.js} +24 -24
- package/dist/interface/ha/{ConfigTriggerGeofence-DsJeJWP4.js → ConfigTriggerGeofence-CGE-bH_t.js} +6 -6
- package/dist/interface/ha/{ConfigTriggerMqtt-CsAxA7QZ.js → ConfigTriggerMqtt-CM3KZqBc.js} +1 -1
- package/dist/interface/ha/{ConfigTriggerSensor-CTxr9cfU.js → ConfigTriggerSensor-DoHMcwP4.js} +1 -1
- package/dist/interface/ha/{ConfigTriggerSystem-C8UEfpfs.js → ConfigTriggerSystem-BYKbW4Zr.js} +2 -2
- package/dist/interface/ha/{ConfigTriggerWebhook-frEE-SCB.js → ConfigTriggerWebhook-5PBAadG8.js} +2 -2
- package/dist/interface/ha/{Console-A3VtbsLg.js → Console-BEXzl4p1.js} +7 -7
- package/dist/interface/ha/{CuiAutomationRunsDialog-BlJvhBiX.js → CuiAutomationRunsDialog-DkK_ar5G.js} +3 -3
- package/dist/interface/ha/{CuiBottomSheet-Cu-t3H0Z.js → CuiBottomSheet-CYNvQV4T.js} +2 -2
- package/dist/interface/ha/{CuiCameraRecordings-R5ArEmqJ.js → CuiCameraRecordings-DYjecmE_.js} +30 -48
- package/dist/interface/ha/{CuiCameraShares-B9pfRkM4.js → CuiCameraShares-C0H60nZS.js} +7 -7
- package/dist/interface/ha/{CuiCameraTable-CKjGKaMC.js → CuiCameraTable-CQNMyBaq.js} +5 -5
- package/dist/interface/ha/{CuiChartTable-BxWjRe-k.js → CuiChartTable-Bhv1p9zj.js} +1161 -1161
- package/dist/interface/ha/{CuiConsole-C5fzsR7t.js → CuiConsole-DtXorGF5.js} +20 -20
- package/dist/interface/ha/{CuiDataTable-BOdQDY8J.js → CuiDataTable-Cy8EjCk9.js} +7 -7
- package/dist/interface/ha/{CuiList-CU2NJ1K6.js → CuiList-DnW6Q5m2.js} +1 -1
- package/dist/interface/ha/{CuiPluginCard-BT71RRAD.js → CuiPluginCard-B4SCUblV.js} +125 -125
- package/dist/interface/ha/{CuiPluginOAuthButton-moh9uS7G.js → CuiPluginOAuthButton-BKg9SftQ.js} +5 -5
- package/dist/interface/ha/{CuiPluginTrustBadge-F_pVWkPJ.js → CuiPluginTrustBadge-CEtUJhCJ.js} +1 -1
- package/dist/interface/ha/{CuiQRCode-BNuj-nJ4.js → CuiQRCode-gp-9hqyk.js} +7 -7
- package/dist/interface/ha/{CuiSchema-Cb_8Ks-I.js → CuiSchema-CYpr_dD7.js} +161 -161
- package/dist/interface/ha/{CuiTopNavbarItem-BGzrrTls.js → CuiTopNavbarItem-CM-1oPxf.js} +1 -1
- package/dist/interface/ha/Faces-pa60ySng.js +1575 -0
- package/dist/interface/ha/{FirstSteps-BFX0-EEi.js → FirstSteps-D42yZm7R.js} +68 -68
- package/dist/interface/ha/{Floorplan-D6MGqSJT.js → Floorplan-BvE546pE.js} +512 -511
- package/dist/interface/ha/{Instances-CHzIUyyA.js → Instances-CAGCyfbB.js} +64 -64
- package/dist/interface/ha/{Logs-DZKM3dWv.js → Logs-RB3Ba8WM.js} +12 -12
- package/dist/interface/ha/{Menu-BQz4dfQi.js → Menu-hAnHu_jq.js} +17 -17
- package/dist/interface/ha/{Metrics-CdpWJ1mm.js → Metrics-ChYTebkX.js} +94 -93
- package/dist/interface/ha/{OAuthDeviceFlow-DUELtx3X.js → OAuthDeviceFlow-C05pH-9o.js} +3 -3
- package/dist/interface/ha/{Plugin-5bbTF0Rv.js → Plugin-D7XwcXkW.js} +647 -439
- package/dist/interface/ha/{PluginConsole-C__0lzsS.js → PluginConsole-DphEIOlL.js} +4 -4
- package/dist/interface/ha/{PluginDetail-Blrktk9W.js → PluginDetail-DfMl-yCl.js} +9 -9
- package/dist/interface/ha/{PluginSearch-BKbdwHQ1.js → PluginSearch-BPN4Opg5.js} +34 -34
- package/dist/interface/ha/{PluginUpdateProgress-IsNiecu3.js → PluginUpdateProgress-ByJ0R5sW.js} +3 -3
- package/dist/interface/ha/{Plugins-CC2Dwlx5.js → Plugins-BhKmjjNn.js} +59 -59
- package/dist/interface/ha/{RecentEventsFilter-9ZkDHD1g.js → RecentEventsFilter-BkLMlGVJ.js} +5 -6
- package/dist/interface/ha/Recordings-BaU7M1OW.js +1836 -0
- package/dist/interface/ha/{SensorEdit-Bi2Yx_ji.js → SensorEdit-DWxcCJ0F.js} +88 -88
- package/dist/interface/ha/{SensorHistory-sqG_6eav.js → SensorHistory-DuA9E9wT.js} +2 -2
- package/dist/interface/ha/{Sensors-DLtOh1p4.js → Sensors-CVpIHcgG.js} +438 -435
- package/dist/interface/ha/{Settings-DI3_zenm.js → Settings-BO2eBGEn.js} +61 -61
- package/dist/interface/ha/{SettingsAccount-pS86Qyr-.js → SettingsAccount-BQZZfoSM.js} +255 -255
- package/dist/interface/ha/{SettingsAppearance-tS3bubKQ.js → SettingsAppearance-B_yGl89u.js} +16 -16
- package/dist/interface/ha/{SettingsAssistant-LejCRXsF.js → SettingsAssistant-kMOixl9g.js} +501 -501
- package/dist/interface/ha/{SettingsBackup-CkhD1Kze.js → SettingsBackup-BpG-W4j-.js} +24 -24
- package/dist/interface/ha/{SettingsList-bibwvPSM.js → SettingsList-Btnkzu94.js} +6 -6
- package/dist/interface/ha/{SettingsMqtt-DSt0B4Qg.js → SettingsMqtt-C4DX9cNC.js} +23 -23
- package/dist/interface/ha/{SettingsNotifications-BF7ajNwE.js → SettingsNotifications-DI6ImggH.js} +6 -6
- package/dist/interface/ha/{SettingsPermissions-Jh0FuIF7.js → SettingsPermissions-BCDyCFcb.js} +2 -2
- package/dist/interface/ha/{SettingsRecordings-BTIdncxg.js → SettingsRecordings-Bq5NkJhd.js} +10 -10
- package/dist/interface/ha/{SettingsRemote-Cba4P1-O.js → SettingsRemote-CtncaPIA.js} +308 -308
- package/dist/interface/ha/{SettingsSystem-_Nnh2ZF5.js → SettingsSystem-BJXuA7xA.js} +11 -11
- package/dist/interface/ha/{SettingsUsers-BfHFoxJi.js → SettingsUsers-BF0rDluv.js} +91 -91
- package/dist/interface/ha/{Terminal-Dv_7oWmS.js → Terminal-kTCe2jP3.js} +11 -11
- package/dist/interface/ha/Training-BM2Xb8Ef.js +1754 -0
- package/dist/interface/ha/{Updates-BHl5H7zE.js → Updates-Cv1EY_T0.js} +6 -6
- package/dist/interface/ha/{VariableInput-DtLo7-Nw.js → VariableInput-BO2zZu4N.js} +1 -1
- package/dist/interface/ha/{VersionsHandler-CF0DSeol.js → VersionsHandler-CRnT9-K7.js} +10 -10
- package/dist/interface/ha/{VirtualSensorCreate-C907EgIz.js → VirtualSensorCreate-6dVRxPjw.js} +8 -8
- package/dist/interface/ha/{Workers-Dz1d9gEQ.js → Workers-MHia86lu.js} +97 -97
- package/dist/interface/ha/{api-DUqpDJ2N.js → api-CH_Y8Hee.js} +17459 -14633
- package/dist/interface/ha/{api-gId1nlMj.js → api-DylRa66V.js} +3 -3
- package/dist/interface/ha/{assistant-BaR65gIY.js → assistant-smRQYA6p.js} +53 -53
- package/dist/interface/ha/{auth-Btsz_KxO.js → auth-BXj5Fm6s.js} +38 -38
- package/dist/interface/ha/{automationBlueprint-CuO3iOiM.js → automationBlueprint-DGjftXFC.js} +4 -4
- package/dist/interface/ha/cameraui-cards.js +1 -1
- package/dist/interface/ha/{cards-DWhezIPP.js → cards-E0zw1UVg.js} +114 -113
- package/dist/interface/ha/{config-BKStpoEQ.js → config-dG_DA6XL.js} +16 -16
- package/dist/interface/ha/{dist-CM7R4_Gj.js → dist-BQf9ANPx.js} +77 -77
- package/dist/interface/ha/{dist-BIngHzHx.js → dist-euRmladF.js} +4 -4
- package/dist/interface/ha/{eventIcons-BFNUgeGr.js → eventLabels-B5GrM5jO.js} +291 -233
- package/dist/interface/ha/{intercomService-B7HkLs6z.js → intercomService-BtJ_zUNd.js} +250 -264
- package/dist/interface/ha/{mqtt-ajcSmTB-.js → mqtt-CP3vVkRJ.js} +12 -12
- package/dist/interface/ha/{notifications-Cf9dXHEO.js → notifications-CZNwSXTg.js} +22 -22
- package/dist/interface/ha/{pinia-DIKO5lnE.js → pinia-CVnHHb-s.js} +533 -501
- package/dist/interface/ha/{plugins-ml823dJV.js → plugins--eatOIaI.js} +66 -66
- package/dist/interface/ha/{protocol-BB4jdtUC-DW3jl2tV.js → protocol-BB4jdtUC-BhEwymva.js} +129 -48
- package/dist/interface/ha/{rooms-C5gUErBi.js → rooms-D5E6K75d.js} +8 -8
- package/dist/interface/ha/{server-dArenpJI.js → server-D1BqEY7i.js} +31 -31
- package/dist/interface/ha/{types-DYymuACA.js → types-CWogEoya.js} +36 -36
- package/dist/interface/ha/ungrouped-Ch4UX4dy.js +58 -0
- package/dist/interface/ha/{updates-D5sFzGtC.js → updates-B48Owi1w.js} +28 -28
- package/dist/interface/ha/{useAppVersion-C5x3Ap4_.js → useAppVersion-D95sKTJR.js} +2 -2
- package/dist/interface/ha/{useAssistantActions-S1FrNe9b.js → useAssistantActions-kDwiO-u5.js} +1 -1
- package/dist/interface/ha/{useKeyboardInset-Cj0T2AFX.js → useKeyboardInset-C2R51vsC.js} +1 -1
- package/dist/interface/ha/{useLogsSocket-DtvfQlPh.js → useLogsSocket-BzNWa2y2.js} +1 -1
- package/dist/interface/ha/{useNavLayout-HSFBA4JV.js → useNavLayout-228cwwqA.js} +19 -19
- package/dist/interface/ha/{usePermissions-DaE_wFch.js → usePermissions-CfA5x7Df.js} +1 -1
- package/dist/interface/ha/{useServerRestart-Ci0SppGW.js → useServerRestart-B0c40zs5.js} +1 -1
- package/dist/interface/ha/{useTabSwipe-CPKkRmaH.js → useTabSwipe-CfZg5hWj.js} +2 -2
- package/dist/interface/ha/{useUpdateChannel-CXHHovK3.js → useUpdateChannel-DQxI7FrD.js} +2 -2
- package/dist/interface/ha/{useUpdatesSocket-DVST2YXV.js → useUpdatesSocket-B8LqBBd3.js} +1 -1
- package/dist/interface/ha/{useUserOptions-BYcYI6QA.js → useUserOptions-dZf6ejlz.js} +1 -1
- package/dist/interface/ha/walk-CsSXaeJw.js +33 -0
- package/dist/interface/index.html +35 -36
- package/dist/interface/sw.js +1 -1
- package/dist/interface/workbox-5f52ac45.js +1 -0
- package/dist/server/package.json +11 -11
- package/dist/server/requirements.txt +2 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +22 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +4 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +10 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +6 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +92 -4
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +16 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +4 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face_embedder.py +1 -1
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/object.py +3 -3
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/person_embedder.py +65 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/segmenter.py +81 -0
- package/dist/server/src/api/database/index.d.ts +2 -1
- package/dist/server/src/api/database/index.js +31 -7
- package/dist/server/src/api/database/index.js.map +1 -1
- package/dist/server/src/api/database/migrations/v2-2-9.d.ts +3 -0
- package/dist/server/src/api/database/migrations/v2-2-9.js +28 -0
- package/dist/server/src/api/database/migrations/v2-2-9.js.map +1 -0
- package/dist/server/src/api/database/record-schemas.d.ts +1 -1
- package/dist/server/src/api/database/types.d.ts +17 -1
- package/dist/server/src/api/schemas/assistant.schema.d.ts +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +140 -76
- package/dist/server/src/api/schemas/cameras.schema.js +4 -2
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/schemas/training.schema.d.ts +15 -3
- package/dist/server/src/api/schemas/training.schema.js +4 -1
- package/dist/server/src/api/schemas/training.schema.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/worker-perf.js +2 -0
- package/dist/server/src/api/websocket/nsp/worker-perf.js.map +1 -1
- package/dist/server/src/api/websocket/types.d.ts +1 -0
- package/dist/server/src/assistant/search.d.ts +17 -0
- package/dist/server/src/assistant/search.js +10 -2
- package/dist/server/src/assistant/search.js.map +1 -1
- package/dist/server/src/assistant/tools/plugins.js +7 -3
- package/dist/server/src/assistant/tools/plugins.js.map +1 -1
- package/dist/server/src/assistant/types.d.ts +2 -0
- package/dist/server/src/automations/actions/plugin.js +5 -9
- package/dist/server/src/automations/actions/plugin.js.map +1 -1
- package/dist/server/src/automations/pluginMethodRegistry.d.ts +6 -0
- package/dist/server/src/automations/pluginMethodRegistry.js +39 -0
- package/dist/server/src/automations/pluginMethodRegistry.js.map +1 -1
- package/dist/server/src/automations/segment-picture.d.ts +16 -0
- package/dist/server/src/automations/segment-picture.js +152 -0
- package/dist/server/src/automations/segment-picture.js.map +1 -0
- package/dist/server/src/camera/decoder/detection-coordinator.d.ts +5 -2
- package/dist/server/src/camera/decoder/detection-coordinator.js +45 -22
- package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-pipeline.d.ts +30 -2
- package/dist/server/src/camera/decoder/detection-pipeline.js +81 -21
- package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
- package/dist/server/src/camera/decoder/event-manager.d.ts +12 -2
- package/dist/server/src/camera/decoder/event-manager.js +77 -75
- package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
- package/dist/server/src/camera/decoder/event-trace.d.ts +41 -1
- package/dist/server/src/camera/decoder/event-trace.js +63 -8
- package/dist/server/src/camera/decoder/event-trace.js.map +1 -1
- package/dist/server/src/camera/decoder/face-tracks.d.ts +26 -0
- package/dist/server/src/camera/decoder/face-tracks.js +199 -0
- package/dist/server/src/camera/decoder/face-tracks.js.map +1 -0
- package/dist/server/src/camera/decoder/frame-scaler.d.ts +3 -1
- package/dist/server/src/camera/decoder/frame-scaler.js +36 -8
- package/dist/server/src/camera/decoder/frame-scaler.js.map +1 -1
- package/dist/server/src/camera/decoder/nvr-sink.d.ts +6 -0
- 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 +2 -0
- package/dist/server/src/camera/decoder/perf-tracker.js +4 -0
- package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
- package/dist/server/src/camera/decoder/ptz/autotracker.d.ts +6 -1
- package/dist/server/src/camera/decoder/ptz/autotracker.js +107 -25
- package/dist/server/src/camera/decoder/ptz/autotracker.js.map +1 -1
- package/dist/server/src/camera/decoder/secondary-stage.d.ts +10 -8
- package/dist/server/src/camera/decoder/secondary-stage.js +145 -125
- package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
- package/dist/server/src/camera/decoder/training-sink.d.ts +5 -2
- package/dist/server/src/camera/decoder/training-sink.js +30 -6
- package/dist/server/src/camera/decoder/training-sink.js.map +1 -1
- package/dist/server/src/camera/decoder/types.d.ts +6 -2
- package/dist/server/src/camera/decoder/types.js +4 -2
- package/dist/server/src/camera/decoder/types.js.map +1 -1
- package/dist/server/src/manager/trainingCandidateManager.d.ts +2 -1
- package/dist/server/src/manager/trainingCandidateManager.js +25 -3
- package/dist/server/src/manager/trainingCandidateManager.js.map +1 -1
- package/dist/server/src/manager/trainingSubmission.d.ts +5 -0
- package/dist/server/src/manager/trainingSubmission.js +73 -0
- package/dist/server/src/manager/trainingSubmission.js.map +1 -0
- package/dist/server/src/manager/types.d.ts +8 -2
- package/dist/server/src/manager/types.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/proxy/sensor.py +2 -0
- package/dist/server/src/remote/api/routes/train.d.ts +44 -3
- package/dist/server/src/remote/api/routes/train.js +2 -2
- package/dist/server/src/remote/api/routes/train.js.map +1 -1
- package/dist/server/src/rpc/interfaces/core.d.ts +6 -2
- package/dist/server/src/rpc/interfaces/detection.d.ts +20 -3
- package/dist/server/src/rpc/server.d.ts +2 -0
- package/dist/server/src/rpc/server.js +8 -5
- package/dist/server/src/rpc/server.js.map +1 -1
- package/dist/server/src/sensors/registry.d.ts +1 -0
- package/dist/server/src/sensors/registry.js +20 -11
- package/dist/server/src/sensors/registry.js.map +1 -1
- package/dist/server/src/sensors/types.d.ts +1 -0
- package/dist/server/src/sensors/types.js +3 -0
- package/dist/server/src/sensors/types.js.map +1 -1
- package/dist/server/src/services/config/index.d.ts +1 -0
- package/dist/server/src/services/config/index.js +2 -0
- package/dist/server/src/services/config/index.js.map +1 -1
- package/dist/server/src/utils/image.d.ts +6 -0
- package/dist/server/src/utils/image.js +58 -22
- package/dist/server/src/utils/image.js.map +1 -1
- package/npm-shrinkwrap.json +115 -74
- package/package.json +11 -11
- package/dist/interface/assets/About-DBOS1rfw.js +0 -1
- package/dist/interface/assets/Assistant-BQ6Ld-bt.css +0 -1
- package/dist/interface/assets/Assistant-BRcHj8hq.js +0 -1
- package/dist/interface/assets/Automation-C0Emde7z.js +0 -3
- package/dist/interface/assets/AutomationStore-C2G0Bk8c.js +0 -2
- package/dist/interface/assets/Automations-D-vfqRnZ.js +0 -2
- package/dist/interface/assets/Camera-BpurrgAr.js +0 -2
- package/dist/interface/assets/Camera-D0B7yyVD.css +0 -1
- package/dist/interface/assets/Camview-IbOVRx20.js +0 -1
- package/dist/interface/assets/ConfigActionCameraControl-Bw_egtpP.js +0 -1
- package/dist/interface/assets/ConfigActionSensor-BErRRYfl.js +0 -1
- package/dist/interface/assets/Console-oCuuVKET.js +0 -1
- package/dist/interface/assets/CuiAssistantConversation-Bsyxau9v.js +0 -5
- package/dist/interface/assets/CuiAutomationRunsDialog-sRh_K6JI.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-DWoSHzC7.js +0 -1
- package/dist/interface/assets/CuiCameraPipCard-D6REm8uT.js +0 -1
- package/dist/interface/assets/CuiCameraRecordings-C2tvrbbw.js +0 -1
- package/dist/interface/assets/CuiCameraShares-jrrUEHoZ.js +0 -1
- package/dist/interface/assets/CuiCameraTable-BOzTWLwd.js +0 -1
- package/dist/interface/assets/CuiChartTable-BYrIX7LV.js +0 -1
- package/dist/interface/assets/CuiLightControl-DitIWqUr.js +0 -1
- package/dist/interface/assets/CuiList-BewTNr2X.js +0 -1
- package/dist/interface/assets/CuiPluginCard-Bd2HFduI.js +0 -2
- package/dist/interface/assets/CuiPluginCategoryChip-DlzOwRgc.js +0 -1
- package/dist/interface/assets/CuiSchema-BL0QZmP2.js +0 -1
- package/dist/interface/assets/CuiTopNavbarItem-Ti2TueU1.js +0 -1
- package/dist/interface/assets/Faces-DARrGLXf.js +0 -1
- package/dist/interface/assets/FirstSteps-DBYPBvGr.js +0 -1
- package/dist/interface/assets/Floorplan-BaZvzoyv.js +0 -1
- package/dist/interface/assets/Instances-r0xReURi.js +0 -1
- package/dist/interface/assets/Menu-C34RRyLd.js +0 -1
- package/dist/interface/assets/Metrics-BjoC71_O.js +0 -12
- package/dist/interface/assets/Metrics-DsHBab6t.css +0 -1
- package/dist/interface/assets/OAuthDeviceFlow-CdZxelf2.js +0 -1
- package/dist/interface/assets/Plugin-Qr_Q_Qfi.css +0 -1
- package/dist/interface/assets/Plugin-npx7CnwV.js +0 -1
- package/dist/interface/assets/PluginDetail-nwTrJmO6.js +0 -2
- package/dist/interface/assets/PluginSearch-CP2kQWKf.js +0 -1
- package/dist/interface/assets/PluginSearch-WEvbKMRs.js +0 -2
- package/dist/interface/assets/RecentEventsFilter-D5VSH2K1.js +0 -1
- package/dist/interface/assets/Recordings-BEKAn6QK.css +0 -1
- package/dist/interface/assets/Recordings-De6Zcv0M.js +0 -1
- package/dist/interface/assets/SensorEdit-SD_oHBRo.js +0 -1
- package/dist/interface/assets/SensorHistory-SxiLOloa.js +0 -1
- package/dist/interface/assets/Sensors-Djl64M-W.js +0 -2
- package/dist/interface/assets/Settings-CAf2reGs.js +0 -1
- package/dist/interface/assets/SettingsAccount-BGj5Ni91.js +0 -1
- package/dist/interface/assets/SettingsAccount-Dy6WC8ql.js +0 -1
- package/dist/interface/assets/SettingsAppearance-BGFhMlRk.js +0 -1
- package/dist/interface/assets/SettingsAppearance-DQzQmVzE.js +0 -1
- package/dist/interface/assets/SettingsAssistant-BwYVyuN3.js +0 -1
- package/dist/interface/assets/SettingsBackup-CVExGnOo.js +0 -1
- package/dist/interface/assets/SettingsList-vo7sz_MY.js +0 -1
- package/dist/interface/assets/SettingsMqtt-B1CuOcML.js +0 -1
- package/dist/interface/assets/SettingsNotifications-CCQ6eiq8.js +0 -1
- package/dist/interface/assets/SettingsPermissions-BlOf6HEy.js +0 -1
- package/dist/interface/assets/SettingsRecordings-7tTBg6m1.js +0 -1
- package/dist/interface/assets/SettingsRemote-DBgKmIdv.js +0 -2
- package/dist/interface/assets/SettingsSystem-DaFMsZpN.js +0 -2
- package/dist/interface/assets/SettingsUsers-DXACwVPi.js +0 -1
- package/dist/interface/assets/Terminal-DtGqlHbk.js +0 -4
- package/dist/interface/assets/Training-C-ToeAl4.css +0 -1
- package/dist/interface/assets/Training-Ca11D1Vj.js +0 -1
- package/dist/interface/assets/Updates-yenwuqnD.js +0 -2
- package/dist/interface/assets/Workers-Dyo44zxe.js +0 -2
- package/dist/interface/assets/api-CHQlxVtZ.css +0 -2
- package/dist/interface/assets/api-CLazgL-g.js +0 -4
- package/dist/interface/assets/cloudHandoff-zJCrDmwk.js +0 -1
- package/dist/interface/assets/eventIcons-C3JWChgS.js +0 -1
- package/dist/interface/assets/eventLabels-BsPoPWS9.js +0 -1
- package/dist/interface/assets/main-CGY9cVyi.css +0 -1
- package/dist/interface/assets/main-DkHV6YgB.js +0 -3
- package/dist/interface/assets/mqtt-DE2VbNdt.js +0 -1
- package/dist/interface/assets/sensorIcons-BntiOPX7.js +0 -1
- package/dist/interface/assets/types-B4LLKzDW.js +0 -1
- package/dist/interface/assets/types-a7Nw-P-m.js +0 -1
- package/dist/interface/assets/ungrouped-BoAbb9w3.js +0 -1
- package/dist/interface/assets/ungrouped-ChmBvcXp.css +0 -1
- package/dist/interface/assets/useBackupRestore-Biqn_lhh.js +0 -1
- package/dist/interface/assets/vendor-cameraui-GmMRyJ2R.js +0 -2326
- package/dist/interface/assets/vendor-core-BeAannbA.js +0 -1
- package/dist/interface/ha/Camera-sH9fRv18.js +0 -670
- package/dist/interface/ha/Faces-CsM5VO8Q.js +0 -1441
- package/dist/interface/ha/Recordings-B1XsJrzs.js +0 -1539
- package/dist/interface/ha/Training-CaSFA5oH.js +0 -1699
- package/dist/interface/ha/eventLabels-B4C1_4vT.js +0 -42
- package/dist/interface/ha/ungrouped-BHLAySWP.js +0 -1312
- package/dist/interface/workbox-778a14ff.js +0 -1
|
@@ -1,40 +1,41 @@
|
|
|
1
1
|
import { m as e, p as t } from "./ripple-ZDATPc2w.js";
|
|
2
|
-
import { A as n, B as r, D as i, Dt as a, G as o, H as s, Jt as c, M as l, N as u, Wt as d, Y as f, _t as p, d as m, f as h, ft as g, g as _, gt as ee, kt as v, l as y, lt as b, ot as x, p as S, qt as C, r as w, rt as T, u as E, ut as
|
|
3
|
-
import { t as
|
|
4
|
-
import { t as
|
|
5
|
-
import { $t as
|
|
6
|
-
import { A as
|
|
7
|
-
import { B as
|
|
8
|
-
import { n as
|
|
9
|
-
import { O as
|
|
10
|
-
import { a as
|
|
11
|
-
import {
|
|
12
|
-
import { t as
|
|
13
|
-
import { M as
|
|
14
|
-
import { t as
|
|
15
|
-
import { t as
|
|
16
|
-
import { t as
|
|
17
|
-
import { t as
|
|
18
|
-
import { t as
|
|
19
|
-
import { t as
|
|
20
|
-
import { t as
|
|
21
|
-
import { t as
|
|
22
|
-
import { t as
|
|
23
|
-
import { r as
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
2
|
+
import { A as n, B as r, D as i, Dt as a, G as o, H as s, Jt as c, M as l, N as u, Wt as d, Y as f, _t as p, d as m, f as h, ft as g, g as _, gt as ee, kt as v, l as y, lt as b, ot as x, p as S, qt as C, r as w, rt as T, u as E, ut as te, v as D, wt as O, x as k, xt as A, y as j, yt as M, z as N } from "./runtime-core.esm-bundler-_TfE0DWz.js";
|
|
3
|
+
import { t as ne } from "./tooltip-BDrlgLof.js";
|
|
4
|
+
import { t as P } from "./tag-mchuCAPR.js";
|
|
5
|
+
import { $t as F, Ar as I, Bt as re, Ei as ie, Gr as L, Jn as R, On as ae, Or as z, Pr as B, Qt as V, Rt as oe, Vn as se, Zt as ce, cn as le, di as ue, ei as H, et as de, f as U, g as W, hn as fe, it as G, kn as pe, ni as me, q as he, qn as K, rn as ge, sn as _e, ut as ve, xn as ye, yr as be, zn as xe, zt as Se } from "./api-CH_Y8Hee.js";
|
|
6
|
+
import { A as Ce, b as q, i as we, o as Te } from "./intercomService-BtJ_zUNd.js";
|
|
7
|
+
import { B as J, I as Y, L as Ee, R as De, V as Oe, q as ke, r as Ae, s as je, z as X } from "./pinia-CVnHHb-s.js";
|
|
8
|
+
import { n as Me } from "./vue-i18n-D5EAy78K.js";
|
|
9
|
+
import { O as Z, T as Q, k as Ne, w as Pe } from "./dist-euRmladF.js";
|
|
10
|
+
import { a as Fe } from "./alert-outline-FcLLjoOK.js";
|
|
11
|
+
import { S as Ie, r as Le } from "./eventLabels-B5GrM5jO.js";
|
|
12
|
+
import { t as $ } from "./button-BouAFgf5.js";
|
|
13
|
+
import { M as Re, N as ze, P as Be, b as Ve } from "./dist-BQf9ANPx.js";
|
|
14
|
+
import { t as He } from "./inputtext-C_ygnPrC.js";
|
|
15
|
+
import { t as Ue } from "./select-DV7p2EDj.js";
|
|
16
|
+
import { t as We } from "./multiselect-BOb4ScAZ.js";
|
|
17
|
+
import { t as Ge } from "./textarea-ByXnzJzx.js";
|
|
18
|
+
import { t as Ke } from "./CuiSchema-CYpr_dD7.js";
|
|
19
|
+
import { t as qe } from "./plugins--eatOIaI.js";
|
|
20
|
+
import { t as Je } from "./information-outline-DSSRyysT.js";
|
|
21
|
+
import { t as Ye } from "./close-circle-DfYSNAKm.js";
|
|
22
|
+
import { t as Xe } from "./CuiMarkdownContent-CrkZwv5j.js";
|
|
23
|
+
import { r as Ze, t as Qe } from "./CuiPluginCard-B4SCUblV.js";
|
|
24
|
+
import { n as $e, t as et } from "./walk-CsSXaeJw.js";
|
|
25
|
+
import { u as tt } from "./cards-E0zw1UVg.js";
|
|
26
|
+
import { t as nt } from "./back-filled-CaxrZv0Q.js";
|
|
26
27
|
//#region src/components/CuiMarkdownPanel/types.ts
|
|
27
|
-
var
|
|
28
|
+
var rt = {
|
|
28
29
|
content: null,
|
|
29
30
|
loading: !1,
|
|
30
31
|
collapsedHeight: 420
|
|
31
|
-
},
|
|
32
|
+
}, it = { class: "lg:!hidden card-title" }, at = {
|
|
32
33
|
ref: "frame",
|
|
33
34
|
class: "flex flex-col h-full"
|
|
34
|
-
},
|
|
35
|
+
}, ot = { class: "flex items-center gap-3 border-color lg:border-b-[1px] lg:mb-3 lg:pb-3" }, st = { class: "hidden lg:block text-base font-semibold" }, ct = {
|
|
35
36
|
key: 0,
|
|
36
37
|
class: "flex w-full h-full items-center justify-center"
|
|
37
|
-
},
|
|
38
|
+
}, lt = /* @__PURE__ */ k({
|
|
38
39
|
__name: "CuiMarkdownPanel",
|
|
39
40
|
props: /*@__PURE__*/ n({
|
|
40
41
|
title: {},
|
|
@@ -42,9 +43,9 @@ var qe = {
|
|
|
42
43
|
content: {},
|
|
43
44
|
loading: { type: Boolean },
|
|
44
45
|
collapsedHeight: {}
|
|
45
|
-
},
|
|
46
|
+
}, rt),
|
|
46
47
|
setup(e) {
|
|
47
|
-
let t = e, n = T("frame"), r = T("body"), i =
|
|
48
|
+
let t = e, n = T("frame"), r = T("body"), i = A(!1), a = A(!1), o = A(t.collapsedHeight), l = y(() => !t.loading && (i.value || a.value));
|
|
48
49
|
function d() {
|
|
49
50
|
let e = n.value, i = r.value;
|
|
50
51
|
if (!e || !i) return;
|
|
@@ -57,10 +58,10 @@ var qe = {
|
|
|
57
58
|
let e = r.value;
|
|
58
59
|
a.value = !!e && e.scrollHeight > e.clientHeight + 1;
|
|
59
60
|
}
|
|
60
|
-
return
|
|
61
|
-
let r =
|
|
62
|
-
return s(), S("div", null, [E("span",
|
|
63
|
-
content: b(() => [E("div",
|
|
61
|
+
return q(r, "load", f, { capture: !0 }), Ce(n, f), Ce(r, f), x([() => t.content, () => t.loading], () => u(f)), N(() => u(f)), (t, n) => {
|
|
62
|
+
let r = _e, a = le, u = $, d = z, f = Xe, p = we, g = ne;
|
|
63
|
+
return s(), S("div", null, [E("span", it, c(e.title), 1), j(p, { class: "cui-card !h-auto lg:!h-full" }, {
|
|
64
|
+
content: b(() => [E("div", at, [E("div", ot, [E("h3", st, c(e.title), 1), v(l) ? te((s(), m(u, {
|
|
64
65
|
key: 0,
|
|
65
66
|
severity: "secondary",
|
|
66
67
|
text: "",
|
|
@@ -80,7 +81,7 @@ var qe = {
|
|
|
80
81
|
{ value: v(i) ? t.$t("components.form.button.collapse") : t.$t("components.form.button.expand") },
|
|
81
82
|
void 0,
|
|
82
83
|
{ left: !0 }
|
|
83
|
-
]]) : h("", !0)]), e.loading ? (s(), S("div",
|
|
84
|
+
]]) : h("", !0)]), e.loading ? (s(), S("div", ct, [j(d, {
|
|
84
85
|
class: "w-[30px] h-[30px] m-0",
|
|
85
86
|
"stroke-width": "5"
|
|
86
87
|
})])) : (s(), S("div", {
|
|
@@ -88,80 +89,80 @@ var qe = {
|
|
|
88
89
|
ref: "body",
|
|
89
90
|
class: "overflow-y-auto",
|
|
90
91
|
style: C(v(i) ? void 0 : { maxHeight: `${v(o)}px` })
|
|
91
|
-
}, [
|
|
92
|
+
}, [j(f, { content: e.content || e.placeholder }, null, 8, ["content"])], 4))], 512)]),
|
|
92
93
|
_: 1
|
|
93
94
|
})]);
|
|
94
95
|
};
|
|
95
96
|
}
|
|
96
|
-
}),
|
|
97
|
+
}), ut = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, dt = { class: "flex flex-col gap-4" }, ft = { class: "flex flex-col field-gap" }, pt = { class: "cui-label" }, mt = {
|
|
97
98
|
key: 0,
|
|
98
99
|
class: "text-red-500 text-sm"
|
|
99
|
-
},
|
|
100
|
+
}, ht = { class: "flex flex-col field-gap" }, gt = { class: "cui-label" }, _t = { class: "flex flex-col field-gap" }, vt = { class: "cui-label" }, yt = { class: "flex flex-col field-gap" }, bt = { class: "cui-label" }, xt = { class: "flex flex-col field-gap" }, St = { class: "cui-label" }, Ct = { class: "flex flex-col field-gap" }, wt = { class: "cui-label" }, Tt = { class: "flex flex-col field-gap" }, Et = { class: "cui-label" }, Dt = { class: "flex flex-col field-gap" }, Ot = { class: "cui-label" }, kt = { class: "mt-8" }, At = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, jt = {
|
|
100
101
|
key: 0,
|
|
101
102
|
class: "flex items-center justify-center w-full py-4"
|
|
102
|
-
},
|
|
103
|
+
}, Mt = {
|
|
103
104
|
key: 1,
|
|
104
105
|
class: "flex items-center justify-center text-sm text-muted py-4 text-center"
|
|
105
|
-
},
|
|
106
|
+
}, Nt = {
|
|
106
107
|
key: 2,
|
|
107
108
|
class: "flex flex-col field-gap"
|
|
108
|
-
},
|
|
109
|
+
}, Pt = { class: "text-xs text-muted" }, Ft = {
|
|
109
110
|
key: 0,
|
|
110
111
|
class: "mt-8"
|
|
111
|
-
},
|
|
112
|
+
}, It = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, Lt = /* @__PURE__ */ k({
|
|
112
113
|
__name: "CuiNotificationInterface",
|
|
113
114
|
props: { pluginName: {} },
|
|
114
115
|
setup(e) {
|
|
115
|
-
let t = e, n =
|
|
116
|
+
let t = e, n = Te(), { t: r } = Me(), i = ie(), l = W(), { user: u } = Ae(l), { pluginName: d } = a(t), { plugin: f } = Re(d), p = y(() => Object.values(Pe).map((e) => ({
|
|
116
117
|
label: r(`components.notification_interface.severity_${e}`),
|
|
117
118
|
value: e
|
|
118
|
-
}))), m =
|
|
119
|
+
}))), m = M({
|
|
119
120
|
title: "Test notification",
|
|
120
121
|
subtitle: "",
|
|
121
122
|
body: "This is a test notification from camera.ui",
|
|
122
|
-
severity:
|
|
123
|
+
severity: Pe.Info,
|
|
123
124
|
tag: "",
|
|
124
125
|
imageUrl: "",
|
|
125
126
|
deepLink: ""
|
|
126
|
-
}), g =
|
|
127
|
+
}), g = A([]), _ = A(!1), C = A(!1), T = O([]), te = A(!1), D = A([]), k = O(), N = A(!1), ne = y(() => T.value.map((e) => ({
|
|
127
128
|
id: e.id,
|
|
128
129
|
label: e.name
|
|
129
130
|
})));
|
|
130
|
-
async function
|
|
131
|
+
async function P() {
|
|
131
132
|
if (f.value && u.value?._id) {
|
|
132
|
-
|
|
133
|
+
te.value = !0;
|
|
133
134
|
try {
|
|
134
|
-
let e =
|
|
135
|
+
let e = be(void 0, "admin") ? [] : [u.value._id];
|
|
135
136
|
T.value = await f.value.getDevices?.(e) ?? [];
|
|
136
137
|
} catch (e) {
|
|
137
138
|
n.error("Failed to load notifier devices:", e), T.value = [];
|
|
138
139
|
} finally {
|
|
139
|
-
|
|
140
|
+
te.value = !1;
|
|
140
141
|
}
|
|
141
142
|
}
|
|
142
143
|
}
|
|
143
|
-
async function
|
|
144
|
+
async function F() {
|
|
144
145
|
if (f.value) {
|
|
145
|
-
|
|
146
|
+
N.value = !0;
|
|
146
147
|
try {
|
|
147
|
-
|
|
148
|
+
k.value = await f.value.notificationSettings?.();
|
|
148
149
|
} catch (e) {
|
|
149
|
-
n.error("Failed to load notification settings schema:", e),
|
|
150
|
+
n.error("Failed to load notification settings schema:", e), k.value = void 0;
|
|
150
151
|
} finally {
|
|
151
|
-
|
|
152
|
+
N.value = !1;
|
|
152
153
|
}
|
|
153
154
|
}
|
|
154
155
|
}
|
|
155
|
-
function
|
|
156
|
+
function I() {
|
|
156
157
|
g.value.push({
|
|
157
158
|
key: "",
|
|
158
159
|
value: ""
|
|
159
160
|
});
|
|
160
161
|
}
|
|
161
|
-
function
|
|
162
|
+
function re(e) {
|
|
162
163
|
g.value.splice(e, 1);
|
|
163
164
|
}
|
|
164
|
-
function
|
|
165
|
+
function L() {
|
|
165
166
|
let e = {};
|
|
166
167
|
for (let t of g.value) t.key.trim() && (e[t.key.trim()] = t.value);
|
|
167
168
|
return {
|
|
@@ -175,7 +176,7 @@ var qe = {
|
|
|
175
176
|
data: Object.keys(e).length ? e : void 0
|
|
176
177
|
};
|
|
177
178
|
}
|
|
178
|
-
async function
|
|
179
|
+
async function R() {
|
|
179
180
|
let e = f.value;
|
|
180
181
|
if (e && !C.value) {
|
|
181
182
|
if (!m.title.trim()) {
|
|
@@ -184,7 +185,7 @@ var qe = {
|
|
|
184
185
|
}
|
|
185
186
|
C.value = !0;
|
|
186
187
|
try {
|
|
187
|
-
let t =
|
|
188
|
+
let t = L(), n = D.value.length ? D.value : T.value.map((e) => e.id);
|
|
188
189
|
await e.sendNotification?.(n, t), i.add({
|
|
189
190
|
severity: "success",
|
|
190
191
|
detail: r("components.notification_interface.sent"),
|
|
@@ -202,15 +203,15 @@ var qe = {
|
|
|
202
203
|
}
|
|
203
204
|
}
|
|
204
205
|
return x(f, (e) => {
|
|
205
|
-
e && (
|
|
206
|
+
e && (P(), F());
|
|
206
207
|
}, { immediate: !0 }), (e, t) => {
|
|
207
|
-
let n =
|
|
208
|
+
let n = He, r = Ge, i = Ue, a = Ye, l = $, u = tt, d = z, y = We, x = Ke;
|
|
208
209
|
return s(), S("div", null, [
|
|
209
|
-
E("h3",
|
|
210
|
-
E("div",
|
|
211
|
-
E("div",
|
|
212
|
-
E("label",
|
|
213
|
-
|
|
210
|
+
E("h3", ut, c(e.$t("components.notification_interface.template")), 1),
|
|
211
|
+
E("div", dt, [
|
|
212
|
+
E("div", ft, [
|
|
213
|
+
E("label", pt, c(e.$t("components.notification_interface.title")), 1),
|
|
214
|
+
j(n, {
|
|
214
215
|
modelValue: v(m).title,
|
|
215
216
|
"onUpdate:modelValue": [t[0] ||= (e) => v(m).title = e, t[1] ||= (e) => _.value = !1],
|
|
216
217
|
placeholder: e.$t("components.notification_interface.title"),
|
|
@@ -221,22 +222,22 @@ var qe = {
|
|
|
221
222
|
"placeholder",
|
|
222
223
|
"invalid"
|
|
223
224
|
]),
|
|
224
|
-
v(_) ? (s(), S("p",
|
|
225
|
+
v(_) ? (s(), S("p", mt, c(e.$t("components.notification_interface.title_required")), 1)) : h("", !0)
|
|
225
226
|
]),
|
|
226
|
-
E("div",
|
|
227
|
+
E("div", ht, [E("label", gt, c(e.$t("components.notification_interface.subtitle")), 1), j(n, {
|
|
227
228
|
modelValue: v(m).subtitle,
|
|
228
229
|
"onUpdate:modelValue": t[2] ||= (e) => v(m).subtitle = e,
|
|
229
230
|
placeholder: e.$t("components.notification_interface.subtitle"),
|
|
230
231
|
class: "w-full"
|
|
231
232
|
}, null, 8, ["modelValue", "placeholder"])]),
|
|
232
|
-
E("div",
|
|
233
|
+
E("div", _t, [E("label", vt, c(e.$t("components.notification_interface.body")), 1), j(r, {
|
|
233
234
|
modelValue: v(m).body,
|
|
234
235
|
"onUpdate:modelValue": t[3] ||= (e) => v(m).body = e,
|
|
235
236
|
placeholder: e.$t("components.notification_interface.body"),
|
|
236
237
|
rows: "3",
|
|
237
238
|
class: "w-full"
|
|
238
239
|
}, null, 8, ["modelValue", "placeholder"])]),
|
|
239
|
-
E("div",
|
|
240
|
+
E("div", yt, [E("label", bt, c(e.$t("components.notification_interface.severity")), 1), j(i, {
|
|
240
241
|
modelValue: v(m).severity,
|
|
241
242
|
"onUpdate:modelValue": t[4] ||= (e) => v(m).severity = e,
|
|
242
243
|
options: v(p),
|
|
@@ -244,31 +245,31 @@ var qe = {
|
|
|
244
245
|
"option-value": "value",
|
|
245
246
|
class: "w-full"
|
|
246
247
|
}, null, 8, ["modelValue", "options"])]),
|
|
247
|
-
E("div",
|
|
248
|
+
E("div", xt, [E("label", St, c(e.$t("components.notification_interface.tag")), 1), j(n, {
|
|
248
249
|
modelValue: v(m).tag,
|
|
249
250
|
"onUpdate:modelValue": t[5] ||= (e) => v(m).tag = e,
|
|
250
251
|
placeholder: "motion:cam-1",
|
|
251
252
|
class: "w-full"
|
|
252
253
|
}, null, 8, ["modelValue"])]),
|
|
253
|
-
E("div",
|
|
254
|
+
E("div", Ct, [E("label", wt, c(e.$t("components.notification_interface.image_url")), 1), j(n, {
|
|
254
255
|
modelValue: v(m).imageUrl,
|
|
255
256
|
"onUpdate:modelValue": t[6] ||= (e) => v(m).imageUrl = e,
|
|
256
257
|
placeholder: "https://…",
|
|
257
258
|
class: "w-full"
|
|
258
259
|
}, null, 8, ["modelValue"])]),
|
|
259
|
-
E("div",
|
|
260
|
+
E("div", Tt, [E("label", Et, c(e.$t("components.notification_interface.deep_link")), 1), j(n, {
|
|
260
261
|
modelValue: v(m).deepLink,
|
|
261
262
|
"onUpdate:modelValue": t[7] ||= (e) => v(m).deepLink = e,
|
|
262
263
|
placeholder: "/cameras/cam-1",
|
|
263
264
|
class: "w-full"
|
|
264
265
|
}, null, 8, ["modelValue"])]),
|
|
265
|
-
E("div",
|
|
266
|
-
E("label",
|
|
266
|
+
E("div", Dt, [
|
|
267
|
+
E("label", Ot, c(e.$t("components.notification_interface.data")), 1),
|
|
267
268
|
(s(!0), S(w, null, o(v(g), (t, r) => (s(), S("div", {
|
|
268
269
|
key: r,
|
|
269
270
|
class: "flex gap-2 items-center"
|
|
270
271
|
}, [
|
|
271
|
-
|
|
272
|
+
j(n, {
|
|
272
273
|
modelValue: t.key,
|
|
273
274
|
"onUpdate:modelValue": (e) => t.key = e,
|
|
274
275
|
placeholder: e.$t("components.notification_interface.data_key"),
|
|
@@ -278,7 +279,7 @@ var qe = {
|
|
|
278
279
|
"onUpdate:modelValue",
|
|
279
280
|
"placeholder"
|
|
280
281
|
]),
|
|
281
|
-
|
|
282
|
+
j(n, {
|
|
282
283
|
modelValue: t.value,
|
|
283
284
|
"onUpdate:modelValue": (e) => t.value = e,
|
|
284
285
|
placeholder: e.$t("components.notification_interface.data_value"),
|
|
@@ -288,40 +289,40 @@ var qe = {
|
|
|
288
289
|
"onUpdate:modelValue",
|
|
289
290
|
"placeholder"
|
|
290
291
|
]),
|
|
291
|
-
|
|
292
|
+
j(l, {
|
|
292
293
|
text: "",
|
|
293
294
|
rounded: "",
|
|
294
295
|
severity: "danger",
|
|
295
296
|
class: "cui-icon-md shrink-0",
|
|
296
|
-
onClick: (e) =>
|
|
297
|
+
onClick: (e) => re(r)
|
|
297
298
|
}, {
|
|
298
|
-
icon: b(() => [
|
|
299
|
+
icon: b(() => [j(a, {
|
|
299
300
|
width: "100%",
|
|
300
301
|
height: "100%"
|
|
301
302
|
})]),
|
|
302
303
|
_: 1
|
|
303
304
|
}, 8, ["onClick"])
|
|
304
305
|
]))), 128)),
|
|
305
|
-
|
|
306
|
+
j(l, {
|
|
306
307
|
severity: "secondary",
|
|
307
308
|
outlined: "",
|
|
308
309
|
fluid: "",
|
|
309
310
|
class: "cui-button-medium",
|
|
310
311
|
label: e.$t("components.notification_interface.add_data"),
|
|
311
|
-
onClick:
|
|
312
|
+
onClick: I
|
|
312
313
|
}, {
|
|
313
|
-
icon: b(() => [
|
|
314
|
+
icon: b(() => [j(u, { class: "w-4 h-4" })]),
|
|
314
315
|
_: 1
|
|
315
316
|
}, 8, ["label"])
|
|
316
317
|
])
|
|
317
318
|
]),
|
|
318
|
-
E("div",
|
|
319
|
+
E("div", kt, [E("h3", At, c(e.$t("components.notification_interface.targets")), 1), v(te) ? (s(), S("div", jt, [j(d, {
|
|
319
320
|
class: "w-[24px] h-[24px] m-0",
|
|
320
321
|
"stroke-width": "5"
|
|
321
|
-
})])) : v(
|
|
322
|
-
modelValue: v(
|
|
323
|
-
"onUpdate:modelValue": t[8] ||= (e) => ee(
|
|
324
|
-
options: v(
|
|
322
|
+
})])) : v(ne).length ? (s(), S("div", Nt, [E("span", Pt, c(e.$t("components.notification_interface.targets_hint")), 1), j(y, {
|
|
323
|
+
modelValue: v(D),
|
|
324
|
+
"onUpdate:modelValue": t[8] ||= (e) => ee(D) ? D.value = e : null,
|
|
325
|
+
options: v(ne),
|
|
325
326
|
"option-label": "label",
|
|
326
327
|
"option-value": "id",
|
|
327
328
|
placeholder: e.$t("components.notification_interface.all_devices"),
|
|
@@ -332,22 +333,22 @@ var qe = {
|
|
|
332
333
|
"modelValue",
|
|
333
334
|
"options",
|
|
334
335
|
"placeholder"
|
|
335
|
-
])])) : (s(), S("div",
|
|
336
|
-
v(
|
|
336
|
+
])])) : (s(), S("div", Mt, c(e.$t("components.notification_interface.no_devices")), 1))]),
|
|
337
|
+
v(k)?.length ? (s(), S("div", Ft, [E("h3", It, c(e.$t("components.notification_interface.settings")), 1), j(x, {
|
|
337
338
|
"schema-form": {
|
|
338
|
-
schema: v(
|
|
339
|
+
schema: v(k),
|
|
339
340
|
config: {}
|
|
340
341
|
},
|
|
341
|
-
loading: v(
|
|
342
|
+
loading: v(N)
|
|
342
343
|
}, null, 8, ["schema-form", "loading"])])) : h("", !0),
|
|
343
|
-
|
|
344
|
+
j(l, {
|
|
344
345
|
fluid: "",
|
|
345
346
|
class: "mt-8 cui-button-medium",
|
|
346
347
|
severity: "success",
|
|
347
348
|
loading: v(C),
|
|
348
349
|
disabled: !v(f) || v(C),
|
|
349
350
|
label: e.$t("components.notification_interface.send_test"),
|
|
350
|
-
onClick:
|
|
351
|
+
onClick: R
|
|
351
352
|
}, null, 8, [
|
|
352
353
|
"loading",
|
|
353
354
|
"disabled",
|
|
@@ -356,13 +357,13 @@ var qe = {
|
|
|
356
357
|
]);
|
|
357
358
|
};
|
|
358
359
|
}
|
|
359
|
-
}),
|
|
360
|
+
}), Rt = { class: "mb-4 rounded-xl overflow-hidden w-fit mx-auto" }, zt = ["src"], Bt = { class: "text-sm text-muted mb-4" }, Vt = {
|
|
360
361
|
key: 0,
|
|
361
362
|
class: "ml-1"
|
|
362
|
-
},
|
|
363
|
+
}, Ht = { class: "flex gap-2 mb-4" }, Ut = {
|
|
363
364
|
key: 0,
|
|
364
365
|
class: "flex flex-col gap-2"
|
|
365
|
-
},
|
|
366
|
+
}, Wt = { class: "text-sm truncate flex-1 mr-3" }, Gt = { class: "flex items-center gap-2 shrink-0" }, Kt = /* @__PURE__ */ k({
|
|
366
367
|
__name: "PluginClipInterface",
|
|
367
368
|
props: {
|
|
368
369
|
src: {},
|
|
@@ -370,7 +371,7 @@ var qe = {
|
|
|
370
371
|
onTextSearch: { type: Function }
|
|
371
372
|
},
|
|
372
373
|
setup(e, { expose: n }) {
|
|
373
|
-
let r = e, i =
|
|
374
|
+
let r = e, i = Te(), a = A(""), l = A(!1), u = A([]);
|
|
374
375
|
function f(e) {
|
|
375
376
|
let [t, n] = r.response.scoreBand ?? [0, 0];
|
|
376
377
|
return n <= t ? 0 : Math.max(0, Math.min(1, (e - t) / (n - t)));
|
|
@@ -394,30 +395,30 @@ var qe = {
|
|
|
394
395
|
}
|
|
395
396
|
}
|
|
396
397
|
return n({}), (n, r) => {
|
|
397
|
-
let i =
|
|
398
|
+
let i = He, f = $, m = P;
|
|
398
399
|
return s(), S("div", null, [
|
|
399
|
-
E("div",
|
|
400
|
+
E("div", Rt, [E("img", {
|
|
400
401
|
src: e.src,
|
|
401
402
|
alt: "CLIP test image",
|
|
402
403
|
class: "max-w-full max-h-[50vh] w-auto object-contain"
|
|
403
|
-
}, null, 8,
|
|
404
|
-
E("div",
|
|
405
|
-
E("div",
|
|
404
|
+
}, null, 8, zt)]),
|
|
405
|
+
E("div", Bt, [D(c(e.response.embeddings.length) + " embedding(s), " + c(e.response.embeddings[0]?.embedding?.length ?? 0) + "-dim ", 1), e.response.embeddingModel ? (s(), S("span", Vt, "(" + c(e.response.embeddingModel) + ")", 1)) : h("", !0)]),
|
|
406
|
+
E("div", Ht, [j(i, {
|
|
406
407
|
modelValue: v(a),
|
|
407
408
|
"onUpdate:modelValue": r[0] ||= (e) => ee(a) ? a.value = e : null,
|
|
408
409
|
class: "flex-1",
|
|
409
410
|
placeholder: n.$t("components.clip_interface.enter_query"),
|
|
410
411
|
onKeyup: t(p, ["enter"])
|
|
411
|
-
}, null, 8, ["modelValue", "placeholder"]),
|
|
412
|
+
}, null, 8, ["modelValue", "placeholder"]), j(f, {
|
|
412
413
|
class: "cui-button-medium",
|
|
413
414
|
label: n.$t("components.clip_interface.search"),
|
|
414
415
|
loading: v(l),
|
|
415
416
|
onClick: p
|
|
416
417
|
}, null, 8, ["label", "loading"])]),
|
|
417
|
-
v(u).length ? (s(), S("div",
|
|
418
|
+
v(u).length ? (s(), S("div", Ut, [(s(!0), S(w, null, o(v(u), (e, t) => (s(), S("div", {
|
|
418
419
|
key: t,
|
|
419
420
|
class: "flex items-center justify-between p-3 rounded-lg content-background"
|
|
420
|
-
}, [E("span",
|
|
421
|
+
}, [E("span", Wt, c(e.query), 1), E("div", Gt, [E("div", { class: d(["text-sm font-medium", e.displayScore >= .5 ? "text-green-500" : e.displayScore >= .25 ? "text-yellow-500" : "text-red-400"]) }, c((e.displayScore * 100).toFixed(0)) + "% ", 3), j(m, {
|
|
421
422
|
value: e.displayScore >= .5 ? "Match" : e.displayScore >= .25 ? "Possible" : "No match",
|
|
422
423
|
severity: e.displayScore >= .5 ? "success" : e.displayScore >= .25 ? "warn" : "danger",
|
|
423
424
|
class: "text-xs"
|
|
@@ -425,23 +426,23 @@ var qe = {
|
|
|
425
426
|
]);
|
|
426
427
|
};
|
|
427
428
|
}
|
|
428
|
-
}),
|
|
429
|
+
}), qt = [
|
|
429
430
|
"strict",
|
|
430
431
|
"balanced",
|
|
431
432
|
"relaxed"
|
|
432
|
-
],
|
|
433
|
+
], Jt = { class: "relative mb-4 rounded-xl overflow-hidden w-fit mx-auto" }, Yt = ["src"], Xt = { class: "text-sm text-muted mb-4" }, Zt = {
|
|
433
434
|
key: 0,
|
|
434
435
|
class: "ml-1"
|
|
435
|
-
},
|
|
436
|
+
}, Qt = {
|
|
436
437
|
key: 1,
|
|
437
438
|
class: "ml-1"
|
|
438
|
-
},
|
|
439
|
+
}, $t = { class: "flex gap-2 mb-4" }, en = {
|
|
439
440
|
key: 0,
|
|
440
441
|
class: "flex flex-col gap-2"
|
|
441
|
-
},
|
|
442
|
+
}, tn = { class: "text-sm truncate flex-1 mr-3" }, nn = { class: "flex items-center gap-2 shrink-0" }, rn = {
|
|
442
443
|
key: 0,
|
|
443
444
|
class: "text-sm font-medium"
|
|
444
|
-
},
|
|
445
|
+
}, an = /* @__PURE__ */ k({
|
|
445
446
|
__name: "PluginFaceRecognition",
|
|
446
447
|
props: {
|
|
447
448
|
src: {},
|
|
@@ -452,7 +453,7 @@ var qe = {
|
|
|
452
453
|
onMatch: { type: Function }
|
|
453
454
|
},
|
|
454
455
|
setup(e, { expose: t }) {
|
|
455
|
-
let n = e, { t: r } =
|
|
456
|
+
let n = e, { t: r } = Me(), i = Te(), a = A("balanced"), l = A(!1), u = A([]), d = y(() => qt.map((e) => ({
|
|
456
457
|
value: e,
|
|
457
458
|
label: r(`components.face_recognition_interface.sensitivity_${e}`)
|
|
458
459
|
})));
|
|
@@ -473,14 +474,14 @@ var qe = {
|
|
|
473
474
|
}
|
|
474
475
|
}
|
|
475
476
|
}
|
|
476
|
-
return
|
|
477
|
-
let r =
|
|
477
|
+
return N(f), t({}), (t, n) => {
|
|
478
|
+
let r = Ue, i = $, p = P;
|
|
478
479
|
return s(), S("div", null, [
|
|
479
|
-
E("div",
|
|
480
|
+
E("div", Jt, [E("img", {
|
|
480
481
|
src: e.src,
|
|
481
482
|
alt: "Face recognition test image",
|
|
482
483
|
class: "block max-w-full max-h-[50vh] w-auto object-contain"
|
|
483
|
-
}, null, 8,
|
|
484
|
+
}, null, 8, Yt), (s(!0), S(w, null, o(e.landmarks, (e, t) => (s(), S("span", {
|
|
484
485
|
key: t,
|
|
485
486
|
class: "absolute size-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary ring-2 ring-white/80",
|
|
486
487
|
style: C({
|
|
@@ -488,28 +489,28 @@ var qe = {
|
|
|
488
489
|
top: `${e[1] * 100}%`
|
|
489
490
|
})
|
|
490
491
|
}, null, 4))), 128))]),
|
|
491
|
-
E("div",
|
|
492
|
-
|
|
493
|
-
e.embeddingModel ? (s(), S("span",
|
|
494
|
-
e.quality == null ? h("", !0) : (s(), S("span",
|
|
492
|
+
E("div", Xt, [
|
|
493
|
+
D(c(e.dimensions) + "-dim ", 1),
|
|
494
|
+
e.embeddingModel ? (s(), S("span", Zt, "(" + c(e.embeddingModel) + ")", 1)) : h("", !0),
|
|
495
|
+
e.quality == null ? h("", !0) : (s(), S("span", Qt, "· " + c(t.$t("components.face_recognition_interface.quality", { value: (e.quality * 100).toFixed(0) })), 1))
|
|
495
496
|
]),
|
|
496
|
-
E("div",
|
|
497
|
+
E("div", $t, [j(r, {
|
|
497
498
|
modelValue: v(a),
|
|
498
499
|
"onUpdate:modelValue": n[0] ||= (e) => ee(a) ? a.value = e : null,
|
|
499
500
|
options: v(d),
|
|
500
501
|
"option-label": "label",
|
|
501
502
|
"option-value": "value",
|
|
502
503
|
class: "flex-1"
|
|
503
|
-
}, null, 8, ["modelValue", "options"]),
|
|
504
|
+
}, null, 8, ["modelValue", "options"]), j(i, {
|
|
504
505
|
class: "cui-button-medium",
|
|
505
506
|
label: t.$t("components.face_recognition_interface.match"),
|
|
506
507
|
loading: v(l),
|
|
507
508
|
onClick: f
|
|
508
509
|
}, null, 8, ["label", "loading"])]),
|
|
509
|
-
v(u).length ? (s(), S("div",
|
|
510
|
+
v(u).length ? (s(), S("div", en, [(s(!0), S(w, null, o(v(u), (e, n) => (s(), S("div", {
|
|
510
511
|
key: n,
|
|
511
512
|
class: "flex items-center justify-between p-3 rounded-lg content-background"
|
|
512
|
-
}, [E("span",
|
|
513
|
+
}, [E("span", tn, c(e.identity ?? t.$t("components.face_recognition_interface.no_match")), 1), E("div", nn, [e.score == null ? h("", !0) : (s(), S("div", rn, c((e.score * 100).toFixed(0)) + "%", 1)), j(p, {
|
|
513
514
|
value: t.$t(`components.face_recognition_interface.sensitivity_${e.sensitivity}`),
|
|
514
515
|
severity: e.identity ? "success" : "danger",
|
|
515
516
|
class: "text-xs"
|
|
@@ -517,12 +518,12 @@ var qe = {
|
|
|
517
518
|
]);
|
|
518
519
|
};
|
|
519
520
|
}
|
|
520
|
-
}),
|
|
521
|
+
}), on = /* @__PURE__ */ k({
|
|
521
522
|
__name: "PluginMotionInterface",
|
|
522
523
|
props: { response: {} },
|
|
523
524
|
setup(e) {
|
|
524
525
|
let { response: t } = a(e), n = T("videoPlayerRef");
|
|
525
|
-
return
|
|
526
|
+
return N(() => {
|
|
526
527
|
if (n.value) {
|
|
527
528
|
let e = new Blob([t.value.videoData], { type: "video/mp4" });
|
|
528
529
|
n.value.src = URL.createObjectURL(e), n.value.load();
|
|
@@ -534,7 +535,7 @@ var qe = {
|
|
|
534
535
|
class: "max-w-full max-h-[60vh] w-auto mx-auto"
|
|
535
536
|
}, "Your browser does not support the video tag.", 512)]));
|
|
536
537
|
}
|
|
537
|
-
}),
|
|
538
|
+
}), sn = { class: "mb-5 flex justify-center" }, cn = { class: "relative w-fit" }, ln = ["src"], un = /* @__PURE__ */ k({
|
|
538
539
|
__name: "PluginObjectInterface",
|
|
539
540
|
props: {
|
|
540
541
|
src: {},
|
|
@@ -543,39 +544,151 @@ var qe = {
|
|
|
543
544
|
setup(e) {
|
|
544
545
|
let { response: t, src: n } = a(e), r = y(() => t.value.detections);
|
|
545
546
|
return (e, t) => {
|
|
546
|
-
let i =
|
|
547
|
-
return s(), S("div",
|
|
547
|
+
let i = F;
|
|
548
|
+
return s(), S("div", sn, [E("div", cn, [j(i, { detections: v(r) }, null, 8, ["detections"]), E("img", {
|
|
548
549
|
src: v(n),
|
|
549
550
|
alt: "Preview",
|
|
550
551
|
class: "max-w-full max-h-[60vh] w-auto"
|
|
551
|
-
}, null, 8,
|
|
552
|
+
}, null, 8, ln)])]);
|
|
553
|
+
};
|
|
554
|
+
}
|
|
555
|
+
}), dn = { class: "relative mb-4 rounded-xl overflow-hidden w-fit mx-auto" }, fn = ["src"], pn = { class: "text-sm text-muted mb-4" }, mn = {
|
|
556
|
+
key: 0,
|
|
557
|
+
class: "ml-1"
|
|
558
|
+
}, hn = /* @__PURE__ */ k({
|
|
559
|
+
__name: "PluginPersonEmbedding",
|
|
560
|
+
props: {
|
|
561
|
+
src: {},
|
|
562
|
+
embeddingModel: {},
|
|
563
|
+
dimensions: {},
|
|
564
|
+
onSearch: { type: Function }
|
|
565
|
+
},
|
|
566
|
+
setup(e, { expose: t }) {
|
|
567
|
+
let n = e, r = i("dialogRef");
|
|
568
|
+
function a() {
|
|
569
|
+
r.value.close(), n.onSearch?.();
|
|
570
|
+
}
|
|
571
|
+
return t({}), (t, n) => {
|
|
572
|
+
let r = $;
|
|
573
|
+
return s(), S("div", null, [
|
|
574
|
+
E("div", dn, [E("img", {
|
|
575
|
+
src: e.src,
|
|
576
|
+
alt: "Person re-ID test image",
|
|
577
|
+
class: "block max-w-full max-h-[50vh] w-auto object-contain"
|
|
578
|
+
}, null, 8, fn)]),
|
|
579
|
+
E("div", pn, [D(c(e.dimensions) + "-dim ", 1), e.embeddingModel ? (s(), S("span", mn, "(" + c(e.embeddingModel) + ")", 1)) : h("", !0)]),
|
|
580
|
+
e.onSearch ? (s(), m(r, {
|
|
581
|
+
key: 0,
|
|
582
|
+
class: "cui-button-medium w-full",
|
|
583
|
+
label: t.$t("components.person_embedding_interface.search"),
|
|
584
|
+
onClick: a
|
|
585
|
+
}, null, 8, ["label"])) : h("", !0)
|
|
586
|
+
]);
|
|
552
587
|
};
|
|
553
588
|
}
|
|
554
|
-
}),
|
|
589
|
+
}), gn = { class: "mb-4 flex justify-center" }, _n = { class: "relative w-fit" }, vn = ["src"], yn = { class: "flex flex-col gap-2" }, bn = { class: "truncate" }, xn = {
|
|
590
|
+
key: 0,
|
|
591
|
+
class: "text-muted ml-1"
|
|
592
|
+
}, Sn = { class: "text-muted shrink-0" }, Cn = /*#__PURE__*/ I(/* @__PURE__ */ k({
|
|
593
|
+
__name: "PluginSegmentationInterface",
|
|
594
|
+
props: {
|
|
595
|
+
src: {},
|
|
596
|
+
objects: {}
|
|
597
|
+
},
|
|
598
|
+
setup(e, { expose: t }) {
|
|
599
|
+
let n = e, { t: r } = Me(), i = T("canvas"), a = y(() => n.objects.flatMap((e) => e.mask ? [e.mask] : []));
|
|
600
|
+
function l() {
|
|
601
|
+
i.value && ge(i.value, a.value, getComputedStyle(i.value).color);
|
|
602
|
+
}
|
|
603
|
+
return Ce(i, l), t({}), (t, n) => (s(), S("div", null, [E("div", gn, [E("div", _n, [E("img", {
|
|
604
|
+
src: e.src,
|
|
605
|
+
alt: "Segmentation test image",
|
|
606
|
+
class: "block max-w-full max-h-[60vh] w-auto",
|
|
607
|
+
onLoad: l
|
|
608
|
+
}, null, 40, vn), E("canvas", {
|
|
609
|
+
ref_key: "canvas",
|
|
610
|
+
ref: i,
|
|
611
|
+
class: "segmentation-outlines"
|
|
612
|
+
}, null, 512)])]), E("div", yn, [(s(!0), S(w, null, o(e.objects, (e, t) => (s(), S("div", {
|
|
613
|
+
key: t,
|
|
614
|
+
class: "flex items-center justify-between gap-3 p-3 rounded-lg content-background text-sm"
|
|
615
|
+
}, [E("span", bn, [D(c(e.label ? v(r)(v(Le)(e.label)) : v(r)("components.segmentation_interface.whole_picture")) + " ", 1), e.confidence == null ? h("", !0) : (s(), S("span", xn, c(Math.round(e.confidence * 100)) + "%", 1))]), E("span", Sn, c(e.mask ? `${e.mask.width} × ${e.mask.height} px` : v(r)("components.segmentation_interface.no_outline")), 1)]))), 128))])]));
|
|
616
|
+
}
|
|
617
|
+
}), [["__scopeId", "data-v-011dd43c"]]), wn = /* @__PURE__ */ new Set([
|
|
618
|
+
"person",
|
|
619
|
+
"vehicle",
|
|
620
|
+
"animal"
|
|
621
|
+
]), Tn = .5, En = 8, Dn = .45, On = .15, kn = 640;
|
|
622
|
+
async function An(e, t, n, r) {
|
|
623
|
+
let i = await createImageBitmap(e);
|
|
624
|
+
try {
|
|
625
|
+
let { width: a, height: o } = i, s = n && Q(n, Z.ObjectDetection) ? await jn(e, i, t) : [{ box: {
|
|
626
|
+
x: 0,
|
|
627
|
+
y: 0,
|
|
628
|
+
width: 1,
|
|
629
|
+
height: 1
|
|
630
|
+
} }], c = s.flatMap((e) => {
|
|
631
|
+
let t = xe(e.box, a, o, On, 1);
|
|
632
|
+
return t ? [{
|
|
633
|
+
object: e,
|
|
634
|
+
region: t
|
|
635
|
+
}] : [];
|
|
636
|
+
}), l = await Promise.all(c.map(async ({ object: e, region: t }) => ({
|
|
637
|
+
image: await Mn(i, t),
|
|
638
|
+
box: R(e.box, t, a, o)
|
|
639
|
+
})));
|
|
640
|
+
return (l.length ? await t.segmentImages?.(l, r) : void 0)?.forEach((e, t) => {
|
|
641
|
+
let n = e?.mask, { object: r, region: i } = c[t] ?? {};
|
|
642
|
+
!n || !r || !i || n.data.length < n.width * n.height || (r.mask = {
|
|
643
|
+
...n,
|
|
644
|
+
box: se(n.box, i, a, o)
|
|
645
|
+
});
|
|
646
|
+
}), s;
|
|
647
|
+
} finally {
|
|
648
|
+
i.close();
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
async function jn(e, t, n) {
|
|
652
|
+
let r = ((await n.testObjectDetection?.(new Uint8Array(await e.arrayBuffer()), {
|
|
653
|
+
width: t.width,
|
|
654
|
+
height: t.height
|
|
655
|
+
}, {}))?.detections ?? []).map((e) => ({
|
|
656
|
+
label: e.label.toLowerCase(),
|
|
657
|
+
confidence: e.confidence,
|
|
658
|
+
box: e.box
|
|
659
|
+
})).filter((e) => wn.has(e.label) && e.confidence >= Tn && e.box);
|
|
660
|
+
return K(r, Dn).slice(0, En);
|
|
661
|
+
}
|
|
662
|
+
async function Mn(e, t) {
|
|
663
|
+
let n = Math.min(1, kn / Math.max(t.width, t.height)), r = document.createElement("canvas");
|
|
664
|
+
r.width = Math.max(1, Math.round(t.width * n)), r.height = Math.max(1, Math.round(t.height * n)), r.getContext("2d")?.drawImage(e, t.x, t.y, t.width, t.height, 0, 0, r.width, r.height);
|
|
665
|
+
let i = await new Promise((e) => r.toBlob(e, "image/jpeg", .92));
|
|
666
|
+
return new Uint8Array(await (i ?? new Blob()).arrayBuffer());
|
|
667
|
+
}
|
|
668
|
+
//#endregion
|
|
669
|
+
//#region src/components/CuiDetectionInterface/CuiDetectionInterface.vue?vue&type=script&setup=true&lang.ts
|
|
670
|
+
var Nn = {
|
|
555
671
|
key: 0,
|
|
556
672
|
class: "w-full"
|
|
557
|
-
},
|
|
673
|
+
}, Pn = { class: "flex flex-col justify-center items-center mb-5" }, Fn = {
|
|
558
674
|
for: "restoreInput",
|
|
559
675
|
class: "cursor-pointer text-center text-sm"
|
|
560
|
-
},
|
|
676
|
+
}, In = ["accept"], Ln = {
|
|
561
677
|
key: 0,
|
|
562
678
|
class: "text-red-500 text-sm"
|
|
563
|
-
},
|
|
679
|
+
}, Rn = {
|
|
564
680
|
key: 1,
|
|
565
681
|
class: "w-full flex flex-col items-center justify-center"
|
|
566
|
-
},
|
|
682
|
+
}, zn = {
|
|
567
683
|
key: 0,
|
|
568
684
|
class: "relative mb-4"
|
|
569
|
-
},
|
|
685
|
+
}, Bn = ["src"], Vn = {
|
|
570
686
|
key: 1,
|
|
571
687
|
class: "relative mb-4 w-full"
|
|
572
|
-
},
|
|
688
|
+
}, Hn = {
|
|
573
689
|
key: 2,
|
|
574
690
|
class: "relative mb-4 w-full"
|
|
575
|
-
},
|
|
576
|
-
key: 0,
|
|
577
|
-
class: "flex items-center justify-center text-sm text-muted mt-5"
|
|
578
|
-
}, yn = /* @__PURE__ */ A({
|
|
691
|
+
}, Un = ["src", "type"], Wn = { class: "flex items-center justify-center" }, Gn = { class: "mx-2" }, Kn = { class: "text-muted" }, qn = { class: "flex items-center justify-center mt-2 text-xs text-muted" }, Jn = { class: "mt-10" }, Yn = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, Xn = { class: "flex items-center justify-center text-sm text-muted mt-5" }, Zn = /* @__PURE__ */ k({
|
|
579
692
|
__name: "CuiDetectionInterface",
|
|
580
693
|
props: {
|
|
581
694
|
type: {},
|
|
@@ -589,14 +702,18 @@ var qe = {
|
|
|
589
702
|
objectDetection: "drop_or_select_image_to_detect_objects",
|
|
590
703
|
faceDetection: "drop_or_select_image_to_detect_faces",
|
|
591
704
|
faceRecognition: "drop_or_select_image_to_recognize_face",
|
|
705
|
+
personEmbedding: "drop_or_select_image_of_person",
|
|
706
|
+
segmentation: "drop_or_select_image_to_outline",
|
|
592
707
|
licensePlateDetection: "drop_or_select_image_to_detect_license_plates",
|
|
593
708
|
classifierDetection: "drop_or_select_image_to_classify",
|
|
594
709
|
clipDetection: "drop_or_select_image_for_semantic_search"
|
|
595
|
-
}, i = t, o = n, l =
|
|
710
|
+
}, i = t, o = n, l = Te(), { t: f } = Me(), p = ie(), g = ye(), { type: _, pluginName: ee } = a(i), { plugin: C, contract: te, isLoading: k } = Re(ee), { plugin: M } = Re("@camera.ui/camera-ui-nvr"), { openSimilarSearch: N } = de(), ne = T("fileInputRef"), P = T("videoPlayerRef"), F = T("audioPlayerRef"), I = O([]), re = A(!1), L = A(!1), R = A(!1), ae = A(!1), z = A(""), B = A(!1), V = A(), oe = A(!0), se = O(), ce = A(!1), le = y(() => ce.value || k.value || B.value), ue = y(() => r[_.value]), H = y(() => {
|
|
596
711
|
switch (_.value) {
|
|
597
712
|
case "objectDetection":
|
|
598
713
|
case "faceDetection":
|
|
599
714
|
case "faceRecognition":
|
|
715
|
+
case "personEmbedding":
|
|
716
|
+
case "segmentation":
|
|
600
717
|
case "licensePlateDetection":
|
|
601
718
|
case "classifierDetection":
|
|
602
719
|
case "clipDetection": return "image";
|
|
@@ -604,24 +721,24 @@ var qe = {
|
|
|
604
721
|
case "audioDetection": return "audio";
|
|
605
722
|
default: return "image";
|
|
606
723
|
}
|
|
607
|
-
}),
|
|
608
|
-
switch (
|
|
609
|
-
case "image": return
|
|
610
|
-
case "video": return
|
|
611
|
-
case "audio": return
|
|
724
|
+
}), U = y(() => {
|
|
725
|
+
switch (H.value) {
|
|
726
|
+
case "image": return De;
|
|
727
|
+
case "video": return Ee;
|
|
728
|
+
case "audio": return Y;
|
|
612
729
|
default: return [];
|
|
613
730
|
}
|
|
614
|
-
}),
|
|
615
|
-
switch (
|
|
616
|
-
case "image": return
|
|
617
|
-
case "video": return
|
|
618
|
-
case "audio": return
|
|
731
|
+
}), W = y(() => {
|
|
732
|
+
switch (H.value) {
|
|
733
|
+
case "image": return ke;
|
|
734
|
+
case "video": return J;
|
|
735
|
+
case "audio": return X;
|
|
619
736
|
default: return 0;
|
|
620
737
|
}
|
|
621
|
-
}),
|
|
622
|
-
async function
|
|
738
|
+
}), fe = y(() => U.value.join(","));
|
|
739
|
+
async function pe() {
|
|
623
740
|
if (C.value) {
|
|
624
|
-
|
|
741
|
+
ce.value = !0;
|
|
625
742
|
try {
|
|
626
743
|
let e;
|
|
627
744
|
switch (_.value) {
|
|
@@ -640,6 +757,12 @@ var qe = {
|
|
|
640
757
|
case "faceRecognition":
|
|
641
758
|
e = await C.value.faceEmbeddingSettings?.();
|
|
642
759
|
break;
|
|
760
|
+
case "personEmbedding":
|
|
761
|
+
e = await C.value.personEmbeddingSettings?.();
|
|
762
|
+
break;
|
|
763
|
+
case "segmentation":
|
|
764
|
+
e = await C.value.segmentationSettings?.();
|
|
765
|
+
break;
|
|
643
766
|
case "licensePlateDetection":
|
|
644
767
|
e = await C.value.licensePlateDetectionSettings?.();
|
|
645
768
|
break;
|
|
@@ -648,59 +771,59 @@ var qe = {
|
|
|
648
771
|
break;
|
|
649
772
|
case "clipDetection": e = await C.value.clipSettings?.();
|
|
650
773
|
}
|
|
651
|
-
|
|
774
|
+
se.value = e;
|
|
652
775
|
} catch (e) {
|
|
653
|
-
l.error("Failed to load interface schema:", e),
|
|
776
|
+
l.error("Failed to load interface schema:", e), se.value = void 0;
|
|
654
777
|
} finally {
|
|
655
|
-
|
|
778
|
+
ce.value = !1;
|
|
656
779
|
}
|
|
657
780
|
}
|
|
658
781
|
}
|
|
659
|
-
function
|
|
660
|
-
let t =
|
|
661
|
-
t > -1 && (
|
|
782
|
+
function me(e) {
|
|
783
|
+
let t = I.value.findIndex((t) => t.name === e);
|
|
784
|
+
t > -1 && (I.value.splice(t, 1), ge(), z.value = "", H.value === "video" && P.value && (P.value.src = ""), V.value = void 0, o("update:file", null), o("update:metadata", null));
|
|
662
785
|
}
|
|
663
|
-
function
|
|
664
|
-
if (
|
|
786
|
+
function he(e) {
|
|
787
|
+
if (re.value = !1, L.value = !1, ae.value = !1, I.value = [], e.dataTransfer) {
|
|
665
788
|
if (e.dataTransfer.files.length > 1) L.value = !0;
|
|
666
789
|
else {
|
|
667
790
|
let t = e.dataTransfer.files[0];
|
|
668
|
-
(
|
|
669
|
-
|
|
670
|
-
})) : t.size >
|
|
791
|
+
(U.value.length === 0 || U.value.includes(t.type)) && t.size <= W.value ? (I.value.push(t), u(() => {
|
|
792
|
+
_e(t);
|
|
793
|
+
})) : t.size > W.value ? ae.value = !0 : L.value = !0;
|
|
671
794
|
}
|
|
672
795
|
}
|
|
673
796
|
}
|
|
674
|
-
function
|
|
675
|
-
L.value = !1,
|
|
797
|
+
function K(e) {
|
|
798
|
+
L.value = !1, ae.value = !1, I.value = [];
|
|
676
799
|
let t = e.target;
|
|
677
800
|
if (t && t.files) {
|
|
678
801
|
if (t.files?.length > 1) L.value = !0;
|
|
679
802
|
else if (t.files.length === 1) {
|
|
680
|
-
let e = t.files[0], n =
|
|
681
|
-
e.size <=
|
|
682
|
-
|
|
683
|
-
})) : e.size >
|
|
803
|
+
let e = t.files[0], n = U.value.length === 0 || U.value.includes(e.type);
|
|
804
|
+
e.size <= W.value && n ? (I.value.push(e), u(() => {
|
|
805
|
+
_e(e);
|
|
806
|
+
})) : e.size > W.value ? ae.value = !0 : L.value = !0;
|
|
684
807
|
}
|
|
685
808
|
}
|
|
686
809
|
}
|
|
687
|
-
function
|
|
688
|
-
|
|
810
|
+
function ge() {
|
|
811
|
+
ne.value && (ne.value.value = "");
|
|
689
812
|
}
|
|
690
|
-
function
|
|
813
|
+
function _e(e) {
|
|
691
814
|
B.value = !0;
|
|
692
815
|
let t = URL.createObjectURL(e);
|
|
693
|
-
switch (
|
|
816
|
+
switch (H.value) {
|
|
694
817
|
case "image":
|
|
695
|
-
|
|
818
|
+
ve(e, t);
|
|
696
819
|
break;
|
|
697
820
|
case "video":
|
|
698
|
-
|
|
821
|
+
be(e, t);
|
|
699
822
|
break;
|
|
700
|
-
case "audio":
|
|
823
|
+
case "audio": xe(e, t);
|
|
701
824
|
}
|
|
702
825
|
}
|
|
703
|
-
function
|
|
826
|
+
function ve(e, t) {
|
|
704
827
|
let n = new Image();
|
|
705
828
|
n.src = t, n.onload = () => {
|
|
706
829
|
z.value = n.src;
|
|
@@ -711,12 +834,12 @@ var qe = {
|
|
|
711
834
|
V.value = t, o("update:metadata", t), o("update:file", e), B.value = !1;
|
|
712
835
|
};
|
|
713
836
|
}
|
|
714
|
-
function
|
|
715
|
-
|
|
837
|
+
function be(e, t) {
|
|
838
|
+
P.value && (P.value.src = t, P.value.load(), P.value.onloadeddata = () => {
|
|
716
839
|
o("update:file", e), B.value = !1;
|
|
717
840
|
});
|
|
718
841
|
}
|
|
719
|
-
function
|
|
842
|
+
function xe(e, t) {
|
|
720
843
|
z.value = t;
|
|
721
844
|
let n = new Audio();
|
|
722
845
|
n.src = t, n.onloadedmetadata = () => {
|
|
@@ -724,17 +847,17 @@ var qe = {
|
|
|
724
847
|
V.value = t, o("update:metadata", t), o("update:file", e), B.value = !1;
|
|
725
848
|
};
|
|
726
849
|
}
|
|
727
|
-
function
|
|
850
|
+
function Se(e) {
|
|
728
851
|
return e < 1024 ? e + " bytes" : e < 1048576 ? (e / 1024).toFixed(1) + " KB" : (e / 1048576).toFixed(1) + " MB";
|
|
729
852
|
}
|
|
730
|
-
function
|
|
853
|
+
function Ce(e, t) {
|
|
731
854
|
let n = 0, r = 0, i = 0;
|
|
732
855
|
for (let a = 0; a < e.length; a++) n += e[a] * t[a], r += e[a] * e[a], i += t[a] * t[a];
|
|
733
856
|
return r && i ? n / (Math.sqrt(r) * Math.sqrt(i)) : 0;
|
|
734
857
|
}
|
|
735
|
-
async function
|
|
736
|
-
if (!
|
|
737
|
-
|
|
858
|
+
async function q(e) {
|
|
859
|
+
if (!I.value.length) {
|
|
860
|
+
R.value = !0;
|
|
738
861
|
return;
|
|
739
862
|
}
|
|
740
863
|
if (!C.value) {
|
|
@@ -743,7 +866,7 @@ var qe = {
|
|
|
743
866
|
}
|
|
744
867
|
B.value = !0;
|
|
745
868
|
try {
|
|
746
|
-
let t = await
|
|
869
|
+
let t = await I.value[0].arrayBuffer();
|
|
747
870
|
if (_.value === "audioDetection") {
|
|
748
871
|
let n = await C.value.testAudioDetection?.(new Uint8Array(t), V.value, e);
|
|
749
872
|
if (!n) {
|
|
@@ -768,7 +891,7 @@ var qe = {
|
|
|
768
891
|
l.warn("No motion detection interface available");
|
|
769
892
|
return;
|
|
770
893
|
}
|
|
771
|
-
g.openComponentDialog(
|
|
894
|
+
g.openComponentDialog(on, { data: {
|
|
772
895
|
title: f("components.dialog.title.result"),
|
|
773
896
|
hideConfirmButton: !0,
|
|
774
897
|
contentProps: { response: n }
|
|
@@ -779,7 +902,7 @@ var qe = {
|
|
|
779
902
|
l.warn("No face detection interface available");
|
|
780
903
|
return;
|
|
781
904
|
}
|
|
782
|
-
g.openComponentDialog(
|
|
905
|
+
g.openComponentDialog(un, { data: {
|
|
783
906
|
title: f("components.dialog.title.result"),
|
|
784
907
|
hideConfirmButton: !0,
|
|
785
908
|
contentProps: {
|
|
@@ -797,7 +920,7 @@ var qe = {
|
|
|
797
920
|
});
|
|
798
921
|
return;
|
|
799
922
|
}
|
|
800
|
-
if (!
|
|
923
|
+
if (!M.value) {
|
|
801
924
|
p.add({
|
|
802
925
|
severity: "info",
|
|
803
926
|
detail: f("components.face_recognition_interface.needs_nvr"),
|
|
@@ -806,7 +929,7 @@ var qe = {
|
|
|
806
929
|
return;
|
|
807
930
|
}
|
|
808
931
|
let i = n[0].embeddingModel;
|
|
809
|
-
g.openComponentDialog(
|
|
932
|
+
g.openComponentDialog(an, { data: {
|
|
810
933
|
title: f("components.dialog.title.result"),
|
|
811
934
|
hideConfirmButton: !0,
|
|
812
935
|
contentProps: {
|
|
@@ -815,7 +938,63 @@ var qe = {
|
|
|
815
938
|
dimensions: r.length,
|
|
816
939
|
landmarks: n[0].landmarks,
|
|
817
940
|
quality: n[0].quality,
|
|
818
|
-
onMatch: async (e) => (await
|
|
941
|
+
onMatch: async (e) => (await M.value.matchFaces([r], i, e))?.[0] ?? void 0
|
|
942
|
+
}
|
|
943
|
+
} });
|
|
944
|
+
} else if (_.value === "personEmbedding") {
|
|
945
|
+
let n = (await C.value.embedPersonImages?.([new Uint8Array(t)], e))?.[0];
|
|
946
|
+
if (!n?.embedding?.length) {
|
|
947
|
+
p.add({
|
|
948
|
+
severity: "info",
|
|
949
|
+
detail: f("components.person_embedding_interface.no_vector"),
|
|
950
|
+
life: 3e3
|
|
951
|
+
});
|
|
952
|
+
return;
|
|
953
|
+
}
|
|
954
|
+
let r = await G(I.value[0], {
|
|
955
|
+
x: 0,
|
|
956
|
+
y: 0,
|
|
957
|
+
width: 1,
|
|
958
|
+
height: 1
|
|
959
|
+
}), i = {
|
|
960
|
+
query: {
|
|
961
|
+
label: "person",
|
|
962
|
+
personModel: n.embeddingModel,
|
|
963
|
+
person: n.embedding
|
|
964
|
+
},
|
|
965
|
+
objectLabel: "person",
|
|
966
|
+
crop: r
|
|
967
|
+
};
|
|
968
|
+
g.openComponentDialog(hn, { data: {
|
|
969
|
+
title: f("components.dialog.title.result"),
|
|
970
|
+
hideConfirmButton: !0,
|
|
971
|
+
contentProps: {
|
|
972
|
+
src: z,
|
|
973
|
+
embeddingModel: n.embeddingModel,
|
|
974
|
+
dimensions: n.embedding.length,
|
|
975
|
+
onSearch: M.value ? () => N(i) : void 0
|
|
976
|
+
}
|
|
977
|
+
} });
|
|
978
|
+
} else if (_.value === "segmentation") {
|
|
979
|
+
if (!C.value.segmentImages) {
|
|
980
|
+
l.warn("No segmentation interface available");
|
|
981
|
+
return;
|
|
982
|
+
}
|
|
983
|
+
let t = await An(I.value[0], C.value, te.value, e);
|
|
984
|
+
if (!t.some((e) => e.mask)) {
|
|
985
|
+
p.add({
|
|
986
|
+
severity: "info",
|
|
987
|
+
detail: f("components.segmentation_interface.no_mask"),
|
|
988
|
+
life: 3e3
|
|
989
|
+
});
|
|
990
|
+
return;
|
|
991
|
+
}
|
|
992
|
+
g.openComponentDialog(Cn, { data: {
|
|
993
|
+
title: f("components.dialog.title.result"),
|
|
994
|
+
hideConfirmButton: !0,
|
|
995
|
+
contentProps: {
|
|
996
|
+
src: z,
|
|
997
|
+
objects: t
|
|
819
998
|
}
|
|
820
999
|
} });
|
|
821
1000
|
} else if (_.value === "licensePlateDetection") {
|
|
@@ -824,7 +1003,7 @@ var qe = {
|
|
|
824
1003
|
l.warn("No license plate detection interface available");
|
|
825
1004
|
return;
|
|
826
1005
|
}
|
|
827
|
-
g.openComponentDialog(
|
|
1006
|
+
g.openComponentDialog(un, { data: {
|
|
828
1007
|
title: f("components.dialog.title.result"),
|
|
829
1008
|
hideConfirmButton: !0,
|
|
830
1009
|
contentProps: {
|
|
@@ -838,7 +1017,7 @@ var qe = {
|
|
|
838
1017
|
l.warn("No classifier detection interface available");
|
|
839
1018
|
return;
|
|
840
1019
|
}
|
|
841
|
-
g.openComponentDialog(
|
|
1020
|
+
g.openComponentDialog(un, { data: {
|
|
842
1021
|
title: f("components.dialog.title.result"),
|
|
843
1022
|
hideConfirmButton: !0,
|
|
844
1023
|
contentProps: {
|
|
@@ -861,7 +1040,7 @@ var qe = {
|
|
|
861
1040
|
return;
|
|
862
1041
|
}
|
|
863
1042
|
let r = n.embeddings[0].embedding;
|
|
864
|
-
g.openComponentDialog(
|
|
1043
|
+
g.openComponentDialog(Kt, { data: {
|
|
865
1044
|
title: f("components.dialog.title.result"),
|
|
866
1045
|
hideConfirmButton: !0,
|
|
867
1046
|
contentProps: {
|
|
@@ -869,7 +1048,7 @@ var qe = {
|
|
|
869
1048
|
response: n,
|
|
870
1049
|
onTextSearch: async (e) => {
|
|
871
1050
|
let t = n.embeddingModel, i = C.value.getTextEmbeddings ? (await C.value.getTextEmbeddings(e))?.find((e) => e.embeddingModel === t) : void 0;
|
|
872
|
-
return i ??= await C.value.getTextEmbedding(e), !i?.embedding?.length || t && i.embeddingModel && i.embeddingModel !== t ? { score: 0 } : { score:
|
|
1051
|
+
return i ??= await C.value.getTextEmbedding(e), !i?.embedding?.length || t && i.embeddingModel && i.embeddingModel !== t ? { score: 0 } : { score: Ce(r, i.embedding) };
|
|
873
1052
|
}
|
|
874
1053
|
}
|
|
875
1054
|
} });
|
|
@@ -879,7 +1058,7 @@ var qe = {
|
|
|
879
1058
|
l.warn("No object detection interface available");
|
|
880
1059
|
return;
|
|
881
1060
|
}
|
|
882
|
-
g.openComponentDialog(
|
|
1061
|
+
g.openComponentDialog(un, { data: {
|
|
883
1062
|
title: f("components.dialog.title.result"),
|
|
884
1063
|
hideConfirmButton: !0,
|
|
885
1064
|
contentProps: {
|
|
@@ -899,103 +1078,114 @@ var qe = {
|
|
|
899
1078
|
}
|
|
900
1079
|
}
|
|
901
1080
|
return x(C, (e) => {
|
|
902
|
-
e &&
|
|
903
|
-
}, { immediate: !0 }), x(
|
|
904
|
-
e.length > 0 ? (
|
|
1081
|
+
e && pe();
|
|
1082
|
+
}, { immediate: !0 }), x(I, (e) => {
|
|
1083
|
+
e.length > 0 ? (R.value = !1, oe.value = !1) : (z.value = "", V.value = void 0, oe.value = !0);
|
|
905
1084
|
}, {
|
|
906
1085
|
immediate: !0,
|
|
907
1086
|
deep: !0
|
|
908
1087
|
}), (t, n) => {
|
|
909
|
-
let r =
|
|
1088
|
+
let r = Ye, i = $, a = Ke;
|
|
910
1089
|
return s(), S("div", null, [
|
|
911
1090
|
E("div", {
|
|
912
1091
|
class: "file-upload-box",
|
|
913
|
-
onDrop: n[1] ||= e((e) =>
|
|
914
|
-
onDragover: n[2] ||= e((e) =>
|
|
915
|
-
onDragenter: n[3] ||= e((e) =>
|
|
916
|
-
onDragleave: n[4] ||= e((e) =>
|
|
917
|
-
}, [v(
|
|
1092
|
+
onDrop: n[1] ||= e((e) => he(e), ["prevent"]),
|
|
1093
|
+
onDragover: n[2] ||= e((e) => re.value = !0, ["prevent"]),
|
|
1094
|
+
onDragenter: n[3] ||= e((e) => re.value = !0, ["prevent"]),
|
|
1095
|
+
onDragleave: n[4] ||= e((e) => re.value = !1, ["prevent"])
|
|
1096
|
+
}, [v(I).length ? (s(), S("div", Rn, [v(H) === "image" ? (s(), S("div", zn, [E("img", {
|
|
918
1097
|
src: v(z),
|
|
919
1098
|
alt: "Preview",
|
|
920
1099
|
class: "w-full"
|
|
921
|
-
}, null, 8,
|
|
1100
|
+
}, null, 8, Bn)])) : v(H) === "video" ? (s(), S("div", Vn, [E("video", {
|
|
922
1101
|
ref_key: "videoPlayerRef",
|
|
923
|
-
ref:
|
|
1102
|
+
ref: P,
|
|
924
1103
|
controls: "",
|
|
925
1104
|
class: "w-full"
|
|
926
|
-
}, "Your browser does not support the video tag.", 512)])) : v(
|
|
1105
|
+
}, "Your browser does not support the video tag.", 512)])) : v(H) === "audio" ? (s(), S("div", Hn, [E("audio", {
|
|
927
1106
|
ref_key: "audioPlayerRef",
|
|
928
|
-
ref:
|
|
1107
|
+
ref: F,
|
|
929
1108
|
controls: "",
|
|
930
1109
|
class: "w-full"
|
|
931
1110
|
}, [E("source", {
|
|
932
1111
|
src: v(z),
|
|
933
|
-
type: v(
|
|
934
|
-
}, null, 8,
|
|
935
|
-
|
|
1112
|
+
type: v(I)[0].type
|
|
1113
|
+
}, null, 8, Un), n[6] ||= D(" Your browser does not support the audio element. ", -1)], 512)])) : h("", !0), E("div", Wn, [
|
|
1114
|
+
j(i, {
|
|
936
1115
|
text: "",
|
|
937
1116
|
rounded: "",
|
|
938
1117
|
severity: "danger",
|
|
939
1118
|
class: "cui-icon-md shrink-0",
|
|
940
|
-
onClick: n[0] ||= e((e) =>
|
|
1119
|
+
onClick: n[0] ||= e((e) => me(v(I)[0].name), ["stop"])
|
|
941
1120
|
}, {
|
|
942
|
-
icon: b(() => [
|
|
1121
|
+
icon: b(() => [j(r, {
|
|
943
1122
|
width: "100%",
|
|
944
1123
|
height: "100%"
|
|
945
1124
|
})]),
|
|
946
1125
|
_: 1
|
|
947
1126
|
}),
|
|
948
|
-
E("b",
|
|
949
|
-
E("span",
|
|
950
|
-
])])) : (s(), S("div",
|
|
951
|
-
E("label",
|
|
1127
|
+
E("b", Gn, c(v(I)[0].name), 1),
|
|
1128
|
+
E("span", Kn, "(" + c(Se(v(I)[0].size)) + ")", 1)
|
|
1129
|
+
])])) : (s(), S("div", Nn, [E("div", Pn, [
|
|
1130
|
+
E("label", Fn, c(t.$t(`components.detection_interface.${v(ue)}`)), 1),
|
|
952
1131
|
E("input", {
|
|
953
1132
|
id: "restoreInput",
|
|
954
1133
|
ref_key: "fileInputRef",
|
|
955
|
-
ref:
|
|
1134
|
+
ref: ne,
|
|
956
1135
|
type: "file",
|
|
957
1136
|
class: "hidden",
|
|
958
|
-
accept: v(
|
|
959
|
-
onChange:
|
|
960
|
-
}, null, 40,
|
|
961
|
-
v(L) ? (s(), S("p",
|
|
962
|
-
v(
|
|
1137
|
+
accept: v(fe),
|
|
1138
|
+
onChange: K
|
|
1139
|
+
}, null, 40, In),
|
|
1140
|
+
v(L) ? (s(), S("p", Ln, c(t.$t(`components.detection_interface.only_one_${v(H)}_allowed`)), 1)) : h("", !0),
|
|
1141
|
+
v(R) ? (s(), S("p", {
|
|
963
1142
|
key: 1,
|
|
964
1143
|
class: d(["text-red-500 text-sm", { "mt-2": v(L) }])
|
|
965
|
-
}, c(t.$t(`components.detection_interface.${v(
|
|
966
|
-
v(
|
|
1144
|
+
}, c(t.$t(`components.detection_interface.${v(H)}_required`)), 3)) : h("", !0),
|
|
1145
|
+
v(ae) ? (s(), S("p", {
|
|
967
1146
|
key: 2,
|
|
968
|
-
class: d(["text-red-500 text-sm", { "mt-2": v(L) || v(
|
|
1147
|
+
class: d(["text-red-500 text-sm", { "mt-2": v(L) || v(R) }])
|
|
969
1148
|
}, c(t.$t("components.detection_interface.file_size_error")), 3)) : h("", !0)
|
|
970
1149
|
])]))], 32),
|
|
971
|
-
E("div",
|
|
972
|
-
E("div",
|
|
1150
|
+
E("div", qn, [E("span", null, "(" + c(v(W) / 1024 / 1024) + "MB, " + c(v(U).join(", ")) + ")", 1)]),
|
|
1151
|
+
E("div", Jn, [E("h3", Yn, c(t.$t("components.detection_interface.interface_config")), 1), v(se)?.length ? (s(), m(a, {
|
|
973
1152
|
key: 1,
|
|
974
1153
|
"schema-form": {
|
|
975
|
-
schema: v(
|
|
1154
|
+
schema: v(se),
|
|
976
1155
|
config: {}
|
|
977
1156
|
},
|
|
978
|
-
loading: v(
|
|
1157
|
+
loading: v(le),
|
|
979
1158
|
"save-button-label": t.$t("components.detection_interface.detect"),
|
|
980
|
-
"disable-button": v(
|
|
1159
|
+
"disable-button": v(oe),
|
|
981
1160
|
"show-button": "",
|
|
982
|
-
onOnFormSubmit:
|
|
1161
|
+
onOnFormSubmit: q
|
|
983
1162
|
}, null, 8, [
|
|
984
1163
|
"schema-form",
|
|
985
1164
|
"loading",
|
|
986
1165
|
"save-button-label",
|
|
987
1166
|
"disable-button"
|
|
988
|
-
])) : (s(), S("div",
|
|
1167
|
+
])) : (s(), S(w, { key: 0 }, [E("div", Xn, c(t.$t("components.detection_interface.no_interface_config")), 1), j(i, {
|
|
1168
|
+
fluid: "",
|
|
1169
|
+
class: "mt-7 cui-button-medium",
|
|
1170
|
+
loading: v(le),
|
|
1171
|
+
disabled: v(oe),
|
|
1172
|
+
label: t.$t("components.detection_interface.detect"),
|
|
1173
|
+
onClick: n[5] ||= (e) => q({})
|
|
1174
|
+
}, null, 8, [
|
|
1175
|
+
"loading",
|
|
1176
|
+
"disabled",
|
|
1177
|
+
"label"
|
|
1178
|
+
])], 64))])
|
|
989
1179
|
]);
|
|
990
1180
|
};
|
|
991
1181
|
}
|
|
992
|
-
}),
|
|
1182
|
+
}), Qn = {
|
|
993
1183
|
viewBox: "0 0 24 24",
|
|
994
1184
|
width: "1.2em",
|
|
995
1185
|
height: "1.2em"
|
|
996
1186
|
};
|
|
997
|
-
function
|
|
998
|
-
return s(), S("svg",
|
|
1187
|
+
function $n(e, t) {
|
|
1188
|
+
return s(), S("svg", Qn, [...t[0] ||= [E("path", {
|
|
999
1189
|
fill: "none",
|
|
1000
1190
|
stroke: "currentColor",
|
|
1001
1191
|
"stroke-linecap": "round",
|
|
@@ -1004,97 +1194,97 @@ function xn(e, t) {
|
|
|
1004
1194
|
d: "M2 10v3m4-7v11m4-14v18m4-13v7m4-10v13m4-8v3"
|
|
1005
1195
|
}, null, -1)]]);
|
|
1006
1196
|
}
|
|
1007
|
-
var
|
|
1197
|
+
var er = p({
|
|
1008
1198
|
name: "lucide-audio-lines",
|
|
1009
|
-
render:
|
|
1010
|
-
}),
|
|
1199
|
+
render: $n
|
|
1200
|
+
}), tr = {
|
|
1011
1201
|
viewBox: "0 0 24 24",
|
|
1012
1202
|
width: "1.2em",
|
|
1013
1203
|
height: "1.2em"
|
|
1014
1204
|
};
|
|
1015
|
-
function
|
|
1016
|
-
return s(), S("svg",
|
|
1205
|
+
function nr(e, t) {
|
|
1206
|
+
return s(), S("svg", tr, [...t[0] ||= [E("path", {
|
|
1017
1207
|
fill: "currentColor",
|
|
1018
1208
|
d: "M2 7V4q0-.825.588-1.412T4 2h3v2H4v3zm5 15H4q-.825 0-1.412-.587T2 20v-3h2v3h3zm10 0v-2h3v-3h2v3q0 .825-.587 1.413T20 22zm3-15V4h-3V2h3q.825 0 1.413.588T22 4v3zm-7.913 1.913Q11.5 8.325 11.5 7.5t.588-1.412T13.5 5.5t1.413.588T15.5 7.5t-.587 1.413T13.5 9.5t-1.412-.587M12.8 18h-4l1-5.1l-1.8.7V17H6v-4.7l3.95-1.7q.875-.375 1.288-.487T12 10q.525 0 .975.275T13.7 11l1 1.6q.65 1.05 1.763 1.725T19 15v2q-1.65 0-3.088-.687T13.5 14.5z"
|
|
1019
1209
|
}, null, -1)]]);
|
|
1020
1210
|
}
|
|
1021
|
-
var
|
|
1211
|
+
var rr = p({
|
|
1022
1212
|
name: "material-symbols-detection-and-zone",
|
|
1023
|
-
render:
|
|
1024
|
-
}),
|
|
1213
|
+
render: nr
|
|
1214
|
+
}), ir = {
|
|
1025
1215
|
viewBox: "0 0 24 24",
|
|
1026
1216
|
width: "1.2em",
|
|
1027
1217
|
height: "1.2em"
|
|
1028
1218
|
};
|
|
1029
|
-
function
|
|
1030
|
-
return s(), S("svg",
|
|
1219
|
+
function ar(e, t) {
|
|
1220
|
+
return s(), S("svg", ir, [...t[0] ||= [E("path", {
|
|
1031
1221
|
fill: "currentColor",
|
|
1032
1222
|
d: "M8.113 13.888Q7.75 13.525 7.75 13t.363-.888T9 11.75t.888.363t.362.887t-.363.888T9 14.25t-.888-.363m6 0q-.362-.362-.362-.887t.363-.888t.887-.362t.888.363t.362.887t-.363.888t-.887.362t-.888-.363M12 20q3.35 0 5.675-2.325T20 12q0-.6-.075-1.162T19.65 9.75q-.525.125-1.05.188T17.5 10q-2.275 0-4.3-.975T9.75 6.3q-.8 1.95-2.287 3.388T4 11.85V12q0 3.35 2.325 5.675T12 20m0 2q-2.075 0-3.9-.787t-3.175-2.138T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22"
|
|
1033
1223
|
}, null, -1)]]);
|
|
1034
1224
|
}
|
|
1035
|
-
var
|
|
1225
|
+
var or = p({
|
|
1036
1226
|
name: "material-symbols-face",
|
|
1037
|
-
render:
|
|
1038
|
-
}),
|
|
1227
|
+
render: ar
|
|
1228
|
+
}), sr = {
|
|
1039
1229
|
viewBox: "0 0 24 24",
|
|
1040
1230
|
width: "1.2em",
|
|
1041
1231
|
height: "1.2em"
|
|
1042
1232
|
};
|
|
1043
|
-
function
|
|
1044
|
-
return s(), S("svg",
|
|
1233
|
+
function cr(e, t) {
|
|
1234
|
+
return s(), S("svg", sr, [...t[0] ||= [E("path", {
|
|
1045
1235
|
fill: "currentColor",
|
|
1046
1236
|
d: "M8 17q-.425 0-.712-.288T7 16t.288-.712T8 15h5q-.35-.425-.562-.925T12.1 13H10q-.425 0-.712-.288T9 12t.288-.712T10 11h2.1q.125-.575.338-1.075T13 9H4q-.425 0-.712-.288T3 8t.288-.712T4 7h13q2.075 0 3.538 1.463T22 12t-1.463 3.538T17 17zm9-2q1.25 0 2.125-.875T20 12t-.875-2.125T17 9t-2.125.875T14 12t.875 2.125T17 15M3 13q-.425 0-.712-.288T2 12t.288-.712T3 11h4q.425 0 .713.288T8 12t-.288.713T7 13zm1 4q-.425 0-.712-.288T3 16t.288-.712T4 15h1q.425 0 .713.288T6 16t-.288.713T5 17z"
|
|
1047
1237
|
}, null, -1)]]);
|
|
1048
1238
|
}
|
|
1049
|
-
var
|
|
1239
|
+
var lr = p({
|
|
1050
1240
|
name: "material-symbols-motion-blur-rounded",
|
|
1051
|
-
render:
|
|
1052
|
-
}),
|
|
1241
|
+
render: cr
|
|
1242
|
+
}), ur = {
|
|
1053
1243
|
viewBox: "0 0 24 24",
|
|
1054
1244
|
width: "1.2em",
|
|
1055
1245
|
height: "1.2em"
|
|
1056
1246
|
};
|
|
1057
|
-
function
|
|
1058
|
-
return s(), S("svg",
|
|
1247
|
+
function dr(e, t) {
|
|
1248
|
+
return s(), S("svg", ur, [...t[0] ||= [E("path", {
|
|
1059
1249
|
fill: "currentColor",
|
|
1060
1250
|
"fill-rule": "evenodd",
|
|
1061
1251
|
d: "M15.586 2.758a2 2 0 0 1 2.828 0l2.829 2.828a2 2 0 0 1 0 2.829l-2.829 2.828a2 2 0 0 1-2.828 0l-2.829-2.828a2 2 0 0 1 0-2.829zM9 3a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm12 12a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2zM9 13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2z",
|
|
1062
1252
|
"clip-rule": "evenodd"
|
|
1063
1253
|
}, null, -1)]]);
|
|
1064
1254
|
}
|
|
1065
|
-
var
|
|
1255
|
+
var fr = p({
|
|
1066
1256
|
name: "mingcute-classify-2-fill",
|
|
1067
|
-
render:
|
|
1068
|
-
}),
|
|
1257
|
+
render: dr
|
|
1258
|
+
}), pr = {
|
|
1069
1259
|
viewBox: "0 0 256 256",
|
|
1070
1260
|
width: "1.2em",
|
|
1071
1261
|
height: "1.2em"
|
|
1072
1262
|
};
|
|
1073
|
-
function
|
|
1074
|
-
return s(), S("svg",
|
|
1263
|
+
function mr(e, t) {
|
|
1264
|
+
return s(), S("svg", pr, [...t[0] ||= [E("path", {
|
|
1075
1265
|
fill: "currentColor",
|
|
1076
1266
|
d: "M200 156c0 6.5-7.33 12-16 12s-16-5.5-16-12s7.33-12 16-12s16 5.5 16 12m32-100v144a16 16 0 0 1-16 16H40a16 16 0 0 1-16-16V56a16 16 0 0 1 16-16h176a16 16 0 0 1 16 16m-88.63 116.88l-44-104a8 8 0 0 0-14.74 0l-44 104a8 8 0 0 0 14.74 6.24L66.84 152h50.32l11.47 27.12a8 8 0 0 0 14.74-6.24M216 124c0-15.44-14.36-28-32-28a34.86 34.86 0 0 0-20.78 6.68a8 8 0 0 0 9.56 12.83A18.84 18.84 0 0 1 184 112c8.56 0 15.8 5.36 16 11.76v8a35.24 35.24 0 0 0-16-3.76c-17.64 0-32 12.56-32 28s14.36 28 32 28a35.1 35.1 0 0 0 16.93-4.26A8 8 0 0 0 216 176ZM73.61 136h36.78L92 92.53Z"
|
|
1077
1267
|
}, null, -1)]]);
|
|
1078
1268
|
}
|
|
1079
|
-
var
|
|
1269
|
+
var hr = p({
|
|
1080
1270
|
name: "ph-text-aa-fill",
|
|
1081
|
-
render:
|
|
1082
|
-
}),
|
|
1271
|
+
render: mr
|
|
1272
|
+
}), gr = {
|
|
1083
1273
|
viewBox: "0 0 24 24",
|
|
1084
1274
|
width: "1.2em",
|
|
1085
1275
|
height: "1.2em"
|
|
1086
1276
|
};
|
|
1087
|
-
function
|
|
1088
|
-
return s(), S("svg",
|
|
1277
|
+
function _r(e, t) {
|
|
1278
|
+
return s(), S("svg", gr, [...t[0] ||= [E("g", { fill: "currentColor" }, [E("path", { d: "M12.75 3C12.75 2.58579 12.4142 2.25 12 2.25C11.5858 2.25 11.25 2.58579 11.25 3V5C11.25 5.41421 11.5858 5.75 12 5.75C12.4142 5.75 12.75 5.41421 12.75 5V3Z" }), E("path", {
|
|
1089
1279
|
"fill-rule": "evenodd",
|
|
1090
1280
|
d: "M22.75 12.0565C22.75 13.8943 22.75 15.3499 22.5969 16.4891C22.4392 17.6615 22.1071 18.6105 21.3588 19.3588C20.6104 20.1072 19.6614 20.4393 18.489 20.597C17.3498 20.7501 15.8942 20.7501 14.0565 20.7501H9.94348C8.10577 20.7501 6.65017 20.7501 5.51098 20.597C4.33856 20.4393 3.38961 20.1072 2.64124 19.3588C1.89288 18.6105 1.56076 17.6615 1.40314 16.4891C1.24997 15.3499 1.24999 13.8943 1.25 12.0565L1.25 11.7725C1.25002 11.5529 1.25011 11.3388 1.25053 11.1303C1.25132 10.7466 1.25327 10.3814 1.25806 10.034C1.27152 9.05873 1.30741 8.22316 1.40314 7.51116C1.56076 6.33873 1.89288 5.38978 2.64124 4.64142C3.38961 3.89306 4.33856 3.56094 5.51098 3.40331C6.22742 3.30699 7.069 3.27125 8.05206 3.25799C8.2173 3.25576 8.47469 3.25412 8.74859 3.25292C9.3014 3.2505 9.75 3.69873 9.75 4.25155V5.00008C9.75 6.24272 10.7574 7.25008 12 7.25008C13.2426 7.25008 14.25 6.24272 14.25 5.00008V4.25028C14.25 3.69796 14.698 3.24935 15.2503 3.25196C16.5391 3.25806 17.6086 3.28494 18.489 3.40331C19.6614 3.56094 20.6104 3.89306 21.3588 4.64142C22.1071 5.38978 22.4392 6.33873 22.5969 7.51116C22.75 8.65036 22.75 10.1059 22.75 11.9437V12.0565ZM8 9.75008C7.58579 9.75008 7.25 10.0859 7.25 10.5001C7.25 10.9143 7.58579 11.2501 8 11.2501H16C16.4142 11.2501 16.75 10.9143 16.75 10.5001C16.75 10.0859 16.4142 9.75008 16 9.75008H8ZM8 13.2501C7.58579 13.2501 7.25 13.5859 7.25 14.0001C7.25 14.4143 7.58579 14.7501 8 14.7501H13.5C13.9142 14.7501 14.25 14.4143 14.25 14.0001C14.25 13.5859 13.9142 13.2501 13.5 13.2501H8Z",
|
|
1091
1281
|
"clip-rule": "evenodd"
|
|
1092
1282
|
})], -1)]]);
|
|
1093
1283
|
}
|
|
1094
|
-
var
|
|
1284
|
+
var vr = p({
|
|
1095
1285
|
name: "solar-plate-bold",
|
|
1096
|
-
render:
|
|
1097
|
-
}),
|
|
1286
|
+
render: _r
|
|
1287
|
+
}), yr = /* @__PURE__ */ k({
|
|
1098
1288
|
__name: "PluginSchema",
|
|
1099
1289
|
props: {
|
|
1100
1290
|
schemaConfig: {},
|
|
@@ -1105,7 +1295,7 @@ var Bn = p({
|
|
|
1105
1295
|
pluginId: {}
|
|
1106
1296
|
},
|
|
1107
1297
|
setup(e, { expose: t }) {
|
|
1108
|
-
let n = e, r =
|
|
1298
|
+
let n = e, r = ie(), o = i("dialogRef"), c = i("dialogRefProps"), { schemaConfig: l, pluginName: u, cameraId: d, buttonKey: f, sensorId: p, pluginId: h } = a(n), g = ze(u), _ = Ve(d, u), ee = Be(p, h), b = A({
|
|
1109
1299
|
schema: [],
|
|
1110
1300
|
config: {}
|
|
1111
1301
|
}), S = y(() => d.value && p.value ? "sensor" : d.value ? "camera" : "plugin"), C = y(() => {
|
|
@@ -1124,7 +1314,7 @@ var Bn = p({
|
|
|
1124
1314
|
...e
|
|
1125
1315
|
}, n = await C.value.submitValue(f.value, t);
|
|
1126
1316
|
if (n?.toast) {
|
|
1127
|
-
let e =
|
|
1317
|
+
let e = U(n.toast.type);
|
|
1128
1318
|
r.add({
|
|
1129
1319
|
severity: e,
|
|
1130
1320
|
detail: n.toast.message,
|
|
@@ -1139,7 +1329,7 @@ var Bn = p({
|
|
|
1139
1329
|
deep: !0,
|
|
1140
1330
|
immediate: !0
|
|
1141
1331
|
}), t({ isLoading: w }), (e, t) => {
|
|
1142
|
-
let n =
|
|
1332
|
+
let n = Ke;
|
|
1143
1333
|
return s(), m(n, {
|
|
1144
1334
|
"schema-form": v(b),
|
|
1145
1335
|
loading: v(w),
|
|
@@ -1149,44 +1339,44 @@ var Bn = p({
|
|
|
1149
1339
|
}, null, 8, ["schema-form", "loading"]);
|
|
1150
1340
|
};
|
|
1151
1341
|
}
|
|
1152
|
-
}),
|
|
1342
|
+
}), br = { class: "font-semibold text-xl truncate" }, xr = { class: "lg:col-span-2 order-1 !h-[220px]" }, Sr = { class: "flex w-full h-full items-center justify-center" }, Cr = { class: "lg:col-span-1 lg:row-span-3 order-2" }, wr = { class: "lg:!hidden card-title" }, Tr = {
|
|
1153
1343
|
key: 0,
|
|
1154
1344
|
class: "w-full h-full flex items-center justify-center"
|
|
1155
|
-
},
|
|
1345
|
+
}, Er = { key: 1 }, Dr = { class: "hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, Or = {
|
|
1156
1346
|
key: 0,
|
|
1157
1347
|
class: "flex items-center justify-center w-full h-full text-muted text-sm"
|
|
1158
|
-
},
|
|
1348
|
+
}, kr = ["onClick"], Ar = {
|
|
1159
1349
|
key: 0,
|
|
1160
1350
|
class: "w-full h-full"
|
|
1161
|
-
},
|
|
1351
|
+
}, jr = {
|
|
1162
1352
|
key: 0,
|
|
1163
1353
|
class: "flex flex-col items-center justify-center w-full h-full text-muted text-sm gap-3 text-center"
|
|
1164
|
-
},
|
|
1354
|
+
}, Mr = {
|
|
1165
1355
|
key: 2,
|
|
1166
1356
|
class: "flex items-center justify-center w-full h-full text-muted text-sm"
|
|
1167
|
-
},
|
|
1168
|
-
key:
|
|
1357
|
+
}, Nr = {
|
|
1358
|
+
key: 12,
|
|
1169
1359
|
class: "w-full h-full"
|
|
1170
|
-
},
|
|
1360
|
+
}, Pr = {
|
|
1171
1361
|
key: 0,
|
|
1172
1362
|
class: "flex items-center justify-center w-full h-full text-muted text-sm"
|
|
1173
|
-
},
|
|
1363
|
+
}, Fr = {
|
|
1174
1364
|
key: 1,
|
|
1175
1365
|
class: "flex items-center justify-center gap-2 w-full h-full text-muted text-sm"
|
|
1176
|
-
},
|
|
1366
|
+
}, Ir = /*#__PURE__*/ I(/* @__PURE__ */ k({
|
|
1177
1367
|
__name: "Plugin",
|
|
1178
1368
|
setup(e) {
|
|
1179
|
-
let t = new
|
|
1369
|
+
let t = new fe(), n = new qe(), i = Te(), a = ve(), u = L(), p = ie(), C = ye(), { lgBreakpoint: T } = B(), { t: D } = Me(), O = A(u.params.scope), k = A(u.params.pluginname), M = y(() => O.value ? `${O.value}/${k.value}` : k.value), { contract: N, error: P } = Re(M);
|
|
1180
1370
|
n.toggleQueryActivator("getPluginContractQuery", !1);
|
|
1181
|
-
let { data:
|
|
1182
|
-
function
|
|
1371
|
+
let { data: F, isBusy: I } = n.getPluginQuery(M), { data: R, isBusy: se } = n.getPluginReadmeQuery(M), { data: le, isBusy: de } = n.getPluginChangelogQuery(M), { data: W } = n.getPluginContractQuery(M), G = ze(M), K = G.config, ge = G.isLoading, { mutate: _e, isPending: be } = t.activateCameraExtensionQuery(), { mutate: xe, isPending: Ce } = t.deactivateCameraExtensionQuery(), q = A("settings"), J = A([]), Y = A([]), Ee = A(Oe.UNKNOWN), De, ke = y(() => F.value?.contract?.role !== Ne.Service), Ae = y(() => !!N.value && Q(N.value, Z.NVR)), X = y(() => Ee.value === Oe.READY || Ee.value === Oe.STARTED), Pe = y(() => X.value ? Ae.value || K.value?.schema?.length ? !0 : ge.value : !1);
|
|
1372
|
+
function Le(e, t) {
|
|
1183
1373
|
return e.pluginInfo?.name === t;
|
|
1184
1374
|
}
|
|
1185
|
-
async function
|
|
1375
|
+
async function Be(e) {
|
|
1186
1376
|
try {
|
|
1187
|
-
await
|
|
1377
|
+
await G.setValue(e.key, void 0), p.add({
|
|
1188
1378
|
severity: "success",
|
|
1189
|
-
detail:
|
|
1379
|
+
detail: D("components.toast.config_updated"),
|
|
1190
1380
|
life: 3e3
|
|
1191
1381
|
});
|
|
1192
1382
|
} catch (e) {
|
|
@@ -1197,26 +1387,26 @@ var Bn = p({
|
|
|
1197
1387
|
});
|
|
1198
1388
|
}
|
|
1199
1389
|
}
|
|
1200
|
-
async function
|
|
1390
|
+
async function Ve(e) {
|
|
1201
1391
|
try {
|
|
1202
|
-
let t = await
|
|
1392
|
+
let t = await G.submitValue(e.key, e.payload);
|
|
1203
1393
|
if (t?.toast) {
|
|
1204
|
-
let e =
|
|
1394
|
+
let e = U(t.toast.type);
|
|
1205
1395
|
p.add({
|
|
1206
1396
|
severity: e,
|
|
1207
1397
|
detail: t.toast.message,
|
|
1208
1398
|
life: 3e3
|
|
1209
1399
|
});
|
|
1210
1400
|
}
|
|
1211
|
-
t?.schema?.length && C.openComponentDialog(
|
|
1212
|
-
title:
|
|
1401
|
+
t?.schema?.length && C.openComponentDialog(yr, { data: {
|
|
1402
|
+
title: D("components.dialog.title.config"),
|
|
1213
1403
|
hideConfirmButton: !0,
|
|
1214
1404
|
contentProps: {
|
|
1215
1405
|
schemaConfig: {
|
|
1216
1406
|
schema: t.schema,
|
|
1217
1407
|
config: e.payload
|
|
1218
1408
|
},
|
|
1219
|
-
pluginName:
|
|
1409
|
+
pluginName: M.value,
|
|
1220
1410
|
buttonKey: e.key
|
|
1221
1411
|
}
|
|
1222
1412
|
} });
|
|
@@ -1228,12 +1418,12 @@ var Bn = p({
|
|
|
1228
1418
|
});
|
|
1229
1419
|
}
|
|
1230
1420
|
}
|
|
1231
|
-
async function
|
|
1232
|
-
if (
|
|
1233
|
-
let t =
|
|
1234
|
-
await
|
|
1421
|
+
async function He(e) {
|
|
1422
|
+
if (K.value?.schema.length) try {
|
|
1423
|
+
let t = je(K.value.schema, e);
|
|
1424
|
+
await G.setConfig(t), p.add({
|
|
1235
1425
|
severity: "success",
|
|
1236
|
-
detail:
|
|
1426
|
+
detail: D("components.toast.config_updated"),
|
|
1237
1427
|
life: 3e3
|
|
1238
1428
|
});
|
|
1239
1429
|
} catch (e) {
|
|
@@ -1244,177 +1434,187 @@ var Bn = p({
|
|
|
1244
1434
|
});
|
|
1245
1435
|
}
|
|
1246
1436
|
}
|
|
1247
|
-
async function
|
|
1248
|
-
|
|
1437
|
+
async function Ue(e) {
|
|
1438
|
+
F.value && F.value.contract && (Y.value.includes(e.name) ? xe({
|
|
1249
1439
|
cameraname: e.name,
|
|
1250
|
-
pluginname:
|
|
1440
|
+
pluginname: F.value.pluginName
|
|
1251
1441
|
}, { onSuccess: () => {
|
|
1252
|
-
|
|
1253
|
-
} }) :
|
|
1442
|
+
Y.value = Y.value.filter((t) => t !== e.name);
|
|
1443
|
+
} }) : _e({
|
|
1254
1444
|
cameraname: e.name,
|
|
1255
|
-
pluginname:
|
|
1445
|
+
pluginname: F.value.pluginName
|
|
1256
1446
|
}, { onSuccess: () => {
|
|
1257
|
-
|
|
1447
|
+
Y.value = [...Y.value, e.name];
|
|
1258
1448
|
} }));
|
|
1259
1449
|
}
|
|
1260
|
-
return x(
|
|
1450
|
+
return x(F, (e) => {
|
|
1261
1451
|
if (!e || e.disabled) {
|
|
1262
|
-
let e =
|
|
1263
|
-
e ?
|
|
1452
|
+
let e = J.value.some((e) => e.name === "settings"), t = J.value.some((e) => e.name === "cameras");
|
|
1453
|
+
e ? q.value = "settings" : t && (q.value = "cameras");
|
|
1264
1454
|
}
|
|
1265
1455
|
}, { deep: !0 }), x(u, () => {
|
|
1266
|
-
|
|
1456
|
+
k.value = u.params.pluginname;
|
|
1267
1457
|
}, {
|
|
1268
1458
|
deep: !0,
|
|
1269
1459
|
immediate: !0
|
|
1270
|
-
}), x([
|
|
1271
|
-
e && !e.disabled && t && await
|
|
1272
|
-
}, { immediate: !0 }), x(
|
|
1273
|
-
|
|
1274
|
-
let t =
|
|
1275
|
-
t.connect(), x(t.status, (e) =>
|
|
1460
|
+
}), x([F, G.isConnected], async ([e, t]) => {
|
|
1461
|
+
e && !e.disabled && t && await G.getConfig();
|
|
1462
|
+
}, { immediate: !0 }), x(M, (e) => {
|
|
1463
|
+
De?.stop(), e && (De = g(), De.run(() => {
|
|
1464
|
+
let t = Ze(e);
|
|
1465
|
+
t.connect(), x(t.status, (e) => Ee.value = e, { immediate: !0 });
|
|
1276
1466
|
}));
|
|
1277
|
-
}, { immediate: !0 }), x(
|
|
1278
|
-
|
|
1467
|
+
}, { immediate: !0 }), x(K, () => {
|
|
1468
|
+
K.value ? n.toggleQueryActivator("getPluginContractQuery", !0) : n.toggleQueryActivator("getPluginContractQuery", !1);
|
|
1279
1469
|
}, {
|
|
1280
1470
|
deep: !0,
|
|
1281
1471
|
immediate: !0
|
|
1282
1472
|
}), x([
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1473
|
+
W,
|
|
1474
|
+
K,
|
|
1475
|
+
N,
|
|
1476
|
+
Pe,
|
|
1477
|
+
X,
|
|
1478
|
+
ke
|
|
1289
1479
|
], () => {
|
|
1290
1480
|
let e = [], t = !1;
|
|
1291
|
-
|
|
1481
|
+
Pe.value && e.push({
|
|
1292
1482
|
name: "settings",
|
|
1293
|
-
icon:
|
|
1483
|
+
icon: H,
|
|
1294
1484
|
isInterface: !1,
|
|
1295
|
-
tooltip:
|
|
1296
|
-
}),
|
|
1485
|
+
tooltip: D("views.plugin.settings_tab_tooltip")
|
|
1486
|
+
}), X.value && N.value && Q(N.value, Z.MotionDetection) && (t = !0, e.push({
|
|
1297
1487
|
name: "motion_detection",
|
|
1298
|
-
icon:
|
|
1488
|
+
icon: lr,
|
|
1299
1489
|
isInterface: !0,
|
|
1300
|
-
tooltip:
|
|
1301
|
-
})),
|
|
1490
|
+
tooltip: D("views.plugin.motion_detection_tab_tooltip")
|
|
1491
|
+
})), X.value && N.value && Q(N.value, Z.ObjectDetection) && (t = !0, e.push({
|
|
1302
1492
|
name: "object_detection",
|
|
1303
|
-
icon:
|
|
1493
|
+
icon: rr,
|
|
1304
1494
|
isInterface: !0,
|
|
1305
|
-
tooltip:
|
|
1306
|
-
})),
|
|
1495
|
+
tooltip: D("views.plugin.object_detection_tab_tooltip")
|
|
1496
|
+
})), X.value && N.value && Q(N.value, Z.Segmentation) && (t = !0, e.push({
|
|
1497
|
+
name: "segmentation",
|
|
1498
|
+
icon: $e,
|
|
1499
|
+
isInterface: !0,
|
|
1500
|
+
tooltip: D("views.plugin.segmentation_tab_tooltip")
|
|
1501
|
+
})), X.value && N.value && Q(N.value, Z.AudioDetection) && (t = !0, e.push({
|
|
1307
1502
|
name: "audio_detection",
|
|
1308
|
-
icon:
|
|
1503
|
+
icon: er,
|
|
1309
1504
|
isInterface: !0,
|
|
1310
|
-
tooltip:
|
|
1311
|
-
})),
|
|
1505
|
+
tooltip: D("views.plugin.audio_detection_tab_tooltip")
|
|
1506
|
+
})), X.value && N.value && Q(N.value, Z.FaceDetection) && (t = !0, e.push({
|
|
1312
1507
|
name: "face_detection",
|
|
1313
|
-
icon:
|
|
1508
|
+
icon: or,
|
|
1314
1509
|
isInterface: !0,
|
|
1315
|
-
tooltip:
|
|
1316
|
-
})),
|
|
1510
|
+
tooltip: D("views.plugin.face_detection_tab_tooltip")
|
|
1511
|
+
})), X.value && N.value && Q(N.value, Z.FaceEmbedding) && (t = !0, e.push({
|
|
1317
1512
|
name: "face_recognition",
|
|
1318
|
-
icon:
|
|
1513
|
+
icon: Ie,
|
|
1514
|
+
isInterface: !0,
|
|
1515
|
+
tooltip: D("views.plugin.face_recognition_tab_tooltip")
|
|
1516
|
+
})), X.value && N.value && Q(N.value, Z.PersonEmbedding) && (t = !0, e.push({
|
|
1517
|
+
name: "person_embedding",
|
|
1518
|
+
icon: et,
|
|
1319
1519
|
isInterface: !0,
|
|
1320
|
-
tooltip:
|
|
1321
|
-
})),
|
|
1520
|
+
tooltip: D("views.plugin.person_embedding_tab_tooltip")
|
|
1521
|
+
})), X.value && N.value && Q(N.value, Z.LicensePlateDetection) && (t = !0, e.push({
|
|
1322
1522
|
name: "license_plate_detection",
|
|
1323
|
-
icon:
|
|
1523
|
+
icon: vr,
|
|
1324
1524
|
isInterface: !0,
|
|
1325
|
-
tooltip:
|
|
1326
|
-
})),
|
|
1525
|
+
tooltip: D("views.plugin.license_plate_detection_tab_tooltip")
|
|
1526
|
+
})), X.value && N.value && Q(N.value, Z.ClassifierDetection) && (t = !0, e.push({
|
|
1327
1527
|
name: "classifier_detection",
|
|
1328
|
-
icon:
|
|
1528
|
+
icon: fr,
|
|
1329
1529
|
isInterface: !0,
|
|
1330
|
-
tooltip:
|
|
1331
|
-
})),
|
|
1530
|
+
tooltip: D("views.plugin.classifier_detection_tab_tooltip")
|
|
1531
|
+
})), X.value && N.value && Q(N.value, Z.ClipDetection) && (t = !0, e.push({
|
|
1332
1532
|
name: "clip_detection",
|
|
1333
|
-
icon:
|
|
1533
|
+
icon: hr,
|
|
1334
1534
|
isInterface: !0,
|
|
1335
|
-
tooltip:
|
|
1336
|
-
})),
|
|
1535
|
+
tooltip: D("views.plugin.clip_detection_tab_tooltip")
|
|
1536
|
+
})), X.value && N.value && Q(N.value, Z.Notifier) && (t = !0, e.push({
|
|
1337
1537
|
name: "notification",
|
|
1338
|
-
icon:
|
|
1538
|
+
icon: me,
|
|
1339
1539
|
isInterface: !0,
|
|
1340
|
-
tooltip:
|
|
1341
|
-
})),
|
|
1540
|
+
tooltip: D("views.plugin.notification_tab_tooltip")
|
|
1541
|
+
})), ke.value && e.push({
|
|
1342
1542
|
name: "cameras",
|
|
1343
1543
|
icon: ue,
|
|
1344
1544
|
isInterface: !1,
|
|
1345
|
-
tooltip:
|
|
1346
|
-
}),
|
|
1545
|
+
tooltip: D("views.plugin.cameras_tab_tooltip")
|
|
1546
|
+
}), W.value?.cameras.length && (Y.value = W.value.cameras.filter((e) => e.plugins?.some((e) => e.name === M.value)).map((e) => e.name)), J.value = [...e], F.value?.disabled || (Pe.value ? q.value = "settings" : t ? q.value = J.value.filter((e) => e.isInterface)[0].name : ke.value && (q.value = "cameras"));
|
|
1347
1547
|
}, {
|
|
1348
1548
|
deep: !0,
|
|
1349
1549
|
immediate: !0
|
|
1350
|
-
}), x(
|
|
1351
|
-
e &&
|
|
1352
|
-
}), r(() =>
|
|
1353
|
-
let n =
|
|
1354
|
-
return s(), S("div", { key: v(
|
|
1355
|
-
|
|
1356
|
-
default: b(() => [
|
|
1550
|
+
}), x(P, (e) => {
|
|
1551
|
+
e && F.value && !F.value.disabled && i.error("Error connecting to plugin:", e);
|
|
1552
|
+
}), r(() => De?.stop()), (e, t) => {
|
|
1553
|
+
let n = nt, r = $, i = he, u = z, p = we, g = Qe, y = oe, x = Se, C = Fe, D = Ke, O = Zn, k = Lt, A = Je, N = ae, P = pe, ie = re, L = ce, B = V, ue = lt, H = ne;
|
|
1554
|
+
return s(), S("div", { key: v(M) }, [
|
|
1555
|
+
j(i, { position: "left" }, {
|
|
1556
|
+
default: b(() => [j(r, {
|
|
1357
1557
|
severity: "secondary",
|
|
1358
1558
|
text: "",
|
|
1359
1559
|
class: "cui-button p-2 text-color non-draggable-region",
|
|
1360
1560
|
onClick: t[0] ||= (t) => e.$router.push("/plugins")
|
|
1361
1561
|
}, {
|
|
1362
|
-
icon: b(() => [
|
|
1562
|
+
icon: b(() => [j(n, { class: "w-6 h-6" })]),
|
|
1363
1563
|
_: 1
|
|
1364
1564
|
})]),
|
|
1365
1565
|
_: 1
|
|
1366
1566
|
}),
|
|
1367
|
-
|
|
1368
|
-
default: b(() => [E("span",
|
|
1567
|
+
j(i, { position: "center" }, {
|
|
1568
|
+
default: b(() => [E("span", br, c(e.$t("views.plugin.title")), 1)]),
|
|
1369
1569
|
_: 1
|
|
1370
1570
|
}),
|
|
1371
1571
|
E("div", { class: d(["grid grid-auto grid-cols-1 lg:grid-cols-3 gap-6 lg:h-full", { "!gap-2": v(T) }]) }, [
|
|
1372
|
-
E("div",
|
|
1373
|
-
key: v(
|
|
1374
|
-
plugin: v(
|
|
1572
|
+
E("div", xr, [v(F) ? (s(), m(g, {
|
|
1573
|
+
key: v(F).pluginName,
|
|
1574
|
+
plugin: v(F),
|
|
1375
1575
|
class: "h-[220px]"
|
|
1376
1576
|
}, null, 8, ["plugin"])) : (s(), m(p, {
|
|
1377
1577
|
key: 0,
|
|
1378
1578
|
class: "cui-card items-center justify-center !h-[220px]"
|
|
1379
1579
|
}, {
|
|
1380
|
-
content: b(() => [E("div",
|
|
1580
|
+
content: b(() => [E("div", Sr, [j(u, {
|
|
1381
1581
|
class: "w-[30px] h-[30px] m-0",
|
|
1382
1582
|
"stroke-width": "5"
|
|
1383
1583
|
})])]),
|
|
1384
1584
|
_: 1
|
|
1385
1585
|
}))]),
|
|
1386
|
-
E("div",
|
|
1387
|
-
content: b(() => [v(
|
|
1586
|
+
E("div", Cr, [E("span", wr, c(e.$t("views.plugin.settings")), 1), j(p, { class: d(["cui-card !h-auto lg:!h-full", { "items-center justify-center": v(I) || v(ge) }]) }, {
|
|
1587
|
+
content: b(() => [v(I) || v(ge) ? (s(), S("div", Tr, [j(u, {
|
|
1388
1588
|
class: "w-[30px] h-[30px] m-0",
|
|
1389
1589
|
"stroke-width": "5"
|
|
1390
|
-
})])) : (s(), S("div",
|
|
1590
|
+
})])) : (s(), S("div", Er, [E("h3", Dr, c(e.$t("views.plugin.settings")), 1), v(F)?.disabled ? (s(), S("div", Or, [E("span", null, c(e.$t("views.plugin.disabled_info")), 1)])) : (s(), m(B, {
|
|
1391
1591
|
key: 1,
|
|
1392
|
-
value: v(
|
|
1393
|
-
"onUpdate:value": t[2] ||= (e) => ee(
|
|
1592
|
+
value: v(q),
|
|
1593
|
+
"onUpdate:value": t[2] ||= (e) => ee(q) ? q.value = e : null,
|
|
1394
1594
|
scrollable: ""
|
|
1395
1595
|
}, {
|
|
1396
|
-
default: b(() => [
|
|
1596
|
+
default: b(() => [j(x, {
|
|
1397
1597
|
class: "justify-between",
|
|
1398
1598
|
pt: {
|
|
1399
1599
|
activeBar: { class: "!w-auto" },
|
|
1400
1600
|
content: { class: "border-[1px] border-color cui-rounded-corner overflow-hidden" }
|
|
1401
1601
|
}
|
|
1402
1602
|
}, {
|
|
1403
|
-
default: b(() => [(s(!0), S(w, null, o(v(
|
|
1603
|
+
default: b(() => [(s(!0), S(w, null, o(v(J), (e, t) => (s(), m(y, {
|
|
1404
1604
|
key: t,
|
|
1405
|
-
disabled: e.isInterface && v(
|
|
1605
|
+
disabled: e.isInterface && v(F)?.disabled,
|
|
1406
1606
|
value: e.name,
|
|
1407
1607
|
"as-child": ""
|
|
1408
1608
|
}, {
|
|
1409
|
-
default: b((t) => [
|
|
1609
|
+
default: b((t) => [te((s(), S("div", l({ ref_for: !0 }, t.a11yAttrs, {
|
|
1410
1610
|
class: ["flex flex-col items-center justify-center flex-1 content-background !py-3 h-[55px]", [{ "hover:!text-color active:!text-color focus:!text-color": !t.active }, t.class]],
|
|
1411
1611
|
onClick: t.onClick
|
|
1412
|
-
}), [(s(), m(f(e.icon), { class: "w-5 h-5" }))], 16,
|
|
1612
|
+
}), [(s(), m(f(e.icon), { class: "w-5 h-5" }))], 16, kr)), [[H, { value: e.tooltip }]])]),
|
|
1413
1613
|
_: 2
|
|
1414
1614
|
}, 1032, ["disabled", "value"]))), 128))]),
|
|
1415
1615
|
_: 1
|
|
1416
|
-
}),
|
|
1417
|
-
default: b(() => [(s(!0), S(w, null, o(v(
|
|
1616
|
+
}), j(L, { class: "px-0 pb-0" }, {
|
|
1617
|
+
default: b(() => [(s(!0), S(w, null, o(v(J), (n, i) => (s(), m(ie, {
|
|
1418
1618
|
key: i,
|
|
1419
1619
|
value: n.name,
|
|
1420
1620
|
"as-child": ""
|
|
@@ -1422,76 +1622,84 @@ var Bn = p({
|
|
|
1422
1622
|
default: b((i) => [i.active ? (s(), S("div", l({
|
|
1423
1623
|
key: 0,
|
|
1424
1624
|
class: i.class
|
|
1425
|
-
}, { ref_for: !0 }, i.a11yAttrs), [n.name === "settings" ? (s(), S("div",
|
|
1625
|
+
}, { ref_for: !0 }, i.a11yAttrs), [n.name === "settings" ? (s(), S("div", Ar, [v(Ae) ? (s(), S("div", jr, [E("span", null, c(e.$t("views.plugin.nvr_settings_hint")), 1), j(r, {
|
|
1426
1626
|
class: "cui-button-medium whitespace-nowrap",
|
|
1427
1627
|
label: e.$t("views.plugin.nvr_settings_button"),
|
|
1428
1628
|
onClick: t[1] ||= (t) => e.$router.push("/settings/recordings")
|
|
1429
1629
|
}, {
|
|
1430
|
-
icon: b(() => [
|
|
1630
|
+
icon: b(() => [j(C, { class: "w-4 h-4" })]),
|
|
1431
1631
|
_: 1
|
|
1432
|
-
}, 8, ["label"])])) : v(
|
|
1632
|
+
}, 8, ["label"])])) : v(K)?.schema?.length ? (s(), m(D, {
|
|
1433
1633
|
key: 1,
|
|
1434
1634
|
"schema-form": {
|
|
1435
|
-
schema: v(
|
|
1436
|
-
config: v(
|
|
1635
|
+
schema: v(K).schema,
|
|
1636
|
+
config: v(K).config
|
|
1437
1637
|
},
|
|
1438
|
-
loading: v(
|
|
1638
|
+
loading: v(G).isLoading.value,
|
|
1439
1639
|
"save-button-color": "success",
|
|
1440
|
-
onOnAction:
|
|
1441
|
-
onOnSubmit:
|
|
1442
|
-
onOnFormSubmit:
|
|
1443
|
-
}, null, 8, ["schema-form", "loading"])) : (s(), S("div",
|
|
1640
|
+
onOnAction: Be,
|
|
1641
|
+
onOnSubmit: Ve,
|
|
1642
|
+
onOnFormSubmit: He
|
|
1643
|
+
}, null, 8, ["schema-form", "loading"])) : (s(), S("div", Mr, [E("span", null, c(e.$t("views.plugin.no_settings")), 1)]))])) : n.name === "motion_detection" ? (s(), m(O, {
|
|
1444
1644
|
key: 1,
|
|
1445
|
-
"plugin-name": v(
|
|
1645
|
+
"plugin-name": v(M),
|
|
1446
1646
|
type: "motionDetection"
|
|
1447
|
-
}, null, 8, ["plugin-name"])) : n.name === "object_detection" ? (s(), m(
|
|
1647
|
+
}, null, 8, ["plugin-name"])) : n.name === "object_detection" ? (s(), m(O, {
|
|
1448
1648
|
key: 2,
|
|
1449
|
-
"plugin-name": v(
|
|
1649
|
+
"plugin-name": v(M),
|
|
1450
1650
|
type: "objectDetection"
|
|
1451
|
-
}, null, 8, ["plugin-name"])) : n.name === "
|
|
1651
|
+
}, null, 8, ["plugin-name"])) : n.name === "segmentation" ? (s(), m(O, {
|
|
1452
1652
|
key: 3,
|
|
1453
|
-
"plugin-name": v(
|
|
1454
|
-
type: "
|
|
1455
|
-
}, null, 8, ["plugin-name"])) : n.name === "
|
|
1653
|
+
"plugin-name": v(M),
|
|
1654
|
+
type: "segmentation"
|
|
1655
|
+
}, null, 8, ["plugin-name"])) : n.name === "audio_detection" ? (s(), m(O, {
|
|
1456
1656
|
key: 4,
|
|
1457
|
-
"plugin-name": v(
|
|
1458
|
-
type: "
|
|
1459
|
-
}, null, 8, ["plugin-name"])) : n.name === "
|
|
1657
|
+
"plugin-name": v(M),
|
|
1658
|
+
type: "audioDetection"
|
|
1659
|
+
}, null, 8, ["plugin-name"])) : n.name === "face_detection" ? (s(), m(O, {
|
|
1460
1660
|
key: 5,
|
|
1461
|
-
"plugin-name": v(
|
|
1462
|
-
type: "
|
|
1463
|
-
}, null, 8, ["plugin-name"])) : n.name === "
|
|
1661
|
+
"plugin-name": v(M),
|
|
1662
|
+
type: "faceDetection"
|
|
1663
|
+
}, null, 8, ["plugin-name"])) : n.name === "face_recognition" ? (s(), m(O, {
|
|
1464
1664
|
key: 6,
|
|
1465
|
-
"plugin-name": v(
|
|
1466
|
-
type: "
|
|
1467
|
-
}, null, 8, ["plugin-name"])) : n.name === "
|
|
1665
|
+
"plugin-name": v(M),
|
|
1666
|
+
type: "faceRecognition"
|
|
1667
|
+
}, null, 8, ["plugin-name"])) : n.name === "person_embedding" ? (s(), m(O, {
|
|
1468
1668
|
key: 7,
|
|
1469
|
-
"plugin-name": v(
|
|
1470
|
-
type: "
|
|
1471
|
-
}, null, 8, ["plugin-name"])) : n.name === "
|
|
1669
|
+
"plugin-name": v(M),
|
|
1670
|
+
type: "personEmbedding"
|
|
1671
|
+
}, null, 8, ["plugin-name"])) : n.name === "license_plate_detection" ? (s(), m(O, {
|
|
1472
1672
|
key: 8,
|
|
1473
|
-
"plugin-name": v(
|
|
1474
|
-
type: "
|
|
1475
|
-
}, null, 8, ["plugin-name"])) : n.name === "
|
|
1673
|
+
"plugin-name": v(M),
|
|
1674
|
+
type: "licensePlateDetection"
|
|
1675
|
+
}, null, 8, ["plugin-name"])) : n.name === "classifier_detection" ? (s(), m(O, {
|
|
1476
1676
|
key: 9,
|
|
1477
|
-
"plugin-name": v(
|
|
1478
|
-
|
|
1677
|
+
"plugin-name": v(M),
|
|
1678
|
+
type: "classifierDetection"
|
|
1679
|
+
}, null, 8, ["plugin-name"])) : n.name === "clip_detection" ? (s(), m(O, {
|
|
1680
|
+
key: 10,
|
|
1681
|
+
"plugin-name": v(M),
|
|
1682
|
+
type: "clipDetection"
|
|
1683
|
+
}, null, 8, ["plugin-name"])) : n.name === "notification" ? (s(), m(k, {
|
|
1684
|
+
key: 11,
|
|
1685
|
+
"plugin-name": v(M)
|
|
1686
|
+
}, null, 8, ["plugin-name"])) : n.name === "cameras" ? (s(), S("div", Nr, [v(W)?.cameras?.length ? v(X) ? (s(!0), S(w, { key: 2 }, o(v(W).cameras, (e) => (s(), S("div", {
|
|
1479
1687
|
key: e.name,
|
|
1480
1688
|
class: "cui-list-item"
|
|
1481
|
-
}, [
|
|
1482
|
-
disabled: v(
|
|
1483
|
-
active: v(
|
|
1689
|
+
}, [j(P, {
|
|
1690
|
+
disabled: v(be) || v(Ce) || v(G).isLoading.value,
|
|
1691
|
+
active: v(Y).includes(e.name),
|
|
1484
1692
|
class: "h-14",
|
|
1485
1693
|
onClick: (t) => v(a).open({ cameraName: e.name })
|
|
1486
1694
|
}, _({
|
|
1487
1695
|
default: b(() => [E("span", null, c(e.name), 1)]),
|
|
1488
1696
|
_: 2
|
|
1489
|
-
}, [!v(
|
|
1697
|
+
}, [!v(F) || !Le(e, v(F).pluginName) ? {
|
|
1490
1698
|
name: "append",
|
|
1491
|
-
fn: b(() => [
|
|
1492
|
-
"model-value": v(
|
|
1493
|
-
disabled: v(
|
|
1494
|
-
"onUpdate:modelValue": () =>
|
|
1699
|
+
fn: b(() => [j(N, {
|
|
1700
|
+
"model-value": v(Y).includes(e.name),
|
|
1701
|
+
disabled: v(be) || v(Ce) || v(G).isLoading.value || !v(X),
|
|
1702
|
+
"onUpdate:modelValue": () => Ue(e)
|
|
1495
1703
|
}, null, 8, [
|
|
1496
1704
|
"model-value",
|
|
1497
1705
|
"disabled",
|
|
@@ -1502,7 +1710,7 @@ var Bn = p({
|
|
|
1502
1710
|
"disabled",
|
|
1503
1711
|
"active",
|
|
1504
1712
|
"onClick"
|
|
1505
|
-
])]))), 128)) : (s(), S("div",
|
|
1713
|
+
])]))), 128)) : (s(), S("div", Fr, [j(A, { class: "w-4 h-4 flex-shrink-0" }), E("span", null, c(e.$t("views.plugin.assignment_requires_running")), 1)])) : (s(), S("div", Pr, [E("span", null, c(e.$t("views.plugin.no_cameras")), 1)]))])) : h("", !0)], 16)) : h("", !0)]),
|
|
1506
1714
|
_: 2
|
|
1507
1715
|
}, 1032, ["value"]))), 128))]),
|
|
1508
1716
|
_: 1
|
|
@@ -1511,11 +1719,11 @@ var Bn = p({
|
|
|
1511
1719
|
}, 8, ["value"]))]))]),
|
|
1512
1720
|
_: 1
|
|
1513
1721
|
}, 8, ["class"])]),
|
|
1514
|
-
|
|
1722
|
+
j(ue, {
|
|
1515
1723
|
class: "lg:col-span-2 order-3",
|
|
1516
1724
|
title: e.$t("views.plugin.readme"),
|
|
1517
1725
|
placeholder: e.$t("views.plugin.no_readme"),
|
|
1518
|
-
content: v(
|
|
1726
|
+
content: v(R),
|
|
1519
1727
|
loading: v(se)
|
|
1520
1728
|
}, null, 8, [
|
|
1521
1729
|
"title",
|
|
@@ -1523,12 +1731,12 @@ var Bn = p({
|
|
|
1523
1731
|
"content",
|
|
1524
1732
|
"loading"
|
|
1525
1733
|
]),
|
|
1526
|
-
|
|
1734
|
+
j(ue, {
|
|
1527
1735
|
class: "lg:col-span-2 order-4",
|
|
1528
1736
|
title: e.$t("views.plugin.changelog"),
|
|
1529
1737
|
placeholder: e.$t("views.plugin.no_changelog"),
|
|
1530
|
-
content: v(
|
|
1531
|
-
loading: v(
|
|
1738
|
+
content: v(le),
|
|
1739
|
+
loading: v(de)
|
|
1532
1740
|
}, null, 8, [
|
|
1533
1741
|
"title",
|
|
1534
1742
|
"placeholder",
|
|
@@ -1539,6 +1747,6 @@ var Bn = p({
|
|
|
1539
1747
|
]);
|
|
1540
1748
|
};
|
|
1541
1749
|
}
|
|
1542
|
-
}), [["__scopeId", "data-v-
|
|
1750
|
+
}), [["__scopeId", "data-v-253f0bcc"]]);
|
|
1543
1751
|
//#endregion
|
|
1544
|
-
export {
|
|
1752
|
+
export { Ir as default };
|