@camera.ui/server 2.2.7 → 2.2.8

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 (528) hide show
  1. package/dist/interface/assets/{404-C8EoOtBl.js → 404-BYV0u5qE.js} +1 -1
  2. package/dist/interface/assets/{About-Q7ZmOGgl.js → About-DBOS1rfw.js} +1 -1
  3. package/dist/interface/assets/{Assistant-DFLgklVe.js → Assistant-BRcHj8hq.js} +1 -1
  4. package/dist/interface/assets/Automation-C0Emde7z.js +3 -0
  5. package/dist/interface/assets/{AutomationImport-CLQSdqg9.js → AutomationImport-Iu-K82Os.js} +2 -2
  6. package/dist/interface/assets/{AutomationStore-Dt6yTQDb.js → AutomationStore-C2G0Bk8c.js} +2 -2
  7. package/dist/interface/assets/{AutomationStoreDetail-DqBrBhUI.js → AutomationStoreDetail-BbvLRJ5u.js} +2 -2
  8. package/dist/interface/assets/Automations-D-vfqRnZ.js +2 -0
  9. package/dist/interface/assets/Camera-BpurrgAr.js +2 -0
  10. package/dist/interface/assets/Camera-D0B7yyVD.css +1 -0
  11. package/dist/interface/assets/{CameraConsole-rhle_cfW.js → CameraConsole-JBD3ZmJ6.js} +2 -2
  12. package/dist/interface/assets/{Cameras-Bzy3P0xN.js → Cameras-R5mJGMK9.js} +2 -2
  13. package/dist/interface/assets/{Camview-Bri_T7Tq.css → Camview-DH6_8CxH.css} +1 -1
  14. package/dist/interface/assets/Camview-IbOVRx20.js +1 -0
  15. package/dist/interface/assets/{CertificateUpload-CWVu_52v.js → CertificateUpload-B9S4EOQs.js} +1 -1
  16. package/dist/interface/assets/Config-CbFl5Wcp.js +2 -0
  17. package/dist/interface/assets/{ConfigActionAssistant-AfQfSqHZ.js → ConfigActionAssistant-DIOh6-np.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionCameraControl-BKQdHxqe.js → ConfigActionCameraControl-Bw_egtpP.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionDelay-B52HeJGb.js → ConfigActionDelay-B9i4YZjy.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionHttp-BP5gvpQc.js → ConfigActionHttp-DFtxAa3U.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionImageInput-DE2mSost.js → ConfigActionImageInput-CuTH4Nw2.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionMqtt-CYgnZjAE.js → ConfigActionMqtt-B9SfWP-G.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionNotification-C3q53I4n.js → ConfigActionNotification-BGMIByJT.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionNotificationControl-eDJ8r5ao.js → ConfigActionNotificationControl-Cz72szMd.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionOutput-DgYSYvy-.js → ConfigActionOutput-BG6DoIRe.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionPlugin-utolgAXk.js → ConfigActionPlugin-B5oRSE9n.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionSensor-CmEKQPqs.js → ConfigActionSensor-BErRRYfl.js} +1 -1
  28. package/dist/interface/assets/{ConfigActionSnapshot-D7XucxVV.js → ConfigActionSnapshot-Di-uxMrg.js} +1 -1
  29. package/dist/interface/assets/{ConfigActionVariable-C-Mjm3gr.js → ConfigActionVariable-BBpUti5A.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionIfElse-B24Rqb8y.js → ConfigConditionIfElse-DjOKPXQw.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionSensorState-42-yFDmK.js → ConfigConditionSensorState-BzvvZvD0.js} +1 -1
  32. package/dist/interface/assets/{ConfigConditionSwitch-DezH_nwm.js → ConfigConditionSwitch-DQvdfUxR.js} +1 -1
  33. package/dist/interface/assets/{ConfigConditionTime-Cg2Lwznd.js → ConfigConditionTime-BqOElX5C.js} +1 -1
  34. package/dist/interface/assets/{ConfigSensorValueInput-YHBDCTZm.js → ConfigSensorValueInput-BT-0LhSH.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerDetection-DxEpodjG.js → ConfigTriggerDetection-1OkudUah.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerGeofence-Bye8syxc.js → ConfigTriggerGeofence-HGatk3C5.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerManual-s_lEDTV9.js → ConfigTriggerManual-DpRr_vVq.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerMqtt-DqdZj7TU.js → ConfigTriggerMqtt-C_MId3BY.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerSchedule-Q559hn6g.js → ConfigTriggerSchedule-BmwDqd6N.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerSensor-DIKkdbTF.js → ConfigTriggerSensor-Rgx8q4g8.js} +1 -1
  41. package/dist/interface/assets/{ConfigTriggerSystem-CwNZ4xEg.js → ConfigTriggerSystem-4VsHPmbn.js} +1 -1
  42. package/dist/interface/assets/{ConfigTriggerWebhook-9ZC6X4mK.js → ConfigTriggerWebhook-Bs7zEfY0.js} +1 -1
  43. package/dist/interface/assets/{Console-BqIDZ5vq.js → Console-oCuuVKET.js} +1 -1
  44. package/dist/interface/assets/CuiAssistantConversation-Bsyxau9v.js +5 -0
  45. package/dist/interface/assets/{CuiAutomationRunsDialog-CVjCLiVW.js → CuiAutomationRunsDialog-sRh_K6JI.js} +1 -1
  46. package/dist/interface/assets/CuiBottomSheet-DWoSHzC7.js +1 -0
  47. package/dist/interface/assets/{CuiBottomSheet-D75L0Zny.js → CuiBottomSheet-Dd3uOtnC.js} +1 -1
  48. package/dist/interface/assets/CuiCameraPipCard-D6REm8uT.js +1 -0
  49. package/dist/interface/assets/CuiCameraPipCard-TYTCfwXf.css +1 -0
  50. package/dist/interface/assets/{CuiCameraRecordings-DdEWkJrO.js → CuiCameraRecordings-C2tvrbbw.js} +1 -1
  51. package/dist/interface/assets/{CuiCameraShares-8mtgFsQ_.js → CuiCameraShares-jrrUEHoZ.js} +1 -1
  52. package/dist/interface/assets/CuiCameraTable-BOzTWLwd.js +1 -0
  53. package/dist/interface/assets/{CuiCameraTable-CmCT-XQF.js → CuiCameraTable-C7WLZ2pA.js} +2 -2
  54. package/dist/interface/assets/{CuiChartTable-v8sGY6PD.js → CuiChartTable-BYrIX7LV.js} +1 -1
  55. package/dist/interface/assets/{CuiConsole-DYV-FUE0.js → CuiConsole-CkZML0iY.js} +2 -2
  56. package/dist/interface/assets/CuiDataTable-BFIhx1D3.js +1 -0
  57. package/dist/interface/assets/{CuiLightControl-CFIwBj3C.js → CuiLightControl-DitIWqUr.js} +1 -1
  58. package/dist/interface/assets/{CuiList-9TVV8SB6.js → CuiList-BewTNr2X.js} +1 -1
  59. package/dist/interface/assets/CuiMarkdownContent-Do04YgHe.js +1 -0
  60. package/dist/interface/assets/{CuiMarkdownContent-BYBQX_aF.js → CuiMarkdownContent-qOPm3VEi.js} +1 -1
  61. package/dist/interface/assets/CuiPluginCard-Bd2HFduI.js +2 -0
  62. package/dist/interface/assets/{CuiPluginCategoryChip-DhnIBJHa.js → CuiPluginCategoryChip-DlzOwRgc.js} +1 -1
  63. package/dist/interface/assets/{CuiPluginOAuthButton-DAuzNRAA.js → CuiPluginOAuthButton-BQZkTcgo.js} +2 -2
  64. package/dist/interface/assets/{CuiPluginTrustBadge-Bz710WwC.js → CuiPluginTrustBadge-DbqdfdaL.js} +1 -1
  65. package/dist/interface/assets/{CuiQRCode-B8-4GHSY.js → CuiQRCode-2WsWJQFi.js} +1 -1
  66. package/dist/interface/assets/{CuiSchema-C_CHuKuf.js → CuiSchema-BL0QZmP2.js} +1 -1
  67. package/dist/interface/assets/{CuiTopNavbarItem-CNEnOPSh.js → CuiTopNavbarItem-Ti2TueU1.js} +1 -1
  68. package/dist/interface/assets/Faces-DARrGLXf.js +1 -0
  69. package/dist/interface/assets/{FirstSteps-Ci2Iqbe2.js → FirstSteps-DBYPBvGr.js} +1 -1
  70. package/dist/interface/assets/Floorplan-BaZvzoyv.js +1 -0
  71. package/dist/interface/assets/{Instances-gzKFKB1l.js → Instances-r0xReURi.js} +1 -1
  72. package/dist/interface/assets/{Logs-DL1yw_Pe.js → Logs-DMehPk0t.js} +2 -2
  73. package/dist/interface/assets/{Menu-C0GQ63aj.js → Menu-C34RRyLd.js} +1 -1
  74. package/dist/interface/assets/Metrics-BjoC71_O.js +12 -0
  75. package/dist/interface/assets/{OAuthDeviceFlow-Zd6r9IHU.js → OAuthDeviceFlow-CdZxelf2.js} +1 -1
  76. package/dist/interface/assets/Plugin-npx7CnwV.js +1 -0
  77. package/dist/interface/assets/{PluginConsole-ag0jPZQ_.js → PluginConsole-D1BRQCO9.js} +2 -2
  78. package/dist/interface/assets/PluginDetail-nwTrJmO6.js +2 -0
  79. package/dist/interface/assets/{PluginSchema-CxUujnVs.js → PluginSchema-B9VsBHOU.js} +1 -1
  80. package/dist/interface/assets/PluginSearch-CP2kQWKf.js +1 -0
  81. package/dist/interface/assets/{PluginSearch-BqzngVRL.js → PluginSearch-WEvbKMRs.js} +2 -2
  82. package/dist/interface/assets/{PluginUpdateProgress-CFut0RAe.js → PluginUpdateProgress-uj0XPV-_.js} +1 -1
  83. package/dist/interface/assets/Plugins-CPx9Hszm.js +1 -0
  84. package/dist/interface/assets/{RecentEventsFilter-CqeHhECT.js → RecentEventsFilter-D5VSH2K1.js} +1 -1
  85. package/dist/interface/assets/Recordings-De6Zcv0M.js +1 -0
  86. package/dist/interface/assets/{SensorEdit-Bi0gg-CL.js → SensorEdit-SD_oHBRo.js} +1 -1
  87. package/dist/interface/assets/{SensorHistory-q0UR3qMG.js → SensorHistory-SxiLOloa.js} +1 -1
  88. package/dist/interface/assets/Sensors-Djl64M-W.js +2 -0
  89. package/dist/interface/assets/{Settings-Cv38rGWn.js → Settings-CAf2reGs.js} +1 -1
  90. package/dist/interface/assets/SettingsAccount-BGj5Ni91.js +1 -0
  91. package/dist/interface/assets/SettingsAccount-Dy6WC8ql.js +1 -0
  92. package/dist/interface/assets/SettingsAppearance-BGFhMlRk.js +1 -0
  93. package/dist/interface/assets/{SettingsAppearance-DdyYUgmV.js → SettingsAppearance-DQzQmVzE.js} +1 -1
  94. package/dist/interface/assets/SettingsAssistant-BwYVyuN3.js +1 -0
  95. package/dist/interface/assets/{SettingsBackup-DKwlPQhD.js → SettingsBackup-CVExGnOo.js} +1 -1
  96. package/dist/interface/assets/{SettingsList-D6hqnvUo.js → SettingsList-vo7sz_MY.js} +1 -1
  97. package/dist/interface/assets/{SettingsMqtt-C01fgLY0.js → SettingsMqtt-B1CuOcML.js} +1 -1
  98. package/dist/interface/assets/{SettingsNotifications-D47cIquQ.js → SettingsNotifications-CCQ6eiq8.js} +1 -1
  99. package/dist/interface/assets/{SettingsPermissions-BeTCTrAf.js → SettingsPermissions-BlOf6HEy.js} +1 -1
  100. package/dist/interface/assets/{SettingsRecordings-mwL6Dalr.js → SettingsRecordings-7tTBg6m1.js} +1 -1
  101. package/dist/interface/assets/SettingsRemote-CsIGx-LU.css +1 -0
  102. package/dist/interface/assets/SettingsRemote-DBgKmIdv.js +2 -0
  103. package/dist/interface/assets/{SettingsSystem-BXnzXgqm.js → SettingsSystem-DaFMsZpN.js} +2 -2
  104. package/dist/interface/assets/{SettingsUsers-D2mVlJin.js → SettingsUsers-DXACwVPi.js} +1 -1
  105. package/dist/interface/assets/{Terminal-C1UoXDRK.js → Terminal-DtGqlHbk.js} +2 -2
  106. package/dist/interface/assets/Training-Ca11D1Vj.js +1 -0
  107. package/dist/interface/assets/{Updates-kS_Tm8HD.js → Updates-yenwuqnD.js} +2 -2
  108. package/dist/interface/assets/{VariableInput-D9PfI8Ut.js → VariableInput-CcILik4M.js} +1 -1
  109. package/dist/interface/assets/{VariableSuggestions-DArWzQuE.js → VariableSuggestions-Bj0HdrYW.js} +1 -1
  110. package/dist/interface/assets/{VersionsHandler-BZVMpB2v.js → VersionsHandler-BA8Lcysg.js} +1 -1
  111. package/dist/interface/assets/{VirtualSensorCreate-Cz-QFo4R.js → VirtualSensorCreate-DvHyw7I2.js} +1 -1
  112. package/dist/interface/assets/{Workers-DH59zE1C.css → Workers-Dey1snI4.css} +1 -1
  113. package/dist/interface/assets/Workers-Dyo44zxe.js +2 -0
  114. package/dist/interface/assets/{account-DwW7pBOb.js → account-DjBQulDn.js} +1 -1
  115. package/dist/interface/assets/ace-BPAekgyf.js +1 -0
  116. package/dist/interface/assets/{ace.config-CCyX_Ohk.js → ace.config-CvKE-yp1.js} +1 -1
  117. package/dist/interface/assets/{alert-circle-BdUVAt1B.js → alert-circle-B-JCMbb9.js} +1 -1
  118. package/dist/interface/assets/{alert-outline-IRxYbw0j.js → alert-outline-B4ZZowEj.js} +1 -1
  119. package/dist/interface/assets/{api-CGfJbsTz.css → api-CHQlxVtZ.css} +1 -1
  120. package/dist/interface/assets/{api-CzwdnGAH.js → api-CKbL5jC7.js} +1 -1
  121. package/dist/interface/assets/api-CLazgL-g.js +4 -0
  122. package/dist/interface/assets/{arrow-left-Bk-ZrOVr.js → arrow-left-PeaVwpHd.js} +1 -1
  123. package/dist/interface/assets/{assistant-hGCAgv-f.js → assistant-CwmHp5bB.js} +1 -1
  124. package/dist/interface/assets/{assistantModels-BsSgRsws.js → assistantModels-D3ncWWu0.js} +1 -1
  125. package/dist/interface/assets/{auth-By-S-WEr.js → auth-AfZrkJ2f.js} +1 -1
  126. package/dist/interface/assets/automations-DOCG0q8-.js +1 -0
  127. package/dist/interface/assets/{back-filled-D-X19YMO.js → back-filled-CJoz7Gkl.js} +1 -1
  128. package/dist/interface/assets/{bell-ring-DreEHgoT.js → bell-ring-CBf0Yn3H.js} +1 -1
  129. package/dist/interface/assets/{brain-DuDAg544.js → brain-uZ03n3LW.js} +1 -1
  130. package/dist/interface/assets/cameraSources-mHEz9ROa.js +1 -0
  131. package/dist/interface/assets/{cctv-DM-C_8_6.js → cctv-VgKQ-dBV.js} +1 -1
  132. package/dist/interface/assets/{check-circle-Bevuw8-0.js → check-circle-BU-KNgPB.js} +1 -1
  133. package/dist/interface/assets/{check-circle-outline-aMxkvksr.js → check-circle-outline-BsxzAMed.js} +1 -1
  134. package/dist/interface/assets/{chevron-down-CCFn9Z56.js → chevron-down-CxK4Sfjs.js} +1 -1
  135. package/dist/interface/assets/{chevron-up-CSImUM3_.js → chevron-up-DWfNH8va.js} +1 -1
  136. package/dist/interface/assets/{clock-outline-DH3WIEJt.js → clock-outline-BtWx4GaF.js} +1 -1
  137. package/dist/interface/assets/{close-CMxyM4v9.js → close-Be7oB7d_.js} +1 -1
  138. package/dist/interface/assets/{close-circle-CfgJCZ9A.js → close-circle-D7Jmhp_7.js} +1 -1
  139. package/dist/interface/assets/{cloud-check-CbdFLIdR.js → cloud-check-zCGJxpWI.js} +1 -1
  140. package/dist/interface/assets/cloudHandoff-zJCrDmwk.js +1 -0
  141. package/dist/interface/assets/{config-BQxEwrK6.js → config-AG0SnOiY.js} +1 -1
  142. package/dist/interface/assets/{content-copy-Bz49QPOI.js → content-copy-BcYlfuFc.js} +1 -1
  143. package/dist/interface/assets/{copy-DA6QQHRt.js → copy-DuY-M96E.js} +1 -1
  144. package/dist/interface/assets/{cube-scan-IiH8zwm2.js → cube-scan-Cae03i_N.js} +1 -1
  145. package/dist/interface/assets/{database-refresh-outline-CIUDpcuq.js → database-refresh-outline-B3OEQFF7.js} +1 -1
  146. package/dist/interface/assets/{delete-Btu-UVx9.js → delete-BWgOAzKl.js} +1 -1
  147. package/dist/interface/assets/{dist-D_qWDAKp.js → dist-DmpuuM9s.js} +1 -1
  148. package/dist/interface/assets/{dots-vertical-D496SIss.js → dots-vertical-Kby1GY8_.js} +1 -1
  149. package/dist/interface/assets/{download-BSC7lwq_.js → download-C291Yq7I.js} +1 -1
  150. package/dist/interface/assets/esm-B2TVBF3B.js +1 -0
  151. package/dist/interface/assets/esm-BEntuCG7.js +1 -0
  152. package/dist/interface/assets/esm-BRnyrFH8.js +1 -0
  153. package/dist/interface/assets/esm-CCwXzd_8.js +1 -0
  154. package/dist/interface/assets/esm-CEjwTsuD.js +1 -0
  155. package/dist/interface/assets/esm-CGGV9tC4.js +1 -0
  156. package/dist/interface/assets/esm-CI2tTOc5.js +1 -0
  157. package/dist/interface/assets/esm-CgxZmMYv.js +1 -0
  158. package/dist/interface/assets/esm-Csc6f5Fy.js +1 -0
  159. package/dist/interface/assets/esm-Qzx3d-Ie.js +1 -0
  160. package/dist/interface/assets/esm-a_w7mTdx.js +1 -0
  161. package/dist/interface/assets/esm-iKfsu7-H.js +1 -0
  162. package/dist/interface/assets/esm-ks5kvk_e.js +1 -0
  163. package/dist/interface/assets/esm-nJfTguKF.js +1 -0
  164. package/dist/interface/assets/{eventIcons-UQutPG3p.js → eventIcons-C3JWChgS.js} +1 -1
  165. package/dist/interface/assets/{eye-off-CSU0U8g7.js → eye-off-zGCIHKOK.js} +1 -1
  166. package/dist/interface/assets/{flowSchema-BPq6iHks.js → flowSchema-B0d3VjU7.js} +1 -1
  167. package/dist/interface/assets/{help-circle-outline-Cr_yNhPi.js → help-circle-outline-DXFepDAG.js} +1 -1
  168. package/dist/interface/assets/{history-anuCbp1T.js → history-D-FlZdKD.js} +1 -1
  169. package/dist/interface/assets/{home-N3bDR1vX.js → home-DPdzRxcM.js} +1 -1
  170. package/dist/interface/assets/{information-outline-CMWIvLNB.js → information-outline-ChOM9qgI.js} +1 -1
  171. package/dist/interface/assets/{intercomService-CXcjcPa9.js → intercomService-DG3EeZ6s.js} +1 -1
  172. package/dist/interface/assets/{lan-CYXjdk7L.js → lan-DvYEO83l.js} +1 -1
  173. package/dist/interface/assets/{main-DVa5U7UB.css → main-CGY9cVyi.css} +1 -1
  174. package/dist/interface/assets/main-DkHV6YgB.js +3 -0
  175. package/dist/interface/assets/{microphone-BB2pATI_.js → microphone-D-T9xga4.js} +1 -1
  176. package/dist/interface/assets/{minus-BCp3ZNKO.js → minus-4T4INuO4.js} +1 -1
  177. package/dist/interface/assets/mqtt-DE2VbNdt.js +1 -0
  178. package/dist/interface/assets/native-CtfXrwj5.js +1 -0
  179. package/dist/interface/assets/native-JMtkOkIV.js +1 -0
  180. package/dist/interface/assets/{nodeDefinitions-ByrqsENY.js → nodeDefinitions-Dp8cnne1.js} +1 -1
  181. package/dist/interface/assets/{notifications-BCyiD-TP.js → notifications-8FH4ApEz.js} +1 -1
  182. package/dist/interface/assets/{pause-BQlxwAW2.js → pause-DHqHYA3V.js} +1 -1
  183. package/dist/interface/assets/{pencil-outline-CIQL5Kui.js → pencil-outline-D-GmPf8M.js} +1 -1
  184. package/dist/interface/assets/{pencil-CDsNnEXi.js → pencil-vACi-JzY.js} +1 -1
  185. package/dist/interface/assets/plugin-Dt5Xetfz.js +1 -0
  186. package/dist/interface/assets/plugins-2JLUEMYc.js +1 -0
  187. package/dist/interface/assets/{plus-Bp4q9G7S.js → plus-BBUb8_uL.js} +1 -1
  188. package/dist/interface/assets/{plus-CySoovdr.js → plus-BJb7U4bN.js} +1 -1
  189. package/dist/interface/assets/{power-WmBLDR0-.js → power-Dm_aNIz-.js} +1 -1
  190. package/dist/interface/assets/{radar-CyYAmume.js → radar-Dcvdz--e.js} +1 -1
  191. package/dist/interface/assets/{refresh-CHTA3jVN.js → refresh-CO4F18Je.js} +1 -1
  192. package/dist/interface/assets/{restore-C8RNM5yX.js → restore-xRBt3Grb.js} +1 -1
  193. package/dist/interface/assets/rooms-DoAfzA8W.js +1 -0
  194. package/dist/interface/assets/{round-alt-arrow-left-bold-Gh5mi_yR.js → round-alt-arrow-left-bold-CZHXzGS5.js} +1 -1
  195. package/dist/interface/assets/{search-BajCVmOI.js → search-D75YW08B.js} +1 -1
  196. package/dist/interface/assets/{sensorIcons-DofElQ3w.js → sensorIcons-BntiOPX7.js} +1 -1
  197. package/dist/interface/assets/{sensorSlots-D2KJGvPw.js → sensorSlots-biaL-O8E.js} +1 -1
  198. package/dist/interface/assets/sensors-DyAMdS-H.js +1 -0
  199. package/dist/interface/assets/{server-Dw5DD473.js → server-BDRUGj61.js} +1 -1
  200. package/dist/interface/assets/{settings-DnksaK7m.js → settings-DDOgc5BX.js} +1 -1
  201. package/dist/interface/assets/{source-branch-CzqIPffP.js → source-branch-DVHuYlkZ.js} +1 -1
  202. package/dist/interface/assets/{theme-C85LJhOY.js → theme-CLxrnR60.js} +1 -1
  203. package/dist/interface/assets/{trash-2-DJeEhHf4.js → trash-2-DDKPtl2x.js} +1 -1
  204. package/dist/interface/assets/{trash-can-outline-DrT6iw7I.js → trash-can-outline-DVH3zgo0.js} +1 -1
  205. package/dist/interface/assets/{trash-fill-Bb_-UicM.js → trash-fill-C_IJ4Vu2.js} +1 -1
  206. package/dist/interface/assets/{trash2-Dsl8gfxq.js → trash2-DY0XTaJD.js} +1 -1
  207. package/dist/interface/assets/{types-CPhy0Ovw.js → types-8JXzkoC8.js} +1 -1
  208. package/dist/interface/assets/{types-DYKmSGl4.js → types-B4LLKzDW.js} +1 -1
  209. package/dist/interface/assets/types-a7Nw-P-m.js +1 -0
  210. package/dist/interface/assets/{undo-DoqJW-k7.js → undo-YRkBYCnf.js} +1 -1
  211. package/dist/interface/assets/ungrouped-BoAbb9w3.js +1 -0
  212. package/dist/interface/assets/ungrouped-ChmBvcXp.css +1 -0
  213. package/dist/interface/assets/updates-F-veEP1I.js +1 -0
  214. package/dist/interface/assets/{upload-DtIcwiNC.js → upload-2WcHRjTq.js} +1 -1
  215. package/dist/interface/assets/{upload-C3w1XH-o.js → upload-BiE7VzTj.js} +1 -1
  216. package/dist/interface/assets/{useAppVersion-DkazK9Vu.js → useAppVersion-BjUQmB7M.js} +1 -1
  217. package/dist/interface/assets/{useAssistantActions-BZP6NL18.js → useAssistantActions-CNEJol4o.js} +1 -1
  218. package/dist/interface/assets/useBackupRestore-Biqn_lhh.js +1 -0
  219. package/dist/interface/assets/{useCameraOptions-DnI0xLrX.js → useCameraOptions-D_oduve2.js} +1 -1
  220. package/dist/interface/assets/{useKeyboardInset-Cr7SxKGN.js → useKeyboardInset-CPWSVYlA.js} +1 -1
  221. package/dist/interface/assets/{useLogsSocket-C3Y8S0Ar.js → useLogsSocket-B_jXUqv8.js} +1 -1
  222. package/dist/interface/assets/{useNavLayout-C9pcDuVP.js → useNavLayout-DEngIIeU.js} +1 -1
  223. package/dist/interface/assets/{usePermissions-CCTxwXF0.js → usePermissions-DAO92InI.js} +1 -1
  224. package/dist/interface/assets/{usePluginUpdates-DBhLWAua.js → usePluginUpdates-CJi8Y_wl.js} +1 -1
  225. package/dist/interface/assets/{usePushRegistration-CPRVdLAx.js → usePushRegistration-j9WCeFbv.js} +2 -2
  226. package/dist/interface/assets/{useServerRestart-bScBLJ9r.js → useServerRestart-BVks5tuC.js} +1 -1
  227. package/dist/interface/assets/{useStreamStatus-Bfh-WmLH.js → useStreamStatus-DQ0NSyU8.js} +1 -1
  228. package/dist/interface/assets/{useTabSwipe-C_QOrvSW.js → useTabSwipe-CVq7EcIY.js} +1 -1
  229. package/dist/interface/assets/{useUpdateChannel-g0h_4c55.js → useUpdateChannel-C0fjDvNP.js} +1 -1
  230. package/dist/interface/assets/{useUpdatesSocket-CxrLRETs.js → useUpdatesSocket-DXKF9hzc.js} +1 -1
  231. package/dist/interface/assets/useUserOptions-UjMeAL5n.js +1 -0
  232. package/dist/interface/assets/{variable-ywTlRfo5.js → variable-Cp8o-q8t.js} +1 -1
  233. package/dist/interface/assets/vendor-Df81FCJz.js +29 -0
  234. package/dist/interface/assets/{vendor-ace-CvEoip98.js → vendor-ace-QSsGUspX.js} +1 -1
  235. package/dist/interface/assets/{vendor-cameraui-B28aGJJD.js → vendor-cameraui-GmMRyJ2R.js} +3 -3
  236. package/dist/interface/assets/{vendor-capacitor-Bs_WzL0Q.js → vendor-capacitor-t5EIN1GG.js} +2 -2
  237. package/dist/interface/assets/{vendor-chart-DBK083Hu.js → vendor-chart-BiJYkx5_.js} +1 -1
  238. package/dist/interface/assets/{vendor-core-DIa0tPNH.js → vendor-core-BeAannbA.js} +1 -1
  239. package/dist/interface/assets/{vendor-dnd-DGQLvX6Y.js → vendor-dnd-C1kMh9_t.js} +1 -1
  240. package/dist/interface/assets/{vendor-draggabilly-D8CK6M-y.js → vendor-draggabilly-Cw1oJ6qc.js} +1 -1
  241. package/dist/interface/assets/vendor-leaflet-OSZlONe5.js +1 -0
  242. package/dist/interface/assets/{vendor-markdown-qHIinIUE.js → vendor-markdown-DTWiWKBj.js} +1 -1
  243. package/dist/interface/assets/{vendor-primevue-CZKUAkMA.js → vendor-primevue-Zx6t06A4.js} +1 -1
  244. package/dist/interface/assets/{vendor-vueflow-bSwRZ9X8.js → vendor-vueflow-DWU_IzGe.js} +1 -1
  245. package/dist/interface/assets/web-B98ahwoP.js +1 -0
  246. package/dist/interface/assets/web-BSsSrRZf.js +1 -0
  247. package/dist/interface/assets/web-BiNRDta4.js +1 -0
  248. package/dist/interface/assets/web-BjKL51lK-CZKmYhby.js +1 -0
  249. package/dist/interface/assets/web-BjtOcquy.js +1 -0
  250. package/dist/interface/assets/web-CkTE9nCG.js +1 -0
  251. package/dist/interface/assets/web-Cvogq5S5.js +1 -0
  252. package/dist/interface/assets/web-D-A4EBKj.js +1 -0
  253. package/dist/interface/assets/web-DVGMBduz.js +1 -0
  254. package/dist/interface/assets/web-SpWB7I6X.js +1 -0
  255. package/dist/interface/assets/web-k0ihT_qK.js +1 -0
  256. package/dist/interface/assets/web-ovBpm7Dl.js +1 -0
  257. package/dist/interface/assets/web-z5Xz9tOQ.js +1 -0
  258. package/dist/interface/assets/web-zfhkFevT.js +1 -0
  259. package/dist/interface/assets/{webhook-CWKf2Qxu.js → webhook-DIjChTrs.js} +1 -1
  260. package/dist/interface/assets/workbox-window.prod.es5-DRKojI0e.js +1 -0
  261. package/dist/interface/assets/{zoom-in-CHkXAWHy.js → zoom-in-rMB152Uz.js} +1 -1
  262. package/dist/interface/ha/{404-tl2VQ3qy.js → 404-D5gfy0Cd.js} +1 -1
  263. package/dist/interface/ha/{About-Cn7KOblU.js → About-JzlpCzBN.js} +3 -3
  264. package/dist/interface/ha/{Assistant-DG2GGda0.js → Assistant-DgOfGesf.js} +2409 -1917
  265. package/dist/interface/ha/{Automation-D0_WpXx4.js → Automation-BDaWYiBu.js} +146 -146
  266. package/dist/interface/ha/{AutomationImport-DdC3dEaC.js → AutomationImport-BNB_PJ9R.js} +6 -6
  267. package/dist/interface/ha/{AutomationStore-BrLn4oBx.js → AutomationStore-_TeOt1wz.js} +73 -73
  268. package/dist/interface/ha/{AutomationStoreDetail-DoppNsNc.js → AutomationStoreDetail-jjIEZoRi.js} +20 -20
  269. package/dist/interface/ha/{Automations-BaUJ9pVq.js → Automations-DM6FEVOw.js} +110 -110
  270. package/dist/interface/ha/Camera-sH9fRv18.js +670 -0
  271. package/dist/interface/ha/{CameraConsole-7MhlS2VK.js → CameraConsole-BoVql05l.js} +4 -4
  272. package/dist/interface/ha/{Cameras-vHYz8uSO.js → Cameras-cQBGvXq7.js} +349 -347
  273. package/dist/interface/ha/{Camview-BEglAx26.js → Camview-mkG5FXZM.js} +357 -353
  274. package/dist/interface/ha/{Config-CHiK--zP.js → Config-BNPDzo_h.js} +11 -11
  275. package/dist/interface/ha/{ConfigActionAssistant-DynduZYV.js → ConfigActionAssistant-C-8P3DYz.js} +4 -4
  276. package/dist/interface/ha/{ConfigActionCameraControl-BEYePssz.js → ConfigActionCameraControl-x1ksGL7m.js} +3 -3
  277. package/dist/interface/ha/{ConfigActionHttp-h0vRWqZ5.js → ConfigActionHttp-DzCJp85z.js} +2 -2
  278. package/dist/interface/ha/{ConfigActionImageInput-B9GMZYAR.js → ConfigActionImageInput-C5C5U_2z.js} +1 -1
  279. package/dist/interface/ha/{ConfigActionMqtt-BEQpHBgf.js → ConfigActionMqtt-T29xb75r.js} +4 -4
  280. package/dist/interface/ha/{ConfigActionNotification-BYsz8_aS.js → ConfigActionNotification-BcnyilF9.js} +3 -3
  281. package/dist/interface/ha/{ConfigActionNotificationControl-BxmIWVE8.js → ConfigActionNotificationControl-D3wIVKuU.js} +2 -2
  282. package/dist/interface/ha/{ConfigActionOutput-DTOQSa1S.js → ConfigActionOutput-hD-yVczw.js} +1 -1
  283. package/dist/interface/ha/{ConfigActionPlugin-NOsUs3QI.js → ConfigActionPlugin-Bz1O-O4Q.js} +5 -5
  284. package/dist/interface/ha/{ConfigActionSensor-YWnsH_LV.js → ConfigActionSensor-FOz-PYl_.js} +5 -5
  285. package/dist/interface/ha/{ConfigActionSnapshot-DHJnTvin.js → ConfigActionSnapshot-CmxEOuK1.js} +2 -2
  286. package/dist/interface/ha/{ConfigActionVariable-C7UFnvW0.js → ConfigActionVariable-BCvkrdCh.js} +1 -1
  287. package/dist/interface/ha/{ConfigConditionIfElse-CAHbuhH3.js → ConfigConditionIfElse-icfTG9OA.js} +3 -3
  288. package/dist/interface/ha/{ConfigConditionSensorState-CE6okUeb.js → ConfigConditionSensorState-ClUAsm0d.js} +4 -4
  289. package/dist/interface/ha/{ConfigConditionSwitch-D5FULaTy.js → ConfigConditionSwitch-C8AMCkn6.js} +5 -5
  290. package/dist/interface/ha/{ConfigSensorValueInput-mo6Gs_aZ.js → ConfigSensorValueInput-ChvDQzGd.js} +4 -4
  291. package/dist/interface/ha/{ConfigTriggerDetection-Bt-OhHtM.js → ConfigTriggerDetection-aUSyaClu.js} +11 -11
  292. package/dist/interface/ha/{ConfigTriggerGeofence-Cw3jV5qD.js → ConfigTriggerGeofence-DsJeJWP4.js} +7 -7
  293. package/dist/interface/ha/{ConfigTriggerMqtt-BXeV82UG.js → ConfigTriggerMqtt-CsAxA7QZ.js} +1 -1
  294. package/dist/interface/ha/{ConfigTriggerSensor-Baqq--nJ.js → ConfigTriggerSensor-CTxr9cfU.js} +1 -1
  295. package/dist/interface/ha/{ConfigTriggerSystem-braUVGzW.js → ConfigTriggerSystem-C8UEfpfs.js} +2 -2
  296. package/dist/interface/ha/{ConfigTriggerWebhook-Dm45r-1C.js → ConfigTriggerWebhook-frEE-SCB.js} +1 -1
  297. package/dist/interface/ha/{Console-q3TCsxYo.js → Console-A3VtbsLg.js} +12 -12
  298. package/dist/interface/ha/{CuiAutomationRunsDialog-DO6h5Tc4.js → CuiAutomationRunsDialog-BlJvhBiX.js} +2 -2
  299. package/dist/interface/ha/{CuiBottomSheet-B7ldz0xi.js → CuiBottomSheet-Cu-t3H0Z.js} +1 -1
  300. package/dist/interface/ha/{CuiCameraRecordings-Dq1Vh3qA.js → CuiCameraRecordings-R5ArEmqJ.js} +11 -11
  301. package/dist/interface/ha/{CuiCameraShares-DBqcpevG.js → CuiCameraShares-B9pfRkM4.js} +5 -5
  302. package/dist/interface/ha/{CuiCameraTable-kL8rK-Uv.js → CuiCameraTable-CKjGKaMC.js} +9 -9
  303. package/dist/interface/ha/{CuiChartTable-BrFyiSt_.js → CuiChartTable-BxWjRe-k.js} +16 -16
  304. package/dist/interface/ha/{CuiConsole-DpeXZmJd.js → CuiConsole-C5fzsR7t.js} +4 -4
  305. package/dist/interface/ha/{CuiDataTable-BtqzIz0o.js → CuiDataTable-BOdQDY8J.js} +5 -5
  306. package/dist/interface/ha/{CuiPluginCard-lBLypaN4.js → CuiPluginCard-BT71RRAD.js} +33 -33
  307. package/dist/interface/ha/{CuiPluginOAuthButton-CuGauZJA.js → CuiPluginOAuthButton-moh9uS7G.js} +7 -7
  308. package/dist/interface/ha/{CuiPluginTrustBadge-BofBmRYc.js → CuiPluginTrustBadge-F_pVWkPJ.js} +1 -1
  309. package/dist/interface/ha/{CuiQRCode-CdK9bwKb.js → CuiQRCode-BNuj-nJ4.js} +6 -6
  310. package/dist/interface/ha/{CuiSchema-DqkCLv9Y.js → CuiSchema-Cb_8Ks-I.js} +125 -125
  311. package/dist/interface/ha/{CuiTopNavbarItem-C2VZB7WV.js → CuiTopNavbarItem-BGzrrTls.js} +1 -1
  312. package/dist/interface/ha/{Faces-Crfi-75Z.js → Faces-CsM5VO8Q.js} +142 -142
  313. package/dist/interface/ha/{FirstSteps-CKVG86pf.js → FirstSteps-BFX0-EEi.js} +12 -12
  314. package/dist/interface/ha/{Floorplan-CH9_-6hk.js → Floorplan-D6MGqSJT.js} +198 -199
  315. package/dist/interface/ha/{Instances-5gZdPPDA.js → Instances-CHzIUyyA.js} +72 -72
  316. package/dist/interface/ha/{Logs-BkzEM70F.js → Logs-DZKM3dWv.js} +10 -10
  317. package/dist/interface/ha/{Menu-BuT3_Ggx.js → Menu-BQz4dfQi.js} +8 -8
  318. package/dist/interface/ha/{Metrics-BGrzu0bu.js → Metrics-CdpWJ1mm.js} +89 -89
  319. package/dist/interface/ha/{OAuthDeviceFlow-BEJtegqy.js → OAuthDeviceFlow-DUELtx3X.js} +9 -9
  320. package/dist/interface/ha/{Plugin-Bnp2jiC2.js → Plugin-5bbTF0Rv.js} +92 -92
  321. package/dist/interface/ha/{PluginConsole-CmsuPVMz.js → PluginConsole-C__0lzsS.js} +4 -4
  322. package/dist/interface/ha/{PluginDetail-BCNx7vHr.js → PluginDetail-Blrktk9W.js} +9 -9
  323. package/dist/interface/ha/{PluginSearch-DOdhuxgM.js → PluginSearch-BKbdwHQ1.js} +121 -121
  324. package/dist/interface/ha/{PluginUpdateProgress-CwkKc8Tr.js → PluginUpdateProgress-IsNiecu3.js} +3 -3
  325. package/dist/interface/ha/{Plugins-BrFowCdC.js → Plugins-CC2Dwlx5.js} +53 -53
  326. package/dist/interface/ha/{Recordings-BZhf39pJ.js → Recordings-B1XsJrzs.js} +318 -318
  327. package/dist/interface/ha/{SensorEdit-Ds6WbN4A.js → SensorEdit-Bi2Yx_ji.js} +46 -46
  328. package/dist/interface/ha/{SensorHistory-CoTIYTJx.js → SensorHistory-sqG_6eav.js} +2 -2
  329. package/dist/interface/ha/{Sensors-DZ2MKdlh.js → Sensors-DLtOh1p4.js} +509 -510
  330. package/dist/interface/ha/{Settings-D3JKr430.js → Settings-DI3_zenm.js} +38 -38
  331. package/dist/interface/ha/{SettingsAccount-cvtlSKZw.js → SettingsAccount-pS86Qyr-.js} +251 -251
  332. package/dist/interface/ha/{SettingsAppearance-CaKuOHRu.js → SettingsAppearance-tS3bubKQ.js} +4 -4
  333. package/dist/interface/ha/{SettingsAssistant-vWVjAUqQ.js → SettingsAssistant-LejCRXsF.js} +501 -501
  334. package/dist/interface/ha/{SettingsBackup-CvzL_bVf.js → SettingsBackup-CkhD1Kze.js} +23 -23
  335. package/dist/interface/ha/{SettingsList-C0Ec8x-H.js → SettingsList-bibwvPSM.js} +2 -2
  336. package/dist/interface/ha/{SettingsMqtt-COnq-QM5.js → SettingsMqtt-DSt0B4Qg.js} +18 -18
  337. package/dist/interface/ha/{SettingsNotifications-BZ68bQzO.js → SettingsNotifications-BF7ajNwE.js} +118 -118
  338. package/dist/interface/ha/{SettingsRecordings-BPtNNpDa.js → SettingsRecordings-BTIdncxg.js} +9 -9
  339. package/dist/interface/ha/{SettingsRemote-BXG8IYjf.js → SettingsRemote-Cba4P1-O.js} +347 -344
  340. package/dist/interface/ha/{SettingsSystem-_jHBUhws.js → SettingsSystem-_Nnh2ZF5.js} +9 -9
  341. package/dist/interface/ha/{SettingsUsers-CzGj_RJN.js → SettingsUsers-BfHFoxJi.js} +83 -83
  342. package/dist/interface/ha/{Terminal-BP3b8IBP.js → Terminal-Dv_7oWmS.js} +11 -11
  343. package/dist/interface/ha/{Training-C2-6DgY0.js → Training-CaSFA5oH.js} +184 -184
  344. package/dist/interface/ha/{Updates-BMZsEhmy.js → Updates-BHl5H7zE.js} +15 -15
  345. package/dist/interface/ha/{VariableInput-DmI7skCD.js → VariableInput-DtLo7-Nw.js} +1 -1
  346. package/dist/interface/ha/{VersionsHandler-DJd4NqtD.js → VersionsHandler-CF0DSeol.js} +10 -10
  347. package/dist/interface/ha/{VirtualSensorCreate-DmtGYvAn.js → VirtualSensorCreate-C907EgIz.js} +2 -2
  348. package/dist/interface/ha/Workers-Dz1d9gEQ.js +814 -0
  349. package/dist/interface/ha/{ace-B3bPzJu9.js → ace-C9MtBQVV.js} +1 -1
  350. package/dist/interface/ha/{ace.config-Dt55Nqby.js → ace.config-CSXnaIzV.js} +1 -1
  351. package/dist/interface/ha/{api-BelbnLQO.js → api-DUqpDJ2N.js} +13766 -13527
  352. package/dist/interface/ha/{api-sy4rqV2N.js → api-gId1nlMj.js} +4 -4
  353. package/dist/interface/ha/{assistant-C6KYXJfi.js → assistant-BaR65gIY.js} +50 -50
  354. package/dist/interface/ha/{auth-Da66mVEd.js → auth-Btsz_KxO.js} +38 -38
  355. package/dist/interface/ha/{automationBlueprint-hlqqM17r.js → automationBlueprint-CuO3iOiM.js} +3 -3
  356. package/dist/interface/ha/cameraui-cards.js +1 -1
  357. package/dist/interface/ha/{cards-BFRRfuM7.js → cards-DWhezIPP.js} +1449 -1409
  358. package/dist/interface/ha/{config-Cd7JNMpD.js → config-BKStpoEQ.js} +12 -12
  359. package/dist/interface/ha/{dist-BybVYMVs.js → dist-CM7R4_Gj.js} +15 -6
  360. package/dist/interface/ha/{mqtt-UZfptWJl.js → mqtt-ajcSmTB-.js} +14 -14
  361. package/dist/interface/ha/{notifications-DTHM8fS-.js → notifications-Cf9dXHEO.js} +18 -18
  362. package/dist/interface/ha/{pinia-BokSpDzj.js → pinia-DIKO5lnE.js} +267 -259
  363. package/dist/interface/ha/{plugins-Bwp_GfaX.js → plugins-ml823dJV.js} +61 -61
  364. package/dist/interface/ha/{rooms-BvaD0r0q.js → rooms-C5gUErBi.js} +9 -9
  365. package/dist/interface/ha/{server-OWdtITVa.js → server-dArenpJI.js} +26 -26
  366. package/dist/interface/ha/{types-BFJjyMZe.js → types-DYymuACA.js} +25 -25
  367. package/dist/interface/ha/{ungrouped-x00DHNHO.js → ungrouped-BHLAySWP.js} +39 -38
  368. package/dist/interface/ha/{updates-C03Qf3Il.js → updates-D5sFzGtC.js} +33 -33
  369. package/dist/interface/ha/{useAppVersion-CrMd9CC9.js → useAppVersion-C5x3Ap4_.js} +1 -1
  370. package/dist/interface/ha/{useKeyboardInset-DwUQCWHC.js → useKeyboardInset-Cj0T2AFX.js} +1 -1
  371. package/dist/interface/ha/{useLogsSocket-C6k217mW.js → useLogsSocket-DtvfQlPh.js} +1 -1
  372. package/dist/interface/ha/{useNavLayout-DhuQE024.js → useNavLayout-HSFBA4JV.js} +13 -13
  373. package/dist/interface/ha/{useServerRestart-CYaen2r6.js → useServerRestart-Ci0SppGW.js} +1 -1
  374. package/dist/interface/ha/{useTabSwipe-DAmCFlgg.js → useTabSwipe-CPKkRmaH.js} +1 -1
  375. package/dist/interface/ha/{useUpdateChannel-Dr1EoU2X.js → useUpdateChannel-CXHHovK3.js} +2 -2
  376. package/dist/interface/ha/{useUpdatesSocket-C8Gmhemh.js → useUpdatesSocket-DVST2YXV.js} +1 -1
  377. package/dist/interface/ha/{useUserOptions-BB5wk3Bq.js → useUserOptions-BYcYI6QA.js} +1 -1
  378. package/dist/interface/index.html +69 -69
  379. package/dist/interface/sw.js +1 -1
  380. package/dist/server/package.json +15 -15
  381. package/dist/server/requirements.txt +2 -2
  382. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +8 -0
  383. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/device.py +5 -1
  384. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/camera_config_internal.py +5 -1
  385. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/manager/__init__.py +2 -1
  386. package/dist/server/src/api/controllers/plugins.controller.js +1 -0
  387. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  388. package/dist/server/src/api/controllers/workers.controller.d.ts +2 -2
  389. package/dist/server/src/api/controllers/workers.controller.js +8 -2
  390. package/dist/server/src/api/controllers/workers.controller.js.map +1 -1
  391. package/dist/server/src/api/database/record-schemas.d.ts +3 -0
  392. package/dist/server/src/api/database/record-schemas.js +1 -0
  393. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  394. package/dist/server/src/api/database/types.d.ts +4 -0
  395. package/dist/server/src/api/routes/workers.routes.js +4 -4
  396. package/dist/server/src/api/routes/workers.routes.js.map +1 -1
  397. package/dist/server/src/api/schemas/cameras.schema.d.ts +38 -0
  398. package/dist/server/src/api/schemas/cameras.schema.js +22 -0
  399. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  400. package/dist/server/src/api/schemas/users.schema.d.ts +12 -0
  401. package/dist/server/src/api/schemas/users.schema.js +4 -0
  402. package/dist/server/src/api/schemas/users.schema.js.map +1 -1
  403. package/dist/server/src/api/schemas/workers.schema.d.ts +5 -4
  404. package/dist/server/src/api/schemas/workers.schema.js +6 -3
  405. package/dist/server/src/api/schemas/workers.schema.js.map +1 -1
  406. package/dist/server/src/api/services/cameras.service.d.ts +3 -0
  407. package/dist/server/src/api/services/cameras.service.js +47 -2
  408. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  409. package/dist/server/src/api/services/plugins.service.d.ts +1 -0
  410. package/dist/server/src/api/services/plugins.service.js +5 -1
  411. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  412. package/dist/server/src/api/services/workers.service.d.ts +2 -0
  413. package/dist/server/src/api/services/workers.service.js +15 -0
  414. package/dist/server/src/api/services/workers.service.js.map +1 -1
  415. package/dist/server/src/api/types/index.d.ts +3 -2
  416. package/dist/server/src/assistant/pricing.js +39 -10
  417. package/dist/server/src/assistant/pricing.js.map +1 -1
  418. package/dist/server/src/assistant/providers.js +9 -1
  419. package/dist/server/src/assistant/providers.js.map +1 -1
  420. package/dist/server/src/camera/decoder/event-manager.d.ts +1 -2
  421. package/dist/server/src/camera/decoder/event-manager.js +37 -59
  422. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  423. package/dist/server/src/manager/coreManager.d.ts +2 -1
  424. package/dist/server/src/manager/coreManager.js +9 -2
  425. package/dist/server/src/manager/coreManager.js.map +1 -1
  426. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +1 -1
  427. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -1
  428. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +3 -0
  429. package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +1 -1
  430. package/dist/server/src/plugins/runtime/python/rpc/typings.py +1 -1
  431. package/dist/server/src/rpc/interfaces/core.d.ts +1 -1
  432. package/dist/server/src/sensors/registry.d.ts +2 -0
  433. package/dist/server/src/sensors/registry.js +24 -0
  434. package/dist/server/src/sensors/registry.js.map +1 -1
  435. package/dist/server/src/workers/agent.js +2 -0
  436. package/dist/server/src/workers/agent.js.map +1 -1
  437. package/dist/server/src/workers/manager.d.ts +1 -0
  438. package/dist/server/src/workers/manager.js +22 -0
  439. package/dist/server/src/workers/manager.js.map +1 -1
  440. package/dist/server/src/workers/types.d.ts +5 -0
  441. package/dist/server/src/workers/types.js.map +1 -1
  442. package/npm-shrinkwrap.json +107 -107
  443. package/package.json +15 -15
  444. package/dist/interface/assets/Automation-D__qvx8c.js +0 -3
  445. package/dist/interface/assets/Automations-BH_7lYR7.js +0 -2
  446. package/dist/interface/assets/Camera-BW9ikKqh.css +0 -1
  447. package/dist/interface/assets/Camera-aquPHFwb.js +0 -2
  448. package/dist/interface/assets/Camview-CjcQbtTl.js +0 -1
  449. package/dist/interface/assets/Config-Dc1zKIPq.js +0 -2
  450. package/dist/interface/assets/CuiAssistantConversation-CM7KdaX2.js +0 -5
  451. package/dist/interface/assets/CuiBottomSheet-CFohFiO2.js +0 -1
  452. package/dist/interface/assets/CuiCameraPipCard-BQKk4fxY.css +0 -1
  453. package/dist/interface/assets/CuiCameraPipCard-eiJjYZ5W.js +0 -1
  454. package/dist/interface/assets/CuiCameraTable-DHrKoD9s.js +0 -1
  455. package/dist/interface/assets/CuiDataTable-C0gsYYpg.js +0 -1
  456. package/dist/interface/assets/CuiMarkdownContent-DTAm-EDR.js +0 -1
  457. package/dist/interface/assets/CuiPluginCard-DEfqwUhQ.js +0 -2
  458. package/dist/interface/assets/Faces-DRHMrrxh.js +0 -1
  459. package/dist/interface/assets/Floorplan-CqWIbDbh.js +0 -1
  460. package/dist/interface/assets/Metrics-BYnnb7M0.js +0 -12
  461. package/dist/interface/assets/Plugin-DJIrYUnZ.js +0 -1
  462. package/dist/interface/assets/PluginDetail-DmElwUuV.js +0 -2
  463. package/dist/interface/assets/PluginSearch-B-2zH2Xy.js +0 -1
  464. package/dist/interface/assets/Plugins-ZFcB_j6v.js +0 -1
  465. package/dist/interface/assets/Recordings-BJrtW9eG.js +0 -1
  466. package/dist/interface/assets/Sensors-C_InhcHA.js +0 -2
  467. package/dist/interface/assets/SettingsAccount-B05739dn.js +0 -1
  468. package/dist/interface/assets/SettingsAccount-gm28wtbl.js +0 -1
  469. package/dist/interface/assets/SettingsAppearance-DwUknDPV.js +0 -1
  470. package/dist/interface/assets/SettingsAssistant-ChHfkUKk.js +0 -1
  471. package/dist/interface/assets/SettingsRemote-CtP6Gz9C.css +0 -1
  472. package/dist/interface/assets/SettingsRemote-MhaShPIf.js +0 -2
  473. package/dist/interface/assets/Training-A5ynOv_l.js +0 -1
  474. package/dist/interface/assets/Workers-2sc4VMi9.js +0 -2
  475. package/dist/interface/assets/ace-DzzM-RlW.js +0 -1
  476. package/dist/interface/assets/api-DOpXVpef.js +0 -4
  477. package/dist/interface/assets/automations-vwIwb2PQ.js +0 -1
  478. package/dist/interface/assets/cameraSources-BMhXvtFt.js +0 -1
  479. package/dist/interface/assets/cloudHandoff-BnzjCpJ2.js +0 -1
  480. package/dist/interface/assets/esm-Bn9gXwX4.js +0 -1
  481. package/dist/interface/assets/esm-BzM6y2-F.js +0 -1
  482. package/dist/interface/assets/esm-CP3JWrtj.js +0 -1
  483. package/dist/interface/assets/esm-CjAXkqCf.js +0 -1
  484. package/dist/interface/assets/esm-Cqxk-j1S.js +0 -1
  485. package/dist/interface/assets/esm-DFHd3JNU.js +0 -1
  486. package/dist/interface/assets/esm-DfMLJtug.js +0 -1
  487. package/dist/interface/assets/esm-DhDrpq7a.js +0 -1
  488. package/dist/interface/assets/esm-DvhM-SOd.js +0 -1
  489. package/dist/interface/assets/esm-G63bqygQ.js +0 -1
  490. package/dist/interface/assets/esm-Gn-Y59hU.js +0 -1
  491. package/dist/interface/assets/esm-KJSOz2vj.js +0 -1
  492. package/dist/interface/assets/esm-Ryfc94Tm.js +0 -1
  493. package/dist/interface/assets/esm-rSfI5Poy.js +0 -1
  494. package/dist/interface/assets/eye-off-outline-DCxLRGo_.js +0 -1
  495. package/dist/interface/assets/main-By4L33Im.js +0 -3
  496. package/dist/interface/assets/mqtt-DE1KQ8Td.js +0 -1
  497. package/dist/interface/assets/native-CZJE8bTs.js +0 -1
  498. package/dist/interface/assets/native-DKZwialB.js +0 -1
  499. package/dist/interface/assets/plugin-DSEMkqaK.js +0 -1
  500. package/dist/interface/assets/plugins-BJPCV1YL.js +0 -1
  501. package/dist/interface/assets/rooms-Dr4yiakO.js +0 -1
  502. package/dist/interface/assets/sensors-3llrL7s3.js +0 -1
  503. package/dist/interface/assets/types-i1kTodPP.js +0 -1
  504. package/dist/interface/assets/ungrouped-BlheTJCh.css +0 -1
  505. package/dist/interface/assets/ungrouped-C2CWO39a.js +0 -1
  506. package/dist/interface/assets/updates-C2LhMkNR.js +0 -1
  507. package/dist/interface/assets/useBackupRestore-DMQW_CVC.js +0 -1
  508. package/dist/interface/assets/useUserOptions-DN0t3gBr.js +0 -1
  509. package/dist/interface/assets/vendor-gFkr2qsZ.js +0 -23
  510. package/dist/interface/assets/vendor-leaflet-DkAk6mAj.js +0 -1
  511. package/dist/interface/assets/web-BDNQnMmA.js +0 -1
  512. package/dist/interface/assets/web-B_9Qyt8E.js +0 -1
  513. package/dist/interface/assets/web-BhJykCtq.js +0 -1
  514. package/dist/interface/assets/web-BjKL51lK-wWFeZlLg.js +0 -1
  515. package/dist/interface/assets/web-C7nJwIOa.js +0 -1
  516. package/dist/interface/assets/web-CGJsJQDb.js +0 -1
  517. package/dist/interface/assets/web-CJwASxrl.js +0 -1
  518. package/dist/interface/assets/web-CLe0L31Y.js +0 -1
  519. package/dist/interface/assets/web-DEv1hAn1.js +0 -1
  520. package/dist/interface/assets/web-DaeQvsXT.js +0 -1
  521. package/dist/interface/assets/web-H3-wNunW.js +0 -1
  522. package/dist/interface/assets/web-LCdyqJq1.js +0 -1
  523. package/dist/interface/assets/web-XZWYTK65.js +0 -1
  524. package/dist/interface/assets/web-rU5hlxxW.js +0 -1
  525. package/dist/interface/assets/workbox-window.prod.es5-BEYAF-e-.js +0 -1
  526. package/dist/interface/ha/Camera-Cj5ImvZG.js +0 -657
  527. package/dist/interface/ha/Workers-2HTPHgKV.js +0 -765
  528. package/dist/interface/ha/eye-off-outline-ACbzsGuK.js +0 -19
