@camera.ui/server 2.1.12 → 2.1.14-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (627) hide show
  1. package/dist/interface/assets/{404-BDi1TzED.js → 404-CVkDpT0X.js} +1 -1
  2. package/dist/interface/assets/{About-DeHiJp3n.js → About-CUgIR2xi.js} +1 -1
  3. package/dist/interface/assets/Automation-BYRKp0AC.js +3 -0
  4. package/dist/interface/assets/{AutomationImport-B3bCE-yS.js → AutomationImport-L_OzZZgi.js} +2 -2
  5. package/dist/interface/assets/{AutomationStore-BoWd7IW9.js → AutomationStore-DaNQqJoT.js} +2 -2
  6. package/dist/interface/assets/AutomationStoreDetail-Seor4Ohh.js +2 -0
  7. package/dist/interface/assets/Automations-BMQIkpUa.js +2 -0
  8. package/dist/interface/assets/Camera-3umh2Xjc.js +2 -0
  9. package/dist/interface/assets/{CameraConsole-C8XSUr7X.js → CameraConsole-BLlgkKDp.js} +2 -2
  10. package/dist/interface/assets/Cameras-DvK8E1Vk.js +651 -0
  11. package/dist/interface/assets/{Camview-Lp3QU0de.css → Camview-DIEa8IRE.css} +1 -1
  12. package/dist/interface/assets/Camview-DSO2lWxT.js +1 -0
  13. package/dist/interface/assets/{CertificateUpload-Cg89m_cM.js → CertificateUpload-BsnlaxRS.js} +1 -1
  14. package/dist/interface/assets/{Config-BDa4dy1w.js → Config-BXj83-No.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionCameraControl-DNmRpuPG.js → ConfigActionCameraControl-BGfvT6ME.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionDelay-Reg_tEG_.js → ConfigActionDelay-D10_C6yo.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionHttp-CqRBOSa3.js → ConfigActionHttp-DL4jh9Wz.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionImageInput-GWECLY4I.js → ConfigActionImageInput-DVvMUzrT.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionMqtt-Di4ZTig8.js → ConfigActionMqtt-BqK3q4cC.js} +1 -1
  20. package/dist/interface/assets/ConfigActionNotification-D_H5Q68D.js +1 -0
  21. package/dist/interface/assets/{ConfigActionNotificationControl-B_p8dnc4.js → ConfigActionNotificationControl-BnTJl4dr.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionOutput-B31cj20h.js → ConfigActionOutput-udY95_rH.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionPlugin-DCUhDIiJ.js → ConfigActionPlugin-C51LrkZb.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionSensor-De63wYQU.js → ConfigActionSensor-B2tFf8x6.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionSnapshot-DZJDjOMT.js → ConfigActionSnapshot-BzmeByH3.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionVariable-Q3QXVMbR.js → ConfigActionVariable-BagC3lj5.js} +1 -1
  27. package/dist/interface/assets/{ConfigConditionIfElse-DKonPxli.js → ConfigConditionIfElse-CQOZJ19Y.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionSensorState-C_J6ERzt.js → ConfigConditionSensorState-SGYpkNP5.js} +1 -1
  29. package/dist/interface/assets/ConfigConditionSwitch-BXR6xUN8.js +1 -0
  30. package/dist/interface/assets/{ConfigConditionTime-CRDI58_P.js → ConfigConditionTime-BrEhw1R9.js} +1 -1
  31. package/dist/interface/assets/{ConfigSensorValueInput-C3ep90ds.js → ConfigSensorValueInput-DezTWtbA.js} +1 -1
  32. package/dist/interface/assets/{ConfigTriggerDetection-CbVFlyI8.js → ConfigTriggerDetection-xo0imE_3.js} +1 -1
  33. package/dist/interface/assets/ConfigTriggerGeofence-BmJpP4Ew.js +1 -0
  34. package/dist/interface/assets/{ConfigTriggerManual-7kAukUgk.js → ConfigTriggerManual-CmAdnZQK.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerMqtt-DUCZZt2j.js → ConfigTriggerMqtt-F19dhVm1.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerSchedule-lAiLdu1W.js → ConfigTriggerSchedule-BGci3Aed.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSensor-DIhCfhcN.js → ConfigTriggerSensor-DSEDGB2X.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerSystem-DZu6Fp2j.js → ConfigTriggerSystem-DPy8Zir4.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerWebhook-D3a5f6vl.js → ConfigTriggerWebhook-Dv0Kmwg8.js} +1 -1
  40. package/dist/interface/assets/Console-Cuh-Vc4u.js +1 -0
  41. package/dist/interface/assets/{CuiAutomationRunsDialog-CgzW_s6M.js → CuiAutomationRunsDialog-B1UeVC6Q.js} +1 -1
  42. package/dist/interface/assets/{CuiBottomSheet-C7UdIQu1.js → CuiBottomSheet-BjkDE7_9.js} +1 -1
  43. package/dist/interface/assets/CuiBottomSheet-C9G-NoMU.js +1 -0
  44. package/dist/interface/assets/CuiCameraPipCard-nrln9zp-.js +1 -0
  45. package/dist/interface/assets/CuiCameraRecordings-B7BhgPpP.css +1 -0
  46. package/dist/interface/assets/CuiCameraRecordings-HKwhFpea.js +1 -0
  47. package/dist/interface/assets/{CuiCameraShares-D3fAJNWF.js → CuiCameraShares-D-fhJCro.js} +1 -1
  48. package/dist/interface/assets/{CuiCameraTable-ApLSxeO4.js → CuiCameraTable-BTVfK-HY.js} +2 -2
  49. package/dist/interface/assets/CuiCameraTable-DGg4_c_u.js +1 -0
  50. package/dist/interface/assets/{CuiChartTable-BeEij8SL.js → CuiChartTable-DAUYP-EW.js} +1 -1
  51. package/dist/interface/assets/{CuiConsole-CMxpzZ51.js → CuiConsole-C7aZj4wK.js} +2 -2
  52. package/dist/interface/assets/{CuiDataTable-f_QVzRqq.js → CuiDataTable-1B8aaZQO.js} +1 -1
  53. package/dist/interface/assets/CuiLightControl-CSA1PYc8.js +1 -0
  54. package/dist/interface/assets/{CuiList-C3oJKyJC.js → CuiList-D-hOSNou.js} +1 -1
  55. package/dist/interface/assets/CuiPluginCard-D1Hkyiy4.js +2 -0
  56. package/dist/interface/assets/{CuiPluginCategoryChip-EJhup0nM.js → CuiPluginCategoryChip-qnn-HD6g.js} +1 -1
  57. package/dist/interface/assets/{CuiPluginOAuthButton-CbPU8trR.js → CuiPluginOAuthButton-CXextmBv.js} +2 -2
  58. package/dist/interface/assets/{CuiPluginTrustBadge-B4bxBl3A.js → CuiPluginTrustBadge-C-8MN2Qc.js} +1 -1
  59. package/dist/interface/assets/{CuiQRCode-CycvR5wz.js → CuiQRCode-D1qmU4qU.js} +1 -1
  60. package/dist/interface/assets/CuiSchema-DnHOpBg4.js +1 -0
  61. package/dist/interface/assets/{CuiTopNavbarItem-D4qP-WpK.js → CuiTopNavbarItem-Csb3O1-n.js} +1 -1
  62. package/dist/interface/assets/Faces-C0QpQxuF.js +1 -0
  63. package/dist/interface/assets/FirstSteps-BqZQovY7.js +1 -0
  64. package/dist/interface/assets/{Floorplan-Da5gt435.css → Floorplan-Bxhdg4C2.css} +1 -1
  65. package/dist/interface/assets/Floorplan-CW-W5ZkV.js +1 -0
  66. package/dist/interface/assets/Instances-VSkiqKKf.js +1 -0
  67. package/dist/interface/assets/{Logs-BBZMBN6a.js → Logs-DQFS2AUi.js} +2 -2
  68. package/dist/interface/assets/{Menu-CRLIo98F.js → Menu-COvvZ_vz.js} +1 -1
  69. package/dist/interface/assets/Metrics-cvbQzChA.js +9 -0
  70. package/dist/interface/assets/OAuthDeviceFlow-3ZC2QCAs.js +1 -0
  71. package/dist/interface/assets/Plugin-DjQd3Y9J.js +1 -0
  72. package/dist/interface/assets/{PluginConsole-D2SUwFDo.js → PluginConsole-BaUkghQD.js} +2 -2
  73. package/dist/interface/assets/PluginDetail-Ofj1hk2q.js +2 -0
  74. package/dist/interface/assets/{PluginSchema-U4q4c9ak.js → PluginSchema-f-ER7hlx.js} +1 -1
  75. package/dist/interface/assets/PluginSearch-Ce3S1HDv.js +1 -0
  76. package/dist/interface/assets/PluginSearch-D5eQsj5p.js +2 -0
  77. package/dist/interface/assets/{PluginUpdateProgress-DWcs6NlJ.js → PluginUpdateProgress-BfYNLvVX.js} +1 -1
  78. package/dist/interface/assets/Plugins-DtDN9z0k.js +1 -0
  79. package/dist/interface/assets/Recordings-CQGnTZFt.js +1 -0
  80. package/dist/interface/assets/SensorEdit-BZtiJyoI.js +1 -0
  81. package/dist/interface/assets/{SensorHistory-B16b4-Um.js → SensorHistory-BFkT3teu.js} +1 -1
  82. package/dist/interface/assets/{Sensors-BsLHVGqk.css → Sensors-CaKl4PQY.css} +1 -1
  83. package/dist/interface/assets/Sensors-DSR-AUqb.js +2 -0
  84. package/dist/interface/assets/{Settings-BOd4EPix.js → Settings-DV3JZFjc.js} +1 -1
  85. package/dist/interface/assets/SettingsAccount-Cd5JPsv2.js +1 -0
  86. package/dist/interface/assets/SettingsAccount-D4ib7Asi.js +1 -0
  87. package/dist/interface/assets/SettingsAppearance-BYsQmdyo.js +1 -0
  88. package/dist/interface/assets/{SettingsAppearance-DZGa_aiI.js → SettingsAppearance-CC6StMAi.js} +1 -1
  89. package/dist/interface/assets/{SettingsBackup-DyblUiF8.js → SettingsBackup-BcVFCbhB.js} +1 -1
  90. package/dist/interface/assets/{SettingsList-DM0yAFkS.js → SettingsList-04HiM3OT.js} +1 -1
  91. package/dist/interface/assets/SettingsMqtt-XaJdsYPn.js +1 -0
  92. package/dist/interface/assets/SettingsNotifications-CUoYMHwr.js +1 -0
  93. package/dist/interface/assets/{SettingsPermissions-w2ptf4wy.js → SettingsPermissions-gFDNSlTh.js} +1 -1
  94. package/dist/interface/assets/SettingsRecordings-Bw64UZWe.js +1 -0
  95. package/dist/interface/assets/SettingsRemote-BnFW-uT-.js +2 -0
  96. package/dist/interface/assets/{SettingsSystem-BsXkYsRC.js → SettingsSystem-Cdjg5GNY.js} +2 -2
  97. package/dist/interface/assets/{SettingsUsers-BSsmo6T0.js → SettingsUsers-DphPL78H.js} +1 -1
  98. package/dist/interface/assets/{Terminal-cU-8dVL_.js → Terminal-CrNjqzTs.js} +2 -2
  99. package/dist/interface/assets/{Updates-dw0MwgsN.js → Updates-V5B9LSD-.js} +1 -1
  100. package/dist/interface/assets/{VariableInput-JSpyezJa.js → VariableInput-n0TxKRqq.js} +1 -1
  101. package/dist/interface/assets/{VariableSuggestions-DZbWgsck.js → VariableSuggestions-C4LmaCAo.js} +1 -1
  102. package/dist/interface/assets/{VersionsHandler-C_mzsgfj.js → VersionsHandler-BPocJcb0.js} +2 -2
  103. package/dist/interface/assets/{VirtualSensorCreate-3mJ8c6Tl.js → VirtualSensorCreate-BPvbrzGS.js} +1 -1
  104. package/dist/interface/assets/Workers-DEvQNzUi.js +2 -0
  105. package/dist/interface/assets/{lightbulb-outline-BtraGBwO.js → alert-outline-DtiCgufF.js} +1 -1
  106. package/dist/interface/assets/{api-COPnjVh2.js → api-BXmkXIE8.js} +1 -1
  107. package/dist/interface/assets/api-DO5wBndX.css +2 -0
  108. package/dist/interface/assets/api-x8zXlvtm.js +4 -0
  109. package/dist/interface/assets/{auth-owqLfbdn.js → auth-BKJnreuu.js} +1 -1
  110. package/dist/interface/assets/{automations-Bql07EFx.js → automations-CVuIXlAQ.js} +1 -1
  111. package/dist/interface/assets/cameraSources-C3cl6FVD.js +1 -0
  112. package/dist/interface/assets/cloudHandoff-BZvvihwX.js +1 -0
  113. package/dist/interface/assets/{config-soN-D-nC.js → config-Sw94rZxF.js} +1 -1
  114. package/dist/interface/assets/{flowSchema-BFZ6n5Su.js → flowSchema-BOrDqdeG.js} +1 -1
  115. package/dist/interface/assets/{intercomService-Bjn0OsVT.js → intercomService-CfCIMUlA.js} +1 -1
  116. package/dist/interface/assets/main-Jl93jEZK.js +3 -0
  117. package/dist/interface/assets/{main-BF8Mg561.css → main-Qqk3RyYP.css} +1 -1
  118. package/dist/interface/assets/{mqtt-CMdU36uB.js → mqtt-BaCMJJk_.js} +1 -1
  119. package/dist/interface/assets/nodeDefinitions-a8iyp3yk.js +1 -0
  120. package/dist/interface/assets/{notifications-C_CbT9aA.js → notifications-l-x8vA4D.js} +1 -1
  121. package/dist/interface/assets/{plugins-CGDE1O2F.js → plugins-GA9v-eQx.js} +1 -1
  122. package/dist/interface/assets/{rooms-BnJo8QbU.js → rooms-DX7PBdpP.js} +1 -1
  123. package/dist/interface/assets/sensorIcons-BTgouEmX.js +1 -0
  124. package/dist/interface/assets/{sensors-Bshdwbki.js → sensors-LJkBCaMk.js} +1 -1
  125. package/dist/interface/assets/{server-CaRDiFTF.js → server-dOx3q8o1.js} +1 -1
  126. package/dist/interface/assets/theme-DgrclY58.js +1 -0
  127. package/dist/interface/assets/types-CSWXRySW.js +1 -0
  128. package/dist/interface/assets/{types-Dwu7_YVv.js → types-D19FOdYo.js} +1 -1
  129. package/dist/interface/assets/types-Yq0FH8fa.js +1 -0
  130. package/dist/interface/assets/ungrouped-B_u9a5wm.js +1 -0
  131. package/dist/interface/assets/{ungrouped-uv64nr5n.css → ungrouped-DTYy_Pud.css} +1 -1
  132. package/dist/interface/assets/{updates-DelnBMM3.js → updates-BVN6uGXy.js} +1 -1
  133. package/dist/interface/assets/{useAppVersion-DeQeb6UF.js → useAppVersion-BUDIkitU.js} +1 -1
  134. package/dist/interface/assets/useBackupRestore-CnSZNCC8.js +1 -0
  135. package/dist/interface/assets/{useCameraOptions-DgMpN00_.js → useCameraOptions-Cgb4eV2d.js} +1 -1
  136. package/dist/interface/assets/{useLogsSocket-BKPqNCOv.js → useLogsSocket-CGKtL049.js} +1 -1
  137. package/dist/interface/assets/{useNavLayout-BJhl8UVM.js → useNavLayout-Dcngcb73.js} +1 -1
  138. package/dist/interface/assets/{usePermissions-Eyt2t6_8.js → usePermissions-zJF4LCPm.js} +1 -1
  139. package/dist/interface/assets/{usePluginUpdates-wfckuNy_.js → usePluginUpdates-DP--lRxm.js} +1 -1
  140. package/dist/interface/assets/{usePushRegistration-jcfB8ujf.js → usePushRegistration-BhPBp28J.js} +1 -1
  141. package/dist/interface/assets/{useServerRestart-XnqHaTb7.js → useServerRestart-BpCDYbPH.js} +1 -1
  142. package/dist/interface/assets/{useStreamStatus-8bE5h_fQ.js → useStreamStatus-BoVMk6KT.js} +1 -1
  143. package/dist/interface/assets/{useTabSwipe-DxZfseQO.js → useTabSwipe--t-Qqa31.js} +1 -1
  144. package/dist/interface/assets/{useUpdateChannel-CjxdE3h1.js → useUpdateChannel-DAuhU-__.js} +1 -1
  145. package/dist/interface/assets/{useUpdatesSocket-DFt7_yr8.js → useUpdatesSocket-C-j3b3tU.js} +1 -1
  146. package/dist/interface/assets/{useUserOptions-DStio0f5.js → useUserOptions-CcLVC73O.js} +1 -1
  147. package/dist/interface/assets/vendor-cameraui-phsC2Mmi.js +2326 -0
  148. package/dist/interface/assets/vendor-core-C0ZWoGJD.js +1 -0
  149. package/dist/interface/assets/{vendor-primevue-DXXRO7Z5.js → vendor-primevue-nPess0JU.js} +76 -76
  150. package/dist/interface/assets/vendor-zod-CJ7LAMqQ.js +99 -0
  151. package/dist/interface/ha/404-PedrGUiq.js +60 -0
  152. package/dist/interface/ha/About-l5fkBqG7.js +55 -0
  153. package/dist/interface/ha/Automation-CaSlGjT4.js +2015 -0
  154. package/dist/interface/ha/AutomationImport-BNavtjDq.js +206 -0
  155. package/dist/interface/ha/AutomationStore-BVSW8TVt.js +335 -0
  156. package/dist/interface/ha/AutomationStoreDetail-DHZwlpz0.js +122 -0
  157. package/dist/interface/ha/Automations-CZ2jvH6d.js +437 -0
  158. package/dist/interface/ha/Camera-CggUrrPm.js +625 -0
  159. package/dist/interface/ha/CameraConsole-DpzF48TF.js +52 -0
  160. package/dist/interface/ha/Cameras-K-kQF5tG.js +1970 -0
  161. package/dist/interface/ha/Camview-zJVP7JwZ.js +1337 -0
  162. package/dist/interface/ha/CertificateUpload-DbBQ87OT.js +117 -0
  163. package/dist/interface/ha/Config-Bsud2DYI.js +356 -0
  164. package/dist/interface/ha/ConfigActionCameraControl-Czkfw_NO.js +152 -0
  165. package/dist/interface/ha/ConfigActionDelay-BHug57u7.js +61 -0
  166. package/dist/interface/ha/ConfigActionHttp-LfbxbfgG.js +134 -0
  167. package/dist/interface/ha/ConfigActionImageInput-Ce2GJzCm.js +171 -0
  168. package/dist/interface/ha/ConfigActionMqtt-KmCGcNZb.js +81 -0
  169. package/dist/interface/ha/ConfigActionNotification-DUMY_3IT.js +199 -0
  170. package/dist/interface/ha/ConfigActionNotificationControl-B9Z2i5WR.js +111 -0
  171. package/dist/interface/ha/ConfigActionOutput-CX-ZQjcs.js +98 -0
  172. package/dist/interface/ha/ConfigActionPlugin-y5PuPwdk.js +172 -0
  173. package/dist/interface/ha/ConfigActionSensor-CC39Rpxi.js +139 -0
  174. package/dist/interface/ha/ConfigActionSnapshot-CWyhx6rk.js +48 -0
  175. package/dist/interface/ha/ConfigActionVariable-BNRLCthd.js +88 -0
  176. package/dist/interface/ha/ConfigConditionIfElse-BayS5_Dr.js +124 -0
  177. package/dist/interface/ha/ConfigConditionSensorState-DLXNqL-R.js +192 -0
  178. package/dist/interface/ha/ConfigConditionSwitch-BBesQgWi.js +128 -0
  179. package/dist/interface/ha/ConfigConditionTime-aD8mk2aa.js +95 -0
  180. package/dist/interface/ha/ConfigSensorValueInput-5JzesEuD.js +169 -0
  181. package/dist/interface/ha/ConfigTriggerDetection--BcjPuyh.js +241 -0
  182. package/dist/interface/ha/ConfigTriggerGeofence-BZi5a2Yv.js +4896 -0
  183. package/dist/interface/ha/ConfigTriggerManual-ConxhgNx.js +14 -0
  184. package/dist/interface/ha/ConfigTriggerMqtt-B6C9injX.js +134 -0
  185. package/dist/interface/ha/ConfigTriggerSchedule-Vv5iNKL3.js +72 -0
  186. package/dist/interface/ha/ConfigTriggerSensor-beixHfSD.js +73 -0
  187. package/dist/interface/ha/ConfigTriggerSystem-BHDpn485.js +188 -0
  188. package/dist/interface/ha/ConfigTriggerWebhook-D9cuCU_p.js +94 -0
  189. package/dist/interface/ha/Console-CbQnrt6X.js +348 -0
  190. package/dist/interface/ha/CuiAutomationRunsDialog-CckgCRNS.js +130 -0
  191. package/dist/interface/ha/CuiBottomSheet-juhGdTsO.js +270 -0
  192. package/dist/interface/ha/CuiCameraRecordings-CLzZiXhk.js +552 -0
  193. package/dist/interface/ha/CuiCameraShares-Dzx1jZGE.js +121 -0
  194. package/dist/interface/ha/CuiCameraTable-ug0ik9N-.js +153 -0
  195. package/dist/interface/ha/CuiChartTable-7EnAA-WG.js +6784 -0
  196. package/dist/interface/ha/CuiConsole-DOnyBSL7.js +244 -0
  197. package/dist/interface/ha/CuiDataTable-Cx9GBqsV.js +8725 -0
  198. package/dist/interface/ha/CuiList-C45psxFZ.js +57 -0
  199. package/dist/interface/ha/CuiMarkdownContent-D7sCtnNQ.js +4716 -0
  200. package/dist/interface/ha/CuiPluginCard-ChLIfOms.js +769 -0
  201. package/dist/interface/ha/CuiPluginOAuthButton-B6vPOEx2.js +105 -0
  202. package/dist/interface/ha/CuiPluginTrustBadge-BvPV93D0.js +123 -0
  203. package/dist/interface/ha/CuiQRCode-Djr3z54t.js +86 -0
  204. package/dist/interface/ha/CuiSchema-dl7TXv-k.js +963 -0
  205. package/dist/interface/ha/CuiTopNavbarItem-BXoda5eM.js +141 -0
  206. package/dist/interface/ha/Faces-DnqWMGWW.js +1281 -0
  207. package/dist/interface/ha/FirstSteps-CFawb017.js +251 -0
  208. package/dist/interface/ha/Floorplan-Mv-Ootly.js +3677 -0
  209. package/dist/interface/ha/Instances-DJjZ3btI.js +680 -0
  210. package/dist/interface/ha/Logs-CLFhW1xq.js +418 -0
  211. package/dist/interface/ha/Menu-D7QTRqMJ.js +161 -0
  212. package/dist/interface/ha/Metrics-CCvFtezL.js +1330 -0
  213. package/dist/interface/ha/OAuthDeviceFlow-4YupTNsK.js +112 -0
  214. package/dist/interface/ha/Plugin-BHU0yhBa.js +1404 -0
  215. package/dist/interface/ha/PluginConsole-CNrLuFQM.js +56 -0
  216. package/dist/interface/ha/PluginDetail-Bm3X-xN4.js +230 -0
  217. package/dist/interface/ha/PluginSearch-C0be8cYD.js +475 -0
  218. package/dist/interface/ha/PluginUpdateProgress-DVvgYMLG.js +34 -0
  219. package/dist/interface/ha/Plugins-R-uz0Se-.js +705 -0
  220. package/dist/interface/ha/Recordings-DAwbihs8.js +1463 -0
  221. package/dist/interface/ha/SensorEdit-BxE1cRLR.js +1460 -0
  222. package/dist/interface/ha/SensorHistory-DUGlH2pU.js +54 -0
  223. package/dist/interface/ha/Sensors-Cax5RlPH.js +1358 -0
  224. package/dist/interface/ha/Settings-DKtlCoyz.js +218 -0
  225. package/dist/interface/ha/SettingsAccount-2e_Vjpev.js +970 -0
  226. package/dist/interface/ha/SettingsAppearance-DCm60FhX.js +220 -0
  227. package/dist/interface/ha/SettingsBackup-CiM_nNWt.js +556 -0
  228. package/dist/interface/ha/SettingsList-D4D3cmLo.js +40 -0
  229. package/dist/interface/ha/SettingsMqtt-CID4L0PD.js +526 -0
  230. package/dist/interface/ha/SettingsNotifications-DGJkhm8T.js +529 -0
  231. package/dist/interface/ha/SettingsPermissions-Cd0rtgli.js +84 -0
  232. package/dist/interface/ha/SettingsRecordings-pR4L0wgy.js +151 -0
  233. package/dist/interface/ha/SettingsRemote-CYg-LSQK.js +1810 -0
  234. package/dist/interface/ha/SettingsSystem-BeYJN1Ut.js +376 -0
  235. package/dist/interface/ha/SettingsUsers-F4CZggSR.js +379 -0
  236. package/dist/interface/ha/Terminal-iQahUx9P.js +631 -0
  237. package/dist/interface/ha/Updates-ClQ77p-o.js +356 -0
  238. package/dist/interface/ha/VariableInput-BOHBmNff.js +52 -0
  239. package/dist/interface/ha/VariableSuggestions-BE06z6SW.js +201 -0
  240. package/dist/interface/ha/VersionsHandler-Cx9u0oj8.js +211 -0
  241. package/dist/interface/ha/VirtualSensorCreate-CvSzLo4N.js +101 -0
  242. package/dist/interface/ha/Workers-CEJtdSu-.js +765 -0
  243. package/dist/interface/ha/accordion-BT2wHwK8.js +577 -0
  244. package/dist/interface/ha/account-B1xL2wxD.js +19 -0
  245. package/dist/interface/ha/ace-Dh61T4RV.js +13238 -0
  246. package/dist/interface/ha/ace.config-HyzcNHkM.js +1429 -0
  247. package/dist/interface/ha/alert-circle-CLRn5GAd.js +19 -0
  248. package/dist/interface/ha/alert-outline-CGTMAqXf.js +75 -0
  249. package/dist/interface/ha/api-BmNBy1ay.js +29 -0
  250. package/dist/interface/ha/api-CWJkvtnM.js +60866 -0
  251. package/dist/interface/ha/arrow-left-DkvcResi.js +19 -0
  252. package/dist/interface/ha/auth-X6tkVYJs.js +271 -0
  253. package/dist/interface/ha/autocomplete-L_jK3s3m.js +1373 -0
  254. package/dist/interface/ha/automationBlueprint-D1TiCF7R.js +249 -0
  255. package/dist/interface/ha/back-filled-Cxzg5vQg.js +20 -0
  256. package/dist/interface/ha/base-D_LAf3cS.js +26 -0
  257. package/dist/interface/ha/base-c1lsE5TW.js +125 -0
  258. package/dist/interface/ha/bell-ring-xrXdzNHW.js +19 -0
  259. package/dist/interface/ha/brain-DyOOk3m3.js +19 -0
  260. package/dist/interface/ha/browser-Bxx7joo_.js +1227 -0
  261. package/dist/interface/ha/browserconfig.xml +11 -0
  262. package/dist/interface/ha/button-BlYuI0Q7.js +406 -0
  263. package/dist/interface/ha/cameraui-cards.js +190 -0
  264. package/dist/interface/ha/cards-CNOyNWMA.js +13316 -0
  265. package/dist/interface/ha/cctv-Bz6BH0ns.js +19 -0
  266. package/dist/interface/ha/check-circle-D_wDxrLs.js +19 -0
  267. package/dist/interface/ha/chevron-down-P5MtUhJO.js +19 -0
  268. package/dist/interface/ha/chip-DxGABeun.js +149 -0
  269. package/dist/interface/ha/clock-outline-JxApewmA.js +19 -0
  270. package/dist/interface/ha/close-Eq3txTBS.js +19 -0
  271. package/dist/interface/ha/close-circle-C2nTtN_-.js +19 -0
  272. package/dist/interface/ha/config-E4Jkelkr.js +116 -0
  273. package/dist/interface/ha/content-copy-DpPXKtKE.js +19 -0
  274. package/dist/interface/ha/copy-C48Ur26H.js +22 -0
  275. package/dist/interface/ha/datepicker-BuvKhBWJ.js +3236 -0
  276. package/dist/interface/ha/definitions-E-sY7Cxg.js +23 -0
  277. package/dist/interface/ha/delete-D-m8mqly.js +19 -0
  278. package/dist/interface/ha/dist-B7lgvbyI.js +279 -0
  279. package/dist/interface/ha/dist-Ca9_5rzq.js +3457 -0
  280. package/dist/interface/ha/divider-jkWvVbPJ.js +110 -0
  281. package/dist/interface/ha/download-Cnr7IQKX.js +19 -0
  282. package/dist/interface/ha/esm-1sIZN4t7.js +6 -0
  283. package/dist/interface/ha/esm-6hnPZcZr.js +15 -0
  284. package/dist/interface/ha/esm-B72ViJ7F.js +5 -0
  285. package/dist/interface/ha/esm-BGlkcEes.js +156 -0
  286. package/dist/interface/ha/esm-BKPZuThK.js +5 -0
  287. package/dist/interface/ha/esm-BMx7MsZ_.js +15 -0
  288. package/dist/interface/ha/esm-CChFtwcx.js +21 -0
  289. package/dist/interface/ha/esm-CMTmAdHP.js +5 -0
  290. package/dist/interface/ha/esm-CkoEL9YX.js +7 -0
  291. package/dist/interface/ha/esm-CvxDASXR.js +23 -0
  292. package/dist/interface/ha/esm-Demxl4zQ.js +5 -0
  293. package/dist/interface/ha/esm-DiBhi9zp.js +5 -0
  294. package/dist/interface/ha/esm-XFPB9fYb.js +15 -0
  295. package/dist/interface/ha/eventLabels-B4C1_4vT.js +42 -0
  296. package/dist/interface/ha/eye-off-AdumIw0H.js +33 -0
  297. package/dist/interface/ha/eye-off-outline-DO3xfiua.js +19 -0
  298. package/dist/interface/ha/fonts/InterVariable.woff2 +0 -0
  299. package/dist/interface/ha/history-BoZc8mgf.js +19 -0
  300. package/dist/interface/ha/home-am0tRTsk.js +19 -0
  301. package/dist/interface/ha/information-outline-DIdNxPCN.js +19 -0
  302. package/dist/interface/ha/inputicon-6-vaPLbw.js +324 -0
  303. package/dist/interface/ha/inputnumber-B1Buq8Nc.js +1033 -0
  304. package/dist/interface/ha/inputtext-DGIESrd0.js +257 -0
  305. package/dist/interface/ha/intercomService-jB2mTgsn.js +1406 -0
  306. package/dist/interface/ha/message-C8U_kMBA.js +244 -0
  307. package/dist/interface/ha/minus-DKa9TXat.js +19 -0
  308. package/dist/interface/ha/minus-QyTgaT70.js +46 -0
  309. package/dist/interface/ha/mqtt-BmDCmG9h.js +56 -0
  310. package/dist/interface/ha/multiselect-BbgV_fPx.js +1492 -0
  311. package/dist/interface/ha/native-BaNeloQn.js +35 -0
  312. package/dist/interface/ha/native-C8PbNqsJ.js +29 -0
  313. package/dist/interface/ha/notifications-B51yvrGL.js +159 -0
  314. package/dist/interface/ha/og-share.png +0 -0
  315. package/dist/interface/ha/pencil-outline-BqfTDXIh.js +19 -0
  316. package/dist/interface/ha/pinia-3D39Do4a.js +6934 -0
  317. package/dist/interface/ha/platformLabels-C3d1PLg-.js +27 -0
  318. package/dist/interface/ha/plugin-DAGqBiG_.js +38 -0
  319. package/dist/interface/ha/plugins-dkWbXWVM.js +592 -0
  320. package/dist/interface/ha/plus-CNdrByQb.js +46 -0
  321. package/dist/interface/ha/plus-d_caPq5l.js +19 -0
  322. package/dist/interface/ha/progressbar-CIoPoMSe.js +95 -0
  323. package/dist/interface/ha/protocol-BB4jdtUC-K1r3LFCq.js +706 -0
  324. package/dist/interface/ha/pwa/apple-splash-landscape-dark-1136x640.png +0 -0
  325. package/dist/interface/ha/pwa/apple-splash-landscape-dark-1334x750.png +0 -0
  326. package/dist/interface/ha/pwa/apple-splash-landscape-dark-1792x828.png +0 -0
  327. package/dist/interface/ha/pwa/apple-splash-landscape-dark-2048x1536.png +0 -0
  328. package/dist/interface/ha/pwa/apple-splash-landscape-dark-2160x1620.png +0 -0
  329. package/dist/interface/ha/pwa/apple-splash-landscape-dark-2208x1242.png +0 -0
  330. package/dist/interface/ha/pwa/apple-splash-landscape-dark-2224x1668.png +0 -0
  331. package/dist/interface/ha/pwa/apple-splash-landscape-dark-2388x1668.png +0 -0
  332. package/dist/interface/ha/pwa/apple-splash-landscape-dark-2436x1125.png +0 -0
  333. package/dist/interface/ha/pwa/apple-splash-landscape-dark-2532x1170.png +0 -0
  334. package/dist/interface/ha/pwa/apple-splash-landscape-dark-2556x1179.png +0 -0
  335. package/dist/interface/ha/pwa/apple-splash-landscape-dark-2688x1242.png +0 -0
  336. package/dist/interface/ha/pwa/apple-splash-landscape-dark-2732x2048.png +0 -0
  337. package/dist/interface/ha/pwa/apple-splash-landscape-dark-2778x1284.png +0 -0
  338. package/dist/interface/ha/pwa/apple-splash-landscape-dark-2796x1290.png +0 -0
  339. package/dist/interface/ha/pwa/apple-splash-landscape-light-1136x640.png +0 -0
  340. package/dist/interface/ha/pwa/apple-splash-landscape-light-1334x750.png +0 -0
  341. package/dist/interface/ha/pwa/apple-splash-landscape-light-1792x828.png +0 -0
  342. package/dist/interface/ha/pwa/apple-splash-landscape-light-2048x1536.png +0 -0
  343. package/dist/interface/ha/pwa/apple-splash-landscape-light-2160x1620.png +0 -0
  344. package/dist/interface/ha/pwa/apple-splash-landscape-light-2208x1242.png +0 -0
  345. package/dist/interface/ha/pwa/apple-splash-landscape-light-2224x1668.png +0 -0
  346. package/dist/interface/ha/pwa/apple-splash-landscape-light-2388x1668.png +0 -0
  347. package/dist/interface/ha/pwa/apple-splash-landscape-light-2436x1125.png +0 -0
  348. package/dist/interface/ha/pwa/apple-splash-landscape-light-2532x1170.png +0 -0
  349. package/dist/interface/ha/pwa/apple-splash-landscape-light-2556x1179.png +0 -0
  350. package/dist/interface/ha/pwa/apple-splash-landscape-light-2688x1242.png +0 -0
  351. package/dist/interface/ha/pwa/apple-splash-landscape-light-2732x2048.png +0 -0
  352. package/dist/interface/ha/pwa/apple-splash-landscape-light-2778x1284.png +0 -0
  353. package/dist/interface/ha/pwa/apple-splash-landscape-light-2796x1290.png +0 -0
  354. package/dist/interface/ha/pwa/apple-splash-portrait-dark-1125x2436.png +0 -0
  355. package/dist/interface/ha/pwa/apple-splash-portrait-dark-1170x2532.png +0 -0
  356. package/dist/interface/ha/pwa/apple-splash-portrait-dark-1179x2556.png +0 -0
  357. package/dist/interface/ha/pwa/apple-splash-portrait-dark-1242x2208.png +0 -0
  358. package/dist/interface/ha/pwa/apple-splash-portrait-dark-1242x2688.png +0 -0
  359. package/dist/interface/ha/pwa/apple-splash-portrait-dark-1284x2778.png +0 -0
  360. package/dist/interface/ha/pwa/apple-splash-portrait-dark-1290x2796.png +0 -0
  361. package/dist/interface/ha/pwa/apple-splash-portrait-dark-1536x2048.png +0 -0
  362. package/dist/interface/ha/pwa/apple-splash-portrait-dark-1620x2160.png +0 -0
  363. package/dist/interface/ha/pwa/apple-splash-portrait-dark-1668x2224.png +0 -0
  364. package/dist/interface/ha/pwa/apple-splash-portrait-dark-1668x2388.png +0 -0
  365. package/dist/interface/ha/pwa/apple-splash-portrait-dark-2048x2732.png +0 -0
  366. package/dist/interface/ha/pwa/apple-splash-portrait-dark-640x1136.png +0 -0
  367. package/dist/interface/ha/pwa/apple-splash-portrait-dark-750x1334.png +0 -0
  368. package/dist/interface/ha/pwa/apple-splash-portrait-dark-828x1792.png +0 -0
  369. package/dist/interface/ha/pwa/apple-splash-portrait-light-1125x2436.png +0 -0
  370. package/dist/interface/ha/pwa/apple-splash-portrait-light-1170x2532.png +0 -0
  371. package/dist/interface/ha/pwa/apple-splash-portrait-light-1179x2556.png +0 -0
  372. package/dist/interface/ha/pwa/apple-splash-portrait-light-1242x2208.png +0 -0
  373. package/dist/interface/ha/pwa/apple-splash-portrait-light-1242x2688.png +0 -0
  374. package/dist/interface/ha/pwa/apple-splash-portrait-light-1284x2778.png +0 -0
  375. package/dist/interface/ha/pwa/apple-splash-portrait-light-1290x2796.png +0 -0
  376. package/dist/interface/ha/pwa/apple-splash-portrait-light-1536x2048.png +0 -0
  377. package/dist/interface/ha/pwa/apple-splash-portrait-light-1620x2160.png +0 -0
  378. package/dist/interface/ha/pwa/apple-splash-portrait-light-1668x2224.png +0 -0
  379. package/dist/interface/ha/pwa/apple-splash-portrait-light-1668x2388.png +0 -0
  380. package/dist/interface/ha/pwa/apple-splash-portrait-light-2048x2732.png +0 -0
  381. package/dist/interface/ha/pwa/apple-splash-portrait-light-640x1136.png +0 -0
  382. package/dist/interface/ha/pwa/apple-splash-portrait-light-750x1334.png +0 -0
  383. package/dist/interface/ha/pwa/apple-splash-portrait-light-828x1792.png +0 -0
  384. package/dist/interface/ha/pwa/apple-touch-icon-180x180.png +0 -0
  385. package/dist/interface/ha/pwa/favicon-16.ico +0 -0
  386. package/dist/interface/ha/pwa/favicon-32.ico +0 -0
  387. package/dist/interface/ha/pwa/favicon-48.ico +0 -0
  388. package/dist/interface/ha/pwa/favicon-64.ico +0 -0
  389. package/dist/interface/ha/pwa/logo.svg +1 -0
  390. package/dist/interface/ha/pwa/maskable-icon-1240x600.png +0 -0
  391. package/dist/interface/ha/pwa/maskable-icon-512x512.png +0 -0
  392. package/dist/interface/ha/pwa/maskable-icon-620x300.png +0 -0
  393. package/dist/interface/ha/pwa/pwa-1024x1024.png +0 -0
  394. package/dist/interface/ha/pwa/pwa-120x120.png +0 -0
  395. package/dist/interface/ha/pwa/pwa-144x144.png +0 -0
  396. package/dist/interface/ha/pwa/pwa-152x152.png +0 -0
  397. package/dist/interface/ha/pwa/pwa-167x167.png +0 -0
  398. package/dist/interface/ha/pwa/pwa-180x180.png +0 -0
  399. package/dist/interface/ha/pwa/pwa-192x192.png +0 -0
  400. package/dist/interface/ha/pwa/pwa-24x24.png +0 -0
  401. package/dist/interface/ha/pwa/pwa-300x300.png +0 -0
  402. package/dist/interface/ha/pwa/pwa-36x36.png +0 -0
  403. package/dist/interface/ha/pwa/pwa-48x48.png +0 -0
  404. package/dist/interface/ha/pwa/pwa-50x50.png +0 -0
  405. package/dist/interface/ha/pwa/pwa-64x64.png +0 -0
  406. package/dist/interface/ha/pwa/pwa-72x72.png +0 -0
  407. package/dist/interface/ha/pwa/pwa-88x88.png +0 -0
  408. package/dist/interface/ha/pwa/pwa-96x96.png +0 -0
  409. package/dist/interface/ha/radar-C7lI26j4.js +19 -0
  410. package/dist/interface/ha/refresh-BIhepekY.js +19 -0
  411. package/dist/interface/ha/ring-resize-VS4MSeBv.js +16 -0
  412. package/dist/interface/ha/ripple-BilzxWfY.js +2928 -0
  413. package/dist/interface/ha/robots.txt +2 -0
  414. package/dist/interface/ha/rolldown-runtime-CEFd7nDs.js +30 -0
  415. package/dist/interface/ha/rooms-B-FUXQ1p.js +45 -0
  416. package/dist/interface/ha/round-alt-arrow-left-bold-CWEg-ZLF.js +37 -0
  417. package/dist/interface/ha/runtime-core.esm-bundler-D8slQ3BU.js +3295 -0
  418. package/dist/interface/ha/search-CoOsbgeb.js +19 -0
  419. package/dist/interface/ha/select-DjWkRqsI.js +1382 -0
  420. package/dist/interface/ha/server-CKJKoFfg.js +239 -0
  421. package/dist/interface/ha/settings-EKkSQLzv.js +22 -0
  422. package/dist/interface/ha/source-branch-CZwSOrQA.js +19 -0
  423. package/dist/interface/ha/speeddial-Dv9txWte.js +682 -0
  424. package/dist/interface/ha/spinner-D6iUldg9.js +46 -0
  425. package/dist/interface/ha/synapse-CGrlyQDE.js +35 -0
  426. package/dist/interface/ha/tag-CXgC9OZ6.js +95 -0
  427. package/dist/interface/ha/textarea-DvLkfUX7.js +130 -0
  428. package/dist/interface/ha/tooltip-BIrD_hC8.js +277 -0
  429. package/dist/interface/ha/trash-2-C4zSCZfs.js +23 -0
  430. package/dist/interface/ha/trash-can-outline-DCqsCOd2.js +19 -0
  431. package/dist/interface/ha/trash-fill-BPsrwR8X.js +21 -0
  432. package/dist/interface/ha/types-C7MzwoQR.js +28 -0
  433. package/dist/interface/ha/types-J_J0HKlK.js +1032 -0
  434. package/dist/interface/ha/ungrouped-BpaM88Y-.js +1116 -0
  435. package/dist/interface/ha/updates-BdVmkKAa.js +341 -0
  436. package/dist/interface/ha/upload-2xJkVPZE.js +19 -0
  437. package/dist/interface/ha/upload-wQHBRZX_.js +23 -0
  438. package/dist/interface/ha/useAppVersion-DzDaOsKc.js +22 -0
  439. package/dist/interface/ha/useLogsSocket-CWUE-KXV.js +59 -0
  440. package/dist/interface/ha/useNavLayout-BqpyvD2F.js +125 -0
  441. package/dist/interface/ha/usePermissions-BIUeW4ef.js +72 -0
  442. package/dist/interface/ha/useServerRestart-0c4gA1fG.js +23 -0
  443. package/dist/interface/ha/useTabSwipe-C8LdKw23.js +45 -0
  444. package/dist/interface/ha/useUpdateChannel-CHVLthZB.js +22 -0
  445. package/dist/interface/ha/useUpdatesSocket-CaxEs511.js +34 -0
  446. package/dist/interface/ha/useUserOptions-Rk_71WAK.js +15 -0
  447. package/dist/interface/ha/utils-DYtBrGDz.js +7 -0
  448. package/dist/interface/ha/virtualscroller-s_gNqN5p.js +996 -0
  449. package/dist/interface/ha/vue-flow-background-B0Vu4-8M.js +6840 -0
  450. package/dist/interface/ha/vue-i18n-Dcb07o5U.js +2409 -0
  451. package/dist/interface/ha/web-0Kyq65na.js +78 -0
  452. package/dist/interface/ha/web-B7Dt2zZN.js +340 -0
  453. package/dist/interface/ha/web-BNdrPSpb.js +102 -0
  454. package/dist/interface/ha/web-BPBZBCtX.js +8 -0
  455. package/dist/interface/ha/web-BjKL51lK-qwJdIpM1.js +221 -0
  456. package/dist/interface/ha/web-C01i9qI1.js +57 -0
  457. package/dist/interface/ha/web-CH3JeXWa.js +211 -0
  458. package/dist/interface/ha/web-Cpm1-DVe.js +33 -0
  459. package/dist/interface/ha/web-DqRMXrnx.js +31 -0
  460. package/dist/interface/ha/web-DtVT7WYt.js +17 -0
  461. package/dist/interface/ha/web-DxJQZCiR.js +59 -0
  462. package/dist/interface/ha/web-I7Urp4AE.js +46 -0
  463. package/dist/interface/ha/web-aSaPk7kr.js +57 -0
  464. package/dist/interface/ha/web-pMey9p3Y.js +79 -0
  465. package/dist/interface/ha/xterm-B6xA6E5i.js +14833 -0
  466. package/dist/interface/ha/zoom-in-CNVB9H3D.js +41 -0
  467. package/dist/interface/index.html +29 -29
  468. package/dist/interface/sw.js +1 -1
  469. package/dist/server/package.json +9 -9
  470. package/dist/server/requirements.txt +3 -3
  471. package/dist/server/src/_camera_ui_tools/camera_ui_rpc/client.py +9 -6
  472. package/dist/server/src/_camera_ui_tools/camera_ui_rpc/types.py +2 -2
  473. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +4 -2
  474. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +8 -0
  475. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/device.py +4 -3
  476. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/__init__.py +6 -0
  477. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/sensor_rpc.py +17 -6
  478. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/manager/__init__.py +24 -70
  479. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +46 -19
  480. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +2 -0
  481. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +65 -8
  482. package/dist/server/src/api/database/index.d.ts +1 -1
  483. package/dist/server/src/api/database/index.js +4 -32
  484. package/dist/server/src/api/database/index.js.map +1 -1
  485. package/dist/server/src/api/database/migrations/v2-1-18.d.ts +3 -0
  486. package/dist/server/src/api/database/migrations/v2-1-18.js +24 -0
  487. package/dist/server/src/api/database/migrations/v2-1-18.js.map +1 -0
  488. package/dist/server/src/api/database/record-schemas.d.ts +1 -0
  489. package/dist/server/src/api/database/types.d.ts +4 -3
  490. package/dist/server/src/api/schemas/cameras.schema.d.ts +53 -15
  491. package/dist/server/src/api/schemas/cameras.schema.js +5 -1
  492. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  493. package/dist/server/src/api/schemas/users.schema.d.ts +7 -0
  494. package/dist/server/src/api/schemas/users.schema.js +1 -1
  495. package/dist/server/src/api/schemas/users.schema.js.map +1 -1
  496. package/dist/server/src/api/services/cameras.service.js +14 -21
  497. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  498. package/dist/server/src/api/services/sensors.service.d.ts +3 -3
  499. package/dist/server/src/api/services/sensors.service.js +3 -24
  500. package/dist/server/src/api/services/sensors.service.js.map +1 -1
  501. package/dist/server/src/api/utils/regex.d.ts +2 -0
  502. package/dist/server/src/api/utils/regex.js +2 -0
  503. package/dist/server/src/api/utils/regex.js.map +1 -1
  504. package/dist/server/src/api/websocket/nsp/sensors.d.ts +3 -1
  505. package/dist/server/src/api/websocket/nsp/sensors.js +13 -3
  506. package/dist/server/src/api/websocket/nsp/sensors.js.map +1 -1
  507. package/dist/server/src/camera/decoder/debug/detection-record.d.ts +3 -1
  508. package/dist/server/src/camera/decoder/debug/detection-record.js +6 -2
  509. package/dist/server/src/camera/decoder/debug/detection-record.js.map +1 -1
  510. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +2 -0
  511. package/dist/server/src/camera/decoder/detection-coordinator.js +44 -25
  512. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  513. package/dist/server/src/camera/decoder/detection-pipeline.d.ts +3 -1
  514. package/dist/server/src/camera/decoder/detection-pipeline.js +3 -22
  515. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  516. package/dist/server/src/camera/decoder/event-manager.d.ts +4 -3
  517. package/dist/server/src/camera/decoder/event-manager.js +17 -5
  518. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  519. package/dist/server/src/camera/decoder/event-thumbnailer.d.ts +3 -0
  520. package/dist/server/src/camera/decoder/event-thumbnailer.js +13 -8
  521. package/dist/server/src/camera/decoder/event-thumbnailer.js.map +1 -1
  522. package/dist/server/src/camera/decoder/event-trace.d.ts +58 -0
  523. package/dist/server/src/camera/decoder/event-trace.js +118 -0
  524. package/dist/server/src/camera/decoder/event-trace.js.map +1 -0
  525. package/dist/server/src/camera/decoder/nvr-sink.d.ts +2 -0
  526. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
  527. package/dist/server/src/camera/decoder/reconnect-backoff.js +1 -1
  528. package/dist/server/src/camera/decoder/reconnect-backoff.js.map +1 -1
  529. package/dist/server/src/camera/decoder/sources/analysis-source.d.ts +1 -0
  530. package/dist/server/src/camera/decoder/sources/buffered-source.d.ts +7 -1
  531. package/dist/server/src/camera/decoder/sources/buffered-source.js +27 -15
  532. package/dist/server/src/camera/decoder/sources/buffered-source.js.map +1 -1
  533. package/dist/server/src/camera/decoder/sources/frame-handle.d.ts +2 -1
  534. package/dist/server/src/camera/decoder/sources/frame-handle.js +5 -3
  535. package/dist/server/src/camera/decoder/sources/frame-handle.js.map +1 -1
  536. package/dist/server/src/camera/decoder/sources/frame-source.d.ts +1 -0
  537. package/dist/server/src/camera/decoder/sources/frame-source.js +7 -2
  538. package/dist/server/src/camera/decoder/sources/frame-source.js.map +1 -1
  539. package/dist/server/src/camera/decoder/sources/rtp-index.d.ts +9 -0
  540. package/dist/server/src/camera/decoder/sources/rtp-index.js +24 -0
  541. package/dist/server/src/camera/decoder/sources/rtp-index.js.map +1 -0
  542. package/dist/server/src/camera/decoder/worker.js +1 -0
  543. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  544. package/dist/server/src/go2rtc/types.d.ts +1 -1
  545. package/dist/server/src/go2rtc/types.js +1 -1
  546. package/dist/server/src/go2rtc/types.js.map +1 -1
  547. package/dist/server/src/plugins/runtime/node/child.js +1 -0
  548. package/dist/server/src/plugins/runtime/node/child.js.map +1 -1
  549. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +3 -0
  550. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
  551. package/dist/server/src/plugins/runtime/node/proxy/sensorManager.d.ts +2 -5
  552. package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js +95 -24
  553. package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js.map +1 -1
  554. package/dist/server/src/plugins/runtime/python/child.py +1 -0
  555. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +9 -0
  556. package/dist/server/src/plugins/runtime/python/proxy/sensor.py +2 -1
  557. package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +185 -88
  558. package/dist/server/src/plugins/runtime/python/typings.py +18 -0
  559. package/dist/server/src/rpc/interfaces/sensor.d.ts +19 -4
  560. package/dist/server/src/sensors/discovery.d.ts +1 -1
  561. package/dist/server/src/sensors/discovery.js +10 -19
  562. package/dist/server/src/sensors/discovery.js.map +1 -1
  563. package/dist/server/src/sensors/registry.d.ts +6 -2
  564. package/dist/server/src/sensors/registry.js +75 -6
  565. package/dist/server/src/sensors/registry.js.map +1 -1
  566. package/dist/server/src/utils/camera.d.ts +12 -2
  567. package/dist/server/src/utils/camera.js +27 -1
  568. package/dist/server/src/utils/camera.js.map +1 -1
  569. package/dist/server/src/workers/pairing.js +17 -8
  570. package/dist/server/src/workers/pairing.js.map +1 -1
  571. package/package.json +9 -9
  572. package/dist/interface/assets/Automation-4HPAjq1i.js +0 -3
  573. package/dist/interface/assets/AutomationStoreDetail-C2ntfGP-.js +0 -2
  574. package/dist/interface/assets/Automations-CUUq9dxs.js +0 -2
  575. package/dist/interface/assets/Camera-DmrRrgqQ.js +0 -2
  576. package/dist/interface/assets/Cameras-B-aQUuPk.js +0 -652
  577. package/dist/interface/assets/Camview-B-W5jpCR.js +0 -1
  578. package/dist/interface/assets/ConfigActionNotification-Bq28CjsJ.js +0 -1
  579. package/dist/interface/assets/ConfigConditionSwitch-DYAlj5no.js +0 -1
  580. package/dist/interface/assets/ConfigTriggerGeofence-ClKyzb-x.js +0 -1
  581. package/dist/interface/assets/Console-ctbGFtCH.js +0 -1
  582. package/dist/interface/assets/CuiBottomSheet-Bo1wUyiN.js +0 -1
  583. package/dist/interface/assets/CuiCameraPipCard-BEAE44of.js +0 -1
  584. package/dist/interface/assets/CuiCameraRecordings-BzbwSK8-.css +0 -1
  585. package/dist/interface/assets/CuiCameraRecordings-C1evIMhc.js +0 -1
  586. package/dist/interface/assets/CuiCameraTable-BAjQ8h5H.js +0 -1
  587. package/dist/interface/assets/CuiLightControl-9OhT9YYt.js +0 -1
  588. package/dist/interface/assets/CuiPluginCard-DQgVasi7.js +0 -2
  589. package/dist/interface/assets/CuiSchema-juKEra_J.js +0 -1
  590. package/dist/interface/assets/Faces-Ce3mKYc7.js +0 -1
  591. package/dist/interface/assets/FirstSteps-BBLzX2bl.js +0 -1
  592. package/dist/interface/assets/Floorplan-B7BVj65t.js +0 -1
  593. package/dist/interface/assets/Instances-4VxGT2fm.js +0 -1
  594. package/dist/interface/assets/Metrics-DudHV8Ov.js +0 -9
  595. package/dist/interface/assets/OAuthDeviceFlow-Z3Cesvs9.js +0 -1
  596. package/dist/interface/assets/Plugin-DwadariU.js +0 -1
  597. package/dist/interface/assets/PluginDetail-C_XghvQz.js +0 -2
  598. package/dist/interface/assets/PluginSearch-11dsxfvW.js +0 -1
  599. package/dist/interface/assets/PluginSearch-DgQOryM2.js +0 -2
  600. package/dist/interface/assets/Plugins-QheVcYZB.js +0 -1
  601. package/dist/interface/assets/Recordings-DwPnYsd6.js +0 -1
  602. package/dist/interface/assets/SensorEdit-C9Ejdxaz.js +0 -1
  603. package/dist/interface/assets/Sensors-D4tY50d4.js +0 -2
  604. package/dist/interface/assets/SettingsAccount-DMvvar8D.js +0 -1
  605. package/dist/interface/assets/SettingsAccount-DYCCnjWY.js +0 -1
  606. package/dist/interface/assets/SettingsAppearance-vLBhLEag.js +0 -1
  607. package/dist/interface/assets/SettingsMqtt-Cj9ywnP2.js +0 -1
  608. package/dist/interface/assets/SettingsNotifications-flx3W4Uo.js +0 -1
  609. package/dist/interface/assets/SettingsRecordings-D3b6y2SX.js +0 -1
  610. package/dist/interface/assets/SettingsRemote-o01wgKPR.js +0 -2
  611. package/dist/interface/assets/Workers-CdaYj6Ap.js +0 -2
  612. package/dist/interface/assets/alert-outline-KxFvd3i6.js +0 -1
  613. package/dist/interface/assets/api-2VPaKkqc.js +0 -2
  614. package/dist/interface/assets/api-CEbDxsSY.css +0 -2
  615. package/dist/interface/assets/cameras.schema-CnSdfqqj.js +0 -1
  616. package/dist/interface/assets/cloudHandoff-B1z5dyPD.js +0 -1
  617. package/dist/interface/assets/main-BfL5CDS8.js +0 -3
  618. package/dist/interface/assets/nodeDefinitions-D6zhuw60.js +0 -1
  619. package/dist/interface/assets/sensorIcons-FPxm3pDg.js +0 -1
  620. package/dist/interface/assets/theme-CRQoJiuY.js +0 -1
  621. package/dist/interface/assets/types-BHgaZSm2.js +0 -1
  622. package/dist/interface/assets/types-CQpPteyx.js +0 -1
  623. package/dist/interface/assets/ungrouped-BbOtmmDD.js +0 -1
  624. package/dist/interface/assets/useBackupRestore-CT1PYJDW.js +0 -1
  625. package/dist/interface/assets/vendor-cameraui-ZyqPntQ7.js +0 -2326
  626. package/dist/interface/assets/vendor-core-DN-bpg68.js +0 -1
  627. package/dist/interface/assets/vendor-zod-B0ZFM2Pr.js +0 -127
