@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.
Files changed (493) hide show
  1. package/LICENSE.md +8 -1
  2. package/dist/interface/assets/{404-BYV0u5qE.js → 404-C0X5UBF4.js} +1 -1
  3. package/dist/interface/assets/About-Ctp_u5qK.js +1 -0
  4. package/dist/interface/assets/Assistant-Bj2bAUHD.css +1 -0
  5. package/dist/interface/assets/Assistant-CDrBV_mg.js +1 -0
  6. package/dist/interface/assets/Automation-Dp6V80Iz.js +3 -0
  7. package/dist/interface/assets/{Automation-BSicfOGF.css → Automation-R5o9sXYY.css} +1 -1
  8. package/dist/interface/assets/{AutomationImport-Iu-K82Os.js → AutomationImport-DKgg7atE.js} +2 -2
  9. package/dist/interface/assets/AutomationStore-CU-m5VC8.js +2 -0
  10. package/dist/interface/assets/{AutomationStoreDetail-BbvLRJ5u.js → AutomationStoreDetail-CiyIs8Iu.js} +2 -2
  11. package/dist/interface/assets/Automations-Dljh-sWu.js +2 -0
  12. package/dist/interface/assets/Camera-0p0P_mbp.css +1 -0
  13. package/dist/interface/assets/Camera-Bvovab-8.js +2 -0
  14. package/dist/interface/assets/{CameraConsole-JBD3ZmJ6.js → CameraConsole-D_Fv-MAi.js} +1 -1
  15. package/dist/interface/assets/{Cameras-R5mJGMK9.js → Cameras-Cq7Gw-fk.js} +2 -2
  16. package/dist/interface/assets/{Camview-DH6_8CxH.css → Camview-Bs2VvmUS.css} +1 -1
  17. package/dist/interface/assets/Camview-CP6PA20C.js +1 -0
  18. package/dist/interface/assets/{CertificateUpload-B9S4EOQs.js → CertificateUpload-DjzNMFc3.js} +1 -1
  19. package/dist/interface/assets/{Config-CbFl5Wcp.js → Config-Dl2TlyFe.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionAssistant-DIOh6-np.js → ConfigActionAssistant-DCkJ_Iqq.js} +1 -1
  21. package/dist/interface/assets/ConfigActionCameraControl-2pzl59gR.js +1 -0
  22. package/dist/interface/assets/{ConfigActionDelay-B9i4YZjy.js → ConfigActionDelay-BAp1dr0N.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionHttp-DFtxAa3U.js → ConfigActionHttp-_kqgEuun.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionImageInput-CuTH4Nw2.js → ConfigActionImageInput-BgtACnCm.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionMqtt-B9SfWP-G.js → ConfigActionMqtt-z7UzccW5.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionNotification-BGMIByJT.js → ConfigActionNotification-bhbb5AqU.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionNotificationControl-Cz72szMd.js → ConfigActionNotificationControl-BbvX8MFu.js} +1 -1
  28. package/dist/interface/assets/{ConfigActionOutput-BG6DoIRe.js → ConfigActionOutput-DdgSg3FU.js} +1 -1
  29. package/dist/interface/assets/{ConfigActionPlugin-B5oRSE9n.js → ConfigActionPlugin-DGjZd1L0.js} +1 -1
  30. package/dist/interface/assets/ConfigActionSensor-DmImWFAo.js +1 -0
  31. package/dist/interface/assets/{ConfigActionSnapshot-Di-uxMrg.js → ConfigActionSnapshot-hVHSfdtS.js} +1 -1
  32. package/dist/interface/assets/{ConfigActionVariable-BBpUti5A.js → ConfigActionVariable-BIpruwsx.js} +1 -1
  33. package/dist/interface/assets/{ConfigConditionIfElse-DjOKPXQw.js → ConfigConditionIfElse-DRSpsoR4.js} +1 -1
  34. package/dist/interface/assets/{ConfigConditionSensorState-BzvvZvD0.js → ConfigConditionSensorState-C2SNARH7.js} +1 -1
  35. package/dist/interface/assets/{ConfigConditionSwitch-DQvdfUxR.js → ConfigConditionSwitch-4SbQcU7N.js} +1 -1
  36. package/dist/interface/assets/{ConfigConditionTime-BqOElX5C.js → ConfigConditionTime-ESX3shbg.js} +1 -1
  37. package/dist/interface/assets/{ConfigSensorValueInput-BT-0LhSH.js → ConfigSensorValueInput-CTUdAA-R.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerDetection-1OkudUah.js → ConfigTriggerDetection-BRr6ixxQ.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerGeofence-HGatk3C5.js → ConfigTriggerGeofence-D-xRMGrT.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerManual-DpRr_vVq.js → ConfigTriggerManual-aXD6k1qa.js} +1 -1
  41. package/dist/interface/assets/{ConfigTriggerMqtt-C_MId3BY.js → ConfigTriggerMqtt-pjHW4yOL.js} +1 -1
  42. package/dist/interface/assets/{ConfigTriggerSchedule-BmwDqd6N.js → ConfigTriggerSchedule-CYOt57qg.js} +1 -1
  43. package/dist/interface/assets/{ConfigTriggerSensor-Rgx8q4g8.js → ConfigTriggerSensor-BwJ_cAqd.js} +1 -1
  44. package/dist/interface/assets/{ConfigTriggerSystem-4VsHPmbn.js → ConfigTriggerSystem-DBXIrjzU.js} +1 -1
  45. package/dist/interface/assets/{ConfigTriggerWebhook-Bs7zEfY0.js → ConfigTriggerWebhook-CccBmMCb.js} +1 -1
  46. package/dist/interface/assets/Console-DWAaz1C6.js +1 -0
  47. package/dist/interface/assets/CuiAssistantConversation-B3xEiNNt.js +5 -0
  48. package/dist/interface/assets/{CuiAssistantConversation-BmBhwrNh.css → CuiAssistantConversation-C5ca1lgX.css} +1 -1
  49. package/dist/interface/assets/CuiAutomationRunsDialog-CfylVPLI.js +1 -0
  50. package/dist/interface/assets/CuiBottomSheet-ACN23VLS.js +1 -0
  51. package/dist/interface/assets/{CuiBottomSheet-Dd3uOtnC.js → CuiBottomSheet-DEVNeDqa.js} +1 -1
  52. package/dist/interface/assets/CuiCameraPipCard-rR_FW9zq.js +1 -0
  53. package/dist/interface/assets/CuiCameraRecordings-CnorhPhf.js +1 -0
  54. package/dist/interface/assets/CuiCameraShares-BxUgedC_.js +1 -0
  55. package/dist/interface/assets/{CuiCameraTable-C7WLZ2pA.js → CuiCameraTable-C3GB4Q2y.js} +2 -2
  56. package/dist/interface/assets/CuiCameraTable-MHfnZSyK.js +1 -0
  57. package/dist/interface/assets/CuiChartTable-TAzZgetO.js +1 -0
  58. package/dist/interface/assets/{CuiConsole-CkZML0iY.js → CuiConsole-Cf5lOCE1.js} +2 -2
  59. package/dist/interface/assets/{CuiDataTable-BFIhx1D3.js → CuiDataTable-DfjXa0C1.js} +1 -1
  60. package/dist/interface/assets/CuiLightControl-ChK-SvJp.js +1 -0
  61. package/dist/interface/assets/CuiList-C4fxd9lD.js +1 -0
  62. package/dist/interface/assets/CuiPluginCard-DMpANIQj.js +2 -0
  63. package/dist/interface/assets/CuiPluginCategoryChip-BKxJMid7.js +1 -0
  64. package/dist/interface/assets/{CuiPluginOAuthButton-BQZkTcgo.js → CuiPluginOAuthButton-DnQ838JJ.js} +2 -2
  65. package/dist/interface/assets/{CuiPluginTrustBadge-DbqdfdaL.js → CuiPluginTrustBadge-DyYDUWV6.js} +1 -1
  66. package/dist/interface/assets/{CuiQRCode-2WsWJQFi.js → CuiQRCode-S9fPi0_l.js} +1 -1
  67. package/dist/interface/assets/CuiSchema-DScmDQsh.js +1 -0
  68. package/dist/interface/assets/CuiTopNavbarItem-CT10aAlO.js +1 -0
  69. package/dist/interface/assets/Faces-Coy-tUVM.js +1 -0
  70. package/dist/interface/assets/FirstSteps-CrMJC049.js +1 -0
  71. package/dist/interface/assets/Floorplan-Bj_mVrxp.js +1 -0
  72. package/dist/interface/assets/{Floorplan-Ci63Zd8W.css → Floorplan-CT5TrMSD.css} +1 -1
  73. package/dist/interface/assets/Instances-B_mpKAng.js +1 -0
  74. package/dist/interface/assets/{Logs-DMehPk0t.js → Logs-fY1dpQk4.js} +2 -2
  75. package/dist/interface/assets/Menu-Bgi-NLdg.js +1 -0
  76. package/dist/interface/assets/Metrics-DnMeIrkf.css +1 -0
  77. package/dist/interface/assets/Metrics-k9KACiwh.js +12 -0
  78. package/dist/interface/assets/OAuthDeviceFlow-xTh83xmc.js +1 -0
  79. package/dist/interface/assets/Plugin-BB7x7UHw.css +1 -0
  80. package/dist/interface/assets/Plugin-VWq7sONB.js +1 -0
  81. package/dist/interface/assets/{PluginConsole-D1BRQCO9.js → PluginConsole-LnnDOVBL.js} +2 -2
  82. package/dist/interface/assets/PluginDetail-CKD9sbDx.js +2 -0
  83. package/dist/interface/assets/{PluginSchema-B9VsBHOU.js → PluginSchema-BnB0_6Sk.js} +1 -1
  84. package/dist/interface/assets/PluginSearch-BoBZLLbr.js +1 -0
  85. package/dist/interface/assets/PluginSearch-kGhweU1J.js +2 -0
  86. package/dist/interface/assets/{PluginUpdateProgress-uj0XPV-_.js → PluginUpdateProgress-DMx0QlgE.js} +1 -1
  87. package/dist/interface/assets/{Plugins-CPx9Hszm.js → Plugins-Ekmr6aVa.js} +1 -1
  88. package/dist/interface/assets/RecentEventsFilter-StLJNuks.js +1 -0
  89. package/dist/interface/assets/Recordings-8PqxJOI3.css +1 -0
  90. package/dist/interface/assets/Recordings-Bvkuk_TV.js +1 -0
  91. package/dist/interface/assets/SensorEdit-CAf9Nb01.js +1 -0
  92. package/dist/interface/assets/SensorHistory-il8bDErX.js +1 -0
  93. package/dist/interface/assets/Sensors-sxQ6HLKo.js +2 -0
  94. package/dist/interface/assets/Settings-Bu0G7Ebx.js +1 -0
  95. package/dist/interface/assets/{Settings-D7495zbV.css → Settings-DtCSaLPb.css} +1 -1
  96. package/dist/interface/assets/SettingsAccount-8OZJLQi-.js +1 -0
  97. package/dist/interface/assets/SettingsAccount-bSfFi9YH.js +1 -0
  98. package/dist/interface/assets/SettingsAppearance-CnvN_Tzr.js +1 -0
  99. package/dist/interface/assets/SettingsAppearance-EvPWgF4c.js +1 -0
  100. package/dist/interface/assets/SettingsAssistant-B6s6pHCx.js +1 -0
  101. package/dist/interface/assets/SettingsBackup-Dd2FaUcN.js +1 -0
  102. package/dist/interface/assets/SettingsList-SvCO_gfG.js +1 -0
  103. package/dist/interface/assets/SettingsMqtt-BXBzHX84.js +1 -0
  104. package/dist/interface/assets/SettingsNotifications-CV-jJwFV.js +1 -0
  105. package/dist/interface/assets/SettingsPermissions-GchFaWjz.js +1 -0
  106. package/dist/interface/assets/SettingsRecordings-C4Ch_jmV.js +1 -0
  107. package/dist/interface/assets/SettingsRemote-OZHDJKSq.js +2 -0
  108. package/dist/interface/assets/SettingsSystem-BJlHXwVs.js +2 -0
  109. package/dist/interface/assets/SettingsUsers-RGOkOzx0.js +1 -0
  110. package/dist/interface/assets/Terminal-DX-ECC91.js +4 -0
  111. package/dist/interface/assets/Training-B8my7vka.js +1 -0
  112. package/dist/interface/assets/Training-D1DDjCCD.css +1 -0
  113. package/dist/interface/assets/Updates-DmavyhAn.js +2 -0
  114. package/dist/interface/assets/{VariableInput-CcILik4M.js → VariableInput-DQJle67Y.js} +1 -1
  115. package/dist/interface/assets/{VariableSuggestions-Bj0HdrYW.js → VariableSuggestions-D8V739dF.js} +1 -1
  116. package/dist/interface/assets/{VersionsHandler-BA8Lcysg.js → VersionsHandler-B41TJhgY.js} +1 -1
  117. package/dist/interface/assets/{VirtualSensorCreate-DvHyw7I2.js → VirtualSensorCreate-MfLh-LpH.js} +1 -1
  118. package/dist/interface/assets/Workers-CafDeRhH.js +2 -0
  119. package/dist/interface/assets/api-By0v6EeA.css +2 -0
  120. package/dist/interface/assets/api-D1iULsSy.js +4 -0
  121. package/dist/interface/assets/{api-CKbL5jC7.js → api-DbUdfXO_.js} +1 -1
  122. package/dist/interface/assets/{assistant-CwmHp5bB.js → assistant-7hqP6OpA.js} +1 -1
  123. package/dist/interface/assets/{auth-AfZrkJ2f.js → auth-CDxrn7fe.js} +1 -1
  124. package/dist/interface/assets/{automations-DOCG0q8-.js → automations-CTTQlGCW.js} +1 -1
  125. package/dist/interface/assets/{cameraSources-mHEz9ROa.js → cameraSources-MOiE_1-W.js} +1 -1
  126. package/dist/interface/assets/cloudHandoff-CJzFH7CW.js +1 -0
  127. package/dist/interface/assets/{config-AG0SnOiY.js → config-6EiGxiYm.js} +1 -1
  128. package/dist/interface/assets/eventLabels-idFWh3Y_.js +1 -0
  129. package/dist/interface/assets/{flowSchema-B0d3VjU7.js → flowSchema-Dp_-p9WA.js} +1 -1
  130. package/dist/interface/assets/{intercomService-DG3EeZ6s.js → intercomService-BQYzjnAi.js} +1 -1
  131. package/dist/interface/assets/main-0oXl_8v7.js +3 -0
  132. package/dist/interface/assets/main-CdvAniEp.css +1 -0
  133. package/dist/interface/assets/mqtt-ChvXxMhR.js +1 -0
  134. package/dist/interface/assets/{notifications-8FH4ApEz.js → notifications-CbL-1oMs.js} +1 -1
  135. package/dist/interface/assets/{plugins-2JLUEMYc.js → plugins-lsoAntRQ.js} +1 -1
  136. package/dist/interface/assets/{rooms-DoAfzA8W.js → rooms-P8WrRIco.js} +1 -1
  137. package/dist/interface/assets/sensorIcons-BRTtoaHX.js +1 -0
  138. package/dist/interface/assets/{sensorSlots-biaL-O8E.js → sensorSlots-BTj-IM7z.js} +1 -1
  139. package/dist/interface/assets/{sensors-DyAMdS-H.js → sensors-Dxc7HgjZ.js} +1 -1
  140. package/dist/interface/assets/{server-BDRUGj61.js → server-DlK8gUoE.js} +1 -1
  141. package/dist/interface/assets/{theme-CLxrnR60.js → theme-BOppzzar.js} +1 -1
  142. package/dist/interface/assets/types-CeruGCb8.js +1 -0
  143. package/dist/interface/assets/{types-8JXzkoC8.js → types-J1Drrxo1.js} +1 -1
  144. package/dist/interface/assets/types-U4AuTNLR.js +1 -0
  145. package/dist/interface/assets/ungrouped-ING_JAuK.js +1 -0
  146. package/dist/interface/assets/{updates-F-veEP1I.js → updates-DtVp84Y0.js} +1 -1
  147. package/dist/interface/assets/{useAppVersion-BjUQmB7M.js → useAppVersion-BGgCk5GD.js} +1 -1
  148. package/dist/interface/assets/{useAssistantActions-CNEJol4o.js → useAssistantActions-C13O5EHU.js} +1 -1
  149. package/dist/interface/assets/useBackupRestore-vrhmc9i-.js +1 -0
  150. package/dist/interface/assets/{useCameraOptions-D_oduve2.js → useCameraOptions-CI1baRmm.js} +1 -1
  151. package/dist/interface/assets/{useKeyboardInset-CPWSVYlA.js → useKeyboardInset-CvgJp091.js} +1 -1
  152. package/dist/interface/assets/{useLogsSocket-B_jXUqv8.js → useLogsSocket-Bf0BI8ET.js} +1 -1
  153. package/dist/interface/assets/{useNavLayout-DEngIIeU.js → useNavLayout-6zM1Y-7B.js} +1 -1
  154. package/dist/interface/assets/{usePermissions-DAO92InI.js → usePermissions-DZitFsBQ.js} +1 -1
  155. package/dist/interface/assets/{usePluginUpdates-CJi8Y_wl.js → usePluginUpdates-VZdpJ_Ax.js} +1 -1
  156. package/dist/interface/assets/{usePushRegistration-j9WCeFbv.js → usePushRegistration-vcbMrTxZ.js} +1 -1
  157. package/dist/interface/assets/{useServerRestart-BVks5tuC.js → useServerRestart-DrpuNbIu.js} +1 -1
  158. package/dist/interface/assets/{useStreamStatus-DQ0NSyU8.js → useStreamStatus-l3Pfk1H4.js} +1 -1
  159. package/dist/interface/assets/{useTabSwipe-CVq7EcIY.js → useTabSwipe-BSpi25WV.js} +1 -1
  160. package/dist/interface/assets/{useUpdateChannel-C0fjDvNP.js → useUpdateChannel-kAl-5UNY.js} +1 -1
  161. package/dist/interface/assets/{useUpdatesSocket-DXKF9hzc.js → useUpdatesSocket-CaFz_fEb.js} +1 -1
  162. package/dist/interface/assets/{useUserOptions-UjMeAL5n.js → useUserOptions-BKteXnmU.js} +1 -1
  163. package/dist/interface/assets/vendor-cameraui-K1Nw4PvF.js +2326 -0
  164. package/dist/interface/assets/vendor-core-CJdfpB0I.js +1 -0
  165. package/dist/interface/assets/{vendor-primevue-Zx6t06A4.js → vendor-primevue-DoA2Rwcb.js} +871 -871
  166. package/dist/interface/assets/walk-B8FNhXuj.js +1 -0
  167. package/dist/interface/ha/{404-D5gfy0Cd.js → 404-RtgPpD9N.js} +1 -1
  168. package/dist/interface/ha/{About-JzlpCzBN.js → About-0PRv9bU0.js} +4 -4
  169. package/dist/interface/ha/{Assistant-DgOfGesf.js → Assistant-DbwxVfpl.js} +1021 -1021
  170. package/dist/interface/ha/{Automation-BDaWYiBu.js → Automation-D3HomdH7.js} +159 -155
  171. package/dist/interface/ha/{AutomationImport-BNB_PJ9R.js → AutomationImport-nQUUvZcv.js} +6 -6
  172. package/dist/interface/ha/{AutomationStore-_TeOt1wz.js → AutomationStore-BXDD92wZ.js} +8 -8
  173. package/dist/interface/ha/{AutomationStoreDetail-jjIEZoRi.js → AutomationStoreDetail-BYeq7FID.js} +19 -19
  174. package/dist/interface/ha/{Automations-DM6FEVOw.js → Automations-CJlGqmSP.js} +74 -74
  175. package/dist/interface/ha/Camera-Ai4BxVh_.js +747 -0
  176. package/dist/interface/ha/{CameraConsole-BoVql05l.js → CameraConsole-UMNOX3dE.js} +4 -4
  177. package/dist/interface/ha/{Cameras-cQBGvXq7.js → Cameras-BW-AEXYi.js} +266 -266
  178. package/dist/interface/ha/{Camview-mkG5FXZM.js → Camview-jikpVEE0.js} +195 -194
  179. package/dist/interface/ha/{Config-BNPDzo_h.js → Config-BOxwBH2D.js} +111 -111
  180. package/dist/interface/ha/{ConfigActionAssistant-C-8P3DYz.js → ConfigActionAssistant--3iWk9sq.js} +4 -4
  181. package/dist/interface/ha/{ConfigActionCameraControl-x1ksGL7m.js → ConfigActionCameraControl-DbVXWTeA.js} +3 -3
  182. package/dist/interface/ha/{ConfigActionHttp-DzCJp85z.js → ConfigActionHttp-Du3n2Yj0.js} +2 -2
  183. package/dist/interface/ha/{ConfigActionImageInput-C5C5U_2z.js → ConfigActionImageInput-BrJrTZTY.js} +4 -4
  184. package/dist/interface/ha/{ConfigActionMqtt-T29xb75r.js → ConfigActionMqtt-DZd1BNUt.js} +4 -4
  185. package/dist/interface/ha/{ConfigActionNotification-BcnyilF9.js → ConfigActionNotification-CJWW10gt.js} +3 -3
  186. package/dist/interface/ha/{ConfigActionNotificationControl-D3wIVKuU.js → ConfigActionNotificationControl-Bl41AVv1.js} +2 -2
  187. package/dist/interface/ha/{ConfigActionOutput-hD-yVczw.js → ConfigActionOutput-OTj7Lwgq.js} +1 -1
  188. package/dist/interface/ha/{ConfigActionPlugin-Bz1O-O4Q.js → ConfigActionPlugin-B790PEk0.js} +8 -8
  189. package/dist/interface/ha/{ConfigActionSensor-FOz-PYl_.js → ConfigActionSensor-BG3jZxge.js} +5 -5
  190. package/dist/interface/ha/{ConfigActionSnapshot-CmxEOuK1.js → ConfigActionSnapshot-fGmLl6jb.js} +2 -2
  191. package/dist/interface/ha/{ConfigActionVariable-BCvkrdCh.js → ConfigActionVariable-CK3vYDsr.js} +1 -1
  192. package/dist/interface/ha/{ConfigConditionIfElse-icfTG9OA.js → ConfigConditionIfElse-DyFLGg3y.js} +3 -3
  193. package/dist/interface/ha/{ConfigConditionSensorState-ClUAsm0d.js → ConfigConditionSensorState-BUTfeFO2.js} +7 -7
  194. package/dist/interface/ha/{ConfigConditionSwitch-C8AMCkn6.js → ConfigConditionSwitch-iDG_ubif.js} +5 -5
  195. package/dist/interface/ha/{ConfigSensorValueInput-ChvDQzGd.js → ConfigSensorValueInput-BmRIGUKB.js} +5 -5
  196. package/dist/interface/ha/{ConfigTriggerDetection-aUSyaClu.js → ConfigTriggerDetection-DyPQGt9M.js} +24 -24
  197. package/dist/interface/ha/{ConfigTriggerGeofence-DsJeJWP4.js → ConfigTriggerGeofence-CGE-bH_t.js} +6 -6
  198. package/dist/interface/ha/{ConfigTriggerMqtt-CsAxA7QZ.js → ConfigTriggerMqtt-CM3KZqBc.js} +1 -1
  199. package/dist/interface/ha/{ConfigTriggerSensor-CTxr9cfU.js → ConfigTriggerSensor-DoHMcwP4.js} +1 -1
  200. package/dist/interface/ha/{ConfigTriggerSystem-C8UEfpfs.js → ConfigTriggerSystem-BYKbW4Zr.js} +2 -2
  201. package/dist/interface/ha/{ConfigTriggerWebhook-frEE-SCB.js → ConfigTriggerWebhook-5PBAadG8.js} +2 -2
  202. package/dist/interface/ha/{Console-A3VtbsLg.js → Console-BEXzl4p1.js} +7 -7
  203. package/dist/interface/ha/{CuiAutomationRunsDialog-BlJvhBiX.js → CuiAutomationRunsDialog-DkK_ar5G.js} +3 -3
  204. package/dist/interface/ha/{CuiBottomSheet-Cu-t3H0Z.js → CuiBottomSheet-CYNvQV4T.js} +2 -2
  205. package/dist/interface/ha/{CuiCameraRecordings-R5ArEmqJ.js → CuiCameraRecordings-DYjecmE_.js} +30 -48
  206. package/dist/interface/ha/{CuiCameraShares-B9pfRkM4.js → CuiCameraShares-C0H60nZS.js} +7 -7
  207. package/dist/interface/ha/{CuiCameraTable-CKjGKaMC.js → CuiCameraTable-CQNMyBaq.js} +5 -5
  208. package/dist/interface/ha/{CuiChartTable-BxWjRe-k.js → CuiChartTable-Bhv1p9zj.js} +1161 -1161
  209. package/dist/interface/ha/{CuiConsole-C5fzsR7t.js → CuiConsole-DtXorGF5.js} +20 -20
  210. package/dist/interface/ha/{CuiDataTable-BOdQDY8J.js → CuiDataTable-Cy8EjCk9.js} +7 -7
  211. package/dist/interface/ha/{CuiList-CU2NJ1K6.js → CuiList-DnW6Q5m2.js} +1 -1
  212. package/dist/interface/ha/{CuiPluginCard-BT71RRAD.js → CuiPluginCard-B4SCUblV.js} +125 -125
  213. package/dist/interface/ha/{CuiPluginOAuthButton-moh9uS7G.js → CuiPluginOAuthButton-BKg9SftQ.js} +5 -5
  214. package/dist/interface/ha/{CuiPluginTrustBadge-F_pVWkPJ.js → CuiPluginTrustBadge-CEtUJhCJ.js} +1 -1
  215. package/dist/interface/ha/{CuiQRCode-BNuj-nJ4.js → CuiQRCode-gp-9hqyk.js} +7 -7
  216. package/dist/interface/ha/{CuiSchema-Cb_8Ks-I.js → CuiSchema-CYpr_dD7.js} +161 -161
  217. package/dist/interface/ha/{CuiTopNavbarItem-BGzrrTls.js → CuiTopNavbarItem-CM-1oPxf.js} +1 -1
  218. package/dist/interface/ha/Faces-pa60ySng.js +1575 -0
  219. package/dist/interface/ha/{FirstSteps-BFX0-EEi.js → FirstSteps-D42yZm7R.js} +68 -68
  220. package/dist/interface/ha/{Floorplan-D6MGqSJT.js → Floorplan-BvE546pE.js} +512 -511
  221. package/dist/interface/ha/{Instances-CHzIUyyA.js → Instances-CAGCyfbB.js} +64 -64
  222. package/dist/interface/ha/{Logs-DZKM3dWv.js → Logs-RB3Ba8WM.js} +12 -12
  223. package/dist/interface/ha/{Menu-BQz4dfQi.js → Menu-hAnHu_jq.js} +17 -17
  224. package/dist/interface/ha/{Metrics-CdpWJ1mm.js → Metrics-ChYTebkX.js} +94 -93
  225. package/dist/interface/ha/{OAuthDeviceFlow-DUELtx3X.js → OAuthDeviceFlow-C05pH-9o.js} +3 -3
  226. package/dist/interface/ha/{Plugin-5bbTF0Rv.js → Plugin-D7XwcXkW.js} +647 -439
  227. package/dist/interface/ha/{PluginConsole-C__0lzsS.js → PluginConsole-DphEIOlL.js} +4 -4
  228. package/dist/interface/ha/{PluginDetail-Blrktk9W.js → PluginDetail-DfMl-yCl.js} +9 -9
  229. package/dist/interface/ha/{PluginSearch-BKbdwHQ1.js → PluginSearch-BPN4Opg5.js} +34 -34
  230. package/dist/interface/ha/{PluginUpdateProgress-IsNiecu3.js → PluginUpdateProgress-ByJ0R5sW.js} +3 -3
  231. package/dist/interface/ha/{Plugins-CC2Dwlx5.js → Plugins-BhKmjjNn.js} +59 -59
  232. package/dist/interface/ha/{RecentEventsFilter-9ZkDHD1g.js → RecentEventsFilter-BkLMlGVJ.js} +5 -6
  233. package/dist/interface/ha/Recordings-BaU7M1OW.js +1836 -0
  234. package/dist/interface/ha/{SensorEdit-Bi2Yx_ji.js → SensorEdit-DWxcCJ0F.js} +88 -88
  235. package/dist/interface/ha/{SensorHistory-sqG_6eav.js → SensorHistory-DuA9E9wT.js} +2 -2
  236. package/dist/interface/ha/{Sensors-DLtOh1p4.js → Sensors-CVpIHcgG.js} +438 -435
  237. package/dist/interface/ha/{Settings-DI3_zenm.js → Settings-BO2eBGEn.js} +61 -61
  238. package/dist/interface/ha/{SettingsAccount-pS86Qyr-.js → SettingsAccount-BQZZfoSM.js} +255 -255
  239. package/dist/interface/ha/{SettingsAppearance-tS3bubKQ.js → SettingsAppearance-B_yGl89u.js} +16 -16
  240. package/dist/interface/ha/{SettingsAssistant-LejCRXsF.js → SettingsAssistant-kMOixl9g.js} +501 -501
  241. package/dist/interface/ha/{SettingsBackup-CkhD1Kze.js → SettingsBackup-BpG-W4j-.js} +24 -24
  242. package/dist/interface/ha/{SettingsList-bibwvPSM.js → SettingsList-Btnkzu94.js} +6 -6
  243. package/dist/interface/ha/{SettingsMqtt-DSt0B4Qg.js → SettingsMqtt-C4DX9cNC.js} +23 -23
  244. package/dist/interface/ha/{SettingsNotifications-BF7ajNwE.js → SettingsNotifications-DI6ImggH.js} +6 -6
  245. package/dist/interface/ha/{SettingsPermissions-Jh0FuIF7.js → SettingsPermissions-BCDyCFcb.js} +2 -2
  246. package/dist/interface/ha/{SettingsRecordings-BTIdncxg.js → SettingsRecordings-Bq5NkJhd.js} +10 -10
  247. package/dist/interface/ha/{SettingsRemote-Cba4P1-O.js → SettingsRemote-CtncaPIA.js} +308 -308
  248. package/dist/interface/ha/{SettingsSystem-_Nnh2ZF5.js → SettingsSystem-BJXuA7xA.js} +11 -11
  249. package/dist/interface/ha/{SettingsUsers-BfHFoxJi.js → SettingsUsers-BF0rDluv.js} +91 -91
  250. package/dist/interface/ha/{Terminal-Dv_7oWmS.js → Terminal-kTCe2jP3.js} +11 -11
  251. package/dist/interface/ha/Training-BM2Xb8Ef.js +1754 -0
  252. package/dist/interface/ha/{Updates-BHl5H7zE.js → Updates-Cv1EY_T0.js} +6 -6
  253. package/dist/interface/ha/{VariableInput-DtLo7-Nw.js → VariableInput-BO2zZu4N.js} +1 -1
  254. package/dist/interface/ha/{VersionsHandler-CF0DSeol.js → VersionsHandler-CRnT9-K7.js} +10 -10
  255. package/dist/interface/ha/{VirtualSensorCreate-C907EgIz.js → VirtualSensorCreate-6dVRxPjw.js} +8 -8
  256. package/dist/interface/ha/{Workers-Dz1d9gEQ.js → Workers-MHia86lu.js} +97 -97
  257. package/dist/interface/ha/{api-DUqpDJ2N.js → api-CH_Y8Hee.js} +17459 -14633
  258. package/dist/interface/ha/{api-gId1nlMj.js → api-DylRa66V.js} +3 -3
  259. package/dist/interface/ha/{assistant-BaR65gIY.js → assistant-smRQYA6p.js} +53 -53
  260. package/dist/interface/ha/{auth-Btsz_KxO.js → auth-BXj5Fm6s.js} +38 -38
  261. package/dist/interface/ha/{automationBlueprint-CuO3iOiM.js → automationBlueprint-DGjftXFC.js} +4 -4
  262. package/dist/interface/ha/cameraui-cards.js +1 -1
  263. package/dist/interface/ha/{cards-DWhezIPP.js → cards-E0zw1UVg.js} +114 -113
  264. package/dist/interface/ha/{config-BKStpoEQ.js → config-dG_DA6XL.js} +16 -16
  265. package/dist/interface/ha/{dist-CM7R4_Gj.js → dist-BQf9ANPx.js} +77 -77
  266. package/dist/interface/ha/{dist-BIngHzHx.js → dist-euRmladF.js} +4 -4
  267. package/dist/interface/ha/{eventIcons-BFNUgeGr.js → eventLabels-B5GrM5jO.js} +291 -233
  268. package/dist/interface/ha/{intercomService-B7HkLs6z.js → intercomService-BtJ_zUNd.js} +250 -264
  269. package/dist/interface/ha/{mqtt-ajcSmTB-.js → mqtt-CP3vVkRJ.js} +12 -12
  270. package/dist/interface/ha/{notifications-Cf9dXHEO.js → notifications-CZNwSXTg.js} +22 -22
  271. package/dist/interface/ha/{pinia-DIKO5lnE.js → pinia-CVnHHb-s.js} +533 -501
  272. package/dist/interface/ha/{plugins-ml823dJV.js → plugins--eatOIaI.js} +66 -66
  273. package/dist/interface/ha/{protocol-BB4jdtUC-DW3jl2tV.js → protocol-BB4jdtUC-BhEwymva.js} +129 -48
  274. package/dist/interface/ha/{rooms-C5gUErBi.js → rooms-D5E6K75d.js} +8 -8
  275. package/dist/interface/ha/{server-dArenpJI.js → server-D1BqEY7i.js} +31 -31
  276. package/dist/interface/ha/{types-DYymuACA.js → types-CWogEoya.js} +36 -36
  277. package/dist/interface/ha/ungrouped-Ch4UX4dy.js +58 -0
  278. package/dist/interface/ha/{updates-D5sFzGtC.js → updates-B48Owi1w.js} +28 -28
  279. package/dist/interface/ha/{useAppVersion-C5x3Ap4_.js → useAppVersion-D95sKTJR.js} +2 -2
  280. package/dist/interface/ha/{useAssistantActions-S1FrNe9b.js → useAssistantActions-kDwiO-u5.js} +1 -1
  281. package/dist/interface/ha/{useKeyboardInset-Cj0T2AFX.js → useKeyboardInset-C2R51vsC.js} +1 -1
  282. package/dist/interface/ha/{useLogsSocket-DtvfQlPh.js → useLogsSocket-BzNWa2y2.js} +1 -1
  283. package/dist/interface/ha/{useNavLayout-HSFBA4JV.js → useNavLayout-228cwwqA.js} +19 -19
  284. package/dist/interface/ha/{usePermissions-DaE_wFch.js → usePermissions-CfA5x7Df.js} +1 -1
  285. package/dist/interface/ha/{useServerRestart-Ci0SppGW.js → useServerRestart-B0c40zs5.js} +1 -1
  286. package/dist/interface/ha/{useTabSwipe-CPKkRmaH.js → useTabSwipe-CfZg5hWj.js} +2 -2
  287. package/dist/interface/ha/{useUpdateChannel-CXHHovK3.js → useUpdateChannel-DQxI7FrD.js} +2 -2
  288. package/dist/interface/ha/{useUpdatesSocket-DVST2YXV.js → useUpdatesSocket-B8LqBBd3.js} +1 -1
  289. package/dist/interface/ha/{useUserOptions-BYcYI6QA.js → useUserOptions-dZf6ejlz.js} +1 -1
  290. package/dist/interface/ha/walk-CsSXaeJw.js +33 -0
  291. package/dist/interface/index.html +35 -36
  292. package/dist/interface/sw.js +1 -1
  293. package/dist/interface/workbox-5f52ac45.js +1 -0
  294. package/dist/server/package.json +11 -11
  295. package/dist/server/requirements.txt +2 -2
  296. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +22 -0
  297. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +4 -0
  298. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +10 -0
  299. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +6 -0
  300. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +92 -4
  301. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +16 -0
  302. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +4 -0
  303. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face_embedder.py +1 -1
  304. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/object.py +3 -3
  305. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/person_embedder.py +65 -0
  306. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/segmenter.py +81 -0
  307. package/dist/server/src/api/database/index.d.ts +2 -1
  308. package/dist/server/src/api/database/index.js +31 -7
  309. package/dist/server/src/api/database/index.js.map +1 -1
  310. package/dist/server/src/api/database/migrations/v2-2-9.d.ts +3 -0
  311. package/dist/server/src/api/database/migrations/v2-2-9.js +28 -0
  312. package/dist/server/src/api/database/migrations/v2-2-9.js.map +1 -0
  313. package/dist/server/src/api/database/record-schemas.d.ts +1 -1
  314. package/dist/server/src/api/database/types.d.ts +17 -1
  315. package/dist/server/src/api/schemas/assistant.schema.d.ts +1 -1
  316. package/dist/server/src/api/schemas/cameras.schema.d.ts +140 -76
  317. package/dist/server/src/api/schemas/cameras.schema.js +4 -2
  318. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  319. package/dist/server/src/api/schemas/training.schema.d.ts +15 -3
  320. package/dist/server/src/api/schemas/training.schema.js +4 -1
  321. package/dist/server/src/api/schemas/training.schema.js.map +1 -1
  322. package/dist/server/src/api/websocket/nsp/worker-perf.js +2 -0
  323. package/dist/server/src/api/websocket/nsp/worker-perf.js.map +1 -1
  324. package/dist/server/src/api/websocket/types.d.ts +1 -0
  325. package/dist/server/src/assistant/search.d.ts +17 -0
  326. package/dist/server/src/assistant/search.js +10 -2
  327. package/dist/server/src/assistant/search.js.map +1 -1
  328. package/dist/server/src/assistant/tools/plugins.js +7 -3
  329. package/dist/server/src/assistant/tools/plugins.js.map +1 -1
  330. package/dist/server/src/assistant/types.d.ts +2 -0
  331. package/dist/server/src/automations/actions/plugin.js +5 -9
  332. package/dist/server/src/automations/actions/plugin.js.map +1 -1
  333. package/dist/server/src/automations/pluginMethodRegistry.d.ts +6 -0
  334. package/dist/server/src/automations/pluginMethodRegistry.js +39 -0
  335. package/dist/server/src/automations/pluginMethodRegistry.js.map +1 -1
  336. package/dist/server/src/automations/segment-picture.d.ts +16 -0
  337. package/dist/server/src/automations/segment-picture.js +152 -0
  338. package/dist/server/src/automations/segment-picture.js.map +1 -0
  339. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +5 -2
  340. package/dist/server/src/camera/decoder/detection-coordinator.js +45 -22
  341. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  342. package/dist/server/src/camera/decoder/detection-pipeline.d.ts +30 -2
  343. package/dist/server/src/camera/decoder/detection-pipeline.js +81 -21
  344. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  345. package/dist/server/src/camera/decoder/event-manager.d.ts +12 -2
  346. package/dist/server/src/camera/decoder/event-manager.js +77 -75
  347. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  348. package/dist/server/src/camera/decoder/event-trace.d.ts +41 -1
  349. package/dist/server/src/camera/decoder/event-trace.js +63 -8
  350. package/dist/server/src/camera/decoder/event-trace.js.map +1 -1
  351. package/dist/server/src/camera/decoder/face-tracks.d.ts +26 -0
  352. package/dist/server/src/camera/decoder/face-tracks.js +199 -0
  353. package/dist/server/src/camera/decoder/face-tracks.js.map +1 -0
  354. package/dist/server/src/camera/decoder/frame-scaler.d.ts +3 -1
  355. package/dist/server/src/camera/decoder/frame-scaler.js +36 -8
  356. package/dist/server/src/camera/decoder/frame-scaler.js.map +1 -1
  357. package/dist/server/src/camera/decoder/nvr-sink.d.ts +6 -0
  358. package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
  359. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
  360. package/dist/server/src/camera/decoder/perf-tracker.d.ts +2 -0
  361. package/dist/server/src/camera/decoder/perf-tracker.js +4 -0
  362. package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
  363. package/dist/server/src/camera/decoder/ptz/autotracker.d.ts +6 -1
  364. package/dist/server/src/camera/decoder/ptz/autotracker.js +107 -25
  365. package/dist/server/src/camera/decoder/ptz/autotracker.js.map +1 -1
  366. package/dist/server/src/camera/decoder/secondary-stage.d.ts +10 -8
  367. package/dist/server/src/camera/decoder/secondary-stage.js +145 -125
  368. package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
  369. package/dist/server/src/camera/decoder/training-sink.d.ts +5 -2
  370. package/dist/server/src/camera/decoder/training-sink.js +30 -6
  371. package/dist/server/src/camera/decoder/training-sink.js.map +1 -1
  372. package/dist/server/src/camera/decoder/types.d.ts +6 -2
  373. package/dist/server/src/camera/decoder/types.js +4 -2
  374. package/dist/server/src/camera/decoder/types.js.map +1 -1
  375. package/dist/server/src/manager/trainingCandidateManager.d.ts +2 -1
  376. package/dist/server/src/manager/trainingCandidateManager.js +25 -3
  377. package/dist/server/src/manager/trainingCandidateManager.js.map +1 -1
  378. package/dist/server/src/manager/trainingSubmission.d.ts +5 -0
  379. package/dist/server/src/manager/trainingSubmission.js +73 -0
  380. package/dist/server/src/manager/trainingSubmission.js.map +1 -0
  381. package/dist/server/src/manager/types.d.ts +8 -2
  382. package/dist/server/src/manager/types.js.map +1 -1
  383. package/dist/server/src/plugins/runtime/python/proxy/sensor.py +2 -0
  384. package/dist/server/src/remote/api/routes/train.d.ts +44 -3
  385. package/dist/server/src/remote/api/routes/train.js +2 -2
  386. package/dist/server/src/remote/api/routes/train.js.map +1 -1
  387. package/dist/server/src/rpc/interfaces/core.d.ts +6 -2
  388. package/dist/server/src/rpc/interfaces/detection.d.ts +20 -3
  389. package/dist/server/src/rpc/server.d.ts +2 -0
  390. package/dist/server/src/rpc/server.js +8 -5
  391. package/dist/server/src/rpc/server.js.map +1 -1
  392. package/dist/server/src/sensors/registry.d.ts +1 -0
  393. package/dist/server/src/sensors/registry.js +20 -11
  394. package/dist/server/src/sensors/registry.js.map +1 -1
  395. package/dist/server/src/sensors/types.d.ts +1 -0
  396. package/dist/server/src/sensors/types.js +3 -0
  397. package/dist/server/src/sensors/types.js.map +1 -1
  398. package/dist/server/src/services/config/index.d.ts +1 -0
  399. package/dist/server/src/services/config/index.js +2 -0
  400. package/dist/server/src/services/config/index.js.map +1 -1
  401. package/dist/server/src/utils/image.d.ts +6 -0
  402. package/dist/server/src/utils/image.js +58 -22
  403. package/dist/server/src/utils/image.js.map +1 -1
  404. package/npm-shrinkwrap.json +115 -74
  405. package/package.json +11 -11
  406. package/dist/interface/assets/About-DBOS1rfw.js +0 -1
  407. package/dist/interface/assets/Assistant-BQ6Ld-bt.css +0 -1
  408. package/dist/interface/assets/Assistant-BRcHj8hq.js +0 -1
  409. package/dist/interface/assets/Automation-C0Emde7z.js +0 -3
  410. package/dist/interface/assets/AutomationStore-C2G0Bk8c.js +0 -2
  411. package/dist/interface/assets/Automations-D-vfqRnZ.js +0 -2
  412. package/dist/interface/assets/Camera-BpurrgAr.js +0 -2
  413. package/dist/interface/assets/Camera-D0B7yyVD.css +0 -1
  414. package/dist/interface/assets/Camview-IbOVRx20.js +0 -1
  415. package/dist/interface/assets/ConfigActionCameraControl-Bw_egtpP.js +0 -1
  416. package/dist/interface/assets/ConfigActionSensor-BErRRYfl.js +0 -1
  417. package/dist/interface/assets/Console-oCuuVKET.js +0 -1
  418. package/dist/interface/assets/CuiAssistantConversation-Bsyxau9v.js +0 -5
  419. package/dist/interface/assets/CuiAutomationRunsDialog-sRh_K6JI.js +0 -1
  420. package/dist/interface/assets/CuiBottomSheet-DWoSHzC7.js +0 -1
  421. package/dist/interface/assets/CuiCameraPipCard-D6REm8uT.js +0 -1
  422. package/dist/interface/assets/CuiCameraRecordings-C2tvrbbw.js +0 -1
  423. package/dist/interface/assets/CuiCameraShares-jrrUEHoZ.js +0 -1
  424. package/dist/interface/assets/CuiCameraTable-BOzTWLwd.js +0 -1
  425. package/dist/interface/assets/CuiChartTable-BYrIX7LV.js +0 -1
  426. package/dist/interface/assets/CuiLightControl-DitIWqUr.js +0 -1
  427. package/dist/interface/assets/CuiList-BewTNr2X.js +0 -1
  428. package/dist/interface/assets/CuiPluginCard-Bd2HFduI.js +0 -2
  429. package/dist/interface/assets/CuiPluginCategoryChip-DlzOwRgc.js +0 -1
  430. package/dist/interface/assets/CuiSchema-BL0QZmP2.js +0 -1
  431. package/dist/interface/assets/CuiTopNavbarItem-Ti2TueU1.js +0 -1
  432. package/dist/interface/assets/Faces-DARrGLXf.js +0 -1
  433. package/dist/interface/assets/FirstSteps-DBYPBvGr.js +0 -1
  434. package/dist/interface/assets/Floorplan-BaZvzoyv.js +0 -1
  435. package/dist/interface/assets/Instances-r0xReURi.js +0 -1
  436. package/dist/interface/assets/Menu-C34RRyLd.js +0 -1
  437. package/dist/interface/assets/Metrics-BjoC71_O.js +0 -12
  438. package/dist/interface/assets/Metrics-DsHBab6t.css +0 -1
  439. package/dist/interface/assets/OAuthDeviceFlow-CdZxelf2.js +0 -1
  440. package/dist/interface/assets/Plugin-Qr_Q_Qfi.css +0 -1
  441. package/dist/interface/assets/Plugin-npx7CnwV.js +0 -1
  442. package/dist/interface/assets/PluginDetail-nwTrJmO6.js +0 -2
  443. package/dist/interface/assets/PluginSearch-CP2kQWKf.js +0 -1
  444. package/dist/interface/assets/PluginSearch-WEvbKMRs.js +0 -2
  445. package/dist/interface/assets/RecentEventsFilter-D5VSH2K1.js +0 -1
  446. package/dist/interface/assets/Recordings-BEKAn6QK.css +0 -1
  447. package/dist/interface/assets/Recordings-De6Zcv0M.js +0 -1
  448. package/dist/interface/assets/SensorEdit-SD_oHBRo.js +0 -1
  449. package/dist/interface/assets/SensorHistory-SxiLOloa.js +0 -1
  450. package/dist/interface/assets/Sensors-Djl64M-W.js +0 -2
  451. package/dist/interface/assets/Settings-CAf2reGs.js +0 -1
  452. package/dist/interface/assets/SettingsAccount-BGj5Ni91.js +0 -1
  453. package/dist/interface/assets/SettingsAccount-Dy6WC8ql.js +0 -1
  454. package/dist/interface/assets/SettingsAppearance-BGFhMlRk.js +0 -1
  455. package/dist/interface/assets/SettingsAppearance-DQzQmVzE.js +0 -1
  456. package/dist/interface/assets/SettingsAssistant-BwYVyuN3.js +0 -1
  457. package/dist/interface/assets/SettingsBackup-CVExGnOo.js +0 -1
  458. package/dist/interface/assets/SettingsList-vo7sz_MY.js +0 -1
  459. package/dist/interface/assets/SettingsMqtt-B1CuOcML.js +0 -1
  460. package/dist/interface/assets/SettingsNotifications-CCQ6eiq8.js +0 -1
  461. package/dist/interface/assets/SettingsPermissions-BlOf6HEy.js +0 -1
  462. package/dist/interface/assets/SettingsRecordings-7tTBg6m1.js +0 -1
  463. package/dist/interface/assets/SettingsRemote-DBgKmIdv.js +0 -2
  464. package/dist/interface/assets/SettingsSystem-DaFMsZpN.js +0 -2
  465. package/dist/interface/assets/SettingsUsers-DXACwVPi.js +0 -1
  466. package/dist/interface/assets/Terminal-DtGqlHbk.js +0 -4
  467. package/dist/interface/assets/Training-C-ToeAl4.css +0 -1
  468. package/dist/interface/assets/Training-Ca11D1Vj.js +0 -1
  469. package/dist/interface/assets/Updates-yenwuqnD.js +0 -2
  470. package/dist/interface/assets/Workers-Dyo44zxe.js +0 -2
  471. package/dist/interface/assets/api-CHQlxVtZ.css +0 -2
  472. package/dist/interface/assets/api-CLazgL-g.js +0 -4
  473. package/dist/interface/assets/cloudHandoff-zJCrDmwk.js +0 -1
  474. package/dist/interface/assets/eventIcons-C3JWChgS.js +0 -1
  475. package/dist/interface/assets/eventLabels-BsPoPWS9.js +0 -1
  476. package/dist/interface/assets/main-CGY9cVyi.css +0 -1
  477. package/dist/interface/assets/main-DkHV6YgB.js +0 -3
  478. package/dist/interface/assets/mqtt-DE2VbNdt.js +0 -1
  479. package/dist/interface/assets/sensorIcons-BntiOPX7.js +0 -1
  480. package/dist/interface/assets/types-B4LLKzDW.js +0 -1
  481. package/dist/interface/assets/types-a7Nw-P-m.js +0 -1
  482. package/dist/interface/assets/ungrouped-BoAbb9w3.js +0 -1
  483. package/dist/interface/assets/ungrouped-ChmBvcXp.css +0 -1
  484. package/dist/interface/assets/useBackupRestore-Biqn_lhh.js +0 -1
  485. package/dist/interface/assets/vendor-cameraui-GmMRyJ2R.js +0 -2326
  486. package/dist/interface/assets/vendor-core-BeAannbA.js +0 -1
  487. package/dist/interface/ha/Camera-sH9fRv18.js +0 -670
  488. package/dist/interface/ha/Faces-CsM5VO8Q.js +0 -1441
  489. package/dist/interface/ha/Recordings-B1XsJrzs.js +0 -1539
  490. package/dist/interface/ha/Training-CaSFA5oH.js +0 -1699
  491. package/dist/interface/ha/eventLabels-B4C1_4vT.js +0 -42
  492. package/dist/interface/ha/ungrouped-BHLAySWP.js +0 -1312
  493. 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 D, v as O, wt as k, x as A, xt as j, y as M, yt as N, z as P } from "./runtime-core.esm-bundler-_TfE0DWz.js";
