@camera.ui/server 2.2.5-beta.4 → 2.2.6

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 (664) hide show
  1. package/dist/interface/assets/{404-YZOLos9r.js → 404-BLVuKvLk.js} +1 -1
  2. package/dist/interface/assets/{About-HtxMc8JZ.js → About-C-AJ0jfI.js} +1 -1
  3. package/dist/interface/assets/Assistant-BJKGIvVo.js +1 -0
  4. package/dist/interface/assets/{Assistant-BMscGKnc.css → Assistant-BQ6Ld-bt.css} +1 -1
  5. package/dist/interface/assets/{Automation-D3DcUyui.js → Automation-C95DzuZb.js} +3 -3
  6. package/dist/interface/assets/{AutomationImport-Dp_hT6hQ.js → AutomationImport-C8VYjDzf.js} +2 -2
  7. package/dist/interface/assets/{AutomationStore-BKR7GXMk.js → AutomationStore-CE4PKRGd.js} +2 -2
  8. package/dist/interface/assets/{AutomationStoreDetail-B9yh51WQ.js → AutomationStoreDetail-DavWfjLv.js} +2 -2
  9. package/dist/interface/assets/Automations-BOP_17Ri.js +2 -0
  10. package/dist/interface/assets/Camera-BW9ikKqh.css +1 -0
  11. package/dist/interface/assets/Camera-C5S7eI9a.js +2 -0
  12. package/dist/interface/assets/{CameraConsole-BI93OaRt.js → CameraConsole-C4AmtcrM.js} +1 -1
  13. package/dist/interface/assets/{Cameras-Ctub8sVt.js → Cameras-DR577Bno.js} +2 -2
  14. package/dist/interface/assets/{Camview-CZct5cnP.css → Camview-Bri_T7Tq.css} +1 -1
  15. package/dist/interface/assets/Camview-CHxKB41T.js +1 -0
  16. package/dist/interface/assets/{CertificateUpload-xW55NA1Q.js → CertificateUpload-BYFKZCP9.js} +1 -1
  17. package/dist/interface/assets/Config-BrDDGWpr.js +2 -0
  18. package/dist/interface/assets/{ConfigActionAssistant-B488rOp5.js → ConfigActionAssistant-YtCVI8LZ.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionCameraControl-ZMUuBxOs.js → ConfigActionCameraControl-Dg_1zOYt.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionDelay-BJ11xvOW.js → ConfigActionDelay-_EqbfWgo.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionHttp-DOUo69OR.js → ConfigActionHttp-BzwLv2tn.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionImageInput-BMzuVZW9.js → ConfigActionImageInput-CLdY2sV4.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionMqtt-Co_uksca.js → ConfigActionMqtt-lGqYshl3.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionNotification-CcZkstYx.js → ConfigActionNotification-D5Dj3EoU.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionNotificationControl--VeucoTw.js → ConfigActionNotificationControl-Dy5fKamr.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionOutput-CyDa1LGA.js → ConfigActionOutput-DzsQ31L0.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionPlugin-Kfg3ZEQF.js → ConfigActionPlugin-BFrBcXvL.js} +1 -1
  28. package/dist/interface/assets/{ConfigActionSensor-DhAF0HPw.js → ConfigActionSensor-CX8ePlan.js} +1 -1
  29. package/dist/interface/assets/{ConfigActionSnapshot-zMe3SPvW.js → ConfigActionSnapshot-BATLRmh6.js} +1 -1
  30. package/dist/interface/assets/{ConfigActionVariable-BE5q3NwY.js → ConfigActionVariable-Dgn5jvaR.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionIfElse-BNIRtSVD.js → ConfigConditionIfElse-D5IIBjyk.js} +1 -1
  32. package/dist/interface/assets/{ConfigConditionSensorState-DTNd-SzI.js → ConfigConditionSensorState-C0JxBWdG.js} +1 -1
  33. package/dist/interface/assets/{ConfigConditionSwitch-BU5wWMU1.js → ConfigConditionSwitch-Brlgd0XP.js} +1 -1
  34. package/dist/interface/assets/{ConfigConditionTime-KXTCIVIV.js → ConfigConditionTime-CM4bSMyU.js} +1 -1
  35. package/dist/interface/assets/{ConfigSensorValueInput-BC1FpMm-.js → ConfigSensorValueInput-CtuH8dCa.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerDetection-hIN1hi53.js → ConfigTriggerDetection-DsL7lLQl.js} +1 -1
  37. package/dist/interface/assets/ConfigTriggerGeofence-CAGIk1_W.js +1 -0
  38. package/dist/interface/assets/{ConfigTriggerManual-C5vwxS-e.js → ConfigTriggerManual-DgkR-GWy.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerMqtt-B4PtWC3E.js → ConfigTriggerMqtt-B_iFalAQ.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerSchedule-BZzUdGBa.js → ConfigTriggerSchedule-E_QWfNKy.js} +1 -1
  41. package/dist/interface/assets/{ConfigTriggerSensor-D18nwMsj.js → ConfigTriggerSensor-hYNbLXUu.js} +1 -1
  42. package/dist/interface/assets/{ConfigTriggerSystem-BhygWLB4.js → ConfigTriggerSystem-DR1EFpE9.js} +1 -1
  43. package/dist/interface/assets/{ConfigTriggerWebhook-yyuBuhLD.js → ConfigTriggerWebhook-C-B5GGFH.js} +1 -1
  44. package/dist/interface/assets/Console-cIr6lYux.js +1 -0
  45. package/dist/interface/assets/CuiAssistantConversation-Bigl43Ph.js +5 -0
  46. package/dist/interface/assets/CuiAssistantConversation-BmshW6Vc.css +1 -0
  47. package/dist/interface/assets/CuiAutomationRunsDialog-Ci7SWAml.js +1 -0
  48. package/dist/interface/assets/{CuiBottomSheet-DWefGWK2.js → CuiBottomSheet-C2sM2E3M.js} +1 -1
  49. package/dist/interface/assets/CuiBottomSheet-ViBOgklN.js +1 -0
  50. package/dist/interface/assets/CuiCameraPipCard-wdK7xir-.js +1 -0
  51. package/dist/interface/assets/CuiCameraRecordings-BB7bF67B.js +1 -0
  52. package/dist/interface/assets/{CuiCameraShares-DcqOcePX.js → CuiCameraShares-B6jdUBVm.js} +1 -1
  53. package/dist/interface/assets/CuiCameraTable-CHnQFkce.js +1 -0
  54. package/dist/interface/assets/{CuiCameraTable-BOkfp_5M.js → CuiCameraTable-CpBo25Qc.js} +2 -2
  55. package/dist/interface/assets/{CuiChartTable-DP38uBwK.js → CuiChartTable-dIcxGtfl.js} +1 -1
  56. package/dist/interface/assets/{CuiConsole-C7xE_nQg.js → CuiConsole-BGptpT6r.js} +2 -2
  57. package/dist/interface/assets/CuiDataTable-CQmp5mAy.js +1 -0
  58. package/dist/interface/assets/CuiLightControl-wbZi3fA1.js +1 -0
  59. package/dist/interface/assets/{CuiList-DJp0__mV.js → CuiList-Dsu5m0TA.js} +1 -1
  60. package/dist/interface/assets/{CuiMarkdownContent-BUYtK_wD.js → CuiMarkdownContent-BYBQX_aF.js} +1 -1
  61. package/dist/interface/assets/CuiMarkdownContent-DTAm-EDR.js +1 -0
  62. package/dist/interface/assets/CuiPluginCard-BjIc7It9.js +2 -0
  63. package/dist/interface/assets/{CuiPluginCategoryChip-Ch_upS6Y.js → CuiPluginCategoryChip-BtJ_6_gN.js} +1 -1
  64. package/dist/interface/assets/{CuiPluginOAuthButton-DEQ9xILN.js → CuiPluginOAuthButton-Duf35I8K.js} +2 -2
  65. package/dist/interface/assets/{CuiPluginTrustBadge-sVWdvHcM.js → CuiPluginTrustBadge-jxXeRTH2.js} +1 -1
  66. package/dist/interface/assets/{CuiQRCode-DqSF4SkD.js → CuiQRCode-BNchrpoB.js} +1 -1
  67. package/dist/interface/assets/CuiSchema-DGTMkVSe.js +1 -0
  68. package/dist/interface/assets/{CuiTopNavbarItem-B_KWykgq.js → CuiTopNavbarItem-CHtLvn53.js} +1 -1
  69. package/dist/interface/assets/Faces-p18jNfXl.js +1 -0
  70. package/dist/interface/assets/FirstSteps-HzaBMDbH.js +1 -0
  71. package/dist/interface/assets/Floorplan-DYyEx7WO.js +1 -0
  72. package/dist/interface/assets/Instances-Dl-6rL5O.js +1 -0
  73. package/dist/interface/assets/{Logs-BSPT80vP.js → Logs-DsJkuQFq.js} +2 -2
  74. package/dist/interface/assets/{Menu-HHtuhIS2.js → Menu-D_woMkjL.js} +1 -1
  75. package/dist/interface/assets/Metrics-ChVnC6f6.css +1 -0
  76. package/dist/interface/assets/Metrics-l3UwykCM.js +12 -0
  77. package/dist/interface/assets/{OAuthDeviceFlow-Bn1nlWNa.js → OAuthDeviceFlow-CXfILAE1.js} +1 -1
  78. package/dist/interface/assets/Plugin-Ldj3HygQ.js +1 -0
  79. package/dist/interface/assets/Plugin-Qr_Q_Qfi.css +1 -0
  80. package/dist/interface/assets/{PluginConsole-Cv-uhnPY.js → PluginConsole-C96m5zKy.js} +1 -1
  81. package/dist/interface/assets/{PluginDetail-cpOz7FkA.js → PluginDetail-CnfaI1vh.js} +2 -2
  82. package/dist/interface/assets/{PluginSchema-DW3TGeTM.js → PluginSchema-u1bqXU29.js} +1 -1
  83. package/dist/interface/assets/PluginSearch-BiXG3Xk2.js +2 -0
  84. package/dist/interface/assets/PluginSearch-BuE7we1T.js +1 -0
  85. package/dist/interface/assets/{PluginUpdateProgress-n6q6vzyd.js → PluginUpdateProgress-BT4lN9HT.js} +1 -1
  86. package/dist/interface/assets/Plugins-Csx6AXaW.js +1 -0
  87. package/dist/interface/assets/{RecentEventsFilter-CTR5JK_P.js → RecentEventsFilter-Kp_lTOuG.js} +1 -1
  88. package/dist/interface/assets/Recordings-BEKAn6QK.css +1 -0
  89. package/dist/interface/assets/Recordings-D0KTY5cI.js +1 -0
  90. package/dist/interface/assets/SensorEdit-zs-f_o1N.js +1 -0
  91. package/dist/interface/assets/{SensorHistory-9CdOpCPs.js → SensorHistory-Cet35_RO.js} +1 -1
  92. package/dist/interface/assets/Sensors-BLAoalEt.js +2 -0
  93. package/dist/interface/assets/Settings-C-LCDIbK.js +1 -0
  94. package/dist/interface/assets/SettingsAccount-BsN7jGmo.js +1 -0
  95. package/dist/interface/assets/SettingsAccount-DuVyCSE-.js +1 -0
  96. package/dist/interface/assets/{SettingsAppearance-BY1xQMx4.js → SettingsAppearance-BS4EQNjH.js} +1 -1
  97. package/dist/interface/assets/SettingsAppearance-DQcGbYbV.js +1 -0
  98. package/dist/interface/assets/SettingsAssistant-B0PF3Rdg.css +1 -0
  99. package/dist/interface/assets/SettingsAssistant-DViJklFd.js +1 -0
  100. package/dist/interface/assets/{SettingsBackup-D_weokqu.js → SettingsBackup-DBlV1gej.js} +1 -1
  101. package/dist/interface/assets/{SettingsList-Bq24WTDU.js → SettingsList-D8eSwbBY.js} +1 -1
  102. package/dist/interface/assets/SettingsMqtt-JoszJJgV.js +1 -0
  103. package/dist/interface/assets/{SettingsNotifications-8TZOUxg2.js → SettingsNotifications-3veSrxa_.js} +1 -1
  104. package/dist/interface/assets/{SettingsPermissions-M8u_jrN0.js → SettingsPermissions-CJiz0Z7B.js} +1 -1
  105. package/dist/interface/assets/{SettingsRecordings-C1Kp5xW_.js → SettingsRecordings-CLz9Zp47.js} +1 -1
  106. package/dist/interface/assets/SettingsRemote-DUyl8k7I.js +2 -0
  107. package/dist/interface/assets/{SettingsSystem-Cetu2faJ.js → SettingsSystem-txTFGomQ.js} +2 -2
  108. package/dist/interface/assets/{SettingsUsers-CDwtQLdV.js → SettingsUsers-CUp6vQPc.js} +1 -1
  109. package/dist/interface/assets/Terminal-hln2UuSR.js +4 -0
  110. package/dist/interface/assets/Training-Bkn52mPJ.css +1 -0
  111. package/dist/interface/assets/Training-D6lhvUf-.js +1 -0
  112. package/dist/interface/assets/Updates-BwSWt9w7.js +2 -0
  113. package/dist/interface/assets/{VariableInput-BxPj5wo6.js → VariableInput-183LygmK.js} +1 -1
  114. package/dist/interface/assets/{VariableSuggestions-CbizvAkz.js → VariableSuggestions-DwLtlzVz.js} +1 -1
  115. package/dist/interface/assets/{VersionsHandler-CePyEUVO.js → VersionsHandler-DkbkcypK.js} +2 -2
  116. package/dist/interface/assets/{VirtualSensorCreate-D_GVoeL7.js → VirtualSensorCreate-Bn4tgdxA.js} +1 -1
  117. package/dist/interface/assets/Workers-B6b15izn.js +2 -0
  118. package/dist/interface/assets/{account-Bu30He0P.js → account-DwW7pBOb.js} +1 -1
  119. package/dist/interface/assets/{alert-circle-D2fAQwTX.js → alert-circle-BdUVAt1B.js} +1 -1
  120. package/dist/interface/assets/{alert-outline-D7zaSJH_.js → alert-outline-IRxYbw0j.js} +1 -1
  121. package/dist/interface/assets/api-C9mnOxie.js +4 -0
  122. package/dist/interface/assets/api-Cj9a6qPu.css +2 -0
  123. package/dist/interface/assets/{api-DW2niHRN.js → api-h4HRB3ef.js} +1 -1
  124. package/dist/interface/assets/{arrow-left-BGLyEqqa.js → arrow-left-Bk-ZrOVr.js} +1 -1
  125. package/dist/interface/assets/assistant-4hYyIu6D.js +1 -0
  126. package/dist/interface/assets/{assistantModels-D0soYqq7.js → assistantModels-BsSgRsws.js} +1 -1
  127. package/dist/interface/assets/{auth-Dc8bUpc-.js → auth-DFesRtwI.js} +1 -1
  128. package/dist/interface/assets/{automations-DXrjbArj.js → automations-D2bnX8uw.js} +1 -1
  129. package/dist/interface/assets/{back-filled-BPBVnQjx.js → back-filled-D-X19YMO.js} +1 -1
  130. package/dist/interface/assets/{bell-ring-CyCFPUL_.js → bell-ring-DreEHgoT.js} +1 -1
  131. package/dist/interface/assets/{brain-CIJB1ree.js → brain-DuDAg544.js} +1 -1
  132. package/dist/interface/assets/{cameraSources-QJfUDOQJ.js → cameraSources-DmVZWs4-.js} +1 -1
  133. package/dist/interface/assets/{cctv-D6kxZ-lp.js → cctv-DM-C_8_6.js} +1 -1
  134. package/dist/interface/assets/{check-circle-DHAAn6A6.js → check-circle-Bevuw8-0.js} +1 -1
  135. package/dist/interface/assets/{check-circle-outline-BbqeKfIK.js → check-circle-outline-aMxkvksr.js} +1 -1
  136. package/dist/interface/assets/{chevron-down-ZYTrU871.js → chevron-down-CCFn9Z56.js} +1 -1
  137. package/dist/interface/assets/{chevron-up-LQXNz9CE.js → chevron-up-CSImUM3_.js} +1 -1
  138. package/dist/interface/assets/{clock-outline-CKTiLKoR.js → clock-outline-DH3WIEJt.js} +1 -1
  139. package/dist/interface/assets/{close-BbEPZQqa.js → close-CMxyM4v9.js} +1 -1
  140. package/dist/interface/assets/{close-circle-BSUSUs4K.js → close-circle-CfgJCZ9A.js} +1 -1
  141. package/dist/interface/assets/{cloud-check-BTGbrAQ_.js → cloud-check-CbdFLIdR.js} +1 -1
  142. package/dist/interface/assets/cloudHandoff-Ba98bzeq.js +1 -0
  143. package/dist/interface/assets/{config-CiQDwB4t.js → config-DDaCrMSU.js} +1 -1
  144. package/dist/interface/assets/{content-copy-V0DW9ZbH.js → content-copy-Bz49QPOI.js} +1 -1
  145. package/dist/interface/assets/{copy-DsmMEtSH.js → copy-DA6QQHRt.js} +1 -1
  146. package/dist/interface/assets/{cube-scan-DGhUFV1x.js → cube-scan-IiH8zwm2.js} +1 -1
  147. package/dist/interface/assets/database-refresh-outline-CIUDpcuq.js +1 -0
  148. package/dist/interface/assets/{delete-CY8fsIW6.js → delete-Btu-UVx9.js} +1 -1
  149. package/dist/interface/assets/{dist-DNyx_J8o.js → dist-D_qWDAKp.js} +1 -1
  150. package/dist/interface/assets/{dots-vertical-pP1vP0Qa.js → dots-vertical-D496SIss.js} +1 -1
  151. package/dist/interface/assets/{download-CyjJ7yJW.js → download-BSC7lwq_.js} +1 -1
  152. package/dist/interface/assets/esm-Bn9gXwX4.js +1 -0
  153. package/dist/interface/assets/esm-BzM6y2-F.js +1 -0
  154. package/dist/interface/assets/esm-CP3JWrtj.js +1 -0
  155. package/dist/interface/assets/esm-CjAXkqCf.js +1 -0
  156. package/dist/interface/assets/esm-Cqxk-j1S.js +1 -0
  157. package/dist/interface/assets/esm-DFHd3JNU.js +1 -0
  158. package/dist/interface/assets/esm-DfMLJtug.js +1 -0
  159. package/dist/interface/assets/esm-DhDrpq7a.js +1 -0
  160. package/dist/interface/assets/esm-DvhM-SOd.js +1 -0
  161. package/dist/interface/assets/esm-G63bqygQ.js +1 -0
  162. package/dist/interface/assets/esm-Gn-Y59hU.js +1 -0
  163. package/dist/interface/assets/esm-KJSOz2vj.js +1 -0
  164. package/dist/interface/assets/esm-Ryfc94Tm.js +1 -0
  165. package/dist/interface/assets/esm-rSfI5Poy.js +1 -0
  166. package/dist/interface/assets/{eventIcons-cdzqQc0W.js → eventIcons-UQutPG3p.js} +1 -1
  167. package/dist/interface/assets/{eye-off-JCu1iUer.js → eye-off-CSU0U8g7.js} +1 -1
  168. package/dist/interface/assets/{eye-off-outline-GErp76H2.js → eye-off-outline-DCxLRGo_.js} +1 -1
  169. package/dist/interface/assets/{flowSchema-BRTZHQ1w.js → flowSchema-YJtAu9gB.js} +1 -1
  170. package/dist/interface/assets/{help-circle-outline-G43EJuch.js → help-circle-outline-Cr_yNhPi.js} +1 -1
  171. package/dist/interface/assets/{history-CNJREqJG.js → history-anuCbp1T.js} +1 -1
  172. package/dist/interface/assets/{home-B-_OQpZ6.js → home-N3bDR1vX.js} +1 -1
  173. package/dist/interface/assets/{information-outline-Blt4EtWJ.js → information-outline-CMWIvLNB.js} +1 -1
  174. package/dist/interface/assets/{intercomService-BnA-FQ0Q.js → intercomService-CjoJaOZ7.js} +1 -1
  175. package/dist/interface/assets/{lan-C3jliANx.js → lan-CYXjdk7L.js} +1 -1
  176. package/dist/interface/assets/main-C796FmqQ.js +3 -0
  177. package/dist/interface/assets/{main-BoGhBedC.css → main-DVa5U7UB.css} +1 -1
  178. package/dist/interface/assets/{microphone-B6xc9JQ2.js → microphone-BB2pATI_.js} +1 -1
  179. package/dist/interface/assets/{minus-BI5qXFwJ.js → minus-BCp3ZNKO.js} +1 -1
  180. package/dist/interface/assets/{mqtt-iD9XHYO_.js → mqtt-DGBPptzB.js} +1 -1
  181. package/dist/interface/assets/native-CZJE8bTs.js +1 -0
  182. package/dist/interface/assets/native-DKZwialB.js +1 -0
  183. package/dist/interface/assets/{nodeDefinitions-Dop49tx8.js → nodeDefinitions-ByrqsENY.js} +1 -1
  184. package/dist/interface/assets/{notifications-CbAJX7RF.js → notifications-5yeK345h.js} +1 -1
  185. package/dist/interface/assets/{pause-DKzvPG2b.js → pause-BQlxwAW2.js} +1 -1
  186. package/dist/interface/assets/{pencil-DKbi9SsG.js → pencil-CDsNnEXi.js} +1 -1
  187. package/dist/interface/assets/{pencil-outline-CD3Xv98d.js → pencil-outline-CIQL5Kui.js} +1 -1
  188. package/dist/interface/assets/plugin-DSEMkqaK.js +1 -0
  189. package/dist/interface/assets/{plugins-eIUrXNeM.js → plugins-BTOdE_zv.js} +1 -1
  190. package/dist/interface/assets/{plus-CHPYoMO_.js → plus-Bp4q9G7S.js} +1 -1
  191. package/dist/interface/assets/{plus--kDl8ben.js → plus-CySoovdr.js} +1 -1
  192. package/dist/interface/assets/{power-C9wmNlFS.js → power-WmBLDR0-.js} +1 -1
  193. package/dist/interface/assets/{radar-B3ra28GD.js → radar-CyYAmume.js} +1 -1
  194. package/dist/interface/assets/{refresh-DfqyhMOh.js → refresh-CHTA3jVN.js} +1 -1
  195. package/dist/interface/assets/{restore-FMacmqd_.js → restore-C8RNM5yX.js} +1 -1
  196. package/dist/interface/assets/{rooms-BqPyo8jc.js → rooms-BCdm6IAx.js} +1 -1
  197. package/dist/interface/assets/{round-alt-arrow-left-bold-56eF9Bol.js → round-alt-arrow-left-bold-Gh5mi_yR.js} +1 -1
  198. package/dist/interface/assets/{search-BXbDWhLk.js → search-BajCVmOI.js} +1 -1
  199. package/dist/interface/assets/sensorIcons-5Ynqwo3e.js +1 -0
  200. package/dist/interface/assets/{sensorSlots-BZCXtnb6.js → sensorSlots-BF70tpV7.js} +1 -1
  201. package/dist/interface/assets/{sensors-DttBNEEt.js → sensors-CeFEEz8r.js} +1 -1
  202. package/dist/interface/assets/{server-DUFhf2c_.js → server-bhW2Mw4D.js} +1 -1
  203. package/dist/interface/assets/{settings-Cw63SIJl.js → settings-DnksaK7m.js} +1 -1
  204. package/dist/interface/assets/{source-branch-oyzrlfCD.js → source-branch-CzqIPffP.js} +1 -1
  205. package/dist/interface/assets/{theme-BMmjtQ4w.js → theme-DF_XA58O.js} +1 -1
  206. package/dist/interface/assets/{trash-2-BQc04l9M.js → trash-2-DJeEhHf4.js} +1 -1
  207. package/dist/interface/assets/{trash-can-outline-Bk5eENNM.js → trash-can-outline-DrT6iw7I.js} +1 -1
  208. package/dist/interface/assets/{trash-fill-CXk8BmtF.js → trash-fill-Bb_-UicM.js} +1 -1
  209. package/dist/interface/assets/{trash2-2rUvghml.js → trash2-Dsl8gfxq.js} +1 -1
  210. package/dist/interface/assets/{types-CXw7CEzu.js → types-ArGM5-5O.js} +1 -1
  211. package/dist/interface/assets/types-BcAxmlqC.js +1 -0
  212. package/dist/interface/assets/{types-DWTSNJ79.js → types-CklFkUXk.js} +1 -1
  213. package/dist/interface/assets/{undo-Dcf7vcsv.js → undo-DoqJW-k7.js} +1 -1
  214. package/dist/interface/assets/{ungrouped-DHMJ9Rg1.css → ungrouped-BnQIcSQd.css} +1 -1
  215. package/dist/interface/assets/ungrouped-CkIlDUwl.js +1 -0
  216. package/dist/interface/assets/{updates-TIPWXKzL.js → updates-D3x_kPMM.js} +1 -1
  217. package/dist/interface/assets/{upload-nnbfDypK.js → upload-C3w1XH-o.js} +1 -1
  218. package/dist/interface/assets/{upload-B-ZYPekV.js → upload-DtIcwiNC.js} +1 -1
  219. package/dist/interface/assets/{useAppVersion-BIz44Bg4.js → useAppVersion-Dcvu95bZ.js} +1 -1
  220. package/dist/interface/assets/{useAssistantActions-CLkkw9kB.js → useAssistantActions-Cc_O6M9_.js} +1 -1
  221. package/dist/interface/assets/useBackupRestore-xp5KhKVn.js +1 -0
  222. package/dist/interface/assets/{useCameraOptions-A97teAIr.js → useCameraOptions-8I4MTDgj.js} +1 -1
  223. package/dist/interface/assets/useKeyboardInset-C0Lp0UcX.js +1 -0
  224. package/dist/interface/assets/{useLogsSocket-BlFxVXjF.js → useLogsSocket-bpOiLgWT.js} +1 -1
  225. package/dist/interface/assets/{useNavLayout-C5obaCNv.js → useNavLayout-Cjf6Da2u.js} +1 -1
  226. package/dist/interface/assets/{usePermissions-C8hB_pG1.js → usePermissions-BXTw4tII.js} +1 -1
  227. package/dist/interface/assets/{usePluginUpdates-DO0-Gk4Q.js → usePluginUpdates-bOMj-IvL.js} +1 -1
  228. package/dist/interface/assets/{usePushRegistration-BUttCraQ.js → usePushRegistration-HOvLuUVP.js} +2 -2
  229. package/dist/interface/assets/{useServerRestart-Cz9eVHUE.js → useServerRestart-CQN4cdHJ.js} +1 -1
  230. package/dist/interface/assets/{useStreamStatus-BhS_MCCB.js → useStreamStatus-Da7c2Wme.js} +1 -1
  231. package/dist/interface/assets/{useTabSwipe-D4k8lm1M.js → useTabSwipe-fFuyJJBQ.js} +1 -1
  232. package/dist/interface/assets/{useUpdateChannel-D9lhfW0y.js → useUpdateChannel-Ca1RX32u.js} +1 -1
  233. package/dist/interface/assets/{useUpdatesSocket-DnH9sON5.js → useUpdatesSocket-DHZNpLQX.js} +1 -1
  234. package/dist/interface/assets/useUserOptions-BQdOB-Dp.js +1 -0
  235. package/dist/interface/assets/{variable-CcE0ZwTr.js → variable-ywTlRfo5.js} +1 -1
  236. package/dist/interface/assets/{vendor-cameraui-QXD8jkcj.js → vendor-cameraui-CK4yHsJi.js} +45 -45
  237. package/dist/interface/assets/{vendor-capacitor-COL6Kz75.js → vendor-capacitor-Bs_WzL0Q.js} +2 -2
  238. package/dist/interface/assets/{vendor-chart-80wrH3md.js → vendor-chart-DBK083Hu.js} +1 -1
  239. package/dist/interface/assets/{vendor-core-CnhnyKDl.js → vendor-core-B-Q4es-f.js} +1 -1
  240. package/dist/interface/assets/{vendor-dnd-CEJS9JKU.js → vendor-dnd-DGQLvX6Y.js} +1 -1
  241. package/dist/interface/assets/{vendor-draggabilly-BY7O1F_Z.js → vendor-draggabilly-D8CK6M-y.js} +1 -1
  242. package/dist/interface/assets/{vendor-DGke_6M4.js → vendor-gFkr2qsZ.js} +1 -1
  243. package/dist/interface/assets/vendor-gridstack-DtDG3os6.js +3 -0
  244. package/dist/interface/assets/{vendor-markdown-DD4teg2u.js → vendor-markdown-qHIinIUE.js} +1 -1
  245. package/dist/interface/assets/{vendor-primevue-CCUqY55W.js → vendor-primevue-Cmp3VjIC.js} +72 -72
  246. package/dist/interface/assets/{vendor-vueflow-Bmwd2les.js → vendor-vueflow-bSwRZ9X8.js} +1 -1
  247. package/dist/interface/assets/web-BDNQnMmA.js +1 -0
  248. package/dist/interface/assets/web-B_9Qyt8E.js +1 -0
  249. package/dist/interface/assets/web-BhJykCtq.js +1 -0
  250. package/dist/interface/assets/web-BjKL51lK-wWFeZlLg.js +1 -0
  251. package/dist/interface/assets/web-C7nJwIOa.js +1 -0
  252. package/dist/interface/assets/web-CGJsJQDb.js +1 -0
  253. package/dist/interface/assets/web-CJwASxrl.js +1 -0
  254. package/dist/interface/assets/web-CLe0L31Y.js +1 -0
  255. package/dist/interface/assets/web-DEv1hAn1.js +1 -0
  256. package/dist/interface/assets/web-DaeQvsXT.js +1 -0
  257. package/dist/interface/assets/web-H3-wNunW.js +1 -0
  258. package/dist/interface/assets/web-LCdyqJq1.js +1 -0
  259. package/dist/interface/assets/web-XZWYTK65.js +1 -0
  260. package/dist/interface/assets/web-rU5hlxxW.js +1 -0
  261. package/dist/interface/assets/{webhook-oVbP79Yk.js → webhook-CWKf2Qxu.js} +1 -1
  262. package/dist/interface/assets/workbox-window.prod.es5-BEYAF-e-.js +1 -0
  263. package/dist/interface/assets/{zoom-in-GKNy8xA7.js → zoom-in-CHkXAWHy.js} +1 -1
  264. package/dist/interface/ha/{404-DLhJqxRl.js → 404-C0mWQGWl.js} +1 -1
  265. package/dist/interface/ha/{About-DC0i1iE4.js → About-ByE7XErJ.js} +6 -6
  266. package/dist/interface/ha/{Assistant-BmazMPIg.js → Assistant-Z3FTR868.js} +2233 -2099
  267. package/dist/interface/ha/{Automation-gabF9YzQ.js → Automation-COQqTFNw.js} +237 -237
  268. package/dist/interface/ha/{AutomationImport-DaqZNs9s.js → AutomationImport-ueWqMBX9.js} +6 -6
  269. package/dist/interface/ha/{AutomationStore-DzM4huo5.js → AutomationStore-DBO4aZqy.js} +76 -76
  270. package/dist/interface/ha/{AutomationStoreDetail-CpzQMt_D.js → AutomationStoreDetail-DMnYu7hf.js} +19 -19
  271. package/dist/interface/ha/{Automations-Dcm4Us50.js → Automations-CMdbidc0.js} +73 -73
  272. package/dist/interface/ha/{Camera-CNK3QR7l.js → Camera-C28q_3pu.js} +183 -180
  273. package/dist/interface/ha/{CameraConsole-CpcF0411.js → CameraConsole-oMNZfKE6.js} +3 -3
  274. package/dist/interface/ha/{Cameras-Cf9rwRyf.js → Cameras-CsqrLx97.js} +166 -166
  275. package/dist/interface/ha/{Camview-BFKR2t6C.js → Camview-Br0LUakz.js} +389 -389
  276. package/dist/interface/ha/{Config-1XH3zfr2.js → Config-Y5eUNSW7.js} +110 -110
  277. package/dist/interface/ha/{ConfigActionAssistant-C0-NFoTB.js → ConfigActionAssistant-hl-6ZACj.js} +4 -4
  278. package/dist/interface/ha/{ConfigActionCameraControl-DNSKZPSZ.js → ConfigActionCameraControl-DnXlVFWD.js} +3 -3
  279. package/dist/interface/ha/{ConfigActionHttp-DVJAcGkl.js → ConfigActionHttp-BkpkMmRd.js} +2 -2
  280. package/dist/interface/ha/{ConfigActionImageInput-VVbHHHZs.js → ConfigActionImageInput-Dp78_QS_.js} +1 -1
  281. package/dist/interface/ha/{ConfigActionMqtt-N5OUJDzM.js → ConfigActionMqtt-DA_UWb5j.js} +4 -4
  282. package/dist/interface/ha/{ConfigActionNotification-s142tQoU.js → ConfigActionNotification-CQ4Ses3a.js} +3 -3
  283. package/dist/interface/ha/{ConfigActionNotificationControl-Dh7kaKVP.js → ConfigActionNotificationControl-Cb5PNGz-.js} +2 -2
  284. package/dist/interface/ha/{ConfigActionOutput-B4HHTg5C.js → ConfigActionOutput-DLuNHwRb.js} +1 -1
  285. package/dist/interface/ha/{ConfigActionPlugin-D20G2Dqf.js → ConfigActionPlugin-ChKFCNaj.js} +5 -5
  286. package/dist/interface/ha/{ConfigActionSensor-BS3jrFaG.js → ConfigActionSensor-DOutFalW.js} +5 -5
  287. package/dist/interface/ha/{ConfigActionSnapshot-CInLAcwK.js → ConfigActionSnapshot-GWgY6YIN.js} +2 -2
  288. package/dist/interface/ha/{ConfigActionVariable-C5vADGNF.js → ConfigActionVariable-bu-9VYTG.js} +1 -1
  289. package/dist/interface/ha/{ConfigConditionIfElse-CPeWDD31.js → ConfigConditionIfElse-iNp8tlZV.js} +3 -3
  290. package/dist/interface/ha/{ConfigConditionSensorState-BM5GmpN6.js → ConfigConditionSensorState-Dn7kcHpJ.js} +4 -4
  291. package/dist/interface/ha/{ConfigConditionSwitch-Dmz9FduJ.js → ConfigConditionSwitch-DaUlDgo0.js} +5 -5
  292. package/dist/interface/ha/{ConfigSensorValueInput-Ch5njvtv.js → ConfigSensorValueInput-D6m6suqJ.js} +9 -9
  293. package/dist/interface/ha/{ConfigTriggerDetection-BR2QWNyO.js → ConfigTriggerDetection-C5B_DC_L.js} +12 -12
  294. package/dist/interface/ha/{ConfigTriggerGeofence-CaImOjyW.js → ConfigTriggerGeofence-B4WVNcK5.js} +5 -5
  295. package/dist/interface/ha/{ConfigTriggerMqtt-DWz1XwZQ.js → ConfigTriggerMqtt-wnMfk_Un.js} +1 -1
  296. package/dist/interface/ha/{ConfigTriggerSensor-lfnhz0im.js → ConfigTriggerSensor-xFpI5KPu.js} +1 -1
  297. package/dist/interface/ha/{ConfigTriggerSystem-CwUhyFAj.js → ConfigTriggerSystem-YI9WYYVM.js} +2 -2
  298. package/dist/interface/ha/{ConfigTriggerWebhook-J6Xts7GQ.js → ConfigTriggerWebhook-58c2KgUe.js} +2 -2
  299. package/dist/interface/ha/{Console-BSdKFm6Y.js → Console-Coiqh32K.js} +13 -13
  300. package/dist/interface/ha/{CuiAutomationRunsDialog-BU8sympp.js → CuiAutomationRunsDialog-CJ2MGfEY.js} +2 -2
  301. package/dist/interface/ha/{CuiBottomSheet-Bnp7ta7V.js → CuiBottomSheet-BlG9Pl9j.js} +1 -1
  302. package/dist/interface/ha/{CuiCameraRecordings-E-mMqKSs.js → CuiCameraRecordings-DLXEB4Q7.js} +13 -13
  303. package/dist/interface/ha/{CuiCameraShares-DcNwd2OC.js → CuiCameraShares-BCIeaM6u.js} +6 -6
  304. package/dist/interface/ha/{CuiCameraTable-DNW9Vm_A.js → CuiCameraTable-PYYC7sOu.js} +9 -9
  305. package/dist/interface/ha/{CuiChartTable-muC7jL2H.js → CuiChartTable-FQ2iR5Hd.js} +42 -42
  306. package/dist/interface/ha/{CuiConsole-ND8bcuTg.js → CuiConsole-C77k5q_-.js} +6 -6
  307. package/dist/interface/ha/{CuiDataTable-CN4T8DgP.js → CuiDataTable-CIKQLseG.js} +6 -6
  308. package/dist/interface/ha/{CuiPluginCard-nIQiyQvH.js → CuiPluginCard-DZNXKP_P.js} +51 -51
  309. package/dist/interface/ha/{CuiPluginOAuthButton-FJ49NfUh.js → CuiPluginOAuthButton-DVf52_Zc.js} +6 -6
  310. package/dist/interface/ha/{CuiPluginTrustBadge-D6eanMyI.js → CuiPluginTrustBadge-CPljYiM8.js} +3 -3
  311. package/dist/interface/ha/{CuiQRCode-BdJzeeoE.js → CuiQRCode-oe8PLnLj.js} +7 -7
  312. package/dist/interface/ha/{CuiSchema-DY0V-8xP.js → CuiSchema-CQy94ZTs.js} +60 -60
  313. package/dist/interface/ha/{CuiTopNavbarItem-DT5pAKHp.js → CuiTopNavbarItem-D6OHZLQY.js} +5 -5
  314. package/dist/interface/ha/Faces-DxAPvemO.js +1441 -0
  315. package/dist/interface/ha/{FirstSteps-yS2M2cor.js → FirstSteps-ZINTSaeL.js} +67 -67
  316. package/dist/interface/ha/{Floorplan-DSOeScjI.js → Floorplan-DkbL8ppT.js} +300 -300
  317. package/dist/interface/ha/{Instances-B4h5EKpF.js → Instances-totWtqd7.js} +66 -66
  318. package/dist/interface/ha/{Logs-BH0Lxvs6.js → Logs-CzabIFja.js} +11 -11
  319. package/dist/interface/ha/{Menu-COH7QXuE.js → Menu-DcVBOQfw.js} +12 -12
  320. package/dist/interface/ha/{Metrics-BtnRqL_I.js → Metrics-B_SN5hbp.js} +410 -409
  321. package/dist/interface/ha/{OAuthDeviceFlow-D2QJ9MnP.js → OAuthDeviceFlow-B28TPsTQ.js} +7 -7
  322. package/dist/interface/ha/{Plugin-EfUSqwyh.js → Plugin-B2PbbB8d.js} +418 -279
  323. package/dist/interface/ha/{PluginConsole-hh_o15f7.js → PluginConsole-_KeG4FvO.js} +4 -4
  324. package/dist/interface/ha/{PluginDetail-DFiXGkrY.js → PluginDetail-GK_Fx14e.js} +185 -185
  325. package/dist/interface/ha/{PluginSearch-Cdrfubrj.js → PluginSearch-qSy4aqAW.js} +51 -51
  326. package/dist/interface/ha/{PluginUpdateProgress-BD2g2kVj.js → PluginUpdateProgress-C4Q2j6VO.js} +3 -3
  327. package/dist/interface/ha/{Plugins-qFiHW-Nk.js → Plugins-D0tvZHie.js} +64 -64
  328. package/dist/interface/ha/{RecentEventsFilter-UWrXnvfq.js → RecentEventsFilter-9ZkDHD1g.js} +1 -1
  329. package/dist/interface/ha/{Recordings-BzeC6tOz.js → Recordings-CpxJYaAa.js} +510 -489
  330. package/dist/interface/ha/{SensorEdit-BSgy7lkZ.js → SensorEdit-8KtqLXEu.js} +377 -377
  331. package/dist/interface/ha/{SensorHistory-IDvP8LKH.js → SensorHistory-CPTTsdjM.js} +2 -2
  332. package/dist/interface/ha/{Sensors-Diqp4oZ0.js → Sensors-DJt_Hnn2.js} +484 -469
  333. package/dist/interface/ha/{Settings-BgDsxAlx.js → Settings-B-OdG5pG.js} +18 -18
  334. package/dist/interface/ha/{SettingsAccount-DBXMQPYk.js → SettingsAccount-Ba2-2Lbi.js} +175 -175
  335. package/dist/interface/ha/{SettingsAppearance-VmbjnT3o.js → SettingsAppearance-D56HjSuQ.js} +7 -7
  336. package/dist/interface/ha/SettingsAssistant-DglU0auc.js +2025 -0
  337. package/dist/interface/ha/{SettingsBackup-BqY9TwYn.js → SettingsBackup-DZx4McDz.js} +38 -38
  338. package/dist/interface/ha/{SettingsList-CzHcfo2N.js → SettingsList-D9nIGkbE.js} +4 -4
  339. package/dist/interface/ha/{SettingsMqtt-DqV3h3Ow.js → SettingsMqtt-BOszh--k.js} +150 -150
  340. package/dist/interface/ha/{SettingsNotifications-yn5fIR_7.js → SettingsNotifications-DBVpZfp0.js} +118 -118
  341. package/dist/interface/ha/{SettingsRecordings-DDs1lyfY.js → SettingsRecordings-D3oJnizu.js} +9 -9
  342. package/dist/interface/ha/{SettingsRemote-jBw3l5E0.js → SettingsRemote-BOotvcOT.js} +332 -332
  343. package/dist/interface/ha/{SettingsSystem-BOv9hNlk.js → SettingsSystem-Bg11qoQX.js} +10 -10
  344. package/dist/interface/ha/{SettingsUsers-Biv-2F4C.js → SettingsUsers-KpLs9Jnh.js} +92 -92
  345. package/dist/interface/ha/{Terminal-CmcrGEV0.js → Terminal-D6opTHYI.js} +165 -170
  346. package/dist/interface/ha/Training-OB2KOQ7L.js +1694 -0
  347. package/dist/interface/ha/{Updates-DJAcmDQJ.js → Updates-C_OvXJjd.js} +12 -12
  348. package/dist/interface/ha/{VariableInput-DlYg7t0m.js → VariableInput-CfaDp67S.js} +1 -1
  349. package/dist/interface/ha/{VersionsHandler-UnrAWn-b.js → VersionsHandler-D1FVeYUZ.js} +10 -10
  350. package/dist/interface/ha/{VirtualSensorCreate-CssxeaCC.js → VirtualSensorCreate-DJIgMVrt.js} +7 -7
  351. package/dist/interface/ha/{Workers-CLpqLugC.js → Workers-cJMI4mYX.js} +29 -29
  352. package/dist/interface/ha/{api-B_tDa73J.js → api-CDawdL4p.js} +3 -3
  353. package/dist/interface/ha/{api-BP7mlzjP.js → api-D2VzV4is.js} +9943 -9546
  354. package/dist/interface/ha/{assistant-Cb6ACguQ.js → assistant-BmDAfChm.js} +101 -97
  355. package/dist/interface/ha/{auth-DOYDRgFm.js → auth-CvLz9C4w.js} +33 -33
  356. package/dist/interface/ha/{automationBlueprint-CbbG_ku4.js → automationBlueprint-BhNaeOZ1.js} +4 -4
  357. package/dist/interface/ha/{base-C-TYDHjS.js → base-XgWmQghV.js} +14 -3
  358. package/dist/interface/ha/cameraui-cards.js +1 -1
  359. package/dist/interface/ha/{cards-BpBP1zVW.js → cards-MQrnU0T8.js} +1197 -1121
  360. package/dist/interface/ha/{config-DroY1HBs.js → config-t_oAKFkJ.js} +14 -14
  361. package/dist/interface/ha/database-refresh-outline-PiqlCkA7.js +19 -0
  362. package/dist/interface/ha/{dist-BTp4AyuI.js → dist-BIngHzHx.js} +5 -5
  363. package/dist/interface/ha/{dist-C6MBHJhs.js → dist-oFWkn6pD.js} +5 -8
  364. package/dist/interface/ha/{esm-i8Tigknm.js → esm-C9XVFkXu.js} +4 -4
  365. package/dist/interface/ha/{mqtt-NJTVdd53.js → mqtt-C20h1uze.js} +14 -14
  366. package/dist/interface/ha/{native-DBH9ocSq.js → native-BVUxNLM1.js} +4 -4
  367. package/dist/interface/ha/{notifications-BPTvvgvv.js → notifications-Cy9DKiEn.js} +19 -19
  368. package/dist/interface/ha/{pinia-C6gt7A_Q.js → pinia-BokSpDzj.js} +640 -625
  369. package/dist/interface/ha/{plugins-B29K3nQP.js → plugins-jozYyBhV.js} +53 -53
  370. package/dist/interface/ha/{rooms-DLw0WUy_.js → rooms-DyfT3cXp.js} +11 -11
  371. package/dist/interface/ha/{server-B4b5_Ecu.js → server-hCCjQjZE.js} +28 -28
  372. package/dist/interface/ha/{types-DJHHL7nn.js → types-RG0SckNR.js} +49 -38
  373. package/dist/interface/ha/{types-XqA3YJPD.js → types-wLECk3Ml.js} +3 -1
  374. package/dist/interface/ha/{ungrouped-xyK1QrsM.js → ungrouped-BbyfoCQp.js} +121 -121
  375. package/dist/interface/ha/{updates-XFSu9Tfm.js → updates-hUgVDgoD.js} +36 -36
  376. package/dist/interface/ha/{useAppVersion-BH3rU1zz.js → useAppVersion-wNhZDuvR.js} +1 -1
  377. package/dist/interface/ha/useKeyboardInset-Cmbvb_W3.js +27 -0
  378. package/dist/interface/ha/{useLogsSocket-CaTRzvgU.js → useLogsSocket-y9Aex3tJ.js} +1 -1
  379. package/dist/interface/ha/{useNavLayout-DV0_OQx0.js → useNavLayout-Ehb0t34k.js} +2 -2
  380. package/dist/interface/ha/{useServerRestart-C8tynLUf.js → useServerRestart-CRSVcz3z.js} +1 -1
  381. package/dist/interface/ha/{useTabSwipe-CFoLDp3j.js → useTabSwipe-B_bseZkI.js} +1 -1
  382. package/dist/interface/ha/{useUpdateChannel-DSG2RTPe.js → useUpdateChannel-C_GU6lj6.js} +2 -2
  383. package/dist/interface/ha/{useUpdatesSocket-CSQ0g7-6.js → useUpdatesSocket-CYgHb7UX.js} +1 -1
  384. package/dist/interface/ha/{useUserOptions-CFaCy6L1.js → useUserOptions-pVYr-s3O.js} +1 -1
  385. package/dist/interface/ha/{web-D_q41D0i.js → web-CLbVbnCW.js} +5 -5
  386. package/dist/interface/index.html +70 -70
  387. package/dist/interface/sw.js +1 -1
  388. package/dist/server/package.json +30 -30
  389. package/dist/server/requirements.txt +2 -2
  390. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +44 -0
  391. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +2 -0
  392. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +7 -2
  393. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +42 -0
  394. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/assistant_models.py +300 -0
  395. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +9 -0
  396. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/helper.py +21 -0
  397. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +80 -4
  398. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +6 -0
  399. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +2 -0
  400. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face.py +3 -7
  401. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face_embedder.py +69 -0
  402. package/dist/server/src/api/controllers/assistant.controller.js +1 -1
  403. package/dist/server/src/api/controllers/assistant.controller.js.map +1 -1
  404. package/dist/server/src/api/controllers/rooms.controller.js +3 -1
  405. package/dist/server/src/api/controllers/rooms.controller.js.map +1 -1
  406. package/dist/server/src/api/database/index.d.ts +1 -1
  407. package/dist/server/src/api/database/index.js +1 -1
  408. package/dist/server/src/api/database/migrations/v2-2-5.d.ts +3 -0
  409. package/dist/server/src/api/database/migrations/v2-2-5.js +19 -0
  410. package/dist/server/src/api/database/migrations/v2-2-5.js.map +1 -0
  411. package/dist/server/src/api/database/record-schemas.d.ts +4 -2
  412. package/dist/server/src/api/database/record-schemas.js +4 -1
  413. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  414. package/dist/server/src/api/database/types.d.ts +6 -1
  415. package/dist/server/src/api/schemas/assistant.schema.d.ts +23 -7
  416. package/dist/server/src/api/schemas/assistant.schema.js +5 -1
  417. package/dist/server/src/api/schemas/assistant.schema.js.map +1 -1
  418. package/dist/server/src/api/schemas/cameras.schema.d.ts +56 -8
  419. package/dist/server/src/api/schemas/cameras.schema.js +4 -3
  420. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  421. package/dist/server/src/api/services/assistant.service.d.ts +1 -1
  422. package/dist/server/src/api/services/assistant.service.js +4 -1
  423. package/dist/server/src/api/services/assistant.service.js.map +1 -1
  424. package/dist/server/src/api/services/cameras.service.d.ts +1 -0
  425. package/dist/server/src/api/services/cameras.service.js +10 -2
  426. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  427. package/dist/server/src/api/websocket/nsp/worker-perf.js +13 -0
  428. package/dist/server/src/api/websocket/nsp/worker-perf.js.map +1 -1
  429. package/dist/server/src/api/websocket/types.d.ts +12 -0
  430. package/dist/server/src/assistant/budget.d.ts +27 -0
  431. package/dist/server/src/assistant/budget.js +118 -0
  432. package/dist/server/src/assistant/budget.js.map +1 -0
  433. package/dist/server/src/assistant/compaction.d.ts +10 -0
  434. package/dist/server/src/assistant/compaction.js +83 -0
  435. package/dist/server/src/assistant/compaction.js.map +1 -0
  436. package/dist/server/src/assistant/docs.js +4 -3
  437. package/dist/server/src/assistant/docs.js.map +1 -1
  438. package/dist/server/src/assistant/history.d.ts +1 -0
  439. package/dist/server/src/assistant/history.js +28 -0
  440. package/dist/server/src/assistant/history.js.map +1 -1
  441. package/dist/server/src/assistant/manager.d.ts +11 -0
  442. package/dist/server/src/assistant/manager.js +262 -63
  443. package/dist/server/src/assistant/manager.js.map +1 -1
  444. package/dist/server/src/assistant/plugin-models.d.ts +34 -0
  445. package/dist/server/src/assistant/plugin-models.js +266 -0
  446. package/dist/server/src/assistant/plugin-models.js.map +1 -0
  447. package/dist/server/src/assistant/prompt.d.ts +7 -1
  448. package/dist/server/src/assistant/prompt.js +75 -11
  449. package/dist/server/src/assistant/prompt.js.map +1 -1
  450. package/dist/server/src/assistant/providers.js +7 -3
  451. package/dist/server/src/assistant/providers.js.map +1 -1
  452. package/dist/server/src/assistant/recap.d.ts +3 -0
  453. package/dist/server/src/assistant/recap.js +65 -0
  454. package/dist/server/src/assistant/recap.js.map +1 -0
  455. package/dist/server/src/assistant/registry.d.ts +16 -1
  456. package/dist/server/src/assistant/registry.js +49 -1
  457. package/dist/server/src/assistant/registry.js.map +1 -1
  458. package/dist/server/src/assistant/retry.js +38 -24
  459. package/dist/server/src/assistant/retry.js.map +1 -1
  460. package/dist/server/src/assistant/router.d.ts +7 -0
  461. package/dist/server/src/assistant/router.js +67 -0
  462. package/dist/server/src/assistant/router.js.map +1 -0
  463. package/dist/server/src/assistant/scheduler.js +8 -1
  464. package/dist/server/src/assistant/scheduler.js.map +1 -1
  465. package/dist/server/src/assistant/skills.d.ts +8 -0
  466. package/dist/server/src/assistant/skills.js +59 -1
  467. package/dist/server/src/assistant/skills.js.map +1 -1
  468. package/dist/server/src/assistant/threads.d.ts +1 -0
  469. package/dist/server/src/assistant/threads.js +7 -1
  470. package/dist/server/src/assistant/threads.js.map +1 -1
  471. package/dist/server/src/assistant/tool-names.js +9 -1
  472. package/dist/server/src/assistant/tool-names.js.map +1 -1
  473. package/dist/server/src/assistant/tool-rank.d.ts +2 -0
  474. package/dist/server/src/assistant/tool-rank.js +48 -0
  475. package/dist/server/src/assistant/tool-rank.js.map +1 -0
  476. package/dist/server/src/assistant/tool-schema.d.ts +3 -0
  477. package/dist/server/src/assistant/tool-schema.js +65 -0
  478. package/dist/server/src/assistant/tool-schema.js.map +1 -0
  479. package/dist/server/src/assistant/tools/api.js +7 -9
  480. package/dist/server/src/assistant/tools/api.js.map +1 -1
  481. package/dist/server/src/assistant/tools/ask.js +1 -2
  482. package/dist/server/src/assistant/tools/ask.js.map +1 -1
  483. package/dist/server/src/assistant/tools/automations.js +3 -5
  484. package/dist/server/src/assistant/tools/automations.js.map +1 -1
  485. package/dist/server/src/assistant/tools/cameras.js +3 -4
  486. package/dist/server/src/assistant/tools/cameras.js.map +1 -1
  487. package/dist/server/src/assistant/tools/docs.js +5 -6
  488. package/dist/server/src/assistant/tools/docs.js.map +1 -1
  489. package/dist/server/src/assistant/tools/instance.js +19 -19
  490. package/dist/server/src/assistant/tools/instance.js.map +1 -1
  491. package/dist/server/src/assistant/tools/memory.js +3 -4
  492. package/dist/server/src/assistant/tools/memory.js.map +1 -1
  493. package/dist/server/src/assistant/tools/metrics.js +1 -2
  494. package/dist/server/src/assistant/tools/metrics.js.map +1 -1
  495. package/dist/server/src/assistant/tools/notifications.js +4 -11
  496. package/dist/server/src/assistant/tools/notifications.js.map +1 -1
  497. package/dist/server/src/assistant/tools/plugins.js +12 -14
  498. package/dist/server/src/assistant/tools/plugins.js.map +1 -1
  499. package/dist/server/src/assistant/tools/report.js +17 -12
  500. package/dist/server/src/assistant/tools/report.js.map +1 -1
  501. package/dist/server/src/assistant/tools/schedules.js +6 -11
  502. package/dist/server/src/assistant/tools/schedules.js.map +1 -1
  503. package/dist/server/src/assistant/tools/sensors.js +63 -4
  504. package/dist/server/src/assistant/tools/sensors.js.map +1 -1
  505. package/dist/server/src/assistant/tools/settings.js +2 -3
  506. package/dist/server/src/assistant/tools/settings.js.map +1 -1
  507. package/dist/server/src/assistant/tools/system.js +3 -5
  508. package/dist/server/src/assistant/tools/system.js.map +1 -1
  509. package/dist/server/src/assistant/tools/terminal.js +4 -5
  510. package/dist/server/src/assistant/tools/terminal.js.map +1 -1
  511. package/dist/server/src/assistant/types.d.ts +10 -1
  512. package/dist/server/src/assistant/uploads.d.ts +2 -1
  513. package/dist/server/src/assistant/uploads.js +25 -3
  514. package/dist/server/src/assistant/uploads.js.map +1 -1
  515. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +5 -0
  516. package/dist/server/src/camera/decoder/detection-coordinator.js +45 -14
  517. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  518. package/dist/server/src/camera/decoder/detection-pipeline.js +2 -1
  519. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  520. package/dist/server/src/camera/decoder/event-manager.d.ts +27 -4
  521. package/dist/server/src/camera/decoder/event-manager.js +175 -48
  522. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  523. package/dist/server/src/camera/decoder/nvr-sink.d.ts +4 -1
  524. package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
  525. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
  526. package/dist/server/src/camera/decoder/perf-tracker.d.ts +10 -0
  527. package/dist/server/src/camera/decoder/perf-tracker.js +20 -0
  528. package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
  529. package/dist/server/src/camera/decoder/secondary-stage.d.ts +21 -1
  530. package/dist/server/src/camera/decoder/secondary-stage.js +301 -59
  531. package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
  532. package/dist/server/src/camera/decoder/side-queue.d.ts +13 -0
  533. package/dist/server/src/camera/decoder/side-queue.js +53 -0
  534. package/dist/server/src/camera/decoder/side-queue.js.map +1 -0
  535. package/dist/server/src/camera/decoder/sources/buffered-source.d.ts +2 -0
  536. package/dist/server/src/camera/decoder/sources/buffered-source.js +7 -1
  537. package/dist/server/src/camera/decoder/sources/buffered-source.js.map +1 -1
  538. package/dist/server/src/camera/decoder/types.d.ts +11 -1
  539. package/dist/server/src/camera/decoder/types.js +9 -1
  540. package/dist/server/src/camera/decoder/types.js.map +1 -1
  541. package/dist/server/src/camera/sensors/controller.d.ts +1 -0
  542. package/dist/server/src/camera/sensors/controller.js +28 -4
  543. package/dist/server/src/camera/sensors/controller.js.map +1 -1
  544. package/dist/server/src/main.js +11 -2
  545. package/dist/server/src/main.js.map +1 -1
  546. package/dist/server/src/plugins/index.js +5 -4
  547. package/dist/server/src/plugins/index.js.map +1 -1
  548. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +1 -14
  549. package/dist/server/src/plugins/runtime/python/proxy/sensor.py +14 -1
  550. package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +1 -13
  551. package/dist/server/src/rpc/interfaces/detection.d.ts +14 -2
  552. package/dist/server/src/rpc/server.js +1 -0
  553. package/dist/server/src/rpc/server.js.map +1 -1
  554. package/dist/server/src/services/config/index.d.ts +1 -0
  555. package/dist/server/src/services/config/index.js +6 -11
  556. package/dist/server/src/services/config/index.js.map +1 -1
  557. package/dist/server/src/utils/camera.js +8 -5
  558. package/dist/server/src/utils/camera.js.map +1 -1
  559. package/dist/server/src/utils/instance-lock.d.ts +1 -0
  560. package/dist/server/src/utils/instance-lock.js +57 -0
  561. package/dist/server/src/utils/instance-lock.js.map +1 -0
  562. package/dist/server/src/workers/agent.d.ts +2 -0
  563. package/dist/server/src/workers/agent.js +11 -1
  564. package/dist/server/src/workers/agent.js.map +1 -1
  565. package/dist/server/src/workers/manager.js +9 -2
  566. package/dist/server/src/workers/manager.js.map +1 -1
  567. package/dist/server/src/workers/types.d.ts +1 -0
  568. package/npm-shrinkwrap.json +213 -213
  569. package/package.json +30 -30
  570. package/dist/interface/assets/Assistant-bB8RBo-m.js +0 -1
  571. package/dist/interface/assets/Automations-BdZZW2eN.js +0 -2
  572. package/dist/interface/assets/Camera-B4ojNnKb.css +0 -1
  573. package/dist/interface/assets/Camera-Ct7ndOxr.js +0 -2
  574. package/dist/interface/assets/Camview-BjQdTHNh.js +0 -1
  575. package/dist/interface/assets/Config-CBTbYd5v.js +0 -2
  576. package/dist/interface/assets/ConfigTriggerGeofence-Bl2ZacbY.js +0 -1
  577. package/dist/interface/assets/Console-Cfk9MA9m.js +0 -1
  578. package/dist/interface/assets/CuiAssistantConversation-BHK_i56I.js +0 -5
  579. package/dist/interface/assets/CuiAssistantConversation-lkpZg3ML.css +0 -1
  580. package/dist/interface/assets/CuiAutomationRunsDialog-B0ohEHw0.js +0 -1
  581. package/dist/interface/assets/CuiBottomSheet-NgX7VFao.js +0 -1
  582. package/dist/interface/assets/CuiCameraPipCard-C2qaGJlH.js +0 -1
  583. package/dist/interface/assets/CuiCameraRecordings-BTD-CQAg.js +0 -1
  584. package/dist/interface/assets/CuiCameraTable-KPk46Xcl.js +0 -1
  585. package/dist/interface/assets/CuiDataTable-CsqH-RB1.js +0 -1
  586. package/dist/interface/assets/CuiLightControl-ChGYpQAK.js +0 -1
  587. package/dist/interface/assets/CuiMarkdownContent-DSArmS0V.js +0 -1
  588. package/dist/interface/assets/CuiPluginCard-CWImTZ6l.js +0 -2
  589. package/dist/interface/assets/CuiSchema-ytExUVhI.js +0 -1
  590. package/dist/interface/assets/Faces-Cb6XMxDC.js +0 -1
  591. package/dist/interface/assets/FirstSteps-QNYTkEJo.js +0 -1
  592. package/dist/interface/assets/Floorplan-DbqADtN1.js +0 -1
  593. package/dist/interface/assets/Instances-DrMzPD65.js +0 -1
  594. package/dist/interface/assets/Metrics-BUP_-7o7.css +0 -1
  595. package/dist/interface/assets/Metrics-CqhUnVRA.js +0 -12
  596. package/dist/interface/assets/Plugin-BDqNeTCT.css +0 -1
  597. package/dist/interface/assets/Plugin-DyOg_fbg.js +0 -1
  598. package/dist/interface/assets/PluginSearch-BgecD9Ob.js +0 -2
  599. package/dist/interface/assets/PluginSearch-C8xHKikH.js +0 -1
  600. package/dist/interface/assets/Plugins-CuujWEtM.js +0 -1
  601. package/dist/interface/assets/Recordings-9FJqCfdM.css +0 -1
  602. package/dist/interface/assets/Recordings-ths9khZr.js +0 -1
  603. package/dist/interface/assets/SensorEdit-BzoIH7QC.js +0 -1
  604. package/dist/interface/assets/Sensors-CK5uExfU.js +0 -2
  605. package/dist/interface/assets/Settings-DN5hFtw_.js +0 -1
  606. package/dist/interface/assets/SettingsAccount-BCrmon5O.js +0 -1
  607. package/dist/interface/assets/SettingsAccount-CSy1BAIH.js +0 -1
  608. package/dist/interface/assets/SettingsAppearance-h_XPZfQl.js +0 -1
  609. package/dist/interface/assets/SettingsAssistant-BESab92C.css +0 -1
  610. package/dist/interface/assets/SettingsAssistant-D8FmVbUL.js +0 -1
  611. package/dist/interface/assets/SettingsMqtt-DCkLIYpF.js +0 -1
  612. package/dist/interface/assets/SettingsRemote-DXlQKwlT.js +0 -2
  613. package/dist/interface/assets/Terminal-Dl-aAZME.js +0 -4
  614. package/dist/interface/assets/Training-B1oQjAr8.css +0 -1
  615. package/dist/interface/assets/Training-DdZjXgt1.js +0 -1
  616. package/dist/interface/assets/Updates-CkB1lXuo.js +0 -2
  617. package/dist/interface/assets/Workers-7yiebNkl.js +0 -2
  618. package/dist/interface/assets/api-DK2Bav9D.js +0 -4
  619. package/dist/interface/assets/api-DTCqDA-h.css +0 -2
  620. package/dist/interface/assets/assistant-BJ6xKcw_.js +0 -1
  621. package/dist/interface/assets/cloudHandoff-DtlquYGZ.js +0 -1
  622. package/dist/interface/assets/esm-4Hzzm93H.js +0 -1
  623. package/dist/interface/assets/esm-BrFPi5_4.js +0 -1
  624. package/dist/interface/assets/esm-C7pcdfXf.js +0 -1
  625. package/dist/interface/assets/esm-C8bsO829.js +0 -1
  626. package/dist/interface/assets/esm-CXzdnAMk.js +0 -1
  627. package/dist/interface/assets/esm-CZNGZkPu.js +0 -1
  628. package/dist/interface/assets/esm-D0iI7OVb.js +0 -1
  629. package/dist/interface/assets/esm-DKolm6KU.js +0 -1
  630. package/dist/interface/assets/esm-DTywI9gs.js +0 -1
  631. package/dist/interface/assets/esm-DifXcK9i.js +0 -1
  632. package/dist/interface/assets/esm-Dq5o-Xb4.js +0 -1
  633. package/dist/interface/assets/esm-IbQuUZ5l.js +0 -1
  634. package/dist/interface/assets/esm-Xre_AP5i.js +0 -1
  635. package/dist/interface/assets/esm-zYnXHhpH.js +0 -1
  636. package/dist/interface/assets/main-D74mRIxc.js +0 -3
  637. package/dist/interface/assets/native-CAujTO6L.js +0 -1
  638. package/dist/interface/assets/native-sQ88qazf.js +0 -1
  639. package/dist/interface/assets/plugin-D7K50k_y.js +0 -1
  640. package/dist/interface/assets/sensorIcons-DQVgryYP.js +0 -1
  641. package/dist/interface/assets/types-5rE8Tz0_.js +0 -1
  642. package/dist/interface/assets/ungrouped-D56FGIrg.js +0 -1
  643. package/dist/interface/assets/useBackupRestore-Crfd592q.js +0 -1
  644. package/dist/interface/assets/useKeyboardInset-DXVi1dLG.js +0 -1
  645. package/dist/interface/assets/useUserOptions-BTRBUuE2.js +0 -1
  646. package/dist/interface/assets/vendor-gridstack-anPyIu9V.js +0 -3
  647. package/dist/interface/assets/web-3M-ddn4G.js +0 -1
  648. package/dist/interface/assets/web-BY80VGyU.js +0 -1
  649. package/dist/interface/assets/web-B_tUYyM0.js +0 -1
  650. package/dist/interface/assets/web-BjKL51lK-Bb5NYhpJ.js +0 -1
  651. package/dist/interface/assets/web-Bv-4PJGI.js +0 -1
  652. package/dist/interface/assets/web-C3Pk8qeB.js +0 -1
  653. package/dist/interface/assets/web-CLcvGPH6.js +0 -1
  654. package/dist/interface/assets/web-DO8gTOVJ.js +0 -1
  655. package/dist/interface/assets/web-DR5q_DmI.js +0 -1
  656. package/dist/interface/assets/web-DRHbG4Te.js +0 -1
  657. package/dist/interface/assets/web-DaQ8d8yk.js +0 -1
  658. package/dist/interface/assets/web-EVRW5whF.js +0 -1
  659. package/dist/interface/assets/web-S6Dk3UWN.js +0 -1
  660. package/dist/interface/assets/web-pWIp0wf0.js +0 -1
  661. package/dist/interface/assets/workbox-window.prod.es5-Dz5rcO1z.js +0 -1
  662. package/dist/interface/ha/Faces-C_svyTrr.js +0 -1282
  663. package/dist/interface/ha/SettingsAssistant-C2R4ZetE.js +0 -1857
  664. package/dist/interface/ha/Training-BEzPiXZg.js +0 -1512