@@ -3,7 +3,7 @@ import { D as t, G as n, H as r, I as i, Jt as a, St as o, Tt as s, Wt as c, Y a
3
3
  import { t as ne } from "./tooltip-BDrlgLof.js";
4
4
  import { t as re } from "./chevron-down-BNj8w2js.js";
5
5
  import { t as ie } from "./tag-mchuCAPR.js";
6
- import { $i as k, $r as ae, Ar as oe, B as se, Bi as ce, Ci as A, Dn as le, Dr as j, Dt as ue, Er as de, Jt as fe, L as pe, Or as me, Ot as he, R as M, Si as ge, Tr as _e, U as ve, bi as N, c as ye, d as P, et as be, fi as F, gt as I, hn as xe, kt as L, lr as R, m as Se, q as z, st as Ce, ua as we, ur as Te, z as Ee } from "./api-BelbnLQO.js";
6
+ import { Ar as ae, B as oe, Dn as k, Dr as se, Dt as ce, Hi as le, Jt as ue, L as A, Mr as de, Or as j, Ot as fe, R as pe, Si as me, Ti as M, U as N, c as he, d as ge, dr as _e, et as P, fa as ve, gt as F, hn as ye, kr as be, kt as xe, m as I, mi as L, q as R, st as Se, ta as z, ti as Ce, ur as we, wi as Te, z as Ee } from "./api-DUqpDJ2N.js";
7
7
  import { C as De, M as B, S as Oe, _ as ke, b as Ae, i as je, w as Me } from "./intercomService-B7HkLs6z.js";
8
8
  import { n as Ne } from "./vue-i18n-D5EAy78K.js";
9
9
  import { t as Pe } from "./button-BouAFgf5.js";
@@ -15,7 +15,7 @@ import { t as Re } from "./progressbar-CaUaM8Bt.js";
15
15
  import { t as ze } from "./information-outline-DSSRyysT.js";
16
16
  import { t as Be } from "./search-BViwEHdF.js";
17
17
  import { n as Ve, t as He } from "./cloud-check-aaxn1VZr.js";
18
- import { u as Ue } from "./cards-BFRRfuM7.js";
18
+ import { u as Ue } from "./cards-DWhezIPP.js";
19
19
  import { t as We } from "./trash-can-outline-CBwv40Ck.js";
20
20
  import { t as Ge } from "./back-filled-CaxrZv0Q.js";
21
21
  import { t as Ke } from "./help-circle-outline-BniRuJRv.js";
@@ -65,58 +65,58 @@ var et = u({
65
65
  render: $e
66
66
  }), tt = 200;
67
67
  async function nt(e = {}, { signal: t } = {}) {
68
- return (await k.get("/training/candidates", {
68
+ return (await z.get("/training/candidates", {
69
69
  params: e,
70
70
  signal: t
71
71
  })).data;
72
72
  }
73
73
  async function rt(e, t) {
74
- return (await k.patch(`/training/candidates/${e}`, t)).data;
74
+ return (await z.patch(`/training/candidates/${e}`, t)).data;
75
75
  }
76
76
  async function G(e) {
77
- await k.delete(`/training/candidates/${e}`);
77
+ await z.delete(`/training/candidates/${e}`);
78
78
  }
79
79
  async function K(e) {
80
80
  let t = 0;
81
81
  for (let n = 0; n < e.length; n += tt) {
82
- let r = await k.post("/training/candidates/submit", { ids: e.slice(n, n + tt) });
82
+ let r = await z.post("/training/candidates/submit", { ids: e.slice(n, n + tt) });
83
83
  t += r.data.queued;
84
84
  }
85
85
  return { queued: t };
86
86
  }
87
87
  async function it({ cursor: e, signal: t } = {}) {
88
- return (await k.get("/training/submissions", {
88
+ return (await z.get("/training/submissions", {
89
89
  params: e ? { cursor: e } : void 0,
90
90
  signal: t
91
91
  })).data;
92
92
  }
93
93
  async function at(e) {
94
- await k.delete(`/training/submissions/${e}`);
94
+ await z.delete(`/training/submissions/${e}`);
95
95
  }
96
96
  async function q({ signal: e } = {}) {
97
- return (await k.get("/training/settings", { signal: e })).data;
97
+ return (await z.get("/training/settings", { signal: e })).data;
98
98
  }
99
99
  async function ot(e) {
100
- return (await k.patch("/training/settings", e)).data;
100
+ return (await z.patch("/training/settings", e)).data;
101
101
  }
102
102
  var st = class {
103
- queryClient = ce();
103
+ queryClient = le();
104
104
  getCandidatesQuery() {
105
- return N({
105
+ return me({
106
106
  queryKey: ["training-candidates"],
107
107
  queryFn: ({ signal: e }) => nt({}, { signal: e }),
108
108
  staleTime: 5e3
109
109
  });
110
110
  }
111
111
  getSettingsQuery() {
112
- return N({
112
+ return me({
113
113
  queryKey: ["training-settings"],
114
114
  queryFn: ({ signal: e }) => q({ signal: e }),
115
115
  staleTime: 3e4
116
116
  });
117
117
  }
118
118
  patchCandidateMutation() {
119
- return A({
119
+ return M({
120
120
  mutationFn: ({ id: e, patch: t }) => rt(e, t),
121
121
  onSuccess: async () => {
122
122
  await this.queryClient.refetchQueries({
@@ -127,7 +127,7 @@ var st = class {
127
127
  });
128
128
  }
129
129
  deleteCandidateMutation() {
130
- return A({
130
+ return M({
131
131
  mutationFn: G,
132
132
  onSuccess: async () => {
133
133
  await this.queryClient.refetchQueries({
@@ -138,10 +138,10 @@ var st = class {
138
138
  });
139
139
  }
140
140
  deleteSubmissionMutation() {
141
- return A({ mutationFn: at });
141
+ return M({ mutationFn: at });
142
142
  }
143
143
  submitCandidatesMutation() {
144
- return A({
144
+ return M({
145
145
  mutationFn: K,
146
146
  onSuccess: async () => {
147
147
  await this.queryClient.refetchQueries({
@@ -152,7 +152,7 @@ var st = class {
152
152
  });
153
153
  }
154
154
  patchSettingsMutation() {
155
- return A({
155
+ return M({
156
156
  mutationFn: ot,
157
157
  onSuccess: async () => {
158
158
  await this.queryClient.refetchQueries({
@@ -203,7 +203,7 @@ function ht() {
203
203
  }
204
204
  function gt() {
205
205
  return ft || (dt = p(!0), dt.run(() => {
206
- let e = F("/training");
206
+ let e = L("/training");
207
207
  ft = e, e.on("candidates-changed", (e) => pt(Z, e ?? {})), e.on("submit-progress", (e) => {
208
208
  X.progress = e, pt(Z, {});
209
209
  }), e.onReady(ht);
@@ -294,7 +294,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
294
294
  }, Gt = { class: "flex flex-col items-center gap-0.5" }, Kt = { class: "flex items-center justify-center gap-1.5" }, qt = { class: "text-muted text-sm text-center" }, Jt = { class: "text-muted text-sm text-center" }, Yt = {
295
295
  key: 1,
296
296
  class: "grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 justify-center mx-auto text-sm text-muted"
297
- }, Xt = .01, Zt = 4, Qt = 10, $t = 26, en = 60, tn = 400, nn = 110, rn = 2, an = 80, on = 50, sn = .003, cn = .5, ln = /*#__PURE__*/ de(/* @__PURE__ */ T({
297
+ }, Xt = .01, Zt = 4, Qt = 10, $t = 26, en = 60, tn = 400, nn = 110, rn = 2, an = 80, on = 50, sn = .003, cn = .5, ln = /*#__PURE__*/ j(/* @__PURE__ */ T({
298
298
  __name: "TrainingBoxEditor",
299
299
  props: {
300
300
  candidates: {},
@@ -305,30 +305,30 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
305
305
  onDelete: { type: Function }
306
306
  },
307
307
  setup(u, { expose: p }) {
308
- let T = u, re = t("dialogRef"), { t: k, te: ae } = Ne(), oe = ge(), se = _t(), ce = [
308
+ let T = u, re = t("dialogRef"), { t: ae, te: oe } = Ne(), se = Te(), ce = _t(), le = [
309
309
  "nw",
310
310
  "ne",
311
311
  "sw",
312
312
  "se"
313
- ], A = /* @__PURE__ */ new Map(), j = O(/* @__PURE__ */ new Set()), ue = O(/* @__PURE__ */ new Set()), de = o(/* @__PURE__ */ new Map()), fe = 0, pe = Math.max(0, T.candidates.findIndex((e) => e.id === T.startId)), me = Se(), he = x("rootRef"), M = x("labelMenuRef"), _e = x("stageRef"), ve = x("frameRef"), N = x("svgRef"), P = E(T.candidates[pe]?.boxes.map((e) => ({ ...e })) ?? []), be = E({
313
+ ], ue = /* @__PURE__ */ new Map(), A = O(/* @__PURE__ */ new Set()), de = O(/* @__PURE__ */ new Set()), j = o(/* @__PURE__ */ new Map()), fe = 0, pe = Math.max(0, T.candidates.findIndex((e) => e.id === T.startId)), me = I(), M = x("rootRef"), N = x("labelMenuRef"), ge = x("stageRef"), P = x("frameRef"), ve = x("svgRef"), F = E(T.candidates[pe]?.boxes.map((e) => ({ ...e })) ?? []), be = E({
314
314
  w: 16,
315
315
  h: 9
316
- }), F = E(null), I = E(null), z = E(-1), we = E(!1), Ee = E(!1), De = Me("(any-pointer: fine)"), B = E(null), Oe = null, je = E(-1), Fe = E("person"), V = E(pe), Le = w([]), H = E(!1), { zoom: Re, pan: ze, constraining: Be, minimapStyle: Ve, minimapBoxStyle: He, onZoomPan: Ge, onDoubleClick: qe, onTouchStart: Je, onTouchEnd: Ye, reset: Xe } = Ce(_e, ve), { height: U } = ke(ve), W = g(() => T.candidates[V.value]), Ze = g(() => T.candidates.slice(0, V.value + 1).filter((e) => !j.has(e.id)).length), Qe = g(() => T.candidates.filter((e) => !j.has(e.id)).length), $e = g(() => T.candidates.slice(0, V.value).some((e) => !j.has(e.id))), et = g(() => T.candidates.slice(V.value + 1).some((e) => !j.has(e.id))), tt = g(() => ue.has(W.value.id) ? "verified" : W.value.status), nt = g(() => P.value.map((e, t) => ({
316
+ }), L = E(null), R = E(null), z = E(-1), Ce = E(!1), Ee = E(!1), De = Me("(any-pointer: fine)"), B = E(null), Oe = null, je = E(-1), Fe = E("person"), V = E(pe), Le = w([]), H = E(!1), { zoom: Re, pan: ze, constraining: Be, minimapStyle: Ve, minimapBoxStyle: He, onZoomPan: Ge, onDoubleClick: qe, onTouchStart: Je, onTouchEnd: Ye, reset: Xe } = Se(ge, P), { height: U } = ke(P), W = g(() => T.candidates[V.value]), Ze = g(() => T.candidates.slice(0, V.value + 1).filter((e) => !A.has(e.id)).length), Qe = g(() => T.candidates.filter((e) => !A.has(e.id)).length), $e = g(() => T.candidates.slice(0, V.value).some((e) => !A.has(e.id))), et = g(() => T.candidates.slice(V.value + 1).some((e) => !A.has(e.id))), tt = g(() => de.has(W.value.id) ? "verified" : W.value.status), nt = g(() => F.value.map((e, t) => ({
317
317
  box: e,
318
318
  i: t
319
- })).sort((e, t) => st(e) - st(t))), rt = g(() => new Map(nt.value.map(({ i: e }, t) => [e, t + 1]))), G = g(() => P.value[z.value]), K = g(() => {
320
- let e = P.value[z.value];
319
+ })).sort((e, t) => st(e) - st(t))), rt = g(() => new Map(nt.value.map(({ i: e }, t) => [e, t + 1]))), G = g(() => F.value[z.value]), K = g(() => {
320
+ let e = F.value[z.value];
321
321
  return e?.label === "license_plate" ? e : null;
322
- }), it = g(() => H.value ? Le.value.filter((e) => !P.value.some((t) => Z(t, e) >= cn)) : []), at = g(() => [...ut.map((e) => ({
322
+ }), it = g(() => H.value ? Le.value.filter((e) => !F.value.some((t) => Z(t, e) >= cn)) : []), at = g(() => [...ut.map((e) => ({
323
323
  key: e,
324
324
  label: ct(e),
325
- icon: xe(e).icon,
326
- iconProps: { style: { color: xe(e).color } },
327
- active: P.value[je.value]?.label === e,
325
+ icon: ye(e).icon,
326
+ iconProps: { style: { color: ye(e).color } },
327
+ active: F.value[je.value]?.label === e,
328
328
  onClick: () => Cn(e)
329
329
  })), {
330
330
  key: "remove",
331
- label: k("components.training_editor.remove_box"),
331
+ label: ae("components.training_editor.remove_box"),
332
332
  icon: We,
333
333
  iconProps: { class: "text-red-500" },
334
334
  labelProps: { class: "text-red-500" },
@@ -338,14 +338,14 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
338
338
  return e.y * t >= $t ? "above" : t - (e.y + e.height) * t >= $t ? "below" : "inside";
339
339
  }), ot = g(() => (e) => e.x > .7);
340
340
  function st({ box: e, i: t }) {
341
- return t === z.value ? 2 ** 53 - 1 : de.get(s(e)) ?? t;
341
+ return t === z.value ? 2 ** 53 - 1 : j.get(s(e)) ?? t;
342
342
  }
343
343
  function ct(e) {
344
344
  let t = `components.training_editor.labels.${e}`;
345
- return ae(t) ? k(t) : e;
345
+ return oe(t) ? ae(t) : e;
346
346
  }
347
347
  function J(e) {
348
- return xe(e);
348
+ return ye(e);
349
349
  }
350
350
  function Y(e) {
351
351
  return `${e * 100}%`;
@@ -376,13 +376,13 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
376
376
  };
377
377
  }
378
378
  function pt(e) {
379
- P.value.push({
379
+ F.value.push({
380
380
  ...e,
381
381
  confidence: 1
382
- }), z.value = P.value.length - 1;
382
+ }), z.value = F.value.length - 1;
383
383
  }
384
384
  function mt() {
385
- for (let e of it.value) P.value.push({
385
+ for (let e of it.value) F.value.push({
386
386
  ...e,
387
387
  confidence: 1
388
388
  });
@@ -395,7 +395,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
395
395
  });
396
396
  }
397
397
  function gt(e) {
398
- let t = N.value?.getBoundingClientRect();
398
+ let t = ve.value?.getBoundingClientRect();
399
399
  return !t || t.width === 0 || t.height === 0 ? {
400
400
  x: 0,
401
401
  y: 0
@@ -405,15 +405,15 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
405
405
  };
406
406
  }
407
407
  function ln(e, t) {
408
- F.value = {
408
+ L.value = {
409
409
  ...t,
410
410
  clientX: e.clientX,
411
411
  clientY: e.clientY,
412
412
  moved: !1
413
- }, N.value?.setPointerCapture(e.pointerId);
413
+ }, ve.value?.setPointerCapture(e.pointerId);
414
414
  }
415
415
  function un(e) {
416
- if (M.value?.hide(), Re.value > 1 || !e.isPrimary) return;
416
+ if (N.value?.hide(), Re.value > 1 || !e.isPrimary) return;
417
417
  let { x: t, y: n } = gt(e);
418
418
  ln(e, {
419
419
  mode: "draw",
@@ -438,12 +438,12 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
438
438
  index: e,
439
439
  startX: n,
440
440
  startY: r,
441
- origin: { ...P.value[e] }
441
+ origin: { ...F.value[e] }
442
442
  });
443
443
  }
444
444
  function fn(e, t, n) {
445
445
  if (!n.isPrimary) return;
446
- M.value?.hide();
446
+ N.value?.hide();
447
447
  let { x: r, y: i } = gt(n);
448
448
  z.value = e, ln(n, {
449
449
  mode: "resize",
@@ -451,20 +451,20 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
451
451
  corner: t,
452
452
  startX: r,
453
453
  startY: i,
454
- origin: { ...P.value[e] }
454
+ origin: { ...F.value[e] }
455
455
  });
456
456
  }
457
457
  function pn(e) {
458
- e.touches.length > 1 && F.value && (F.value = null, I.value = null, B.value = null), Je(e);
458
+ e.touches.length > 1 && L.value && (L.value = null, R.value = null, B.value = null), Je(e);
459
459
  }
460
460
  function mn(e) {
461
- let t = F.value;
461
+ let t = L.value;
462
462
  if (!t) return;
463
463
  let { x: n, y: r } = gt(e), i = e.pointerType === "touch" ? Qt : Zt;
464
464
  if (Math.hypot(e.clientX - t.clientX, e.clientY - t.clientY) > i && (t.moved = !0), e.pointerType === "touch" && t.moved && (gn(t) ? _n(e) : B.value = null), t.mode === "draw") {
465
465
  if (t.moved) {
466
466
  let e = xn(t.startX, t.startY, n, r);
467
- I.value = e.width >= Xt && e.height >= Xt ? {
467
+ R.value = e.width >= Xt && e.height >= Xt ? {
468
468
  label: Fe.value,
469
469
  confidence: 1,
470
470
  ...e
@@ -474,31 +474,31 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
474
474
  }
475
475
  if (t.mode === "move") {
476
476
  if (!t.moved) return;
477
- let e = P.value[t.index];
477
+ let e = F.value[t.index];
478
478
  e.x = Math.min(1 - t.origin.width, Math.max(0, t.origin.x + (n - t.startX))), e.y = Math.min(1 - t.origin.height, Math.max(0, t.origin.y + (r - t.startY)));
479
479
  return;
480
480
  }
481
481
  let a = t.corner === "nw" || t.corner === "sw" ? t.origin.x + t.origin.width : t.origin.x, o = t.corner === "nw" || t.corner === "ne" ? t.origin.y + t.origin.height : t.origin.y;
482
- Object.assign(P.value[t.index], xn(a, o, n, r));
482
+ Object.assign(F.value[t.index], xn(a, o, n, r));
483
483
  }
484
484
  function hn(e) {
485
- let t = F.value;
486
- if (F.value = null, B.value = null, t) {
485
+ let t = L.value;
486
+ if (L.value = null, B.value = null, t) {
487
487
  if (t.mode === "draw") {
488
- I.value && I.value.width >= Xt && I.value.height >= Xt ? (P.value.push({ ...I.value }), z.value = P.value.length - 1) : t.moved || (z.value = -1), I.value = null;
488
+ R.value && R.value.width >= Xt && R.value.height >= Xt ? (F.value.push({ ...R.value }), z.value = F.value.length - 1) : t.moved || (z.value = -1), R.value = null;
489
489
  return;
490
490
  }
491
491
  t.mode === "move" && !t.moved && Sn(t.index, e);
492
492
  }
493
493
  }
494
494
  function gn(e) {
495
- let t = N.value?.getBoundingClientRect();
495
+ let t = ve.value?.getBoundingClientRect();
496
496
  if (!t || t.width === 0) return !1;
497
- let n = e.mode === "draw" ? I.value : P.value[e.index];
497
+ let n = e.mode === "draw" ? R.value : F.value[e.index];
498
498
  return !n || Math.max(n.width * t.width, n.height * t.height) <= on;
499
499
  }
500
500
  function _n(e) {
501
- let t = ve.value?.getBoundingClientRect(), n = _e.value?.getBoundingClientRect();
501
+ let t = P.value?.getBoundingClientRect(), n = ge.value?.getBoundingClientRect();
502
502
  if (!t || !n || t.width === 0 || t.height === 0) {
503
503
  B.value = null;
504
504
  return;
@@ -515,9 +515,9 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
515
515
  }
516
516
  function vn(e) {
517
517
  let t = e instanceof HTMLElement || e instanceof SVGElement ? e : null;
518
- if (!t || _e.value?.contains(t) || t.closest(".p-dialog-header") || t.closest("button")) return !1;
519
- let n = he.value?.closest(".p-dialog-content")?.lastElementChild;
520
- return !(n && n !== he.value && n.contains(t));
518
+ if (!t || ge.value?.contains(t) || t.closest(".p-dialog-header") || t.closest("button")) return !1;
519
+ let n = M.value?.closest(".p-dialog-content")?.lastElementChild;
520
+ return !(n && n !== M.value && n.contains(t));
521
521
  }
522
522
  function yn(e) {
523
523
  if (Oe = null, e.touches.length !== 1 || !vn(e.target)) return;
@@ -544,69 +544,69 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
544
544
  }
545
545
  function Sn(e, t) {
546
546
  je.value = e;
547
- let n = ve.value?.querySelector(`[data-box-label="${e}"]`), r = { currentTarget: ve.value ?? t.currentTarget };
548
- M.value?.toggleMenu(r, n ?? void 0);
547
+ let n = P.value?.querySelector(`[data-box-label="${e}"]`), r = { currentTarget: P.value ?? t.currentTarget };
548
+ N.value?.toggleMenu(r, n ?? void 0);
549
549
  }
550
550
  function Cn(e) {
551
- let t = P.value[je.value];
551
+ let t = F.value[je.value];
552
552
  t && (t.label = e, t.confidence = 1, Fe.value = e);
553
553
  }
554
554
  function wn(e) {
555
- let t = P.value[z.value];
555
+ let t = F.value[z.value];
556
556
  t && (t.text = (e ?? "").toUpperCase().replace(/[^A-Z0-9ÄÖÜ\- ]/g, "") || void 0);
557
557
  }
558
558
  function Tn(e) {
559
- e < 0 || e >= P.value.length || (P.value.splice(e, 1), z.value = -1, je.value = -1, M.value?.hide());
559
+ e < 0 || e >= F.value.length || (F.value.splice(e, 1), z.value = -1, je.value = -1, N.value?.hide());
560
560
  }
561
561
  function En(e, t = !0) {
562
- e < 0 || e >= T.candidates.length || (t && A.set(W.value.id, P.value.map((e) => ({ ...e }))), Le.value = P.value.map((e) => ({ ...e })), V.value = e, P.value = (A.get(W.value.id) ?? W.value.boxes).map((e) => ({ ...e })), I.value = null, F.value = null, B.value = null, z.value = -1, je.value = -1, de.clear(), M.value?.hide(), Xe());
562
+ e < 0 || e >= T.candidates.length || (t && ue.set(W.value.id, F.value.map((e) => ({ ...e }))), Le.value = F.value.map((e) => ({ ...e })), V.value = e, F.value = (ue.get(W.value.id) ?? W.value.boxes).map((e) => ({ ...e })), R.value = null, L.value = null, B.value = null, z.value = -1, je.value = -1, j.clear(), N.value?.hide(), Xe());
563
563
  }
564
564
  async function Dn(e) {
565
- return await T.onSave(W.value.id, P.value.map((e) => ({ ...e })), e), A.set(W.value.id, P.value.map((e) => ({ ...e }))), e === "verified" && ue.add(W.value.id), $(1, !1) ? null : void 0;
565
+ return await T.onSave(W.value.id, F.value.map((e) => ({ ...e })), e), ue.set(W.value.id, F.value.map((e) => ({ ...e }))), e === "verified" && de.add(W.value.id), $(1, !1) ? null : void 0;
566
566
  }
567
567
  function $(e, t = !0) {
568
568
  let n = V.value + e;
569
- for (; n >= 0 && n < T.candidates.length && j.has(T.candidates[n].id);) n += e;
569
+ for (; n >= 0 && n < T.candidates.length && A.has(T.candidates[n].id);) n += e;
570
570
  return n < 0 || n >= T.candidates.length ? !1 : (En(n, t), !0);
571
571
  }
572
572
  async function On() {
573
573
  let e = W.value.id;
574
- j.add(e);
574
+ A.add(e);
575
575
  try {
576
576
  await T.onDelete(e);
577
577
  } catch (t) {
578
- throw j.delete(e), t;
578
+ throw A.delete(e), t;
579
579
  }
580
- return A.delete(e), $(1, !1) || $(-1, !1) ? null : void 0;
580
+ return ue.delete(e), $(1, !1) || $(-1, !1) ? null : void 0;
581
581
  }
582
582
  function kn(e) {
583
583
  let t = !1;
584
- for (let n of e) !j.has(n) && T.candidates.some((e) => e.id === n) && (j.add(n), A.delete(n), n === W.value.id && (t = !0));
585
- t && (oe.add({
584
+ for (let n of e) !A.has(n) && T.candidates.some((e) => e.id === n) && (A.add(n), ue.delete(n), n === W.value.id && (t = !0));
585
+ t && (se.add({
586
586
  severity: "warn",
587
- detail: k("components.training_editor.removed_meanwhile"),
587
+ detail: ae("components.training_editor.removed_meanwhile"),
588
588
  life: 4e3
589
589
  }), !$(1, !1) && !$(-1, !1) && re.value.close({ status: "cancel" }));
590
590
  }
591
591
  function An() {
592
592
  for (let e of [1, -1]) {
593
593
  let t = V.value + e;
594
- for (; t >= 0 && t < T.candidates.length && j.has(T.candidates[t].id);) t += e;
594
+ for (; t >= 0 && t < T.candidates.length && A.has(T.candidates[t].id);) t += e;
595
595
  let n = T.candidates[t];
596
596
  n && (new Image().src = T.imageUrl(n.id));
597
597
  }
598
598
  }
599
599
  function jn(e) {
600
- P.value.length && (z.value = (z.value + e + P.value.length) % P.value.length);
600
+ F.value.length && (z.value = (z.value + e + F.value.length) % F.value.length);
601
601
  }
602
602
  function Mn(e) {
603
- let t = P.value[z.value];
603
+ let t = F.value[z.value];
604
604
  if (!t) return;
605
605
  let n = ut, r = n[(n.indexOf(t.label) + e + n.length) % n.length];
606
606
  t.label = r, t.confidence = 1, Fe.value = r;
607
607
  }
608
608
  function Nn(e, t, n) {
609
- let r = P.value[z.value];
609
+ let r = F.value[z.value];
610
610
  r && (n ? (r.width = Math.min(1 - r.x, Math.max(Xt, r.width + e)), r.height = Math.min(1 - r.y, Math.max(Xt, r.height + t))) : (r.x = Math.min(1 - r.width, Math.max(0, r.x + e)), r.y = Math.min(1 - r.height, Math.max(0, r.y + t))));
611
611
  }
612
612
  async function Pn() {
@@ -624,7 +624,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
624
624
  }
625
625
  }
626
626
  ee(V, An, { immediate: !0 }), ee(G, (e, t) => {
627
- t && t !== e && P.value.includes(t) && de.set(s(t), --fe);
627
+ t && t !== e && F.value.includes(t) && j.set(s(t), --fe);
628
628
  }), Ae(window, "keydown", (e) => {
629
629
  if (e.target?.closest?.("input, textarea")) return;
630
630
  let t = {
@@ -641,9 +641,9 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
641
641
  } else !e.repeat && e.key === "ArrowLeft" ? $(-1) : !e.repeat && e.key === "ArrowRight" && $(1);
642
642
  return;
643
643
  }
644
- e.repeat || (e.key === "Tab" ? (e.preventDefault(), jn(e.shiftKey ? -1 : 1)) : e.key === "Escape" ? (z.value = -1, M.value?.hide()) : (e.key === "Delete" || e.key === "Backspace") && z.value >= 0 ? Tn(z.value) : e.key === "v" || e.key === "V" ? e.shiftKey ? mt() : Le.value.length > 0 && (H.value = !H.value) : e.key === "s" || e.key === "S" ? Mn(e.shiftKey ? -1 : 1) : e.key === " " && !M.value?.isOpen && (e.preventDefault(), Pn()));
645
- }), Ae(() => he.value?.closest(".p-dialog-content") ?? void 0, "touchstart", yn, { passive: !0 }), Ae(() => he.value?.closest(".p-dialog-content") ?? void 0, "touchend", bn, { passive: !0 }), se.connect();
646
- let Fn = se.onCandidatesChanged((e) => {
644
+ e.repeat || (e.key === "Tab" ? (e.preventDefault(), jn(e.shiftKey ? -1 : 1)) : e.key === "Escape" ? (z.value = -1, N.value?.hide()) : (e.key === "Delete" || e.key === "Backspace") && z.value >= 0 ? Tn(z.value) : e.key === "v" || e.key === "V" ? e.shiftKey ? mt() : Le.value.length > 0 && (H.value = !H.value) : e.key === "s" || e.key === "S" ? Mn(e.shiftKey ? -1 : 1) : e.key === " " && !N.value?.isOpen && (e.preventDefault(), Pn()));
645
+ }), Ae(() => M.value?.closest(".p-dialog-content") ?? void 0, "touchstart", yn, { passive: !0 }), Ae(() => M.value?.closest(".p-dialog-content") ?? void 0, "touchend", bn, { passive: !0 }), ce.connect();
646
+ let Fn = ce.onCandidatesChanged((e) => {
647
647
  e.removed?.length && kn(e.removed);
648
648
  });
649
649
  return i(() => {
@@ -653,10 +653,10 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
653
653
  onConfirm: () => Dn("verified"),
654
654
  onCancel: () => On()
655
655
  }), (t, i) => {
656
- let o = ie, s = lt, p = Pe, g = Ue, ee = R, x = Te, w = Ie, T = Ke, E = ne;
656
+ let o = ie, s = lt, p = Pe, g = Ue, ee = we, x = _e, w = Ie, T = Ke, E = ne;
657
657
  return r(), v("div", {
658
658
  ref_key: "rootRef",
659
- ref: he,
659
+ ref: M,
660
660
  class: "flex flex-col gap-3 h-full min-h-0"
661
661
  }, [
662
662
  S("div", vt, [S("div", yt, [
@@ -666,7 +666,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
666
666
  class: "shrink-0"
667
667
  }, null, 8, ["severity", "value"]),
668
668
  S("span", bt, a(u.cameraName(h(W).cameraId)), 1),
669
- S("span", xt, a(h(ye)(h(W).createdAt)), 1)
669
+ S("span", xt, a(h(he)(h(W).createdAt)), 1)
670
670
  ]), S("div", St, [h(Le).length > 0 ? te((r(), d(p, {
671
671
  key: 0,
672
672
  severity: h(H) ? "primary" : "secondary",
@@ -685,15 +685,15 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
685
685
  ]]) : f("", !0), S("span", Ct, a(h(Ze)) + " / " + a(h(Qe)), 1)])]),
686
686
  S("div", {
687
687
  ref_key: "stageRef",
688
- ref: _e,
688
+ ref: ge,
689
689
  class: "stage relative w-full bg-black rounded-lg shrink-0 overflow-hidden select-none"
690
690
  }, [
691
- D(h(L), {
691
+ D(h(xe), {
692
692
  pan: h(ze),
693
693
  "onUpdate:pan": i[10] ||= (e) => m(ze) ? ze.value = e : null,
694
694
  zoom: h(Re),
695
695
  "onUpdate:zoom": i[11] ||= (e) => m(Re) ? Re.value = e : null,
696
- "pan-enabled": h(Re) > 1 && !h(F),
696
+ "pan-enabled": h(Re) > 1 && !h(L),
697
697
  "enable-control-button": !1,
698
698
  "dbl-click-enabled": !1,
699
699
  "min-zoom": 1,
@@ -709,7 +709,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
709
709
  }, {
710
710
  default: _(() => [S("div", {
711
711
  ref_key: "frameRef",
712
- ref: ve,
712
+ ref: P,
713
713
  "data-stage-zoom": h(me),
714
714
  class: "frame relative",
715
715
  style: y({
@@ -725,7 +725,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
725
725
  }, null, 40, Tt),
726
726
  (r(), v("svg", {
727
727
  ref_key: "svgRef",
728
- ref: N,
728
+ ref: ve,
729
729
  class: c(["absolute inset-0 w-full h-full touch-none", h(Re) > 1 ? "cursor-grab" : "cursor-crosshair"]),
730
730
  onPointerdown: un,
731
731
  onPointermove: mn,
@@ -746,7 +746,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
746
746
  onPointerdown: e((e) => dn(a, e), ["stop"]),
747
747
  onTouchstart: i[1] ||= e(() => {}, ["stop"]),
748
748
  onMousedown: i[2] ||= e(() => {}, ["stop"])
749
- }, null, 40, Et), (r(), v(b, null, n(ce, (n) => S("g", {
749
+ }, null, 40, Et), (r(), v(b, null, n(le, (n) => S("g", {
750
750
  key: n,
751
751
  class: "cursor-nwse-resize",
752
752
  onPointerdown: e((e) => fn(a, n, e), ["stop"]),
@@ -777,14 +777,14 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
777
777
  "vector-effect": "non-scaling-stroke",
778
778
  class: "pointer-events-none"
779
779
  }, null, 8, At))), 128)),
780
- h(I) ? (r(), v("rect", {
780
+ h(R) ? (r(), v("rect", {
781
781
  key: 0,
782
- x: Y(h(I).x),
783
- y: Y(h(I).y),
784
- width: Y(h(I).width),
785
- height: Y(h(I).height),
786
- stroke: J(h(I).label).color,
787
- fill: J(h(I).label).color,
782
+ x: Y(h(R).x),
783
+ y: Y(h(R).y),
784
+ width: Y(h(R).width),
785
+ height: Y(h(R).height),
786
+ stroke: J(h(R).label).color,
787
+ fill: J(h(R).label).color,
788
788
  "fill-opacity": "0.1",
789
789
  "stroke-dasharray": "6 4",
790
790
  "stroke-width": "2",
@@ -806,7 +806,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
806
806
  void 0,
807
807
  { top: !0 }
808
808
  ]])), 128)),
809
- (r(!0), v(b, null, n(h(P), (t, n) => (r(), v("div", {
809
+ (r(!0), v(b, null, n(h(F), (t, n) => (r(), v("div", {
810
810
  key: `label-${n}`,
811
811
  class: c(["bbox-label cursor-move", {
812
812
  "label-bottom": h(q)(t) === "below",
@@ -866,7 +866,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
866
866
  src: u.imageUrl(h(W).id),
867
867
  class: "absolute inset-0 w-full h-full",
868
868
  draggable: "false"
869
- }, null, 8, Lt), (r(), v("svg", Rt, [(r(!0), v(b, null, n(h(P), (e, t) => (r(), v("rect", {
869
+ }, null, 8, Lt), (r(), v("svg", Rt, [(r(!0), v(b, null, n(h(F), (e, t) => (r(), v("rect", {
870
870
  key: t,
871
871
  x: Y(e.x),
872
872
  y: Y(e.y),
@@ -876,14 +876,14 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
876
876
  fill: J(e.label).color,
877
877
  "fill-opacity": "0.1",
878
878
  "stroke-width": "1.5"
879
- }, null, 8, zt))), 128)), h(I) ? (r(), v("rect", {
879
+ }, null, 8, zt))), 128)), h(R) ? (r(), v("rect", {
880
880
  key: 0,
881
- x: Y(h(I).x),
882
- y: Y(h(I).y),
883
- width: Y(h(I).width),
884
- height: Y(h(I).height),
885
- stroke: J(h(I).label).color,
886
- fill: J(h(I).label).color,
881
+ x: Y(h(R).x),
882
+ y: Y(h(R).y),
883
+ width: Y(h(R).width),
884
+ height: Y(h(R).height),
885
+ stroke: J(h(R).label).color,
886
+ fill: J(h(R).label).color,
887
887
  "fill-opacity": "0.1",
888
888
  "stroke-dasharray": "4 3",
889
889
  "stroke-width": "1.5"
@@ -928,12 +928,12 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
928
928
  text: "",
929
929
  rounded: "",
930
930
  class: "cui-icon-sm shrink-0",
931
- onClick: i[14] ||= (e) => we.value = !h(we)
931
+ onClick: i[14] ||= (e) => Ce.value = !h(Ce)
932
932
  }, {
933
933
  icon: _(() => [D(T, { class: "w-4 h-4" })]),
934
934
  _: 1
935
935
  })) : f("", !0)]), S("span", Jt, a(t.$t("components.training_editor.hint_wrong")), 1)]),
936
- h(De) && h(we) ? (r(), v("div", Yt, [
936
+ h(De) && h(Ce) ? (r(), v("div", Yt, [
937
937
  i[16] ||= S("span", null, [S("kbd", null, "Tab")], -1),
938
938
  S("span", null, a(t.$t("components.training_editor.sc_select")), 1),
939
939
  i[17] ||= C(),
@@ -976,9 +976,9 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
976
976
  ], -1),
977
977
  S("span", null, a(t.$t("components.training_editor.sc_nav")), 1)
978
978
  ])) : f("", !0),
979
- D(le, {
979
+ D(k, {
980
980
  ref_key: "labelMenuRef",
981
- ref: M,
981
+ ref: N,
982
982
  items: h(at),
983
983
  popover: { pt: { content: { class: "p-0! rounded-xl! overflow-hidden!" } } }
984
984
  }, null, 8, ["items"])
@@ -1000,17 +1000,17 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1000
1000
  }, Sn = /* @__PURE__ */ T({
1001
1001
  __name: "TrainingSubmissions",
1002
1002
  setup(e) {
1003
- let t = new st(), { t: o, te: s } = Ne(), c = ge(), l = _t(), u = t.deleteSubmissionMutation(), p = E(""), m = E([]), g = E(0), C = E(), w = E(!0), T = E(!1), O = E(!1), re = x("loadMoreRef");
1004
- function k(e) {
1003
+ let t = new st(), { t: o, te: s } = Ne(), c = Te(), l = _t(), u = t.deleteSubmissionMutation(), p = E(""), m = E([]), g = E(0), C = E(), w = E(!0), T = E(!1), O = E(!1), re = x("loadMoreRef");
1004
+ function ae(e) {
1005
1005
  let t = {};
1006
1006
  for (let n of e.labels) t[n.label] = (t[n.label] ?? 0) + 1;
1007
1007
  return t;
1008
1008
  }
1009
- function ae(e) {
1009
+ function oe(e) {
1010
1010
  let t = `components.training_editor.labels.${e}`;
1011
1011
  return s(t) ? o(t) : e;
1012
1012
  }
1013
- async function oe() {
1013
+ async function k() {
1014
1014
  w.value = m.value.length === 0;
1015
1015
  try {
1016
1016
  let e = await it();
@@ -1021,7 +1021,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1021
1021
  w.value = !1;
1022
1022
  }
1023
1023
  }
1024
- async function se() {
1024
+ async function ce() {
1025
1025
  let e = C.value;
1026
1026
  if (e && !T.value) {
1027
1027
  T.value = !0;
@@ -1039,7 +1039,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1039
1039
  }
1040
1040
  }
1041
1041
  }
1042
- async function ce(e) {
1042
+ async function le(e) {
1043
1043
  p.value = e;
1044
1044
  try {
1045
1045
  await u.mutateAsync(e), m.value = m.value.filter((t) => t.id !== e), g.value = Math.max(0, g.value - 1);
@@ -1054,17 +1054,17 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1054
1054
  }
1055
1055
  }
1056
1056
  Oe(re, ([e]) => {
1057
- e?.isIntersecting && se();
1057
+ e?.isIntersecting && ce();
1058
1058
  }), ee(() => l.submitProgress.value?.active, (e, t) => {
1059
- t && !e && oe();
1059
+ t && !e && k();
1060
1060
  });
1061
- let A = l.onResync(() => {
1062
- oe();
1061
+ let ue = l.onResync(() => {
1062
+ k();
1063
1063
  });
1064
1064
  return i(() => {
1065
- A();
1066
- }), oe(), (e, t) => {
1067
- let i = we, o = Ve, s = pe, c = _e, l = ie, ee = We, x = Pe, E = be, oe = ne;
1065
+ ue();
1066
+ }), k(), (e, t) => {
1067
+ let i = ve, o = Ve, s = A, c = se, l = ie, ee = We, x = Pe, E = P, k = ne;
1068
1068
  return r(), v("div", un, [h(w) ? (r(), v("div", dn, [(r(), v(b, null, n(4, (e) => D(i, {
1069
1069
  key: e,
1070
1070
  height: "72px",
@@ -1080,11 +1080,11 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1080
1080
  "image-container-class": "w-full h-full",
1081
1081
  "image-style": { objectFit: "cover" }
1082
1082
  }, null, 8, ["src"])]),
1083
- S("div", vn, [S("div", yn, [(r(!0), v(b, null, n(k(t), (e, t) => (r(), v("span", {
1083
+ S("div", vn, [S("div", yn, [(r(!0), v(b, null, n(ae(t), (e, t) => (r(), v("span", {
1084
1084
  key: t,
1085
1085
  class: "px-1.5 py-0.5 rounded text-xs font-medium text-white",
1086
- style: y({ backgroundColor: h(xe)(String(t)).color })
1087
- }, a(ae(String(t))) + " ×" + a(e), 5))), 128))]), S("div", bn, a(h(ye)(new Date(t.createdAt).getTime())), 1)]),
1086
+ style: y({ backgroundColor: h(ye)(String(t)).color })
1087
+ }, a(oe(String(t))) + " ×" + a(e), 5))), 128))]), S("div", bn, a(h(he)(new Date(t.createdAt).getTime())), 1)]),
1088
1088
  D(l, {
1089
1089
  severity: t.usedInWave ? "success" : "info",
1090
1090
  value: t.usedInWave ? e.$t("components.training_submissions.status_trained") : e.$t("components.training_submissions.status_pool"),
@@ -1096,7 +1096,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1096
1096
  rounded: "",
1097
1097
  class: "cui-icon-sm shrink-0",
1098
1098
  loading: h(u).isPending.value && h(p) === t.id,
1099
- onClick: (e) => ce(t.id)
1099
+ onClick: (e) => le(t.id)
1100
1100
  }, {
1101
1101
  icon: _(() => [D(ee, {
1102
1102
  width: "100%",
@@ -1104,7 +1104,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1104
1104
  })]),
1105
1105
  _: 1
1106
1106
  }, 8, ["loading", "onClick"])), [[
1107
- oe,
1107
+ k,
1108
1108
  e.$t("components.training_submissions.delete"),
1109
1109
  void 0,
1110
1110
  { left: !0 }
@@ -1140,27 +1140,27 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1140
1140
  }, zn = {
1141
1141
  key: 1,
1142
1142
  class: "absolute top-1.5 right-1.5 dark-mode"
1143
- }, Bn = { class: "flex items-center justify-between gap-2" }, Vn = { class: "flex items-center gap-2 min-w-0" }, Hn = { class: "min-w-0" }, Un = { class: "font-medium truncate" }, Wn = { class: "text-xs text-muted" }, Gn = 40, Kn = /*#__PURE__*/ de(/* @__PURE__ */ T({
1143
+ }, Bn = { class: "flex items-center justify-between gap-2" }, Vn = { class: "flex items-center gap-2 min-w-0" }, Hn = { class: "min-w-0" }, Un = { class: "font-medium truncate" }, Wn = { class: "text-xs text-muted" }, Gn = 40, Kn = /*#__PURE__*/ j(/* @__PURE__ */ T({
1144
1144
  __name: "Training",
1145
1145
  setup(t) {
1146
- let o = new fe(), s = new st(), { t: l, te: u } = Ne(), p = I(), w = ge(), { smBreakpoint: T } = oe(), O = s.getCandidatesQuery(), k = s.getSettingsQuery(), ce = s.patchCandidateMutation(), A = s.deleteCandidateMutation(), de = s.patchSettingsMutation(), pe = s.submitCandidatesMutation(), N = _t(), { data: F } = o.getCamerasQuery({
1146
+ let o = new ue(), s = new st(), { t: l, te: u } = Ne(), p = F(), w = Te(), { smBreakpoint: T } = de(), O = s.getCandidatesQuery(), le = s.getSettingsQuery(), A = s.patchCandidateMutation(), j = s.deleteCandidateMutation(), me = s.patchSettingsMutation(), M = s.submitCandidatesMutation(), _e = _t(), { data: xe } = o.getCamerasQuery({
1147
1147
  page: 1,
1148
1148
  pageSize: -1
1149
- }), L = E(""), R = De("cui-training-status-filter", "all"), Se = E(Gn), Ce = x("statusMenuRef"), Te = x("cameraMenuRef"), ke = x("settingsMenuRef"), Ae = x("loadMoreRef"), Me = x("scrollRef"), { y: Ue } = B(Me), Ke = g(() => ({ gridTemplateColumns: `repeat(auto-fill, minmax(${T.value ? "220px" : "260px"}, 1fr))` })), Je = g(() => {
1149
+ }), I = E(""), L = De("cui-training-status-filter", "all"), Se = E(Gn), z = x("statusMenuRef"), we = x("cameraMenuRef"), ke = x("settingsMenuRef"), Ae = x("loadMoreRef"), Me = x("scrollRef"), { y: Ue } = B(Me), Ke = g(() => ({ gridTemplateColumns: `repeat(auto-fill, minmax(${T.value ? "220px" : "260px"}, 1fr))` })), Je = g(() => {
1150
1150
  let e = [...new Set((O.data.value ?? []).map((e) => Q(e.cameraId)))].sort((e, t) => e.localeCompare(t));
1151
1151
  return [{
1152
1152
  key: "all",
1153
1153
  label: l("views.training.all_cameras"),
1154
- active: L.value === "",
1154
+ active: I.value === "",
1155
1155
  onClick: () => {
1156
- L.value = "";
1156
+ I.value = "";
1157
1157
  }
1158
1158
  }, ...e.map((e) => ({
1159
1159
  key: e,
1160
1160
  label: e,
1161
- active: L.value === e,
1161
+ active: I.value === e,
1162
1162
  onClick: () => {
1163
- L.value = e;
1163
+ I.value = e;
1164
1164
  }
1165
1165
  }))];
1166
1166
  }), Ye = g(() => [{
@@ -1168,14 +1168,14 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1168
1168
  label: l("views.training.collection_enabled"),
1169
1169
  description: l("views.training.collection_hint"),
1170
1170
  toggle: !0,
1171
- toggleState: k.data.value?.enabled ?? !0,
1171
+ toggleState: le.data.value?.enabled ?? !0,
1172
1172
  onClick: () => {
1173
- Tt(!(k.data.value?.enabled ?? !0));
1173
+ Tt(!(le.data.value?.enabled ?? !0));
1174
1174
  }
1175
1175
  }]), U = g(() => {
1176
- let e = L.value.trim().toLowerCase();
1176
+ let e = I.value.trim().toLowerCase();
1177
1177
  return e ? (O.data.value ?? []).filter((t) => Q(t.cameraId).toLowerCase().includes(e)) : O.data.value ?? [];
1178
- }), W = g(() => R.value === "all" ? U.value : U.value.filter((e) => e.status === R.value)), Qe = g(() => {
1178
+ }), W = g(() => L.value === "all" ? U.value : U.value.filter((e) => e.status === L.value)), Qe = g(() => {
1179
1179
  let e = {
1180
1180
  all: U.value.length,
1181
1181
  new: 0,
@@ -1191,11 +1191,11 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1191
1191
  key: e,
1192
1192
  label: l(`views.training.status_${e}`),
1193
1193
  badge: String(Qe.value[e]),
1194
- active: R.value === e,
1194
+ active: L.value === e,
1195
1195
  onClick: () => {
1196
- R.value = e;
1196
+ L.value = e;
1197
1197
  }
1198
- }))), tt = g(() => R.value !== "all" || L.value.trim() !== ""), nt = g(() => W.value.slice(0, Se.value)), rt = g(() => W.value.length > nt.value.length), G = g(() => (O.data.value ?? []).filter((e) => at(e)).length), K = g(() => N.submitProgress.value ? N.submitProgress.value : G.value > 0 ? {
1198
+ }))), tt = g(() => L.value !== "all" || I.value.trim() !== ""), nt = g(() => W.value.slice(0, Se.value)), rt = g(() => W.value.length > nt.value.length), G = g(() => (O.data.value ?? []).filter((e) => at(e)).length), K = g(() => _e.submitProgress.value ? _e.submitProgress.value : G.value > 0 ? {
1199
1199
  active: !0,
1200
1200
  total: G.value,
1201
1201
  done: 0,
@@ -1204,12 +1204,12 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1204
1204
  function at(e) {
1205
1205
  return e.upload === "queued" || e.upload === "uploading";
1206
1206
  }
1207
- let { selectionMode: q, selectedIds: ot, allSelected: ct, bulkBusy: J, enterSelectionMode: lt, exitSelectionMode: ut, toggleSelectAll: X, toggleSelection: dt } = M(it, (e) => e.id), ft = g(() => [...ot.value].filter((e) => O.data.value?.find((t) => t.id === e)?.status === "verified")), Z = g(() => U.value.filter((e) => e.status === "verified" && !at(e)).map((e) => e.id));
1207
+ let { selectionMode: q, selectedIds: ot, allSelected: ct, bulkBusy: J, enterSelectionMode: lt, exitSelectionMode: ut, toggleSelectAll: X, toggleSelection: dt } = pe(it, (e) => e.id), ft = g(() => [...ot.value].filter((e) => O.data.value?.find((t) => t.id === e)?.status === "verified")), Z = g(() => U.value.filter((e) => e.status === "verified" && !at(e)).map((e) => e.id));
1208
1208
  function Q(e) {
1209
- return F.value?.result?.find((t) => t._id === e)?.name ?? e;
1209
+ return xe.value?.result?.find((t) => t._id === e)?.name ?? e;
1210
1210
  }
1211
1211
  function pt(e) {
1212
- return P(`/api/training/candidates/${e}/image`) ?? "";
1212
+ return ge(`/api/training/candidates/${e}/image`) ?? "";
1213
1213
  }
1214
1214
  function mt(e) {
1215
1215
  let t = `components.training_editor.labels.${e}`;
@@ -1248,7 +1248,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1248
1248
  cameraName: Q,
1249
1249
  imageUrl: pt,
1250
1250
  onSave: async (e, t, n) => {
1251
- await ce.mutateAsync({
1251
+ await A.mutateAsync({
1252
1252
  id: e,
1253
1253
  patch: {
1254
1254
  boxes: t,
@@ -1257,7 +1257,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1257
1257
  });
1258
1258
  },
1259
1259
  onDelete: async (e) => {
1260
- await A.mutateAsync(e);
1260
+ await j.mutateAsync(e);
1261
1261
  }
1262
1262
  }
1263
1263
  },
@@ -1276,7 +1276,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1276
1276
  });
1277
1277
  }
1278
1278
  function St(e) {
1279
- e.length && !pe.isPending.value && p.openTextDialog({
1279
+ e.length && !M.isPending.value && p.openTextDialog({
1280
1280
  data: {
1281
1281
  title: l("components.dialog.title.confirm"),
1282
1282
  contentText: l("views.training.submit_confirm", { count: e.length }),
@@ -1284,7 +1284,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1284
1284
  },
1285
1285
  onConfirm: async () => {
1286
1286
  try {
1287
- await pe.mutateAsync(e), ut();
1287
+ await M.mutateAsync(e), ut();
1288
1288
  } catch (e) {
1289
1289
  w.add({
1290
1290
  severity: "error",
@@ -1307,7 +1307,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1307
1307
  onConfirm: async () => {
1308
1308
  J.value = !0;
1309
1309
  try {
1310
- for (let t of e) await A.mutateAsync(t);
1310
+ for (let t of e) await j.mutateAsync(t);
1311
1311
  ut(), w.add({
1312
1312
  severity: "success",
1313
1313
  detail: l("views.training.delete_selected_done", { count: e.length }),
@@ -1326,23 +1326,23 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1326
1326
  });
1327
1327
  }
1328
1328
  async function wt(e) {
1329
- await A.mutateAsync(e.id);
1329
+ await j.mutateAsync(e.id);
1330
1330
  }
1331
1331
  async function Tt(e) {
1332
- await de.mutateAsync({ enabled: e });
1332
+ await me.mutateAsync({ enabled: e });
1333
1333
  }
1334
- ee([L, R], () => {
1334
+ ee([I, L], () => {
1335
1335
  Se.value = Gn;
1336
1336
  }), Oe(Ae, ([e]) => {
1337
1337
  e?.isIntersecting && vt();
1338
- }), N.connect();
1339
- let Et = N.onCandidatesChanged(() => {
1338
+ }), _e.connect();
1339
+ let Et = _e.onCandidatesChanged(() => {
1340
1340
  O.refetch();
1341
1341
  });
1342
1342
  return i(() => {
1343
1343
  Et();
1344
1344
  }), (t, i) => {
1345
- let o = Ge, s = Pe, u = z, p = Be, g = V, ee = Ie, x = Fe, w = Ze, E = ue, k = re, oe = he, ce = Xe, A = qe, de = be, fe = Re, M = Ve, ge = He, P = H, F = ze, I = we, Se = ae, De = _e, B = ie, Oe = We, Ne = Le, Qe = je, G = j, it = me, st = ne;
1345
+ let o = Ge, s = Pe, u = R, p = Be, g = V, ee = Ie, x = Fe, w = Ze, E = ce, le = re, ue = fe, A = Xe, de = qe, j = P, pe = Re, me = Ve, ge = He, F = H, xe = ze, Se = ve, Te = Ce, De = se, B = ie, Oe = We, Ne = Le, Qe = je, G = be, it = ae, st = ne;
1346
1346
  return r(), v("div", wn, [
1347
1347
  h(T) ? f("", !0) : (r(), v("h1", Tn, a(t.$t("views.training.title")), 1)),
1348
1348
  D(u, { position: "left" }, {
@@ -1362,15 +1362,15 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1362
1362
  _: 1
1363
1363
  }),
1364
1364
  S("div", Dn, [
1365
- D(oe, { class: "flex-1" }, {
1365
+ D(ue, { class: "flex-1" }, {
1366
1366
  default: _(() => [
1367
1367
  D(x, { class: "flex-1" }, {
1368
1368
  default: _(() => [D(g, null, {
1369
1369
  default: _(() => [D(p, { class: "w-4 h-4" })]),
1370
1370
  _: 1
1371
1371
  }), D(ee, {
1372
- modelValue: h(L),
1373
- "onUpdate:modelValue": i[1] ||= (e) => m(L) ? L.value = e : null,
1372
+ modelValue: h(I),
1373
+ "onUpdate:modelValue": i[1] ||= (e) => m(I) ? I.value = e : null,
1374
1374
  placeholder: h(l)("views.training.search"),
1375
1375
  class: "w-full"
1376
1376
  }, null, 8, ["modelValue", "placeholder"])]),
@@ -1380,8 +1380,8 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1380
1380
  default: _(() => [D(s, {
1381
1381
  severity: "secondary",
1382
1382
  text: "",
1383
- class: c(h(R) === "all" ? "text-color" : "text-primary"),
1384
- onClick: i[2] ||= (e) => h(Ce)?.toggleMenu(e)
1383
+ class: c(h(L) === "all" ? "text-color" : "text-primary"),
1384
+ onClick: i[2] ||= (e) => h(z)?.toggleMenu(e)
1385
1385
  }, {
1386
1386
  icon: _(() => [D(w, { class: "w-4 h-4" })]),
1387
1387
  _: 1
@@ -1393,9 +1393,9 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1393
1393
  severity: "secondary",
1394
1394
  text: "",
1395
1395
  class: "text-color",
1396
- onClick: i[3] ||= (e) => h(Te)?.toggleMenu(e)
1396
+ onClick: i[3] ||= (e) => h(we)?.toggleMenu(e)
1397
1397
  }, {
1398
- icon: _(() => [D(k, { class: c(["w-4 h-4 transform transition-transform duration-300", { "rotate-180": h(Te)?.isOpen }]) }, null, 8, ["class"])]),
1398
+ icon: _(() => [D(le, { class: c(["w-4 h-4 transform transition-transform duration-300", { "rotate-180": h(we)?.isOpen }]) }, null, 8, ["class"])]),
1399
1399
  _: 1
1400
1400
  })]),
1401
1401
  _: 1
@@ -1409,7 +1409,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1409
1409
  class: "cui-button shrink-0",
1410
1410
  onClick: xt
1411
1411
  }, {
1412
- icon: _(() => [D(ce, { class: "w-4.5 h-4.5" })]),
1412
+ icon: _(() => [D(A, { class: "w-4.5 h-4.5" })]),
1413
1413
  _: 1
1414
1414
  })), [[
1415
1415
  st,
@@ -1423,7 +1423,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1423
1423
  class: "cui-button shrink-0",
1424
1424
  onClick: i[4] ||= (e) => h(ke)?.toggleMenu(e)
1425
1425
  }, {
1426
- icon: _(() => [D(A, { class: "w-4.5 h-4.5" })]),
1426
+ icon: _(() => [D(de, { class: "w-4.5 h-4.5" })]),
1427
1427
  _: 1
1428
1428
  })), [[
1429
1429
  st,
@@ -1432,16 +1432,16 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1432
1432
  { left: !0 }
1433
1433
  ]])
1434
1434
  ]),
1435
- h(K) ? (r(), v("div", $, [h(K).active ? (r(), v(b, { key: 0 }, [D(de, { class: "w-4 h-4 text-primary shrink-0" }), S("div", On, [S("div", kn, a(t.$t("views.training.upload_progress", {
1435
+ h(K) ? (r(), v("div", $, [h(K).active ? (r(), v(b, { key: 0 }, [D(j, { class: "w-4 h-4 text-primary shrink-0" }), S("div", On, [S("div", kn, a(t.$t("views.training.upload_progress", {
1436
1436
  done: h(K).done + h(K).failed,
1437
1437
  total: h(K).total
1438
- })), 1), D(fe, {
1438
+ })), 1), D(pe, {
1439
1439
  value: h(K).total ? Math.round((h(K).done + h(K).failed) / h(K).total * 100) : 0,
1440
1440
  "show-value": !1,
1441
1441
  style: { height: "6px" },
1442
1442
  class: "mt-1.5"
1443
1443
  }, null, 8, ["value"])])], 64)) : (r(), v(b, { key: 1 }, [
1444
- h(K).failed ? (r(), d(M, {
1444
+ h(K).failed ? (r(), d(me, {
1445
1445
  key: 0,
1446
1446
  class: "w-5 h-5 text-red-500 shrink-0"
1447
1447
  })) : (r(), d(ge, {
@@ -1454,12 +1454,12 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1454
1454
  text: "",
1455
1455
  rounded: "",
1456
1456
  class: "cui-icon-sm shrink-0",
1457
- onClick: i[5] ||= (e) => h(N).dismissProgress()
1457
+ onClick: i[5] ||= (e) => h(_e).dismissProgress()
1458
1458
  }, {
1459
- icon: _(() => [D(P, { class: "w-4 h-4" })]),
1459
+ icon: _(() => [D(F, { class: "w-4 h-4" })]),
1460
1460
  _: 1
1461
1461
  })
1462
- ], 64))])) : h(U).length && !h(Z).length ? (r(), v("div", jn, [D(F, { class: "w-5 h-5 text-primary shrink-0" }), S("span", Mn, a(t.$t("views.training.verify_hint")), 1)])) : f("", !0),
1462
+ ], 64))])) : h(U).length && !h(Z).length ? (r(), v("div", jn, [D(xe, { class: "w-5 h-5 text-primary shrink-0" }), S("span", Mn, a(t.$t("views.training.verify_hint")), 1)])) : f("", !0),
1463
1463
  S("div", {
1464
1464
  ref_key: "scrollRef",
1465
1465
  ref: Me,
@@ -1471,18 +1471,18 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1471
1471
  }, [(r(), v(b, null, n(8, (e) => S("div", {
1472
1472
  key: e,
1473
1473
  class: "cui-card overflow-hidden"
1474
- }, [D(I, {
1474
+ }, [D(Se, {
1475
1475
  class: "aspect-video",
1476
1476
  width: "100%",
1477
1477
  height: "100%"
1478
- }), S("div", Nn, [D(I, {
1478
+ }), S("div", Nn, [D(Se, {
1479
1479
  height: "14px",
1480
1480
  width: "70%",
1481
1481
  class: "mb-1"
1482
- }), D(I, {
1482
+ }), D(Se, {
1483
1483
  height: "12px",
1484
1484
  width: "40%"
1485
- })])])), 64))], 4)) : h(W).length === 0 ? (r(), v("div", Pn, [D(Se, { class: "w-12 h-12 text-muted" }), S("span", Fn, a(t.$t(h(tt) ? "views.training.no_matches" : "views.training.no_candidates")), 1)])) : (r(), v(b, { key: 2 }, [S("div", {
1485
+ })])])), 64))], 4)) : h(W).length === 0 ? (r(), v("div", Pn, [D(Te, { class: "w-12 h-12 text-muted" }), S("span", Fn, a(t.$t(h(tt) ? "views.training.no_matches" : "views.training.no_candidates")), 1)])) : (r(), v(b, { key: 2 }, [S("div", {
1486
1486
  class: "grid w-full gap-3 p-px",
1487
1487
  style: y(h(Ke))
1488
1488
  }, [(r(!0), v(b, null, n(h(nt), (o) => (r(), d(Qe, {
@@ -1508,7 +1508,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1508
1508
  S("div", Ln, [(r(!0), v(b, null, n(ht(o), (e, t) => (r(), v("span", {
1509
1509
  key: t,
1510
1510
  class: "px-1.5 py-0.5 rounded text-xs font-medium text-white",
1511
- style: y({ backgroundColor: h(xe)(String(t)).color })
1511
+ style: y({ backgroundColor: h(ye)(String(t)).color })
1512
1512
  }, a(mt(String(t))) + " ×" + a(e), 5))), 128))]),
1513
1513
  o.upload ? (r(), v("div", Rn, [o.upload === "failed" ? te((r(), d(B, {
1514
1514
  key: 0,
@@ -1554,7 +1554,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1554
1554
  size: "small",
1555
1555
  onClick: i[6] ||= e(() => {}, ["stop"]),
1556
1556
  "onUpdate:modelValue": (e) => h(dt)(o.id)
1557
- }, null, 8, ["model-value", "onUpdate:modelValue"])) : f("", !0), S("div", Hn, [S("div", Un, a(Q(o.cameraId)), 1), S("div", Wn, a(h(ye)(o.createdAt)), 1)])]), D(B, {
1557
+ }, null, 8, ["model-value", "onUpdate:modelValue"])) : f("", !0), S("div", Hn, [S("div", Un, a(Q(o.cameraId)), 1), S("div", Wn, a(h(he)(o.createdAt)), 1)])]), D(B, {
1558
1558
  severity: gt(o.status),
1559
1559
  value: t.$t(`views.training.status_${o.status}`)
1560
1560
  }, null, 8, ["severity", "value"])])]),
@@ -1590,7 +1590,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1590
1590
  grouped: "",
1591
1591
  "tooltip-props": { value: h(ct) ? t.$t("views.training.deselect_all") : t.$t("views.training.select_all") },
1592
1592
  "button-props": { severity: h(ct) ? "primary" : "secondary" },
1593
- icon: h(ve),
1593
+ icon: h(N),
1594
1594
  "icon-props": {
1595
1595
  width: "100%",
1596
1596
  height: "100%"
@@ -1605,7 +1605,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1605
1605
  D(G, {
1606
1606
  grouped: "",
1607
1607
  "tooltip-props": { value: t.$t("views.training.submit_selected") },
1608
- "button-props": { disabled: !h(ft).length || h(pe).isPending.value },
1608
+ "button-props": { disabled: !h(ft).length || h(M).isPending.value },
1609
1609
  icon: h(et),
1610
1610
  "icon-props": {
1611
1611
  width: "100%",
@@ -1624,7 +1624,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1624
1624
  severity: "danger",
1625
1625
  disabled: !h(ot).size || h(J)
1626
1626
  },
1627
- icon: h(se),
1627
+ icon: h(oe),
1628
1628
  "icon-props": {
1629
1629
  width: "100%",
1630
1630
  height: "100%"
@@ -1654,7 +1654,7 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1654
1654
  "tooltip-props": { value: h(Z).length ? t.$t("views.training.submit_ready", h(Z).length) : t.$t("views.training.submit_disabled") },
1655
1655
  "button-props": {
1656
1656
  class: "text-white",
1657
- disabled: !h(Z).length || h(pe).isPending.value
1657
+ disabled: !h(Z).length || h(M).isPending.value
1658
1658
  },
1659
1659
  icon: h(et),
1660
1660
  "icon-props": {
@@ -1669,19 +1669,19 @@ var vt = { class: "flex items-center justify-between gap-2 text-sm" }, yt = { cl
1669
1669
  ])], 64))]),
1670
1670
  _: 1
1671
1671
  }, 8, ["force-visible", "scroll-y"])) : f("", !0),
1672
- D(le, {
1672
+ D(k, {
1673
1673
  ref_key: "statusMenuRef",
1674
- ref: Ce,
1674
+ ref: z,
1675
1675
  items: h($e),
1676
1676
  popover: { pt: { content: { class: "p-0! rounded-xl! overflow-hidden!" } } }
1677
1677
  }, null, 8, ["items"]),
1678
- D(le, {
1678
+ D(k, {
1679
1679
  ref_key: "cameraMenuRef",
1680
- ref: Te,
1680
+ ref: we,
1681
1681
  items: h(Je),
1682
1682
  popover: { pt: { content: { class: "p-0! rounded-xl! overflow-hidden!" } } }
1683
1683
  }, null, 8, ["items"]),
1684
- D(le, {
1684
+ D(k, {
1685
1685
  ref_key: "settingsMenuRef",
1686
1686
  ref: ke,
1687
1687
  items: h(Ye),