3
- import { t as F } from "./tooltip-BDrlgLof.js";
4
- import { t as I } from "./tag-mchuCAPR.js";
5
- import { $t as L, An as te, Er as R, Jt as z, Mr as B, Or as V, Qr as ne, Ur as H, _r as re, bn as ie, ei as ae, en as U, f as W, fn as oe, g as se, gt as ce, jn as le, li as ue, mn as de, pn as fe, q as pe, tn as me, wi as he, xn as ge, xt as _e } from "./api-DUqpDJ2N.js";
6
- import { A as G, b as K, i as ve, o as ye } from "./intercomService-B7HkLs6z.js";
7
- import { B as q, I as be, L as xe, R as Se, V as Ce, q as we, r as Te, s as Ee, z as J } from "./pinia-DIKO5lnE.js";
8
- import { n as De } from "./vue-i18n-D5EAy78K.js";
9
- import { O as Y, T as X, k as Oe, w as Z } from "./dist-BIngHzHx.js";
10
- import { a as ke } from "./alert-outline-FcLLjoOK.js";
11
- import { h as Ae } from "./eventIcons-BFNUgeGr.js";
12
- import { t as je } from "./button-BouAFgf5.js";
13
- import { M as Me, N as Ne, P as Q, b as Pe } from "./dist-CM7R4_Gj.js";
14
- import { t as Fe } from "./inputtext-C_ygnPrC.js";
15
- import { t as Ie } from "./select-DV7p2EDj.js";
16
- import { t as Le } from "./multiselect-BOb4ScAZ.js";
17
- import { t as $ } from "./textarea-ByXnzJzx.js";
18
- import { t as Re } from "./CuiSchema-Cb_8Ks-I.js";
19
- import { t as ze } from "./plugins-ml823dJV.js";
20
- import { t as Be } from "./information-outline-DSSRyysT.js";
21
- import { t as Ve } from "./close-circle-DfYSNAKm.js";
22
- import { t as He } from "./CuiMarkdownContent-CrkZwv5j.js";
23
- import { r as Ue, t as We } from "./CuiPluginCard-BT71RRAD.js";
24
- import { u as Ge } from "./cards-DWhezIPP.js";
25
- import { t as Ke } from "./back-filled-CaxrZv0Q.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 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 qe = {
28
+ var rt = {
28
29
  content: null,
29
30
  loading: !1,
30
31
  collapsedHeight: 420
31
- }, Je = { class: "lg:!hidden card-title" }, Ye = {
32
+ }, it = { class: "lg:!hidden card-title" }, at = {
32
33
  ref: "frame",
33
34
  class: "flex flex-col h-full"
34
- }, Xe = { class: "flex items-center gap-3 border-color lg:border-b-[1px] lg:mb-3 lg:pb-3" }, Ze = { class: "hidden lg:block text-base font-semibold" }, Qe = {
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
- }, $e = /* @__PURE__ */ A({
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
- }, qe),
46
+ }, rt),
46
47
  setup(e) {
47
- let t = e, n = T("frame"), r = T("body"), i = j(!1), a = j(!1), o = j(t.collapsedHeight), l = y(() => !t.loading && (i.value || a.value));
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 K(r, "load", f, { capture: !0 }), G(n, f), G(r, f), x([() => t.content, () => t.loading], () => u(f)), P(() => u(f)), (t, n) => {
61
- let r = ie, a = ge, u = je, d = R, f = He, p = ve, g = F;
62
- return s(), S("div", null, [E("span", Je, c(e.title), 1), M(p, { class: "cui-card !h-auto lg:!h-full" }, {
63
- content: b(() => [E("div", Ye, [E("div", Xe, [E("h3", Ze, c(e.title), 1), v(l) ? D((s(), m(u, {
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", Qe, [M(d, {
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
- }, [M(f, { content: e.content || e.placeholder }, null, 8, ["content"])], 4))], 512)]),
92
+ }, [j(f, { content: e.content || e.placeholder }, null, 8, ["content"])], 4))], 512)]),
92
93
  _: 1
93
94
  })]);