@@ -1 +0,0 @@
1
- .stage[data-v-0e304b72]{height:clamp(240px,52vh,620px);container-type:size}.frame[data-v-0e304b72]{width:min(100cqw, calc(100cqh * var(--ar-w) / var(--ar-h)));height:min(100cqh, calc(100cqw * var(--ar-h) / var(--ar-w)));transition:none!important}.zoom-constraining[data-v-0e304b72]>*{transition:transform .15s ease-out!important}.zoom-minimap[data-v-0e304b72]{z-index:5;pointer-events:none;background:#00000080;border:1px solid #ffffff4d;border-radius:4px;width:80px;position:absolute;bottom:10px;right:10px;overflow:hidden}.zoom-minimap-viewport[data-v-0e304b72]{background:#ffffff1f;border:1.5px solid #ffffffb3;border-radius:2px;position:absolute}.loupe[data-v-0e304b72]{z-index:6;pointer-events:none;background-color:#000;background-repeat:no-repeat;border:2px solid #fffc;border-radius:50%;width:110px;height:110px;position:absolute;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 4px 16px #00000080}.loupe-content[data-v-0e304b72]{transform-origin:0 0;position:absolute;top:0;left:0}.loupe-crosshair[data-v-0e304b72]{position:absolute;inset:0}kbd[data-v-0e304b72]{border:1px solid var(--border-color);border-radius:5px;padding:1px 6px;font-family:monospace;font-size:12px}.loupe-crosshair[data-v-0e304b72]:before,.loupe-crosshair[data-v-0e304b72]:after{content:"";background:#ffffffd9;position:absolute}.loupe-crosshair[data-v-0e304b72]:before{width:1.5px;height:18px;top:calc(50% - 9px);left:50%;transform:translate(-50%)}.loupe-crosshair[data-v-0e304b72]:after{width:18px;height:1.5px;top:50%;left:calc(50% - 9px);transform:translateY(-50%)}.bbox-label[data-v-0e304b72]{color:#fff;white-space:nowrap;border-radius:6px 6px 6px 0;align-items:center;gap:4px;max-width:100%;padding:3px 7px;font-size:12px;font-weight:700;display:flex;position:absolute;transform:translateY(-100%)}.bbox-label.label-bottom[data-v-0e304b72]{border-radius:0 6px 6px;transform:translateY(0)}.bbox-label.label-right[data-v-0e304b72]{border-radius:6px 0 0 6px;flex-direction:row-reverse}.bbox-label.label-inside[data-v-0e304b72]{border-radius:6px;transform:translateY(0)}.bbox-label-icon[data-v-0e304b72]{flex-shrink:0;width:14px;height:14px}.bbox-label-text[data-v-0e304b72]{text-overflow:ellipsis;min-width:0;overflow:hidden}.bbox-label-confidence[data-v-0e304b72]{opacity:.9}.cui-training-card[data-v-84e470e7] :is(.p-tag-success,.p-tag-info,.p-tag-danger){background-color:var(--card-background)}.cui-training-card[data-v-84e470e7] .p-tag-success{background-image:linear-gradient(var(--p-tag-success-background), var(--p-tag-success-background))}.cui-training-card[data-v-84e470e7] .p-tag-info{background-image:linear-gradient(var(--p-tag-info-background), var(--p-tag-info-background))}.cui-training-card[data-v-84e470e7] .p-tag-danger{background-image:linear-gradient(var(--p-tag-danger-background), var(--p-tag-danger-background))}
@@ -1 +0,0 @@
1
- import{Bt as e,G as t,Kt as n,Vr as r,X as i,Z as a,ai as o,li as ee,ni as s,si as c,z as te}from"./vendor-cameraui-QXD8jkcj.js";import{Dr as l,H as ne,I as re,In as u,It as d,L as f,Mn as p,Nn as m,Pn as ie,R as ae,Rr as h,U as oe,Y as g,bn as se,ct as _,f as v,h as y,hn as ce,jn as le,kr as ue,l as de,nr as b,nt as fe,tn as pe,vr as me,xn as he,z as x}from"./api-DK2Bav9D.js";import{$n as S,Cn as ge,Cr as C,Hn as _e,In as w,Jn as T,K as E,R as ve,Rn as D,Sr as O,Xn as ye,Z as k,br as be,cn as A,dn as j,dr as M,er as xe,fr as N,gn as P,hn as F,hr as Se,jn as Ce,ln as I,lr as we,nn as L,nr as Te,or as Ee,rn as R,sn as z,sr as De,un as B,vn as V,yr as H}from"./vendor-DGke_6M4.js";import{F as Oe,I as ke,R as Ae,a as je,f as U,z as Me}from"./vendor-primevue-CCUqY55W.js";import{t as Ne}from"./close-BbEPZQqa.js";import{t as Pe}from"./chevron-down-ZYTrU871.js";import{t as Fe}from"./help-circle-outline-G43EJuch.js";import{t as Ie}from"./trash-can-outline-Bk5eENNM.js";import{t as Le}from"./search-BXbDWhLk.js";import{n as Re,t as ze}from"./cloud-check-BTGbrAQ_.js";import{t as Be}from"./back-filled-BPBVnQjx.js";import{t as Ve}from"./settings-Cw63SIJl.js";var He={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ue(e,t){return w(),j(`svg`,He,[...t[0]||=[A(`path`,{fill:`currentColor`,d:`M13 19c0 .34.04.67.09 1H6.5c-1.5 0-2.81-.5-3.89-1.57C1.54 17.38 1 16.09 1 14.58q0-1.95 1.17-3.48C3.34 9.57 4 9.43 5.25 9.15c.42-1.53 1.25-2.77 2.5-3.72S10.42 4 12 4c1.95 0 3.6.68 4.96 2.04S19 9.05 19 11c1.15.13 2.1.63 2.86 1.5c.51.57.84 1.21 1 1.92A5.9 5.9 0 0 0 19 13h-2v-2c0-1.38-.5-2.56-1.46-3.54C14.56 6.5 13.38 6 12 6s-2.56.5-3.54 1.46C7.5 8.44 7 9.62 7 11h-.5c-.97 0-1.79.34-2.47 1.03c-.69.68-1.03 1.5-1.03 2.47s.34 1.79 1.03 2.5c.68.66 1.5 1 2.47 1h6.59c-.05.33-.09.66-.09 1m4.75.43l-1.59-1.59L15 19l2.75 3l4.75-4.75l-1.16-1.41z`},null,-1)]])}var We=De({name:`mdi-cloud-check-outline`,render:Ue}),W={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ge(e,t){return w(),j(`svg`,W,[...t[0]||=[A(`path`,{fill:`currentColor`,d:`M6.5 20q-2.28 0-3.89-1.57Q1 16.85 1 14.58q0-1.95 1.17-3.48q1.18-1.53 3.08-1.95q.63-2.3 2.5-3.72Q9.63 4 12 4q2.93 0 4.96 2.04Q19 8.07 19 11q1.73.2 2.86 1.5q1.14 1.28 1.14 3q0 1.88-1.31 3.19T18.5 20H13q-.82 0-1.41-.59Q11 18.83 11 18v-5.15L9.4 14.4L8 13l4-4l4 4l-1.4 1.4l-1.6-1.55V18h5.5q1.05 0 1.77-.73q.73-.72.73-1.77t-.73-1.77Q19.55 13 18.5 13H17v-2q0-2.07-1.46-3.54Q14.08 6 12 6Q9.93 6 8.46 7.46Q7 8.93 7 11h-.5q-1.45 0-2.47 1.03Q3 13.05 3 14.5T4.03 17q1.02 1 2.47 1H9v2m3-7`},null,-1)]])}var Ke=De({name:`mdi-cloud-upload-outline`,render:Ge}),G=200;async function K(e={},{signal:t}={}){return(await h.get(`/training/candidates`,{params:e,signal:t})).data}async function q(e,t){return(await h.patch(`/training/candidates/${e}`,t)).data}async function J(e){await h.delete(`/training/candidates/${e}`)}async function qe(e){let t=0;for(let n=0;n<e.length;n+=G){let r=await h.post(`/training/candidates/submit`,{ids:e.slice(n,n+G)});t+=r.data.queued}return{queued:t}}async function Je({cursor:e,signal:t}={}){return(await h.get(`/training/submissions`,{params:e?{cursor:e}:void 0,signal:t})).data}async function Ye(e){await h.delete(`/training/submissions/${e}`)}async function Xe({signal:e}={}){return(await h.get(`/training/settings`,{signal:e})).data}async function Ze(e){return(await h.patch(`/training/settings`,e)).data}var Qe=class{queryClient=k();getCandidatesQuery(){return l({queryKey:[`training-candidates`],queryFn:({signal:e})=>K({},{signal:e}),staleTime:5e3})}getSettingsQuery(){return l({queryKey:[`training-settings`],queryFn:({signal:e})=>Xe({signal:e}),staleTime:3e4})}patchCandidateMutation(){return E({mutationFn:({id:e,patch:t})=>q(e,t),onSuccess:async()=>{await this.queryClient.refetchQueries({queryKey:[`training-candidates`],exact:!0})}})}deleteCandidateMutation(){return E({mutationFn:J,onSuccess:async()=>{await this.queryClient.refetchQueries({queryKey:[`training-candidates`],exact:!0})}})}deleteSubmissionMutation(){return E({mutationFn:Ye})}submitCandidatesMutation(){return E({mutationFn:qe,onSuccess:async()=>{await this.queryClient.refetchQueries({queryKey:[`training-candidates`],exact:!0})}})}patchSettingsMutation(){return E({mutationFn:Ze,onSuccess:async()=>{await this.queryClient.refetchQueries({queryKey:[`training-settings`],exact:!0})}})}},$e=[`person`,`vehicle`,`animal`,`package`,`face`,`license_plate`],et={desktop:{maxWidth:`1280px`,width:`85vw`}},Y=we({progress:null}),X=null,Z=null,Q=new Set,tt=new Set;function nt(e,t){for(let n of e)try{n(t)}catch{}}async function rt(){if(Z?.ready.value)try{let e=await Z.request(`get-submit-progress`);e.active?Y.progress=e:Y.progress?.active&&(Y.progress=null)}catch{}}function it(){rt(),nt(Q,{}),nt(tt,void 0)}function at(){return Z||(X=Te(!0),X.run(()=>{let e=me(`/training`);Z=e,e.on(`candidates-changed`,e=>nt(Q,e??{})),e.on(`submit-progress`,e=>{Y.progress=e,nt(Q,{})}),e.onReady(it)}),Z)}function ot(){function e(){at()}function t(e){return Q.add(e),()=>Q.delete(e)}function n(e){return tt.add(e),()=>tt.delete(e)}function r(){Y.progress=null}return{submitProgress:z(()=>Y.progress),connect:e,onCandidatesChanged:t,onResync:n,dismissProgress:r}}var st={class:`flex items-center justify-between gap-2 text-sm`},ct={class:`min-w-0 flex items-center gap-2`},lt={class:`font-medium truncate`},ut={class:`text-muted shrink-0`},dt={class:`text-muted tabular-nums shrink-0`},ft=[`data-stage-zoom`],pt=[`src`],mt=[`x`,`y`,`width`,`height`,`stroke`,`fill`,`fill-opacity`,`stroke-width`,`onPointerdown`],ht=[`onPointerdown`],gt=[`cx`,`cy`],_t=[`cx`,`cy`,`fill`],vt=[`x`,`y`,`width`,`height`,`stroke`,`fill`],yt=[`data-box-label`,`onPointerdown`],bt={class:`bbox-label-text`},xt={key:0,class:`bbox-label-confidence`},St={key:1,class:`bbox-label-confidence`},Ct=[`src`],wt={class:`absolute inset-0 w-full h-full`},Tt=[`x`,`y`,`width`,`height`,`stroke`,`fill`],Et=[`x`,`y`,`width`,`height`,`stroke`,`fill`],Dt={key:2,class:`absolute left-2 top-1/2 -translate-y-1/2 z-[5] dark-mode`},Ot={key:3,class:`absolute right-2 top-1/2 -translate-y-1/2 z-[5] dark-mode`},kt={key:0,class:`flex items-center justify-center gap-2`},At={class:`text-muted text-sm`,for:`plate-text`},jt={class:`flex flex-col items-center gap-0.5`},Mt={class:`flex items-center justify-center gap-1.5`},Nt={class:`text-muted text-sm text-center`},Pt={class:`text-muted text-sm text-center`},Ft={key:1,class:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 justify-center mx-auto text-sm text-muted`},It=.01,Lt=.006,Rt=26,zt=60,Bt=400,Vt=110,Ht=2,Ut=80,Wt=50,Gt=.003,Kt=p(V({__name:`TrainingBoxEditor`,props:{candidates:{},startId:{},cameraName:{type:Function},imageUrl:{type:Function},onSave:{type:Function},onDelete:{type:Function}},setup(t,{expose:n}){let i=t,a=ge(`dialogRef`),{t:c,te:l}=r(),ne=ue(),re=ot(),u=[`nw`,`ne`,`sw`,`se`],d=new Map,f=we(new Set),p=we(new Set),m=N(new Map),ie=0,ae=Math.max(0,i.candidates.findIndex(e=>e.id===i.startId)),h=y(),oe=T(`rootRef`),g=T(`labelMenuRef`),_=T(`stageRef`),v=T(`frameRef`),le=T(`svgRef`),b=M(i.candidates[ae]?.boxes.map(e=>({...e}))??[]),me=M({w:16,h:9}),x=M(null),E=M(null),k=M(-1),xe=M(!1),Te=M(!1),De=ee(`(any-pointer: fine)`),V=M(null),Oe=null,ke=M(-1),Ae=M(`person`),U=M(ae),{zoom:Me,pan:Ne,constraining:Pe,minimapStyle:Le,minimapBoxStyle:Re,onZoomPan:ze,onDoubleClick:Be,onTouchStart:Ve,onTouchEnd:He,reset:Ue}=fe(_,v),{height:We}=s(v),W=z(()=>i.candidates[U.value]),Ge=z(()=>i.candidates.slice(0,U.value+1).filter(e=>!f.has(e.id)).length),Ke=z(()=>i.candidates.filter(e=>!f.has(e.id)).length),G=z(()=>i.candidates.slice(0,U.value).some(e=>!f.has(e.id))),K=z(()=>i.candidates.slice(U.value+1).some(e=>!f.has(e.id))),q=z(()=>p.has(W.value.id)?`verified`:W.value.status),J=z(()=>b.value.map((e,t)=>({box:e,i:t})).sort((e,t)=>et(e)-et(t))),qe=z(()=>new Map(J.value.map(({i:e},t)=>[e,t+1]))),Je=z(()=>b.value[k.value]),Ye=z(()=>{let e=b.value[k.value];return e?.label===`license_plate`?e:null}),Xe=z(()=>[...$e.map(e=>({key:e,label:Y(e),icon:pe(e).icon,iconProps:{style:{color:pe(e).color}},active:b.value[ke.value]?.label===e,onClick:()=>on(e)})),{key:`remove`,label:c(`components.training_editor.remove_box`),icon:Ie,iconProps:{class:`text-red-500`},labelProps:{class:`text-red-500`},onClick:()=>cn(ke.value)}]),Ze=z(()=>e=>{let t=We.value||360;return e.y*t>=Rt?`above`:t-(e.y+e.height)*t>=Rt?`below`:`inside`}),Qe=z(()=>e=>e.x>.7);function et({box:e,i:t}){return t===k.value?2**53-1:m.get(Se(e))??t}function Y(e){let t=`components.training_editor.labels.${e}`;return l(t)?c(t):e}function X(e){return pe(e)}function Z(e){return`${e*100}%`}function Q(e,t){return Z(t===`nw`||t===`sw`?e.x:e.x+e.width)}function tt(e,t){return Z(t===`nw`||t===`ne`?e.y:e.y+e.height)}function nt(e){let t={backgroundColor:X(e.label).color};Qe.value(e)?t.right=Z(1-e.x-e.width):t.left=Z(e.x);let n=Ze.value(e);return t.top=n===`above`?Z(e.y):n===`below`?Z(e.y+e.height):`calc(${Z(e.y)} + 2px)`,t}function rt(e){let t=e.target;t.naturalWidth&&t.naturalHeight&&(me.value={w:t.naturalWidth,h:t.naturalHeight})}function it(e){let t=le.value?.getBoundingClientRect();return!t||t.width===0||t.height===0?{x:0,y:0}:{x:Math.min(1,Math.max(0,(e.clientX-t.left)/t.width)),y:Math.min(1,Math.max(0,(e.clientY-t.top)/t.height))}}function at(e,t){x.value={...t,moved:!1},le.value?.setPointerCapture(e.pointerId)}function Kt(e){if(g.value?.hide(),Me.value>1||!e.isPrimary)return;let{x:t,y:n}=it(e);at(e,{mode:`draw`,index:-1,startX:t,startY:n,origin:{label:Ae.value,confidence:1,x:t,y:n,width:0,height:0}})}function qt(e,t){if(!t.isPrimary)return;let{x:n,y:r}=it(t);k.value=e,at(t,{mode:`move`,index:e,startX:n,startY:r,origin:{...b.value[e]}})}function Jt(e,t,n){if(!n.isPrimary)return;g.value?.hide();let{x:r,y:i}=it(n);k.value=e,at(n,{mode:`resize`,index:e,corner:t,startX:r,startY:i,origin:{...b.value[e]}})}function Yt(e){e.touches.length>1&&x.value&&(x.value=null,E.value=null,V.value=null),Ve(e)}function Xt(e){let t=x.value;if(!t)return;let{x:n,y:r}=it(e);if(Math.hypot(n-t.startX,r-t.startY)>Lt&&(t.moved=!0),e.pointerType===`touch`&&t.moved&&(Qt(t)?$t(e):V.value=null),t.mode===`draw`){if(t.moved){let e=rn(t.startX,t.startY,n,r);E.value=e.width>=It&&e.height>=It?{label:Ae.value,confidence:1,...e}:null}return}if(t.mode===`move`){if(!t.moved)return;let e=b.value[t.index];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)));return}let i=t.corner===`nw`||t.corner===`sw`?t.origin.x+t.origin.width:t.origin.x,a=t.corner===`nw`||t.corner===`ne`?t.origin.y+t.origin.height:t.origin.y;Object.assign(b.value[t.index],rn(i,a,n,r))}function Zt(e){let t=x.value;if(x.value=null,V.value=null,t){if(t.mode===`draw`){E.value&&E.value.width>=It&&E.value.height>=It?(b.value.push({...E.value}),k.value=b.value.length-1):t.moved||(k.value=-1),E.value=null;return}t.mode===`move`&&!t.moved&&an(t.index,e)}}function Qt(e){let t=le.value?.getBoundingClientRect();if(!t||t.width===0)return!1;let n=e.mode===`draw`?E.value:b.value[e.index];return!n||Math.max(n.width*t.width,n.height*t.height)<=Wt}function $t(e){let t=v.value?.getBoundingClientRect(),n=_.value?.getBoundingClientRect();if(!t||!n||t.width===0||t.height===0){V.value=null;return}let r=Vt/2,i=Math.min(Math.max(e.clientX-n.left,59),n.width-r-4),a=e.clientY-n.top-Ut;a-r<4&&(a=e.clientY-n.top+Ut),V.value={x:i,y:a,frameW:t.width,frameH:t.height,tx:r-(e.clientX-t.left)*Ht,ty:r-(e.clientY-t.top)*Ht}}function en(e){let t=e instanceof HTMLElement||e instanceof SVGElement?e:null;if(!t||_.value?.contains(t)||t.closest(`.p-dialog-header`)||t.closest(`button`))return!1;let n=oe.value?.closest(`.p-dialog-content`)?.lastElementChild;return!(n&&n!==oe.value&&n.contains(t))}function tn(e){if(Oe=null,e.touches.length!==1||!en(e.target))return;let t=e.touches[0];Oe={x:t.clientX,y:t.clientY,at:Date.now()}}function nn(e){let t=Oe;if(Oe=null,!t||e.changedTouches.length!==1)return;let n=e.changedTouches[0],r=n.clientX-t.x,i=n.clientY-t.y;Date.now()-t.at<=Bt&&Math.abs(r)>=zt&&Math.abs(r)>2*Math.abs(i)&&$(r<0?1:-1)}function rn(e,t,n,r){return{x:Math.min(e,n),y:Math.min(t,r),width:Math.abs(n-e),height:Math.abs(r-t)}}function an(e,t){ke.value=e;let n=v.value?.querySelector(`[data-box-label="${e}"]`),r={currentTarget:v.value??t.currentTarget};g.value?.toggleMenu(r,n??void 0)}function on(e){let t=b.value[ke.value];t&&(t.label=e,t.confidence=1,Ae.value=e)}function sn(e){let t=b.value[k.value];t&&(t.text=(e??``).toUpperCase().replace(/[^A-Z0-9ÄÖÜ\- ]/g,``)||void 0)}function cn(e){e<0||e>=b.value.length||(b.value.splice(e,1),k.value=-1)}function ln(e,t=!0){e<0||e>=i.candidates.length||(t&&d.set(W.value.id,b.value.map(e=>({...e}))),U.value=e,b.value=(d.get(W.value.id)??W.value.boxes).map(e=>({...e})),E.value=null,x.value=null,V.value=null,k.value=-1,ke.value=-1,m.clear(),g.value?.hide(),Ue())}async function un(e){return await i.onSave(W.value.id,b.value.map(e=>({...e})),e),d.set(W.value.id,b.value.map(e=>({...e}))),e===`verified`&&p.add(W.value.id),$(1,!1)?null:void 0}function $(e,t=!0){let n=U.value+e;for(;n>=0&&n<i.candidates.length&&f.has(i.candidates[n].id);)n+=e;return n<0||n>=i.candidates.length?!1:(ln(n,t),!0)}async function dn(){let e=W.value.id;f.add(e);try{await i.onDelete(e)}catch(t){throw f.delete(e),t}return d.delete(e),$(1,!1)||$(-1,!1)?null:void 0}function fn(e){let t=!1;for(let n of e)!f.has(n)&&i.candidates.some(e=>e.id===n)&&(f.add(n),d.delete(n),n===W.value.id&&(t=!0));t&&(ne.add({severity:`warn`,detail:c(`components.training_editor.removed_meanwhile`),life:4e3}),!$(1,!1)&&!$(-1,!1)&&a.value.close({status:`cancel`}))}function pn(){for(let e of[1,-1]){let t=U.value+e;for(;t>=0&&t<i.candidates.length&&f.has(i.candidates[t].id);)t+=e;let n=i.candidates[t];n&&(new Image().src=i.imageUrl(n.id))}}function mn(e){b.value.length&&(k.value=(k.value+e+b.value.length)%b.value.length)}function hn(e){let t=b.value[k.value];if(!t)return;let n=$e,r=n[(n.indexOf(t.label)+e+n.length)%n.length];t.label=r,t.confidence=1,Ae.value=r}function gn(e,t,n){let r=b.value[k.value];r&&(n?(r.width=Math.min(1-r.x,Math.max(It,r.width+e)),r.height=Math.min(1-r.y,Math.max(It,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))))}async function _n(){if(!Te.value){Te.value=!0;try{let e=await un(`verified`);e!==null&&a.value.close({status:`confirm`,data:e})}finally{Te.value=!1}}}ye(U,pn,{immediate:!0}),ye(Je,(e,t)=>{t&&t!==e&&b.value.includes(t)&&m.set(Se(t),--ie)}),o(window,`keydown`,e=>{if(e.target?.closest?.(`input, textarea`))return;let t={ArrowLeft:[-.003,0],ArrowRight:[Gt,0],ArrowUp:[0,-.003],ArrowDown:[0,Gt]};if(t[e.key]){if(k.value>=0){e.preventDefault();let[n,r]=t[e.key];gn(n,r,e.shiftKey)}else!e.repeat&&e.key===`ArrowLeft`?$(-1):!e.repeat&&e.key===`ArrowRight`&&$(1);return}e.repeat||(e.key===`Tab`?(e.preventDefault(),mn(e.shiftKey?-1:1)):e.key===`Escape`?(k.value=-1,g.value?.hide()):(e.key===`Delete`||e.key===`Backspace`)&&k.value>=0?cn(k.value):e.key===`s`||e.key===`S`?hn(e.shiftKey?-1:1):e.key===` `&&!g.value?.isOpen&&(e.preventDefault(),_n()))}),o(()=>oe.value?.closest(`.p-dialog-content`)??void 0,`touchstart`,tn,{passive:!0}),o(()=>oe.value?.closest(`.p-dialog-content`)??void 0,`touchend`,nn,{passive:!0}),re.connect();let vn=re.onCandidatesChanged(e=>{e.removed?.length&&fn(e.removed)});return Ce(()=>{vn()}),n({isLoading:Te,onConfirm:()=>un(`verified`),onCancel:()=>dn()}),(n,r)=>{let i=je,a=se,o=e,ee=he,s=te,c=Fe;return w(),j(`div`,{ref_key:`rootRef`,ref:oe,class:`flex flex-col gap-3 h-full min-h-0`},[A(`div`,st,[A(`div`,ct,[P(i,{severity:H(q)===`verified`?`success`:`info`,value:n.$t(`views.training.status_${H(q)}`),class:`shrink-0`},null,8,[`severity`,`value`]),A(`span`,lt,C(t.cameraName(H(W).cameraId)),1),A(`span`,ut,C(H(de)(H(W).createdAt)),1)]),A(`span`,dt,C(H(Ge))+` / `+C(H(Ke)),1)]),A(`div`,{ref_key:`stageRef`,ref:_,class:`stage relative w-full bg-black rounded-lg shrink-0 overflow-hidden select-none`},[P(H(ve),{pan:H(Ne),"onUpdate:pan":r[6]||=e=>Ee(Ne)?Ne.value=e:null,zoom:H(Me),"onUpdate:zoom":r[7]||=e=>Ee(Me)?Me.value=e:null,"pan-enabled":H(Me)>1&&!H(x),"enable-control-button":!1,"dbl-click-enabled":!1,"min-zoom":1,"max-zoom":H(5),selector:`[data-stage-zoom='${H(h)}']`,"zoom-origin":`pointer`,class:be([`absolute inset-0 flex items-center justify-center`,{"zoom-constraining":H(Pe)}]),onPanned:H(ze),onZoom:H(ze),onDblclick:H(Be),onTouchstart:Yt,onTouchend:H(He)},{default:S(()=>[A(`div`,{ref_key:`frameRef`,ref:v,"data-stage-zoom":H(h),class:`frame relative`,style:O({"--ar-w":H(me).w,"--ar-h":H(me).h})},[A(`img`,{src:t.imageUrl(H(W).id),class:`absolute inset-0 w-full h-full`,draggable:`false`,onLoad:rt},null,40,pt),(w(),j(`svg`,{ref_key:`svgRef`,ref:le,class:be([`absolute inset-0 w-full h-full touch-none`,H(Me)>1?`cursor-grab`:`cursor-crosshair`]),onPointerdown:Kt,onPointermove:Xt,onPointerup:Zt,onPointercancel:Zt},[(w(!0),j(R,null,D(H(J),({box:e,i:t})=>(w(),j(`g`,{key:t},[A(`rect`,{x:Z(e.x),y:Z(e.y),width:Z(e.width),height:Z(e.height),stroke:X(e.label).color,fill:X(e.label).color,"fill-opacity":t===H(k)?.22:.12,"stroke-width":t===H(k)?3.5:2,"vector-effect":`non-scaling-stroke`,class:`cursor-move`,onPointerdown:L(e=>qt(t,e),[`stop`]),onTouchstart:r[0]||=L(()=>{},[`stop`]),onMousedown:r[1]||=L(()=>{},[`stop`])},null,40,mt),(w(),j(R,null,D(u,n=>A(`g`,{key:n,class:`cursor-nwse-resize`,onPointerdown:L(e=>Jt(t,n,e),[`stop`]),onTouchstart:r[2]||=L(()=>{},[`stop`]),onMousedown:r[3]||=L(()=>{},[`stop`])},[A(`circle`,{cx:Q(e,n),cy:tt(e,n),r:`14`,fill:`transparent`},null,8,gt),A(`circle`,{cx:Q(e,n),cy:tt(e,n),r:`4.5`,fill:X(e.label).color},null,8,_t)],40,ht)),64))]))),128)),H(E)?(w(),j(`rect`,{key:0,x:Z(H(E).x),y:Z(H(E).y),width:Z(H(E).width),height:Z(H(E).height),stroke:X(H(E).label).color,fill:X(H(E).label).color,"fill-opacity":`0.1`,"stroke-dasharray":`6 4`,"stroke-width":`2`,"vector-effect":`non-scaling-stroke`},null,8,vt)):B(``,!0)],34)),(w(!0),j(R,null,D(H(b),(e,t)=>(w(),j(`div`,{key:`label-${t}`,class:be([`bbox-label cursor-move`,{"label-bottom":H(Ze)(e)===`below`,"label-inside":H(Ze)(e)===`inside`,"label-right":H(Qe)(e)}]),"data-box-label":t,onPointerdown:L(e=>qt(t,e),[`stop`]),onTouchstart:r[4]||=L(()=>{},[`stop`]),onMousedown:r[5]||=L(()=>{},[`stop`]),style:O([nt(e),{zIndex:H(qe).get(t)}])},[(w(),I(_e(X(e.label).icon),{class:`bbox-label-icon`})),A(`span`,bt,C(Y(e.label)),1),e.text?(w(),j(`span`,xt,C(e.text),1)):e.confidence<1?(w(),j(`span`,St,C(Math.round(e.confidence*100))+`%`,1)):B(``,!0)],46,yt))),128))],12,ft)]),_:1},8,[`pan`,`zoom`,`pan-enabled`,`max-zoom`,`selector`,`class`,`onPanned`,`onZoom`,`onDblclick`,`onTouchend`]),H(Le)?(w(),j(`div`,{key:0,class:`zoom-minimap`,style:O(H(Re)??void 0)},[A(`div`,{class:`zoom-minimap-viewport`,style:O(H(Le))},null,4)],4)):B(``,!0),H(V)?(w(),j(`div`,{key:1,class:`loupe`,style:O({left:`${H(V).x}px`,top:`${H(V).y}px`})},[A(`div`,{class:`loupe-content`,style:O({width:`${H(V).frameW}px`,height:`${H(V).frameH}px`,transform:`translate(${H(V).tx}px, ${H(V).ty}px) scale(${Ht})`})},[A(`img`,{src:t.imageUrl(H(W).id),class:`absolute inset-0 w-full h-full`,draggable:`false`},null,8,Ct),(w(),j(`svg`,wt,[(w(!0),j(R,null,D(H(b),(e,t)=>(w(),j(`rect`,{key:t,x:Z(e.x),y:Z(e.y),width:Z(e.width),height:Z(e.height),stroke:X(e.label).color,fill:X(e.label).color,"fill-opacity":`0.1`,"stroke-width":`1.5`},null,8,Tt))),128)),H(E)?(w(),j(`rect`,{key:0,x:Z(H(E).x),y:Z(H(E).y),width:Z(H(E).width),height:Z(H(E).height),stroke:X(H(E).label).color,fill:X(H(E).label).color,"fill-opacity":`0.1`,"stroke-dasharray":`4 3`,"stroke-width":`1.5`},null,8,Et)):B(``,!0)]))],4),r[11]||=A(`div`,{class:`loupe-crosshair`},null,-1)],4)):B(``,!0),H(G)?(w(),j(`div`,Dt,[P(o,{severity:`secondary`,rounded:``,class:`cui-icon-md opacity-60 hover:opacity-100`,onClick:r[8]||=L(e=>$(-1),[`stop`])},{icon:S(()=>[P(a,{width:`100%`,height:`100%`})]),_:1})])):B(``,!0),H(K)?(w(),j(`div`,Ot,[P(o,{severity:`secondary`,rounded:``,class:`cui-icon-md opacity-60 hover:opacity-100`,onClick:r[9]||=L(e=>$(1),[`stop`])},{icon:S(()=>[P(ee,{width:`100%`,height:`100%`})]),_:1})])):B(``,!0)],512),H(Ye)?(w(),j(`div`,kt,[A(`label`,At,C(n.$t(`components.training_editor.plate_text`)),1),P(s,{id:`plate-text`,"model-value":H(Ye).text??``,size:`small`,maxlength:`12`,class:`w-40 uppercase`,placeholder:`ABC 1234`,"onUpdate:modelValue":sn},null,8,[`model-value`])])):B(``,!0),A(`div`,jt,[A(`div`,Mt,[A(`span`,Nt,C(n.$t(`components.training_editor.hint`)),1),H(De)?(w(),I(o,{key:0,severity:`secondary`,text:``,rounded:``,class:`cui-icon-sm shrink-0`,onClick:r[10]||=e=>xe.value=!H(xe)},{icon:S(()=>[P(c,{class:`w-4 h-4`})]),_:1})):B(``,!0)]),A(`span`,Pt,C(n.$t(`components.training_editor.hint_wrong`)),1)]),H(De)&&H(xe)?(w(),j(`div`,Ft,[r[12]||=A(`span`,null,[A(`kbd`,null,`Tab`)],-1),A(`span`,null,C(n.$t(`components.training_editor.sc_select`)),1),r[13]||=F(),r[14]||=A(`span`,null,[A(`kbd`,null,`←↑→↓`)],-1),A(`span`,null,C(n.$t(`components.training_editor.sc_move`)),1),r[15]||=F(),r[16]||=A(`span`,null,[A(`kbd`,null,`Shift`),F(` + `),A(`kbd`,null,`←↑→↓`)],-1),A(`span`,null,C(n.$t(`components.training_editor.sc_resize`)),1),r[17]||=F(),r[18]||=A(`span`,null,[A(`kbd`,null,`S`)],-1),A(`span`,null,C(n.$t(`components.training_editor.sc_label`)),1),r[19]||=F(),r[20]||=A(`span`,null,[A(`kbd`,null,`Del`)],-1),A(`span`,null,C(n.$t(`components.training_editor.sc_delete`)),1),r[21]||=F(),r[22]||=A(`span`,null,[A(`kbd`,null,`Esc`)],-1),A(`span`,null,C(n.$t(`components.training_editor.sc_deselect`)),1),r[23]||=F(),r[24]||=A(`span`,null,[A(`kbd`,null,`Space`)],-1),A(`span`,null,C(n.$t(`components.training_editor.sc_verify`)),1),r[25]||=F(),r[26]||=A(`span`,null,[A(`kbd`,null,`←`),F(` / `),A(`kbd`,null,`→`)],-1),A(`span`,null,C(n.$t(`components.training_editor.sc_nav`)),1)])):B(``,!0),P(ce,{ref_key:`labelMenuRef`,ref:g,items:H(Xe),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])],512)}}}),[[`__scopeId`,`data-v-0e304b72`]]),qt={class:`flex flex-col gap-3`},Jt={key:0,class:`flex flex-col gap-2`},Yt={key:1,class:`flex flex-col items-center gap-3 py-10`},Xt={class:`text-muted text-sm text-center max-w-sm`},Zt={key:2,class:`flex flex-col items-center gap-3 py-10`},Qt={class:`text-muted text-sm text-center max-w-sm`},$t={class:`text-muted text-sm`},en={class:`w-24 aspect-video rounded-lg overflow-hidden bg-black/5 dark:bg-black/30 shrink-0`},tn={class:`flex-1 min-w-0`},nn={class:`flex flex-wrap items-center gap-1`},rn={class:`text-xs text-muted mt-1`},an={key:0,class:`flex justify-center py-2`},on=V({__name:`TrainingSubmissions`,setup(t){let i=new Qe,{t:o,te:ee}=r(),s=ue(),te=ot(),l=i.deleteSubmissionMutation(),ne=M(``),u=M([]),d=M(0),f=M(),p=M(!0),m=M(!1),ie=M(!1),ae=T(`loadMoreRef`);function h(e){let t={};for(let n of e.labels)t[n.label]=(t[n.label]??0)+1;return t}function oe(e){let t=`components.training_editor.labels.${e}`;return ee(t)?o(t):e}async function se(){p.value=u.value.length===0;try{let e=await Je();u.value=e.items,d.value=e.total??e.items.length,f.value=e.nextCursor,ie.value=!1}catch{ie.value=!0}finally{p.value=!1}}async function _(){let e=f.value;if(e&&!m.value){m.value=!0;try{let t=await Je({cursor:e}),n=new Set(u.value.map(e=>e.id));u.value.push(...t.items.filter(e=>!n.has(e.id))),f.value=t.nextCursor}catch(e){s.add({severity:`error`,detail:e?.message??String(e),life:5e3})}finally{m.value=!1}}}async function v(e){ne.value=e;try{await l.mutateAsync(e),u.value=u.value.filter(t=>t.id!==e),d.value=Math.max(0,d.value-1)}catch(e){s.add({severity:`error`,detail:e?.message??String(e),life:5e3})}finally{ne.value=``}}c(ae,([e])=>{e?.isIntersecting&&_()}),ye(()=>te.submitProgress.value?.active,(e,t)=>{t&&!e&&se()});let y=te.onResync(()=>{se()});return Ce(()=>{y()}),se(),(t,r)=>{let i=a,o=Re,ee=re,s=le,c=je,te=Ie,se=e,_=g,y=n;return w(),j(`div`,qt,[H(p)?(w(),j(`div`,Jt,[(w(),j(R,null,D(4,e=>P(i,{key:e,height:`72px`,"border-radius":`12px`})),64))])):H(ie)?(w(),j(`div`,Yt,[P(o,{class:`w-10 h-10 text-muted`}),A(`span`,Xt,C(t.$t(`components.training_submissions.load_failed`)),1)])):H(u).length?(w(),j(R,{key:3},[A(`span`,$t,C(t.$t(`components.training_submissions.count`,H(d))),1),(w(!0),j(R,null,D(H(u),e=>(w(),j(`div`,{key:e.id,class:`cui-card h-auto! shrink-0 p-2 flex items-center gap-3`},[A(`div`,en,[P(s,{src:e.imageUrl,"image-container-class":`w-full h-full`,"image-style":{objectFit:`cover`}},null,8,[`src`])]),A(`div`,tn,[A(`div`,nn,[(w(!0),j(R,null,D(h(e),(e,t)=>(w(),j(`span`,{key:t,class:`px-1.5 py-0.5 rounded text-xs font-medium text-white`,style:O({backgroundColor:H(pe)(String(t)).color})},C(oe(String(t)))+` ×`+C(e),5))),128))]),A(`div`,rn,C(H(de)(new Date(e.createdAt).getTime())),1)]),P(c,{severity:e.usedInWave?`success`:`info`,value:e.usedInWave?t.$t(`components.training_submissions.status_trained`):t.$t(`components.training_submissions.status_pool`),class:`shrink-0`},null,8,[`severity`,`value`]),xe((w(),I(se,{severity:`danger`,text:``,rounded:``,class:`cui-icon-sm shrink-0`,loading:H(l).isPending.value&&H(ne)===e.id,onClick:t=>v(e.id)},{icon:S(()=>[P(te,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[y,t.$t(`components.training_submissions.delete`),void 0,{left:!0}]])]))),128)),H(m)?(w(),j(`div`,an,[P(_,{class:`w-5 h-5 text-primary`})])):H(f)?(w(),j(`div`,{key:1,ref_key:`loadMoreRef`,ref:ae,class:`h-px`},null,512)):B(``,!0)],64)):(w(),j(`div`,Zt,[P(ee,{class:`w-10 h-10 text-muted`}),A(`span`,Qt,C(t.$t(`components.training_submissions.empty`)),1)]))])}}}),sn={desktop:{maxWidth:`720px`,width:`90vw`}},cn={class:`flex flex-col`},ln={key:0,class:`page-title`},un={class:`font-semibold text-xl truncate`},$={class:`flex gap-2 mb-4`},dn={key:1,class:`cui-card h-auto! shrink-0 px-3 py-2 mb-4 flex items-center gap-3`},fn={class:`flex-1 min-w-0`},pn={class:`text-sm`},mn={class:`flex-1 text-sm`},hn={class:`p-3`},gn={key:3,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4 py-16`},_n={class:`text-muted text-sm text-center max-w-md`},vn={class:`relative flex-1 min-h-0 overflow-hidden bg-black/5 dark:bg-black/30`},yn={class:`absolute top-1.5 left-1.5 flex flex-wrap gap-1`},bn={key:0,class:`absolute bottom-1.5 left-1.5`},xn={key:1,class:`absolute top-1.5 right-1.5 dark-mode`},Sn={class:`flex items-center justify-between gap-2`},Cn={class:`flex items-center gap-2 min-w-0`},wn={class:`min-w-0`},Tn={class:`font-medium truncate`},En={class:`text-xs text-muted`},Dn=40,On=p(V({__name:`Training`,setup(o){let ee=new d,s=new Qe,{t:l,te:re}=r(),p=_(),h=ue(),{smBreakpoint:se}=u(),y=s.getCandidatesQuery(),fe=s.getSettingsQuery(),me=s.patchCandidateMutation(),he=s.deleteCandidateMutation(),ge=s.patchSettingsMutation(),_e=s.submitCandidatesMutation(),E=ot(),{data:ve}=ee.getCamerasQuery({page:1,pageSize:-1}),k=M(``),N=M(Dn),Se=T(`cameraMenuRef`),we=T(`settingsMenuRef`),Te=T(`loadMoreRef`),De=z(()=>({gridTemplateColumns:`repeat(auto-fill, minmax(${se.value?`220px`:`260px`}, 1fr))`})),V=z(()=>{let e=[...new Set((y.data.value??[]).map(e=>Z(e.cameraId)))].sort((e,t)=>e.localeCompare(t));return[{key:`all`,label:l(`views.training.all_cameras`),active:k.value===``,onClick:()=>{k.value=``}},...e.map(e=>({key:e,label:e,active:k.value===e,onClick:()=>{k.value=e}}))]}),Fe=z(()=>[{key:`collect`,label:l(`views.training.collection_enabled`),description:l(`views.training.collection_hint`),toggle:!0,toggleState:fe.data.value?.enabled??!0,onClick:()=>{ft(!(fe.data.value?.enabled??!0))}}]),He=z(()=>{let e=k.value.trim().toLowerCase();return e?(y.data.value??[]).filter(t=>Z(t.cameraId).toLowerCase().includes(e)):y.data.value??[]}),Ue=z(()=>He.value.slice(0,N.value)),W=z(()=>He.value.length>Ue.value.length),Ge=z(()=>(y.data.value??[]).filter(e=>q(e)).length),G=z(()=>E.submitProgress.value?E.submitProgress.value:Ge.value>0?{active:!0,total:Ge.value,done:0,failed:0}:null),K=z(()=>He.value.filter(e=>!q(e)));function q(e){return e.upload===`queued`||e.upload===`uploading`}let{selectionMode:J,selectedIds:qe,allSelected:Je,bulkBusy:Ye,enterSelectionMode:Xe,exitSelectionMode:Ze,toggleSelectAll:$e,toggleSelection:Y}=f(K,e=>e.id),X=z(()=>[...qe.value].filter(e=>y.data.value?.find(t=>t.id===e)?.status===`verified`));function Z(e){return ve.value?.result?.find(t=>t._id===e)?.name??e}function Q(e){return v(`/api/training/candidates/${e}/image`)??``}function tt(e){let t=`components.training_editor.labels.${e}`;return re(t)?l(t):e}function nt(e){let t={};for(let n of e.boxes)t[n.label]=(t[n.label]??0)+1;return t}function rt(e){return e===`verified`?`success`:`info`}function it(){N.value+=Dn}function at(e){if(!q(e)){if(J.value){Y(e.id);return}st(e)}}function st(e){p.openComponentDialog(Kt,{data:{title:l(`views.training.title`),cancelText:l(`components.form.button.remove`),confirmText:l(`components.training_editor.verify`),cancelButtonProps:{severity:`danger`},contentProps:{candidates:He.value.map(e=>({...e})),startId:e.id,cameraName:Z,imageUrl:Q,onSave:async(e,t,n)=>{await me.mutateAsync({id:e,patch:{boxes:t,status:n}})},onDelete:async e=>{await he.mutateAsync(e)}}},dialogSize:et})}function ct(){p.openComponentDialog(on,{data:{title:l(`views.training.submissions`),hideConfirmButton:!0,cancelText:l(`components.form.button.close`),contentProps:{}},dialogSize:sn})}function lt(){let e=X.value;e.length&&!_e.isPending.value&&p.openTextDialog({data:{title:l(`components.dialog.title.confirm`),contentText:l(`views.training.submit_confirm`,{count:e.length}),confirmText:l(`views.training.submit`)},onConfirm:async()=>{try{await _e.mutateAsync(e),Ze()}catch(e){h.add({severity:`error`,detail:e?.message??String(e),life:8e3})}}})}function ut(){let e=[...qe.value];e.length&&!Ye.value&&p.openTextDialog({data:{title:l(`components.dialog.title.confirm`),contentText:l(`views.training.delete_selected_confirm`,{count:e.length}),confirmText:l(`components.form.button.remove`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{Ye.value=!0;try{for(let t of e)await he.mutateAsync(t);Ze(),h.add({severity:`success`,detail:l(`views.training.delete_selected_done`,{count:e.length}),life:5e3})}catch(e){h.add({severity:`error`,detail:e?.message??String(e),life:5e3})}finally{Ye.value=!1}}})}async function dt(e){await he.mutateAsync(e.id)}async function ft(e){await ge.mutateAsync({enabled:e})}ye(k,()=>{N.value=Dn}),c(Te,([e])=>{e?.isIntersecting&&it()}),E.connect();let pt=E.onCandidatesChanged(()=>{y.refetch()});return Ce(()=>{pt()}),(r,o)=>{let ee=Be,s=e,c=oe,re=Le,u=Oe,d=te,f=ke,p=Pe,h=Ae,_=Me,v=We,ue=Ve,fe=g,me=U,he=Re,ge=ze,T=Ne,ve=a,ye=b,M=le,N=je,Ce=Ie,z=t,Ge=i,K=m,Qe=ie,et=n;return w(),j(`div`,cn,[H(se)?B(``,!0):(w(),j(`h1`,ln,C(r.$t(`views.training.title`)),1)),P(c,{position:`left`},{default:S(()=>[P(s,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:o[0]||=e=>r.$router.push(`/menu`)},{icon:S(()=>[P(ee,{class:`w-6 h-6`})]),_:1})]),_:1}),P(c,{position:`center`},{default:S(()=>[A(`span`,un,C(r.$t(`views.training.title`)),1)]),_:1}),A(`div`,$,[P(_,{class:`flex-1`},{default:S(()=>[P(f,{class:`flex-1`},{default:S(()=>[P(u,null,{default:S(()=>[P(re,{class:`w-4 h-4`})]),_:1}),P(d,{modelValue:H(k),"onUpdate:modelValue":o[1]||=e=>Ee(k)?k.value=e:null,placeholder:H(l)(`views.training.search`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),_:1}),P(h,null,{default:S(()=>[P(s,{severity:`secondary`,text:``,class:`text-color`,onClick:o[2]||=e=>H(Se)?.toggleMenu(e)},{icon:S(()=>[P(p,{class:be([`w-4 h-4 transform transition-transform duration-300`,{"rotate-180":H(Se)?.isOpen}])},null,8,[`class`])]),_:1})]),_:1})]),_:1}),xe((w(),I(s,{severity:`secondary`,outlined:``,class:`cui-button shrink-0`,onClick:ct},{icon:S(()=>[P(v,{class:`w-4.5 h-4.5`})]),_:1})),[[et,{value:r.$t(`views.training.submissions`)},void 0,{left:!0}]]),xe((w(),I(s,{severity:`secondary`,outlined:``,class:`cui-button shrink-0`,onClick:o[3]||=e=>H(we)?.toggleMenu(e)},{icon:S(()=>[P(ue,{class:`w-4.5 h-4.5`})]),_:1})),[[et,{value:r.$t(`views.training.collection`)},void 0,{left:!0}]])]),H(G)?(w(),j(`div`,dn,[H(G).active?(w(),j(R,{key:0},[P(fe,{class:`w-4 h-4 text-primary shrink-0`}),A(`div`,fn,[A(`div`,pn,C(r.$t(`views.training.upload_progress`,{done:H(G).done+H(G).failed,total:H(G).total})),1),P(me,{value:H(G).total?Math.round((H(G).done+H(G).failed)/H(G).total*100):0,"show-value":!1,style:{height:`6px`},class:`mt-1.5`},null,8,[`value`])])],64)):(w(),j(R,{key:1},[H(G).failed?(w(),I(he,{key:0,class:`w-5 h-5 text-red-500 shrink-0`})):(w(),I(ge,{key:1,class:`w-5 h-5 text-green-500 shrink-0`})),A(`span`,mn,[F(C(r.$t(`views.training.submit_done`,H(G).done)),1),H(G).failed?(w(),j(R,{key:0},[F(` · `+C(r.$t(`views.training.upload_failed_summary`,{count:H(G).failed})),1)],64)):B(``,!0)]),P(s,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-sm shrink-0`,onClick:o[4]||=e=>H(E).dismissProgress()},{icon:S(()=>[P(T,{class:`w-4 h-4`})]),_:1})],64))])):B(``,!0),H(y).isLoading.value&&!H(y).data.value?(w(),j(`div`,{key:2,class:`grid w-full gap-3 p-px`,style:O(H(De))},[(w(),j(R,null,D(8,e=>A(`div`,{key:e,class:`cui-card overflow-hidden`},[P(ve,{class:`aspect-video`,width:`100%`,height:`100%`}),A(`div`,hn,[P(ve,{height:`14px`,width:`70%`,class:`mb-1`}),P(ve,{height:`12px`,width:`40%`})])])),64))],4)):H(He).length===0?(w(),j(`div`,gn,[P(ye,{class:`w-12 h-12 text-muted`}),A(`span`,_n,C(r.$t(`views.training.no_candidates`)),1)])):(w(),j(R,{key:4},[A(`div`,{class:`grid w-full gap-3 p-px`,style:O(H(De))},[(w(!0),j(R,null,D(H(Ue),e=>(w(),I(Ge,{key:e.id,class:`cui-card cui-training-card overflow-hidden transition-shadow cursor-pointer hover:shadow-md aspect-[1.17] flex flex-col`,pt:{header:{class:`flex-1 min-h-0 flex`},body:{class:`shrink-0`,style:`height: auto`}},onClick:t=>at(e)},{header:S(()=>[A(`div`,vn,[P(M,{class:`absolute inset-0`,src:Q(e.id),alt:Z(e.cameraId),"image-container-class":`w-full h-full`,"image-style":{objectFit:`cover`}},null,8,[`src`,`alt`]),A(`div`,yn,[(w(!0),j(R,null,D(nt(e),(e,t)=>(w(),j(`span`,{key:t,class:`px-1.5 py-0.5 rounded text-xs font-medium text-white`,style:O({backgroundColor:H(pe)(String(t)).color})},C(tt(String(t)))+` ×`+C(e),5))),128))]),e.upload?(w(),j(`div`,bn,[e.upload===`failed`?xe((w(),I(N,{key:0,severity:`danger`,value:r.$t(`views.training.upload_failed`)},null,8,[`value`])),[[et,e.uploadError,void 0,{top:!0}]]):e.upload===`uploading`?(w(),I(N,{key:1,severity:`info`,value:r.$t(`views.training.upload_uploading`)},null,8,[`value`])):(w(),I(N,{key:2,severity:`secondary`,value:r.$t(`views.training.upload_queued`)},null,8,[`value`]))])):B(``,!0),!H(J)&&!q(e)?(w(),j(`div`,xn,[xe((w(),I(s,{severity:`secondary`,rounded:``,size:`small`,class:`cui-icon-sm text-white`,onClick:L(t=>dt(e),[`stop`])},{icon:S(()=>[P(Ce,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[et,r.$t(`views.training.delete_candidate`),void 0,{top:!0}]])])):B(``,!0)])]),content:S(()=>[A(`div`,Sn,[A(`div`,Cn,[H(J)&&!q(e)?(w(),I(z,{key:0,"model-value":H(qe).has(e.id),binary:``,size:`small`,onClick:o[5]||=L(()=>{},[`stop`]),"onUpdate:modelValue":t=>H(Y)(e.id)},null,8,[`model-value`,`onUpdate:modelValue`])):B(``,!0),A(`div`,wn,[A(`div`,Tn,C(Z(e.cameraId)),1),A(`div`,En,C(H(de)(e.createdAt)),1)])]),P(N,{severity:rt(e.status),value:r.$t(`views.training.status_${e.status}`)},null,8,[`severity`,`value`])])]),_:2},1032,[`onClick`]))),128))],4),H(W)?(w(),j(`div`,{key:0,ref_key:`loadMoreRef`,ref:Te,class:`h-px`},null,512)):B(``,!0)],64)),H(He).length||H(J)?(w(),I(Qe,{key:5,"force-visible":H(J)},{default:S(()=>[H(J)?(w(),j(R,{key:1},[P(K,{grouped:``,"tooltip-props":{value:r.$t(`components.form.tooltip.cancel_selection`)},"button-props":{severity:`secondary`},icon:H(Ne),"icon-props":{width:`100%`,height:`100%`},onClick:H(Ze)},null,8,[`tooltip-props`,`icon`,`onClick`]),P(K,{grouped:``,"tooltip-props":{value:H(Je)?r.$t(`views.training.deselect_all`):r.$t(`views.training.select_all`)},"button-props":{severity:H(Je)?`primary`:`secondary`},icon:H(ne),"icon-props":{width:`100%`,height:`100%`},onClick:H($e)},null,8,[`tooltip-props`,`button-props`,`icon`,`onClick`]),P(K,{grouped:``,"tooltip-props":{value:r.$t(`views.training.submit_selected`)},"button-props":{disabled:!H(X).length||H(_e).isPending.value},icon:H(Ke),"icon-props":{width:`100%`,height:`100%`},onClick:lt},null,8,[`tooltip-props`,`button-props`,`icon`]),P(K,{grouped:``,"tooltip-props":{value:r.$t(`views.training.delete_selected`)},"button-props":{severity:`danger`,disabled:!H(qe).size||H(Ye)},icon:H(x),"icon-props":{width:`100%`,height:`100%`},onClick:ut},null,8,[`tooltip-props`,`button-props`,`icon`])],64)):(w(),I(K,{key:0,grouped:``,"tooltip-props":{value:r.$t(`views.training.select`)},"button-props":{severity:`secondary`},icon:H(ae),"icon-props":{width:`100%`,height:`100%`},onClick:H(Xe)},null,8,[`tooltip-props`,`icon`,`onClick`]))]),_:1},8,[`force-visible`])):B(``,!0),P(ce,{ref_key:`cameraMenuRef`,ref:Se,items:H(V),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`]),P(ce,{ref_key:`settingsMenuRef`,ref:we,items:H(Fe),"auto-hide":!1,popover:{pt:{root:{class:`w-[22rem]`},content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}}),[[`__scopeId`,`data-v-84e470e7`]]);export{On as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CuiMarkdownContent-DSArmS0V.js","./CuiMarkdownContent-BUYtK_wD.js","./vendor-DGke_6M4.js","./rolldown-runtime-C0FnF6B9.js","./vendor-markdown-DD4teg2u.js","./vendor-markdown-DtOhvyRx.css"])))=>i.map(i=>d[i]);
2
- import{Bt as e,Kt as t,Vr as n,X as r,zt as i}from"./vendor-cameraui-QXD8jkcj.js";import{In as a,U as o,ct as s,lt as c}from"./api-DK2Bav9D.js";import{$n as l,Cr as u,Ht as d,In as f,Pn as p,Rn as m,br as h,cn as g,dn as _,dr as v,er as y,gn as b,hn as x,ln as S,rn as C,sn as w,sr as T,un as E,vn as D,yr as O}from"./vendor-DGke_6M4.js";import{p as k}from"./vendor-core-CnhnyKDl.js";import{B as A}from"./vendor-primevue-CCUqY55W.js";import{o as j}from"./server-DUFhf2c_.js";import{t as ee}from"./check-circle-DHAAn6A6.js";import{t as M}from"./alert-circle-D2fAQwTX.js";import{t as te}from"./refresh-DfqyhMOh.js";import{t as N}from"./check-circle-outline-BbqeKfIK.js";import{c as P}from"./plugins-eIUrXNeM.js";import{t as ne}from"./information-outline-Blt4EtWJ.js";import{t as re}from"./back-filled-BPBVnQjx.js";import{t as F}from"./updates-TIPWXKzL.js";var I={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function L(e,t){return f(),_(`svg`,I,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M5 3c-1.11 0-2 .89-2 2v14c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V5c0-1.11-.89-2-2-2zm0 2h14v14H5zm2 2v2h10V7zm0 4v2h10v-2zm0 4v2h7v-2z`},null,-1)]])}var R=T({name:`mdi-text-box-outline`,render:L}),z={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function B(e,t){return f(),_(`svg`,z,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M13 18v-8l3.5 3.5l1.42-1.42L12 6.16l-5.92 5.92L7.5 13.5L11 10v8zM12 2a10 10 0 0 1 10 10a10 10 0 0 1-10 10A10 10 0 0 1 2 12A10 10 0 0 1 12 2`},null,-1)]])}var ie=T({name:`mdi-arrow-up-circle`,render:B}),V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return f(),_(`svg`,V,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M13 18h-2v-8l-3.5 3.5l-1.42-1.42L12 6.16l5.92 5.92l-1.42 1.42L13 10zM12 2a10 10 0 0 1 10 10a10 10 0 0 1-10 10A10 10 0 0 1 2 12A10 10 0 0 1 12 2m0 2a8 8 0 0 0-8 8a8 8 0 0 0 8 8a8 8 0 0 0 8-8a8 8 0 0 0-8-8`},null,-1)]])}var ae=T({name:`mdi-arrow-up-circle-outline`,render:H}),U={class:`flex flex-col`},W={class:`text-base font-semibold border-b-[1px] border-color mb-3 pb-3`},G={key:0,class:`flex items-center justify-center py-10`},K={key:2,class:`text-sm text-muted`},q=D({__name:`UpdateChangelog`,props:{kind:{},name:{},version:{}},setup(e){let t=c(()=>d(()=>import(`./CuiMarkdownContent-DSArmS0V.js`),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url)),n=e,r=v(``),a=v(!0);return p(async()=>{let e=new AbortController;try{n.kind===`plugin`?r.value=await P({pluginName:n.name,query:n.version?{pluginversion:n.version}:void 0,signal:e.signal}):r.value=await j({version:n.version??`latest`,signal:e.signal})}catch{r.value=``}finally{a.value=!1}}),(e,n)=>{let o=i;return f(),_(`div`,U,[g(`h3`,W,u(e.$t(`components.form.label.changelog`)),1),O(a)?(f(),_(`div`,G,[b(o,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):O(r)?(f(),S(O(t),{key:1,content:O(r)},null,8,[`content`])):(f(),_(`span`,K,u(e.$t(`views.updates.no_changelog`)),1))])}}}),J={key:0,class:`flex items-center justify-between`},oe={class:`page-title`},se={key:1,class:`w-full flex items-center justify-center py-16`},ce={key:2,class:`flex flex-col gap-6`},le={key:0,class:`flex items-center gap-4`},ue={class:`flex flex-col field-switch-gap min-w-0 flex-1`},de={class:`text-sm font-bold text-color`},fe={key:1,class:`flex items-center gap-4`},pe={class:`flex flex-col field-switch-gap min-w-0 flex-1`},Y={class:`text-sm font-bold text-color`},me={key:2,class:`flex flex-wrap items-center gap-4`},he={class:`flex flex-col field-switch-gap min-w-0 flex-1`},ge={class:`text-sm font-bold text-color`},_e={class:`card-title`},ve={class:`flex flex-col`},ye={class:`flex flex-col field-switch-gap min-w-0 flex-1`},be={class:`text-sm font-bold text-color truncate`},xe={key:0,class:`text-xs text-muted truncate`},X=D({__name:`Updates`,setup(c){let{t:d}=n(),v=s(),{smBreakpoint:T}=a(),D=F(),{status:j,runActive:P,cancelRequested:I,isChecking:L,checkedAt:z,runTotal:B,runDone:V,pendingCount:H,updatingItem:U,restartingItem:W,serverBusy:G,busy:K,allUpToDate:X,serverPending:Z}=k(D),Se=w(()=>[{kind:`server`,title:d(`views.updates.section_server`)},{kind:`plugin`,title:d(`views.updates.section_plugins`)},{kind:`worker`,title:d(`views.updates.section_workers`)}].map(e=>({...e,items:D.itemsOf(e.kind)})).filter(e=>e.items.length>0)),Q=w(()=>new Date(z.value).toLocaleTimeString());function Ce(e){return e.blockedReason===`legacy`?d(`views.updates.blocked_legacy`):d(`views.updates.blocked_desktop`)}function we(e){v.openComponentDialog(q,{data:{title:e.name,confirmText:d(`components.form.button.update`),contentProps:{kind:e.kind,name:e.packageName??e.name,version:e.latestVersion}},onConfirm:()=>D.updateItem(e.id)})}return p(()=>{D.connect()}),(n,a)=>{let s=te,c=e,d=re,p=o,v=i,w=A,k=N,F=ae,z=r,q=ee,Te=M,Ee=ne,De=ie,Oe=R,$=t;return f(),_(`div`,null,[O(T)?E(``,!0):(f(),_(`div`,J,[g(`h1`,oe,u(n.$t(`views.updates.title`)),1),y((f(),S(c,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-lg relative z-2`,loading:O(L),disabled:O(K),onClick:a[0]||=e=>O(D).refresh()},{icon:l(()=>[b(s,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`disabled`])),[[$,{value:n.$t(`views.updates.check_now`)},void 0,{bottom:!0}]])])),b(p,{position:`left`},{default:l(()=>[b(c,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:a[1]||=e=>n.$router.push(`/menu`)},{icon:l(()=>[b(d,{class:`w-6 h-6`})]),_:1})]),_:1}),b(p,{position:`right`},{default:l(()=>[b(c,{severity:`secondary`,class:`cui-button p-2 text-color`,text:``,rounded:``,loading:O(L),disabled:O(K),onClick:a[2]||=e=>O(D).refresh()},{icon:l(()=>[b(s,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`disabled`])]),_:1}),O(j)?(f(),_(`div`,ce,[b(z,{class:`cui-card`},{content:l(()=>[O(P)?(f(),_(`div`,le,[b(v,{class:`w-[26px] h-[26px] m-0 shrink-0`,"stroke-width":`5`}),g(`div`,ue,[g(`span`,de,u(O(U)?n.$t(`views.updates.run_updating`,{name:O(U).name}):O(W)?n.$t(`connection.restarting`):n.$t(`views.updates.run_preparing`)),1),b(w,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[x(u(n.$t(`views.updates.run_progress`,{done:O(V),total:O(B)}))+` `,1),O(Z)?(f(),_(C,{key:0},[x(` · `+u(n.$t(`views.updates.run_server_last`)),1)],64)):E(``,!0)]),_:1})]),b(c,{severity:`secondary`,class:`cui-button-medium shrink-0`,disabled:O(I),label:O(I)?n.$t(`views.updates.cancelling`):n.$t(`components.form.button.cancel`),onClick:a[3]||=e=>O(D).cancelRun()},null,8,[`disabled`,`label`])])):O(X)?(f(),_(`div`,fe,[b(k,{class:`w-7 h-7 shrink-0 text-success`}),g(`div`,pe,[g(`span`,Y,u(n.$t(`views.updates.all_up_to_date`)),1),b(w,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[x(u(n.$t(`views.updates.checked_at`,{time:O(Q)})),1)]),_:1})])])):(f(),_(`div`,me,[b(F,{class:`w-7 h-7 shrink-0 text-primary`}),g(`div`,he,[g(`span`,ge,u(n.$t(`views.updates.pending_count`,{count:O(H)})),1),b(w,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[x(u(O(Z)?n.$t(`views.updates.summary_server_hint`):n.$t(`views.updates.checked_at`,{time:O(Q)})),1)]),_:1})]),b(c,{class:`cui-button-medium shrink-0 ml-auto`,disabled:O(K),label:n.$t(`views.updates.update_all`),onClick:a[4]||=e=>O(D).updateAll()},null,8,[`disabled`,`label`])]))]),_:1}),(f(!0),_(C,null,m(O(Se),e=>(f(),_(`div`,{key:e.kind},[g(`span`,_e,u(e.title),1),b(z,{class:`cui-card`},{content:l(()=>[g(`div`,ve,[(f(!0),_(C,null,m(e.items,(e,t)=>(f(),_(`div`,{key:e.id,class:h([`flex items-center gap-4 py-3`,{"border-t border-surface":t>0}])},[e.status===`updating`||e.status===`restarting`?(f(),S(v,{key:0,class:`w-[22px] h-[22px] m-0 shrink-0`,"stroke-width":`5`})):e.status===`success`||e.status===`uptodate`?(f(),S(q,{key:1,class:`w-[22px] h-[22px] shrink-0 text-success`})):e.status===`error`?(f(),S(Te,{key:2,class:`w-[22px] h-[22px] shrink-0 text-red-500`})):e.status===`blocked`?(f(),S(Ee,{key:3,class:`w-[22px] h-[22px] shrink-0 text-muted`})):(f(),S(De,{key:4,class:`w-[22px] h-[22px] shrink-0 text-primary`})),g(`div`,ye,[g(`span`,be,u(e.name),1),e.packageName?(f(),_(`span`,xe,u(e.packageName),1)):E(``,!0),b(w,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:l(()=>[e.status===`error`?(f(),_(C,{key:0},[x(u(e.error),1)],64)):e.status===`restarting`?(f(),_(C,{key:1},[x(u(n.$t(`connection.restarting`)),1)],64)):e.status===`blocked`?(f(),_(C,{key:2},[x(u(Ce(e)),1)],64)):e.status===`uptodate`?(f(),_(C,{key:3},[x(`v`+u(e.installedVersion)+` · `+u(n.$t(`views.updates.up_to_date`)),1)],64)):e.status===`success`?(f(),_(C,{key:4},[x(u(n.$t(`views.updates.updated_to`,{version:e.latestVersion})),1)],64)):(f(),_(C,{key:5},[x(`v`+u(e.installedVersion)+` → v`+u(e.latestVersion),1)],64))]),_:2},1024)]),e.status===`pending`||e.status===`error`?(f(),_(C,{key:5},[y((f(),S(c,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:t=>we(e)},{icon:l(()=>[b(Oe,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[$,{value:n.$t(`components.form.label.changelog`)},void 0,{top:!0}]]),b(c,{severity:`secondary`,outlined:``,class:`cui-button-medium shrink-0`,disabled:e.kind===`server`?O(K):O(P)||O(G),label:e.status===`error`?n.$t(`views.updates.retry`):n.$t(`components.form.button.update`),onClick:t=>O(D).updateItem(e.id)},null,8,[`disabled`,`label`,`onClick`])],64)):E(``,!0)],2))),128))])]),_:2},1024)]))),128))])):(f(),_(`div`,se,[b(v,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{X as default};
@@ -1,2 +0,0 @@
1
- import{Bt as e,Vr as t,X as n,z as r,zt as i}from"./vendor-cameraui-QXD8jkcj.js";import{In as a,It as o,Mn as s,U as ee,_t as te,ct as ne,gt as re,i as ie,ir as c,kr as l,sr as ae,vr as u,z as d}from"./api-DK2Bav9D.js";import{$n as f,An as oe,Cr as p,Fn as m,In as h,On as g,Xn as _,cn as v,dn as y,dr as b,gn as x,hn as S,ln as C,lr as w,nr as T,or as E,rn as se,sn as D,un as O,vn as k,yr as A}from"./vendor-DGke_6M4.js";import{B as ce,C as le,M as ue,R as de,q as fe,v as pe,z as me}from"./vendor-primevue-CCUqY55W.js";import{t as he}from"./api-DW2niHRN.js";import{t as ge}from"./pencil-outline-CD3Xv98d.js";import{t as _e}from"./plugins-eIUrXNeM.js";import{t as ve}from"./CuiDataTable-CsqH-RB1.js";import{t as ye}from"./back-filled-BPBVnQjx.js";import{r as be,t as xe}from"./CuiChartTable-DP38uBwK.js";import{n as Se,t as Ce}from"./updates-TIPWXKzL.js";var j={class:`flex flex-col gap-2 w-full`},M={for:`workerName`,class:`cui-label`},we=k({__name:`RenameWorker`,props:{currentName:{}},setup(e,{expose:t}){let n=b(e.currentName);return t({onConfirm:async()=>n.value.trim()||null}),(e,t)=>{let i=r;return h(),y(`div`,j,[v(`label`,M,p(e.$t(`views.workers.name`)),1),x(i,{id:`workerName`,modelValue:A(n),"onUpdate:modelValue":t[0]||=e=>E(n)?n.value=e:null,class:`w-full`,autofocus:``},null,8,[`modelValue`])])}}}),N=w({workers:[],workerHistory:{}}),P=null,F=null;function I(e){let t=N.workers.findIndex(t=>t.agentId===e.agentId);if(t!==-1){let n=[...N.workers];n[t]=e,N.workers=n}else N.workers=[...N.workers,e];let n=N.workerHistory[e.agentId]??[];N.workerHistory={...N.workerHistory,[e.agentId]:[...n,e].slice(-30)}}async function L(){if(F?.ready.value)try{N.workers=await F.request(`get-workers`)}catch{}}async function Te(){if(F?.ready.value)try{N.workerHistory=await F.request(`get-worker-history`)}catch{}}async function R(){await Promise.all([L(),Te()])}function Ee(){return F||(P=T(!0),P.run(()=>{let e=u(`/workers`);F=e,e.on(`worker-update`,e=>I(e)),e.on(`worker-removed`,({agentId:e})=>{N.workers=N.workers.filter(t=>t.agentId!==e);let t={...N.workerHistory};delete t[e],N.workerHistory=t}),e.onReady(()=>{R()})}),F)}function De(){function e(){Ee()}function t(){}return{isConnected:D(()=>F?.connected.value??!1),workers:D(()=>N.workers),workerHistory:D(()=>N.workerHistory),connect:e,disconnect:t,loadAll:R}}var Oe={key:0,class:`page-title`},ke={key:1,class:`w-full h-full flex items-center justify-center`},Ae={key:2,class:`flex flex-col w-full gap-6`},je={class:`card-title`},Me={class:`flex flex-col gap-6`},Ne={class:`flex items-center gap-4`},Pe={class:`flex flex-col field-switch-gap`},Fe={class:`cui-label-switch`},Ie={class:`flex flex-col field-gap`},Le={for:`master-address`,class:`cui-label`},Re={class:`flex flex-col field-gap`},ze={for:`leaf-port`,class:`cui-label`},Be={class:`flex flex-row items-end justify-end`},Ve={key:0},He={class:`card-title`},Ue={class:`flex flex-col items-center justify-center gap-4 py-6`},We={class:`text-muted text-sm`},Ge={key:1},Ke={class:`card-title`},qe={class:`text-sm block mb-6`},Je={class:`text-muted text-sm`},Ye={class:`font-bold text-color text-sm`},Xe={key:2},Ze={class:`card-title`},Qe={class:`text-sm block mb-6`},$e={class:`text-muted text-sm`},et={class:`flex flex-col`},tt={class:`font-bold text-color text-sm`},nt={key:0,class:`text-muted text-xs`},rt={key:3},it={class:`card-title`},at={class:`flex flex-col gap-6`},ot={class:`text-sm`},st={class:`flex flex-col field-gap`},ct={class:`cui-label`},lt={class:`flex flex-col field-gap`},ut={class:`flex flex-row items-center justify-between`},dt={class:`cui-label`},ft={class:`pairing-snippet`},pt={class:`flex flex-row items-end justify-end`},mt=s(k({__name:`Workers`,setup(s){let{t:u}=t(),{smBreakpoint:w}=a(),T=ne(),k=Ce(),j=l(),M=De(),{workers:N,workerHistory:P,isConnected:F}=M,I=new he,L=new o,Te=new _e,R=new Se,{data:Ee,isLoading:mt}=L.getCamerasQuery(b({page:1,pageSize:999})),{data:ht,isLoading:gt}=Te.getPluginsQuery(b({page:1,pageSize:999})),{data:z}=R.getConfigQuery(),{mutateAsync:_t,isPending:vt}=R.patchConfigQuery(),{mutateAsync:yt}=R.assignCameraQuery(),{mutateAsync:bt}=R.unassignCameraQuery(),{mutateAsync:xt}=R.restartWorkerQuery(),{mutateAsync:St}=R.updateWorkerQuery(),{mutateAsync:Ct,isPending:wt}=R.createPairingQuery(),{mutateAsync:Tt}=R.removeWorkerQuery(),{mutateAsync:Et}=R.assignPluginQuery(),{mutateAsync:Dt}=R.unassignPluginQuery(),{mutateAsync:Ot}=R.renameWorkerQuery(),{data:kt}=I.apiInfoQuery(),At={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm font-semibold`}}},jt=b(!1),B=b([]),V=b([]),H=b([]),U=b(new Set),W=b(new Set),G=b(null),K=b(``),q=b(7422),Mt=!1,J=new Map,Nt=D(()=>Ee.value?.result??[]),Pt=D(()=>ht.value?.result??[]),Y=D(()=>z.value?.enabled??!1),Ft=D(()=>(z.value?.suggestedAddresses??[]).map(e=>({label:e,value:e}))),X=D(()=>q.value!==(z.value?.port??7422)),It=D(()=>K.value!==(z.value?.address??``)||X.value),Lt=D(()=>new Set(N.value.map(e=>e.agentId))),Z=D(()=>k.targetServerVersion??kt.value?.version),Rt=D(()=>G.value?Math.max(0,Math.round((G.value.expiresAt-Date.now())/6e4)):0),zt=D(()=>G.value?[`worker:`,` master: ${G.value.address||`<MASTER_IP>`}`,` apiPort: ${G.value.apiPort}`,` pairingCode: ${G.value.code}`,` name: my-worker`,` capabilities:`,` - frameDecoding`,` - pluginHost`].join(`
2
- `):``),Bt=D(()=>[{type:`indicator`,field:`status`,columnProps:{headerClass:`w-5 max-w-5`,class:`w-5 max-w-5`},color(e){return e.online?e.versionMismatch?`orange`:`green`:`red`},tooltip(e){return e.online?e.update?.error?u(`views.workers.update_failed`,{error:e.update.error}):e.update?.updating?u(`views.workers.updating`):e.versionMismatch?u(`views.workers.version_mismatch`,{version:e.version||`?`}):u(`views.workers.online`):u(`views.workers.offline`)}},{type:`category`,field:`name`,name:u(`views.workers.name`),columnProps:{headerClass:`w-40 min-w-40 max-w-40`,class:`w-40 min-w-40 max-w-40`},props:{class:`font-bold text-color`}},{type:`category`,field:e=>e.version?e.versionMismatch&&Z.value?`v${e.version} → v${Z.value}`:`v${e.version}`:`—`,name:u(`views.workers.version`),asChip:!0,columnProps:{headerClass:`min-w-30`,class:`min-w-30`}},{type:`category`,field:e=>e.platform?`${e.platform.os}/${e.platform.arch}`:`—`,name:u(`views.workers.platform`),asChip:!0,columnProps:{headerClass:`min-w-40`,class:`min-w-40`}},{type:`category`,field:e=>e.pid?.toString()??`—`,name:u(`views.workers.pid`),columnProps:{headerClass:`min-w-20`,class:`min-w-20`}},{type:`category`,field:e=>e.cpuLoad===void 0?`—`:`${e.cpuLoad}%`,name:u(`views.workers.cpu`),asChip:!0,columnProps:{headerClass:`min-w-30`,class:`min-w-30`}},{type:`chart`,field:`cpu_chart`,for:`cpuLoad`,columnProps:{headerClass:`min-w-[250px]`,class:`min-w-[250px]`}},{type:`category`,field:e=>e.memLoad===void 0?`—`:`${e.memLoad}%`,name:u(`views.workers.memory`),asChip:!0,columnProps:{headerClass:`min-w-30`,class:`min-w-30`}},{type:`chart`,field:`memory_chart`,for:`memLoad`,columnProps:{headerClass:`min-w-[250px]`,class:`min-w-[250px]`}},{type:`action`,field:`actions`,columnProps:{class:`text-right`},buttons:[{icon:ge,buttonProps:{severity:`secondary`},tooltip:()=>u(`views.workers.rename_worker`),action:e=>Ht(e)},{icon:c,buttonProps:{severity:`secondary`},loading:e=>e.update?.updating||H.value.includes(e.agentId),disabled:e=>!e.online||!e.versionMismatch||!e.update?.updatable,tooltip:e=>Ut(e),action:e=>Wt(e.agentId)},{icon:be,buttonProps:{severity:`secondary`},loading:e=>B.value.includes(e.name),disabled:e=>!e.online,tooltip:()=>u(`views.workers.restart_worker`),action:e=>Gt(e.name,e.agentId)},{icon:d,buttonProps:{severity:`danger`},loading:e=>V.value.includes(e.agentId),tooltip:()=>u(`views.workers.remove_worker`),action:e=>rn(e)}]}]),Vt=D(()=>{let e=P.value;return N.value.reduce((t,n)=>{for(let r of[`cpuLoad`,`memLoad`]){let i=e[n.agentId]??[],a=i.slice(-30).filter(e=>e[r]!==void 0).map(e=>parseFloat(e[r])),o=i.slice(-30).map(e=>e.lastHeartbeat),s=[...a,...Array(30-a.length).fill(0)],ee=[...o,...Array(30-o.length).fill(null)];t[`${n.name}_${r}`]={labels:ee,datasets:[{data:s,backgroundColor:e=>{let t=e.raw;return t>=90?`#FA5252`:t>=50?`#FF9966`:`#df2a4c`},borderWidth:0,borderRadius:3,barPercentage:.8,categoryPercentage:.8,maxBarThickness:4,barThickness:4}]}}return t},{})});function Ht(e){T.openComponentDialog(we,{data:{title:u(`views.workers.rename_worker`),confirmText:u(`views.workers.save`),contentProps:{currentName:e.name}},onConfirm:async t=>{t&&t!==e.name&&await Ot({agentId:e.agentId,name:t})}})}function Ut(e){return e.update?.updating?u(`views.workers.updating`):Z.value?u(`views.workers.update_worker`,{version:Z.value}):u(`views.workers.update_worker_short`)}async function Wt(e){J.delete(e),H.value.push(e);try{await St({agentId:e})}finally{H.value=H.value.filter(t=>t!==e)}}async function Gt(e,t){B.value.push(e);try{await xt(t)}finally{B.value=B.value.filter(t=>t!==e)}}function Kt(){let e=[];for(let t of N.value){let n=t.online?t.name:`${t.name} (${u(`views.workers.offline`).toLowerCase()})`;e.push({label:n,value:t.agentId})}return e}function Q(e){return e&&Lt.value.has(e)?e:null}function qt(e,t){if(!e?.length)return!0;let n=e.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1)),r=e.filter(e=>!e.startsWith(`!`));return n.includes(t)?!1:r.length===0||r.includes(t)}function Jt(e,t){return!t.platform||qt(e.os,t.platform.os)&&qt(e.cpu,t.platform.arch)}function Yt(e){let t=[];return e.os?.length&&t.push(`os: ${e.os.join(`, `)}`),e.cpu?.length&&t.push(`cpu: ${e.cpu.join(`, `)}`),t.join(` · `)}function Xt(e){let t=[];for(let n of N.value){let r=Jt(e,n),i=n.online?``:` (${u(`views.workers.offline`).toLowerCase()})`,a=r?``:` — ${u(`views.workers.incompatible`)}`;t.push({label:`${n.name}${i}${a}`,value:n.agentId,disabled:!r})}return t}function Zt(e){return W.value.has(e)}async function Qt(e,t){if(t===Q(e.workerAgentId))return;let n=new Set(W.value);n.add(e.pluginName),W.value=n;try{t?await Et({pluginName:e.pluginName,agentId:t}):await Dt({pluginName:e.pluginName})}catch{}finally{let t=new Set(W.value);t.delete(e.pluginName),W.value=t}}function $(e){return U.value.has(e)}async function $t(e,t){if(t===Q(e.workerAgentId))return;let n=new Set(U.value);n.add(e._id),U.value=n;try{t?await yt({cameraId:e._id,agentId:t}):await bt({cameraId:e._id})}catch{}finally{let t=new Set(U.value);t.delete(e._id),U.value=t}}async function en(){try{G.value=await Ct()}catch{}}async function tn(e){if(e&&!K.value&&(K.value=z.value?.suggestedAddresses?.[0]??``,!K.value)){T.openTextDialog({data:{title:u(`views.workers.enable_workers`),contentText:u(`views.workers.address_required`),confirmText:u(`views.workers.ok`)}});return}try{await _t(e?{enabled:!0,address:K.value,port:q.value}:{enabled:!1})}catch{}}async function nn(){try{await _t({address:K.value,port:q.value})}catch{}}function rn(e){T.openTextDialog({data:{title:u(`views.workers.remove_worker`),confirmText:u(`views.workers.remove`),contentText:u(`views.workers.remove_worker_confirm`,{name:e.name}),confirmButtonProps:{severity:`danger`}},dialogSize:{desktop:{width:`auto`,maxWidth:`560px`,maxHeight:`90vh`}},onConfirm:async()=>{V.value.push(e.agentId);try{await Tt(e.agentId)}finally{V.value=V.value.filter(t=>t!==e.agentId)}}})}return oe(async()=>{M.connect(),k.connect(),await g(),M.loadAll(),jt.value=!0}),_(z,e=>{e&&(K.value=e.address,q.value=e.port)},{immediate:!0}),_(N,e=>{if(!Mt){if(!e.length)return;for(let t of e)t.update?.error&&J.set(t.agentId,t.update.error);Mt=!0;return}for(let t of e){if(t.update?.updating){J.delete(t.agentId);continue}let e=t.update?.error;if(!e){J.delete(t.agentId);continue}J.get(t.agentId)!==e&&(J.set(t.agentId,e),j.add({severity:`error`,summary:t.name,detail:u(`views.workers.update_failed`,{error:e}),life:6e3}))}}),m(()=>{M.disconnect()}),(t,a)=>{let o=ye,s=e,ne=ee,c=i,l=ce,u=fe,d=ue,oe=pe,m=n,g=xe,_=ae,b=le,T=ve,D=r,k=te,he=de,ge=me;return h(),y(`div`,null,[A(w)?O(``,!0):(h(),y(`h1`,Oe,p(t.$t(`views.workers.title`)),1)),x(ne,{position:`left`},{default:f(()=>[x(s,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:a[0]||=e=>t.$router.push(`/menu`)},{icon:f(()=>[x(o,{class:`w-6 h-6`})]),_:1})]),_:1}),!A(jt)||!A(F)?(h(),y(`div`,ke,[x(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(h(),y(`div`,Ae,[v(`div`,null,[v(`span`,je,p(t.$t(`views.workers.configuration`)),1),x(m,{class:`cui-card`},{content:f(()=>[v(`div`,Me,[v(`div`,Ne,[v(`div`,Pe,[v(`label`,Fe,p(t.$t(`views.workers.enable_workers`)),1),x(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[S(p(t.$t(`views.workers.enable_workers_description`)),1)]),_:1})]),x(u,{"model-value":A(Y),disabled:A(vt),class:`ml-auto shrink-0`,"onUpdate:modelValue":tn},null,8,[`model-value`,`disabled`])]),A(Y)?(h(),y(se,{key:0},[v(`div`,Ie,[v(`label`,Le,p(t.$t(`views.workers.master_address`)),1),x(d,{modelValue:A(K),"onUpdate:modelValue":a[1]||=e=>E(K)?K.value=e:null,"input-id":`master-address`,options:A(Ft),editable:``,"option-label":`label`,"option-value":`value`,placeholder:t.$t(`views.workers.master_address_placeholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`]),x(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:f(()=>[S(p(t.$t(`views.workers.master_address_hint`)),1)]),_:1})]),v(`div`,Re,[v(`label`,ze,p(t.$t(`views.workers.leaf_port`)),1),x(oe,{modelValue:A(q),"onUpdate:modelValue":a[2]||=e=>E(q)?q.value=e:null,"input-id":`leaf-port`,min:1024,max:65535,"use-grouping":!1,class:`w-full`},null,8,[`modelValue`]),A(X)&&(A(z)?.pairedWorkers??0)>0?(h(),C(l,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:f(()=>[S(p(t.$t(`views.workers.port_change_warning`)),1)]),_:1})):O(``,!0)]),v(`div`,Be,[x(s,{class:`cui-button-medium`,label:t.$t(`views.workers.save`),loading:A(vt),disabled:!A(It),onClick:nn},null,8,[`label`,`loading`,`disabled`])])],64)):O(``,!0)])]),_:1})]),A(Y)?(h(),y(`div`,Ve,[v(`span`,He,p(t.$t(`views.workers.workers`)),1),A(N).length?(h(),C(g,{key:0,items:A(N),headers:A(Bt),"chart-data":A(Vt)},null,8,[`items`,`headers`,`chart-data`])):(h(),C(m,{key:1,class:`cui-card`,pt:{root:{class:`h-full`}}},{content:f(()=>[v(`div`,Ue,[x(_,{class:`w-12 h-12 text-muted`}),v(`span`,We,p(t.$t(`views.workers.no_workers`)),1)])]),_:1}))])):O(``,!0),A(Y)&&A(N).length?(h(),y(`div`,Ge,[v(`span`,Ke,p(t.$t(`views.workers.camera_assignments`)),1),x(m,{class:`cui-card`},{content:f(()=>[v(`span`,qe,p(t.$t(`views.workers.camera_assignments_description`)),1),x(T,{value:A(Nt),loading:A(mt),pt:At,"striped-rows":``,class:`w-full`},{loading:f(()=>[x(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:f(()=>[v(`span`,Je,p(t.$t(`views.workers.no_cameras`)),1)]),default:f(()=>[x(b,{field:`name`,header:t.$t(`views.workers.camera`),"header-class":`p-2 min-w-40`,class:`p-2 min-w-40`},{body:f(({data:e})=>[v(`span`,Ye,p(e.name),1)]),_:1},8,[`header`]),x(b,{header:t.$t(`views.workers.workers`),"header-class":`p-2 w-full`,class:`p-2 w-full`},{body:f(({data:e})=>[x(d,{"model-value":Q(e.workerAgentId),options:Kt(),"option-label":`label`,"option-value":`value`,placeholder:t.$t(`views.workers.local`),class:`w-full`,"show-clear":``,loading:$(e._id),disabled:$(e._id),"onUpdate:modelValue":t=>$t(e,t)},null,8,[`model-value`,`options`,`placeholder`,`loading`,`disabled`,`onUpdate:modelValue`])]),_:1},8,[`header`])]),_:1},8,[`value`,`loading`])]),_:1})])):O(``,!0),A(Y)&&A(N).length?(h(),y(`div`,Xe,[v(`span`,Ze,p(t.$t(`views.workers.plugin_assignments`)),1),x(m,{class:`cui-card`},{content:f(()=>[v(`span`,Qe,p(t.$t(`views.workers.plugin_assignments_description`)),1),x(T,{value:A(Pt),loading:A(gt),pt:At,"striped-rows":``,class:`w-full`},{loading:f(()=>[x(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:f(()=>[v(`span`,$e,p(t.$t(`views.workers.no_plugins`)),1)]),default:f(()=>[x(b,{field:`displayName`,header:t.$t(`views.workers.plugin`),"header-class":`p-2 min-w-40`,class:`p-2 min-w-40`},{body:f(({data:e})=>[v(`div`,et,[v(`span`,tt,p(e.displayName),1),Yt(e)?(h(),y(`span`,nt,p(Yt(e)),1)):O(``,!0)])]),_:1},8,[`header`]),x(b,{header:t.$t(`views.workers.workers`),"header-class":`p-2 w-full`,class:`p-2 w-full`},{body:f(({data:e})=>[x(d,{"model-value":Q(e.workerAgentId),options:Xt(e),"option-label":`label`,"option-value":`value`,"option-disabled":`disabled`,placeholder:t.$t(`views.workers.local`),class:`w-full`,"show-clear":``,loading:Zt(e.pluginName),disabled:Zt(e.pluginName),"onUpdate:modelValue":t=>Qt(e,t)},null,8,[`model-value`,`options`,`placeholder`,`loading`,`disabled`,`onUpdate:modelValue`])]),_:1},8,[`header`])]),_:1},8,[`value`,`loading`])]),_:1})])):O(``,!0),A(Y)?(h(),y(`div`,rt,[v(`span`,it,p(t.$t(`views.workers.pair_worker`)),1),x(m,{class:`cui-card`},{content:f(()=>[v(`div`,at,[v(`span`,ot,p(t.$t(`views.workers.pair_worker_description`)),1),A(G)?(h(),y(se,{key:0},[v(`div`,st,[v(`label`,ct,p(t.$t(`views.workers.pairing_code`)),1),x(ge,null,{default:f(()=>[x(D,{"model-value":A(G).code,readonly:``,type:`text`},null,8,[`model-value`]),x(he,null,{default:f(()=>[x(k,{"action-text":t.$t(`views.workers.copied`),icon:A(re),"button-props":{severity:`secondary`,text:!0},onAction:a[3]||=e=>A(ie)(A(G).code)},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),x(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:f(()=>[S(p(t.$t(`views.workers.pairing_expires`,{minutes:A(Rt)})),1)]),_:1})]),v(`div`,lt,[v(`div`,ut,[v(`label`,dt,p(t.$t(`views.workers.pairing_snippet`)),1),x(k,{"action-text":t.$t(`views.workers.copied`),icon:A(re),"button-props":{severity:`secondary`,text:!0},onAction:a[4]||=e=>A(ie)(A(zt))},null,8,[`action-text`,`icon`])]),v(`pre`,ft,p(A(zt)),1),x(l,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:f(()=>[S(p(t.$t(`views.workers.pairing_snippet_hint`)),1)]),_:1})])],64)):O(``,!0),v(`div`,pt,[x(s,{class:`cui-button-medium`,label:t.$t(`views.workers.generate_code`),loading:A(wt),onClick:en},null,8,[`label`,`loading`])])])]),_:1})])):O(``,!0)]))])}}}),[[`__scopeId`,`data-v-11df8752`]]);export{mt as default};