@@ -0,0 +1,1358 @@
1
+ import { r as e } from "./rolldown-runtime-CEFd7nDs.js";
2
+ import { m as t } from "./ripple-BilzxWfY.js";
3
+ import { B as n, H as r, Jt as i, Wt as a, Y as ee, _t as o, bt as s, d as c, f as l, ft as te, gt as ne, kt as u, l as d, lt as f, ot as re, p, qt as ie, r as ae, rt as oe, u as m, ut as h, v as g, x as se, xt as _, y as v, yt as ce, z as le } from "./runtime-core.esm-bundler-D8slQ3BU.js";
4
+ import { t as ue } from "./tooltip-BIrD_hC8.js";
5
+ import { t as de } from "./history-BoZc8mgf.js";
6
+ import { $ as y, B as fe, Br as pe, Dn as me, Er as he, Gr as b, L as x, Pi as ge, Q as S, R as _e, Tr as ve, W as ye, X as C, Yr as be, Z as w, _i as T, _t as E, dr as xe, et as D, gi as Se, gn as O, gt as Ce, it as k, mi as A, nt as j, qi as M, qt as we, ra as Te, rn as Ee, rt as De, si as Oe, tt as ke, un as Ae, vr as je, wr as Me, yr as Ne } from "./api-CWJkvtnM.js";
7
+ import { M as Pe } from "./protocol-BB4jdtUC-K1r3LFCq.js";
8
+ import { i as Fe } from "./intercomService-jB2mTgsn.js";
9
+ import { r as Ie } from "./pinia-3D39Do4a.js";
10
+ import { n as Le } from "./vue-i18n-Dcb07o5U.js";
11
+ import { ft as N, v as Re } from "./dist-Ca9_5rzq.js";
12
+ import { n as ze } from "./alert-outline-CGTMAqXf.js";
13
+ import { n as Be, t as Ve } from "./button-BlYuI0Q7.js";
14
+ import { n as He, t as Ue } from "./inputicon-6-vaPLbw.js";
15
+ import { t as We } from "./inputtext-DGIESrd0.js";
16
+ import { a as Ge } from "./datepicker-BuvKhBWJ.js";
17
+ import { t as Ke } from "./close-Eq3txTBS.js";
18
+ import { t as qe } from "./chip-DxGABeun.js";
19
+ import { i as Je, t as Ye } from "./CuiDataTable-Cx9GBqsV.js";
20
+ import { t as Xe } from "./ring-resize-VS4MSeBv.js";
21
+ import { t as Ze } from "./search-CoOsbgeb.js";
22
+ import { t as Qe } from "./trash-can-outline-DCqsCOd2.js";
23
+ import { t as $e } from "./back-filled-Cxzg5vQg.js";
24
+ import { t as et } from "./plus-d_caPq5l.js";
25
+ import { t as tt } from "./settings-EKkSQLzv.js";
26
+ import { t as nt } from "./radar-C7lI26j4.js";
27
+ import { t as rt } from "./eye-off-outline-DO3xfiua.js";
28
+ //#region ~icons/mdi/waveform
29
+ var it = {
30
+ viewBox: "0 0 24 24",
31
+ width: "1.2em",
32
+ height: "1.2em"
33
+ };
34
+ function P(e, t) {
35
+ return r(), p("svg", it, [...t[0] ||= [m("path", {
36
+ fill: "currentColor",
37
+ d: "m22 12l-2 1l-1 1l-1-1l-1 3l-1-3l-1 8l-1-8l-1 2l-1-2l-1 4l-1-4l-1 9l-1-9l-1 6l-1-6l-1 1l-1-1l-2-1l2-1l1-1l1 1l1-6l1 6l1-9l1 9l1-4l1 4l1-2l1 2l1-8l1 8l1-3l1 3l1-1l1 1z"
38
+ }, null, -1)]]);
39
+ }
40
+ var F = o({
41
+ name: "mdi-waveform",
42
+ render: P
43
+ }), at = {
44
+ viewBox: "0 0 24 24",
45
+ width: "1.2em",
46
+ height: "1.2em"
47
+ };
48
+ function ot(e, t) {
49
+ return r(), p("svg", at, [...t[0] ||= [m("path", {
50
+ fill: "currentColor",
51
+ d: "M16 10H8V6h8m.67-2H15V2H9v2H7.33A1.33 1.33 0 0 0 6 5.33v15.34C6 21.4 6.6 22 7.33 22h9.34A1.33 1.33 0 0 0 18 20.67V5.33C18 4.6 17.4 4 16.67 4"
52
+ }, null, -1)]]);
53
+ }
54
+ var I = o({
55
+ name: "mdi-battery-70",
56
+ render: ot
57
+ }), L = {
58
+ viewBox: "0 0 24 24",
59
+ width: "1.2em",
60
+ height: "1.2em"
61
+ };
62
+ function st(e, t) {
63
+ return r(), p("svg", L, [...t[0] ||= [m("path", {
64
+ fill: "currentColor",
65
+ d: "M12 18a6 6 0 0 1-6-6a6 6 0 0 1 6-6a6 6 0 0 1 6 6a6 6 0 0 1-6 6m8-2.69L23.31 12L20 8.69V4h-4.69L12 .69L8.69 4H4v4.69L.69 12L4 15.31V20h4.69L12 23.31L15.31 20H20z"
66
+ }, null, -1)]]);
67
+ }
68
+ var ct = o({
69
+ name: "mdi-brightness-5",
70
+ render: st
71
+ }), lt = {
72
+ viewBox: "0 0 24 24",
73
+ width: "1.2em",
74
+ height: "1.2em"
75
+ };
76
+ function ut(e, t) {
77
+ return r(), p("svg", lt, [...t[0] ||= [m("path", {
78
+ fill: "currentColor",
79
+ d: "M5 7a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h3v-2H5V9h3V7zm6 0a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2zm0 2h2v6h-2zm5 1.5V12h3v1.5h-1.5A1.5 1.5 0 0 0 16 15v3h4.5v-1.5h-3V15H19a1.5 1.5 0 0 0 1.5-1.5V12a1.5 1.5 0 0 0-1.5-1.5z"
80
+ }, null, -1)]]);
81
+ }
82
+ var R = o({
83
+ name: "mdi-molecule-co2",
84
+ render: ut
85
+ }), z = {
86
+ viewBox: "0 0 24 24",
87
+ width: "1.2em",
88
+ height: "1.2em"
89
+ };
90
+ function B(e, t) {
91
+ return r(), p("svg", z, [...t[0] ||= [m("path", {
92
+ fill: "currentColor",
93
+ d: "M4 18h9l-2 2H4c-.5 0-1.03-.21-1.41-.59S2 18.5 2 18V8h2zM17.63 4.84C17.27 4.33 16.67 4 16 4H8c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h8c.67 0 1.27-.34 1.63-.85L22 10zM16 14H8V6h8l3.55 4Z"
94
+ }, null, -1)]]);
95
+ }
96
+ var V = o({
97
+ name: "mdi-label-multiple-outline",
98
+ render: B
99
+ }), dt = {
100
+ viewBox: "0 0 24 24",
101
+ width: "1.2em",
102
+ height: "1.2em"
103
+ };
104
+ function ft(e, t) {
105
+ return r(), p("svg", dt, [...t[0] ||= [m("path", {
106
+ fill: "currentColor",
107
+ d: "M15.5 9c.7 0 1.29-.24 1.77-.73c.49-.48.73-1.07.73-1.77c0-.67-.24-1.27-.73-1.77c-.48-.5-1.07-.73-1.77-.73c-.67 0-1.27.23-1.77.73S13 5.83 13 6.5c0 .7.23 1.29.73 1.77c.5.49 1.1.73 1.77.73m3.81-.09l3.1 3.09L21 13.41l-3.14-3.1c-.78.47-1.58.69-2.39.69c-1.25 0-2.31-.42-3.17-1.3c-.85-.87-1.3-1.93-1.3-3.2c0-1.23.45-2.3 1.33-3.17C13.2 2.45 14.27 2 15.5 2c1.27 0 2.33.45 3.2 1.33c.88.87 1.3 1.94 1.3 3.17c0 .83-.22 1.63-.69 2.41M16.5 18h-11l2.75-3.5l1.97 2.33l2.72-3.52zm1.5-5l2 2v5c0 .55-.19 1-.59 1.4c-.41.39-.88.6-1.41.6H4c-.55 0-1-.21-1.4-.6c-.39-.4-.6-.85-.6-1.4V6c0-.53.21-1 .6-1.41C3 4.19 3.45 4 4 4h5.5c-.3.64-.47 1.31-.5 2H4v14h14z"
108
+ }, null, -1)]]);
109
+ }
110
+ var pt = o({
111
+ name: "mdi-image-search-outline",
112
+ render: ft
113
+ }), H = {
114
+ viewBox: "0 0 24 24",
115
+ width: "1.2em",
116
+ height: "1.2em"
117
+ };
118
+ function mt(e, t) {
119
+ return r(), p("svg", H, [...t[0] ||= [m("path", {
120
+ fill: "currentColor",
121
+ d: "M8 3c-1.11 0-2 .89-2 2v16h12V5c0-1.11-.89-2-2-2zm0 2h8v14H8zm5 6v2h2v-2z"
122
+ }, null, -1)]]);
123
+ }
124
+ var U = o({
125
+ name: "mdi-door",
126
+ render: mt
127
+ }), ht = {
128
+ viewBox: "0 0 24 24",
129
+ width: "1.2em",
130
+ height: "1.2em"
131
+ };
132
+ function gt(e, t) {
133
+ return r(), p("svg", ht, [...t[0] ||= [m("path", {
134
+ fill: "currentColor",
135
+ d: "M12 3.25S6 10 6 14c0 3.32 2.69 6 6 6a6 6 0 0 0 6-6c0-4-6-10.75-6-10.75m2.47 6.72l1.06 1.06l-6 6l-1.06-1.06M9.75 10A1.25 1.25 0 0 1 11 11.25a1.25 1.25 0 0 1-1.25 1.25a1.25 1.25 0 0 1-1.25-1.25A1.25 1.25 0 0 1 9.75 10m4.5 4.5a1.25 1.25 0 0 1 1.25 1.25A1.25 1.25 0 0 1 14.25 17A1.25 1.25 0 0 1 13 15.75a1.25 1.25 0 0 1 1.25-1.25"
136
+ }, null, -1)]]);
137
+ }
138
+ var W = o({
139
+ name: "mdi-water-percent",
140
+ render: gt
141
+ }), _t = {
142
+ viewBox: "0 0 24 24",
143
+ width: "1.2em",
144
+ height: "1.2em"
145
+ };
146
+ function vt(e, t) {
147
+ return r(), p("svg", _t, [...t[0] ||= [m("path", {
148
+ fill: "currentColor",
149
+ d: "M9.61 16.11c0-2.08.98-3.92 2.49-5.11H5l1.5-4.5h11l1.22 3.66c.84.37 1.58.91 2.19 1.58L18.92 6c-.2-.58-.76-1-1.42-1h-11c-.66 0-1.22.42-1.42 1L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h4.29c-.43-.87-.68-1.85-.68-2.89M6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16m14.21 4.7l-.01.01zm-4.6-9.09c2.5 0 4.5 2 4.5 4.5c0 .89-.25 1.71-.69 2.39L23 21.61L21.61 23l-3.11-3.07c-.7.43-1.5.68-2.39.68c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5m0 2a2.5 2.5 0 1 0 2.5 2.5c0-1.39-1.11-2.5-2.5-2.5"
150
+ }, null, -1)]]);
151
+ }
152
+ var yt = o({
153
+ name: "mdi-car-search",
154
+ render: vt
155
+ }), G = {
156
+ viewBox: "0 0 24 24",
157
+ width: "1.2em",
158
+ height: "1.2em"
159
+ };
160
+ function bt(e, t) {
161
+ return r(), p("svg", G, [...t[0] ||= [m("path", {
162
+ fill: "currentColor",
163
+ d: "M12 17a2 2 0 0 1-2-2c0-1.11.89-2 2-2a2 2 0 0 1 2 2a2 2 0 0 1-2 2m6 3V10H6v10zm0-12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V10c0-1.11.89-2 2-2h1V6a5 5 0 0 1 5-5a5 5 0 0 1 5 5v2zm-6-5a3 3 0 0 0-3 3v2h6V6a3 3 0 0 0-3-3"
164
+ }, null, -1)]]);
165
+ }
166
+ var xt = o({
167
+ name: "mdi-lock-outline",
168
+ render: bt
169
+ }), K = {
170
+ viewBox: "0 0 24 24",
171
+ width: "1.2em",
172
+ height: "1.2em"
173
+ };
174
+ function St(e, t) {
175
+ return r(), p("svg", K, [...t[0] ||= [m("path", {
176
+ fill: "currentColor",
177
+ d: "M21 16.5c0 .38-.21.71-.53.88l-7.9 4.44c-.16.12-.36.18-.57.18s-.41-.06-.57-.18l-7.9-4.44A.99.99 0 0 1 3 16.5v-9c0-.38.21-.71.53-.88l7.9-4.44c.16-.12.36-.18.57-.18s.41.06.57.18l7.9 4.44c.32.17.53.5.53.88zM12 4.15L6.04 7.5L12 10.85l5.96-3.35zM5 15.91l6 3.38v-6.71L5 9.21zm14 0v-6.7l-6 3.37v6.71z"
178
+ }, null, -1)]]);
179
+ }
180
+ var Ct = o({
181
+ name: "mdi-cube-outline",
182
+ render: St
183
+ }), wt = {
184
+ viewBox: "0 0 24 24",
185
+ width: "1.2em",
186
+ height: "1.2em"
187
+ };
188
+ function q(e, t) {
189
+ return r(), p("svg", wt, [...t[0] ||= [m("path", {
190
+ fill: "currentColor",
191
+ d: "M17 22v-2h3v-3h2v3.5c0 .39-.16.74-.46 1.04s-.65.46-1.04.46zM7 22H3.5c-.39 0-.74-.16-1.04-.46S2 20.89 2 20.5V17h2v3h3zM17 2h3.5c.39 0 .74.16 1.04.46s.46.65.46 1.04V7h-2V4h-3zM7 2v2H4v3H2V3.5c0-.39.16-.74.46-1.04S3.11 2 3.5 2zm6 15.25l4-2.3v-4.59l-4 2.3zm-1-6.33l4-2.29l-4-2.35l-4 2.35zm-5 4.03l4 2.3v-4.59l-4-2.3zm11.23-7.36c.5.32.77.75.77 1.32v6.32c0 .57-.27 1-.77 1.32l-5.48 3.18q-.75.48-1.5 0l-5.48-3.18c-.5-.32-.77-.75-.77-1.32V8.91c0-.57.27-1 .77-1.32l5.48-3.18c.25-.13.5-.19.75-.19s.5.06.75.19z"
192
+ }, null, -1)]]);
193
+ }
194
+ var Tt = o({
195
+ name: "mdi-cube-scan",
196
+ render: q
197
+ }), Et = {
198
+ viewBox: "0 0 24 24",
199
+ width: "1.2em",
200
+ height: "1.2em"
201
+ };
202
+ function Dt(e, t) {
203
+ return r(), p("svg", Et, [...t[0] ||= [m("path", {
204
+ fill: "currentColor",
205
+ d: "M12 3L2 12h3v8h14v-8h3zm0 5.75A2.25 2.25 0 0 1 14.25 11A2.25 2.25 0 0 1 12 13.25A2.25 2.25 0 0 1 9.75 11A2.25 2.25 0 0 1 12 8.75M12 15c1.5 0 4.5.75 4.5 2.25V18h-9v-.75c0-1.5 3-2.25 4.5-2.25"
206
+ }, null, -1)]]);
207
+ }
208
+ var Ot = o({
209
+ name: "mdi-home-account",
210
+ render: Dt
211
+ }), kt = {
212
+ viewBox: "0 0 24 24",
213
+ width: "1.2em",
214
+ height: "1.2em"
215
+ };
216
+ function At(e, t) {
217
+ return r(), p("svg", kt, [...t[0] ||= [m("path", {
218
+ fill: "currentColor",
219
+ d: "M16 7V3h-2v4h-4V3H8v4C7 7 6 8 6 9v5.5L9.5 18v3h5v-3l3.5-3.5V9c0-1-1-2-2-2m0 6.67l-2.91 2.92l-.42.41h-1.34l-.41-.41L8 13.67V9.09c0-.03.06-.09.09-.09h7.83c.03 0 .08.06.08.09z"
220
+ }, null, -1)]]);
221
+ }
222
+ var jt = o({
223
+ name: "mdi-power-plug-outline",
224
+ render: At
225
+ }), Mt = {
226
+ viewBox: "0 0 24 24",
227
+ width: "1.2em",
228
+ height: "1.2em"
229
+ };
230
+ function Nt(e, t) {
231
+ return r(), p("svg", Mt, [...t[0] ||= [m("path", {
232
+ fill: "currentColor",
233
+ d: "M8 14.25L4.75 11H7c.25-5.61 2.39-10 5-10c2 0 3.77 2.64 4.55 6.45C20.36 8.23 23 10 23 12c0 1.83-2.17 3.43-5.4 4.3l.29-2.03C19.8 13.72 21 12.91 21 12c0-1.06-1.65-2-4.13-2.5c.08.79.13 1.63.13 2.5c0 6.08-2.24 11-5 11c-1.83 0-3.43-2.17-4.3-5.4l2.03.29C10.28 19.8 11.09 21 12 21c1.66 0 3-4.03 3-9q0-1.5-.15-2.85Q13.5 9 12 9l-1.86.06l.29-2.01L12 7c.87 0 1.71.05 2.5.13C14 4.65 13.06 3 12 3c-1.54 0-2.82 3.5-3 8h2.25zM14.25 16L11 19.25V17c-5.61-.25-10-2.39-10-5c0-1.83 2.17-3.43 5.4-4.3l-.29 2.03C4.2 10.28 3 11.09 3 12c0 1.54 3.5 2.82 8 3v-2.25z"
234
+ }, null, -1)]]);
235
+ }
236
+ var J = o({
237
+ name: "mdi-rotate-orbit",
238
+ render: Nt
239
+ }), Pt = {
240
+ viewBox: "0 0 24 24",
241
+ width: "1.2em",
242
+ height: "1.2em"
243
+ };
244
+ function Ft(e, t) {
245
+ return r(), p("svg", Pt, [...t[0] ||= [m("path", {
246
+ fill: "currentColor",
247
+ d: "M21 11c0 5.55-3.84 10.74-9 12c-5.16-1.26-9-6.45-9-12V5l9-4l9 4zm-9 10c3.75-1 7-5.46 7-9.78V6.3l-7-3.12L5 6.3v4.92C5 15.54 8.25 20 12 21m-1-7h2v3h3v-5h2l-6-5l-6 5h2v5h3z"
248
+ }, null, -1)]]);
249
+ }
250
+ var It = o({
251
+ name: "mdi-shield-home-outline",
252
+ render: Ft
253
+ }), Lt = {
254
+ viewBox: "0 0 24 24",
255
+ width: "1.2em",
256
+ height: "1.2em"
257
+ };
258
+ function Rt(e, t) {
259
+ return r(), p("svg", Lt, [...t[0] ||= [m("path", {
260
+ fill: "currentColor",
261
+ d: "M6 6.9L3.87 4.78l1.41-1.41L7.4 5.5zM13 1v3h-2V1zm7.13 3.78L18 6.9l-1.4-1.4l2.12-2.13zM4.5 10.5v2h-3v-2zm15 0h3v2h-3zM6 20h12a2 2 0 0 1 2 2H4a2 2 0 0 1 2-2m6-15a6 6 0 0 1 6 6v8H6v-8a6 6 0 0 1 6-6m0 2a4 4 0 0 0-4 4v6h8v-6a4 4 0 0 0-4-4"
262
+ }, null, -1)]]);
263
+ }
264
+ var zt = o({
265
+ name: "mdi-alarm-light-outline",
266
+ render: Rt
267
+ }), Bt = {
268
+ viewBox: "0 0 24 24",
269
+ width: "1.2em",
270
+ height: "1.2em"
271
+ };
272
+ function Vt(e, t) {
273
+ return r(), p("svg", Bt, [...t[0] ||= [m("path", {
274
+ fill: "currentColor",
275
+ d: "M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6m0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4m0-7c-1.66 0-3 1.34-3 3s1.34 3 3 3s3-1.34 3-3s-1.34-3-3-3"
276
+ }, null, -1)]]);
277
+ }
278
+ var Ht = o({
279
+ name: "mdi-toggle-switch-outline",
280
+ render: Vt
281
+ }), Ut = {
282
+ viewBox: "0 0 24 24",
283
+ width: "1.2em",
284
+ height: "1.2em"
285
+ };
286
+ function Wt(e, t) {
287
+ return r(), p("svg", Ut, [...t[0] ||= [m("path", {
288
+ fill: "currentColor",
289
+ d: "M15 13V5a3 3 0 0 0-6 0v8a5 5 0 1 0 6 0m-3-9a1 1 0 0 1 1 1v3h-2V5a1 1 0 0 1 1-1"
290
+ }, null, -1)]]);
291
+ }
292
+ var Gt = o({
293
+ name: "mdi-thermometer",
294
+ render: Wt
295
+ }), Kt = {
296
+ [N.Motion]: Ee,
297
+ [N.Object]: Tt,
298
+ [N.Audio]: F,
299
+ [N.Face]: b,
300
+ [N.LicensePlate]: yt,
301
+ [N.Classifier]: V,
302
+ [N.Clip]: pt,
303
+ [N.ObjectAssist]: Ct,
304
+ [N.Contact]: U,
305
+ [N.Temperature]: Gt,
306
+ [N.Humidity]: W,
307
+ [N.Occupancy]: Ot,
308
+ [N.Smoke]: y,
309
+ [N.Leak]: C,
310
+ [N.Gas]: De,
311
+ [N.CarbonMonoxide]: j,
312
+ [N.CarbonDioxide]: R,
313
+ [N.Heat]: k,
314
+ [N.Cold]: S,
315
+ [N.Vibration]: w,
316
+ [N.Tamper]: D,
317
+ [N.Problem]: O,
318
+ [N.Power]: jt,
319
+ [N.Illuminance]: ct,
320
+ [N.Light]: ze,
321
+ [N.Siren]: zt,
322
+ [N.Switch]: Ht,
323
+ [N.Lock]: xt,
324
+ [N.PTZ]: J,
325
+ [N.SecuritySystem]: It,
326
+ [N.Garage]: ke,
327
+ [N.Doorbell]: Ae,
328
+ [N.Battery]: I
329
+ };
330
+ function qt(e) {
331
+ return Kt[e] ?? Ee;
332
+ }
333
+ //#endregion
334
+ //#region src/api/routes/sensors.ts
335
+ async function Jt({ signal: e, cameraId: t }) {
336
+ return (await M.get("/sensors", {
337
+ signal: e,
338
+ params: t ? { camera: t } : void 0
339
+ })).data.sensors;
340
+ }
341
+ async function Yt({ data: e }) {
342
+ return (await M.post("/sensors", e)).data;
343
+ }
344
+ async function Xt({ id: e, data: t }) {
345
+ return (await M.patch(`/sensors/${e}`, t)).data;
346
+ }
347
+ async function Zt({ id: e }) {
348
+ await M.delete(`/sensors/${e}`);
349
+ }
350
+ async function Qt({ ids: e }) {
351
+ return (await M.delete("/sensors", { data: { ids: e } })).data;
352
+ }
353
+ async function $t({ id: e, signal: t }) {
354
+ return (await M.get(`/sensors/${e}/history`, { signal: t })).data.history;
355
+ }
356
+ var en = class {
357
+ _queryClient = ge();
358
+ t = Te.global.t;
359
+ toast = Se();
360
+ queryActivator = _([{
361
+ name: "getSensorsQuery",
362
+ enabled: !0
363
+ }, {
364
+ name: "getCameraSensorsQuery",
365
+ enabled: !0
366
+ }]);
367
+ getSensorsQuery() {
368
+ return A({
369
+ queryKey: ["sensorsList"],
370
+ queryFn: ({ signal: e }) => Jt({ signal: e }),
371
+ placeholderData: (e) => e,
372
+ enabled: () => this.queryActivator.value.some((e) => e.name === "getSensorsQuery" && e.enabled)
373
+ });
374
+ }
375
+ getCameraSensorsQuery(e) {
376
+ return A({
377
+ queryKey: ["sensorsList", e],
378
+ queryFn: ({ signal: t }) => Jt({
379
+ signal: t,
380
+ cameraId: u(e)
381
+ }),
382
+ placeholderData: (e) => e,
383
+ enabled: () => this.queryActivator.value.some((e) => e.name === "getCameraSensorsQuery" && e.enabled)
384
+ });
385
+ }
386
+ createVirtualSensorQuery() {
387
+ return T({
388
+ mutationFn: Yt,
389
+ onSuccess: async () => {
390
+ await this._queryClient.refetchQueries({ queryKey: ["sensorsList"] }), this.toast.add({
391
+ severity: "success",
392
+ detail: this.t("components.camera_options.virtual_sensor_created"),
393
+ life: 3e3
394
+ });
395
+ }
396
+ });
397
+ }
398
+ patchSensorQuery() {
399
+ return T({
400
+ mutationFn: Xt,
401
+ onSuccess: async () => {
402
+ await this._queryClient.refetchQueries({ queryKey: ["sensorsList"] });
403
+ }
404
+ });
405
+ }
406
+ deleteSensorQuery() {
407
+ return T({
408
+ mutationFn: Zt,
409
+ onSuccess: async () => {
410
+ await this._queryClient.refetchQueries({ queryKey: ["sensorsList"] });
411
+ }
412
+ });
413
+ }
414
+ bulkDeleteSensorsQuery() {
415
+ return T({
416
+ mutationFn: Qt,
417
+ onSuccess: async () => {
418
+ await this._queryClient.refetchQueries({ queryKey: ["sensorsList"] });
419
+ }
420
+ });
421
+ }
422
+ }, tn = {
423
+ viewBox: "0 0 24 24",
424
+ width: "1.2em",
425
+ height: "1.2em"
426
+ };
427
+ function nn(e, t) {
428
+ return r(), p("svg", tn, [...t[0] ||= [m("path", {
429
+ fill: "currentColor",
430
+ d: "M14 10H3v2h11zm0-4H3v2h11zM3 16h7v-2H3zm18.5-4.5L23 13l-7 7l-4.5-4.5L13 14l3 3z"
431
+ }, null, -1)]]);
432
+ }
433
+ var rn = o({
434
+ name: "mdi-playlist-check",
435
+ render: nn
436
+ }), an = {
437
+ viewBox: "0 0 24 24",
438
+ width: "1.2em",
439
+ height: "1.2em"
440
+ };
441
+ function on(e, t) {
442
+ return r(), p("svg", an, [...t[0] ||= [m("path", {
443
+ fill: "currentColor",
444
+ d: "M3 16h7v-2H3m15 0v-4h-2v4h-4v2h4v4h2v-4h4v-2m-8-8H3v2h11m0 2H3v2h11z"
445
+ }, null, -1)]]);
446
+ }
447
+ var sn = o({
448
+ name: "mdi-playlist-plus",
449
+ render: on
450
+ }), cn = 5e3, Y = ce({
451
+ isLoading: !0,
452
+ sensors: [],
453
+ isScanning: !1,
454
+ error: null
455
+ }), X = null, Z = null, Q = !1, $ = 0, ln = null, un = /* @__PURE__ */ new Set();
456
+ function dn() {
457
+ Y.isLoading = !0, Y.sensors = [], Y.isScanning = !1, Y.error = null;
458
+ }
459
+ function fn() {
460
+ return Z || (X = te(!0), X.run(() => {
461
+ let e = Oe("/sensors");
462
+ Z = e, e.onReady(() => {
463
+ pn();
464
+ }), re(e.connected, (e, t) => {
465
+ !e && t && (Q = !1);
466
+ }), e.on("sensors:discovered", (e) => {
467
+ Y.sensors = [...Y.sensors.filter((t) => t.pluginId !== e.source), ...e.sensors];
468
+ }), e.on("sensors:scanning", (e) => {
469
+ Y.isScanning = e.isScanning;
470
+ }), e.on("sensors:adopted", (e) => {
471
+ Y.sensors = Y.sensors.filter((t) => t.pluginId !== e.pluginId || t.id !== e.id);
472
+ }), e.on("sensor:source:changed", (e) => {
473
+ for (let t of un) t(e);
474
+ });
475
+ }), Z);
476
+ }
477
+ async function pn() {
478
+ if (!Z || Q) return {
479
+ success: Q,
480
+ sensors: Y.sensors,
481
+ isScanning: Y.isScanning
482
+ };
483
+ try {
484
+ let e = await Z.request("sensors:subscribe", {});
485
+ return Q = e.success, e.sensors && (Y.sensors = e.sensors), e.isScanning !== void 0 && (Y.isScanning = e.isScanning), Y.isLoading = !1, e;
486
+ } catch (e) {
487
+ return Y.isLoading = !1, Y.error = e instanceof Error ? e.message : "subscribe failed", { success: !1 };
488
+ }
489
+ }
490
+ async function mn() {
491
+ if (!Z || !Q) return { success: !0 };
492
+ try {
493
+ let e = await Z.request("sensors:unsubscribe", {});
494
+ return Q = !e.success, e;
495
+ } catch {
496
+ return { success: !1 };
497
+ }
498
+ }
499
+ function hn() {
500
+ Q && mn(), X?.stop(), X = null, Z = null, Q = !1, dn();
501
+ }
502
+ function gn() {
503
+ ln &&= (clearTimeout(ln), null), $++;
504
+ function e() {
505
+ fn(), Z?.connected.value && !Q && pn();
506
+ }
507
+ function t() {
508
+ Q && mn();
509
+ }
510
+ async function n() {
511
+ if (!Z?.ready.value) return {
512
+ success: !1,
513
+ error: "Not connected"
514
+ };
515
+ Y.sensors = [], Y.isScanning = !0;
516
+ try {
517
+ let e = await Z.request("sensors:rescan", {});
518
+ return e.success || (Y.isScanning = !1), e;
519
+ } catch (e) {
520
+ return Y.isScanning = !1, {
521
+ success: !1,
522
+ error: e instanceof Error ? e.message : "rescan failed"
523
+ };
524
+ }
525
+ }
526
+ async function r(e) {
527
+ if (!Z?.ready.value) return {
528
+ success: !1,
529
+ error: "Not connected"
530
+ };
531
+ let { pluginId: t, pluginName: n, ...r } = e;
532
+ try {
533
+ return await Z.request("sensors:adopt", {
534
+ pluginId: t,
535
+ sensor: r
536
+ });
537
+ } catch (e) {
538
+ return {
539
+ success: !1,
540
+ error: e instanceof Error ? e.message : "adopt failed"
541
+ };
542
+ }
543
+ }
544
+ function i(e) {
545
+ return un.add(e), () => un.delete(e);
546
+ }
547
+ let a = d(() => [...Y.sensors].sort((e, t) => e.name.localeCompare(t.name)));
548
+ return Pe(() => {
549
+ $--, !($ > 0) && ($ = 0, ln = setTimeout(() => {
550
+ $ <= 0 && (hn(), ln = null);
551
+ }, cn));
552
+ }), {
553
+ state: s(Y),
554
+ isConnected: d(() => Z?.connected.value ?? !1),
555
+ isLoading: d(() => Y.isLoading),
556
+ sensors: d(() => Y.sensors),
557
+ isScanning: d(() => Y.isScanning),
558
+ error: d(() => Y.error),
559
+ sortedSensors: a,
560
+ connect: e,
561
+ disconnect: t,
562
+ subscribe: pn,
563
+ unsubscribe: mn,
564
+ forceRescan: n,
565
+ adoptSensor: r,
566
+ onSourceChanged: i
567
+ };
568
+ }
569
+ //#endregion
570
+ //#region src/views/Sensors.vue?vue&type=script&setup=true&lang.ts
571
+ var _n = { class: "flex flex-col" }, vn = {
572
+ key: 0,
573
+ class: "page-title"
574
+ }, yn = { class: "flex gap-2 mb-4" }, bn = {
575
+ key: 1,
576
+ class: "flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4 py-16"
577
+ }, xn = {
578
+ key: 2,
579
+ class: "flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4 py-20"
580
+ }, Sn = { class: "text-muted text-sm" }, Cn = {
581
+ key: 3,
582
+ class: "flex min-h-0 flex-col"
583
+ }, wn = { class: "card-title" }, Tn = { class: "flex items-center justify-center" }, En = { class: "flex items-center gap-2 min-w-0" }, Dn = { class: "flex flex-col min-w-0" }, On = { class: "flex items-center gap-2 min-w-0" }, kn = { class: "font-bold text-color truncate" }, An = {
584
+ key: 0,
585
+ class: "text-xs text-muted truncate"
586
+ }, jn = {
587
+ key: 1,
588
+ class: "text-xs text-muted truncate font-mono"
589
+ }, Mn = {
590
+ key: 0,
591
+ class: "text-xs text-muted truncate font-mono block"
592
+ }, Nn = {
593
+ key: 1,
594
+ class: "text-xs text-muted"
595
+ }, Pn = { class: "text-xs text-muted whitespace-nowrap" }, Fn = { class: "flex items-center justify-center gap-1 min-w-0" }, In = { class: "flex items-center justify-end gap-1" }, Ln = {
596
+ key: 0,
597
+ class: "shrink-0"
598
+ }, Rn = {
599
+ key: 4,
600
+ class: "flex min-h-0 flex-col mt-6"
601
+ }, zn = { class: "card-title" }, Bn = { class: "flex items-center justify-center" }, Vn = { class: "flex items-center gap-2 min-w-0" }, Hn = { class: "flex flex-col min-w-0" }, Un = { class: "font-bold text-color truncate" }, Wn = { class: "text-xs text-muted truncate font-mono" }, Gn = { class: "text-xs text-muted whitespace-nowrap" }, Kn = {
602
+ key: 1,
603
+ class: "flex flex-col items-center justify-center py-6 gap-2"
604
+ }, qn = { class: "text-muted text-sm" }, Jn = { class: "flex flex-wrap items-center gap-2 mt-4" }, Yn = /*@__PURE__*/ se({
605
+ __name: "Sensors",
606
+ setup(e) {
607
+ let o = E(() => import("./SensorEdit-BxE1cRLR.js")), s = E(() => import("./SensorHistory-DUGlH2pU.js")), te = E(() => import("./VirtualSensorCreate-CvSzLo4N.js")), re = {
608
+ connected: "green",
609
+ disconnected: "gray",
610
+ unavailable: "orange",
611
+ removed: "red"
612
+ }, se = {
613
+ color: "rgb(251, 146, 60)",
614
+ filter: "drop-shadow(0 0 6px rgba(251, 146, 60, 0.6))"
615
+ }, ce = /* @__PURE__ */ new Set([
616
+ N.Motion,
617
+ N.Object,
618
+ N.Audio,
619
+ N.Face,
620
+ N.LicensePlate,
621
+ N.Classifier,
622
+ N.Contact,
623
+ N.Occupancy,
624
+ N.Smoke,
625
+ N.Leak,
626
+ N.Gas,
627
+ N.CarbonMonoxide,
628
+ N.Heat,
629
+ N.Cold,
630
+ N.Vibration,
631
+ N.Tamper,
632
+ N.Problem,
633
+ N.Power
634
+ ]), y = new en(), b = new we(), S = Ce(), C = gn(), w = ge(), T = Se(), { t: D } = Le(), { smBreakpoint: O } = he(), k = pe(), { uiSettings: A } = Ie(k), { sensors: j } = Re(), { data: M, isBusy: Te } = y.getSensorsQuery(), { data: Ee } = b.getCamerasQuery({
635
+ page: 1,
636
+ pageSize: -1
637
+ }), { mutateAsync: De, isPending: Oe } = y.createVirtualSensorQuery(), { mutateAsync: ke } = y.patchSensorQuery(), { mutateAsync: Ae, isPending: je } = y.deleteSensorQuery(), { mutateAsync: Pe } = y.bulkDeleteSensorsQuery(), ze = {
638
+ bodyRow: { class: "text-sm text-secondary" },
639
+ column: { columnTitle: { class: "text-sm" } },
640
+ datatable: { class: "z-0" }
641
+ }, it = oe("menuRef"), P = _(""), F = _(!1), at, ot = d(() => M.value === void 0 && Te.value), I = d(() => xe(void 0, "admin")), L = d(() => M.value ?? []), st = d(() => L.value.filter((e) => e.assignmentLocked).length), ct = d(() => [{
642
+ key: "hideCameraBound",
643
+ label: D("views.sensors.hide_camera_bound"),
644
+ description: D("views.sensors.hide_camera_bound_hint"),
645
+ badge: st.value ? String(st.value) : void 0,
646
+ toggle: !0,
647
+ toggleState: A.value.sensors.hideCameraBound,
648
+ onClick: () => A.value.sensors.hideCameraBound = !A.value.sensors.hideCameraBound
649
+ }]), lt = d(() => (Ee.value?.result ?? []).map((e) => ({
650
+ label: e.name,
651
+ value: e._id
652
+ }))), ut = d(() => new Map(j.value.map((e) => [e.id, e]))), R = d(() => {
653
+ let e = P.value.toLowerCase().trim();
654
+ return L.value.map((e) => {
655
+ let t = Et(e);
656
+ return {
657
+ sensor: e,
658
+ label: e.displayName || e.name,
659
+ typeLabel: D(`components.camera_options.sensor_type_${e.type}`),
660
+ nativeLabel: e.address ?? e.nativeId ?? "",
661
+ pluginLabel: e.virtual ? D("views.sensors.owner_virtual") : e.pluginName,
662
+ assignedLabel: e.assignedCameraIds.map((e) => lt.value.find((t) => t.value === e)?.label).filter(Boolean).join(", "),
663
+ state: t,
664
+ stateLabel: Dt(t, e),
665
+ stateColor: re[t]
666
+ };
667
+ }).filter((e) => !A.value.sensors.hideCameraBound || !e.sensor.assignmentLocked).filter((t) => !e || [
668
+ t.label,
669
+ t.typeLabel,
670
+ t.nativeLabel,
671
+ t.pluginLabel,
672
+ t.assignedLabel
673
+ ].some((t) => t.toLowerCase().includes(e))).sort((e, t) => e.label.localeCompare(t.label));
674
+ }), z = d(() => C.isScanning.value), B = d(() => {
675
+ let e = P.value.toLowerCase().trim();
676
+ return C.sortedSensors.value.filter((t) => !e || [
677
+ t.name,
678
+ t.id,
679
+ t.pluginName,
680
+ t.room ?? ""
681
+ ].some((t) => t.toLowerCase().includes(e)));
682
+ }), { selectionMode: V, selectedIds: dt, selectedItems: ft, allSelected: pt, bulkBusy: H, enterSelectionMode: mt, exitSelectionMode: U, toggleSelectAll: ht, toggleSelection: gt } = x(() => R.value, (e) => e.sensor.id), { selectionMode: W, selectedIds: _t, selectedItems: vt, allSelected: yt, bulkBusy: G, enterSelectionMode: bt, exitSelectionMode: K, toggleSelectAll: St, toggleSelection: Ct } = x(() => B.value, q), wt = d(() => ft.value.filter((e) => J(e.sensor)));
683
+ function q(e) {
684
+ return `${e.pluginId}:${e.id}`;
685
+ }
686
+ function Tt(e) {
687
+ return ut.value.get(e.id)?.connected.value ?? e.connected;
688
+ }
689
+ function Et(e) {
690
+ return Tt(e) ? e.sourceState === "removed" ? "removed" : e.sourceState === "unavailable" ? "unavailable" : "connected" : "disconnected";
691
+ }
692
+ function Dt(e, t) {
693
+ switch (e) {
694
+ case "disconnected": return D("views.sensors.disconnected");
695
+ case "unavailable": return D("views.sensors.state_unavailable");
696
+ case "removed": return D("views.sensors.state_removed", { plugin: t.pluginName });
697
+ default: return D("views.sensors.connected");
698
+ }
699
+ }
700
+ function Ot() {
701
+ K(), mt();
702
+ }
703
+ function kt() {
704
+ U(), bt();
705
+ }
706
+ function At(e) {
707
+ if (W.value) {
708
+ Ct(q(e));
709
+ return;
710
+ }
711
+ jt(e);
712
+ }
713
+ function jt(e) {
714
+ S.openTextDialog({
715
+ data: {
716
+ title: D("views.sensors.adopt_title"),
717
+ contentText: D("views.sensors.adopt_confirm", {
718
+ name: e.name,
719
+ plugin: e.pluginName
720
+ }),
721
+ confirmText: D("components.form.button.add"),
722
+ loading: F
723
+ },
724
+ onConfirm: async () => {
725
+ F.value = !0;
726
+ try {
727
+ let t = await C.adoptSensor(e);
728
+ if (!t.success) {
729
+ T.add({
730
+ severity: "error",
731
+ summary: D("views.sensors.adopt_title"),
732
+ detail: t.error,
733
+ life: 3e3
734
+ });
735
+ return;
736
+ }
737
+ await w.refetchQueries({ queryKey: ["sensorsList"] }), T.add({
738
+ severity: "success",
739
+ detail: D("views.sensors.adopted", { name: e.name }),
740
+ life: 3e3
741
+ });
742
+ } finally {
743
+ F.value = !1;
744
+ }
745
+ }
746
+ });
747
+ }
748
+ async function Mt() {
749
+ let e = await C.forceRescan();
750
+ e.success || T.add({
751
+ severity: "error",
752
+ summary: D("views.sensors.rescan"),
753
+ detail: e.error,
754
+ life: 3e3
755
+ });
756
+ }
757
+ function Nt(e) {
758
+ let t = ut.value.get(e.id), n = (n) => t ? t.getProperty(n) : e.properties?.[n];
759
+ switch (e.type) {
760
+ case N.Light:
761
+ case N.Switch: return !!n("on");
762
+ case N.Siren: return !!n("active");
763
+ case N.Doorbell: return !!n("ring");
764
+ case N.Garage:
765
+ case N.Lock: return n("currentState") === 0;
766
+ case N.SecuritySystem: return n("currentState") === 4;
767
+ case N.Battery: return !!n("low");
768
+ default: return ce.has(String(e.type)) && !!n("detected");
769
+ }
770
+ }
771
+ function J(e) {
772
+ return e.virtual || !e.assignmentLocked || !Tt(e);
773
+ }
774
+ function Pt(e) {
775
+ if (V.value) {
776
+ gt(e.sensor.id);
777
+ return;
778
+ }
779
+ I.value && S.openComponentDialog(o, {
780
+ data: {
781
+ title: e.label,
782
+ confirmText: D("components.form.button.save"),
783
+ contentProps: {
784
+ sensor: e.sensor,
785
+ cameraOptions: lt.value
786
+ }
787
+ },
788
+ onConfirm: async (t) => {
789
+ t && await ke({
790
+ id: e.sensor.id,
791
+ data: t
792
+ });
793
+ }
794
+ });
795
+ }
796
+ function Ft(e) {
797
+ S.openComponentDialog(s, { data: {
798
+ title: `${e.displayName || e.name} · ${D("views.sensors.history")}`,
799
+ hideConfirmButton: !0,
800
+ contentProps: {
801
+ sensorId: e.id,
802
+ sensorType: String(e.type)
803
+ }
804
+ } });
805
+ }
806
+ function It(e, t, n) {
807
+ t.length && T.add({
808
+ severity: "error",
809
+ summary: D("views.sensors.bulk_failed", { count: t.length }),
810
+ detail: t.join(", "),
811
+ life: 8e3
812
+ }), e && T.add({
813
+ severity: "success",
814
+ detail: D(n, { count: e }),
815
+ life: 5e3
816
+ });
817
+ }
818
+ function Lt() {
819
+ let e = [...wt.value];
820
+ S.openTextDialog({
821
+ data: {
822
+ title: D("components.dialog.title.confirm"),
823
+ contentText: D("views.sensors.delete_selected_confirm", { count: e.length }),
824
+ confirmText: D("components.form.button.remove"),
825
+ confirmButtonProps: { severity: "danger" }
826
+ },
827
+ onConfirm: async () => {
828
+ H.value = !0;
829
+ try {
830
+ let { skipped: t } = await Pe({ ids: e.map((e) => e.sensor.id) }), n = e.filter((e) => t.includes(e.sensor.id)).map((e) => e.label);
831
+ U(), It(e.length - n.length, n, "views.sensors.delete_selected_done");
832
+ } finally {
833
+ H.value = !1;
834
+ }
835
+ }
836
+ });
837
+ }
838
+ function Rt() {
839
+ let e = [...vt.value];
840
+ S.openTextDialog({
841
+ data: {
842
+ title: D("views.sensors.adopt_title"),
843
+ contentText: D("views.sensors.adopt_selected_confirm", { count: e.length }),
844
+ confirmText: D("components.form.button.add")
845
+ },
846
+ onConfirm: async () => {
847
+ G.value = !0;
848
+ try {
849
+ let t = [];
850
+ for (let n of e) (await C.adoptSensor(n)).success || t.push(n.name);
851
+ await w.refetchQueries({ queryKey: ["sensorsList"] }), K(), It(e.length - t.length, t, "views.sensors.adopt_selected_done");
852
+ } finally {
853
+ G.value = !1;
854
+ }
855
+ }
856
+ });
857
+ }
858
+ function zt(e) {
859
+ w.setQueryData(["sensorsList"], (t) => t?.map((t) => t.id === e.sensorId ? {
860
+ ...t,
861
+ sourceState: e.sourceState,
862
+ address: e.address
863
+ } : t));
864
+ }
865
+ function Bt() {
866
+ S.openComponentDialog(te, {
867
+ data: {
868
+ title: D("views.sensors.create_virtual"),
869
+ confirmText: D("components.form.button.save"),
870
+ loading: Oe,
871
+ contentProps: {}
872
+ },
873
+ onConfirm: async (e) => {
874
+ e && await De({ data: e });
875
+ }
876
+ });
877
+ }
878
+ function Vt(e) {
879
+ S.openTextDialog({
880
+ data: {
881
+ title: D("views.sensors.delete"),
882
+ contentText: D("views.sensors.delete_confirm"),
883
+ confirmText: D("components.form.button.remove"),
884
+ loading: je,
885
+ confirmButtonProps: { severity: "danger" }
886
+ },
887
+ onConfirm: async () => {
888
+ await Ae({ id: e.id });
889
+ }
890
+ });
891
+ }
892
+ return le(() => {
893
+ I.value && (C.connect(), at = C.onSourceChanged(zt));
894
+ }), n(() => {
895
+ at?.(), I.value && C.unsubscribe();
896
+ }), (e, n) => {
897
+ let o = $e, s = Ve, te = ye, d = Ze, re = Ue, oe = We, _ = He, ce = tt, le = me, y = Ne, pe = be, he = Ge, b = Je, x = Be, ge = rt, S = qe, C = xt, w = de, T = Qe, E = Ye, xe = Fe, Se = Xe, Ce = nt, k = Me, A = ve, j = ue;
898
+ return r(), p("div", _n, [
899
+ u(O) ? l("", !0) : (r(), p("h1", vn, i(u(D)("views.sensors.title")), 1)),
900
+ v(te, { position: "left" }, {
901
+ default: f(() => [v(s, {
902
+ severity: "secondary",
903
+ text: "",
904
+ class: "cui-button p-2 text-color non-draggable-region",
905
+ onClick: n[0] ||= (t) => e.$router.push("/menu")
906
+ }, {
907
+ icon: f(() => [v(o, { class: "w-6 h-6" })]),
908
+ _: 1
909
+ })]),
910
+ _: 1
911
+ }),
912
+ m("div", yn, [
913
+ v(_, { class: "flex-1" }, {
914
+ default: f(() => [v(re, null, {
915
+ default: f(() => [v(d, { class: "w-4 h-4" })]),
916
+ _: 1
917
+ }), v(oe, {
918
+ modelValue: u(P),
919
+ "onUpdate:modelValue": n[1] ||= (e) => ne(P) ? P.value = e : null,
920
+ placeholder: u(D)("views.sensors.search"),
921
+ class: "w-full"
922
+ }, null, 8, ["modelValue", "placeholder"])]),
923
+ _: 1
924
+ }),
925
+ h((r(), c(s, {
926
+ severity: "secondary",
927
+ outlined: "",
928
+ class: "cui-button shrink-0",
929
+ onClick: n[2] ||= (e) => u(it)?.toggleMenu(e)
930
+ }, {
931
+ icon: f(() => [v(ce, { class: "w-4.5 h-4.5" })]),
932
+ _: 1
933
+ })), [[
934
+ j,
935
+ { value: u(D)("views.sensors.settings") },
936
+ void 0,
937
+ { left: !0 }
938
+ ]]),
939
+ v(le, {
940
+ ref_key: "menuRef",
941
+ ref: it,
942
+ items: u(ct),
943
+ "auto-hide": !1,
944
+ popover: { pt: {
945
+ root: { class: "w-[22rem]" },
946
+ content: { class: "p-0! rounded-xl! overflow-hidden!" }
947
+ } }
948
+ }, null, 8, ["items"])
949
+ ]),
950
+ u(ot) ? (r(), p("div", bn, [v(y, {
951
+ "stroke-width": "5",
952
+ class: "w-[30px] h-[30px]"
953
+ })])) : !u(R).length && !u(B).length && !u(z) ? (r(), p("div", xn, [v(pe, { class: "w-12 h-12 text-muted" }), m("span", Sn, i(u(L).length ? u(D)("views.sensors.no_matches") : u(D)("views.sensors.no_sensors")), 1)])) : u(R).length ? (r(), p("div", Cn, [m("span", wn, i(u(D)("views.sensors.adopted_title")), 1), v(xe, { class: "cui-card" }, {
954
+ content: f(() => [v(E, {
955
+ value: u(R),
956
+ "striped-rows": "",
957
+ pt: ze,
958
+ class: "w-full",
959
+ onRowClick: n[4] ||= (e) => Pt(e.data)
960
+ }, {
961
+ default: f(() => [
962
+ u(V) ? (r(), c(b, {
963
+ key: 0,
964
+ header: "",
965
+ "header-class": "p-2 pl-4 w-8 max-w-8",
966
+ class: "p-2 pl-4 w-8 max-w-8"
967
+ }, {
968
+ body: f(({ data: e }) => [v(he, {
969
+ "model-value": u(dt).has(e.sensor.id),
970
+ binary: "",
971
+ size: "small",
972
+ onClick: n[3] ||= t(() => {}, ["stop"]),
973
+ "onUpdate:modelValue": (t) => u(gt)(e.sensor.id)
974
+ }, null, 8, ["model-value", "onUpdate:modelValue"])]),
975
+ _: 1
976
+ })) : l("", !0),
977
+ v(b, {
978
+ header: "",
979
+ "header-class": "p-2 pl-4 w-5 max-w-5",
980
+ class: "p-2 pl-4 w-5 max-w-5"
981
+ }, {
982
+ body: f(({ data: e }) => [m("div", Tn, [h(v(x, { style: ie({ background: e.stateColor }) }, null, 8, ["style"]), [[j, { value: e.stateLabel }]])])]),
983
+ _: 1
984
+ }),
985
+ v(b, {
986
+ field: "label",
987
+ header: u(D)("views.sensors.name"),
988
+ sortable: "",
989
+ "header-class": "p-2",
990
+ class: "p-2 w-[40%] min-w-[180px] max-w-0"
991
+ }, {
992
+ body: f(({ data: e }) => [m("div", En, [(r(), c(ee(u(qt)(e.sensor.type)), {
993
+ class: a(["w-5 h-5 shrink-0 transition-colors", { "text-muted": !Nt(e.sensor) }]),
994
+ style: ie(Nt(e.sensor) ? se : void 0)
995
+ }, null, 8, ["class", "style"])), m("div", Dn, [
996
+ m("div", On, [h((r(), p("span", kn, [g(i(e.label), 1)])), [[j, e.label]]), e.sensor.exposed ? l("", !0) : h((r(), c(ge, {
997
+ key: 0,
998
+ class: "w-4 h-4 shrink-0 text-muted"
999
+ }, null, 512)), [[j, u(D)("views.sensors.not_exposed")]])]),
1000
+ u(O) ? (r(), p("span", An, i(e.typeLabel) + " · " + i(e.pluginLabel), 1)) : l("", !0),
1001
+ u(O) && e.nativeLabel ? h((r(), p("span", jn, [g(i(e.nativeLabel), 1)])), [[j, e.nativeLabel]]) : l("", !0),
1002
+ u(O) && e.state !== "connected" ? (r(), p("span", {
1003
+ key: 2,
1004
+ class: "text-xs truncate",
1005
+ style: ie({ color: e.stateColor })
1006
+ }, i(e.stateLabel), 5)) : l("", !0)
1007
+ ])])]),
1008
+ _: 1
1009
+ }, 8, ["header"]),
1010
+ u(O) ? l("", !0) : (r(), c(b, {
1011
+ key: 1,
1012
+ field: "nativeLabel",
1013
+ header: u(D)("views.sensors.native_id"),
1014
+ sortable: "",
1015
+ "header-class": "p-2 whitespace-nowrap cui-col-center",
1016
+ class: "p-2 w-[28%] min-w-[160px] max-w-0 text-center"
1017
+ }, {
1018
+ body: f(({ data: e }) => [e.nativeLabel ? h((r(), p("span", Mn, [g(i(e.nativeLabel), 1)])), [[j, e.nativeLabel]]) : (r(), p("span", Nn, "—"))]),
1019
+ _: 1
1020
+ }, 8, ["header"])),
1021
+ u(O) ? l("", !0) : (r(), c(b, {
1022
+ key: 2,
1023
+ field: "typeLabel",
1024
+ header: u(D)("views.sensors.type"),
1025
+ sortable: "",
1026
+ "header-class": "p-2 whitespace-nowrap cui-col-center",
1027
+ class: "p-2 whitespace-nowrap text-center"
1028
+ }, {
1029
+ body: f(({ data: e }) => [m("span", Pn, i(e.typeLabel), 1)]),
1030
+ _: 1
1031
+ }, 8, ["header"])),
1032
+ u(O) ? l("", !0) : (r(), c(b, {
1033
+ key: 3,
1034
+ field: "pluginLabel",
1035
+ header: u(D)("views.sensors.plugin"),
1036
+ sortable: "",
1037
+ "header-class": "p-2 whitespace-nowrap cui-col-center",
1038
+ class: "p-2 whitespace-nowrap text-center"
1039
+ }, {
1040
+ body: f(({ data: e }) => [v(S, {
1041
+ label: e.pluginLabel,
1042
+ class: "text-xs whitespace-nowrap"
1043
+ }, null, 8, ["label"])]),
1044
+ _: 1
1045
+ }, 8, ["header"])),
1046
+ v(b, {
1047
+ field: "assignedLabel",
1048
+ header: u(D)("views.sensors.assigned_cameras"),
1049
+ sortable: "",
1050
+ "header-class": "p-2 whitespace-nowrap cui-col-center",
1051
+ class: "p-2 min-w-[140px] text-center"
1052
+ }, {
1053
+ body: f(({ data: e }) => [m("div", Fn, [e.sensor.assignmentLocked ? h((r(), c(C, {
1054
+ key: 0,
1055
+ class: "w-3.5 h-3.5 shrink-0 text-muted"
1056
+ }, null, 512)), [[j, u(D)("views.sensors.assigned_cameras_locked_hint")]]) : l("", !0), m("span", { class: a(["text-xs truncate", e.assignedLabel ? "text-muted" : "text-muted italic"]) }, i(e.assignedLabel || u(D)("views.sensors.unassigned")), 3)])]),
1057
+ _: 1
1058
+ }, 8, ["header"]),
1059
+ v(b, {
1060
+ header: "",
1061
+ "header-class": "p-2 pr-4 w-28",
1062
+ class: "p-2 pr-4 w-28"
1063
+ }, {
1064
+ body: f(({ data: e }) => [m("div", In, [h((r(), c(s, {
1065
+ text: "",
1066
+ rounded: "",
1067
+ severity: "secondary",
1068
+ class: "cui-icon-sm shrink-0",
1069
+ onClick: t((t) => Ft(e.sensor), ["stop"])
1070
+ }, {
1071
+ icon: f(() => [v(w, {
1072
+ width: "100%",
1073
+ height: "100%"
1074
+ })]),
1075
+ _: 1
1076
+ }, 8, ["onClick"])), [[
1077
+ j,
1078
+ u(D)("views.sensors.history"),
1079
+ void 0,
1080
+ { left: !0 }
1081
+ ]]), u(I) ? h((r(), p("span", Ln, [v(s, {
1082
+ text: "",
1083
+ rounded: "",
1084
+ severity: "danger",
1085
+ class: "cui-icon-sm",
1086
+ disabled: !J(e.sensor),
1087
+ onClick: t((t) => Vt(e.sensor), ["stop"])
1088
+ }, {
1089
+ icon: f(() => [v(T, {
1090
+ width: "100%",
1091
+ height: "100%"
1092
+ })]),
1093
+ _: 1
1094
+ }, 8, ["disabled", "onClick"])])), [[
1095
+ j,
1096
+ J(e.sensor) ? u(D)("views.sensors.delete") : u(D)("views.sensors.delete_camera_bound"),
1097
+ void 0,
1098
+ { left: !0 }
1099
+ ]]) : l("", !0)])]),
1100
+ _: 1
1101
+ })
1102
+ ]),
1103
+ _: 1
1104
+ }, 8, ["value"])]),
1105
+ _: 1
1106
+ })])) : l("", !0),
1107
+ u(I) && !u(ot) ? (r(), p("div", Rn, [m("span", zn, i(u(D)("views.sensors.discovered_title")), 1), v(xe, { class: "cui-card" }, {
1108
+ content: f(() => [u(B).length ? (r(), c(E, {
1109
+ key: 0,
1110
+ value: u(B),
1111
+ "striped-rows": "",
1112
+ pt: ze,
1113
+ class: a(["w-full", { "opacity-60 pointer-events-none": u(F) || u(G) }]),
1114
+ onRowClick: n[6] ||= (e) => At(e.data)
1115
+ }, {
1116
+ default: f(() => [
1117
+ u(W) ? (r(), c(b, {
1118
+ key: 0,
1119
+ header: "",
1120
+ "header-class": "p-2 pl-4 w-8 max-w-8",
1121
+ class: "p-2 pl-4 w-8 max-w-8"
1122
+ }, {
1123
+ body: f(({ data: e }) => [v(he, {
1124
+ "model-value": u(_t).has(q(e)),
1125
+ binary: "",
1126
+ size: "small",
1127
+ onClick: n[5] ||= t(() => {}, ["stop"]),
1128
+ "onUpdate:modelValue": (t) => u(Ct)(q(e))
1129
+ }, null, 8, ["model-value", "onUpdate:modelValue"])]),
1130
+ _: 1
1131
+ })) : l("", !0),
1132
+ v(b, {
1133
+ header: "",
1134
+ "header-class": "p-2 pl-4 w-5 max-w-5",
1135
+ class: "p-2 pl-4 w-5 max-w-5"
1136
+ }, {
1137
+ body: f(() => [m("div", Bn, [h(v(x, { style: { background: "orange" } }, null, 512), [[j, { value: u(D)("views.sensors.status_discovered") }]])])]),
1138
+ _: 1
1139
+ }),
1140
+ v(b, {
1141
+ field: "name",
1142
+ header: u(D)("views.sensors.name"),
1143
+ sortable: "",
1144
+ "header-class": "p-2",
1145
+ class: "p-2 w-full min-w-[200px] max-w-0"
1146
+ }, {
1147
+ body: f(({ data: e }) => [m("div", Vn, [(r(), c(ee(u(qt)(e.type)), { class: "w-5 h-5 shrink-0 text-muted" })), m("div", Hn, [h((r(), p("span", Un, [g(i(e.name), 1)])), [[j, e.name]]), h((r(), p("span", Wn, [g(i(e.address ?? e.id), 1)])), [[j, e.address ?? e.id]])])])]),
1148
+ _: 1
1149
+ }, 8, ["header"]),
1150
+ u(O) ? l("", !0) : (r(), c(b, {
1151
+ key: 1,
1152
+ field: "type",
1153
+ header: u(D)("views.sensors.type"),
1154
+ sortable: "",
1155
+ "header-class": "p-2 whitespace-nowrap",
1156
+ class: "p-2 whitespace-nowrap"
1157
+ }, {
1158
+ body: f(({ data: e }) => [m("span", Gn, i(u(D)(`components.camera_options.sensor_type_${e.type}`)), 1)]),
1159
+ _: 1
1160
+ }, 8, ["header"])),
1161
+ u(O) ? l("", !0) : (r(), c(b, {
1162
+ key: 2,
1163
+ field: "room",
1164
+ header: u(D)("components.form.label.room"),
1165
+ sortable: "",
1166
+ "header-class": "p-2 whitespace-nowrap",
1167
+ class: "p-2 whitespace-nowrap"
1168
+ }, {
1169
+ body: f(({ data: e }) => [e.room ? (r(), c(S, {
1170
+ key: 0,
1171
+ label: e.room,
1172
+ class: "text-xs whitespace-nowrap"
1173
+ }, null, 8, ["label"])) : l("", !0)]),
1174
+ _: 1
1175
+ }, 8, ["header"])),
1176
+ v(b, {
1177
+ field: "pluginName",
1178
+ header: u(D)("views.sensors.plugin"),
1179
+ sortable: "",
1180
+ "header-class": "p-2 pr-4 whitespace-nowrap",
1181
+ class: "p-2 pr-4 whitespace-nowrap"
1182
+ }, {
1183
+ body: f(({ data: e }) => [v(S, {
1184
+ label: e.pluginName,
1185
+ class: "text-xs whitespace-nowrap"
1186
+ }, null, 8, ["label"])]),
1187
+ _: 1
1188
+ }, 8, ["header"])
1189
+ ]),
1190
+ _: 1
1191
+ }, 8, ["value", "class"])) : (r(), p("div", Kn, [u(z) ? (r(), c(Se, {
1192
+ key: 0,
1193
+ width: "24px",
1194
+ height: "24px",
1195
+ class: "text-muted"
1196
+ })) : (r(), c(Ce, {
1197
+ key: 1,
1198
+ width: "32px",
1199
+ height: "32px",
1200
+ class: "text-muted"
1201
+ })), m("span", qn, i(u(z) ? u(D)("views.sensors.scanning") : u(D)("views.sensors.no_discovered")), 1)])), m("div", Jn, [n[7] ||= m("div", { class: "ml-auto" }, null, -1), v(s, {
1202
+ severity: "secondary",
1203
+ class: "cui-button-medium",
1204
+ label: u(D)("views.sensors.rescan"),
1205
+ loading: u(z),
1206
+ onClick: Mt
1207
+ }, null, 8, ["label", "loading"])])]),
1208
+ _: 1
1209
+ })])) : l("", !0),
1210
+ u(I) ? (r(), c(A, {
1211
+ key: 5,
1212
+ "force-visible": u(V) || u(W)
1213
+ }, {
1214
+ default: f(() => [!u(V) && !u(W) ? (r(), p(ae, { key: 0 }, [
1215
+ u(R).length ? (r(), c(k, {
1216
+ key: 0,
1217
+ grouped: "",
1218
+ "tooltip-props": { value: u(D)("views.sensors.select") },
1219
+ "button-props": { severity: "secondary" },
1220
+ icon: u(_e),
1221
+ "icon-props": {
1222
+ width: "100%",
1223
+ height: "100%"
1224
+ },
1225
+ onClick: Ot
1226
+ }, null, 8, ["tooltip-props", "icon"])) : l("", !0),
1227
+ u(B).length ? (r(), c(k, {
1228
+ key: 1,
1229
+ grouped: "",
1230
+ "tooltip-props": { value: u(D)("views.sensors.select_discovered") },
1231
+ "button-props": { severity: "secondary" },
1232
+ icon: u(rn),
1233
+ "icon-props": {
1234
+ width: "100%",
1235
+ height: "100%"
1236
+ },
1237
+ onClick: kt
1238
+ }, null, 8, ["tooltip-props", "icon"])) : l("", !0),
1239
+ v(k, {
1240
+ grouped: "",
1241
+ "tooltip-props": { value: u(D)("views.sensors.create_virtual") },
1242
+ "button-props": { class: "text-white" },
1243
+ icon: u(et),
1244
+ "icon-props": {
1245
+ width: "30px",
1246
+ height: "30px"
1247
+ },
1248
+ onClick: Bt
1249
+ }, null, 8, ["tooltip-props", "icon"])
1250
+ ], 64)) : u(V) ? (r(), p(ae, { key: 1 }, [
1251
+ v(k, {
1252
+ grouped: "",
1253
+ "tooltip-props": { value: e.$t("components.form.tooltip.cancel_selection") },
1254
+ "button-props": { severity: "secondary" },
1255
+ icon: u(Ke),
1256
+ "icon-props": {
1257
+ width: "100%",
1258
+ height: "100%"
1259
+ },
1260
+ onClick: u(U)
1261
+ }, null, 8, [
1262
+ "tooltip-props",
1263
+ "icon",
1264
+ "onClick"
1265
+ ]),
1266
+ v(k, {
1267
+ grouped: "",
1268
+ "tooltip-props": { value: e.$t("components.form.tooltip.select_all") },
1269
+ "button-props": { severity: u(pt) ? "primary" : "secondary" },
1270
+ icon: u(fe),
1271
+ "icon-props": {
1272
+ width: "100%",
1273
+ height: "100%"
1274
+ },
1275
+ onClick: u(ht)
1276
+ }, null, 8, [
1277
+ "tooltip-props",
1278
+ "button-props",
1279
+ "icon",
1280
+ "onClick"
1281
+ ]),
1282
+ v(k, {
1283
+ grouped: "",
1284
+ "tooltip-props": { value: u(D)("views.sensors.delete_selected") },
1285
+ "button-props": {
1286
+ severity: "danger",
1287
+ disabled: !u(wt).length || u(H)
1288
+ },
1289
+ icon: u(Qe),
1290
+ "icon-props": {
1291
+ width: "100%",
1292
+ height: "100%"
1293
+ },
1294
+ onClick: Lt
1295
+ }, null, 8, [
1296
+ "tooltip-props",
1297
+ "button-props",
1298
+ "icon"
1299
+ ])
1300
+ ], 64)) : (r(), p(ae, { key: 2 }, [
1301
+ v(k, {
1302
+ grouped: "",
1303
+ "tooltip-props": { value: e.$t("components.form.tooltip.cancel_selection") },
1304
+ "button-props": { severity: "secondary" },
1305
+ icon: u(Ke),
1306
+ "icon-props": {
1307
+ width: "100%",
1308
+ height: "100%"
1309
+ },
1310
+ onClick: u(K)
1311
+ }, null, 8, [
1312
+ "tooltip-props",
1313
+ "icon",
1314
+ "onClick"
1315
+ ]),
1316
+ v(k, {
1317
+ grouped: "",
1318
+ "tooltip-props": { value: e.$t("components.form.tooltip.select_all") },
1319
+ "button-props": { severity: u(yt) ? "primary" : "secondary" },
1320
+ icon: u(fe),
1321
+ "icon-props": {
1322
+ width: "100%",
1323
+ height: "100%"
1324
+ },
1325
+ onClick: u(St)
1326
+ }, null, 8, [
1327
+ "tooltip-props",
1328
+ "button-props",
1329
+ "icon",
1330
+ "onClick"
1331
+ ]),
1332
+ v(k, {
1333
+ grouped: "",
1334
+ "tooltip-props": { value: u(D)("views.sensors.adopt_selected") },
1335
+ "button-props": {
1336
+ class: "text-white",
1337
+ disabled: !u(vt).length || u(G)
1338
+ },
1339
+ icon: u(sn),
1340
+ "icon-props": {
1341
+ width: "100%",
1342
+ height: "100%"
1343
+ },
1344
+ onClick: Rt
1345
+ }, null, 8, [
1346
+ "tooltip-props",
1347
+ "button-props",
1348
+ "icon"
1349
+ ])
1350
+ ], 64))]),
1351
+ _: 1
1352
+ }, 8, ["force-visible"])) : l("", !0)
1353
+ ]);
1354
+ };
1355
+ }
1356
+ }), Xn = /* @__PURE__ */ e({ default: () => Zn }), Zn = /*#__PURE__*/ je(Yn, [["__scopeId", "data-v-35c30b9c"]]);
1357
+ //#endregion
1358
+ export { Zn as default, zt as i, $t as n, qt as r, Xn as t };