@camera.ui/server 2.1.16 → 2.1.17

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 (345) hide show
  1. package/dist/interface/assets/{404-CqZDSHs_.js → 404-Cg1J2LX8.js} +1 -1
  2. package/dist/interface/assets/{About-Dk4SUTxo.js → About-CW7G6onF.js} +1 -1
  3. package/dist/interface/assets/Automation-CIwBJK1Y.js +3 -0
  4. package/dist/interface/assets/{AutomationImport-DDywNuRK.js → AutomationImport-CHkNv7C-.js} +2 -2
  5. package/dist/interface/assets/{AutomationStore-o0JYwGRr.js → AutomationStore-5bTym-Gl.js} +2 -2
  6. package/dist/interface/assets/{AutomationStoreDetail-DeAGahaF.js → AutomationStoreDetail-BF8UoG_l.js} +2 -2
  7. package/dist/interface/assets/Automations-CaX2fHhJ.js +2 -0
  8. package/dist/interface/assets/Camera-1zdmJnP-.js +2 -0
  9. package/dist/interface/assets/Camera-DSyI4J5-.css +1 -0
  10. package/dist/interface/assets/{CameraConsole-32WtMX1a.js → CameraConsole-CB1HEFKJ.js} +2 -2
  11. package/dist/interface/assets/{Cameras-zffI0fD9.js → Cameras-CyCY0rW9.js} +2 -2
  12. package/dist/interface/assets/Camview-Dia7G1u_.js +1 -0
  13. package/dist/interface/assets/{CertificateUpload-Dg0V9Hei.js → CertificateUpload-jP-JIxmY.js} +1 -1
  14. package/dist/interface/assets/{Config-CKrqFe-g.js → Config-DOa7WHyQ.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionCameraControl-sbvBJQr3.js → ConfigActionCameraControl-BmCE3XLC.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionDelay-CiPxydTn.js → ConfigActionDelay-CfHCZ0uf.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionHttp-UqiZm0kq.js → ConfigActionHttp-DdM7gEb0.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionImageInput-DkGVZ-ti.js → ConfigActionImageInput-CrPPNT4K.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionMqtt-DQu5H4bY.js → ConfigActionMqtt-D7-u4zri.js} +1 -1
  20. package/dist/interface/assets/ConfigActionNotification-BSuUI2FP.js +1 -0
  21. package/dist/interface/assets/{ConfigActionNotificationControl-B_EpM5m9.js → ConfigActionNotificationControl-DfvAxKnx.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionOutput-DeOsk0T1.js → ConfigActionOutput-DPplSpm_.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionPlugin-CSZHcNQ6.js → ConfigActionPlugin-BnRn_p26.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionSensor-Dx7DcDVr.js → ConfigActionSensor-CoEoqFAY.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionSnapshot-Baj-r4Cd.js → ConfigActionSnapshot-wXdFiyU-.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionVariable-Ccu___aS.js → ConfigActionVariable-BqJvOOHH.js} +1 -1
  27. package/dist/interface/assets/{ConfigConditionIfElse-0hU7UW8q.js → ConfigConditionIfElse-DG2Kgqn5.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionSensorState-BX19KYLJ.js → ConfigConditionSensorState-BytECo6r.js} +1 -1
  29. package/dist/interface/assets/{ConfigConditionSwitch-D-XUhwcE.js → ConfigConditionSwitch-DaSt9uZE.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionTime-B6OO8cmh.js → ConfigConditionTime-D42OsshU.js} +1 -1
  31. package/dist/interface/assets/{ConfigSensorValueInput-DZHYQez8.js → ConfigSensorValueInput-BtEmtZSm.js} +1 -1
  32. package/dist/interface/assets/{ConfigTriggerDetection-BNyR5aOG.js → ConfigTriggerDetection-CDH2fzsu.js} +1 -1
  33. package/dist/interface/assets/ConfigTriggerGeofence-Dopegic5.js +1 -0
  34. package/dist/interface/assets/{ConfigTriggerManual-DFSTAuUt.js → ConfigTriggerManual-DAtWfH0-.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerMqtt-D_O8RyrQ.js → ConfigTriggerMqtt-CB3_PxqD.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerSchedule-BFZnBfCM.js → ConfigTriggerSchedule-BUzOrF23.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSensor-D1Tst2wQ.js → ConfigTriggerSensor-D5kRIb7I.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerSystem-BNfatCp8.js → ConfigTriggerSystem-Cud77VMR.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerWebhook--nEO_Odl.js → ConfigTriggerWebhook-CeG5R3kV.js} +1 -1
  40. package/dist/interface/assets/Console-DdOD6Pd5.js +1 -0
  41. package/dist/interface/assets/{CuiAutomationRunsDialog-CkMRT1C8.js → CuiAutomationRunsDialog-Cym6xMVJ.js} +1 -1
  42. package/dist/interface/assets/CuiBottomSheet-B3QSHp4-.js +1 -0
  43. package/dist/interface/assets/{CuiBottomSheet-mKu68LHd.js → CuiBottomSheet-BSoMhymR.js} +1 -1
  44. package/dist/interface/assets/{CuiCameraPipCard-Djp8qBvZ.js → CuiCameraPipCard-DGgrxZJd.js} +1 -1
  45. package/dist/interface/assets/CuiCameraRecordings-Bu68AFdM.js +1 -0
  46. package/dist/interface/assets/{CuiCameraShares-B73pWIFh.js → CuiCameraShares-BOhfTcxQ.js} +1 -1
  47. package/dist/interface/assets/CuiCameraTable-C1CHYnda.js +1 -0
  48. package/dist/interface/assets/{CuiCameraTable-DripFD6D.js → CuiCameraTable-D0lc0VAJ.js} +2 -2
  49. package/dist/interface/assets/{CuiChartTable-DyyQV7mt.js → CuiChartTable-DcrFI8tT.js} +1 -1
  50. package/dist/interface/assets/{CuiConsole-UxJwQqNG.js → CuiConsole-ICLBq4Q-.js} +2 -2
  51. package/dist/interface/assets/{CuiDataTable-DZm0I8k7.js → CuiDataTable-BooFPsGH.js} +1 -1
  52. package/dist/interface/assets/{CuiLightControl-CB3l0ZLj.js → CuiLightControl-D1ih2hO-.js} +1 -1
  53. package/dist/interface/assets/{CuiList-DMQgYqaU.js → CuiList-ChI82KjI.js} +1 -1
  54. package/dist/interface/assets/{CuiPluginCard-HpQMNND1.js → CuiPluginCard-DqdSWrwb.js} +2 -2
  55. package/dist/interface/assets/{CuiPluginCategoryChip-C6aEP-ug.js → CuiPluginCategoryChip-DsRcMb72.js} +1 -1
  56. package/dist/interface/assets/{CuiPluginOAuthButton-DpGacvsa.js → CuiPluginOAuthButton-BSvRKUSY.js} +2 -2
  57. package/dist/interface/assets/{CuiPluginTrustBadge-Dl1PEsm6.js → CuiPluginTrustBadge-DXL7N1LC.js} +1 -1
  58. package/dist/interface/assets/CuiQRCode-DHln6Lo9.js +1 -0
  59. package/dist/interface/assets/CuiSchema-B7i2O3Fy.js +1 -0
  60. package/dist/interface/assets/{CuiTopNavbarItem-qPj6XwXr.js → CuiTopNavbarItem-TMfTyt8u.js} +1 -1
  61. package/dist/interface/assets/{Faces-DRWIPDfH.js → Faces-CyTkMqMW.js} +1 -1
  62. package/dist/interface/assets/FirstSteps-B4gb7Sgn.js +1 -0
  63. package/dist/interface/assets/Floorplan-DBwWnuys.js +1 -0
  64. package/dist/interface/assets/{Instances-VC4-anOF.js → Instances-D9fnwItz.js} +1 -1
  65. package/dist/interface/assets/{Logs-DROgZxLH.js → Logs-Brk6fJa0.js} +2 -2
  66. package/dist/interface/assets/{Menu-CmTk2or7.js → Menu-CrdBz1Er.js} +1 -1
  67. package/dist/interface/assets/Metrics-DXMgfNIL.js +9 -0
  68. package/dist/interface/assets/{OAuthDeviceFlow-BrdiDoCh.js → OAuthDeviceFlow-D5hSwHeO.js} +1 -1
  69. package/dist/interface/assets/Plugin-C65oNZ9N.js +1 -0
  70. package/dist/interface/assets/{PluginConsole-CxiW1w6K.js → PluginConsole-Bs3Z5u9-.js} +2 -2
  71. package/dist/interface/assets/PluginDetail-C3KUrHvq.js +2 -0
  72. package/dist/interface/assets/{PluginSchema-BgVZ_4if.js → PluginSchema-D22zRDkZ.js} +1 -1
  73. package/dist/interface/assets/PluginSearch-4ngDmZQ2.js +1 -0
  74. package/dist/interface/assets/PluginSearch-D7XYJzl4.js +2 -0
  75. package/dist/interface/assets/{PluginUpdateProgress-DEcle8-x.js → PluginUpdateProgress-MEdR7mID.js} +1 -1
  76. package/dist/interface/assets/Plugins-DQTlb12n.js +1 -0
  77. package/dist/interface/assets/Recordings-CqBwRvn-.js +1 -0
  78. package/dist/interface/assets/SensorEdit-BM2zHAM7.js +1 -0
  79. package/dist/interface/assets/{SensorHistory-H03yZia0.js → SensorHistory-Dbv2ODqn.js} +1 -1
  80. package/dist/interface/assets/Sensors-B4YzyU7R.js +2 -0
  81. package/dist/interface/assets/{Sensors-DzGV2Ngo.css → Sensors-DETviyjO.css} +1 -1
  82. package/dist/interface/assets/{Settings-9nC18KH8.js → Settings--wgPYOyK.js} +1 -1
  83. package/dist/interface/assets/{SettingsAccount-BTYvhCJP.js → SettingsAccount-BF6Cp8Rt.js} +1 -1
  84. package/dist/interface/assets/SettingsAccount-D7CHP0f1.js +1 -0
  85. package/dist/interface/assets/SettingsAppearance-Ba0jbbVW.js +1 -0
  86. package/dist/interface/assets/SettingsAppearance-BpXZwBjO.js +1 -0
  87. package/dist/interface/assets/{SettingsBackup-Bu48xw4v.js → SettingsBackup-qEYm-6De.js} +1 -1
  88. package/dist/interface/assets/{SettingsList-74c5OMQf.js → SettingsList-1brGZ2E_.js} +1 -1
  89. package/dist/interface/assets/{SettingsMqtt-81rJ4zV6.js → SettingsMqtt-Ds8YpoLA.js} +1 -1
  90. package/dist/interface/assets/SettingsNotifications-Diqpfbrh.js +1 -0
  91. package/dist/interface/assets/{SettingsPermissions-DqyVtVKE.js → SettingsPermissions-GmGacrLc.js} +1 -1
  92. package/dist/interface/assets/{SettingsRecordings-Bxn28Frz.js → SettingsRecordings-CtEm_7PE.js} +1 -1
  93. package/dist/interface/assets/SettingsRemote-CENHI51U.js +2 -0
  94. package/dist/interface/assets/SettingsSystem-YkigO2-V.js +2 -0
  95. package/dist/interface/assets/{SettingsUsers-DUOJN7uO.js → SettingsUsers-BNPa87gu.js} +1 -1
  96. package/dist/interface/assets/{Terminal-45QW5yPE.js → Terminal-uxOHZpUp.js} +3 -3
  97. package/dist/interface/assets/Training-BRZKDa8S.js +1 -0
  98. package/dist/interface/assets/Training-DMNjB3uX.css +1 -0
  99. package/dist/interface/assets/{Updates-B32Pra5E.js → Updates-CbscgL60.js} +1 -1
  100. package/dist/interface/assets/{VariableInput-CyTGQFtz.js → VariableInput-Dqg4sqBD.js} +1 -1
  101. package/dist/interface/assets/{VariableSuggestions-BLlD4F87.js → VariableSuggestions-DZCkPAVs.js} +1 -1
  102. package/dist/interface/assets/{VersionsHandler-CIq6v6lE.js → VersionsHandler-BYFshrhO.js} +2 -2
  103. package/dist/interface/assets/{VirtualSensorCreate-Di2IyYAg.js → VirtualSensorCreate-CQ-C4si3.js} +1 -1
  104. package/dist/interface/assets/{Workers-tb039NGc.js → Workers-DC77SjZQ.js} +2 -2
  105. package/dist/interface/assets/api-Cb8_C_se.js +4 -0
  106. package/dist/interface/assets/{api-4JRK8ya0.js → api-CbYNh0N1.js} +1 -1
  107. package/dist/interface/assets/api-DIyogyx5.css +2 -0
  108. package/dist/interface/assets/{auth-ISkWvJbZ.js → auth-Bev1OdHw.js} +1 -1
  109. package/dist/interface/assets/{automations-CeH81DN-.js → automations-DrpESBB_.js} +1 -1
  110. package/dist/interface/assets/cameraSources-QF2xqMxX.js +1 -0
  111. package/dist/interface/assets/cloudHandoff-BknPGUc0.js +1 -0
  112. package/dist/interface/assets/{config-DthCyQJv.js → config-DCK7k2P4.js} +1 -1
  113. package/dist/interface/assets/{flowSchema-DZ2bDhJt.js → flowSchema-D3Ddm5sW.js} +1 -1
  114. package/dist/interface/assets/{intercomService-Bd71KwsB.js → intercomService-DIwpkwG4.js} +1 -1
  115. package/dist/interface/assets/{main-ExPfCNlz.css → main-Cb5Z8N7b.css} +1 -1
  116. package/dist/interface/assets/main-DVwdxi04.js +3 -0
  117. package/dist/interface/assets/{mqtt-oPORDio9.js → mqtt-COWs_r7k.js} +1 -1
  118. package/dist/interface/assets/{notifications-BirFkpbF.js → notifications-sIv1-H85.js} +1 -1
  119. package/dist/interface/assets/{plugins-vyA7MMhx.js → plugins-CXQj6XQt.js} +1 -1
  120. package/dist/interface/assets/{rooms-MfPQPywT.js → rooms-DScX89Ks.js} +1 -1
  121. package/dist/interface/assets/{sensorIcons-B4H11BbT.js → sensorIcons-CvVtOgZB.js} +1 -1
  122. package/dist/interface/assets/sensorSlots-DsfKs8_k.js +1 -0
  123. package/dist/interface/assets/{sensors-xryx8Wvn.js → sensors-Bf_gYmB5.js} +1 -1
  124. package/dist/interface/assets/{server-BK9gwxH8.js → server-CahE6_Pv.js} +1 -1
  125. package/dist/interface/assets/{theme-DQeAzJ1v.js → theme-DmUc7UHl.js} +1 -1
  126. package/dist/interface/assets/{types-Bcj_K26s.js → types-D4kUDpid.js} +1 -1
  127. package/dist/interface/assets/{types-kN1Tn2Og.js → types-Dse8_nTX.js} +1 -1
  128. package/dist/interface/assets/{types-D626ASim.js → types-hwOSxlNg.js} +1 -1
  129. package/dist/interface/assets/ungrouped-Byxe4LNR.js +1 -0
  130. package/dist/interface/assets/ungrouped-n3OnGhCH.css +1 -0
  131. package/dist/interface/assets/{updates-Dzqxen12.js → updates-C4gAnNY6.js} +1 -1
  132. package/dist/interface/assets/{useAppVersion-JY7cdzlr.js → useAppVersion--b5Zj7tl.js} +1 -1
  133. package/dist/interface/assets/{useBackupRestore-CeShFVWy.js → useBackupRestore-Bx13MgrJ.js} +1 -1
  134. package/dist/interface/assets/{useCameraOptions-BeUNT5Rz.js → useCameraOptions-DN4gJjIl.js} +1 -1
  135. package/dist/interface/assets/{useLogsSocket-DDSuX00j.js → useLogsSocket-DqVa6Hky.js} +1 -1
  136. package/dist/interface/assets/{useNavLayout-DgAgRNq2.js → useNavLayout-CuQ9F9cj.js} +1 -1
  137. package/dist/interface/assets/{usePermissions-DFzwIs8L.js → usePermissions-C1L7m3Nc.js} +1 -1
  138. package/dist/interface/assets/{usePluginUpdates-Bb-LOOyL.js → usePluginUpdates-CvQPy02x.js} +1 -1
  139. package/dist/interface/assets/{usePushRegistration-iverdyzz.js → usePushRegistration-BKvefMFq.js} +1 -1
  140. package/dist/interface/assets/{useServerRestart-BchofDLe.js → useServerRestart-ByN6484v.js} +1 -1
  141. package/dist/interface/assets/{useStreamStatus-BOJt1v1c.js → useStreamStatus-BbtTnidZ.js} +1 -1
  142. package/dist/interface/assets/{useTabSwipe-v0Yet-YZ.js → useTabSwipe-D9udGzPx.js} +1 -1
  143. package/dist/interface/assets/{useUpdateChannel-K9ADk5yx.js → useUpdateChannel-8t3W9dNr.js} +1 -1
  144. package/dist/interface/assets/{useUpdatesSocket-sj1-DmFM.js → useUpdatesSocket-D9s_5T3l.js} +1 -1
  145. package/dist/interface/assets/{useUserOptions-BnF_qBdZ.js → useUserOptions-CEPYkuSm.js} +1 -1
  146. package/dist/interface/assets/{vendor-cameraui-BPX4wReW.js → vendor-cameraui-Dlzn4pyz.js} +26 -26
  147. package/dist/interface/assets/vendor-core-COMSlypG.js +1 -0
  148. package/dist/interface/assets/{vendor-primevue-iEFYdXsu.js → vendor-primevue-DF71EsUM.js} +55 -55
  149. package/dist/interface/ha/{404-DlQnv9jN.js → 404-Bm-oxxip.js} +1 -1
  150. package/dist/interface/ha/{About-BLQJmllv.js → About-CDcN0Q2J.js} +3 -3
  151. package/dist/interface/ha/{Automation-DLMPArOd.js → Automation-BQd4b0ym.js} +102 -102
  152. package/dist/interface/ha/{AutomationImport-Qzz3Ta4D.js → AutomationImport-CX1C76Wb.js} +6 -6
  153. package/dist/interface/ha/{AutomationStore-DNXC9s6h.js → AutomationStore-D4B0KpoW.js} +56 -56
  154. package/dist/interface/ha/{AutomationStoreDetail-CTqydRKj.js → AutomationStoreDetail-B53Giz4B.js} +6 -6
  155. package/dist/interface/ha/{Automations-DRxe1fli.js → Automations-BXlwOElS.js} +124 -124
  156. package/dist/interface/ha/{Camera-OrI4Wf4F.js → Camera-CauwMneE.js} +21 -19
  157. package/dist/interface/ha/{CameraConsole-6yGhoHmu.js → CameraConsole-CmsMjuIR.js} +5 -5
  158. package/dist/interface/ha/{Cameras-DpEaKKDG.js → Cameras-CyHDmgs0.js} +259 -259
  159. package/dist/interface/ha/{Camview-CnPz4cGs.js → Camview-BwwvU5k8.js} +70 -70
  160. package/dist/interface/ha/{Config-Bb2ERyAA.js → Config-C_Zuyeoc.js} +10 -10
  161. package/dist/interface/ha/{ConfigActionCameraControl-CC2tWFz2.js → ConfigActionCameraControl-C1_QyuX8.js} +3 -3
  162. package/dist/interface/ha/{ConfigActionHttp-DBsEL44i.js → ConfigActionHttp-C0d433mh.js} +2 -2
  163. package/dist/interface/ha/{ConfigActionImageInput-Rt3AOJ3I.js → ConfigActionImageInput-BYys2FwC.js} +1 -1
  164. package/dist/interface/ha/{ConfigActionMqtt-BYSSc954.js → ConfigActionMqtt-DznDfzze.js} +4 -4
  165. package/dist/interface/ha/{ConfigActionNotification-DKlIsZJd.js → ConfigActionNotification-CC2qfBLm.js} +3 -3
  166. package/dist/interface/ha/{ConfigActionNotificationControl-D5AVW2tR.js → ConfigActionNotificationControl-3jlm7_A4.js} +2 -2
  167. package/dist/interface/ha/{ConfigActionOutput-DIlu8Ujc.js → ConfigActionOutput-BEf1U3_l.js} +1 -1
  168. package/dist/interface/ha/{ConfigActionPlugin-o1YNBh-g.js → ConfigActionPlugin-C57BUrJD.js} +5 -5
  169. package/dist/interface/ha/{ConfigActionSensor-BEvwg0tf.js → ConfigActionSensor-BkoSPCUJ.js} +5 -5
  170. package/dist/interface/ha/{ConfigActionSnapshot-Bnw0JNNj.js → ConfigActionSnapshot-CC3EpmCq.js} +2 -2
  171. package/dist/interface/ha/{ConfigActionVariable-oGPagsvF.js → ConfigActionVariable-JDyDhSzZ.js} +1 -1
  172. package/dist/interface/ha/{ConfigConditionIfElse-7LCDNDvS.js → ConfigConditionIfElse-BVg-TUpv.js} +3 -3
  173. package/dist/interface/ha/{ConfigConditionSensorState-nO-s7wi6.js → ConfigConditionSensorState-YYeWly1H.js} +4 -4
  174. package/dist/interface/ha/{ConfigConditionSwitch-GrIKkY-P.js → ConfigConditionSwitch-DQHXX-4U.js} +5 -5
  175. package/dist/interface/ha/{ConfigSensorValueInput-Cthp3KXt.js → ConfigSensorValueInput-BuuzQ1nJ.js} +4 -4
  176. package/dist/interface/ha/{ConfigTriggerDetection-CJE9QFaK.js → ConfigTriggerDetection-CUvkAmpJ.js} +12 -12
  177. package/dist/interface/ha/{ConfigTriggerGeofence-Cyeu7Cit.js → ConfigTriggerGeofence-CCHELnfy.js} +7 -7
  178. package/dist/interface/ha/{ConfigTriggerMqtt-D5EoOztE.js → ConfigTriggerMqtt-BfLnCiWZ.js} +1 -1
  179. package/dist/interface/ha/{ConfigTriggerSensor-DYg_HRjO.js → ConfigTriggerSensor-Bi-Jld2G.js} +1 -1
  180. package/dist/interface/ha/{ConfigTriggerSystem-DzpajiyS.js → ConfigTriggerSystem-_HXrWjaJ.js} +2 -2
  181. package/dist/interface/ha/{ConfigTriggerWebhook-IE4PVb4O.js → ConfigTriggerWebhook-CFYsVF_r.js} +1 -1
  182. package/dist/interface/ha/{Console-BYgny5Dy.js → Console-CR95JZFd.js} +8 -8
  183. package/dist/interface/ha/{CuiAutomationRunsDialog-CoYgpbW0.js → CuiAutomationRunsDialog--mpkPFmw.js} +2 -2
  184. package/dist/interface/ha/{CuiBottomSheet-C4cK3fYK.js → CuiBottomSheet-DfFzwDjq.js} +1 -1
  185. package/dist/interface/ha/{CuiCameraRecordings-BAxchc71.js → CuiCameraRecordings-DCIFFbFk.js} +17 -18
  186. package/dist/interface/ha/{CuiCameraShares-CfQr1iyX.js → CuiCameraShares-Dwv_XtX4.js} +2 -2
  187. package/dist/interface/ha/{CuiCameraTable-B60mcEl_.js → CuiCameraTable-L6wd-VYz.js} +2 -2
  188. package/dist/interface/ha/{CuiChartTable-CbUVz-Cj.js → CuiChartTable-CxJR8u6U.js} +42 -42
  189. package/dist/interface/ha/{CuiConsole-DEjAQFwC.js → CuiConsole-CvL9TXZY.js} +20 -20
  190. package/dist/interface/ha/{CuiDataTable-005ptLsa.js → CuiDataTable-Bn80WJXi.js} +6 -6
  191. package/dist/interface/ha/{CuiPluginCard-BWwPLJ6m.js → CuiPluginCard-CtOzPAal.js} +18 -18
  192. package/dist/interface/ha/{CuiPluginOAuthButton-CgmDgRY9.js → CuiPluginOAuthButton-1LgNMLII.js} +3 -3
  193. package/dist/interface/ha/{CuiPluginTrustBadge-BWnP1whX.js → CuiPluginTrustBadge-mHuy3ab9.js} +1 -1
  194. package/dist/interface/ha/{CuiQRCode-ONkk6Wqy.js → CuiQRCode-CloepWte.js} +2 -2
  195. package/dist/interface/ha/{CuiSchema-C3uI1GwG.js → CuiSchema-CJsEWewj.js} +19 -19
  196. package/dist/interface/ha/{CuiTopNavbarItem-Bhws0XkE.js → CuiTopNavbarItem-B2EM-tmz.js} +1 -1
  197. package/dist/interface/ha/{Faces-DuxYlZGd.js → Faces-BMkZfxDm.js} +107 -107
  198. package/dist/interface/ha/{FirstSteps-BAlqShSK.js → FirstSteps-BH0mga3u.js} +11 -11
  199. package/dist/interface/ha/{Floorplan-BVwSNFd6.js → Floorplan-CyfIUI4Z.js} +275 -275
  200. package/dist/interface/ha/{Instances-BM9sRNSP.js → Instances-BwNXc91J.js} +70 -70
  201. package/dist/interface/ha/{Logs-KISz4BU-.js → Logs-CcSiN16r.js} +8 -8
  202. package/dist/interface/ha/{Menu-DYI6PeIn.js → Menu-qdN0OBb7.js} +10 -10
  203. package/dist/interface/ha/{Metrics-BjpKFunA.js → Metrics-ClM5lhvC.js} +89 -89
  204. package/dist/interface/ha/{OAuthDeviceFlow-DG-KUGZj.js → OAuthDeviceFlow-BBr-rER_.js} +3 -3
  205. package/dist/interface/ha/{Plugin-BjWyUUhe.js → Plugin-BBkSXygO.js} +50 -50
  206. package/dist/interface/ha/{PluginConsole-BK3cotea.js → PluginConsole-DqrBnXSX.js} +6 -6
  207. package/dist/interface/ha/{PluginDetail-BDzDeShX.js → PluginDetail-Clu6nv-B.js} +9 -9
  208. package/dist/interface/ha/{PluginSearch-DsFUuPC-.js → PluginSearch-Dn-24FLX.js} +32 -32
  209. package/dist/interface/ha/{PluginUpdateProgress-BMrdkjRq.js → PluginUpdateProgress-CzhHUKDg.js} +3 -3
  210. package/dist/interface/ha/{Plugins-3WPnsHXw.js → Plugins-qYJD5ioU.js} +16 -16
  211. package/dist/interface/ha/{Recordings-0wDF4ArK.js → Recordings-CBIt3vL7.js} +354 -355
  212. package/dist/interface/ha/{SensorEdit-B0L2zIha.js → SensorEdit-BbG6apZA.js} +349 -349
  213. package/dist/interface/ha/{SensorHistory-CQJEY1sW.js → SensorHistory-CqGsnQPW.js} +2 -2
  214. package/dist/interface/ha/{Sensors-BYdBTCLo.js → Sensors-mKWkCDF8.js} +474 -448
  215. package/dist/interface/ha/{Settings-BaqGiBCa.js → Settings-C5J4ubiA.js} +10 -10
  216. package/dist/interface/ha/{SettingsAccount-B0Sth0EF.js → SettingsAccount-tCyZsBxG.js} +39 -39
  217. package/dist/interface/ha/{SettingsAppearance-B_oylmTa.js → SettingsAppearance-DqJp4Clt.js} +6 -6
  218. package/dist/interface/ha/{SettingsBackup-BLmoV5AW.js → SettingsBackup-CHnCKYgz.js} +5 -5
  219. package/dist/interface/ha/{SettingsList-CMX7wMye.js → SettingsList-DsQOPeKW.js} +1 -1
  220. package/dist/interface/ha/{SettingsMqtt-C-sGwxOZ.js → SettingsMqtt-TPIsEcXe.js} +180 -180
  221. package/dist/interface/ha/{SettingsNotifications-tc9FCCUF.js → SettingsNotifications-DH3T_xyh.js} +3 -3
  222. package/dist/interface/ha/{SettingsRecordings-DDs16z2A.js → SettingsRecordings-Ay8lj8Lm.js} +4 -4
  223. package/dist/interface/ha/{SettingsRemote-0c0umjFJ.js → SettingsRemote-CHiBADuu.js} +314 -314
  224. package/dist/interface/ha/{SettingsSystem-DfXxWXQk.js → SettingsSystem-tqs40pUW.js} +8 -8
  225. package/dist/interface/ha/{SettingsUsers-CmjC0zsF.js → SettingsUsers-BUbC_Qc7.js} +39 -39
  226. package/dist/interface/ha/{Terminal-nbUX6PPZ.js → Terminal-f_b-089t.js} +4 -4
  227. package/dist/interface/ha/Training-Dcxo9PFi.js +1479 -0
  228. package/dist/interface/ha/{Updates-UaxBGn6D.js → Updates-aGl5hy8Q.js} +11 -11
  229. package/dist/interface/ha/{VariableInput-0bF2H1Bm.js → VariableInput-yJGbaZEo.js} +1 -1
  230. package/dist/interface/ha/{VersionsHandler-CnXVnfBl.js → VersionsHandler-Q4PfRpbs.js} +10 -10
  231. package/dist/interface/ha/{VirtualSensorCreate-BE60rAkJ.js → VirtualSensorCreate-Gbi6aJBh.js} +8 -8
  232. package/dist/interface/ha/{Workers-CaX3Z3w-.js → Workers-BbBqOc0H.js} +129 -129
  233. package/dist/interface/ha/{api-CmcbBFTx.js → api-DBu4gh4_.js} +8390 -8315
  234. package/dist/interface/ha/{api-S-NnjUWl.js → api-DY0z6Sp_.js} +3 -3
  235. package/dist/interface/ha/{auth-CqYE7s1-.js → auth-C2V-kpRp.js} +38 -38
  236. package/dist/interface/ha/{automationBlueprint-Dmp54JD1.js → automationBlueprint-MGUZJTFY.js} +4 -4
  237. package/dist/interface/ha/cameraui-cards.js +1 -1
  238. package/dist/interface/ha/{cards-MnCBmBIR.js → cards-BA6g_9R5.js} +566 -566
  239. package/dist/interface/ha/{config-C94KN4WM.js → config-BGlhgEOa.js} +15 -15
  240. package/dist/interface/ha/{dist-BQFunPaA.js → dist-BqTZri2H.js} +743 -725
  241. package/dist/interface/ha/{mqtt-HDLqlOJt.js → mqtt-BLKZNA-E.js} +15 -15
  242. package/dist/interface/ha/{notifications-C2_2_NRh.js → notifications-BW0RNMnG.js} +22 -22
  243. package/dist/interface/ha/{pinia-DLNUke3Q.js → pinia-DINxhtY-.js} +168 -165
  244. package/dist/interface/ha/{plugins-l2i4DgqO.js → plugins-Cj-B4Nwy.js} +68 -68
  245. package/dist/interface/ha/{rooms-Bp1ZVAzT.js → rooms-C32i51p-.js} +8 -8
  246. package/dist/interface/ha/{server-BsduJDAB.js → server-CfbE_0Z9.js} +32 -32
  247. package/dist/interface/ha/{types-iZUCCt1P.js → types-Ry6RjBNa.js} +17 -17
  248. package/dist/interface/ha/ungrouped-CO29-tSV.js +1320 -0
  249. package/dist/interface/ha/{updates-CDsPvhpo.js → updates-CZPI8XJ1.js} +37 -37
  250. package/dist/interface/ha/{useAppVersion-BJtSGn4X.js → useAppVersion-9jfqRo_z.js} +1 -1
  251. package/dist/interface/ha/{useLogsSocket-Ck-ZQpQD.js → useLogsSocket-B0E7a3ys.js} +1 -1
  252. package/dist/interface/ha/{useNavLayout-Bn6HYs-i.js → useNavLayout-B2wfeha-.js} +2 -2
  253. package/dist/interface/ha/{useServerRestart-fff_KK9Y.js → useServerRestart-CCH-yMWR.js} +1 -1
  254. package/dist/interface/ha/{useTabSwipe-B1CQZuyT.js → useTabSwipe-D2uqGEvR.js} +1 -1
  255. package/dist/interface/ha/{useUpdateChannel-DUBmGEDe.js → useUpdateChannel--SP3Wjym.js} +2 -2
  256. package/dist/interface/ha/{useUpdatesSocket-DoLb2kcJ.js → useUpdatesSocket-BBbUCMU-.js} +1 -1
  257. package/dist/interface/ha/{useUserOptions-D0kNSHFH.js → useUserOptions-Bh54UAkH.js} +1 -1
  258. package/dist/interface/index.html +28 -27
  259. package/dist/interface/sw.js +1 -1
  260. package/dist/server/package.json +1 -1
  261. package/dist/server/src/api/controllers/training.controller.d.ts +4 -2
  262. package/dist/server/src/api/controllers/training.controller.js +2 -2
  263. package/dist/server/src/api/controllers/training.controller.js.map +1 -1
  264. package/dist/server/src/api/database/record-schemas.d.ts +1 -0
  265. package/dist/server/src/api/database/record-schemas.js +1 -0
  266. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  267. package/dist/server/src/api/routes/training.routes.js +3 -2
  268. package/dist/server/src/api/routes/training.routes.js.map +1 -1
  269. package/dist/server/src/api/schemas/training.schema.d.ts +4 -0
  270. package/dist/server/src/api/schemas/training.schema.js +3 -0
  271. package/dist/server/src/api/schemas/training.schema.js.map +1 -1
  272. package/dist/server/src/api/services/sensors.service.d.ts +1 -0
  273. package/dist/server/src/api/services/sensors.service.js +1 -0
  274. package/dist/server/src/api/services/sensors.service.js.map +1 -1
  275. package/dist/server/src/api/types/index.d.ts +2 -1
  276. package/dist/server/src/camera/decoder/detection-coordinator.js +23 -7
  277. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  278. package/dist/server/src/camera/decoder/detection-window.d.ts +5 -0
  279. package/dist/server/src/camera/decoder/detection-window.js +5 -5
  280. package/dist/server/src/camera/decoder/detection-window.js.map +1 -1
  281. package/dist/server/src/camera/decoder/event-manager.d.ts +5 -1
  282. package/dist/server/src/camera/decoder/event-manager.js +21 -14
  283. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  284. package/dist/server/src/camera/decoder/training-sink.d.ts +14 -3
  285. package/dist/server/src/camera/decoder/training-sink.js +32 -17
  286. package/dist/server/src/camera/decoder/training-sink.js.map +1 -1
  287. package/dist/server/src/camera/decoder/types.d.ts +1 -1
  288. package/dist/server/src/camera/decoder/types.js +2 -6
  289. package/dist/server/src/camera/decoder/types.js.map +1 -1
  290. package/dist/server/src/manager/trainingCandidateManager.d.ts +2 -3
  291. package/dist/server/src/manager/trainingCandidateManager.js +17 -18
  292. package/dist/server/src/manager/trainingCandidateManager.js.map +1 -1
  293. package/dist/server/src/manager/types.d.ts +5 -0
  294. package/dist/server/src/remote/api/routes/train.d.ts +6 -1
  295. package/dist/server/src/remote/api/routes/train.js +6 -2
  296. package/dist/server/src/remote/api/routes/train.js.map +1 -1
  297. package/dist/server/src/sensors/registry.d.ts +1 -0
  298. package/dist/server/src/sensors/registry.js +10 -0
  299. package/dist/server/src/sensors/registry.js.map +1 -1
  300. package/package.json +1 -1
  301. package/dist/interface/assets/Automation-CDvt2MXN.js +0 -3
  302. package/dist/interface/assets/Automations-2K-7hZfK.js +0 -2
  303. package/dist/interface/assets/Camera-B72IU-UF.js +0 -2
  304. package/dist/interface/assets/Camera-Cm9I0H6c.css +0 -1
  305. package/dist/interface/assets/Camview-KzzN0Q1w.js +0 -1
  306. package/dist/interface/assets/ConfigActionNotification-C2uXIMpm.js +0 -1
  307. package/dist/interface/assets/ConfigTriggerGeofence-Cuq1SnOZ.js +0 -1
  308. package/dist/interface/assets/Console-DkylrXI4.js +0 -1
  309. package/dist/interface/assets/CuiBottomSheet-DILQuWKb.js +0 -1
  310. package/dist/interface/assets/CuiCameraRecordings-Bi0I7jeO.js +0 -1
  311. package/dist/interface/assets/CuiCameraTable-CUdAnRJP.js +0 -1
  312. package/dist/interface/assets/CuiQRCode-D04Onyhk.js +0 -1
  313. package/dist/interface/assets/CuiRecordingsGrid-BhATIjIf.css +0 -1
  314. package/dist/interface/assets/CuiRecordingsGrid-BzyJWpFt.js +0 -1
  315. package/dist/interface/assets/CuiSchema-thjfmEWw.js +0 -1
  316. package/dist/interface/assets/FirstSteps-C6GVpZVr.js +0 -1
  317. package/dist/interface/assets/Floorplan-Q-UYDnrE.js +0 -1
  318. package/dist/interface/assets/Metrics-CYZF-em9.js +0 -9
  319. package/dist/interface/assets/Plugin-DuPHiiYJ.js +0 -1
  320. package/dist/interface/assets/PluginDetail-DWP7_hNa.js +0 -2
  321. package/dist/interface/assets/PluginSearch-1djFQUjL.js +0 -1
  322. package/dist/interface/assets/PluginSearch-Ba-hQHxm.js +0 -2
  323. package/dist/interface/assets/Plugins-BZ3U4pcG.js +0 -1
  324. package/dist/interface/assets/Recordings-CI5MIFR-.js +0 -1
  325. package/dist/interface/assets/SensorEdit-B6s-VZ3F.js +0 -1
  326. package/dist/interface/assets/Sensors-DDPUwbb-.js +0 -2
  327. package/dist/interface/assets/SettingsAccount-CKi0z3Bm.js +0 -1
  328. package/dist/interface/assets/SettingsAppearance-CDbQnSvl.js +0 -1
  329. package/dist/interface/assets/SettingsAppearance-D9Y28zzz.js +0 -1
  330. package/dist/interface/assets/SettingsNotifications-xHV5KiZg.js +0 -1
  331. package/dist/interface/assets/SettingsRemote-7h2dKJlF.js +0 -2
  332. package/dist/interface/assets/SettingsSystem-D-MLhCdN.js +0 -2
  333. package/dist/interface/assets/Training-B5SzDUAC.css +0 -1
  334. package/dist/interface/assets/Training-DWrQVSS0.js +0 -1
  335. package/dist/interface/assets/api-CFf063x3.js +0 -4
  336. package/dist/interface/assets/api-eoOLTOnS.css +0 -2
  337. package/dist/interface/assets/cameraSources-CgAEmb37.js +0 -1
  338. package/dist/interface/assets/cloudHandoff-B_kCnm4R.js +0 -1
  339. package/dist/interface/assets/main--lW4P3A4.js +0 -3
  340. package/dist/interface/assets/ungrouped-C6pQb0X4.css +0 -1
  341. package/dist/interface/assets/ungrouped-C_gJm6d7.js +0 -1
  342. package/dist/interface/assets/vendor-core-D0ANiY7g.js +0 -1
  343. package/dist/interface/ha/CuiRecordingsGrid-D6HHyF1D.js +0 -735
  344. package/dist/interface/ha/Training-GMcD4Qg9.js +0 -1440
  345. package/dist/interface/ha/ungrouped-wz-KNJpA.js +0 -426
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./VersionsHandler-CIq6v6lE.js","./vendor-cameraui-BPX4wReW.js","./rolldown-runtime-C0FnF6B9.js","./vendor-nVfLT5jI.js","./api-CFf063x3.js","./intercomService-Bd71KwsB.js","./vendor-zod-CJ7LAMqQ.js","./types-D626ASim.js","./alert-outline-E6GK9c5n.js","./vendor-core-D0ANiY7g.js","./vendor-primevue-iEFYdXsu.js","./vendor-dnd-BopggnhP.js","./close-BiHUNAkN.js","./vendor-draggabilly-Ci8TnnTO.js","./api-eoOLTOnS.css","./server-BK9gwxH8.js","./useServerRestart-BchofDLe.js","./alert-circle-CDCxdnIi.js","./plugins-vyA7MMhx.js","./CuiConsole-UxJwQqNG.js","./content-copy-VcYnXV6l.js","./vendor-xterm-Bor91IHm.js","./vendor-xterm-BrP-ENHg.css","./CuiConsole-CoA-Nq-_.css","./useLogsSocket-DDSuX00j.js","./CuiMarkdownContent-Diua-pVD.js","./vendor-markdown-CuuUoQv-.js","./vendor-markdown-DtOhvyRx.css","./platformLabels-D-cF6OTP.js","./config-DthCyQJv.js","./useUpdateChannel-K9ADk5yx.js","./CertificateUpload-Dg0V9Hei.js","./upload-BJQKy0Z4.js"])))=>i.map(i=>d[i]);
2
- import{Br as e,Ft as t,K as n,zt as r}from"./vendor-cameraui-BPX4wReW.js";import{Tn as i,g as a,jn as o,jr as s,kr as c,nt as l,rt as u}from"./api-CFf063x3.js";import{$t as d,An as ee,Dn as te,Kn as f,Mn as p,Rt as m,Yn as h,an as g,dn as _,fn as v,hr as y,in as b,mn as ne,on as x,rn as S,sn as C,sr as w,ur as re,yr as T}from"./vendor-nVfLT5jI.js";import{a as ie,i as ae}from"./intercomService-Bd71KwsB.js";import{K as oe,z as se}from"./vendor-primevue-iEFYdXsu.js";import{a as ce,c as le,d as ue,r as de,s as fe,t as pe}from"./server-BK9gwxH8.js";import{n as me}from"./useServerRestart-BchofDLe.js";import{n as he,t as ge}from"./api-4JRK8ya0.js";import{t as _e}from"./useUpdateChannel-K9ADk5yx.js";import{t as ve}from"./useAppVersion-JY7cdzlr.js";var ye={class:`flex flex-col w-full gap-6`},be={class:`flex items-center gap-4`},xe={class:`flex flex-col field-switch-gap`},Se={for:`betaChannel`,class:`cui-label-switch`},Ce={class:`flex flex-col gap-6`},we={key:0,class:`flex flex-row items-center justify-between`},Te={class:`text-sm`},Ee={key:1,class:`text-sm font-bold`},De={key:1,class:`flex flex-row items-center justify-between`},Oe={class:`text-sm`},ke={class:`text-sm font-bold`},Ae={key:0,class:`text-muted font-normal`},je={class:`flex flex-row items-center justify-between`},Me={class:`text-sm`},Ne={key:1,class:`text-sm font-bold`},Pe={key:2,class:`flex w-full items-center gap-2`},Fe={key:0},Ie={class:`card-title`},Le={class:`flex flex-col gap-6`},Re={class:`text-sm`},ze={key:0,class:`flex flex-col gap-2`},Be={class:`cui-label`},Ve={class:`flex justify-between gap-4 text-sm`},He={class:`text-muted shrink-0`},Ue={class:`text-right break-all`},We={class:`flex justify-between gap-4 text-sm`},Ge={class:`text-muted shrink-0`},Ke={class:`text-right break-all`},qe={class:`flex justify-between gap-4 text-sm`},Je={class:`text-muted shrink-0`},Ye={class:`text-right`},Xe={key:2,class:`text-sm text-muted`},Ze={class:`flex flex-wrap gap-2 ml-auto`},Qe={class:`card-title`},$e={class:`flex flex-col gap-6`},et={class:`text-sm`},tt={key:1},E={class:`card-title`},nt={class:`flex flex-col gap-6`},rt={class:`text-sm`},D=ne({__name:`SettingsSystem`,setup(ne){let D=u(()=>m(()=>import(`./VersionsHandler-CIq6v6lE.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]),import.meta.url)),it=u(()=>m(()=>import(`./CertificateUpload-Dg0V9Hei.js`),__vite__mapDeps([31,1,2,3,10,32]),import.meta.url)),O=new ge,k=new pe,A=ie(),j=l(),M=c(),{t:N}=e(),{isElectronApp:P,electron:at}=ae(),{isOnline:F}=s(),{restarting:I,beginServerRestart:ot}=me(),{isBeta:st,setBeta:ct}=_e(),{appVersion:L,nativeVersion:R,refreshAppVersion:lt}=ve(),ut=a(),{data:z,isBusy:dt}=O.apiInfoQuery(),{mutate:ft,isPending:pt}=k.restartServerQuery(),{mutateAsync:mt,isPending:ht}=k.resetServerQuery(),B=w(N(`views.settings.unknown`)),V=w(N(`views.settings.unknown`)),H=w(!1),U=re(null),W=w(!1),G=0,K=S(()=>!P&&i(void 0,`master`)),gt=S(()=>{let e=U.value?.info;return!!(e&&e.chainLength<=1&&!e.selfSigned)}),q=S(()=>z.value?.electron??!1),J=S(()=>pt.value||ht.value||dt.value),Y=S(()=>z.value?.installedVersion||z.value?.version),X=S(()=>z.value?.restartRequired??!1),Z=S(()=>J.value||!F.value||I.value);function _t(e){ct(e===!0)}async function vt(){if(!H.value){H.value=!0;try{let e=await de(),t=new Blob([e],{type:`application/x-x509-ca-cert`});await o({blob:t,filename:`cert.pem`,mimeType:`application/x-x509-ca-cert`})}catch(e){A.error(e)}H.value=!1}}function yt(){ot(),ft()}function Q(e){switch(e){case`restart`:j.openTextDialog({data:{title:N(`components.dialog.title.restart`),confirmText:N(`components.form.button.restart`),contentText:N(`components.dialog.message.confirm_restart_server`),loading:J},onConfirm:yt});break;case`reset`:j.openTextDialog({data:{title:N(`components.dialog.title.reset_server`),confirmText:N(`components.form.button.reset`),contentText:N(`components.dialog.message.confirm_reset_server`),loading:J},onConfirm:async()=>{try{await mt()}catch{}finally{ut.logout()}}});break;case`versions`:j.openComponentDialog(D,{data:{title:N(`components.dialog.title.install_version`),confirmText:N(`components.form.button.install`),loading:J,contentProps:{target:{type:`server`}}}})}}async function bt(){if(P)try{V.value=await at.invoke(`get-app-version`)??N(`views.settings.unknown`)}catch(e){A.error(`Error getting electron app version:`,e)}}async function xt(){let e=++G;for(let t=0;t<30;t++)try{if(await he({signal:AbortSignal.timeout(5e3)}),e!==G)return;O.queryClient.invalidateQueries({queryKey:[`api`]});return}catch{if(await new Promise(e=>setTimeout(e,2e3)),e!==G||!F.value)return}}function $(){j.openTextDialog({data:{title:N(`views.settings.certificate_restart_title`),confirmText:N(`components.form.button.restart`),contentText:N(`views.settings.certificate_restart_info`)},onConfirm:async()=>{try{await le(),M.add({severity:`success`,detail:N(`views.settings.certificate_restart_done`),life:5e3})}catch(e){M.add({severity:`error`,detail:e?.response?.data?.message??e?.message,life:5e3})}}})}async function St(){try{U.value=await ce()}catch(e){A.error(`Certificate state failed:`,e)}}function Ct(){j.openComponentDialog(it,{data:{title:N(`views.settings.certificate_upload_title`),confirmText:N(`components.form.button.upload`),contentProps:{hasCertificate:U.value?.present===!0}},onConfirm:e=>wt(e)})}async function wt(e){W.value=!0;try{U.value=await ue(e),M.add({severity:`success`,detail:N(`views.settings.certificate_stored`),life:5e3}),$()}catch(e){M.add({severity:`error`,detail:e?.response?.data?.message??e?.message,life:5e3})}finally{W.value=!1}}function Tt(){j.openTextDialog({data:{title:N(`views.settings.certificate_remove_title`),confirmText:N(`components.form.button.remove`),contentText:N(`views.settings.certificate_remove_confirm`),loading:W},onConfirm:Et})}async function Et(){W.value=!0;try{U.value=await fe(),M.add({severity:`success`,detail:N(`views.settings.certificate_removed`),life:5e3}),$()}catch(e){M.add({severity:`error`,detail:e?.response?.data?.message??e?.message,life:5e3})}finally{W.value=!1}}return f(z,()=>{B.value=z.value?.version||N(`views.settings.unknown`)},{deep:!0,immediate:!0}),f([F,I],([e,t],[n,r])=>{q.value||(e&&!n||r&&!t&&e)&&xt()}),te(()=>{G++}),ee(()=>{P&&bt(),K.value&&St()}),(e,a)=>{let o=se,s=oe,c=n,l=t,u=r;return p(),C(`div`,null,[b(`div`,ye,[b(`div`,null,[v(c,{class:`cui-card`},{content:h(()=>[b(`div`,null,[b(`div`,be,[b(`div`,xe,[b(`label`,Se,T(e.$t(`views.settings.beta_updates`)),1),v(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:h(()=>[_(T(e.$t(`views.settings.beta_updates_info`)),1)]),_:1})]),v(s,{"input-id":`betaChannel`,"model-value":y(st),class:`ml-auto shrink-0`,"onUpdate:modelValue":_t},null,8,[`model-value`])])])]),_:1})]),b(`div`,null,[a[5]||=b(`span`,{class:`card-title`},`camera.ui`,-1),v(c,{class:`cui-card`},{content:h(()=>[b(`div`,Ce,[y(P)?(p(),C(`div`,we,[b(`span`,Te,T(e.$t(`views.settings.app`)),1),y(J)?(p(),g(l,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(p(),C(`span`,Ee,`v`+T(y(V)),1))])):x(``,!0),y(!1)&&y(L)?(p(),C(`div`,De,[b(`span`,Oe,T(e.$t(`views.settings.app`)),1),b(`span`,ke,[_(` v`+T(y(L)),1),y(R)&&y(R)!==y(L)?(p(),C(`span`,Ae,` (`+T(y(R))+`)`,1)):x(``,!0)])])):x(``,!0),b(`div`,je,[b(`span`,Me,T(e.$t(`views.settings.server`)),1),y(J)?(p(),g(l,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(p(),C(`span`,Ne,[_(` v`+T(y(B)),1),y(X)?(p(),C(d,{key:0},[_(` → v`+T(y(Y)),1)],64)):x(``,!0)]))]),y(q)?x(``,!0):(p(),C(`div`,Pe,[a[4]||=b(`div`,{class:`ml-auto`},null,-1),y(X)?(p(),g(u,{key:0,loading:y(J),disabled:y(Z),class:`cui-button-medium`,label:`${e.$t(`components.form.button.restart`)} (v${y(Y)})`,onClick:a[0]||=e=>Q(`restart`)},null,8,[`loading`,`disabled`,`label`])):x(``,!0),v(u,{loading:y(J),disabled:y(Z),class:`cui-button-medium`,label:e.$t(`components.form.button.manage`),onClick:a[1]||=e=>Q(`versions`)},null,8,[`loading`,`disabled`,`label`])]))])]),_:1})]),y(P)?x(``,!0):(p(),C(`div`,Fe,[b(`span`,Ie,T(e.$t(`views.settings.certificate`)),1),v(c,{class:`cui-card`},{content:h(()=>[b(`div`,Le,[b(`span`,Re,T(e.$t(`views.settings.certificate_info`)),1),y(K)?(p(),C(`div`,ze,[b(`span`,Be,T(e.$t(`views.settings.custom_certificate`)),1),y(U)?.problem?(p(),g(o,{key:0,severity:`error`,closable:!1},{default:h(()=>[_(T(e.$t(`views.settings.certificate_problem_${y(U).problem.code.replace(`-`,`_`)}`)),1)]),_:1})):y(U)?.info?(p(),C(d,{key:1},[b(`div`,Ve,[b(`span`,He,T(e.$t(`views.settings.certificate_names`)),1),b(`span`,Ue,T(y(U).info.names.join(`, `)),1)]),b(`div`,We,[b(`span`,Ge,T(e.$t(`views.settings.certificate_issuer`)),1),b(`span`,Ke,T(y(U).info.issuer),1)]),b(`div`,qe,[b(`span`,Je,T(e.$t(`views.settings.certificate_valid_to`)),1),b(`span`,Ye,T(y(U).info.validTo),1)]),y(gt)?(p(),g(o,{key:0,severity:`warn`,class:`mt-2`,closable:!1},{default:h(()=>[_(T(e.$t(`views.settings.certificate_chain_missing`)),1)]),_:1})):x(``,!0)],64)):(p(),C(`span`,Xe,T(e.$t(`views.settings.certificate_none`)),1))])):x(``,!0),b(`div`,Ze,[y(K)&&y(U)?.present?(p(),g(u,{key:0,severity:`danger`,outlined:``,loading:y(W),class:`cui-button-medium`,label:e.$t(`components.form.button.remove`),onClick:Tt},null,8,[`loading`,`label`])):x(``,!0),v(u,{loading:y(H)||y(J),disabled:y(Z),severity:`secondary`,outlined:``,class:`cui-button-medium`,label:e.$t(`components.form.button.download`),onClick:vt},null,8,[`loading`,`disabled`,`label`]),y(K)?(p(),g(u,{key:1,loading:y(W),class:`cui-button-medium`,label:e.$t(`components.form.button.upload`),onClick:Ct},null,8,[`loading`,`label`])):x(``,!0)])])]),_:1})])),b(`div`,null,[b(`span`,Qe,T(e.$t(`views.settings.restart_server`)),1),v(c,{class:`cui-card`},{content:h(()=>[b(`div`,$e,[b(`span`,et,T(e.$t(`views.settings.restart_server_info`)),1),v(u,{loading:y(J),disabled:y(Z),class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.restart`),onClick:a[2]||=e=>Q(`restart`)},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),(`hasPermission`in e?e.hasPermission:y(i))(void 0,`master`)?(p(),C(`div`,tt,[b(`span`,E,T(e.$t(`views.settings.reset_server`)),1),v(c,{class:`cui-card !border-red-900`},{content:h(()=>[b(`div`,nt,[b(`span`,rt,T(e.$t(`views.settings.reset_server_info`)),1),v(u,{loading:y(J),disabled:y(Z),class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.reset`),onClick:a[3]||=e=>Q(`reset`)},null,8,[`loading`,`disabled`,`label`])])]),_:1})])):x(``,!0)])])}}});export{D as default};
@@ -1 +0,0 @@
1
- .stage[data-v-0a1cd189]{height:clamp(240px,52vh,620px);container-type:size}.frame[data-v-0a1cd189]{width:min(100cqw, calc(100cqh * var(--ar-w) / var(--ar-h)));height:min(100cqh, calc(100cqw * var(--ar-h) / var(--ar-w)))}.zoom-constraining[data-v-0a1cd189]>*{transition:transform .15s ease-out!important}.zoom-minimap[data-v-0a1cd189]{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-0a1cd189]{background:#ffffff1f;border:1.5px solid #ffffffb3;border-radius:2px;position:absolute}.loupe[data-v-0a1cd189]{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-0a1cd189]{transform-origin:0 0;position:absolute;top:0;left:0}.loupe-crosshair[data-v-0a1cd189]{position:absolute;inset:0}kbd[data-v-0a1cd189]{border:1px solid var(--border-color);border-radius:5px;padding:1px 6px;font-family:monospace;font-size:12px}.loupe-crosshair[data-v-0a1cd189]:before,.loupe-crosshair[data-v-0a1cd189]:after{content:"";background:#ffffffd9;position:absolute}.loupe-crosshair[data-v-0a1cd189]:before{width:1.5px;height:18px;top:calc(50% - 9px);left:50%;transform:translate(-50%)}.loupe-crosshair[data-v-0a1cd189]:after{width:18px;height:1.5px;top:50%;left:calc(50% - 9px);transform:translateY(-50%)}.bbox-label[data-v-0a1cd189]{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-0a1cd189]{border-radius:0 6px 6px;transform:translateY(0)}.bbox-label.label-right[data-v-0a1cd189]{border-radius:6px 0 0 6px;flex-direction:row-reverse}.bbox-label.label-inside[data-v-0a1cd189]{border-radius:6px;transform:translateY(0)}.bbox-label-icon[data-v-0a1cd189]{flex-shrink:0;width:14px;height:14px}.bbox-label-text[data-v-0a1cd189]{text-overflow:ellipsis;min-width:0;overflow:hidden}.bbox-label-confidence[data-v-0a1cd189]{opacity:.9}
@@ -1 +0,0 @@
1
- import{Br as e,Gt as t,I as n,K as r,V as i,ci as a,ii as o,q as ee,ti as s,zt as te}from"./vendor-cameraui-BPX4wReW.js";import{B as ne,Bt as c,Cn as l,Dr as u,F as d,Fn as re,I as ie,In as ae,L as f,Mn as p,Nn as m,Pn as h,R as oe,Rr as g,X as _,f as se,in as ce,kr as v,l as le,m as ue,nr as y,nt as b,vn as de,vr as fe,wn as pe,z as me}from"./api-CFf063x3.js";import{$t as x,Dn as S,F as he,J as C,Kn as ge,Mn as w,Pn as T,Qn as E,Qt as D,Rn as _e,U as O,Wn as k,Xn as A,Yn as j,an as M,ar as N,dn as P,fn as F,gr as ve,hr as I,in as L,mn as R,nr as ye,on as z,rn as B,rr as V,sn as H,sr as U,vr as W,yr as G}from"./vendor-nVfLT5jI.js";import{F as be,L as xe,P as Se,R as Ce,a as we,d as Te}from"./vendor-primevue-iEFYdXsu.js";import{t as Ee}from"./close-BiHUNAkN.js";import{t as De}from"./chevron-down-CA4ntUJ5.js";import{t as Oe}from"./trash-can-outline-wuIbai1c.js";import{t as ke}from"./ring-resize-DDYKCwBE.js";import{t as Ae}from"./CuiRecordingsGrid-BzyJWpFt.js";import{t as K}from"./search-70mLVEz7.js";import{n as je,t as Me}from"./cloud-check-v8fBsHY8.js";import{t as Ne}from"./back-filled-CE63214a.js";import{t as Pe}from"./settings-B7tifwXn.js";var Fe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ie(e,t){return w(),H(`svg`,Fe,[...t[0]||=[L(`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 Le=V({name:`mdi-cloud-check-outline`,render:Ie}),Re={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function q(e,t){return w(),H(`svg`,Re,[...t[0]||=[L(`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 ze=V({name:`mdi-cloud-upload-outline`,render:q});async function J(e={},{signal:t}={}){return(await g.get(`/training/candidates`,{params:e,signal:t})).data}async function Y(e,t){return(await g.patch(`/training/candidates/${e}`,t)).data}async function Be(e){await g.delete(`/training/candidates/${e}`)}async function X(e){return(await g.post(`/training/candidates/submit`,{ids:e})).data}async function Ve({signal:e}={}){return(await g.get(`/training/submissions`,{signal:e})).data}async function He(e){await g.delete(`/training/submissions/${e}`)}async function Z({signal:e}={}){return(await g.get(`/training/settings`,{signal:e})).data}async function Q(e){return(await g.patch(`/training/settings`,e)).data}var Ue=class{queryClient=C();getCandidatesQuery(){return u({queryKey:[`training-candidates`],queryFn:({signal:e})=>J({},{signal:e}),staleTime:5e3})}getSettingsQuery(){return u({queryKey:[`training-settings`],queryFn:({signal:e})=>Z({signal:e}),staleTime:3e4})}getSubmissionsQuery(){return u({queryKey:[`training-submissions`],queryFn:({signal:e})=>Ve({signal:e}),staleTime:3e4,retry:!1})}patchCandidateMutation(){return O({mutationFn:({id:e,patch:t})=>Y(e,t),onSuccess:async()=>{await this.queryClient.refetchQueries({queryKey:[`training-candidates`],exact:!0})}})}deleteCandidateMutation(){return O({mutationFn:Be,onSuccess:async()=>{await this.queryClient.refetchQueries({queryKey:[`training-candidates`],exact:!0})}})}deleteSubmissionMutation(){return O({mutationFn:He,onSuccess:async()=>{await this.queryClient.refetchQueries({queryKey:[`training-submissions`],exact:!0})}})}submitCandidatesMutation(){return O({mutationFn:X,onSuccess:async()=>{await this.queryClient.refetchQueries({queryKey:[`training-candidates`],exact:!0})}})}patchSettingsMutation(){return O({mutationFn:Q,onSuccess:async()=>{await this.queryClient.refetchQueries({queryKey:[`training-settings`],exact:!0})}})}},We={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ge(e,t){return w(),H(`svg`,We,[...t[0]||=[L(`path`,{fill:`currentColor`,d:`M11 18h2v-2h-2zm1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8s8 3.59 8 8s-3.59 8-8 8m0-14a4 4 0 0 0-4 4h2a2 2 0 0 1 2-2a2 2 0 0 1 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4`},null,-1)]])}var Ke=V({name:`mdi-help-circle-outline`,render:Ge}),qe=[`person`,`vehicle`,`animal`,`package`,`face`,`license_plate`],Je={desktop:{maxWidth:`1280px`,width:`85vw`}},Ye={class:`flex items-center justify-between gap-2 text-sm`},Xe={class:`min-w-0 flex items-center gap-2`},Ze={class:`font-medium truncate`},Qe={class:`text-muted shrink-0`},$e={class:`text-muted tabular-nums shrink-0`},et=[`data-stage-zoom`],tt=[`src`],nt=[`x`,`y`,`width`,`height`,`stroke`,`fill`,`fill-opacity`,`stroke-width`,`onPointerdown`],rt=[`onPointerdown`],it=[`cx`,`cy`],at=[`cx`,`cy`,`fill`],ot=[`x`,`y`,`width`,`height`,`stroke`,`fill`],st=[`data-box-label`,`onClick`],ct={class:`bbox-label-text`},lt={key:0,class:`bbox-label-confidence`},ut={key:1,class:`bbox-label-confidence`},dt=[`src`],ft={class:`absolute inset-0 w-full h-full`},pt=[`x`,`y`,`width`,`height`,`stroke`,`fill`],mt=[`x`,`y`,`width`,`height`,`stroke`,`fill`],ht={key:2,class:`absolute left-2 top-1/2 -translate-y-1/2 z-[5] dark-mode`},gt={key:3,class:`absolute right-2 top-1/2 -translate-y-1/2 z-[5] dark-mode`},_t={key:0,class:`flex items-center justify-center gap-2`},vt={class:`text-muted text-sm`,for:`plate-text`},yt={class:`flex items-center justify-center gap-1.5`},bt={class:`text-muted text-sm text-center`},xt={key:1,class:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 justify-center mx-auto text-sm text-muted`},St=.01,Ct=.006,wt=26,Tt=60,Et=400,Dt=110,Ot=2,kt=80,At=50,jt=.003,Mt=m(R({__name:`TrainingBoxEditor`,props:{candidates:{},startId:{},cameraName:{type:Function},imageUrl:{type:Function},onSave:{type:Function},onDelete:{type:Function}},setup(t,{expose:r}){let i=t,{t:ee,te:ne}=e(),c=[`nw`,`ne`,`sw`,`se`],u=new Map,d=N(new Set),re=N(new Set),ie=Math.max(0,i.candidates.findIndex(e=>e.id===i.startId)),ae=ue(),f=k(`rootRef`),p=k(`labelMenuRef`),m=k(`stageRef`),h=k(`frameRef`),oe=k(`svgRef`),g=U(i.candidates[ie]?.boxes.map(e=>({...e}))??[]),se=U({w:16,h:9}),v=U(null),y=U(null),b=U(-1),fe=U(!1),me=a(`(any-pointer: fine)`),S=U(null),C=null,E=U(-1),O=U(`person`),A=U(ie),{zoom:R,pan:V,constraining:be,minimapStyle:xe,minimapBoxStyle:Se,onZoomPan:Ce,onDoubleClick:Te,onTouchStart:Ee,onTouchEnd:De,reset:ke}=_(m,h),{height:Ae}=s(h),K=B(()=>i.candidates[A.value]),je=B(()=>i.candidates.slice(0,A.value+1).filter(e=>!d.has(e.id)).length),Me=B(()=>i.candidates.filter(e=>!d.has(e.id)).length),Ne=B(()=>i.candidates.slice(0,A.value).some(e=>!d.has(e.id))),Pe=B(()=>i.candidates.slice(A.value+1).some(e=>!d.has(e.id))),Fe=B(()=>re.has(K.value.id)?`verified`:K.value.status),Ie=B(()=>{let e=g.value[b.value];return e?.label===`license_plate`?e:null}),Le=B(()=>[...qe.map(e=>({key:e,label:ze(e),icon:ce(e).icon,iconProps:{style:{color:ce(e).color}},active:g.value[E.value]?.label===e,onClick:()=>Bt(e)})),{key:`remove`,label:ee(`components.training_editor.remove_box`),icon:Oe,iconProps:{class:`text-red-500`},labelProps:{class:`text-red-500`},onClick:()=>Ht(E.value)}]),Re=B(()=>e=>{let t=Ae.value||360;return e.y*t>=wt?`above`:t-(e.y+e.height)*t>=wt?`below`:`inside`}),q=B(()=>e=>e.x>.7);function ze(e){let t=`components.training_editor.labels.${e}`;return ne(t)?ee(t):e}function J(e){return ce(e)}function Y(e){return`${e*100}%`}function Be(e,t){return Y(t===`nw`||t===`sw`?e.x:e.x+e.width)}function X(e,t){return Y(t===`nw`||t===`ne`?e.y:e.y+e.height)}function Ve(e){let t={backgroundColor:J(e.label).color};q.value(e)?t.right=Y(1-e.x-e.width):t.left=Y(e.x);let n=Re.value(e);return t.top=n===`above`?Y(e.y):n===`below`?Y(e.y+e.height):`calc(${Y(e.y)} + 2px)`,t}function He(e){let t=e.target;t.naturalWidth&&t.naturalHeight&&(se.value={w:t.naturalWidth,h:t.naturalHeight})}function Z(e){let t=oe.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 Q(e,t){v.value={...t,moved:!1},oe.value?.setPointerCapture(e.pointerId)}function Ue(e){if(R.value>1)return;let{x:t,y:n}=Z(e);Q(e,{mode:`draw`,index:-1,startX:t,startY:n,origin:{label:O.value,confidence:1,x:t,y:n,width:0,height:0}})}function We(e,t){let{x:n,y:r}=Z(t);b.value=e,Q(t,{mode:`move`,index:e,startX:n,startY:r,origin:{...g.value[e]}})}function Ge(e,t,n){let{x:r,y:i}=Z(n);b.value=e,Q(n,{mode:`resize`,index:e,corner:t,startX:r,startY:i,origin:{...g.value[e]}})}function Je(e){let t=v.value;if(!t)return;let{x:n,y:r}=Z(e);if(Math.hypot(n-t.startX,r-t.startY)>Ct&&(t.moved=!0),e.pointerType===`touch`&&t.moved&&(Nt(t)?Pt(e):S.value=null),t.mode===`draw`){if(t.moved){let e=Rt(t.startX,t.startY,n,r);y.value=e.width>=St&&e.height>=St?{label:O.value,confidence:1,...e}:null}return}if(t.mode===`move`){if(!t.moved)return;let e=g.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(g.value[t.index],Rt(i,a,n,r))}function Mt(e){let t=v.value;if(v.value=null,S.value=null,t){if(t.mode===`draw`){y.value&&y.value.width>=St&&y.value.height>=St?(g.value.push({...y.value}),b.value=g.value.length-1):t.moved||(b.value=-1),y.value=null;return}t.mode===`move`&&!t.moved&&zt(t.index,e)}}function Nt(e){let t=oe.value?.getBoundingClientRect();if(!t||t.width===0)return!1;let n=e.mode===`draw`?y.value:g.value[e.index];return!n||Math.max(n.width*t.width,n.height*t.height)<=At}function Pt(e){let t=h.value?.getBoundingClientRect(),n=m.value?.getBoundingClientRect();if(!t||!n||t.width===0||t.height===0){S.value=null;return}let r=Dt/2,i=Math.min(Math.max(e.clientX-n.left,59),n.width-r-4),a=e.clientY-n.top-kt;a-r<4&&(a=e.clientY-n.top+kt),S.value={x:i,y:a,frameW:t.width,frameH:t.height,tx:r-(e.clientX-t.left)*Ot,ty:r-(e.clientY-t.top)*Ot}}function Ft(e){let t=e instanceof HTMLElement||e instanceof SVGElement?e:null;if(!t||m.value?.contains(t)||t.closest(`.p-dialog-header`)||t.closest(`button`))return!1;let n=f.value?.closest(`.p-dialog-content`)?.lastElementChild;return!(n&&n!==f.value&&n.contains(t))}function It(e){if(C=null,e.touches.length!==1||!Ft(e.target))return;let t=e.touches[0];C={x:t.clientX,y:t.clientY,at:Date.now()}}function Lt(e){let t=C;if(C=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<=Et&&Math.abs(r)>=Tt&&Math.abs(r)>2*Math.abs(i)&&$(r<0?1:-1)}function Rt(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 zt(e,t){E.value=e;let n=h.value?.querySelector(`[data-box-label="${e}"]`);p.value?.toggleMenu(t,n??void 0)}function Bt(e){let t=g.value[E.value];t&&(t.label=e,t.confidence=1,O.value=e)}function Vt(e){let t=g.value[b.value];t&&(t.text=(e??``).toUpperCase().replace(/[^A-Z0-9ÄÖÜ\- ]/g,``)||void 0)}function Ht(e){e<0||e>=g.value.length||(g.value.splice(e,1),b.value=-1)}function Ut(e,t=!0){e<0||e>=i.candidates.length||(t&&u.set(K.value.id,g.value.map(e=>({...e}))),A.value=e,g.value=(u.get(K.value.id)??K.value.boxes).map(e=>({...e})),y.value=null,v.value=null,S.value=null,b.value=-1,E.value=-1,p.value?.hide(),ke())}async function Wt(e){return await i.onSave(K.value.id,g.value.map(e=>({...e})),e),u.set(K.value.id,g.value.map(e=>({...e}))),e===`verified`&&re.add(K.value.id),$(1,!1)?null:void 0}function $(e,t=!0){let n=A.value+e;for(;n>=0&&n<i.candidates.length&&d.has(i.candidates[n].id);)n+=e;return n<0||n>=i.candidates.length?!1:(Ut(n,t),!0)}async function Gt(){let e=K.value.id;return await i.onDelete(e),u.delete(e),d.add(e),$(1,!1)||$(-1,!1)?null:void 0}function Kt(){for(let e of[1,-1]){let t=A.value+e;for(;t>=0&&t<i.candidates.length&&d.has(i.candidates[t].id);)t+=e;let n=i.candidates[t];n&&(new Image().src=i.imageUrl(n.id))}}function qt(e){g.value.length&&(b.value=(b.value+e+g.value.length)%g.value.length)}function Jt(e){let t=g.value[b.value];if(!t)return;let n=qe,r=n[(n.indexOf(t.label)+e+n.length)%n.length];t.label=r,t.confidence=1,O.value=r}function Yt(e,t,n){let r=g.value[b.value];r&&(n?(r.width=Math.min(1-r.x,Math.max(St,r.width+e)),r.height=Math.min(1-r.y,Math.max(St,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))))}return ge(A,Kt,{immediate:!0}),o(window,`keydown`,e=>{if(e.target?.closest?.(`input, textarea`))return;let t={ArrowLeft:[-.003,0],ArrowRight:[jt,0],ArrowUp:[0,-.003],ArrowDown:[0,jt]};if(t[e.key]){if(b.value>=0){e.preventDefault();let[n,r]=t[e.key];Yt(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(),qt(e.shiftKey?-1:1)):e.key===`Escape`?(b.value=-1,p.value?.hide()):(e.key===`Delete`||e.key===`Backspace`)&&b.value>=0?Ht(b.value):e.key===`s`||e.key===`S`?Jt(e.shiftKey?-1:1):e.key===` `&&!p.value?.isOpen&&(e.preventDefault(),Wt(`verified`)))}),o(()=>f.value?.closest(`.p-dialog-content`)??void 0,`touchstart`,It,{passive:!0}),o(()=>f.value?.closest(`.p-dialog-content`)??void 0,`touchend`,Lt,{passive:!0}),r({onConfirm:()=>Wt(`verified`),onCancel:()=>Gt()}),(e,r)=>{let i=we,a=l,o=te,ee=pe,s=n,ne=Ke;return w(),H(`div`,{ref_key:`rootRef`,ref:f,class:`flex flex-col gap-3 h-full min-h-0`},[L(`div`,Ye,[L(`div`,Xe,[F(i,{severity:I(Fe)===`verified`?`success`:`info`,value:e.$t(`views.training.status_${I(Fe)}`),class:`shrink-0`},null,8,[`severity`,`value`]),L(`span`,Ze,G(t.cameraName(I(K).cameraId)),1),L(`span`,Qe,G(I(le)(I(K).createdAt)),1)]),L(`span`,$e,G(I(je))+` / `+G(I(Me)),1)]),L(`div`,{ref_key:`stageRef`,ref:m,class:`stage relative w-full bg-black rounded-lg shrink-0 overflow-hidden select-none`},[F(I(he),{pan:I(V),"onUpdate:pan":r[7]||=e=>ye(V)?V.value=e:null,zoom:I(R),"onUpdate:zoom":r[8]||=e=>ye(R)?R.value=e:null,"pan-enabled":I(R)>1&&!I(v),"enable-control-button":!1,"dbl-click-enabled":!1,"min-zoom":1,"max-zoom":I(5),selector:`[data-stage-zoom='${I(ae)}']`,"zoom-origin":`pointer`,class:ve([`absolute inset-0 flex items-center justify-center`,{"zoom-constraining":I(be)}]),onPanned:I(Ce),onZoom:I(Ce),onDblclick:I(Te),onTouchstart:I(Ee),onTouchend:I(De)},{default:j(()=>[L(`div`,{ref_key:`frameRef`,ref:h,"data-stage-zoom":I(ae),class:`frame relative`,style:W({"--ar-w":I(se).w,"--ar-h":I(se).h})},[L(`img`,{src:t.imageUrl(I(K).id),class:`absolute inset-0 w-full h-full`,draggable:`false`,onLoad:He},null,40,tt),(w(),H(`svg`,{ref_key:`svgRef`,ref:oe,class:ve([`absolute inset-0 w-full h-full touch-none`,I(R)>1?`cursor-grab`:`cursor-crosshair`]),onPointerdown:Ue,onPointermove:Je,onPointerup:Mt,onPointercancel:Mt},[(w(!0),H(x,null,T(I(g),(e,t)=>(w(),H(`g`,{key:t},[L(`rect`,{x:Y(e.x),y:Y(e.y),width:Y(e.width),height:Y(e.height),stroke:J(e.label).color,fill:J(e.label).color,"fill-opacity":t===I(b)?.22:.12,"stroke-width":t===I(b)?3.5:2,"vector-effect":`non-scaling-stroke`,class:`cursor-move`,onPointerdown:D(e=>We(t,e),[`stop`]),onTouchstart:r[0]||=D(()=>{},[`stop`]),onMousedown:r[1]||=D(()=>{},[`stop`])},null,40,nt),(w(),H(x,null,T(c,n=>L(`g`,{key:n,class:`cursor-nwse-resize`,onPointerdown:D(e=>Ge(t,n,e),[`stop`]),onTouchstart:r[2]||=D(()=>{},[`stop`]),onMousedown:r[3]||=D(()=>{},[`stop`])},[L(`circle`,{cx:Be(e,n),cy:X(e,n),r:`14`,fill:`transparent`},null,8,it),L(`circle`,{cx:Be(e,n),cy:X(e,n),r:`4.5`,fill:J(e.label).color},null,8,at)],40,rt)),64))]))),128)),I(y)?(w(),H(`rect`,{key:0,x:Y(I(y).x),y:Y(I(y).y),width:Y(I(y).width),height:Y(I(y).height),stroke:J(I(y).label).color,fill:J(I(y).label).color,"fill-opacity":`0.1`,"stroke-dasharray":`6 4`,"stroke-width":`2`,"vector-effect":`non-scaling-stroke`},null,8,ot)):z(``,!0)],34)),(w(!0),H(x,null,T(I(g),(e,t)=>(w(),H(`div`,{key:`label-${t}`,class:ve([`bbox-label cursor-pointer`,{"label-bottom":I(Re)(e)===`below`,"label-inside":I(Re)(e)===`inside`,"label-right":I(q)(e)}]),"data-box-label":t,onPointerdown:r[4]||=D(()=>{},[`stop`]),onTouchstart:r[5]||=D(()=>{},[`stop`]),onMousedown:r[6]||=D(()=>{},[`stop`]),onClick:D(e=>zt(t,e),[`stop`]),style:W(Ve(e))},[(w(),M(_e(J(e.label).icon),{class:`bbox-label-icon`})),L(`span`,ct,G(ze(e.label)),1),e.text?(w(),H(`span`,lt,G(e.text),1)):e.confidence<1?(w(),H(`span`,ut,G(Math.round(e.confidence*100))+`%`,1)):z(``,!0)],46,st))),128))],12,et)]),_:1},8,[`pan`,`zoom`,`pan-enabled`,`max-zoom`,`selector`,`class`,`onPanned`,`onZoom`,`onDblclick`,`onTouchstart`,`onTouchend`]),I(xe)?(w(),H(`div`,{key:0,class:`zoom-minimap`,style:W(I(Se)??void 0)},[L(`div`,{class:`zoom-minimap-viewport`,style:W(I(xe))},null,4)],4)):z(``,!0),I(S)?(w(),H(`div`,{key:1,class:`loupe`,style:W({left:`${I(S).x}px`,top:`${I(S).y}px`})},[L(`div`,{class:`loupe-content`,style:W({width:`${I(S).frameW}px`,height:`${I(S).frameH}px`,transform:`translate(${I(S).tx}px, ${I(S).ty}px) scale(${Ot})`})},[L(`img`,{src:t.imageUrl(I(K).id),class:`absolute inset-0 w-full h-full`,draggable:`false`},null,8,dt),(w(),H(`svg`,ft,[(w(!0),H(x,null,T(I(g),(e,t)=>(w(),H(`rect`,{key:t,x:Y(e.x),y:Y(e.y),width:Y(e.width),height:Y(e.height),stroke:J(e.label).color,fill:J(e.label).color,"fill-opacity":`0.1`,"stroke-width":`1.5`},null,8,pt))),128)),I(y)?(w(),H(`rect`,{key:0,x:Y(I(y).x),y:Y(I(y).y),width:Y(I(y).width),height:Y(I(y).height),stroke:J(I(y).label).color,fill:J(I(y).label).color,"fill-opacity":`0.1`,"stroke-dasharray":`4 3`,"stroke-width":`1.5`},null,8,mt)):z(``,!0)]))],4),r[12]||=L(`div`,{class:`loupe-crosshair`},null,-1)],4)):z(``,!0),I(Ne)?(w(),H(`div`,ht,[F(o,{severity:`secondary`,rounded:``,class:`cui-icon-md opacity-60 hover:opacity-100`,onClick:r[9]||=D(e=>$(-1),[`stop`])},{icon:j(()=>[F(a,{width:`100%`,height:`100%`})]),_:1})])):z(``,!0),I(Pe)?(w(),H(`div`,gt,[F(o,{severity:`secondary`,rounded:``,class:`cui-icon-md opacity-60 hover:opacity-100`,onClick:r[10]||=D(e=>$(1),[`stop`])},{icon:j(()=>[F(ee,{width:`100%`,height:`100%`})]),_:1})])):z(``,!0)],512),I(Ie)?(w(),H(`div`,_t,[L(`label`,vt,G(e.$t(`components.training_editor.plate_text`)),1),F(s,{id:`plate-text`,"model-value":I(Ie).text??``,size:`small`,maxlength:`12`,class:`w-40 uppercase`,placeholder:`ABC 1234`,"onUpdate:modelValue":Vt},null,8,[`model-value`])])):z(``,!0),L(`div`,yt,[L(`span`,bt,G(e.$t(`components.training_editor.hint`)),1),I(me)?(w(),M(o,{key:0,severity:`secondary`,text:``,rounded:``,class:`cui-icon-sm shrink-0`,onClick:r[11]||=e=>fe.value=!I(fe)},{icon:j(()=>[F(ne,{class:`w-4 h-4`})]),_:1})):z(``,!0)]),I(me)&&I(fe)?(w(),H(`div`,xt,[r[13]||=L(`span`,null,[L(`kbd`,null,`Tab`)],-1),L(`span`,null,G(e.$t(`components.training_editor.sc_select`)),1),r[14]||=P(),r[15]||=L(`span`,null,[L(`kbd`,null,`←↑→↓`)],-1),L(`span`,null,G(e.$t(`components.training_editor.sc_move`)),1),r[16]||=P(),r[17]||=L(`span`,null,[L(`kbd`,null,`Shift`),P(` + `),L(`kbd`,null,`←↑→↓`)],-1),L(`span`,null,G(e.$t(`components.training_editor.sc_resize`)),1),r[18]||=P(),r[19]||=L(`span`,null,[L(`kbd`,null,`S`)],-1),L(`span`,null,G(e.$t(`components.training_editor.sc_label`)),1),r[20]||=P(),r[21]||=L(`span`,null,[L(`kbd`,null,`Del`)],-1),L(`span`,null,G(e.$t(`components.training_editor.sc_delete`)),1),r[22]||=P(),r[23]||=L(`span`,null,[L(`kbd`,null,`Esc`)],-1),L(`span`,null,G(e.$t(`components.training_editor.sc_deselect`)),1),r[24]||=P(),r[25]||=L(`span`,null,[L(`kbd`,null,`Space`)],-1),L(`span`,null,G(e.$t(`components.training_editor.sc_verify`)),1),r[26]||=P(),r[27]||=L(`span`,null,[L(`kbd`,null,`←`),P(` / `),L(`kbd`,null,`→`)],-1),L(`span`,null,G(e.$t(`components.training_editor.sc_nav`)),1)])):z(``,!0),F(de,{ref_key:`labelMenuRef`,ref:p,items:I(Le),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])],512)}}}),[[`__scopeId`,`data-v-0a1cd189`]]),Nt={class:`flex flex-col gap-3`},Pt={key:0,class:`flex flex-col gap-2`},Ft={key:1,class:`flex flex-col items-center gap-3 py-10`},It={class:`text-muted text-sm text-center max-w-sm`},Lt={key:2,class:`flex flex-col items-center gap-3 py-10`},Rt={class:`text-muted text-sm text-center max-w-sm`},zt={class:`text-muted text-sm`},Bt={class:`w-24 aspect-video rounded-lg overflow-hidden bg-black/5 dark:bg-black/30 shrink-0`},Vt={class:`flex-1 min-w-0`},Ht={class:`flex flex-wrap items-center gap-1`},Ut={class:`text-xs text-muted mt-1`},Wt=R({__name:`TrainingSubmissions`,setup(n){let r=new Ue,{t:i,te:a}=e(),o=v(),s=r.getSubmissionsQuery(),ne=r.deleteSubmissionMutation(),c=U(``),l=B(()=>s.data.value??[]);function u(e){let t={};for(let n of e.labels)t[n.label]=(t[n.label]??0)+1;return t}function re(e){let t=`components.training_editor.labels.${e}`;return a(t)?i(t):e}async function ie(e){c.value=e;try{await ne.mutateAsync(e)}catch(e){o.add({severity:`error`,detail:e?.message??String(e),life:5e3})}finally{c.value=``}}return(e,n)=>{let r=ee,i=je,a=d,o=p,ae=we,f=Oe,m=te,h=t;return w(),H(`div`,Nt,[I(s).isLoading.value?(w(),H(`div`,Pt,[(w(),H(x,null,T(4,e=>F(r,{key:e,height:`72px`,"border-radius":`12px`})),64))])):I(s).isError.value?(w(),H(`div`,Ft,[F(i,{class:`w-10 h-10 text-muted`}),L(`span`,It,G(e.$t(`components.training_submissions.load_failed`)),1)])):I(l).length?(w(),H(x,{key:3},[L(`span`,zt,G(e.$t(`components.training_submissions.count`,I(l).length)),1),(w(!0),H(x,null,T(I(l),t=>(w(),H(`div`,{key:t.id,class:`cui-card h-auto! shrink-0 p-2 flex items-center gap-3`},[L(`div`,Bt,[F(o,{src:t.imageUrl,"image-container-class":`w-full h-full`,"image-style":{objectFit:`cover`}},null,8,[`src`])]),L(`div`,Vt,[L(`div`,Ht,[(w(!0),H(x,null,T(u(t),(e,t)=>(w(),H(`span`,{key:t,class:`px-1.5 py-0.5 rounded text-xs font-medium text-white`,style:W({backgroundColor:I(ce)(String(t)).color})},G(re(String(t)))+` ×`+G(e),5))),128))]),L(`div`,Ut,G(I(le)(new Date(t.createdAt).getTime())),1)]),F(ae,{severity:t.usedInWave?`success`:`info`,value:t.usedInWave?e.$t(`components.training_submissions.status_trained`):e.$t(`components.training_submissions.status_pool`),class:`shrink-0`},null,8,[`severity`,`value`]),A((w(),M(m,{severity:`danger`,text:``,rounded:``,class:`cui-icon-sm shrink-0`,loading:I(ne).isPending.value&&I(c)===t.id,onClick:e=>ie(t.id)},{icon:j(()=>[F(f,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[h,e.$t(`components.training_submissions.delete`),void 0,{left:!0}]])]))),128))],64)):(w(),H(`div`,Lt,[F(a,{class:`w-10 h-10 text-muted`}),L(`span`,Rt,G(e.$t(`components.training_submissions.empty`)),1)]))])}}}),$={desktop:{maxWidth:`720px`,width:`90vw`}},Gt=N({progress:null}),Kt=null,qt=null,Jt=new Set;function Yt(){for(let e of Jt)try{e()}catch{}}async function Xt(){if(qt?.ready.value)try{let e=await qt.request(`get-submit-progress`);e.active&&(Gt.progress=e)}catch{}}function Zt(){return qt||(Kt=E(!0),Kt.run(()=>{let e=fe(`/training`);qt=e,e.on(`candidates-changed`,()=>Yt()),e.on(`submit-progress`,e=>{Gt.progress=e,Yt()}),e.onReady(()=>{Xt(),Yt()})}),qt)}function Qt(){function e(){Zt()}function t(e){return Jt.add(e),()=>Jt.delete(e)}function n(){Gt.progress=null}return{submitProgress:B(()=>Gt.progress),connect:e,onCandidatesChanged:t,dismissProgress:n}}var $t={class:`flex flex-col h-full min-h-0`},en={key:0,class:`page-title`},tn={class:`font-semibold text-xl truncate`},nn={class:`flex gap-2 mb-4`},rn={key:1,class:`cui-card h-auto! shrink-0 px-3 py-2 mb-4 flex items-center gap-3`},an={class:`flex-1 min-w-0`},on={class:`text-sm`},sn={class:`flex-1 text-sm`},cn={class:`p-3`},ln={key:3,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4 py-16`},un={class:`text-muted text-sm text-center max-w-md`},dn={class:`relative flex-1 min-h-0 overflow-hidden bg-black/5 dark:bg-black/30`},fn={class:`absolute top-1.5 left-1.5 flex flex-wrap gap-1`},pn={key:0,class:`absolute bottom-1.5 left-1.5`},mn={key:1,class:`absolute top-1.5 right-1.5 dark-mode`},hn={class:`flex items-center justify-between gap-2`},gn={class:`flex items-center gap-2 min-w-0`},_n={class:`min-w-0`},vn={class:`font-medium truncate`},yn={class:`text-xs text-muted`},bn=40,xn=R({__name:`Training`,setup(a){let o=new c,s=new Ue,{t:l,te:u}=e(),d=b(),m=v(),{smBreakpoint:g}=ae(),_=s.getCandidatesQuery(),ue=s.getSettingsQuery(),fe=s.patchCandidateMutation(),pe=s.deleteCandidateMutation(),he=s.patchSettingsMutation(),C=s.submitCandidatesMutation(),E=Qt(),{data:_e}=o.getCamerasQuery({page:1,pageSize:-1}),O=U(``),N=U(bn),R=k(`cameraMenuRef`),V=k(`settingsMenuRef`),Fe=B(()=>({gridTemplateColumns:`repeat(auto-fill, minmax(${g.value?`220px`:`260px`}, 1fr))`})),Ie=B(()=>{let e=[...new Set((_.data.value??[]).map(e=>Qe(e.cameraId)))].sort((e,t)=>e.localeCompare(t));return[{key:`all`,label:l(`views.training.all_cameras`),active:O.value===``,onClick:()=>{O.value=``}},...e.map(e=>({key:e,label:e,active:O.value===e,onClick:()=>{O.value=e}}))]}),Re=B(()=>[{key:`collect`,label:l(`views.training.collection_enabled`),description:l(`views.training.collection_hint`),toggle:!0,toggleState:ue.data.value?.enabled??!0,onClick:()=>{ut(!(ue.data.value?.enabled??!0))}}]),q=B(()=>{let e=O.value.trim().toLowerCase();return e?(_.data.value??[]).filter(t=>Qe(t.cameraId).toLowerCase().includes(e)):_.data.value??[]}),J=B(()=>q.value.slice(0,N.value)),Y=B(()=>q.value.length>J.value.length),Be=B(()=>(_.data.value??[]).filter(e=>He(e)).length),X=B(()=>E.submitProgress.value?E.submitProgress.value:Be.value>0?{active:!0,total:Be.value,done:0,failed:0}:null),Ve=B(()=>q.value.filter(e=>!He(e)));function He(e){return e.upload===`queued`||e.upload===`uploading`}let{selectionMode:Z,selectedIds:Q,allSelected:We,bulkBusy:Ge,enterSelectionMode:Ke,exitSelectionMode:qe,toggleSelectAll:Ye,toggleSelection:Xe}=ie(Ve,e=>e.id),Ze=B(()=>[...Q.value].filter(e=>_.data.value?.find(t=>t.id===e)?.status===`verified`));function Qe(e){return _e.value?.result?.find(t=>t._id===e)?.name??e}function $e(e){return se(`/api/training/candidates/${e}/image`)??``}function et(e){let t=`components.training_editor.labels.${e}`;return u(t)?l(t):e}function tt(e){let t={};for(let n of e.boxes)t[n.label]=(t[n.label]??0)+1;return t}function nt(e){return e===`verified`?`success`:`info`}function rt(){N.value+=bn}function it(e){if(!He(e)){if(Z.value){Xe(e.id);return}at(e)}}function at(e){d.openComponentDialog(Mt,{data:{title:l(`views.training.title`),cancelText:l(`components.form.button.remove`),confirmText:l(`components.training_editor.verify`),cancelButtonProps:{severity:`danger`},contentProps:{candidates:q.value.map(e=>({...e})),startId:e.id,cameraName:Qe,imageUrl:$e,onSave:async(e,t,n)=>{await fe.mutateAsync({id:e,patch:{boxes:t,status:n}})},onDelete:async e=>{await pe.mutateAsync(e)}}},dialogSize:Je})}function ot(){d.openComponentDialog(Wt,{data:{title:l(`views.training.submissions`),hideConfirmButton:!0,cancelText:l(`components.form.button.close`),contentProps:{}},dialogSize:$})}function st(){let e=Ze.value;!e.length||C.isPending.value||d.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 C.mutateAsync(e),qe()}catch(e){m.add({severity:`error`,detail:e?.message??String(e),life:8e3})}}})}function ct(){let e=[...Q.value];!e.length||Ge.value||d.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()=>{Ge.value=!0;try{for(let t of e)await pe.mutateAsync(t);qe(),m.add({severity:`success`,detail:l(`views.training.delete_selected_done`,{count:e.length}),life:5e3})}catch(e){m.add({severity:`error`,detail:e?.message??String(e),life:5e3})}finally{Ge.value=!1}}})}async function lt(e){await pe.mutateAsync(e.id)}async function ut(e){await he.mutateAsync({enabled:e})}ge(O,()=>{N.value=bn}),E.connect();let dt=E.onCandidatesChanged(()=>{_.refetch()});return S(()=>{dt()}),(e,a)=>{let o=Ne,s=te,c=ne,u=K,d=Se,ie=n,ae=be,m=De,se=xe,v=Ce,ue=Le,b=Pe,fe=ke,pe=Te,S=je,he=Me,ge=Ee,_e=ee,k=y,N=p,B=we,U=Oe,Be=i,Ve=r,Ue=Ae,Je=h,at=re,ut=t;return w(),H(`div`,$t,[I(g)?z(``,!0):(w(),H(`h1`,en,G(e.$t(`views.training.title`)),1)),F(c,{position:`left`},{default:j(()=>[F(s,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:a[0]||=t=>e.$router.push(`/menu`)},{icon:j(()=>[F(o,{class:`w-6 h-6`})]),_:1})]),_:1}),F(c,{position:`center`},{default:j(()=>[L(`span`,tn,G(e.$t(`views.training.title`)),1)]),_:1}),L(`div`,nn,[F(v,{class:`flex-1`},{default:j(()=>[F(ae,{class:`flex-1`},{default:j(()=>[F(d,null,{default:j(()=>[F(u,{class:`w-4 h-4`})]),_:1}),F(ie,{modelValue:I(O),"onUpdate:modelValue":a[1]||=e=>ye(O)?O.value=e:null,placeholder:I(l)(`views.training.search`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),_:1}),F(se,null,{default:j(()=>[F(s,{severity:`secondary`,text:``,class:`text-color`,onClick:a[2]||=e=>I(R)?.toggleMenu(e)},{icon:j(()=>[F(m,{class:ve([`w-4 h-4 transform transition-transform duration-300`,{"rotate-180":I(R)?.isOpen}])},null,8,[`class`])]),_:1})]),_:1})]),_:1}),A((w(),M(s,{severity:`secondary`,outlined:``,class:`cui-button shrink-0`,onClick:ot},{icon:j(()=>[F(ue,{class:`w-4.5 h-4.5`})]),_:1})),[[ut,{value:e.$t(`views.training.submissions`)},void 0,{left:!0}]]),A((w(),M(s,{severity:`secondary`,outlined:``,class:`cui-button shrink-0`,onClick:a[3]||=e=>I(V)?.toggleMenu(e)},{icon:j(()=>[F(b,{class:`w-4.5 h-4.5`})]),_:1})),[[ut,{value:e.$t(`views.training.collection`)},void 0,{left:!0}]])]),I(X)?(w(),H(`div`,rn,[I(X).active?(w(),H(x,{key:0},[F(fe,{class:`w-4 h-4 text-primary shrink-0`}),L(`div`,an,[L(`div`,on,G(e.$t(`views.training.upload_progress`,{done:I(X).done+I(X).failed,total:I(X).total})),1),F(pe,{value:I(X).total?Math.round((I(X).done+I(X).failed)/I(X).total*100):0,"show-value":!1,style:{height:`6px`},class:`mt-1.5`},null,8,[`value`])])],64)):(w(),H(x,{key:1},[I(X).failed?(w(),M(S,{key:0,class:`w-5 h-5 text-red-500 shrink-0`})):(w(),M(he,{key:1,class:`w-5 h-5 text-green-500 shrink-0`})),L(`span`,sn,[P(G(e.$t(`views.training.submit_done`,I(X).done)),1),I(X).failed?(w(),H(x,{key:0},[P(` · `+G(e.$t(`views.training.upload_failed_summary`,{count:I(X).failed})),1)],64)):z(``,!0)]),F(s,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-sm shrink-0`,onClick:a[4]||=e=>I(E).dismissProgress()},{icon:j(()=>[F(ge,{class:`w-4 h-4`})]),_:1})],64))])):z(``,!0),I(_).isLoading.value&&!I(_).data.value?(w(),H(`div`,{key:2,class:`grid w-full gap-3 p-px`,style:W(I(Fe))},[(w(),H(x,null,T(8,e=>L(`div`,{key:e,class:`cui-card overflow-hidden`},[F(_e,{class:`aspect-video`,width:`100%`,height:`100%`}),L(`div`,cn,[F(_e,{height:`14px`,width:`70%`,class:`mb-1`}),F(_e,{height:`12px`,width:`40%`})])])),64))],4)):I(q).length===0?(w(),H(`div`,ln,[F(k,{class:`w-12 h-12 text-muted`}),L(`span`,un,G(e.$t(`views.training.no_candidates`)),1)])):(w(),M(Ue,{key:4,items:I(J),"min-item-width":I(g)?220:250,"aspect-ratio":1.17,gap:12,"has-more":I(Y),"load-more":rt,"item-key":e=>e.id,class:`flex-1 min-h-0`},{item:j(({item:t})=>[F(Ve,{class:`cui-card overflow-hidden transition-shadow cursor-pointer hover:shadow-md h-full flex flex-col`,pt:{header:{class:`flex-1 min-h-0 flex`},body:{class:`shrink-0`,style:`height: auto`}},onClick:e=>it(t)},{header:j(()=>[L(`div`,dn,[F(N,{class:`absolute inset-0`,src:$e(t.id),alt:Qe(t.cameraId),"image-container-class":`w-full h-full`,"image-style":{objectFit:`cover`}},null,8,[`src`,`alt`]),L(`div`,fn,[(w(!0),H(x,null,T(tt(t),(e,t)=>(w(),H(`span`,{key:t,class:`px-1.5 py-0.5 rounded text-xs font-medium text-white`,style:W({backgroundColor:I(ce)(String(t)).color})},G(et(String(t)))+` ×`+G(e),5))),128))]),t.upload?(w(),H(`div`,pn,[t.upload===`failed`?A((w(),M(B,{key:0,severity:`danger`,value:e.$t(`views.training.upload_failed`)},null,8,[`value`])),[[ut,t.uploadError,void 0,{top:!0}]]):t.upload===`uploading`?(w(),M(B,{key:1,severity:`info`,value:e.$t(`views.training.upload_uploading`)},null,8,[`value`])):(w(),M(B,{key:2,severity:`secondary`,value:e.$t(`views.training.upload_queued`)},null,8,[`value`]))])):z(``,!0),!I(Z)&&!He(t)?(w(),H(`div`,mn,[A((w(),M(s,{severity:`secondary`,rounded:``,size:`small`,class:`cui-icon-sm text-white`,onClick:D(e=>lt(t),[`stop`])},{icon:j(()=>[F(U,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[ut,e.$t(`views.training.delete_candidate`),void 0,{top:!0}]])])):z(``,!0)])]),content:j(()=>[L(`div`,hn,[L(`div`,gn,[I(Z)&&!He(t)?(w(),M(Be,{key:0,"model-value":I(Q).has(t.id),binary:``,size:`small`,onClick:a[5]||=D(()=>{},[`stop`]),"onUpdate:modelValue":e=>I(Xe)(t.id)},null,8,[`model-value`,`onUpdate:modelValue`])):z(``,!0),L(`div`,_n,[L(`div`,vn,G(Qe(t.cameraId)),1),L(`div`,yn,G(I(le)(t.createdAt)),1)])]),F(B,{severity:nt(t.status),value:e.$t(`views.training.status_${t.status}`)},null,8,[`severity`,`value`])])]),_:2},1032,[`onClick`])]),_:1},8,[`items`,`min-item-width`,`has-more`,`item-key`])),I(q).length||I(Z)?(w(),M(at,{key:5,"force-visible":I(Z)},{default:j(()=>[I(Z)?(w(),H(x,{key:1},[F(Je,{grouped:``,"tooltip-props":{value:e.$t(`components.form.tooltip.cancel_selection`)},"button-props":{severity:`secondary`},icon:I(Ee),"icon-props":{width:`100%`,height:`100%`},onClick:I(qe)},null,8,[`tooltip-props`,`icon`,`onClick`]),F(Je,{grouped:``,"tooltip-props":{value:I(We)?e.$t(`views.training.deselect_all`):e.$t(`views.training.select_all`)},"button-props":{severity:I(We)?`primary`:`secondary`},icon:I(me),"icon-props":{width:`100%`,height:`100%`},onClick:I(Ye)},null,8,[`tooltip-props`,`button-props`,`icon`,`onClick`]),F(Je,{grouped:``,"tooltip-props":{value:e.$t(`views.training.submit_selected`)},"button-props":{disabled:!I(Ze).length||I(C).isPending.value},icon:I(ze),"icon-props":{width:`100%`,height:`100%`},onClick:st},null,8,[`tooltip-props`,`button-props`,`icon`]),F(Je,{grouped:``,"tooltip-props":{value:e.$t(`views.training.delete_selected`)},"button-props":{severity:`danger`,disabled:!I(Q).size||I(Ge)},icon:I(oe),"icon-props":{width:`100%`,height:`100%`},onClick:ct},null,8,[`tooltip-props`,`button-props`,`icon`])],64)):(w(),M(Je,{key:0,grouped:``,"tooltip-props":{value:e.$t(`views.training.select`)},"button-props":{severity:`secondary`},icon:I(f),"icon-props":{width:`100%`,height:`100%`},onClick:I(Ke)},null,8,[`tooltip-props`,`icon`,`onClick`]))]),_:1},8,[`force-visible`])):z(``,!0),F(de,{ref_key:`cameraMenuRef`,ref:R,items:I(Ie),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`]),F(de,{ref_key:`settingsMenuRef`,ref:V,items:I(Re),"auto-hide":!1,popover:{pt:{root:{class:`w-[22rem]`},content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}});export{xn as default};