94
95
  };
95
96
  }
96
- }), et = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, tt = { class: "flex flex-col gap-4" }, nt = { class: "flex flex-col field-gap" }, rt = { class: "cui-label" }, it = {
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
- }, at = { class: "flex flex-col field-gap" }, ot = { class: "cui-label" }, st = { class: "flex flex-col field-gap" }, ct = { class: "cui-label" }, lt = { class: "flex flex-col field-gap" }, ut = { class: "cui-label" }, dt = { class: "flex flex-col field-gap" }, ft = { class: "cui-label" }, pt = { class: "flex flex-col field-gap" }, mt = { class: "cui-label" }, ht = { class: "flex flex-col field-gap" }, gt = { class: "cui-label" }, _t = { class: "flex flex-col field-gap" }, vt = { class: "cui-label" }, yt = { class: "mt-8" }, bt = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, xt = {
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
- }, St = {
103
+ }, Mt = {
103
104
  key: 1,
104
105
  class: "flex items-center justify-center text-sm text-muted py-4 text-center"
105
- }, Ct = {
106
+ }, Nt = {
106
107
  key: 2,
107
108
  class: "flex flex-col field-gap"
108
- }, wt = { class: "text-xs text-muted" }, Tt = {
109
+ }, Pt = { class: "text-xs text-muted" }, Ft = {
109
110
  key: 0,
110
111
  class: "mt-8"
111
- }, Et = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, Dt = /* @__PURE__ */ A({
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 = ye(), { t: r } = De(), i = he(), l = se(), { user: u } = Te(l), { pluginName: d } = a(t), { plugin: f } = Me(d), p = y(() => Object.values(Z).map((e) => ({
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 = N({
119
+ }))), m = M({
119
120
  title: "Test notification",
120
121
  subtitle: "",
121
122
  body: "This is a test notification from camera.ui",
122
- severity: Z.Info,
123
+ severity: Pe.Info,
123
124
  tag: "",
124
125
  imageUrl: "",
125
126
  deepLink: ""
126
- }), g = j([]), _ = j(!1), C = j(!1), T = k([]), D = j(!1), O = j([]), A = k(), P = j(!1), F = y(() => T.value.map((e) => ({
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 I() {
131
+ async function P() {
131
132
  if (f.value && u.value?._id) {
132
- D.value = !0;
133
+ te.value = !0;
133
134
  try {
134
- let e = re(void 0, "admin") ? [] : [u.value._id];
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
- D.value = !1;
140
+ te.value = !1;
140
141
  }
141
142
  }
142
143
  }
143
- async function L() {
144
+ async function F() {
144
145
  if (f.value) {
145
- P.value = !0;
146
+ N.value = !0;
146
147
  try {
147
- A.value = await f.value.notificationSettings?.();
148
+ k.value = await f.value.notificationSettings?.();
148
149
  } catch (e) {
149
- n.error("Failed to load notification settings schema:", e), A.value = void 0;
150
+ n.error("Failed to load notification settings schema:", e), k.value = void 0;
150
151
  } finally {
151
- P.value = !1;
152
+ N.value = !1;
152
153
  }
153
154
  }
154
155
  }
155
- function te() {
156
+ function I() {
156
157
  g.value.push({
157
158
  key: "",
158
159
  value: ""
159
160
  });
160
161
  }
161
- function z(e) {
162
+ function re(e) {
162
163
  g.value.splice(e, 1);
163
164
  }
164
- function B() {
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 V() {
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 = B(), n = O.value.length ? O.value : T.value.map((e) => e.id);
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 && (I(), L());
206
+ e && (P(), F());
206
207
  }, { immediate: !0 }), (e, t) => {
207
- let n = Fe, r = $, i = Ie, a = Ve, l = je, u = Ge, d = R, y = Le, x = Re;
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", et, c(e.$t("components.notification_interface.template")), 1),
210
- E("div", tt, [
211
- E("div", nt, [
212
- E("label", rt, c(e.$t("components.notification_interface.title")), 1),
213
- M(n, {
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", it, c(e.$t("components.notification_interface.title_required")), 1)) : h("", !0)
225
+ v(_) ? (s(), S("p", mt, c(e.$t("components.notification_interface.title_required")), 1)) : h("", !0)
225
226
  ]),
226
- E("div", at, [E("label", ot, c(e.$t("components.notification_interface.subtitle")), 1), M(n, {
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", st, [E("label", ct, c(e.$t("components.notification_interface.body")), 1), M(r, {
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", lt, [E("label", ut, c(e.$t("components.notification_interface.severity")), 1), M(i, {
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", dt, [E("label", ft, c(e.$t("components.notification_interface.tag")), 1), M(n, {
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", pt, [E("label", mt, c(e.$t("components.notification_interface.image_url")), 1), M(n, {
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", ht, [E("label", gt, c(e.$t("components.notification_interface.deep_link")), 1), M(n, {
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", _t, [
266
- E("label", vt, c(e.$t("components.notification_interface.data")), 1),
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
- M(n, {
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
- M(n, {
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
- M(l, {
292
+ j(l, {
292
293
  text: "",
293
294
  rounded: "",
294
295
  severity: "danger",
295
296
  class: "cui-icon-md shrink-0",
296
- onClick: (e) => z(r)
297
+ onClick: (e) => re(r)
297
298
  }, {
298
- icon: b(() => [M(a, {
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
- M(l, {
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: te
312
+ onClick: I
312
313
  }, {
313
- icon: b(() => [M(u, { class: "w-4 h-4" })]),
314
+ icon: b(() => [j(u, { class: "w-4 h-4" })]),
314
315
  _: 1
315
316
  }, 8, ["label"])
316
317
  ])
317
318
  ]),
318
- E("div", yt, [E("h3", bt, c(e.$t("components.notification_interface.targets")), 1), v(D) ? (s(), S("div", xt, [M(d, {
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(F).length ? (s(), S("div", Ct, [E("span", wt, c(e.$t("components.notification_interface.targets_hint")), 1), M(y, {
322
- modelValue: v(O),
323
- "onUpdate:modelValue": t[8] ||= (e) => ee(O) ? O.value = e : null,
324
- options: v(F),
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", St, c(e.$t("components.notification_interface.no_devices")), 1))]),
336
- v(A)?.length ? (s(), S("div", Tt, [E("h3", Et, c(e.$t("components.notification_interface.settings")), 1), M(x, {
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(A),
339
+ schema: v(k),
339
340
  config: {}
340
341
  },
341
- loading: v(P)
342
+ loading: v(N)
342
343
  }, null, 8, ["schema-form", "loading"])])) : h("", !0),
343
- M(l, {
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: V
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
- }), Ot = { class: "mb-4 rounded-xl overflow-hidden w-fit mx-auto" }, kt = ["src"], At = { class: "text-sm text-muted mb-4" }, jt = {
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
- }, Mt = { class: "flex gap-2 mb-4" }, Nt = {
363
+ }, Ht = { class: "flex gap-2 mb-4" }, Ut = {
363
364
  key: 0,
364
365
  class: "flex flex-col gap-2"
365
- }, Pt = { class: "text-sm truncate flex-1 mr-3" }, Ft = { class: "flex items-center gap-2 shrink-0" }, It = /* @__PURE__ */ A({
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 = ye(), a = j(""), l = j(!1), u = j([]);
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 = Fe, f = je, m = I;
398
+ let i = He, f = $, m = P;
398
399
  return s(), S("div", null, [
399
- E("div", Ot, [E("img", {
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, kt)]),
404
- E("div", At, [O(c(e.response.embeddings.length) + " embedding(s), " + c(e.response.embeddings[0]?.embedding?.length ?? 0) + "-dim ", 1), e.response.embeddingModel ? (s(), S("span", jt, "(" + c(e.response.embeddingModel) + ")", 1)) : h("", !0)]),
405
- E("div", Mt, [M(i, {
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"]), M(f, {
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", Nt, [(s(!0), S(w, null, o(v(u), (e, t) => (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", Pt, c(e.query), 1), E("div", Ft, [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), M(m, {
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
- }), Lt = [
429
+ }), qt = [
429
430
  "strict",
430
431
  "balanced",
431
432
  "relaxed"
432
- ], Rt = { class: "relative mb-4 rounded-xl overflow-hidden w-fit mx-auto" }, zt = ["src"], Bt = { class: "text-sm text-muted mb-4" }, Vt = {
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
- }, Ht = {
436
+ }, Qt = {
436
437
  key: 1,
437
438
  class: "ml-1"
438
- }, Ut = { class: "flex gap-2 mb-4" }, Wt = {
439
+ }, $t = { class: "flex gap-2 mb-4" }, en = {
439
440
  key: 0,
440
441
  class: "flex flex-col gap-2"
441
- }, Gt = { class: "text-sm truncate flex-1 mr-3" }, Kt = { class: "flex items-center gap-2 shrink-0" }, qt = {
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
- }, Jt = /* @__PURE__ */ A({
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 } = De(), i = ye(), a = j("balanced"), l = j(!1), u = j([]), d = y(() => Lt.map((e) => ({
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 P(f), t({}), (t, n) => {
477
- let r = Ie, i = je, p = I;
477
+ return N(f), t({}), (t, n) => {
478
+ let r = Ue, i = $, p = P;
478
479
  return s(), S("div", null, [
479
- E("div", Rt, [E("img", {
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, zt), (s(!0), S(w, null, o(e.landmarks, (e, t) => (s(), S("span", {
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", Bt, [
492
- O(c(e.dimensions) + "-dim ", 1),
493
- e.embeddingModel ? (s(), S("span", Vt, "(" + c(e.embeddingModel) + ")", 1)) : h("", !0),
494
- e.quality == null ? h("", !0) : (s(), S("span", Ht, "· " + c(t.$t("components.face_recognition_interface.quality", { value: (e.quality * 100).toFixed(0) })), 1))
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", Ut, [M(r, {
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"]), M(i, {
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", Wt, [(s(!0), S(w, null, o(v(u), (e, n) => (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", Gt, c(e.identity ?? t.$t("components.face_recognition_interface.no_match")), 1), E("div", Kt, [e.score == null ? h("", !0) : (s(), S("div", qt, c((e.score * 100).toFixed(0)) + "%", 1)), M(p, {
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
- }), Yt = /* @__PURE__ */ A({
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 P(() => {
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
- }), Xt = { class: "mb-5 flex justify-center" }, Zt = { class: "relative w-fit" }, Qt = ["src"], $t = /* @__PURE__ */ A({
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 = de;
547
- return s(), S("div", Xt, [E("div", Zt, [M(i, { detections: v(r) }, null, 8, ["detections"]), E("img", {
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, Qt)])]);
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
- }), en = {
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
- }, tn = { class: "flex flex-col justify-center items-center mb-5" }, nn = {
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
- }, rn = ["accept"], an = {
676
+ }, In = ["accept"], Ln = {
561
677
  key: 0,
562
678
  class: "text-red-500 text-sm"
563
- }, on = {
679
+ }, Rn = {
564
680
  key: 1,
565
681
  class: "w-full flex flex-col items-center justify-center"
566
- }, sn = {
682
+ }, zn = {
567
683
  key: 0,
568
684
  class: "relative mb-4"
569
- }, cn = ["src"], ln = {
685
+ }, Bn = ["src"], Vn = {
570
686
  key: 1,
571
687
  class: "relative mb-4 w-full"
572
- }, un = {
688
+ }, Hn = {
573
689
  key: 2,
574
690
  class: "relative mb-4 w-full"
575
- }, dn = ["src", "type"], fn = { class: "flex items-center justify-center" }, pn = { class: "mx-2" }, mn = { class: "text-muted" }, hn = { class: "flex items-center justify-center mt-2 text-xs text-muted" }, gn = { class: "mt-10" }, _n = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, vn = {
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 = ye(), { t: f } = De(), p = he(), g = ce(), { type: _, pluginName: ee } = a(i), { plugin: C, isLoading: w } = Me(ee), { plugin: D } = Me("@camera.ui/camera-ui-nvr"), A = T("fileInputRef"), N = T("videoPlayerRef"), P = T("audioPlayerRef"), F = k([]), I = j(!1), L = j(!1), te = j(!1), R = j(!1), z = j(""), B = j(!1), V = j(), ne = j(!0), H = k(), re = j(!1), ie = y(() => re.value || w.value || B.value), ae = y(() => r[_.value]), U = y(() => {
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
- }), W = y(() => {
608
- switch (U.value) {
609
- case "image": return Se;
610
- case "video": return xe;
611
- case "audio": return be;
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
- }), oe = y(() => {
615
- switch (U.value) {
616
- case "image": return we;
617
- case "video": return q;
618
- case "audio": return J;
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
- }), se = y(() => W.value.join(","));
622
- async function le() {
738
+ }), fe = y(() => U.value.join(","));
739
+ async function pe() {
623
740
  if (C.value) {
624
- re.value = !0;
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
- H.value = e;
774
+ se.value = e;
652
775
  } catch (e) {
653
- l.error("Failed to load interface schema:", e), H.value = void 0;
776
+ l.error("Failed to load interface schema:", e), se.value = void 0;
654
777
  } finally {
655
- re.value = !1;
778
+ ce.value = !1;
656
779
  }
657
780
  }
658
781
  }
659
- function ue(e) {
660
- let t = F.value.findIndex((t) => t.name === e);
661
- t > -1 && (F.value.splice(t, 1), pe(), z.value = "", U.value === "video" && N.value && (N.value.src = ""), V.value = void 0, o("update:file", null), o("update:metadata", null));
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 de(e) {
664
- if (I.value = !1, L.value = !1, R.value = !1, F.value = [], e.dataTransfer) {
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
- (W.value.length === 0 || W.value.includes(t.type)) && t.size <= oe.value ? (F.value.push(t), u(() => {
669
- me(t);
670
- })) : t.size > oe.value ? R.value = !0 : L.value = !0;
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 fe(e) {
675
- L.value = !1, R.value = !1, F.value = [];
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 = W.value.length === 0 || W.value.includes(e.type);
681
- e.size <= oe.value && n ? (F.value.push(e), u(() => {
682
- me(e);
683
- })) : e.size > oe.value ? R.value = !0 : L.value = !0;
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 pe() {
688
- A.value && (A.value.value = "");
810
+ function ge() {
811
+ ne.value && (ne.value.value = "");
689
812
  }
690
- function me(e) {
813
+ function _e(e) {
691
814
  B.value = !0;
692
815
  let t = URL.createObjectURL(e);
693
- switch (U.value) {
816
+ switch (H.value) {
694
817
  case "image":
695
- ge(e, t);
818
+ ve(e, t);
696
819
  break;
697
820
  case "video":
698
- _e(e, t);
821
+ be(e, t);
699
822
  break;
700
- case "audio": G(e, t);
823
+ case "audio": xe(e, t);
701
824
  }
702
825
  }
703
- function ge(e, t) {
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 _e(e, t) {
715
- N.value && (N.value.src = t, N.value.load(), N.value.onloadeddata = () => {
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 G(e, t) {
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 K(e) {
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 ve(e, t) {
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 Ce(e) {
736
- if (!F.value.length) {
737
- te.value = !0;
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 F.value[0].arrayBuffer();
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(Yt, { data: {
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($t, { data: {
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 (!D.value) {
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(Jt, { data: {
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 D.value.matchFaces([r], i, e))?.[0] ?? void 0
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($t, { data: {
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($t, { data: {
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(It, { data: {
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: ve(r, i.embedding) };
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($t, { data: {
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 && le();
903
- }, { immediate: !0 }), x(F, (e) => {
904
- e.length > 0 ? (te.value = !1, ne.value = !1) : (z.value = "", V.value = void 0, ne.value = !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 = Ve, i = je, a = Re;
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) => de(e), ["prevent"]),
914
- onDragover: n[2] ||= e((e) => I.value = !0, ["prevent"]),
915
- onDragenter: n[3] ||= e((e) => I.value = !0, ["prevent"]),
916
- onDragleave: n[4] ||= e((e) => I.value = !1, ["prevent"])
917
- }, [v(F).length ? (s(), S("div", on, [v(U) === "image" ? (s(), S("div", sn, [E("img", {
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, cn)])) : v(U) === "video" ? (s(), S("div", ln, [E("video", {
1100
+ }, null, 8, Bn)])) : v(H) === "video" ? (s(), S("div", Vn, [E("video", {
922
1101
  ref_key: "videoPlayerRef",
923
- ref: N,
1102
+ ref: P,
924
1103
  controls: "",
925
1104
  class: "w-full"
926
- }, "Your browser does not support the video tag.", 512)])) : v(U) === "audio" ? (s(), S("div", un, [E("audio", {
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: P,
1107
+ ref: F,
929
1108
  controls: "",
930
1109
  class: "w-full"
931
1110
  }, [E("source", {
932
1111
  src: v(z),
933
- type: v(F)[0].type
934
- }, null, 8, dn), n[5] ||= O(" Your browser does not support the audio element. ", -1)], 512)])) : h("", !0), E("div", fn, [
935
- M(i, {
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) => ue(v(F)[0].name), ["stop"])
1119
+ onClick: n[0] ||= e((e) => me(v(I)[0].name), ["stop"])
941
1120
  }, {
942
- icon: b(() => [M(r, {
1121
+ icon: b(() => [j(r, {
943
1122
  width: "100%",
944
1123
  height: "100%"
945
1124
  })]),
946
1125
  _: 1
947
1126
  }),
948
- E("b", pn, c(v(F)[0].name), 1),
949
- E("span", mn, "(" + c(K(v(F)[0].size)) + ")", 1)
950
- ])])) : (s(), S("div", en, [E("div", tn, [
951
- E("label", nn, c(t.$t(`components.detection_interface.${v(ae)}`)), 1),
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: A,
1134
+ ref: ne,
956
1135
  type: "file",
957
1136
  class: "hidden",
958
- accept: v(se),
959
- onChange: fe
960
- }, null, 40, rn),
961
- v(L) ? (s(), S("p", an, c(t.$t(`components.detection_interface.only_one_${v(U)}_allowed`)), 1)) : h("", !0),
962
- v(te) ? (s(), S("p", {
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(U)}_required`)), 3)) : h("", !0),
966
- v(R) ? (s(), S("p", {
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(te) }])
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", hn, [E("span", null, "(" + c(v(oe) / 1024 / 1024) + "MB, " + c(v(W).join(", ")) + ")", 1)]),
972
- E("div", gn, [E("h3", _n, c(t.$t("components.detection_interface.interface_config")), 1), v(H)?.length ? (s(), m(a, {
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(H),
1154
+ schema: v(se),
976
1155
  config: {}
977
1156
  },
978
- loading: v(ie),
1157
+ loading: v(le),
979
1158
  "save-button-label": t.$t("components.detection_interface.detect"),
980
- "disable-button": v(ne),
1159
+ "disable-button": v(oe),
981
1160
  "show-button": "",
982
- onOnFormSubmit: Ce
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", vn, c(t.$t("components.detection_interface.no_interface_config")), 1))])
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
- }), bn = {
1182
+ }), Qn = {
993
1183
  viewBox: "0 0 24 24",
994
1184
  width: "1.2em",
995
1185
  height: "1.2em"
996
1186
  };
997
- function xn(e, t) {
998
- return s(), S("svg", bn, [...t[0] ||= [E("path", {
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 Sn = p({
1197
+ var er = p({
1008
1198
  name: "lucide-audio-lines",
1009
- render: xn
1010
- }), Cn = {
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 wn(e, t) {
1016
- return s(), S("svg", Cn, [...t[0] ||= [E("path", {
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 Tn = p({
1211
+ var rr = p({
1022
1212
  name: "material-symbols-detection-and-zone",
1023
- render: wn
1024
- }), En = {
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 Dn(e, t) {
1030
- return s(), S("svg", En, [...t[0] ||= [E("path", {
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 On = p({
1225
+ var or = p({
1036
1226
  name: "material-symbols-face",
1037
- render: Dn
1038
- }), kn = {
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 An(e, t) {
1044
- return s(), S("svg", kn, [...t[0] ||= [E("path", {
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 jn = p({
1239
+ var lr = p({
1050
1240
  name: "material-symbols-motion-blur-rounded",
1051
- render: An
1052
- }), Mn = {
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 Nn(e, t) {
1058
- return s(), S("svg", Mn, [...t[0] ||= [E("path", {
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 Pn = p({
1255
+ var fr = p({
1066
1256
  name: "mingcute-classify-2-fill",
1067
- render: Nn
1068
- }), Fn = {
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 In(e, t) {
1074
- return s(), S("svg", Fn, [...t[0] ||= [E("path", {
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 Ln = p({
1269
+ var hr = p({
1080
1270
  name: "ph-text-aa-fill",
1081
- render: In
1082
- }), Rn = {
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 zn(e, t) {
1088
- return s(), S("svg", Rn, [...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", {
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 Bn = p({
1284
+ var vr = p({
1095
1285
  name: "solar-plate-bold",
1096
- render: zn
1097
- }), Vn = /* @__PURE__ */ A({
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 = he(), o = i("dialogRef"), c = i("dialogRefProps"), { schemaConfig: l, pluginName: u, cameraId: d, buttonKey: f, sensorId: p, pluginId: h } = a(n), g = Ne(u), _ = Pe(d, u), ee = Q(p, h), b = j({
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 = W(n.toast.type);
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 = Re;
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
- }), Hn = { class: "font-semibold text-xl truncate" }, Un = { class: "lg:col-span-2 order-1 !h-[220px]" }, Wn = { class: "flex w-full h-full items-center justify-center" }, Gn = { class: "lg:col-span-1 lg:row-span-3 order-2" }, Kn = { class: "lg:!hidden card-title" }, qn = {
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
- }, Jn = { key: 1 }, Yn = { class: "hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, Xn = {
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
- }, Zn = ["onClick"], Qn = {
1348
+ }, kr = ["onClick"], Ar = {
1159
1349
  key: 0,
1160
1350
  class: "w-full h-full"
1161
- }, $n = {
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
- }, er = {
1354
+ }, Mr = {
1165
1355
  key: 2,
1166
1356
  class: "flex items-center justify-center w-full h-full text-muted text-sm"
1167
- }, tr = {
1168
- key: 10,
1357
+ }, Nr = {
1358
+ key: 12,
1169
1359
  class: "w-full h-full"
1170
- }, nr = {
1360
+ }, Pr = {
1171
1361
  key: 0,
1172
1362
  class: "flex items-center justify-center w-full h-full text-muted text-sm"
1173
- }, rr = {
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
- }, ir = /*#__PURE__*/ V(/* @__PURE__ */ A({
1366
+ }, Ir = /*#__PURE__*/ I(/* @__PURE__ */ k({
1177
1367
  __name: "Plugin",
1178
1368
  setup(e) {
1179
- let t = new z(), n = new ze(), i = ye(), a = _e(), u = H(), p = he(), C = ce(), { lgBreakpoint: T } = B(), { t: O } = De(), k = j(u.params.scope), A = j(u.params.pluginname), N = y(() => k.value ? `${k.value}/${A.value}` : A.value), { contract: P, error: I } = Me(N);
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: V, isBusy: re } = n.getPluginQuery(N), { data: ie, isBusy: se } = n.getPluginReadmeQuery(N), { data: de, isBusy: ge } = n.getPluginChangelogQuery(N), { data: G } = n.getPluginContractQuery(N), K = Ne(N), q = K.config, be = K.isLoading, { mutate: xe, isPending: Se } = t.activateCameraExtensionQuery(), { mutate: we, isPending: Te } = t.deactivateCameraExtensionQuery(), J = j("settings"), Z = j([]), Q = j([]), Pe = j(Ce.UNKNOWN), Fe, Ie = y(() => V.value?.contract?.role !== Oe.Service), Le = y(() => !!P.value && X(P.value, Y.NVR)), $ = y(() => Pe.value === Ce.READY || Pe.value === Ce.STARTED), Ve = y(() => $.value ? Le.value || q.value?.schema?.length ? !0 : be.value : !1);
1182
- function He(e, t) {
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 Ge(e) {
1375
+ async function Be(e) {
1186
1376
  try {
1187
- await K.setValue(e.key, void 0), p.add({
1377
+ await G.setValue(e.key, void 0), p.add({
1188
1378
  severity: "success",
1189
- detail: O("components.toast.config_updated"),
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 qe(e) {
1390
+ async function Ve(e) {
1201
1391
  try {
1202
- let t = await K.submitValue(e.key, e.payload);
1392
+ let t = await G.submitValue(e.key, e.payload);
1203
1393
  if (t?.toast) {
1204
- let e = W(t.toast.type);
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(Vn, { data: {
1212
- title: O("components.dialog.title.config"),
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: N.value,
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 Je(e) {
1232
- if (q.value?.schema.length) try {
1233
- let t = Ee(q.value.schema, e);
1234
- await K.setConfig(t), p.add({
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: O("components.toast.config_updated"),
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 Ye(e) {
1248
- V.value && V.value.contract && (Q.value.includes(e.name) ? we({
1437
+ async function Ue(e) {
1438
+ F.value && F.value.contract && (Y.value.includes(e.name) ? xe({
1249
1439
  cameraname: e.name,
1250
- pluginname: V.value.pluginName
1440
+ pluginname: F.value.pluginName
1251
1441
  }, { onSuccess: () => {
1252
- Q.value = Q.value.filter((t) => t !== e.name);
1253
- } }) : xe({
1442
+ Y.value = Y.value.filter((t) => t !== e.name);
1443
+ } }) : _e({
1254
1444
  cameraname: e.name,
1255
- pluginname: V.value.pluginName
1445
+ pluginname: F.value.pluginName
1256
1446
  }, { onSuccess: () => {
1257
- Q.value = [...Q.value, e.name];
1447
+ Y.value = [...Y.value, e.name];
1258
1448
  } }));
1259
1449
  }
1260
- return x(V, (e) => {
1450
+ return x(F, (e) => {
1261
1451
  if (!e || e.disabled) {
1262
- let e = Z.value.some((e) => e.name === "settings"), t = Z.value.some((e) => e.name === "cameras");
1263
- e ? J.value = "settings" : t && (J.value = "cameras");
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
- A.value = u.params.pluginname;
1456
+ k.value = u.params.pluginname;
1267
1457
  }, {
1268
1458
  deep: !0,
1269
1459
  immediate: !0
1270
- }), x([V, K.isConnected], async ([e, t]) => {
1271
- e && !e.disabled && t && await K.getConfig();
1272
- }, { immediate: !0 }), x(N, (e) => {
1273
- Fe?.stop(), e && (Fe = g(), Fe.run(() => {
1274
- let t = Ue(e);
1275
- t.connect(), x(t.status, (e) => Pe.value = e, { immediate: !0 });
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(q, () => {
1278
- q.value ? n.toggleQueryActivator("getPluginContractQuery", !0) : n.toggleQueryActivator("getPluginContractQuery", !1);
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
- G,
1284
- q,
1285
- P,
1286
- Ve,
1287
- $,
1288
- Ie
1473
+ W,
1474
+ K,
1475
+ N,
1476
+ Pe,
1477
+ X,
1478
+ ke
1289
1479
  ], () => {
1290
1480
  let e = [], t = !1;
1291
- Ve.value && e.push({
1481
+ Pe.value && e.push({
1292
1482
  name: "settings",
1293
- icon: ne,
1483
+ icon: H,
1294
1484
  isInterface: !1,
1295
- tooltip: O("views.plugin.settings_tab_tooltip")
1296
- }), $.value && P.value && X(P.value, Y.MotionDetection) && (t = !0, e.push({
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: jn,
1488
+ icon: lr,
1299
1489
  isInterface: !0,
1300
- tooltip: O("views.plugin.motion_detection_tab_tooltip")
1301
- })), $.value && P.value && X(P.value, Y.ObjectDetection) && (t = !0, e.push({
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: Tn,
1493
+ icon: rr,
1304
1494
  isInterface: !0,
1305
- tooltip: O("views.plugin.object_detection_tab_tooltip")
1306
- })), $.value && P.value && X(P.value, Y.AudioDetection) && (t = !0, e.push({
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: Sn,
1503
+ icon: er,
1309
1504
  isInterface: !0,
1310
- tooltip: O("views.plugin.audio_detection_tab_tooltip")
1311
- })), $.value && P.value && X(P.value, Y.FaceDetection) && (t = !0, e.push({
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: On,
1508
+ icon: or,
1314
1509
  isInterface: !0,
1315
- tooltip: O("views.plugin.face_detection_tab_tooltip")
1316
- })), $.value && P.value && X(P.value, Y.FaceEmbedding) && (t = !0, e.push({
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: Ae,
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: O("views.plugin.face_recognition_tab_tooltip")
1321
- })), $.value && P.value && X(P.value, Y.LicensePlateDetection) && (t = !0, e.push({
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: Bn,
1523
+ icon: vr,
1324
1524
  isInterface: !0,
1325
- tooltip: O("views.plugin.license_plate_detection_tab_tooltip")
1326
- })), $.value && P.value && X(P.value, Y.ClassifierDetection) && (t = !0, e.push({
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: Pn,
1528
+ icon: fr,
1329
1529
  isInterface: !0,
1330
- tooltip: O("views.plugin.classifier_detection_tab_tooltip")
1331
- })), $.value && P.value && X(P.value, Y.ClipDetection) && (t = !0, e.push({
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: Ln,
1533
+ icon: hr,
1334
1534
  isInterface: !0,
1335
- tooltip: O("views.plugin.clip_detection_tab_tooltip")
1336
- })), $.value && P.value && X(P.value, Y.Notifier) && (t = !0, e.push({
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: ae,
1538
+ icon: me,
1339
1539
  isInterface: !0,
1340
- tooltip: O("views.plugin.notification_tab_tooltip")
1341
- })), Ie.value && e.push({
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: O("views.plugin.cameras_tab_tooltip")
1346
- }), G.value?.cameras.length && (Q.value = G.value.cameras.filter((e) => e.plugins?.some((e) => e.name === N.value)).map((e) => e.name)), Z.value = [...e], V.value?.disabled || (Ve.value ? J.value = "settings" : t ? J.value = Z.value.filter((e) => e.isInterface)[0].name : Ie.value && (J.value = "cameras"));
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(I, (e) => {
1351
- e && V.value && !V.value.disabled && i.error("Error connecting to plugin:", e);
1352
- }), r(() => Fe?.stop()), (e, t) => {
1353
- let n = Ke, r = je, i = pe, u = R, p = ve, g = We, y = L, x = U, C = ke, O = Re, k = yn, A = Dt, j = Be, P = te, I = le, z = me, B = oe, ne = fe, H = $e, ae = F;
1354
- return s(), S("div", { key: v(N) }, [
1355
- M(i, { position: "left" }, {
1356
- default: b(() => [M(r, {
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(() => [M(n, { class: "w-6 h-6" })]),
1562
+ icon: b(() => [j(n, { class: "w-6 h-6" })]),
1363
1563
  _: 1
1364
1564
  })]),
1365
1565
  _: 1
1366
1566
  }),
1367
- M(i, { position: "center" }, {
1368
- default: b(() => [E("span", Hn, c(e.$t("views.plugin.title")), 1)]),
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", Un, [v(V) ? (s(), m(g, {
1373
- key: v(V).pluginName,
1374
- plugin: v(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", Wn, [M(u, {
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", Gn, [E("span", Kn, c(e.$t("views.plugin.settings")), 1), M(p, { class: d(["cui-card !h-auto lg:!h-full", { "items-center justify-center": v(re) || v(be) }]) }, {
1387
- content: b(() => [v(re) || v(be) ? (s(), S("div", qn, [M(u, {
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", Jn, [E("h3", Yn, c(e.$t("views.plugin.settings")), 1), v(V)?.disabled ? (s(), S("div", Xn, [E("span", null, c(e.$t("views.plugin.disabled_info")), 1)])) : (s(), m(ne, {
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(J),
1393
- "onUpdate:value": t[2] ||= (e) => ee(J) ? J.value = e : null,
1592
+ value: v(q),
1593
+ "onUpdate:value": t[2] ||= (e) => ee(q) ? q.value = e : null,
1394
1594
  scrollable: ""
1395
1595
  }, {
1396
- default: b(() => [M(x, {
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(Z), (e, t) => (s(), m(y, {
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(V)?.disabled,
1605
+ disabled: e.isInterface && v(F)?.disabled,
1406
1606
  value: e.name,
1407
1607
  "as-child": ""
1408
1608
  }, {
1409
- default: b((t) => [D((s(), S("div", l({ ref_for: !0 }, t.a11yAttrs, {
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, Zn)), [[ae, { value: e.tooltip }]])]),
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
- }), M(B, { class: "px-0 pb-0" }, {
1417
- default: b(() => [(s(!0), S(w, null, o(v(Z), (n, i) => (s(), m(z, {
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", Qn, [v(Le) ? (s(), S("div", $n, [E("span", null, c(e.$t("views.plugin.nvr_settings_hint")), 1), M(r, {
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(() => [M(C, { class: "w-4 h-4" })]),
1630
+ icon: b(() => [j(C, { class: "w-4 h-4" })]),
1431
1631
  _: 1
1432
- }, 8, ["label"])])) : v(q)?.schema?.length ? (s(), m(O, {
1632
+ }, 8, ["label"])])) : v(K)?.schema?.length ? (s(), m(D, {
1433
1633
  key: 1,
1434
1634
  "schema-form": {
1435
- schema: v(q).schema,
1436
- config: v(q).config
1635
+ schema: v(K).schema,
1636
+ config: v(K).config
1437
1637
  },
1438
- loading: v(K).isLoading.value,
1638
+ loading: v(G).isLoading.value,
1439
1639
  "save-button-color": "success",
1440
- onOnAction: Ge,
1441
- onOnSubmit: qe,
1442
- onOnFormSubmit: Je
1443
- }, null, 8, ["schema-form", "loading"])) : (s(), S("div", er, [E("span", null, c(e.$t("views.plugin.no_settings")), 1)]))])) : n.name === "motion_detection" ? (s(), m(k, {
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(N),
1645
+ "plugin-name": v(M),
1446
1646
  type: "motionDetection"
1447
- }, null, 8, ["plugin-name"])) : n.name === "object_detection" ? (s(), m(k, {
1647
+ }, null, 8, ["plugin-name"])) : n.name === "object_detection" ? (s(), m(O, {
1448
1648
  key: 2,
1449
- "plugin-name": v(N),
1649
+ "plugin-name": v(M),
1450
1650
  type: "objectDetection"
1451
- }, null, 8, ["plugin-name"])) : n.name === "audio_detection" ? (s(), m(k, {
1651
+ }, null, 8, ["plugin-name"])) : n.name === "segmentation" ? (s(), m(O, {
1452
1652
  key: 3,
1453
- "plugin-name": v(N),
1454
- type: "audioDetection"
1455
- }, null, 8, ["plugin-name"])) : n.name === "face_detection" ? (s(), m(k, {
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(N),
1458
- type: "faceDetection"
1459
- }, null, 8, ["plugin-name"])) : n.name === "face_recognition" ? (s(), m(k, {
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(N),
1462
- type: "faceRecognition"
1463
- }, null, 8, ["plugin-name"])) : n.name === "license_plate_detection" ? (s(), m(k, {
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(N),
1466
- type: "licensePlateDetection"
1467
- }, null, 8, ["plugin-name"])) : n.name === "classifier_detection" ? (s(), m(k, {
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(N),
1470
- type: "classifierDetection"
1471
- }, null, 8, ["plugin-name"])) : n.name === "clip_detection" ? (s(), m(k, {
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(N),
1474
- type: "clipDetection"
1475
- }, null, 8, ["plugin-name"])) : n.name === "notification" ? (s(), m(A, {
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(N)
1478
- }, null, 8, ["plugin-name"])) : n.name === "cameras" ? (s(), S("div", tr, [v(G)?.cameras?.length ? v($) ? (s(!0), S(w, { key: 2 }, o(v(G).cameras, (e) => (s(), S("div", {
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
- }, [M(I, {
1482
- disabled: v(Se) || v(Te) || v(K).isLoading.value,
1483
- active: v(Q).includes(e.name),
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(V) || !He(e, v(V).pluginName) ? {
1697
+ }, [!v(F) || !Le(e, v(F).pluginName) ? {
1490
1698
  name: "append",
1491
- fn: b(() => [M(P, {
1492
- "model-value": v(Q).includes(e.name),
1493
- disabled: v(Se) || v(Te) || v(K).isLoading.value || !v($),
1494
- "onUpdate:modelValue": () => Ye(e)
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", rr, [M(j, { class: "w-4 h-4 flex-shrink-0" }), E("span", null, c(e.$t("views.plugin.assignment_requires_running")), 1)])) : (s(), S("div", nr, [E("span", null, c(e.$t("views.plugin.no_cameras")), 1)]))])) : h("", !0)], 16)) : h("", !0)]),
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
- M(H, {
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(ie),
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
- M(H, {
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(de),
1531
- loading: v(ge)
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-3ee212b0"]]);
1750
+ }), [["__scopeId", "data-v-253f0bcc"]]);
1543
1751
  //#endregion
1544
- export { ir as default };
1752
+ export { Ir as default };