@camera.ui/server 2.2.7 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (958) hide show
  1. package/LICENSE.md +8 -1
  2. package/dist/interface/assets/404-C0X5UBF4.js +1 -0
  3. package/dist/interface/assets/About-Ctp_u5qK.js +1 -0
  4. package/dist/interface/assets/Assistant-Bj2bAUHD.css +1 -0
  5. package/dist/interface/assets/Assistant-CDrBV_mg.js +1 -0
  6. package/dist/interface/assets/Automation-Dp6V80Iz.js +3 -0
  7. package/dist/interface/assets/Automation-R5o9sXYY.css +1 -0
  8. package/dist/interface/assets/AutomationImport-DKgg7atE.js +2 -0
  9. package/dist/interface/assets/AutomationStore-CU-m5VC8.js +2 -0
  10. package/dist/interface/assets/AutomationStoreDetail-CiyIs8Iu.js +2 -0
  11. package/dist/interface/assets/Automations-Dljh-sWu.js +2 -0
  12. package/dist/interface/assets/Camera-0p0P_mbp.css +1 -0
  13. package/dist/interface/assets/Camera-Bvovab-8.js +2 -0
  14. package/dist/interface/assets/CameraConsole-D_Fv-MAi.js +7 -0
  15. package/dist/interface/assets/Cameras-Cq7Gw-fk.js +651 -0
  16. package/dist/interface/assets/Camview-Bs2VvmUS.css +1 -0
  17. package/dist/interface/assets/Camview-CP6PA20C.js +1 -0
  18. package/dist/interface/assets/CertificateUpload-DjzNMFc3.js +1 -0
  19. package/dist/interface/assets/Config-Dl2TlyFe.js +2 -0
  20. package/dist/interface/assets/ConfigActionAssistant-DCkJ_Iqq.js +1 -0
  21. package/dist/interface/assets/ConfigActionCameraControl-2pzl59gR.js +1 -0
  22. package/dist/interface/assets/ConfigActionDelay-BAp1dr0N.js +1 -0
  23. package/dist/interface/assets/ConfigActionHttp-_kqgEuun.js +1 -0
  24. package/dist/interface/assets/ConfigActionImageInput-BgtACnCm.js +1 -0
  25. package/dist/interface/assets/ConfigActionMqtt-z7UzccW5.js +1 -0
  26. package/dist/interface/assets/ConfigActionNotification-bhbb5AqU.js +1 -0
  27. package/dist/interface/assets/ConfigActionNotificationControl-BbvX8MFu.js +1 -0
  28. package/dist/interface/assets/ConfigActionOutput-DdgSg3FU.js +1 -0
  29. package/dist/interface/assets/ConfigActionPlugin-DGjZd1L0.js +1 -0
  30. package/dist/interface/assets/ConfigActionSensor-DmImWFAo.js +1 -0
  31. package/dist/interface/assets/ConfigActionSnapshot-hVHSfdtS.js +1 -0
  32. package/dist/interface/assets/ConfigActionVariable-BIpruwsx.js +1 -0
  33. package/dist/interface/assets/ConfigConditionIfElse-DRSpsoR4.js +1 -0
  34. package/dist/interface/assets/ConfigConditionSensorState-C2SNARH7.js +1 -0
  35. package/dist/interface/assets/ConfigConditionSwitch-4SbQcU7N.js +1 -0
  36. package/dist/interface/assets/ConfigConditionTime-ESX3shbg.js +1 -0
  37. package/dist/interface/assets/ConfigSensorValueInput-CTUdAA-R.js +1 -0
  38. package/dist/interface/assets/ConfigTriggerDetection-BRr6ixxQ.js +1 -0
  39. package/dist/interface/assets/ConfigTriggerGeofence-D-xRMGrT.js +1 -0
  40. package/dist/interface/assets/ConfigTriggerManual-aXD6k1qa.js +1 -0
  41. package/dist/interface/assets/ConfigTriggerMqtt-pjHW4yOL.js +1 -0
  42. package/dist/interface/assets/ConfigTriggerSchedule-CYOt57qg.js +1 -0
  43. package/dist/interface/assets/ConfigTriggerSensor-BwJ_cAqd.js +1 -0
  44. package/dist/interface/assets/ConfigTriggerSystem-DBXIrjzU.js +1 -0
  45. package/dist/interface/assets/ConfigTriggerWebhook-CccBmMCb.js +1 -0
  46. package/dist/interface/assets/Console-DWAaz1C6.js +1 -0
  47. package/dist/interface/assets/CuiAssistantConversation-B3xEiNNt.js +5 -0
  48. package/dist/interface/assets/CuiAssistantConversation-C5ca1lgX.css +1 -0
  49. package/dist/interface/assets/CuiAutomationRunsDialog-CfylVPLI.js +1 -0
  50. package/dist/interface/assets/CuiBottomSheet-ACN23VLS.js +1 -0
  51. package/dist/interface/assets/CuiBottomSheet-DEVNeDqa.js +1 -0
  52. package/dist/interface/assets/CuiCameraPipCard-TYTCfwXf.css +1 -0
  53. package/dist/interface/assets/CuiCameraPipCard-rR_FW9zq.js +1 -0
  54. package/dist/interface/assets/CuiCameraRecordings-CnorhPhf.js +1 -0
  55. package/dist/interface/assets/CuiCameraShares-BxUgedC_.js +1 -0
  56. package/dist/interface/assets/CuiCameraTable-C3GB4Q2y.js +2 -0
  57. package/dist/interface/assets/CuiCameraTable-MHfnZSyK.js +1 -0
  58. package/dist/interface/assets/CuiChartTable-TAzZgetO.js +1 -0
  59. package/dist/interface/assets/CuiConsole-Cf5lOCE1.js +5 -0
  60. package/dist/interface/assets/CuiDataTable-DfjXa0C1.js +1 -0
  61. package/dist/interface/assets/CuiLightControl-ChK-SvJp.js +1 -0
  62. package/dist/interface/assets/CuiList-C4fxd9lD.js +1 -0
  63. package/dist/interface/assets/CuiMarkdownContent-Do04YgHe.js +1 -0
  64. package/dist/interface/assets/CuiMarkdownContent-qOPm3VEi.js +1 -0
  65. package/dist/interface/assets/CuiPluginCard-DMpANIQj.js +2 -0
  66. package/dist/interface/assets/CuiPluginCategoryChip-BKxJMid7.js +1 -0
  67. package/dist/interface/assets/CuiPluginOAuthButton-DnQ838JJ.js +2 -0
  68. package/dist/interface/assets/CuiPluginTrustBadge-DyYDUWV6.js +1 -0
  69. package/dist/interface/assets/CuiQRCode-S9fPi0_l.js +1 -0
  70. package/dist/interface/assets/CuiSchema-DScmDQsh.js +1 -0
  71. package/dist/interface/assets/CuiTopNavbarItem-CT10aAlO.js +1 -0
  72. package/dist/interface/assets/Faces-Coy-tUVM.js +1 -0
  73. package/dist/interface/assets/FirstSteps-CrMJC049.js +1 -0
  74. package/dist/interface/assets/Floorplan-Bj_mVrxp.js +1 -0
  75. package/dist/interface/assets/Floorplan-CT5TrMSD.css +1 -0
  76. package/dist/interface/assets/Instances-B_mpKAng.js +1 -0
  77. package/dist/interface/assets/Logs-fY1dpQk4.js +6 -0
  78. package/dist/interface/assets/Menu-Bgi-NLdg.js +1 -0
  79. package/dist/interface/assets/Metrics-DnMeIrkf.css +1 -0
  80. package/dist/interface/assets/Metrics-k9KACiwh.js +12 -0
  81. package/dist/interface/assets/OAuthDeviceFlow-xTh83xmc.js +1 -0
  82. package/dist/interface/assets/Plugin-BB7x7UHw.css +1 -0
  83. package/dist/interface/assets/Plugin-VWq7sONB.js +1 -0
  84. package/dist/interface/assets/PluginConsole-LnnDOVBL.js +7 -0
  85. package/dist/interface/assets/PluginDetail-CKD9sbDx.js +2 -0
  86. package/dist/interface/assets/PluginSchema-BnB0_6Sk.js +1 -0
  87. package/dist/interface/assets/PluginSearch-BoBZLLbr.js +1 -0
  88. package/dist/interface/assets/PluginSearch-kGhweU1J.js +2 -0
  89. package/dist/interface/assets/PluginUpdateProgress-DMx0QlgE.js +1 -0
  90. package/dist/interface/assets/Plugins-Ekmr6aVa.js +1 -0
  91. package/dist/interface/assets/RecentEventsFilter-StLJNuks.js +1 -0
  92. package/dist/interface/assets/Recordings-8PqxJOI3.css +1 -0
  93. package/dist/interface/assets/Recordings-Bvkuk_TV.js +1 -0
  94. package/dist/interface/assets/SensorEdit-CAf9Nb01.js +1 -0
  95. package/dist/interface/assets/SensorHistory-il8bDErX.js +1 -0
  96. package/dist/interface/assets/Sensors-sxQ6HLKo.js +2 -0
  97. package/dist/interface/assets/Settings-Bu0G7Ebx.js +1 -0
  98. package/dist/interface/assets/Settings-DtCSaLPb.css +1 -0
  99. package/dist/interface/assets/SettingsAccount-8OZJLQi-.js +1 -0
  100. package/dist/interface/assets/SettingsAccount-bSfFi9YH.js +1 -0
  101. package/dist/interface/assets/SettingsAppearance-CnvN_Tzr.js +1 -0
  102. package/dist/interface/assets/SettingsAppearance-EvPWgF4c.js +1 -0
  103. package/dist/interface/assets/SettingsAssistant-B6s6pHCx.js +1 -0
  104. package/dist/interface/assets/SettingsBackup-Dd2FaUcN.js +1 -0
  105. package/dist/interface/assets/SettingsList-SvCO_gfG.js +1 -0
  106. package/dist/interface/assets/SettingsMqtt-BXBzHX84.js +1 -0
  107. package/dist/interface/assets/SettingsNotifications-CV-jJwFV.js +1 -0
  108. package/dist/interface/assets/SettingsPermissions-GchFaWjz.js +1 -0
  109. package/dist/interface/assets/SettingsRecordings-C4Ch_jmV.js +1 -0
  110. package/dist/interface/assets/SettingsRemote-CsIGx-LU.css +1 -0
  111. package/dist/interface/assets/SettingsRemote-OZHDJKSq.js +2 -0
  112. package/dist/interface/assets/SettingsSystem-BJlHXwVs.js +2 -0
  113. package/dist/interface/assets/SettingsUsers-RGOkOzx0.js +1 -0
  114. package/dist/interface/assets/Terminal-DX-ECC91.js +4 -0
  115. package/dist/interface/assets/Training-B8my7vka.js +1 -0
  116. package/dist/interface/assets/Training-D1DDjCCD.css +1 -0
  117. package/dist/interface/assets/Updates-DmavyhAn.js +2 -0
  118. package/dist/interface/assets/VariableInput-DQJle67Y.js +1 -0
  119. package/dist/interface/assets/VariableSuggestions-D8V739dF.js +1 -0
  120. package/dist/interface/assets/VersionsHandler-B41TJhgY.js +7 -0
  121. package/dist/interface/assets/VirtualSensorCreate-MfLh-LpH.js +1 -0
  122. package/dist/interface/assets/Workers-CafDeRhH.js +2 -0
  123. package/dist/interface/assets/Workers-Dey1snI4.css +1 -0
  124. package/dist/interface/assets/account-DjBQulDn.js +1 -0
  125. package/dist/interface/assets/ace-BPAekgyf.js +1 -0
  126. package/dist/interface/assets/ace.config-CvKE-yp1.js +1 -0
  127. package/dist/interface/assets/alert-circle-B-JCMbb9.js +1 -0
  128. package/dist/interface/assets/alert-outline-B4ZZowEj.js +1 -0
  129. package/dist/interface/assets/api-By0v6EeA.css +2 -0
  130. package/dist/interface/assets/api-D1iULsSy.js +4 -0
  131. package/dist/interface/assets/api-DbUdfXO_.js +1 -0
  132. package/dist/interface/assets/arrow-left-PeaVwpHd.js +1 -0
  133. package/dist/interface/assets/assistant-7hqP6OpA.js +1 -0
  134. package/dist/interface/assets/assistantModels-D3ncWWu0.js +1 -0
  135. package/dist/interface/assets/auth-CDxrn7fe.js +1 -0
  136. package/dist/interface/assets/automations-CTTQlGCW.js +1 -0
  137. package/dist/interface/assets/back-filled-CJoz7Gkl.js +1 -0
  138. package/dist/interface/assets/bell-ring-CBf0Yn3H.js +1 -0
  139. package/dist/interface/assets/brain-uZ03n3LW.js +1 -0
  140. package/dist/interface/assets/cameraSources-MOiE_1-W.js +1 -0
  141. package/dist/interface/assets/cctv-VgKQ-dBV.js +1 -0
  142. package/dist/interface/assets/check-circle-BU-KNgPB.js +1 -0
  143. package/dist/interface/assets/check-circle-outline-BsxzAMed.js +1 -0
  144. package/dist/interface/assets/chevron-down-CxK4Sfjs.js +1 -0
  145. package/dist/interface/assets/chevron-up-DWfNH8va.js +1 -0
  146. package/dist/interface/assets/clock-outline-BtWx4GaF.js +1 -0
  147. package/dist/interface/assets/close-Be7oB7d_.js +1 -0
  148. package/dist/interface/assets/close-circle-D7Jmhp_7.js +1 -0
  149. package/dist/interface/assets/cloud-check-zCGJxpWI.js +1 -0
  150. package/dist/interface/assets/cloudHandoff-CJzFH7CW.js +1 -0
  151. package/dist/interface/assets/config-6EiGxiYm.js +1 -0
  152. package/dist/interface/assets/content-copy-BcYlfuFc.js +1 -0
  153. package/dist/interface/assets/copy-DuY-M96E.js +1 -0
  154. package/dist/interface/assets/cube-scan-Cae03i_N.js +1 -0
  155. package/dist/interface/assets/database-refresh-outline-B3OEQFF7.js +1 -0
  156. package/dist/interface/assets/delete-BWgOAzKl.js +1 -0
  157. package/dist/interface/assets/dist-DmpuuM9s.js +1 -0
  158. package/dist/interface/assets/dots-vertical-Kby1GY8_.js +1 -0
  159. package/dist/interface/assets/download-C291Yq7I.js +1 -0
  160. package/dist/interface/assets/esm-B2TVBF3B.js +1 -0
  161. package/dist/interface/assets/esm-BEntuCG7.js +1 -0
  162. package/dist/interface/assets/esm-BRnyrFH8.js +1 -0
  163. package/dist/interface/assets/esm-CCwXzd_8.js +1 -0
  164. package/dist/interface/assets/esm-CEjwTsuD.js +1 -0
  165. package/dist/interface/assets/esm-CGGV9tC4.js +1 -0
  166. package/dist/interface/assets/esm-CI2tTOc5.js +1 -0
  167. package/dist/interface/assets/esm-CgxZmMYv.js +1 -0
  168. package/dist/interface/assets/esm-Csc6f5Fy.js +1 -0
  169. package/dist/interface/assets/esm-Qzx3d-Ie.js +1 -0
  170. package/dist/interface/assets/esm-a_w7mTdx.js +1 -0
  171. package/dist/interface/assets/esm-iKfsu7-H.js +1 -0
  172. package/dist/interface/assets/esm-ks5kvk_e.js +1 -0
  173. package/dist/interface/assets/esm-nJfTguKF.js +1 -0
  174. package/dist/interface/assets/eventLabels-idFWh3Y_.js +1 -0
  175. package/dist/interface/assets/eye-off-zGCIHKOK.js +1 -0
  176. package/dist/interface/assets/flowSchema-Dp_-p9WA.js +1 -0
  177. package/dist/interface/assets/help-circle-outline-DXFepDAG.js +1 -0
  178. package/dist/interface/assets/history-D-FlZdKD.js +1 -0
  179. package/dist/interface/assets/home-DPdzRxcM.js +1 -0
  180. package/dist/interface/assets/information-outline-ChOM9qgI.js +1 -0
  181. package/dist/interface/assets/intercomService-BQYzjnAi.js +1 -0
  182. package/dist/interface/assets/lan-DvYEO83l.js +1 -0
  183. package/dist/interface/assets/main-0oXl_8v7.js +3 -0
  184. package/dist/interface/assets/main-CdvAniEp.css +1 -0
  185. package/dist/interface/assets/microphone-D-T9xga4.js +1 -0
  186. package/dist/interface/assets/minus-4T4INuO4.js +1 -0
  187. package/dist/interface/assets/mqtt-ChvXxMhR.js +1 -0
  188. package/dist/interface/assets/native-CtfXrwj5.js +1 -0
  189. package/dist/interface/assets/native-JMtkOkIV.js +1 -0
  190. package/dist/interface/assets/nodeDefinitions-Dp8cnne1.js +1 -0
  191. package/dist/interface/assets/notifications-CbL-1oMs.js +1 -0
  192. package/dist/interface/assets/pause-DHqHYA3V.js +1 -0
  193. package/dist/interface/assets/pencil-outline-D-GmPf8M.js +1 -0
  194. package/dist/interface/assets/pencil-vACi-JzY.js +1 -0
  195. package/dist/interface/assets/plugin-Dt5Xetfz.js +1 -0
  196. package/dist/interface/assets/plugins-lsoAntRQ.js +1 -0
  197. package/dist/interface/assets/plus-BBUb8_uL.js +1 -0
  198. package/dist/interface/assets/plus-BJb7U4bN.js +1 -0
  199. package/dist/interface/assets/power-Dm_aNIz-.js +1 -0
  200. package/dist/interface/assets/radar-Dcvdz--e.js +1 -0
  201. package/dist/interface/assets/refresh-CO4F18Je.js +1 -0
  202. package/dist/interface/assets/restore-xRBt3Grb.js +1 -0
  203. package/dist/interface/assets/rooms-P8WrRIco.js +1 -0
  204. package/dist/interface/assets/round-alt-arrow-left-bold-CZHXzGS5.js +1 -0
  205. package/dist/interface/assets/search-D75YW08B.js +1 -0
  206. package/dist/interface/assets/sensorIcons-BRTtoaHX.js +1 -0
  207. package/dist/interface/assets/sensorSlots-BTj-IM7z.js +1 -0
  208. package/dist/interface/assets/sensors-Dxc7HgjZ.js +1 -0
  209. package/dist/interface/assets/server-DlK8gUoE.js +1 -0
  210. package/dist/interface/assets/settings-DDOgc5BX.js +1 -0
  211. package/dist/interface/assets/source-branch-DVHuYlkZ.js +1 -0
  212. package/dist/interface/assets/theme-BOppzzar.js +1 -0
  213. package/dist/interface/assets/trash-2-DDKPtl2x.js +1 -0
  214. package/dist/interface/assets/trash-can-outline-DVH3zgo0.js +1 -0
  215. package/dist/interface/assets/trash-fill-C_IJ4Vu2.js +1 -0
  216. package/dist/interface/assets/trash2-DY0XTaJD.js +1 -0
  217. package/dist/interface/assets/types-CeruGCb8.js +1 -0
  218. package/dist/interface/assets/types-J1Drrxo1.js +1 -0
  219. package/dist/interface/assets/types-U4AuTNLR.js +1 -0
  220. package/dist/interface/assets/undo-YRkBYCnf.js +1 -0
  221. package/dist/interface/assets/ungrouped-ING_JAuK.js +1 -0
  222. package/dist/interface/assets/updates-DtVp84Y0.js +1 -0
  223. package/dist/interface/assets/upload-2WcHRjTq.js +1 -0
  224. package/dist/interface/assets/upload-BiE7VzTj.js +1 -0
  225. package/dist/interface/assets/useAppVersion-BGgCk5GD.js +1 -0
  226. package/dist/interface/assets/useAssistantActions-C13O5EHU.js +1 -0
  227. package/dist/interface/assets/useBackupRestore-vrhmc9i-.js +1 -0
  228. package/dist/interface/assets/useCameraOptions-CI1baRmm.js +1 -0
  229. package/dist/interface/assets/useKeyboardInset-CvgJp091.js +1 -0
  230. package/dist/interface/assets/useLogsSocket-Bf0BI8ET.js +1 -0
  231. package/dist/interface/assets/useNavLayout-6zM1Y-7B.js +1 -0
  232. package/dist/interface/assets/usePermissions-DZitFsBQ.js +1 -0
  233. package/dist/interface/assets/usePluginUpdates-VZdpJ_Ax.js +1 -0
  234. package/dist/interface/assets/usePushRegistration-vcbMrTxZ.js +2 -0
  235. package/dist/interface/assets/useServerRestart-DrpuNbIu.js +1 -0
  236. package/dist/interface/assets/useStreamStatus-l3Pfk1H4.js +1 -0
  237. package/dist/interface/assets/useTabSwipe-BSpi25WV.js +1 -0
  238. package/dist/interface/assets/useUpdateChannel-kAl-5UNY.js +1 -0
  239. package/dist/interface/assets/useUpdatesSocket-CaFz_fEb.js +1 -0
  240. package/dist/interface/assets/useUserOptions-BKteXnmU.js +1 -0
  241. package/dist/interface/assets/variable-Cp8o-q8t.js +1 -0
  242. package/dist/interface/assets/vendor-Df81FCJz.js +29 -0
  243. package/dist/interface/assets/vendor-ace-QSsGUspX.js +1085 -0
  244. package/dist/interface/assets/vendor-cameraui-K1Nw4PvF.js +2326 -0
  245. package/dist/interface/assets/vendor-capacitor-t5EIN1GG.js +2 -0
  246. package/dist/interface/assets/vendor-chart-BiJYkx5_.js +3 -0
  247. package/dist/interface/assets/vendor-core-CJdfpB0I.js +1 -0
  248. package/dist/interface/assets/vendor-dnd-C1kMh9_t.js +2 -0
  249. package/dist/interface/assets/vendor-draggabilly-Cw1oJ6qc.js +1 -0
  250. package/dist/interface/assets/vendor-leaflet-OSZlONe5.js +1 -0
  251. package/dist/interface/assets/vendor-markdown-DTWiWKBj.js +14 -0
  252. package/dist/interface/assets/vendor-primevue-DoA2Rwcb.js +3942 -0
  253. package/dist/interface/assets/vendor-vueflow-DWU_IzGe.js +26 -0
  254. package/dist/interface/assets/walk-B8FNhXuj.js +1 -0
  255. package/dist/interface/assets/web-B98ahwoP.js +1 -0
  256. package/dist/interface/assets/web-BSsSrRZf.js +1 -0
  257. package/dist/interface/assets/web-BiNRDta4.js +1 -0
  258. package/dist/interface/assets/web-BjKL51lK-CZKmYhby.js +1 -0
  259. package/dist/interface/assets/web-BjtOcquy.js +1 -0
  260. package/dist/interface/assets/web-CkTE9nCG.js +1 -0
  261. package/dist/interface/assets/web-Cvogq5S5.js +1 -0
  262. package/dist/interface/assets/web-D-A4EBKj.js +1 -0
  263. package/dist/interface/assets/web-DVGMBduz.js +1 -0
  264. package/dist/interface/assets/web-SpWB7I6X.js +1 -0
  265. package/dist/interface/assets/web-k0ihT_qK.js +1 -0
  266. package/dist/interface/assets/web-ovBpm7Dl.js +1 -0
  267. package/dist/interface/assets/web-z5Xz9tOQ.js +1 -0
  268. package/dist/interface/assets/web-zfhkFevT.js +1 -0
  269. package/dist/interface/assets/webhook-DIjChTrs.js +1 -0
  270. package/dist/interface/assets/workbox-window.prod.es5-DRKojI0e.js +1 -0
  271. package/dist/interface/assets/zoom-in-rMB152Uz.js +1 -0
  272. package/dist/interface/ha/404-RtgPpD9N.js +60 -0
  273. package/dist/interface/ha/About-0PRv9bU0.js +55 -0
  274. package/dist/interface/ha/Assistant-DbwxVfpl.js +9853 -0
  275. package/dist/interface/ha/Automation-D3HomdH7.js +2029 -0
  276. package/dist/interface/ha/AutomationImport-nQUUvZcv.js +206 -0
  277. package/dist/interface/ha/AutomationStore-BXDD92wZ.js +336 -0
  278. package/dist/interface/ha/AutomationStoreDetail-BYeq7FID.js +122 -0
  279. package/dist/interface/ha/Automations-CJlGqmSP.js +424 -0
  280. package/dist/interface/ha/Camera-Ai4BxVh_.js +747 -0
  281. package/dist/interface/ha/CameraConsole-UMNOX3dE.js +52 -0
  282. package/dist/interface/ha/Cameras-BW-AEXYi.js +1971 -0
  283. package/dist/interface/ha/Camview-jikpVEE0.js +1336 -0
  284. package/dist/interface/ha/Config-BOxwBH2D.js +356 -0
  285. package/dist/interface/ha/ConfigActionAssistant--3iWk9sq.js +182 -0
  286. package/dist/interface/ha/ConfigActionCameraControl-DbVXWTeA.js +152 -0
  287. package/dist/interface/ha/ConfigActionHttp-Du3n2Yj0.js +134 -0
  288. package/dist/interface/ha/ConfigActionImageInput-BrJrTZTY.js +171 -0
  289. package/dist/interface/ha/ConfigActionMqtt-DZd1BNUt.js +81 -0
  290. package/dist/interface/ha/ConfigActionNotification-CJWW10gt.js +199 -0
  291. package/dist/interface/ha/ConfigActionNotificationControl-Bl41AVv1.js +111 -0
  292. package/dist/interface/ha/ConfigActionOutput-OTj7Lwgq.js +98 -0
  293. package/dist/interface/ha/ConfigActionPlugin-B790PEk0.js +172 -0
  294. package/dist/interface/ha/ConfigActionSensor-BG3jZxge.js +139 -0
  295. package/dist/interface/ha/ConfigActionSnapshot-fGmLl6jb.js +48 -0
  296. package/dist/interface/ha/ConfigActionVariable-CK3vYDsr.js +88 -0
  297. package/dist/interface/ha/ConfigConditionIfElse-DyFLGg3y.js +124 -0
  298. package/dist/interface/ha/ConfigConditionSensorState-BUTfeFO2.js +192 -0
  299. package/dist/interface/ha/ConfigConditionSwitch-iDG_ubif.js +128 -0
  300. package/dist/interface/ha/ConfigSensorValueInput-BmRIGUKB.js +170 -0
  301. package/dist/interface/ha/ConfigTriggerDetection-DyPQGt9M.js +241 -0
  302. package/dist/interface/ha/ConfigTriggerGeofence-CGE-bH_t.js +4888 -0
  303. package/dist/interface/ha/ConfigTriggerMqtt-CM3KZqBc.js +134 -0
  304. package/dist/interface/ha/ConfigTriggerSensor-DoHMcwP4.js +73 -0
  305. package/dist/interface/ha/ConfigTriggerSystem-BYKbW4Zr.js +192 -0
  306. package/dist/interface/ha/ConfigTriggerWebhook-5PBAadG8.js +94 -0
  307. package/dist/interface/ha/Console-BEXzl4p1.js +348 -0
  308. package/dist/interface/ha/CuiAutomationRunsDialog-DkK_ar5G.js +130 -0
  309. package/dist/interface/ha/CuiBottomSheet-CYNvQV4T.js +270 -0
  310. package/dist/interface/ha/CuiCameraRecordings-DYjecmE_.js +533 -0
  311. package/dist/interface/ha/CuiCameraShares-C0H60nZS.js +121 -0
  312. package/dist/interface/ha/CuiCameraTable-CQNMyBaq.js +169 -0
  313. package/dist/interface/ha/CuiChartTable-Bhv1p9zj.js +6801 -0
  314. package/dist/interface/ha/CuiConsole-DtXorGF5.js +244 -0
  315. package/dist/interface/ha/CuiDataTable-Cy8EjCk9.js +8732 -0
  316. package/dist/interface/ha/CuiList-DnW6Q5m2.js +57 -0
  317. package/dist/interface/ha/CuiPluginCard-B4SCUblV.js +769 -0
  318. package/dist/interface/ha/CuiPluginOAuthButton-BKg9SftQ.js +79 -0
  319. package/dist/interface/ha/CuiPluginTrustBadge-CEtUJhCJ.js +123 -0
  320. package/dist/interface/ha/CuiQRCode-gp-9hqyk.js +86 -0
  321. package/dist/interface/ha/CuiSchema-CYpr_dD7.js +963 -0
  322. package/dist/interface/ha/CuiTopNavbarItem-CM-1oPxf.js +140 -0
  323. package/dist/interface/ha/Faces-pa60ySng.js +1575 -0
  324. package/dist/interface/ha/FirstSteps-D42yZm7R.js +251 -0
  325. package/dist/interface/ha/Floorplan-BvE546pE.js +3657 -0
  326. package/dist/interface/ha/Instances-CAGCyfbB.js +680 -0
  327. package/dist/interface/ha/Logs-RB3Ba8WM.js +418 -0
  328. package/dist/interface/ha/Menu-hAnHu_jq.js +156 -0
  329. package/dist/interface/ha/Metrics-ChYTebkX.js +1448 -0
  330. package/dist/interface/ha/OAuthDeviceFlow-C05pH-9o.js +112 -0
  331. package/dist/interface/ha/Plugin-D7XwcXkW.js +1752 -0
  332. package/dist/interface/ha/PluginConsole-DphEIOlL.js +56 -0
  333. package/dist/interface/ha/PluginDetail-DfMl-yCl.js +805 -0
  334. package/dist/interface/ha/PluginSearch-BPN4Opg5.js +462 -0
  335. package/dist/interface/ha/PluginUpdateProgress-ByJ0R5sW.js +34 -0
  336. package/dist/interface/ha/Plugins-BhKmjjNn.js +692 -0
  337. package/dist/interface/ha/RecentEventsFilter-BkLMlGVJ.js +78 -0
  338. package/dist/interface/ha/Recordings-BaU7M1OW.js +1836 -0
  339. package/dist/interface/ha/SensorEdit-DWxcCJ0F.js +1462 -0
  340. package/dist/interface/ha/SensorHistory-DuA9E9wT.js +54 -0
  341. package/dist/interface/ha/Sensors-CVpIHcgG.js +1402 -0
  342. package/dist/interface/ha/Settings-BO2eBGEn.js +218 -0
  343. package/dist/interface/ha/SettingsAccount-BQZZfoSM.js +971 -0
  344. package/dist/interface/ha/SettingsAppearance-B_yGl89u.js +220 -0
  345. package/dist/interface/ha/SettingsAssistant-kMOixl9g.js +2025 -0
  346. package/dist/interface/ha/SettingsBackup-BpG-W4j-.js +556 -0
  347. package/dist/interface/ha/SettingsList-Btnkzu94.js +40 -0
  348. package/dist/interface/ha/SettingsMqtt-C4DX9cNC.js +526 -0
  349. package/dist/interface/ha/SettingsNotifications-DI6ImggH.js +529 -0
  350. package/dist/interface/ha/SettingsPermissions-BCDyCFcb.js +84 -0
  351. package/dist/interface/ha/SettingsRecordings-Bq5NkJhd.js +152 -0
  352. package/dist/interface/ha/SettingsRemote-CtncaPIA.js +1813 -0
  353. package/dist/interface/ha/SettingsSystem-BJXuA7xA.js +376 -0
  354. package/dist/interface/ha/SettingsUsers-BF0rDluv.js +379 -0
  355. package/dist/interface/ha/Terminal-kTCe2jP3.js +612 -0
  356. package/dist/interface/ha/Training-BM2Xb8Ef.js +1754 -0
  357. package/dist/interface/ha/Updates-Cv1EY_T0.js +343 -0
  358. package/dist/interface/ha/VariableInput-BO2zZu4N.js +52 -0
  359. package/dist/interface/ha/VersionsHandler-CRnT9-K7.js +216 -0
  360. package/dist/interface/ha/VirtualSensorCreate-6dVRxPjw.js +101 -0
  361. package/dist/interface/ha/Workers-MHia86lu.js +814 -0
  362. package/dist/interface/ha/ace-C9MtBQVV.js +13236 -0
  363. package/dist/interface/ha/ace.config-CSXnaIzV.js +1429 -0
  364. package/dist/interface/ha/api-CH_Y8Hee.js +65411 -0
  365. package/dist/interface/ha/api-DylRa66V.js +29 -0
  366. package/dist/interface/ha/assistant-smRQYA6p.js +349 -0
  367. package/dist/interface/ha/auth-BXj5Fm6s.js +271 -0
  368. package/dist/interface/ha/automationBlueprint-DGjftXFC.js +250 -0
  369. package/dist/interface/ha/cameraui-cards.js +1 -1
  370. package/dist/interface/ha/cards-E0zw1UVg.js +13477 -0
  371. package/dist/interface/ha/config-dG_DA6XL.js +116 -0
  372. package/dist/interface/ha/dist-BQf9ANPx.js +3257 -0
  373. package/dist/interface/ha/dist-euRmladF.js +287 -0
  374. package/dist/interface/ha/eventLabels-B5GrM5jO.js +734 -0
  375. package/dist/interface/ha/intercomService-BtJ_zUNd.js +1400 -0
  376. package/dist/interface/ha/mqtt-CP3vVkRJ.js +56 -0
  377. package/dist/interface/ha/notifications-CZNwSXTg.js +159 -0
  378. package/dist/interface/ha/pinia-CVnHHb-s.js +7696 -0
  379. package/dist/interface/ha/plugins--eatOIaI.js +592 -0
  380. package/dist/interface/ha/protocol-BB4jdtUC-BhEwymva.js +789 -0
  381. package/dist/interface/ha/rooms-D5E6K75d.js +45 -0
  382. package/dist/interface/ha/server-D1BqEY7i.js +239 -0
  383. package/dist/interface/ha/types-CWogEoya.js +1073 -0
  384. package/dist/interface/ha/ungrouped-Ch4UX4dy.js +58 -0
  385. package/dist/interface/ha/updates-B48Owi1w.js +341 -0
  386. package/dist/interface/ha/useAppVersion-D95sKTJR.js +22 -0
  387. package/dist/interface/ha/useAssistantActions-kDwiO-u5.js +29 -0
  388. package/dist/interface/ha/useKeyboardInset-C2R51vsC.js +27 -0
  389. package/dist/interface/ha/useLogsSocket-BzNWa2y2.js +59 -0
  390. package/dist/interface/ha/useNavLayout-228cwwqA.js +125 -0
  391. package/dist/interface/ha/usePermissions-CfA5x7Df.js +72 -0
  392. package/dist/interface/ha/useServerRestart-B0c40zs5.js +23 -0
  393. package/dist/interface/ha/useTabSwipe-CfZg5hWj.js +45 -0
  394. package/dist/interface/ha/useUpdateChannel-DQxI7FrD.js +22 -0
  395. package/dist/interface/ha/useUpdatesSocket-B8LqBBd3.js +34 -0
  396. package/dist/interface/ha/useUserOptions-dZf6ejlz.js +15 -0
  397. package/dist/interface/ha/walk-CsSXaeJw.js +33 -0
  398. package/dist/interface/index.html +71 -72
  399. package/dist/interface/sw.js +1 -1
  400. package/dist/interface/workbox-5f52ac45.js +1 -0
  401. package/dist/server/package.json +23 -23
  402. package/dist/server/requirements.txt +2 -2
  403. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +22 -0
  404. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +12 -0
  405. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/device.py +5 -1
  406. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/camera_config_internal.py +5 -1
  407. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/manager/__init__.py +2 -1
  408. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +10 -0
  409. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +6 -0
  410. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +92 -4
  411. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +16 -0
  412. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +4 -0
  413. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face_embedder.py +1 -1
  414. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/object.py +3 -3
  415. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/person_embedder.py +65 -0
  416. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/segmenter.py +81 -0
  417. package/dist/server/src/api/controllers/plugins.controller.js +1 -0
  418. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  419. package/dist/server/src/api/controllers/workers.controller.d.ts +2 -2
  420. package/dist/server/src/api/controllers/workers.controller.js +8 -2
  421. package/dist/server/src/api/controllers/workers.controller.js.map +1 -1
  422. package/dist/server/src/api/database/index.d.ts +2 -1
  423. package/dist/server/src/api/database/index.js +31 -7
  424. package/dist/server/src/api/database/index.js.map +1 -1
  425. package/dist/server/src/api/database/migrations/v2-2-9.d.ts +3 -0
  426. package/dist/server/src/api/database/migrations/v2-2-9.js +28 -0
  427. package/dist/server/src/api/database/migrations/v2-2-9.js.map +1 -0
  428. package/dist/server/src/api/database/record-schemas.d.ts +4 -1
  429. package/dist/server/src/api/database/record-schemas.js +1 -0
  430. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  431. package/dist/server/src/api/database/types.d.ts +21 -1
  432. package/dist/server/src/api/routes/workers.routes.js +4 -4
  433. package/dist/server/src/api/routes/workers.routes.js.map +1 -1
  434. package/dist/server/src/api/schemas/assistant.schema.d.ts +1 -1
  435. package/dist/server/src/api/schemas/cameras.schema.d.ts +178 -76
  436. package/dist/server/src/api/schemas/cameras.schema.js +26 -2
  437. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  438. package/dist/server/src/api/schemas/training.schema.d.ts +15 -3
  439. package/dist/server/src/api/schemas/training.schema.js +4 -1
  440. package/dist/server/src/api/schemas/training.schema.js.map +1 -1
  441. package/dist/server/src/api/schemas/users.schema.d.ts +12 -0
  442. package/dist/server/src/api/schemas/users.schema.js +4 -0
  443. package/dist/server/src/api/schemas/users.schema.js.map +1 -1
  444. package/dist/server/src/api/schemas/workers.schema.d.ts +5 -4
  445. package/dist/server/src/api/schemas/workers.schema.js +6 -3
  446. package/dist/server/src/api/schemas/workers.schema.js.map +1 -1
  447. package/dist/server/src/api/services/cameras.service.d.ts +3 -0
  448. package/dist/server/src/api/services/cameras.service.js +47 -2
  449. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  450. package/dist/server/src/api/services/plugins.service.d.ts +1 -0
  451. package/dist/server/src/api/services/plugins.service.js +5 -1
  452. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  453. package/dist/server/src/api/services/workers.service.d.ts +2 -0
  454. package/dist/server/src/api/services/workers.service.js +15 -0
  455. package/dist/server/src/api/services/workers.service.js.map +1 -1
  456. package/dist/server/src/api/types/index.d.ts +3 -2
  457. package/dist/server/src/api/websocket/nsp/worker-perf.js +2 -0
  458. package/dist/server/src/api/websocket/nsp/worker-perf.js.map +1 -1
  459. package/dist/server/src/api/websocket/types.d.ts +1 -0
  460. package/dist/server/src/assistant/pricing.js +39 -10
  461. package/dist/server/src/assistant/pricing.js.map +1 -1
  462. package/dist/server/src/assistant/providers.js +9 -1
  463. package/dist/server/src/assistant/providers.js.map +1 -1
  464. package/dist/server/src/assistant/search.d.ts +17 -0
  465. package/dist/server/src/assistant/search.js +10 -2
  466. package/dist/server/src/assistant/search.js.map +1 -1
  467. package/dist/server/src/assistant/tools/plugins.js +7 -3
  468. package/dist/server/src/assistant/tools/plugins.js.map +1 -1
  469. package/dist/server/src/assistant/types.d.ts +2 -0
  470. package/dist/server/src/automations/actions/plugin.js +5 -9
  471. package/dist/server/src/automations/actions/plugin.js.map +1 -1
  472. package/dist/server/src/automations/pluginMethodRegistry.d.ts +6 -0
  473. package/dist/server/src/automations/pluginMethodRegistry.js +39 -0
  474. package/dist/server/src/automations/pluginMethodRegistry.js.map +1 -1
  475. package/dist/server/src/automations/segment-picture.d.ts +16 -0
  476. package/dist/server/src/automations/segment-picture.js +152 -0
  477. package/dist/server/src/automations/segment-picture.js.map +1 -0
  478. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +5 -2
  479. package/dist/server/src/camera/decoder/detection-coordinator.js +45 -22
  480. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  481. package/dist/server/src/camera/decoder/detection-pipeline.d.ts +30 -2
  482. package/dist/server/src/camera/decoder/detection-pipeline.js +81 -21
  483. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  484. package/dist/server/src/camera/decoder/event-manager.d.ts +13 -4
  485. package/dist/server/src/camera/decoder/event-manager.js +108 -128
  486. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  487. package/dist/server/src/camera/decoder/event-trace.d.ts +41 -1
  488. package/dist/server/src/camera/decoder/event-trace.js +63 -8
  489. package/dist/server/src/camera/decoder/event-trace.js.map +1 -1
  490. package/dist/server/src/camera/decoder/face-tracks.d.ts +26 -0
  491. package/dist/server/src/camera/decoder/face-tracks.js +199 -0
  492. package/dist/server/src/camera/decoder/face-tracks.js.map +1 -0
  493. package/dist/server/src/camera/decoder/frame-scaler.d.ts +3 -1
  494. package/dist/server/src/camera/decoder/frame-scaler.js +36 -8
  495. package/dist/server/src/camera/decoder/frame-scaler.js.map +1 -1
  496. package/dist/server/src/camera/decoder/nvr-sink.d.ts +6 -0
  497. package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
  498. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
  499. package/dist/server/src/camera/decoder/perf-tracker.d.ts +2 -0
  500. package/dist/server/src/camera/decoder/perf-tracker.js +4 -0
  501. package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
  502. package/dist/server/src/camera/decoder/ptz/autotracker.d.ts +6 -1
  503. package/dist/server/src/camera/decoder/ptz/autotracker.js +107 -25
  504. package/dist/server/src/camera/decoder/ptz/autotracker.js.map +1 -1
  505. package/dist/server/src/camera/decoder/secondary-stage.d.ts +10 -8
  506. package/dist/server/src/camera/decoder/secondary-stage.js +145 -125
  507. package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
  508. package/dist/server/src/camera/decoder/training-sink.d.ts +5 -2
  509. package/dist/server/src/camera/decoder/training-sink.js +30 -6
  510. package/dist/server/src/camera/decoder/training-sink.js.map +1 -1
  511. package/dist/server/src/camera/decoder/types.d.ts +6 -2
  512. package/dist/server/src/camera/decoder/types.js +4 -2
  513. package/dist/server/src/camera/decoder/types.js.map +1 -1
  514. package/dist/server/src/manager/coreManager.d.ts +2 -1
  515. package/dist/server/src/manager/coreManager.js +9 -2
  516. package/dist/server/src/manager/coreManager.js.map +1 -1
  517. package/dist/server/src/manager/trainingCandidateManager.d.ts +2 -1
  518. package/dist/server/src/manager/trainingCandidateManager.js +25 -3
  519. package/dist/server/src/manager/trainingCandidateManager.js.map +1 -1
  520. package/dist/server/src/manager/trainingSubmission.d.ts +5 -0
  521. package/dist/server/src/manager/trainingSubmission.js +73 -0
  522. package/dist/server/src/manager/trainingSubmission.js.map +1 -0
  523. package/dist/server/src/manager/types.d.ts +8 -2
  524. package/dist/server/src/manager/types.js.map +1 -1
  525. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +1 -1
  526. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -1
  527. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +3 -0
  528. package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +1 -1
  529. package/dist/server/src/plugins/runtime/python/proxy/sensor.py +2 -0
  530. package/dist/server/src/plugins/runtime/python/rpc/typings.py +1 -1
  531. package/dist/server/src/remote/api/routes/train.d.ts +44 -3
  532. package/dist/server/src/remote/api/routes/train.js +2 -2
  533. package/dist/server/src/remote/api/routes/train.js.map +1 -1
  534. package/dist/server/src/rpc/interfaces/core.d.ts +7 -3
  535. package/dist/server/src/rpc/interfaces/detection.d.ts +20 -3
  536. package/dist/server/src/rpc/server.d.ts +2 -0
  537. package/dist/server/src/rpc/server.js +8 -5
  538. package/dist/server/src/rpc/server.js.map +1 -1
  539. package/dist/server/src/sensors/registry.d.ts +3 -0
  540. package/dist/server/src/sensors/registry.js +44 -11
  541. package/dist/server/src/sensors/registry.js.map +1 -1
  542. package/dist/server/src/sensors/types.d.ts +1 -0
  543. package/dist/server/src/sensors/types.js +3 -0
  544. package/dist/server/src/sensors/types.js.map +1 -1
  545. package/dist/server/src/services/config/index.d.ts +1 -0
  546. package/dist/server/src/services/config/index.js +2 -0
  547. package/dist/server/src/services/config/index.js.map +1 -1
  548. package/dist/server/src/utils/image.d.ts +6 -0
  549. package/dist/server/src/utils/image.js +58 -22
  550. package/dist/server/src/utils/image.js.map +1 -1
  551. package/dist/server/src/workers/agent.js +2 -0
  552. package/dist/server/src/workers/agent.js.map +1 -1
  553. package/dist/server/src/workers/manager.d.ts +1 -0
  554. package/dist/server/src/workers/manager.js +22 -0
  555. package/dist/server/src/workers/manager.js.map +1 -1
  556. package/dist/server/src/workers/types.d.ts +5 -0
  557. package/dist/server/src/workers/types.js.map +1 -1
  558. package/npm-shrinkwrap.json +212 -171
  559. package/package.json +23 -23
  560. package/dist/interface/assets/404-C8EoOtBl.js +0 -1
  561. package/dist/interface/assets/About-Q7ZmOGgl.js +0 -1
  562. package/dist/interface/assets/Assistant-BQ6Ld-bt.css +0 -1
  563. package/dist/interface/assets/Assistant-DFLgklVe.js +0 -1
  564. package/dist/interface/assets/Automation-BSicfOGF.css +0 -1
  565. package/dist/interface/assets/Automation-D__qvx8c.js +0 -3
  566. package/dist/interface/assets/AutomationImport-CLQSdqg9.js +0 -2
  567. package/dist/interface/assets/AutomationStore-Dt6yTQDb.js +0 -2
  568. package/dist/interface/assets/AutomationStoreDetail-DqBrBhUI.js +0 -2
  569. package/dist/interface/assets/Automations-BH_7lYR7.js +0 -2
  570. package/dist/interface/assets/Camera-BW9ikKqh.css +0 -1
  571. package/dist/interface/assets/Camera-aquPHFwb.js +0 -2
  572. package/dist/interface/assets/CameraConsole-rhle_cfW.js +0 -7
  573. package/dist/interface/assets/Cameras-Bzy3P0xN.js +0 -651
  574. package/dist/interface/assets/Camview-Bri_T7Tq.css +0 -1
  575. package/dist/interface/assets/Camview-CjcQbtTl.js +0 -1
  576. package/dist/interface/assets/CertificateUpload-CWVu_52v.js +0 -1
  577. package/dist/interface/assets/Config-Dc1zKIPq.js +0 -2
  578. package/dist/interface/assets/ConfigActionAssistant-AfQfSqHZ.js +0 -1
  579. package/dist/interface/assets/ConfigActionCameraControl-BKQdHxqe.js +0 -1
  580. package/dist/interface/assets/ConfigActionDelay-B52HeJGb.js +0 -1
  581. package/dist/interface/assets/ConfigActionHttp-BP5gvpQc.js +0 -1
  582. package/dist/interface/assets/ConfigActionImageInput-DE2mSost.js +0 -1
  583. package/dist/interface/assets/ConfigActionMqtt-CYgnZjAE.js +0 -1
  584. package/dist/interface/assets/ConfigActionNotification-C3q53I4n.js +0 -1
  585. package/dist/interface/assets/ConfigActionNotificationControl-eDJ8r5ao.js +0 -1
  586. package/dist/interface/assets/ConfigActionOutput-DgYSYvy-.js +0 -1
  587. package/dist/interface/assets/ConfigActionPlugin-utolgAXk.js +0 -1
  588. package/dist/interface/assets/ConfigActionSensor-CmEKQPqs.js +0 -1
  589. package/dist/interface/assets/ConfigActionSnapshot-D7XucxVV.js +0 -1
  590. package/dist/interface/assets/ConfigActionVariable-C-Mjm3gr.js +0 -1
  591. package/dist/interface/assets/ConfigConditionIfElse-B24Rqb8y.js +0 -1
  592. package/dist/interface/assets/ConfigConditionSensorState-42-yFDmK.js +0 -1
  593. package/dist/interface/assets/ConfigConditionSwitch-DezH_nwm.js +0 -1
  594. package/dist/interface/assets/ConfigConditionTime-Cg2Lwznd.js +0 -1
  595. package/dist/interface/assets/ConfigSensorValueInput-YHBDCTZm.js +0 -1
  596. package/dist/interface/assets/ConfigTriggerDetection-DxEpodjG.js +0 -1
  597. package/dist/interface/assets/ConfigTriggerGeofence-Bye8syxc.js +0 -1
  598. package/dist/interface/assets/ConfigTriggerManual-s_lEDTV9.js +0 -1
  599. package/dist/interface/assets/ConfigTriggerMqtt-DqdZj7TU.js +0 -1
  600. package/dist/interface/assets/ConfigTriggerSchedule-Q559hn6g.js +0 -1
  601. package/dist/interface/assets/ConfigTriggerSensor-DIKkdbTF.js +0 -1
  602. package/dist/interface/assets/ConfigTriggerSystem-CwNZ4xEg.js +0 -1
  603. package/dist/interface/assets/ConfigTriggerWebhook-9ZC6X4mK.js +0 -1
  604. package/dist/interface/assets/Console-BqIDZ5vq.js +0 -1
  605. package/dist/interface/assets/CuiAssistantConversation-BmBhwrNh.css +0 -1
  606. package/dist/interface/assets/CuiAssistantConversation-CM7KdaX2.js +0 -5
  607. package/dist/interface/assets/CuiAutomationRunsDialog-CVjCLiVW.js +0 -1
  608. package/dist/interface/assets/CuiBottomSheet-CFohFiO2.js +0 -1
  609. package/dist/interface/assets/CuiBottomSheet-D75L0Zny.js +0 -1
  610. package/dist/interface/assets/CuiCameraPipCard-BQKk4fxY.css +0 -1
  611. package/dist/interface/assets/CuiCameraPipCard-eiJjYZ5W.js +0 -1
  612. package/dist/interface/assets/CuiCameraRecordings-DdEWkJrO.js +0 -1
  613. package/dist/interface/assets/CuiCameraShares-8mtgFsQ_.js +0 -1
  614. package/dist/interface/assets/CuiCameraTable-CmCT-XQF.js +0 -2
  615. package/dist/interface/assets/CuiCameraTable-DHrKoD9s.js +0 -1
  616. package/dist/interface/assets/CuiChartTable-v8sGY6PD.js +0 -1
  617. package/dist/interface/assets/CuiConsole-DYV-FUE0.js +0 -5
  618. package/dist/interface/assets/CuiDataTable-C0gsYYpg.js +0 -1
  619. package/dist/interface/assets/CuiLightControl-CFIwBj3C.js +0 -1
  620. package/dist/interface/assets/CuiList-9TVV8SB6.js +0 -1
  621. package/dist/interface/assets/CuiMarkdownContent-BYBQX_aF.js +0 -1
  622. package/dist/interface/assets/CuiMarkdownContent-DTAm-EDR.js +0 -1
  623. package/dist/interface/assets/CuiPluginCard-DEfqwUhQ.js +0 -2
  624. package/dist/interface/assets/CuiPluginCategoryChip-DhnIBJHa.js +0 -1
  625. package/dist/interface/assets/CuiPluginOAuthButton-DAuzNRAA.js +0 -2
  626. package/dist/interface/assets/CuiPluginTrustBadge-Bz710WwC.js +0 -1
  627. package/dist/interface/assets/CuiQRCode-B8-4GHSY.js +0 -1
  628. package/dist/interface/assets/CuiSchema-C_CHuKuf.js +0 -1
  629. package/dist/interface/assets/CuiTopNavbarItem-CNEnOPSh.js +0 -1
  630. package/dist/interface/assets/Faces-DRHMrrxh.js +0 -1
  631. package/dist/interface/assets/FirstSteps-Ci2Iqbe2.js +0 -1
  632. package/dist/interface/assets/Floorplan-Ci63Zd8W.css +0 -1
  633. package/dist/interface/assets/Floorplan-CqWIbDbh.js +0 -1
  634. package/dist/interface/assets/Instances-gzKFKB1l.js +0 -1
  635. package/dist/interface/assets/Logs-DL1yw_Pe.js +0 -6
  636. package/dist/interface/assets/Menu-C0GQ63aj.js +0 -1
  637. package/dist/interface/assets/Metrics-BYnnb7M0.js +0 -12
  638. package/dist/interface/assets/Metrics-DsHBab6t.css +0 -1
  639. package/dist/interface/assets/OAuthDeviceFlow-Zd6r9IHU.js +0 -1
  640. package/dist/interface/assets/Plugin-DJIrYUnZ.js +0 -1
  641. package/dist/interface/assets/Plugin-Qr_Q_Qfi.css +0 -1
  642. package/dist/interface/assets/PluginConsole-ag0jPZQ_.js +0 -7
  643. package/dist/interface/assets/PluginDetail-DmElwUuV.js +0 -2
  644. package/dist/interface/assets/PluginSchema-CxUujnVs.js +0 -1
  645. package/dist/interface/assets/PluginSearch-B-2zH2Xy.js +0 -1
  646. package/dist/interface/assets/PluginSearch-BqzngVRL.js +0 -2
  647. package/dist/interface/assets/PluginUpdateProgress-CFut0RAe.js +0 -1
  648. package/dist/interface/assets/Plugins-ZFcB_j6v.js +0 -1
  649. package/dist/interface/assets/RecentEventsFilter-CqeHhECT.js +0 -1
  650. package/dist/interface/assets/Recordings-BEKAn6QK.css +0 -1
  651. package/dist/interface/assets/Recordings-BJrtW9eG.js +0 -1
  652. package/dist/interface/assets/SensorEdit-Bi0gg-CL.js +0 -1
  653. package/dist/interface/assets/SensorHistory-q0UR3qMG.js +0 -1
  654. package/dist/interface/assets/Sensors-C_InhcHA.js +0 -2
  655. package/dist/interface/assets/Settings-Cv38rGWn.js +0 -1
  656. package/dist/interface/assets/Settings-D7495zbV.css +0 -1
  657. package/dist/interface/assets/SettingsAccount-B05739dn.js +0 -1
  658. package/dist/interface/assets/SettingsAccount-gm28wtbl.js +0 -1
  659. package/dist/interface/assets/SettingsAppearance-DdyYUgmV.js +0 -1
  660. package/dist/interface/assets/SettingsAppearance-DwUknDPV.js +0 -1
  661. package/dist/interface/assets/SettingsAssistant-ChHfkUKk.js +0 -1
  662. package/dist/interface/assets/SettingsBackup-DKwlPQhD.js +0 -1
  663. package/dist/interface/assets/SettingsList-D6hqnvUo.js +0 -1
  664. package/dist/interface/assets/SettingsMqtt-C01fgLY0.js +0 -1
  665. package/dist/interface/assets/SettingsNotifications-D47cIquQ.js +0 -1
  666. package/dist/interface/assets/SettingsPermissions-BeTCTrAf.js +0 -1
  667. package/dist/interface/assets/SettingsRecordings-mwL6Dalr.js +0 -1
  668. package/dist/interface/assets/SettingsRemote-CtP6Gz9C.css +0 -1
  669. package/dist/interface/assets/SettingsRemote-MhaShPIf.js +0 -2
  670. package/dist/interface/assets/SettingsSystem-BXnzXgqm.js +0 -2
  671. package/dist/interface/assets/SettingsUsers-D2mVlJin.js +0 -1
  672. package/dist/interface/assets/Terminal-C1UoXDRK.js +0 -4
  673. package/dist/interface/assets/Training-A5ynOv_l.js +0 -1
  674. package/dist/interface/assets/Training-C-ToeAl4.css +0 -1
  675. package/dist/interface/assets/Updates-kS_Tm8HD.js +0 -2
  676. package/dist/interface/assets/VariableInput-D9PfI8Ut.js +0 -1
  677. package/dist/interface/assets/VariableSuggestions-DArWzQuE.js +0 -1
  678. package/dist/interface/assets/VersionsHandler-BZVMpB2v.js +0 -7
  679. package/dist/interface/assets/VirtualSensorCreate-Cz-QFo4R.js +0 -1
  680. package/dist/interface/assets/Workers-2sc4VMi9.js +0 -2
  681. package/dist/interface/assets/Workers-DH59zE1C.css +0 -1
  682. package/dist/interface/assets/account-DwW7pBOb.js +0 -1
  683. package/dist/interface/assets/ace-DzzM-RlW.js +0 -1
  684. package/dist/interface/assets/ace.config-CCyX_Ohk.js +0 -1
  685. package/dist/interface/assets/alert-circle-BdUVAt1B.js +0 -1
  686. package/dist/interface/assets/alert-outline-IRxYbw0j.js +0 -1
  687. package/dist/interface/assets/api-CGfJbsTz.css +0 -2
  688. package/dist/interface/assets/api-CzwdnGAH.js +0 -1
  689. package/dist/interface/assets/api-DOpXVpef.js +0 -4
  690. package/dist/interface/assets/arrow-left-Bk-ZrOVr.js +0 -1
  691. package/dist/interface/assets/assistant-hGCAgv-f.js +0 -1
  692. package/dist/interface/assets/assistantModels-BsSgRsws.js +0 -1
  693. package/dist/interface/assets/auth-By-S-WEr.js +0 -1
  694. package/dist/interface/assets/automations-vwIwb2PQ.js +0 -1
  695. package/dist/interface/assets/back-filled-D-X19YMO.js +0 -1
  696. package/dist/interface/assets/bell-ring-DreEHgoT.js +0 -1
  697. package/dist/interface/assets/brain-DuDAg544.js +0 -1
  698. package/dist/interface/assets/cameraSources-BMhXvtFt.js +0 -1
  699. package/dist/interface/assets/cctv-DM-C_8_6.js +0 -1
  700. package/dist/interface/assets/check-circle-Bevuw8-0.js +0 -1
  701. package/dist/interface/assets/check-circle-outline-aMxkvksr.js +0 -1
  702. package/dist/interface/assets/chevron-down-CCFn9Z56.js +0 -1
  703. package/dist/interface/assets/chevron-up-CSImUM3_.js +0 -1
  704. package/dist/interface/assets/clock-outline-DH3WIEJt.js +0 -1
  705. package/dist/interface/assets/close-CMxyM4v9.js +0 -1
  706. package/dist/interface/assets/close-circle-CfgJCZ9A.js +0 -1
  707. package/dist/interface/assets/cloud-check-CbdFLIdR.js +0 -1
  708. package/dist/interface/assets/cloudHandoff-BnzjCpJ2.js +0 -1
  709. package/dist/interface/assets/config-BQxEwrK6.js +0 -1
  710. package/dist/interface/assets/content-copy-Bz49QPOI.js +0 -1
  711. package/dist/interface/assets/copy-DA6QQHRt.js +0 -1
  712. package/dist/interface/assets/cube-scan-IiH8zwm2.js +0 -1
  713. package/dist/interface/assets/database-refresh-outline-CIUDpcuq.js +0 -1
  714. package/dist/interface/assets/delete-Btu-UVx9.js +0 -1
  715. package/dist/interface/assets/dist-D_qWDAKp.js +0 -1
  716. package/dist/interface/assets/dots-vertical-D496SIss.js +0 -1
  717. package/dist/interface/assets/download-BSC7lwq_.js +0 -1
  718. package/dist/interface/assets/esm-Bn9gXwX4.js +0 -1
  719. package/dist/interface/assets/esm-BzM6y2-F.js +0 -1
  720. package/dist/interface/assets/esm-CP3JWrtj.js +0 -1
  721. package/dist/interface/assets/esm-CjAXkqCf.js +0 -1
  722. package/dist/interface/assets/esm-Cqxk-j1S.js +0 -1
  723. package/dist/interface/assets/esm-DFHd3JNU.js +0 -1
  724. package/dist/interface/assets/esm-DfMLJtug.js +0 -1
  725. package/dist/interface/assets/esm-DhDrpq7a.js +0 -1
  726. package/dist/interface/assets/esm-DvhM-SOd.js +0 -1
  727. package/dist/interface/assets/esm-G63bqygQ.js +0 -1
  728. package/dist/interface/assets/esm-Gn-Y59hU.js +0 -1
  729. package/dist/interface/assets/esm-KJSOz2vj.js +0 -1
  730. package/dist/interface/assets/esm-Ryfc94Tm.js +0 -1
  731. package/dist/interface/assets/esm-rSfI5Poy.js +0 -1
  732. package/dist/interface/assets/eventIcons-UQutPG3p.js +0 -1
  733. package/dist/interface/assets/eventLabels-BsPoPWS9.js +0 -1
  734. package/dist/interface/assets/eye-off-CSU0U8g7.js +0 -1
  735. package/dist/interface/assets/eye-off-outline-DCxLRGo_.js +0 -1
  736. package/dist/interface/assets/flowSchema-BPq6iHks.js +0 -1
  737. package/dist/interface/assets/help-circle-outline-Cr_yNhPi.js +0 -1
  738. package/dist/interface/assets/history-anuCbp1T.js +0 -1
  739. package/dist/interface/assets/home-N3bDR1vX.js +0 -1
  740. package/dist/interface/assets/information-outline-CMWIvLNB.js +0 -1
  741. package/dist/interface/assets/intercomService-CXcjcPa9.js +0 -1
  742. package/dist/interface/assets/lan-CYXjdk7L.js +0 -1
  743. package/dist/interface/assets/main-By4L33Im.js +0 -3
  744. package/dist/interface/assets/main-DVa5U7UB.css +0 -1
  745. package/dist/interface/assets/microphone-BB2pATI_.js +0 -1
  746. package/dist/interface/assets/minus-BCp3ZNKO.js +0 -1
  747. package/dist/interface/assets/mqtt-DE1KQ8Td.js +0 -1
  748. package/dist/interface/assets/native-CZJE8bTs.js +0 -1
  749. package/dist/interface/assets/native-DKZwialB.js +0 -1
  750. package/dist/interface/assets/nodeDefinitions-ByrqsENY.js +0 -1
  751. package/dist/interface/assets/notifications-BCyiD-TP.js +0 -1
  752. package/dist/interface/assets/pause-BQlxwAW2.js +0 -1
  753. package/dist/interface/assets/pencil-CDsNnEXi.js +0 -1
  754. package/dist/interface/assets/pencil-outline-CIQL5Kui.js +0 -1
  755. package/dist/interface/assets/plugin-DSEMkqaK.js +0 -1
  756. package/dist/interface/assets/plugins-BJPCV1YL.js +0 -1
  757. package/dist/interface/assets/plus-Bp4q9G7S.js +0 -1
  758. package/dist/interface/assets/plus-CySoovdr.js +0 -1
  759. package/dist/interface/assets/power-WmBLDR0-.js +0 -1
  760. package/dist/interface/assets/radar-CyYAmume.js +0 -1
  761. package/dist/interface/assets/refresh-CHTA3jVN.js +0 -1
  762. package/dist/interface/assets/restore-C8RNM5yX.js +0 -1
  763. package/dist/interface/assets/rooms-Dr4yiakO.js +0 -1
  764. package/dist/interface/assets/round-alt-arrow-left-bold-Gh5mi_yR.js +0 -1
  765. package/dist/interface/assets/search-BajCVmOI.js +0 -1
  766. package/dist/interface/assets/sensorIcons-DofElQ3w.js +0 -1
  767. package/dist/interface/assets/sensorSlots-D2KJGvPw.js +0 -1
  768. package/dist/interface/assets/sensors-3llrL7s3.js +0 -1
  769. package/dist/interface/assets/server-Dw5DD473.js +0 -1
  770. package/dist/interface/assets/settings-DnksaK7m.js +0 -1
  771. package/dist/interface/assets/source-branch-CzqIPffP.js +0 -1
  772. package/dist/interface/assets/theme-C85LJhOY.js +0 -1
  773. package/dist/interface/assets/trash-2-DJeEhHf4.js +0 -1
  774. package/dist/interface/assets/trash-can-outline-DrT6iw7I.js +0 -1
  775. package/dist/interface/assets/trash-fill-Bb_-UicM.js +0 -1
  776. package/dist/interface/assets/trash2-Dsl8gfxq.js +0 -1
  777. package/dist/interface/assets/types-CPhy0Ovw.js +0 -1
  778. package/dist/interface/assets/types-DYKmSGl4.js +0 -1
  779. package/dist/interface/assets/types-i1kTodPP.js +0 -1
  780. package/dist/interface/assets/undo-DoqJW-k7.js +0 -1
  781. package/dist/interface/assets/ungrouped-BlheTJCh.css +0 -1
  782. package/dist/interface/assets/ungrouped-C2CWO39a.js +0 -1
  783. package/dist/interface/assets/updates-C2LhMkNR.js +0 -1
  784. package/dist/interface/assets/upload-C3w1XH-o.js +0 -1
  785. package/dist/interface/assets/upload-DtIcwiNC.js +0 -1
  786. package/dist/interface/assets/useAppVersion-DkazK9Vu.js +0 -1
  787. package/dist/interface/assets/useAssistantActions-BZP6NL18.js +0 -1
  788. package/dist/interface/assets/useBackupRestore-DMQW_CVC.js +0 -1
  789. package/dist/interface/assets/useCameraOptions-DnI0xLrX.js +0 -1
  790. package/dist/interface/assets/useKeyboardInset-Cr7SxKGN.js +0 -1
  791. package/dist/interface/assets/useLogsSocket-C3Y8S0Ar.js +0 -1
  792. package/dist/interface/assets/useNavLayout-C9pcDuVP.js +0 -1
  793. package/dist/interface/assets/usePermissions-CCTxwXF0.js +0 -1
  794. package/dist/interface/assets/usePluginUpdates-DBhLWAua.js +0 -1
  795. package/dist/interface/assets/usePushRegistration-CPRVdLAx.js +0 -2
  796. package/dist/interface/assets/useServerRestart-bScBLJ9r.js +0 -1
  797. package/dist/interface/assets/useStreamStatus-Bfh-WmLH.js +0 -1
  798. package/dist/interface/assets/useTabSwipe-C_QOrvSW.js +0 -1
  799. package/dist/interface/assets/useUpdateChannel-g0h_4c55.js +0 -1
  800. package/dist/interface/assets/useUpdatesSocket-CxrLRETs.js +0 -1
  801. package/dist/interface/assets/useUserOptions-DN0t3gBr.js +0 -1
  802. package/dist/interface/assets/variable-ywTlRfo5.js +0 -1
  803. package/dist/interface/assets/vendor-ace-CvEoip98.js +0 -1085
  804. package/dist/interface/assets/vendor-cameraui-B28aGJJD.js +0 -2326
  805. package/dist/interface/assets/vendor-capacitor-Bs_WzL0Q.js +0 -2
  806. package/dist/interface/assets/vendor-chart-DBK083Hu.js +0 -3
  807. package/dist/interface/assets/vendor-core-DIa0tPNH.js +0 -1
  808. package/dist/interface/assets/vendor-dnd-DGQLvX6Y.js +0 -2
  809. package/dist/interface/assets/vendor-draggabilly-D8CK6M-y.js +0 -1
  810. package/dist/interface/assets/vendor-gFkr2qsZ.js +0 -23
  811. package/dist/interface/assets/vendor-leaflet-DkAk6mAj.js +0 -1
  812. package/dist/interface/assets/vendor-markdown-qHIinIUE.js +0 -14
  813. package/dist/interface/assets/vendor-primevue-CZKUAkMA.js +0 -3942
  814. package/dist/interface/assets/vendor-vueflow-bSwRZ9X8.js +0 -26
  815. package/dist/interface/assets/web-BDNQnMmA.js +0 -1
  816. package/dist/interface/assets/web-B_9Qyt8E.js +0 -1
  817. package/dist/interface/assets/web-BhJykCtq.js +0 -1
  818. package/dist/interface/assets/web-BjKL51lK-wWFeZlLg.js +0 -1
  819. package/dist/interface/assets/web-C7nJwIOa.js +0 -1
  820. package/dist/interface/assets/web-CGJsJQDb.js +0 -1
  821. package/dist/interface/assets/web-CJwASxrl.js +0 -1
  822. package/dist/interface/assets/web-CLe0L31Y.js +0 -1
  823. package/dist/interface/assets/web-DEv1hAn1.js +0 -1
  824. package/dist/interface/assets/web-DaeQvsXT.js +0 -1
  825. package/dist/interface/assets/web-H3-wNunW.js +0 -1
  826. package/dist/interface/assets/web-LCdyqJq1.js +0 -1
  827. package/dist/interface/assets/web-XZWYTK65.js +0 -1
  828. package/dist/interface/assets/web-rU5hlxxW.js +0 -1
  829. package/dist/interface/assets/webhook-CWKf2Qxu.js +0 -1
  830. package/dist/interface/assets/workbox-window.prod.es5-BEYAF-e-.js +0 -1
  831. package/dist/interface/assets/zoom-in-CHkXAWHy.js +0 -1
  832. package/dist/interface/ha/404-tl2VQ3qy.js +0 -60
  833. package/dist/interface/ha/About-Cn7KOblU.js +0 -55
  834. package/dist/interface/ha/Assistant-DG2GGda0.js +0 -9361
  835. package/dist/interface/ha/Automation-D0_WpXx4.js +0 -2025
  836. package/dist/interface/ha/AutomationImport-DdC3dEaC.js +0 -206
  837. package/dist/interface/ha/AutomationStore-BrLn4oBx.js +0 -336
  838. package/dist/interface/ha/AutomationStoreDetail-DoppNsNc.js +0 -122
  839. package/dist/interface/ha/Automations-BaUJ9pVq.js +0 -424
  840. package/dist/interface/ha/Camera-Cj5ImvZG.js +0 -657
  841. package/dist/interface/ha/CameraConsole-7MhlS2VK.js +0 -52
  842. package/dist/interface/ha/Cameras-vHYz8uSO.js +0 -1969
  843. package/dist/interface/ha/Camview-BEglAx26.js +0 -1331
  844. package/dist/interface/ha/Config-CHiK--zP.js +0 -356
  845. package/dist/interface/ha/ConfigActionAssistant-DynduZYV.js +0 -182
  846. package/dist/interface/ha/ConfigActionCameraControl-BEYePssz.js +0 -152
  847. package/dist/interface/ha/ConfigActionHttp-h0vRWqZ5.js +0 -134
  848. package/dist/interface/ha/ConfigActionImageInput-B9GMZYAR.js +0 -171
  849. package/dist/interface/ha/ConfigActionMqtt-BEQpHBgf.js +0 -81
  850. package/dist/interface/ha/ConfigActionNotification-BYsz8_aS.js +0 -199
  851. package/dist/interface/ha/ConfigActionNotificationControl-BxmIWVE8.js +0 -111
  852. package/dist/interface/ha/ConfigActionOutput-DTOQSa1S.js +0 -98
  853. package/dist/interface/ha/ConfigActionPlugin-NOsUs3QI.js +0 -172
  854. package/dist/interface/ha/ConfigActionSensor-YWnsH_LV.js +0 -139
  855. package/dist/interface/ha/ConfigActionSnapshot-DHJnTvin.js +0 -48
  856. package/dist/interface/ha/ConfigActionVariable-C7UFnvW0.js +0 -88
  857. package/dist/interface/ha/ConfigConditionIfElse-CAHbuhH3.js +0 -124
  858. package/dist/interface/ha/ConfigConditionSensorState-CE6okUeb.js +0 -192
  859. package/dist/interface/ha/ConfigConditionSwitch-D5FULaTy.js +0 -128
  860. package/dist/interface/ha/ConfigSensorValueInput-mo6Gs_aZ.js +0 -170
  861. package/dist/interface/ha/ConfigTriggerDetection-Bt-OhHtM.js +0 -241
  862. package/dist/interface/ha/ConfigTriggerGeofence-Cw3jV5qD.js +0 -4888
  863. package/dist/interface/ha/ConfigTriggerMqtt-BXeV82UG.js +0 -134
  864. package/dist/interface/ha/ConfigTriggerSensor-Baqq--nJ.js +0 -73
  865. package/dist/interface/ha/ConfigTriggerSystem-braUVGzW.js +0 -192
  866. package/dist/interface/ha/ConfigTriggerWebhook-Dm45r-1C.js +0 -94
  867. package/dist/interface/ha/Console-q3TCsxYo.js +0 -348
  868. package/dist/interface/ha/CuiAutomationRunsDialog-DO6h5Tc4.js +0 -130
  869. package/dist/interface/ha/CuiBottomSheet-B7ldz0xi.js +0 -270
  870. package/dist/interface/ha/CuiCameraRecordings-Dq1Vh3qA.js +0 -551
  871. package/dist/interface/ha/CuiCameraShares-DBqcpevG.js +0 -121
  872. package/dist/interface/ha/CuiCameraTable-kL8rK-Uv.js +0 -169
  873. package/dist/interface/ha/CuiChartTable-BrFyiSt_.js +0 -6801
  874. package/dist/interface/ha/CuiConsole-DpeXZmJd.js +0 -244
  875. package/dist/interface/ha/CuiDataTable-BtqzIz0o.js +0 -8732
  876. package/dist/interface/ha/CuiList-CU2NJ1K6.js +0 -57
  877. package/dist/interface/ha/CuiPluginCard-lBLypaN4.js +0 -769
  878. package/dist/interface/ha/CuiPluginOAuthButton-CuGauZJA.js +0 -79
  879. package/dist/interface/ha/CuiPluginTrustBadge-BofBmRYc.js +0 -123
  880. package/dist/interface/ha/CuiQRCode-CdK9bwKb.js +0 -86
  881. package/dist/interface/ha/CuiSchema-DqkCLv9Y.js +0 -963
  882. package/dist/interface/ha/CuiTopNavbarItem-C2VZB7WV.js +0 -140
  883. package/dist/interface/ha/Faces-Crfi-75Z.js +0 -1441
  884. package/dist/interface/ha/FirstSteps-CKVG86pf.js +0 -251
  885. package/dist/interface/ha/Floorplan-CH9_-6hk.js +0 -3657
  886. package/dist/interface/ha/Instances-5gZdPPDA.js +0 -680
  887. package/dist/interface/ha/Logs-BkzEM70F.js +0 -418
  888. package/dist/interface/ha/Menu-BuT3_Ggx.js +0 -156
  889. package/dist/interface/ha/Metrics-BGrzu0bu.js +0 -1447
  890. package/dist/interface/ha/OAuthDeviceFlow-BEJtegqy.js +0 -112
  891. package/dist/interface/ha/Plugin-Bnp2jiC2.js +0 -1544
  892. package/dist/interface/ha/PluginConsole-CmsuPVMz.js +0 -56
  893. package/dist/interface/ha/PluginDetail-BCNx7vHr.js +0 -805
  894. package/dist/interface/ha/PluginSearch-DOdhuxgM.js +0 -462
  895. package/dist/interface/ha/PluginUpdateProgress-CwkKc8Tr.js +0 -34
  896. package/dist/interface/ha/Plugins-BrFowCdC.js +0 -692
  897. package/dist/interface/ha/RecentEventsFilter-9ZkDHD1g.js +0 -79
  898. package/dist/interface/ha/Recordings-BZhf39pJ.js +0 -1539
  899. package/dist/interface/ha/SensorEdit-Ds6WbN4A.js +0 -1462
  900. package/dist/interface/ha/SensorHistory-CoTIYTJx.js +0 -54
  901. package/dist/interface/ha/Sensors-DZ2MKdlh.js +0 -1400
  902. package/dist/interface/ha/Settings-D3JKr430.js +0 -218
  903. package/dist/interface/ha/SettingsAccount-cvtlSKZw.js +0 -971
  904. package/dist/interface/ha/SettingsAppearance-CaKuOHRu.js +0 -220
  905. package/dist/interface/ha/SettingsAssistant-vWVjAUqQ.js +0 -2025
  906. package/dist/interface/ha/SettingsBackup-CvzL_bVf.js +0 -556
  907. package/dist/interface/ha/SettingsList-C0Ec8x-H.js +0 -40
  908. package/dist/interface/ha/SettingsMqtt-COnq-QM5.js +0 -526
  909. package/dist/interface/ha/SettingsNotifications-BZ68bQzO.js +0 -529
  910. package/dist/interface/ha/SettingsPermissions-Jh0FuIF7.js +0 -84
  911. package/dist/interface/ha/SettingsRecordings-BPtNNpDa.js +0 -152
  912. package/dist/interface/ha/SettingsRemote-BXG8IYjf.js +0 -1810
  913. package/dist/interface/ha/SettingsSystem-_jHBUhws.js +0 -376
  914. package/dist/interface/ha/SettingsUsers-CzGj_RJN.js +0 -379
  915. package/dist/interface/ha/Terminal-BP3b8IBP.js +0 -612
  916. package/dist/interface/ha/Training-C2-6DgY0.js +0 -1699
  917. package/dist/interface/ha/Updates-BMZsEhmy.js +0 -343
  918. package/dist/interface/ha/VariableInput-DmI7skCD.js +0 -52
  919. package/dist/interface/ha/VersionsHandler-DJd4NqtD.js +0 -216
  920. package/dist/interface/ha/VirtualSensorCreate-DmtGYvAn.js +0 -101
  921. package/dist/interface/ha/Workers-2HTPHgKV.js +0 -765
  922. package/dist/interface/ha/ace-B3bPzJu9.js +0 -13236
  923. package/dist/interface/ha/ace.config-Dt55Nqby.js +0 -1429
  924. package/dist/interface/ha/api-BelbnLQO.js +0 -62346
  925. package/dist/interface/ha/api-sy4rqV2N.js +0 -29
  926. package/dist/interface/ha/assistant-C6KYXJfi.js +0 -349
  927. package/dist/interface/ha/auth-Da66mVEd.js +0 -271
  928. package/dist/interface/ha/automationBlueprint-hlqqM17r.js +0 -250
  929. package/dist/interface/ha/cards-BFRRfuM7.js +0 -13436
  930. package/dist/interface/ha/config-Cd7JNMpD.js +0 -116
  931. package/dist/interface/ha/dist-BIngHzHx.js +0 -287
  932. package/dist/interface/ha/dist-BybVYMVs.js +0 -3248
  933. package/dist/interface/ha/eventIcons-BFNUgeGr.js +0 -676
  934. package/dist/interface/ha/eventLabels-B4C1_4vT.js +0 -42
  935. package/dist/interface/ha/eye-off-outline-ACbzsGuK.js +0 -19
  936. package/dist/interface/ha/intercomService-B7HkLs6z.js +0 -1414
  937. package/dist/interface/ha/mqtt-UZfptWJl.js +0 -56
  938. package/dist/interface/ha/notifications-DTHM8fS-.js +0 -159
  939. package/dist/interface/ha/pinia-BokSpDzj.js +0 -7656
  940. package/dist/interface/ha/plugins-Bwp_GfaX.js +0 -592
  941. package/dist/interface/ha/protocol-BB4jdtUC-DW3jl2tV.js +0 -708
  942. package/dist/interface/ha/rooms-BvaD0r0q.js +0 -45
  943. package/dist/interface/ha/server-OWdtITVa.js +0 -239
  944. package/dist/interface/ha/types-BFJjyMZe.js +0 -1073
  945. package/dist/interface/ha/ungrouped-x00DHNHO.js +0 -1311
  946. package/dist/interface/ha/updates-C03Qf3Il.js +0 -341
  947. package/dist/interface/ha/useAppVersion-CrMd9CC9.js +0 -22
  948. package/dist/interface/ha/useAssistantActions-S1FrNe9b.js +0 -29
  949. package/dist/interface/ha/useKeyboardInset-DwUQCWHC.js +0 -27
  950. package/dist/interface/ha/useLogsSocket-C6k217mW.js +0 -59
  951. package/dist/interface/ha/useNavLayout-DhuQE024.js +0 -125
  952. package/dist/interface/ha/usePermissions-DaE_wFch.js +0 -72
  953. package/dist/interface/ha/useServerRestart-CYaen2r6.js +0 -23
  954. package/dist/interface/ha/useTabSwipe-DAmCFlgg.js +0 -45
  955. package/dist/interface/ha/useUpdateChannel-Dr1EoU2X.js +0 -22
  956. package/dist/interface/ha/useUpdatesSocket-C8Gmhemh.js +0 -34
  957. package/dist/interface/ha/useUserOptions-BB5wk3Bq.js +0 -15
  958. package/dist/interface/workbox-778a14ff.js +0 -1
@@ -0,0 +1,2029 @@
1
+ import { r as e } from "./rolldown-runtime-CEFd7nDs.js";
2
+ import { m as t } from "./ripple-ZDATPc2w.js";
3
+ import { A as n, B as r, Et as i, G as a, H as o, Jt as s, K as c, M as l, Ot as u, Wt as d, Y as f, _t as p, d as m, f as h, g, gt as _, kt as v, l as y, lt as b, ot as x, p as S, qt as C, r as w, rt as T, u as E, ut as D, v as O, wt as k, x as A, xt as j, y as M, z as ee } from "./runtime-core.esm-bundler-_TfE0DWz.js";
4
+ import { t as N } from "./tooltip-BDrlgLof.js";
5
+ import { t as te } from "./message-D6dIy_hz.js";
6
+ import { t as P } from "./history-XMyO_cLc.js";
7
+ import { Ar as ne, Ei as re, En as ie, Fr as ae, Gr as oe, Kr as se, On as ce, Or as le, Pr as ue, Sn as F, Ur as de, in as fe, m as pe, q as me, wr as he, xn as ge, yi as _e, yr as ve } from "./api-CH_Y8Hee.js";
8
+ import { i as I } from "./intercomService-BtJ_zUNd.js";
9
+ import { A as L, j as R, n as ye, r as be } from "./pinia-CVnHHb-s.js";
10
+ import { n as z } from "./vue-i18n-D5EAy78K.js";
11
+ import { t as xe } from "./button-BouAFgf5.js";
12
+ import { v as B } from "./dist-BQf9ANPx.js";
13
+ import { t as V } from "./inputtext-C_ygnPrC.js";
14
+ import { t as H } from "./close-CxFbonhd.js";
15
+ import { i as U, n as Se, r as Ce, t as we } from "./accordion-BylV-jUK.js";
16
+ import { t as Te } from "./inputnumber-DZRwKgXr.js";
17
+ import { t as Ee } from "./speeddial-B5p0fuqL.js";
18
+ import { a as W, i as G, l as De, r as K } from "./types-CWogEoya.js";
19
+ import { a as q, i as Oe } from "./automationBlueprint-DGjftXFC.js";
20
+ import { t as ke } from "./CuiBottomSheet-CYNvQV4T.js";
21
+ import { t as Ae } from "./back-filled-CaxrZv0Q.js";
22
+ import { a as je, c as Me, d as Ne, f as Pe, i as Fe, l as Ie, n as Le, o as J, p as Re, r as Y, s as X, t as ze, u as Be } from "./vue-flow-background-8ZUqhPBF.js";
23
+ import { t as Ve } from "./plus-CgxY7W0L.js";
24
+ import { t as He } from "./settings-lWJfHaif.js";
25
+ //#region src/stores/automations.ts
26
+ var Z = ye("automations", () => {
27
+ let e = j(null), t = j(null), n = j(null), r = j(!1), i = j(null), a = j([]);
28
+ function o(e) {
29
+ if (!n.value) return;
30
+ let t = n.value.edges, r = n.value.nodes, i = t.filter((t) => t.target === e).map((e) => e.source);
31
+ return r.find((e) => i.includes(e.id));
32
+ }
33
+ return {
34
+ activeFlowId: e,
35
+ selectedNodeId: t,
36
+ draft: n,
37
+ draftDirty: r,
38
+ lastOutput: i,
39
+ validationIssues: a,
40
+ getDraftSourceNode: o
41
+ };
42
+ });
43
+ //#endregion
44
+ //#region src/components/CuiAutomation/config/flowSchema.ts
45
+ function Ue(e, t) {
46
+ if (!e) return [];
47
+ let n = [];
48
+ return qe(e, t, n, /* @__PURE__ */ new Set(), /* @__PURE__ */ new Set()), n;
49
+ }
50
+ function We(e, t, n) {
51
+ let r = (n ?? "").trim();
52
+ if (r) return Ue(e, t).find((e) => e.template === r);
53
+ }
54
+ function Ge(e) {
55
+ let t = Z(), { t: n } = z(), r = y(() => Ue(t.draft, u(e)));
56
+ return {
57
+ variables: r,
58
+ options: y(() => r.value.map((e) => ({
59
+ label: e.labelKey ? n(`components.automation_nodes.${e.labelKey}`) : e.label ?? e.template,
60
+ value: e.template
61
+ })))
62
+ };
63
+ }
64
+ function Ke(e, t) {
65
+ return e?.values ? e.values.map((e) => ({
66
+ label: e.labelKey ? `${t(`components.automation_nodes.${e.labelKey}`)} (${e.value})` : e.value,
67
+ value: e.value
68
+ })) : [];
69
+ }
70
+ function qe(e, t, n, r, i) {
71
+ if (i.has(t)) return;
72
+ i.add(t);
73
+ let a = e.edges, o = e.nodes;
74
+ for (let s of a) {
75
+ if (s.target !== t) continue;
76
+ let a = o.find((e) => e.id === s.source);
77
+ if (!a?.type) continue;
78
+ let c = Je(a), l = typeof a.data?.alias == "string" ? a.data.alias : void 0;
79
+ for (let e of c) {
80
+ if (l) {
81
+ let t = {
82
+ ...e,
83
+ template: e.template.replace("{{", `{{${l}.`),
84
+ label: `${l}: ${e.label ?? ""}`.trim()
85
+ };
86
+ r.has(t.template) || (r.add(t.template), n.push(t));
87
+ }
88
+ r.has(e.template) || (r.add(e.template), n.push(e));
89
+ }
90
+ qe(e, s.source, n, r, i);
91
+ }
92
+ }
93
+ function Je(e) {
94
+ let t = e.data ?? {}, n = [], r = (t, r, i, a, o) => {
95
+ n.push({
96
+ template: t,
97
+ valueType: r,
98
+ labelKey: i,
99
+ sourceNodeId: e.id,
100
+ sourceType: e.type ?? "",
101
+ ...a && a.length > 0 ? { values: a } : {},
102
+ ...o ? { label: o } : {}
103
+ });
104
+ };
105
+ switch (e.type) {
106
+ case "trigger-detection": {
107
+ let e = (t.detectionLabels ?? []).map((e) => ({ value: e }));
108
+ r("{{event.type}}", "enum", "variable_event_type", e), r("{{event.types}}", "string", "variable_event_types"), r("{{event.label}}", "string", "variable_event_label", e), r("{{event.confidence}}", "number", "variable_event_confidence"), r("{{event.state}}", "enum", "variable_event_state", [{
109
+ value: "active",
110
+ labelKey: "variable_value_active"
111
+ }, {
112
+ value: "ended",
113
+ labelKey: "variable_value_ended"
114
+ }]), r("{{event.cameraId}}", "string", "variable_event_camera"), r("{{event.faces}}", "string", "variable_event_faces", (t.faceFilter ?? []).map((e) => ({ value: e }))), r("{{event.plates}}", "string", "variable_event_plates", (t.licensePlateFilter ?? []).map((e) => ({ value: e }))), r("{{event.id}}", "string", "variable_event_id");
115
+ break;
116
+ }
117
+ case "trigger-sensor": {
118
+ let i = String(t.sensorType ?? ""), a = (t.properties ?? []).length > 0 ? t.properties : L(i), o = a.map((e) => R(i, e)).filter((e) => !!e);
119
+ r("{{sensor.value}}", Ye(o), "variable_sensor_value", Xe(i, o)), r("{{sensor.previousValue}}", Ye(o), "variable_sensor_previous_value");
120
+ for (let t of a) {
121
+ let r = R(i, t);
122
+ for (let i of r?.keys ?? []) n.push({
123
+ template: `{{sensor.value.${i}}}`,
124
+ valueType: "number",
125
+ label: `${t}.${i}`,
126
+ sourceNodeId: e.id,
127
+ sourceType: e.type
128
+ });
129
+ }
130
+ r("{{sensor.property}}", "enum", "variable_sensor_property", a.map((e) => ({
131
+ value: e,
132
+ labelKey: `sensor_property_${e}`
133
+ }))), r("{{sensor.sensorType}}", "string", "variable_sensor_type"), r("{{sensor.sensorId}}", "string", "variable_sensor_id"), r("{{sensor.assignedCameraIds}}", "string", "variable_sensor_cameras");
134
+ break;
135
+ }
136
+ case "trigger-webhook":
137
+ r("{{webhook.body}}", "string", "variable_webhook_body"), r("{{webhook.data}}", "string", "variable_webhook_data"), r("{{webhook.method}}", "enum", "variable_webhook_method", [
138
+ "GET",
139
+ "POST",
140
+ "PUT",
141
+ "PATCH",
142
+ "DELETE"
143
+ ].map((e) => ({ value: e }))), r("{{webhook.headers}}", "object", "variable_webhook_headers");
144
+ break;
145
+ case "trigger-mqtt":
146
+ r("{{mqtt.topic}}", "string", "variable_mqtt_topic", typeof t.topic == "string" && t.topic ? [{ value: t.topic }] : void 0), r("{{mqtt.payload}}", "string", "variable_mqtt_payload");
147
+ break;
148
+ case "trigger-geofence": {
149
+ let e = t.event ?? "both";
150
+ r("{{geo.event}}", "enum", "variable_geo_event", (e === "both" ? ["enter", "leave"] : [e]).map((e) => ({
151
+ value: e,
152
+ labelKey: `variable_value_${e}`
153
+ }))), r("{{geo.user}}", "enum", "variable_geo_user", (t.users ?? []).map((e) => ({ value: e }))), r("{{geo.zone}}", "string", "variable_geo_zone", typeof t.zoneName == "string" && t.zoneName ? [{ value: t.zoneName }] : void 0), r("{{geo.lat}}", "number", "variable_geo_lat"), r("{{geo.lon}}", "number", "variable_geo_lon"), r("{{geo.distance}}", "number", "variable_geo_distance");
154
+ break;
155
+ }
156
+ case "trigger-system":
157
+ r("{{system.eventType}}", "enum", "variable_system_event_type", typeof t.eventType == "string" && t.eventType ? [{ value: t.eventType }] : void 0), r("{{system.cameraId}}", "string", "variable_system_camera_id"), r("{{system.cameraName}}", "string", "variable_system_camera_name"), r("{{system.pluginName}}", "string", "variable_system_plugin_name"), r("{{system.pluginId}}", "string", "variable_system_plugin_id"), r("{{system.status}}", "string", "variable_system_status"), r("{{system.property}}", "string", "variable_system_property"), r("{{system.sensorId}}", "string", "variable_system_sensor_id"), r("{{system.sensorType}}", "string", "variable_system_sensor_type"), r("{{system.sensorName}}", "string", "variable_system_sensor_name");
158
+ break;
159
+ case "action-snapshot":
160
+ r("{{snapshot}}", "string", "variable_snapshot"), r("{{snapshot.base64}}", "string", "variable_snapshot_data_uri");
161
+ break;
162
+ case "action-assistant":
163
+ r("{{assistant.answer}}", "string", "variable_assistant_answer"), r("{{assistant.replied}}", "boolean", "variable_assistant_replied");
164
+ break;
165
+ case "action-http":
166
+ r("{{http.status}}", "number", "variable_http_status"), r("{{http.body}}", "string", "variable_http_body"), r("{{http.base64}}", "string", "variable_http_base64"), r("{{http.json}}", "object", "variable_http_json");
167
+ break;
168
+ case "action-plugin":
169
+ r("{{plugin.detected}}", "boolean", "variable_plugin_detected", [{ value: "true" }, { value: "false" }]), r("{{plugin.labels}}", "string", "variable_plugin_labels"), r("{{plugin.detections}}", "object", "variable_plugin_detections"), r("{{plugin.result}}", "object", "variable_plugin_result"), r("{{plugin.durationMs}}", "number", "variable_plugin_duration");
170
+ break;
171
+ case "action-camera-control":
172
+ r("{{camera.id}}", "string", "variable_camera_id"), r("{{camera.name}}", "string", "variable_camera_name");
173
+ break;
174
+ case "action-image-input": {
175
+ let r = typeof t.variableName == "string" && t.variableName ? t.variableName : "image";
176
+ n.push({
177
+ template: `{{${r}}}`,
178
+ valueType: "string",
179
+ label: r,
180
+ sourceNodeId: e.id,
181
+ sourceType: e.type
182
+ }), n.push({
183
+ template: `{{${r}.width}}`,
184
+ valueType: "number",
185
+ label: `${r}.width`,
186
+ sourceNodeId: e.id,
187
+ sourceType: e.type
188
+ }), n.push({
189
+ template: `{{${r}.height}}`,
190
+ valueType: "number",
191
+ label: `${r}.height`,
192
+ sourceNodeId: e.id,
193
+ sourceType: e.type
194
+ });
195
+ break;
196
+ }
197
+ case "action-variable": typeof t.variableName == "string" && t.variableName && n.push({
198
+ template: `{{${t.variableName}}}`,
199
+ valueType: "string",
200
+ label: t.variableName,
201
+ sourceNodeId: e.id,
202
+ sourceType: e.type
203
+ });
204
+ }
205
+ return typeof t.repeat == "number" && t.repeat > 1 && (typeof t.repeatConcurrency == "number" && t.repeatConcurrency > 1 || (r("{{repeat.index}}", "number", "variable_repeat_index"), r("{{repeat.iteration}}", "number", "variable_repeat_iteration")), r("{{repeat.total}}", "number", "variable_repeat_total"), r("{{repeat.totalCalls}}", "number", "variable_repeat_total_calls"), r("{{repeat.elapsedMs}}", "number", "variable_repeat_elapsed_ms"), r("{{repeat.elapsedSec}}", "number", "variable_repeat_elapsed_sec")), (e.type ?? "").startsWith("action-") && (r("{{previous.success}}", "boolean", "variable_previous_success", [{ value: "true" }, { value: "false" }]), r("{{previous.result}}", "string", "variable_previous_result")), n;
206
+ }
207
+ function Ye(e) {
208
+ let t = new Set(e.map((e) => e.type));
209
+ return t.size === 1 ? [...t][0] : "string";
210
+ }
211
+ function Xe(e, t) {
212
+ let n = [], r = /* @__PURE__ */ new Set(), i = (e, t) => {
213
+ r.has(e) || (r.add(e), n.push({
214
+ value: e,
215
+ ...t ? { labelKey: t } : {}
216
+ }));
217
+ };
218
+ for (let n of t) if (n.type === "boolean") i("true"), i("false");
219
+ else if (n.type === "enum" && n.values) for (let [t, r] of Object.entries(n.values)) i(String(r), `${e}_state_${t}`);
220
+ return n;
221
+ }
222
+ //#endregion
223
+ //#region ~icons/carbon/share
224
+ var Ze = {
225
+ viewBox: "0 0 32 32",
226
+ width: "1.2em",
227
+ height: "1.2em"
228
+ };
229
+ function Qe(e, t) {
230
+ return o(), S("svg", Ze, [...t[0] ||= [E("path", {
231
+ fill: "currentColor",
232
+ d: "M23 20a5 5 0 0 0-3.89 1.89l-7.31-4.57a4.46 4.46 0 0 0 0-2.64l7.31-4.57A5 5 0 1 0 18 7a4.8 4.8 0 0 0 .2 1.32l-7.31 4.57a5 5 0 1 0 0 6.22l7.31 4.57A4.8 4.8 0 0 0 18 25a5 5 0 1 0 5-5m0-16a3 3 0 1 1-3 3a3 3 0 0 1 3-3M7 19a3 3 0 1 1 3-3a3 3 0 0 1-3 3m16 9a3 3 0 1 1 3-3a3 3 0 0 1-3 3"
233
+ }, null, -1)]]);
234
+ }
235
+ var $e = p({
236
+ name: "carbon-share",
237
+ render: Qe
238
+ }), et = {
239
+ viewBox: "0 0 32 32",
240
+ width: "1.2em",
241
+ height: "1.2em"
242
+ };
243
+ function tt(e, t) {
244
+ return o(), S("svg", et, [...t[0] ||= [E("path", {
245
+ fill: "currentColor",
246
+ d: "M12 12h2v12h-2zm6 0h2v12h-2z"
247
+ }, null, -1), E("path", {
248
+ fill: "currentColor",
249
+ d: "M4 6v2h2v20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8h2V6Zm4 22V8h16v20Zm4-26h8v2h-8z"
250
+ }, null, -1)]]);
251
+ }
252
+ var nt = p({
253
+ name: "carbon-trash-can",
254
+ render: tt
255
+ }), rt = {
256
+ name: "ControlButton",
257
+ compatConfig: { MODE: 3 }
258
+ }, it = (e, t) => {
259
+ let n = e.__vccOpts || e;
260
+ for (let [e, r] of t) n[e] = r;
261
+ return n;
262
+ }, at = {
263
+ type: "button",
264
+ class: "vue-flow__controls-button"
265
+ };
266
+ function ot(e, t, n, r, i, a) {
267
+ return o(), S("button", at, [c(e.$slots, "default")]);
268
+ }
269
+ var st = /* @__PURE__ */ it(rt, [["render", ot]]), ct = {
270
+ xmlns: "http://www.w3.org/2000/svg",
271
+ viewBox: "0 0 32 32"
272
+ }, lt = [/* @__PURE__ */ E("path", { d: "M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z" }, null, -1)];
273
+ function ut(e, t) {
274
+ return o(), S("svg", ct, lt);
275
+ }
276
+ var dt = { render: ut }, ft = {
277
+ xmlns: "http://www.w3.org/2000/svg",
278
+ viewBox: "0 0 32 5"
279
+ }, pt = [/* @__PURE__ */ E("path", { d: "M0 0h32v4.2H0z" }, null, -1)];
280
+ function mt(e, t) {
281
+ return o(), S("svg", ft, pt);
282
+ }
283
+ var ht = { render: mt }, gt = {
284
+ xmlns: "http://www.w3.org/2000/svg",
285
+ viewBox: "0 0 32 30"
286
+ }, _t = [/* @__PURE__ */ E("path", { d: "M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0 0 27.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94a.919.919 0 0 1-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z" }, null, -1)];
287
+ function vt(e, t) {
288
+ return o(), S("svg", gt, _t);
289
+ }
290
+ var yt = { render: vt }, bt = {
291
+ xmlns: "http://www.w3.org/2000/svg",
292
+ viewBox: "0 0 25 32"
293
+ }, xt = [/* @__PURE__ */ E("path", { d: "M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z" }, null, -1)];
294
+ function St(e, t) {
295
+ return o(), S("svg", bt, xt);
296
+ }
297
+ var Ct = { render: St }, wt = {
298
+ xmlns: "http://www.w3.org/2000/svg",
299
+ viewBox: "0 0 25 32"
300
+ }, Tt = [/* @__PURE__ */ E("path", { d: "M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047z" }, null, -1)];
301
+ function Et(e, t) {
302
+ return o(), S("svg", wt, Tt);
303
+ }
304
+ var Dt = { render: Et }, Ot = /* @__PURE__ */ A({
305
+ name: "Controls",
306
+ compatConfig: { MODE: 3 },
307
+ props: {
308
+ showZoom: {
309
+ type: Boolean,
310
+ default: !0
311
+ },
312
+ showFitView: {
313
+ type: Boolean,
314
+ default: !0
315
+ },
316
+ showInteractive: {
317
+ type: Boolean,
318
+ default: !0
319
+ },
320
+ fitViewParams: {},
321
+ position: { default: () => Le.BottomLeft }
322
+ },
323
+ emits: [
324
+ "zoomIn",
325
+ "zoomOut",
326
+ "fitView",
327
+ "interactionChange"
328
+ ],
329
+ setup(e, { emit: t }) {
330
+ let { nodesDraggable: n, nodesConnectable: r, elementsSelectable: a, setInteractive: s, zoomIn: l, zoomOut: u, fitView: d, viewport: p, minZoom: g, maxZoom: _ } = Ie(), y = i(() => n.value || r.value || a.value), x = i(() => p.value.zoom <= g.value), C = i(() => p.value.zoom >= _.value);
331
+ function T() {
332
+ l(), t("zoomIn");
333
+ }
334
+ function E() {
335
+ u(), t("zoomOut");
336
+ }
337
+ function D() {
338
+ d(e.fitViewParams), t("fitView");
339
+ }
340
+ function O() {
341
+ s(!y.value), t("interactionChange", !y.value);
342
+ }
343
+ return (e, t) => (o(), m(v(Fe), {
344
+ class: "vue-flow__controls",
345
+ position: e.position
346
+ }, {
347
+ default: b(() => [
348
+ c(e.$slots, "top"),
349
+ e.showZoom ? (o(), S(w, { key: 0 }, [c(e.$slots, "control-zoom-in", {}, () => [M(st, {
350
+ class: "vue-flow__controls-zoomin",
351
+ disabled: C.value,
352
+ onClick: T
353
+ }, {
354
+ default: b(() => [c(e.$slots, "icon-zoom-in", {}, () => [(o(), m(f(v(dt))))])]),
355
+ _: 3
356
+ }, 8, ["disabled"])]), c(e.$slots, "control-zoom-out", {}, () => [M(st, {
357
+ class: "vue-flow__controls-zoomout",
358
+ disabled: x.value,
359
+ onClick: E
360
+ }, {
361
+ default: b(() => [c(e.$slots, "icon-zoom-out", {}, () => [(o(), m(f(v(ht))))])]),
362
+ _: 3
363
+ }, 8, ["disabled"])])], 64)) : h("", !0),
364
+ e.showFitView ? c(e.$slots, "control-fit-view", { key: 1 }, () => [M(st, {
365
+ class: "vue-flow__controls-fitview",
366
+ onClick: D
367
+ }, {
368
+ default: b(() => [c(e.$slots, "icon-fit-view", {}, () => [(o(), m(f(v(yt))))])]),
369
+ _: 3
370
+ })]) : h("", !0),
371
+ e.showInteractive ? c(e.$slots, "control-interactive", { key: 2 }, () => [e.showInteractive ? (o(), m(st, {
372
+ key: 0,
373
+ class: "vue-flow__controls-interactive",
374
+ onClick: O
375
+ }, {
376
+ default: b(() => [y.value ? c(e.$slots, "icon-unlock", { key: 0 }, () => [(o(), m(f(v(Dt))))]) : h("", !0), y.value ? h("", !0) : c(e.$slots, "icon-lock", { key: 1 }, () => [(o(), m(f(v(Ct))))])]),
377
+ _: 3
378
+ })) : h("", !0)]) : h("", !0),
379
+ c(e.$slots, "default")
380
+ ]),
381
+ _: 3
382
+ }, 8, ["position"]));
383
+ }
384
+ });
385
+ //#endregion
386
+ //#region src/components/CuiAutomation/caseHandle.ts
387
+ function kt(e) {
388
+ return `case-${encodeURIComponent(e)}`;
389
+ }
390
+ //#endregion
391
+ //#region src/components/CuiAutomation/edges/DeletableEdge.vue?vue&type=script&setup=true&lang.ts
392
+ var At = ["id", "d"], jt = 24, Mt = /* @__PURE__ */ A({
393
+ __name: "DeletableEdge",
394
+ props: {
395
+ id: {},
396
+ sourceNode: {},
397
+ targetNode: {},
398
+ source: {},
399
+ target: {},
400
+ type: {},
401
+ label: { type: [
402
+ String,
403
+ Object,
404
+ Function
405
+ ] },
406
+ style: {},
407
+ selected: { type: Boolean },
408
+ sourcePosition: {},
409
+ targetPosition: {},
410
+ sourceHandleId: {},
411
+ targetHandleId: {},
412
+ animated: { type: Boolean },
413
+ updatable: { type: Boolean },
414
+ markerStart: {},
415
+ markerEnd: {},
416
+ curvature: {},
417
+ interactionWidth: {},
418
+ data: {},
419
+ events: {},
420
+ labelStyle: {},
421
+ labelShowBg: { type: Boolean },
422
+ labelBgStyle: {},
423
+ labelBgPadding: {},
424
+ labelBgBorderRadius: {},
425
+ sourceX: {},
426
+ sourceY: {},
427
+ targetX: {},
428
+ targetY: {}
429
+ },
430
+ setup(e) {
431
+ let n = e, { removeEdges: r } = Ie(), i = y(() => Me({
432
+ sourceX: n.sourceX,
433
+ sourceY: n.sourceY,
434
+ sourcePosition: n.sourcePosition,
435
+ targetX: n.targetX,
436
+ targetY: n.targetY,
437
+ targetPosition: n.targetPosition
438
+ })), a = y(() => i.value[0]), s = y(() => i.value[1]), c = y(() => i.value[2]), l = y(() => {
439
+ let e = document.createElementNS("http://www.w3.org/2000/svg", "path");
440
+ return e.setAttribute("d", a.value), e.getTotalLength();
441
+ }), u = y(() => {
442
+ let e = l.value;
443
+ if (e <= 0) return {
444
+ stroke: "var(--text-muted-color)",
445
+ strokeWidth: 2,
446
+ fill: "none"
447
+ };
448
+ let t = e / 2, n = jt / 2;
449
+ return {
450
+ stroke: "var(--text-muted-color)",
451
+ strokeWidth: 2,
452
+ fill: "none",
453
+ strokeDasharray: `${Math.max(0, t - n)} ${jt} ${Math.max(0, e - t - n)}`
454
+ };
455
+ });
456
+ function d() {
457
+ r([n.id]);
458
+ }
459
+ return (n, r) => {
460
+ let i = H;
461
+ return o(), S(w, null, [E("path", {
462
+ id: e.id,
463
+ d: v(a),
464
+ style: C(v(u)),
465
+ class: "vue-flow__edge-path"
466
+ }, null, 12, At), M(v(J), null, {
467
+ default: b(() => [E("div", {
468
+ class: "automation-edge-button nodrag nopan",
469
+ style: C({
470
+ pointerEvents: "all",
471
+ position: "absolute",
472
+ transform: `translate(-50%, -50%) translate(${v(s)}px, ${v(c)}px)`
473
+ })
474
+ }, [E("button", {
475
+ class: "automation-edge-delete",
476
+ onClick: t(d, ["stop"])
477
+ }, [M(i, { class: "w-3 h-3" })])], 4)]),
478
+ _: 1
479
+ })], 64);
480
+ };
481
+ }
482
+ }), Nt = {
483
+ "trigger-detection": ["cameraId"],
484
+ "trigger-sensor": ["sensorId"],
485
+ "trigger-schedule": ["cron"],
486
+ "trigger-mqtt": ["topic"],
487
+ "trigger-system": ["eventType"],
488
+ "condition-switch": ["variable"],
489
+ "condition-ifelse": ["leftOperand", "operator"],
490
+ "condition-sensorstate": ["sensorId"],
491
+ "condition-time": ["startTime", "endTime"],
492
+ "action-snapshot": ["cameraId"],
493
+ "action-sensor": ["sensorId"],
494
+ "action-notification": ["title"],
495
+ "action-assistant": ["user", "prompt"],
496
+ "action-http": ["url"],
497
+ "action-mqtt": ["topic"],
498
+ "action-variable": ["variableName"],
499
+ "action-plugin": ["pluginName", "method"],
500
+ "action-camera-control": ["cameraId"],
501
+ "action-image-input": ["source"]
502
+ }, Pt = /* @__PURE__ */ new Set([
503
+ "http",
504
+ "mqtt",
505
+ "webhook",
506
+ "sensor",
507
+ "system",
508
+ "repeat",
509
+ "previous",
510
+ "plugin",
511
+ "camera",
512
+ "geo",
513
+ "event"
514
+ ]), Ft = /* @__PURE__ */ new Set([
515
+ "time.now",
516
+ "flow.startMs",
517
+ "snapshot",
518
+ "snapshot.base64",
519
+ "output"
520
+ ]);
521
+ function It(e) {
522
+ if (!e) return [];
523
+ let t = [], n = e.nodes, r = e.edges, i = n.filter((e) => e.type?.startsWith("trigger-"));
524
+ i.length === 0 && t.push({ messageKey: "validation_no_trigger" });
525
+ let a = new Set(i.map((e) => e.id)), o = !0;
526
+ for (; o;) {
527
+ o = !1;
528
+ for (let e of r) a.has(e.source) && !a.has(e.target) && (a.add(e.target), o = !0);
529
+ }
530
+ for (let r of n) {
531
+ if (!r.type) continue;
532
+ let n = r.data ?? {};
533
+ !r.type.startsWith("trigger-") && !a.has(r.id) && t.push({
534
+ nodeId: r.id,
535
+ messageKey: "validation_unreachable"
536
+ });
537
+ for (let e of Nt[r.type] ?? []) {
538
+ let i = n[e];
539
+ if (i == null || i === "") {
540
+ t.push({
541
+ nodeId: r.id,
542
+ messageKey: "validation_missing_fields"
543
+ });
544
+ break;
545
+ }
546
+ }
547
+ r.type === "condition-switch" && (!Array.isArray(n.cases) || n.cases.length === 0) && t.push({
548
+ nodeId: r.id,
549
+ messageKey: "validation_no_cases"
550
+ }), r.type === "trigger-schedule" && typeof n.cron == "string" && n.cron && n.cron.trim().split(/\s+/).length !== 5 && t.push({
551
+ nodeId: r.id,
552
+ messageKey: "validation_invalid_cron"
553
+ }), r.type === "action-variable" && typeof n.variableName == "string" && n.variableName && !/^\w+(?:\.\w+)*$/.test(n.variableName) && t.push({
554
+ nodeId: r.id,
555
+ messageKey: "validation_invalid_variable_name"
556
+ }), t.push(...Lt(e, r));
557
+ }
558
+ return t;
559
+ }
560
+ function Lt(e, t) {
561
+ let n = [], r = new Set(Ue(e, t.id).map((e) => e.template.slice(2, -2))), i = new Set([...r].map((e) => e.split(".")[0])), a = Rt(e), o = [];
562
+ zt(t.data ?? {}, o);
563
+ let s = /* @__PURE__ */ new Set();
564
+ for (let e of o) for (let o of e.matchAll(/\{\{(\w+(?:\.\w+)*)\}\}/g)) {
565
+ let e = o[1];
566
+ if (r.has(e) || Ft.has(e) || a.has(e) || s.has(e)) continue;
567
+ let c = e.split(".")[0];
568
+ Pt.has(c) && i.has(c) || a.has(c) || (s.add(e), n.push({
569
+ nodeId: t.id,
570
+ messageKey: "validation_unknown_variable",
571
+ params: { name: e }
572
+ }));
573
+ }
574
+ return n;
575
+ }
576
+ function Rt(e) {
577
+ let t = /* @__PURE__ */ new Set();
578
+ for (let n of e.nodes) {
579
+ let e = n.data ?? {};
580
+ n.type === "action-variable" && typeof e.variableName == "string" && e.variableName && t.add(e.variableName), n.type === "action-image-input" && t.add(typeof e.variableName == "string" && e.variableName ? e.variableName : "image"), typeof e.alias == "string" && e.alias && t.add(e.alias);
581
+ }
582
+ return t;
583
+ }
584
+ function zt(e, t) {
585
+ if (typeof e == "string") {
586
+ e.includes("{{") && t.push(e);
587
+ return;
588
+ }
589
+ if (Array.isArray(e)) {
590
+ for (let n of e) zt(n, t);
591
+ return;
592
+ }
593
+ if (e && typeof e == "object") for (let n of Object.values(e)) zt(n, t);
594
+ }
595
+ function Bt(e) {
596
+ let t = Z(), { t: n } = z();
597
+ return y(() => {
598
+ let r = t.validationIssues.filter((t) => t.nodeId === u(e));
599
+ if (r.length !== 0) return r.map((e) => n(`components.automation_nodes.${e.messageKey}`, e.params ?? {})).join("\n");
600
+ });
601
+ }
602
+ //#endregion
603
+ //#region src/components/CuiAutomation/utils.ts
604
+ var Vt = [
605
+ "cameraId",
606
+ "sensorId",
607
+ "sensorType"
608
+ ];
609
+ function Ht(e, t) {
610
+ if (!e || !t) return null;
611
+ let n = {}, r = e, i = t;
612
+ for (let e of Vt) r[e] && e in i && !i[e] && (n[e] = r[e]);
613
+ return Object.keys(n).length > 0 ? n : null;
614
+ }
615
+ function Ut(e) {
616
+ return e.type === "trigger-webhook" && !e.webhookId ? {
617
+ ...e,
618
+ webhookId: _e()
619
+ } : e.type === "trigger-geofence" && !e.geofenceId ? {
620
+ ...e,
621
+ geofenceId: _e()
622
+ } : e;
623
+ }
624
+ function Wt(e, t, n) {
625
+ if (!e) return;
626
+ let r = (e) => e ? t?.(e) ?? e : void 0, i = (e, t) => e ? n?.(e) ?? t ?? e : void 0;
627
+ switch (e.type) {
628
+ case "trigger-detection": return r(e.cameraId);
629
+ case "trigger-sensor": return i(e.sensorId, e.sensorType);
630
+ case "trigger-schedule": return e.cron || void 0;
631
+ case "trigger-webhook": return e.webhookId ? `...${e.webhookId.slice(-8)}` : void 0;
632
+ case "trigger-system": return e.eventType ? `${e.category}: ${e.eventType.split(":").pop()}` : void 0;
633
+ case "trigger-manual": return;
634
+ case "trigger-geofence": return e.zoneName || void 0;
635
+ case "trigger-mqtt": return e.topic || void 0;
636
+ case "condition-ifelse": return e.leftOperand && e.operator ? `${e.leftOperand} ${e.operator} ${e.rightOperand}` : void 0;
637
+ case "condition-switch": return e.variable || void 0;
638
+ case "condition-sensorstate": return i(e.sensorId, e.sensorType);
639
+ case "condition-time": return e.startTime && e.endTime ? `${e.startTime} - ${e.endTime}` : void 0;
640
+ case "action-snapshot": return r(e.cameraId);
641
+ case "action-camera-control": return r(e.cameraId);
642
+ case "action-sensor": return i(e.sensorId, e.sensorType);
643
+ case "action-notification": return e.title || void 0;
644
+ case "action-notification-control": return `${e.mode} · ${e.scope}`;
645
+ case "action-assistant": return e.prompt ? e.prompt.slice(0, 40) : void 0;
646
+ case "action-http": return e.url ? `${e.method} ${e.url}` : void 0;
647
+ case "action-mqtt": return e.topic || void 0;
648
+ case "action-delay": return `${e.duration} ${e.unit}`;
649
+ case "action-variable": return e.variableName || void 0;
650
+ case "action-plugin": return [e.pluginName, e.method].filter(Boolean).join(": ") || void 0;
651
+ default: return;
652
+ }
653
+ }
654
+ //#endregion
655
+ //#region ~icons/mdi/exclamation-thick
656
+ var Gt = {
657
+ viewBox: "0 0 24 24",
658
+ width: "1.2em",
659
+ height: "1.2em"
660
+ };
661
+ function Kt(e, t) {
662
+ return o(), S("svg", Gt, [...t[0] ||= [E("path", {
663
+ fill: "currentColor",
664
+ d: "M10 3h4v11h-4zm0 18v-4h4v4z"
665
+ }, null, -1)]]);
666
+ }
667
+ var qt = p({
668
+ name: "mdi-exclamation-thick",
669
+ render: Kt
670
+ }), Jt = { maxInputs: Infinity }, Yt = {
671
+ key: 0,
672
+ class: "absolute -top-2 -right-2 z-10 flex items-center justify-center w-5 h-5 rounded-full bg-amber-500 text-white"
673
+ }, Xt = { class: "flex items-center gap-2 px-3 py-2.5" }, Zt = { class: "flex-1 min-w-0" }, Qt = { class: "text-xs font-semibold truncate text-color" }, $t = {
674
+ key: 0,
675
+ class: "text-[10px] text-muted truncate mt-0.5"
676
+ }, en = /*#__PURE__*/ ne(/* @__PURE__ */ A({
677
+ __name: "BaseNode",
678
+ props: /*@__PURE__*/ n({
679
+ icon: {},
680
+ label: {},
681
+ subtitle: {},
682
+ color: {},
683
+ selected: { type: Boolean },
684
+ showInput: { type: Boolean },
685
+ showOutput: { type: Boolean },
686
+ maxInputs: {},
687
+ warning: {}
688
+ }, Jt),
689
+ setup(e) {
690
+ let t = {
691
+ backgroundColor: "var(--text-muted-color)",
692
+ borderColor: "var(--card-background)"
693
+ };
694
+ return (n, r) => {
695
+ let i = qt, a = N;
696
+ return o(), S("div", {
697
+ class: d(["automation-node relative card-background rounded-lg border-2 shadow-lg min-w-[180px] max-w-[220px] select-none", { "ring-2 ring-primary": e.selected }]),
698
+ style: C({ borderColor: e.color })
699
+ }, [
700
+ e.warning ? D((o(), S("div", Yt, [M(i, { class: "w-3.5 h-3.5" })])), [[
701
+ a,
702
+ e.warning,
703
+ void 0,
704
+ { top: !0 }
705
+ ]]) : h("", !0),
706
+ E("div", Xt, [E("div", {
707
+ class: "flex items-center justify-center w-8 h-8 rounded-md shrink-0",
708
+ style: C({
709
+ backgroundColor: `${e.color}20`,
710
+ color: e.color
711
+ })
712
+ }, [(o(), m(f(e.icon), { class: "w-4.5 h-4.5" }))], 4), E("div", Zt, [E("div", Qt, s(e.label), 1), e.subtitle ? (o(), S("div", $t, s(e.subtitle), 1)) : h("", !0)])]),
713
+ e.showInput ? (o(), m(v(X), {
714
+ key: 1,
715
+ type: "target",
716
+ position: v(Y).Top,
717
+ connectable: e.maxInputs,
718
+ class: "!w-5 !h-5 !border-2",
719
+ style: t
720
+ }, null, 8, ["position", "connectable"])) : h("", !0),
721
+ c(n.$slots, "handles", {}, () => [e.showOutput ? (o(), m(v(X), {
722
+ key: 0,
723
+ type: "source",
724
+ position: v(Y).Bottom,
725
+ class: "!w-5 !h-5 !border-2",
726
+ style: t
727
+ }, null, 8, ["position"])) : h("", !0)], !0)
728
+ ], 6);
729
+ };
730
+ }
731
+ }), [["__scopeId", "data-v-13cfb248"]]), tn = { class: "text-muted font-medium truncate" }, nn = { class: "text-color font-semibold text-right" }, Q = /* @__PURE__ */ A({
732
+ __name: "ActionNode",
733
+ props: {
734
+ id: {},
735
+ type: {},
736
+ selected: { type: Boolean },
737
+ connectable: { type: [
738
+ Boolean,
739
+ Number,
740
+ String,
741
+ Function
742
+ ] },
743
+ position: {},
744
+ dimensions: {},
745
+ label: {},
746
+ isValidTargetPos: { type: Function },
747
+ isValidSourcePos: { type: Function },
748
+ parent: {},
749
+ parentNodeId: {},
750
+ dragging: { type: Boolean },
751
+ resizing: { type: Boolean },
752
+ zIndex: {},
753
+ targetPosition: {},
754
+ sourcePosition: {},
755
+ dragHandle: {},
756
+ data: {},
757
+ events: {}
758
+ },
759
+ setup(e) {
760
+ let t = e, { t: n } = z(), r = Z(), { lastOutput: i } = be(r), c = Bt(() => t.id), l = y(() => G(t.type)), u = y(() => l.value ? n(l.value.labelKey) : t.type), { cameraName: f } = q(), { sensors: p } = B(), g = y(() => {
761
+ let e = t.data, n = e.alias, r = Wt(t.data, f, x);
762
+ return e.type === "action-plugin" && e.repeat && e.repeat > 1 && (r = r ? `${r} (${e.repeat}x)` : `${e.repeat}x`), n && r ? `[${n}] ${r}` : n ? `[${n}]` : r;
763
+ }), _ = y(() => t.type !== "action-output" || !i.value ? [] : Object.entries(i.value));
764
+ function x(e) {
765
+ let t = p.value.find((t) => t.id === e);
766
+ return t ? t.displayName.value || t.name : void 0;
767
+ }
768
+ return (t, n) => {
769
+ let r = I;
770
+ return o(), S("div", null, [M(en, {
771
+ icon: v(l).icon,
772
+ label: v(u),
773
+ subtitle: v(g),
774
+ color: v(l)?.color ?? "#3b82f6",
775
+ selected: e.selected,
776
+ warning: v(c),
777
+ "show-input": !0,
778
+ "show-output": !0
779
+ }, null, 8, [
780
+ "icon",
781
+ "label",
782
+ "subtitle",
783
+ "color",
784
+ "selected",
785
+ "warning"
786
+ ]), e.type === "action-output" && v(_).length ? (o(), m(r, {
787
+ key: 0,
788
+ class: "cui-card mt-1",
789
+ pt: { body: { class: "p-0" } },
790
+ style: { "min-width": "180px" }
791
+ }, {
792
+ content: b(() => [(o(!0), S(w, null, a(v(_), (e, t) => (o(), S("div", {
793
+ key: t,
794
+ class: d(["flex justify-between gap-3 px-3 py-1.5 text-[11px]", { "border-t border-surface-100 dark:border-surface-800": t > 0 }])
795
+ }, [E("span", tn, s(e[0]), 1), E("span", nn, s(e[1]), 1)], 2))), 128))]),
796
+ _: 1
797
+ })) : h("", !0)]);
798
+ };
799
+ }
800
+ }), rn = /* @__PURE__ */ A({
801
+ __name: "ConditionNode",
802
+ props: {
803
+ id: {},
804
+ type: {},
805
+ selected: { type: Boolean },
806
+ connectable: { type: [
807
+ Boolean,
808
+ Number,
809
+ String,
810
+ Function
811
+ ] },
812
+ position: {},
813
+ dimensions: {},
814
+ label: {},
815
+ isValidTargetPos: { type: Function },
816
+ isValidSourcePos: { type: Function },
817
+ parent: {},
818
+ parentNodeId: {},
819
+ dragging: { type: Boolean },
820
+ resizing: { type: Boolean },
821
+ zIndex: {},
822
+ targetPosition: {},
823
+ sourcePosition: {},
824
+ dragHandle: {},
825
+ data: {},
826
+ events: {}
827
+ },
828
+ setup(e) {
829
+ let t = e, { t: n } = z(), r = { borderColor: "var(--card-background)" }, i = Bt(() => t.id), a = y(() => G(t.type)), s = y(() => a.value ? n(a.value.labelKey) : t.type), { cameraName: c } = q(), { sensors: l } = B(), u = y(() => Wt(t.data, c, d));
830
+ function d(e) {
831
+ let t = l.value.find((t) => t.id === e);
832
+ return t ? t.displayName.value || t.name : void 0;
833
+ }
834
+ return (t, n) => (o(), m(en, {
835
+ icon: v(a).icon,
836
+ label: v(s),
837
+ subtitle: v(u),
838
+ color: v(a)?.color ?? "#f59e0b",
839
+ selected: e.selected,
840
+ warning: v(i),
841
+ "show-input": !0,
842
+ "show-output": !1,
843
+ "max-inputs": 1
844
+ }, {
845
+ handles: b(() => [M(v(X), {
846
+ type: "source",
847
+ position: v(Y).Bottom,
848
+ id: "true",
849
+ class: "!w-5 !h-5 !border-2",
850
+ style: C({
851
+ ...r,
852
+ backgroundColor: "var(--text-success-color)",
853
+ left: "30%"
854
+ })
855
+ }, null, 8, ["position", "style"]), M(v(X), {
856
+ type: "source",
857
+ position: v(Y).Bottom,
858
+ id: "false",
859
+ class: "!w-5 !h-5 !border-2",
860
+ style: C({
861
+ ...r,
862
+ backgroundColor: "var(--text-danger-color)",
863
+ left: "70%"
864
+ })
865
+ }, null, 8, ["position", "style"])]),
866
+ _: 1
867
+ }, 8, [
868
+ "icon",
869
+ "label",
870
+ "subtitle",
871
+ "color",
872
+ "selected",
873
+ "warning"
874
+ ]));
875
+ }
876
+ }), an = { class: "absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-muted whitespace-nowrap pointer-events-none" }, on = /* @__PURE__ */ A({
877
+ __name: "SwitchNode",
878
+ props: {
879
+ id: {},
880
+ type: {},
881
+ selected: { type: Boolean },
882
+ connectable: { type: [
883
+ Boolean,
884
+ Number,
885
+ String,
886
+ Function
887
+ ] },
888
+ position: {},
889
+ dimensions: {},
890
+ label: {},
891
+ isValidTargetPos: { type: Function },
892
+ isValidSourcePos: { type: Function },
893
+ parent: {},
894
+ parentNodeId: {},
895
+ dragging: { type: Boolean },
896
+ resizing: { type: Boolean },
897
+ zIndex: {},
898
+ targetPosition: {},
899
+ sourcePosition: {},
900
+ dragHandle: {},
901
+ data: {},
902
+ events: {}
903
+ },
904
+ setup(e) {
905
+ let t = e, { t: n } = z(), r = {
906
+ backgroundColor: "#f59e0b",
907
+ borderColor: "var(--card-background)"
908
+ }, i = Bt(() => t.id), c = y(() => G(t.type)), l = y(() => c.value ? n(c.value.labelKey) : t.type), u = y(() => t.data.type === "condition-switch" && Array.isArray(t.data.cases) ? t.data.cases : []), d = y(() => t.data.type === "condition-switch" && t.data.variable ? t.data.variable : void 0);
909
+ return (t, n) => (o(), m(en, {
910
+ icon: v(c).icon,
911
+ label: v(l),
912
+ subtitle: v(d),
913
+ color: v(c)?.color ?? "#f59e0b",
914
+ selected: e.selected,
915
+ warning: v(i),
916
+ "show-input": !0,
917
+ "show-output": !1,
918
+ "max-inputs": 1
919
+ }, {
920
+ handles: b(() => [(o(!0), S(w, null, a(v(u), (e, t) => (o(), m(v(X), {
921
+ id: v(kt)(e),
922
+ key: v(kt)(e),
923
+ type: "source",
924
+ position: v(Y).Bottom,
925
+ class: "!w-5 !h-5 !border-2",
926
+ style: C({
927
+ ...r,
928
+ left: `${(t + 1) / (v(u).length + 1) * 100}%`
929
+ })
930
+ }, {
931
+ default: b(() => [E("div", an, s(e), 1)]),
932
+ _: 2
933
+ }, 1032, [
934
+ "id",
935
+ "position",
936
+ "style"
937
+ ]))), 128))]),
938
+ _: 1
939
+ }, 8, [
940
+ "icon",
941
+ "label",
942
+ "subtitle",
943
+ "color",
944
+ "selected",
945
+ "warning"
946
+ ]));
947
+ }
948
+ }), $ = /* @__PURE__ */ A({
949
+ __name: "TriggerNode",
950
+ props: {
951
+ id: {},
952
+ type: {},
953
+ selected: { type: Boolean },
954
+ connectable: { type: [
955
+ Boolean,
956
+ Number,
957
+ String,
958
+ Function
959
+ ] },
960
+ position: {},
961
+ dimensions: {},
962
+ label: {},
963
+ isValidTargetPos: { type: Function },
964
+ isValidSourcePos: { type: Function },
965
+ parent: {},
966
+ parentNodeId: {},
967
+ dragging: { type: Boolean },
968
+ resizing: { type: Boolean },
969
+ zIndex: {},
970
+ targetPosition: {},
971
+ sourcePosition: {},
972
+ dragHandle: {},
973
+ data: {},
974
+ events: {}
975
+ },
976
+ setup(e) {
977
+ let t = e, { t: n } = z(), { cameraName: r } = q(), { sensors: i } = B(), a = Bt(() => t.id), s = y(() => G(t.type)), c = y(() => s.value ? n(s.value.labelKey) : t.type), l = y(() => Wt(t.data, r, u));
978
+ function u(e) {
979
+ let t = i.value.find((t) => t.id === e);
980
+ return t ? t.displayName.value || t.name : void 0;
981
+ }
982
+ return (t, n) => (o(), m(en, {
983
+ icon: v(s).icon,
984
+ label: v(c),
985
+ subtitle: v(l),
986
+ color: v(s)?.color ?? "#22c55e",
987
+ selected: e.selected,
988
+ warning: v(a),
989
+ "show-input": !1,
990
+ "show-output": !0
991
+ }, null, 8, [
992
+ "icon",
993
+ "label",
994
+ "subtitle",
995
+ "color",
996
+ "selected",
997
+ "warning"
998
+ ]));
999
+ }
1000
+ }), sn = 50;
1001
+ function cn() {
1002
+ let e = k([]), t = k([]);
1003
+ function n(e, t) {
1004
+ return JSON.stringify({
1005
+ nodes: e,
1006
+ edges: t
1007
+ });
1008
+ }
1009
+ function r(e) {
1010
+ return JSON.parse(e);
1011
+ }
1012
+ function i(r, i) {
1013
+ let a = [...e.value, n(r, i)];
1014
+ a.length > sn && a.shift(), e.value = a, t.value = [];
1015
+ }
1016
+ function a(i, a) {
1017
+ let o = [...e.value], s = o.pop();
1018
+ if (s) return e.value = o, t.value = [...t.value, n(i, a)], r(s);
1019
+ }
1020
+ function o(i, a) {
1021
+ let o = [...t.value], s = o.pop();
1022
+ if (s) return t.value = o, e.value = [...e.value, n(i, a)], r(s);
1023
+ }
1024
+ function s() {
1025
+ e.value = [], t.value = [];
1026
+ }
1027
+ return {
1028
+ push: i,
1029
+ undo: a,
1030
+ redo: o,
1031
+ clear: s,
1032
+ canUndo: y(() => e.value.length > 0),
1033
+ canRedo: y(() => t.value.length > 0)
1034
+ };
1035
+ }
1036
+ //#endregion
1037
+ //#region src/components/CuiAutomation/CuiAutomationCanvas.vue?vue&type=script&setup=true&lang.ts
1038
+ var ln = { class: "absolute inset-0 flex items-center justify-center pointer-events-none" }, un = { class: "text-muted text-sm" }, dn = /* @__PURE__ */ A({
1039
+ __name: "CuiAutomationCanvas",
1040
+ props: {
1041
+ flow: {},
1042
+ mobile: { type: Boolean }
1043
+ },
1044
+ emits: ["node-select", "change"],
1045
+ setup(e, { expose: n, emit: i }) {
1046
+ let a = e, c = i, { t: l } = z(), { smBreakpoint: u } = ue(), { screenToFlowCoordinate: f, getViewport: m, dimensions: h } = Ie(), y = cn(), C = {
1047
+ "trigger-detection": p($),
1048
+ "trigger-sensor": p($),
1049
+ "trigger-schedule": p($),
1050
+ "trigger-webhook": p($),
1051
+ "trigger-system": p($),
1052
+ "trigger-manual": p($),
1053
+ "trigger-geofence": p($),
1054
+ "trigger-mqtt": p($),
1055
+ "condition-ifelse": p(rn),
1056
+ "condition-switch": p(on),
1057
+ "condition-sensorstate": p(rn),
1058
+ "condition-time": p(rn),
1059
+ "action-snapshot": p(Q),
1060
+ "action-sensor": p(Q),
1061
+ "action-notification": p(Q),
1062
+ "action-notification-control": p(Q),
1063
+ "action-assistant": p(Q),
1064
+ "action-http": p(Q),
1065
+ "action-mqtt": p(Q),
1066
+ "action-delay": p(Q),
1067
+ "action-variable": p(Q),
1068
+ "action-plugin": p(Q),
1069
+ "action-camera-control": p(Q),
1070
+ "action-image-input": p(Q),
1071
+ "action-output": p(Q)
1072
+ }, w = { default: p(Mt) }, T = j([...a.flow.nodes]), D = j([...a.flow.edges]);
1073
+ function O() {
1074
+ y.push(T.value, D.value);
1075
+ }
1076
+ function k() {
1077
+ let e = y.undo(T.value, D.value);
1078
+ e && (T.value = e.nodes, D.value = e.edges, c("node-select", null), c("change"));
1079
+ }
1080
+ function A() {
1081
+ let e = y.redo(T.value, D.value);
1082
+ e && (T.value = e.nodes, D.value = e.edges, c("node-select", null), c("change"));
1083
+ }
1084
+ function N(e) {
1085
+ c("node-select", e.node.id);
1086
+ }
1087
+ function te() {
1088
+ c("node-select", null);
1089
+ }
1090
+ function P(e) {
1091
+ let t = T.value.find((t) => t.id === e.source), n = T.value.find((t) => t.id === e.target);
1092
+ return !(!t || !n || e.source === e.target || n.type?.startsWith("trigger-"));
1093
+ }
1094
+ function ne(e) {
1095
+ if (!P(e)) return;
1096
+ O();
1097
+ let t = e.targetHandle ?? void 0, n = T.value.find((t) => t.id === e.target);
1098
+ if (n?.type?.startsWith("condition-")) {
1099
+ let n = D.value.find((n) => n.target === e.target && (n.targetHandle ?? void 0) === t);
1100
+ n && (D.value = D.value.filter((e) => e.id !== n.id));
1101
+ }
1102
+ let r = {
1103
+ id: `e-${e.source}-${e.sourceHandle ?? "out"}-${e.target}`,
1104
+ source: e.source,
1105
+ target: e.target,
1106
+ sourceHandle: e.sourceHandle ?? void 0,
1107
+ targetHandle: t
1108
+ };
1109
+ D.value.push(r);
1110
+ let i = Ht(T.value.find((t) => t.id === e.source)?.data, n?.data);
1111
+ i && n?.data && Object.assign(n.data, i), c("change");
1112
+ }
1113
+ function re(e) {
1114
+ e.some((e) => e.type === "remove") && (O(), c("node-select", null), c("change"));
1115
+ }
1116
+ function ie(e) {
1117
+ let t = e.dataTransfer?.getData("application/automationnode");
1118
+ if (!t) return;
1119
+ let n = G(t);
1120
+ if (!n) return;
1121
+ O();
1122
+ let r = f({
1123
+ x: e.clientX,
1124
+ y: e.clientY
1125
+ }), i = {
1126
+ id: pe(12),
1127
+ type: t,
1128
+ position: r,
1129
+ data: Ut({ ...n.defaults })
1130
+ };
1131
+ T.value = [...T.value, i], c("change");
1132
+ }
1133
+ function ae(e) {
1134
+ let t = G(e);
1135
+ if (!t) return;
1136
+ O();
1137
+ let { x: n, y: r, zoom: i } = m(), { width: a, height: o } = h.value, s = (-n + a / 2) / i, l = (-r + o / 2) / i, u = () => (Math.random() - .5) * 80, d = {
1138
+ id: pe(12),
1139
+ type: e,
1140
+ position: {
1141
+ x: s + u(),
1142
+ y: l + u()
1143
+ },
1144
+ data: Ut({ ...t.defaults })
1145
+ };
1146
+ return T.value = [...T.value, d], c("change"), d;
1147
+ }
1148
+ function oe(e) {
1149
+ O(), T.value = T.value.filter((t) => t.id !== e), D.value = D.value.filter((t) => t.source !== e && t.target !== e), c("change");
1150
+ }
1151
+ function se() {
1152
+ O(), T.value = [], D.value = [], c("change");
1153
+ }
1154
+ function ce() {
1155
+ return [...T.value];
1156
+ }
1157
+ function le() {
1158
+ return [...D.value];
1159
+ }
1160
+ function F(e, t) {
1161
+ let n = T.value.find((t) => t.id === e);
1162
+ if (n && (n.data = t, n.type === "condition-switch" && Array.isArray(t.cases))) {
1163
+ let n = new Set(t.cases.map(kt));
1164
+ D.value = D.value.filter((t) => t.source !== e || !t.sourceHandle?.startsWith("case-") || n.has(t.sourceHandle));
1165
+ }
1166
+ }
1167
+ function de(e) {
1168
+ let t = e.metaKey || e.ctrlKey;
1169
+ t && e.key === "z" && !e.shiftKey ? (e.preventDefault(), k()) : (t && e.key === "z" && e.shiftKey || t && e.key === "y") && (e.preventDefault(), A());
1170
+ }
1171
+ return x(() => a.flow._id, () => {
1172
+ T.value = [...a.flow.nodes], D.value = [...a.flow.edges], y.clear();
1173
+ }), ee(() => window.addEventListener("keydown", de)), r(() => window.removeEventListener("keydown", de)), n({
1174
+ removeNode: oe,
1175
+ addNodeAtCenter: ae,
1176
+ clearAll: se,
1177
+ getNodes: ce,
1178
+ getEdges: le,
1179
+ updateNodeData: F,
1180
+ undo: k,
1181
+ redo: A,
1182
+ canUndo: y.canUndo,
1183
+ canRedo: y.canRedo
1184
+ }), (n, r) => (o(), S("div", {
1185
+ ref: "canvasRef",
1186
+ class: d(["h-full w-full border-left-color border-bottom-color border-right-color rounded-b-xl overflow-hidden", { "rounded-none! border-0!": v(u) }]),
1187
+ onDrop: ie,
1188
+ onDragover: r[2] ||= t(() => {}, ["prevent"]),
1189
+ onDragenter: r[3] ||= t(() => {}, ["prevent"])
1190
+ }, [M(v(je), {
1191
+ nodes: v(T),
1192
+ "onUpdate:nodes": r[0] ||= (e) => _(T) ? T.value = e : null,
1193
+ edges: v(D),
1194
+ "onUpdate:edges": r[1] ||= (e) => _(D) ? D.value = e : null,
1195
+ "node-types": C,
1196
+ "edge-types": w,
1197
+ "default-viewport": {
1198
+ zoom: e.mobile ? .7 : .9,
1199
+ x: 0,
1200
+ y: 0
1201
+ },
1202
+ "snap-to-grid": !0,
1203
+ "snap-grid": [16, 16],
1204
+ "is-valid-connection": P,
1205
+ class: "automation-canvas",
1206
+ onNodeClick: N,
1207
+ onPaneClick: te,
1208
+ onConnect: ne,
1209
+ onNodesChange: re
1210
+ }, g({
1211
+ default: b(() => [M(v(ze), { gap: 16 }), M(v(Ot))]),
1212
+ _: 2
1213
+ }, [v(T).length ? void 0 : {
1214
+ name: "default",
1215
+ fn: b(() => [E("div", ln, [E("span", un, s(e.mobile ? v(l)("views.automation.no_nodes_mobile") : v(l)("views.automation.no_nodes")), 1)])]),
1216
+ key: "0"
1217
+ }]), 1032, [
1218
+ "nodes",
1219
+ "edges",
1220
+ "default-viewport"
1221
+ ])], 34));
1222
+ }
1223
+ }), fn = {
1224
+ "trigger-detection": F(() => import("./ConfigTriggerDetection-DyPQGt9M.js")),
1225
+ "trigger-sensor": F(() => import("./ConfigTriggerSensor-DoHMcwP4.js")),
1226
+ "trigger-schedule": F(() => import("./ConfigTriggerSchedule-_ThdB8Bb.js")),
1227
+ "trigger-webhook": F(() => import("./ConfigTriggerWebhook-5PBAadG8.js")),
1228
+ "trigger-mqtt": F(() => import("./ConfigTriggerMqtt-CM3KZqBc.js")),
1229
+ "trigger-system": F(() => import("./ConfigTriggerSystem-BYKbW4Zr.js")),
1230
+ "trigger-manual": F(() => import("./ConfigTriggerManual-B0DDQtoz.js")),
1231
+ "trigger-geofence": F(() => import("./ConfigTriggerGeofence-CGE-bH_t.js")),
1232
+ "action-snapshot": F(() => import("./ConfigActionSnapshot-fGmLl6jb.js")),
1233
+ "action-sensor": F(() => import("./ConfigActionSensor-BG3jZxge.js")),
1234
+ "action-notification": F(() => import("./ConfigActionNotification-CJWW10gt.js")),
1235
+ "action-notification-control": F(() => import("./ConfigActionNotificationControl-Bl41AVv1.js")),
1236
+ "action-assistant": F(() => import("./ConfigActionAssistant--3iWk9sq.js")),
1237
+ "action-http": F(() => import("./ConfigActionHttp-Du3n2Yj0.js")),
1238
+ "action-mqtt": F(() => import("./ConfigActionMqtt-DZd1BNUt.js")),
1239
+ "action-delay": F(() => import("./ConfigActionDelay-iZ3lPGzw.js")),
1240
+ "action-variable": F(() => import("./ConfigActionVariable-CK3vYDsr.js")),
1241
+ "action-plugin": F(() => import("./ConfigActionPlugin-B790PEk0.js")),
1242
+ "action-image-input": F(() => import("./ConfigActionImageInput-BrJrTZTY.js")),
1243
+ "action-output": F(() => import("./ConfigActionOutput-OTj7Lwgq.js")),
1244
+ "action-camera-control": F(() => import("./ConfigActionCameraControl-DbVXWTeA.js")),
1245
+ "condition-ifelse": F(() => import("./ConfigConditionIfElse-DyFLGg3y.js")),
1246
+ "condition-switch": F(() => import("./ConfigConditionSwitch-iDG_ubif.js")),
1247
+ "condition-sensorstate": F(() => import("./ConfigConditionSensorState-BUTfeFO2.js")),
1248
+ "condition-time": F(() => import("./ConfigConditionTime-DF6llIJq.js"))
1249
+ }, pn = { class: "h-full overflow-y-auto flex flex-col" }, mn = { class: "flex items-center gap-2 px-4 py-3 border-bottom-color" }, hn = { class: "flex-1 min-w-0" }, gn = { class: "text-sm font-semibold truncate text-color" }, _n = { class: "text-xs text-muted" }, vn = { class: "flex-1 overflow-y-auto" }, yn = { class: "text-color font-normal text-sm" }, bn = { class: "flex flex-col field-gap" }, xn = { class: "text-color font-normal text-sm" }, Sn = { class: "text-color font-normal text-sm" }, Cn = { class: "flex flex-col gap-3" }, wn = { class: "flex flex-col field-gap" }, Tn = { class: "cui-label" }, En = {
1250
+ key: 0,
1251
+ class: "flex flex-col field-gap"
1252
+ }, Dn = { class: "cui-label" }, On = {
1253
+ key: 1,
1254
+ class: "flex flex-col field-gap"
1255
+ }, kn = { class: "cui-label" }, An = { class: "px-4 pt-4 pb-[max(1rem,var(--cui-bottom-gap))] border-top-color" }, jn = /* @__PURE__ */ A({
1256
+ __name: "CuiAutomationNodeConfig",
1257
+ props: { node: {} },
1258
+ emits: [
1259
+ "close",
1260
+ "update:data",
1261
+ "delete"
1262
+ ],
1263
+ setup(e, { emit: t }) {
1264
+ let n = e, r = t, { t: i } = z(), a = y(() => n.node.type ? G(n.node.type) : void 0), c = y(() => n.node.type?.startsWith("action-")), l = y(() => {
1265
+ if (n.node.type) return fn[n.node.type];
1266
+ }), u = y(() => {
1267
+ let e = ["config"];
1268
+ return c.value && n.node.data.alias && e.push("alias"), a.value?.supportsRepeat && n.node.data.repeat > 1 && e.push("repeat"), e;
1269
+ });
1270
+ function d(e) {
1271
+ r("update:data", e);
1272
+ }
1273
+ return (t, n) => {
1274
+ let r = H, p = xe, g = Ce, _ = V, y = te, x = U, w = Se, T = Te, D = we;
1275
+ return o(), S("div", pn, [
1276
+ E("div", mn, [
1277
+ E("div", {
1278
+ class: "flex items-center justify-center w-8 h-8 rounded-md shrink-0",
1279
+ style: C({
1280
+ backgroundColor: `${v(a)?.color}20`,
1281
+ color: v(a)?.color
1282
+ })
1283
+ }, [(o(), m(f(v(a)?.icon), { class: "w-4 h-4" }))], 4),
1284
+ E("div", hn, [E("div", gn, s(v(a) ? v(i)(v(a).labelKey) : e.node.type), 1), E("div", _n, s(v(i)("views.automation.node_config")), 1)]),
1285
+ M(p, {
1286
+ severity: "secondary",
1287
+ text: "",
1288
+ rounded: "",
1289
+ class: "shrink-0 cui-icon-sm",
1290
+ onClick: n[0] ||= (e) => t.$emit("close")
1291
+ }, {
1292
+ icon: b(() => [M(r, {
1293
+ width: "100%",
1294
+ height: "100%"
1295
+ })]),
1296
+ _: 1
1297
+ })
1298
+ ]),
1299
+ E("div", vn, [M(D, {
1300
+ multiple: "",
1301
+ value: v(u),
1302
+ class: "w-[300px]"
1303
+ }, {
1304
+ default: b(() => [
1305
+ v(c) ? (o(), m(w, {
1306
+ key: 0,
1307
+ value: "alias"
1308
+ }, {
1309
+ default: b(() => [M(g, { class: "px-4 rounded-none!" }, {
1310
+ default: b(() => [E("span", yn, s(v(i)("components.automation_nodes.alias")), 1)]),
1311
+ _: 1
1312
+ }), M(x, { pt: { content: { class: "px-4 w-[300px]" } } }, {
1313
+ default: b(() => [E("div", bn, [M(_, {
1314
+ "model-value": e.node.data.alias ?? "",
1315
+ placeholder: v(i)("components.automation_nodes.alias_placeholder"),
1316
+ "onUpdate:modelValue": n[1] ||= (e) => d({ alias: e || void 0 })
1317
+ }, null, 8, ["model-value", "placeholder"]), M(y, {
1318
+ severity: "secondary",
1319
+ variant: "simple",
1320
+ size: "small",
1321
+ class: "cui-input-hint"
1322
+ }, {
1323
+ default: b(() => [O(s(v(i)("components.automation_nodes.alias_hint")), 1)]),
1324
+ _: 1
1325
+ })])]),
1326
+ _: 1
1327
+ })]),
1328
+ _: 1
1329
+ })) : h("", !0),
1330
+ v(l) ? (o(), m(w, {
1331
+ key: 1,
1332
+ value: "config"
1333
+ }, {
1334
+ default: b(() => [M(g, { class: "px-4 rounded-none!" }, {
1335
+ default: b(() => [E("span", xn, s(v(i)("views.automation.node_config")), 1)]),
1336
+ _: 1
1337
+ }), M(x, { pt: { content: { class: "px-4 w-[300px]" } } }, {
1338
+ default: b(() => [E("div", null, [(o(), m(f(v(l)), {
1339
+ data: e.node.data,
1340
+ "node-id": e.node.id,
1341
+ "onUpdate:data": d
1342
+ }, null, 40, ["data", "node-id"]))])]),
1343
+ _: 1
1344
+ })]),
1345
+ _: 1
1346
+ })) : h("", !0),
1347
+ v(a)?.supportsRepeat ? (o(), m(w, {
1348
+ key: 2,
1349
+ value: "repeat"
1350
+ }, {
1351
+ default: b(() => [M(g, { class: "px-4 rounded-none!" }, {
1352
+ default: b(() => [E("span", Sn, s(v(i)("components.automation_nodes.repeat")), 1)]),
1353
+ _: 1
1354
+ }), M(x, { pt: { content: { class: "px-4 w-[300px]" } } }, {
1355
+ default: b(() => [E("div", Cn, [
1356
+ E("div", wn, [E("label", Tn, s(v(i)("components.automation_nodes.repeat_count")), 1), M(T, {
1357
+ "model-value": e.node.data.repeat ?? 1,
1358
+ min: 1,
1359
+ max: 1e5,
1360
+ class: "w-full",
1361
+ "onUpdate:modelValue": n[2] ||= (e) => d({ repeat: e })
1362
+ }, null, 8, ["model-value"])]),
1363
+ e.node.data.repeat > 1 ? (o(), S("div", En, [
1364
+ E("label", Dn, s(v(i)("components.automation_nodes.repeat_concurrency")), 1),
1365
+ M(T, {
1366
+ "model-value": e.node.data.repeatConcurrency ?? 1,
1367
+ min: 1,
1368
+ max: 64,
1369
+ class: "w-full",
1370
+ "onUpdate:modelValue": n[3] ||= (e) => d({ repeatConcurrency: e })
1371
+ }, null, 8, ["model-value"]),
1372
+ M(y, {
1373
+ severity: "secondary",
1374
+ variant: "simple",
1375
+ size: "small",
1376
+ class: "cui-input-hint"
1377
+ }, {
1378
+ default: b(() => [O(s(v(i)("components.automation_nodes.repeat_concurrency_hint")), 1)]),
1379
+ _: 1
1380
+ })
1381
+ ])) : h("", !0),
1382
+ e.node.data.repeat > 1 ? (o(), S("div", On, [E("label", kn, s(v(i)("components.automation_nodes.repeat_delay")), 1), M(T, {
1383
+ "model-value": e.node.data.repeatDelayMs ?? 0,
1384
+ min: 0,
1385
+ max: 6e4,
1386
+ suffix: " ms",
1387
+ class: "w-full",
1388
+ "onUpdate:modelValue": n[4] ||= (e) => d({ repeatDelayMs: e })
1389
+ }, null, 8, ["model-value"])])) : h("", !0)
1390
+ ])]),
1391
+ _: 1
1392
+ })]),
1393
+ _: 1
1394
+ })) : h("", !0)
1395
+ ]),
1396
+ _: 1
1397
+ }, 8, ["value"])]),
1398
+ E("div", An, [M(p, {
1399
+ severity: "danger",
1400
+ fluid: "",
1401
+ class: "w-full cui-button-medium",
1402
+ label: v(i)("views.automation.delete_node"),
1403
+ onClick: n[5] ||= (e) => t.$emit("delete")
1404
+ }, null, 8, ["label"])])
1405
+ ]);
1406
+ };
1407
+ }
1408
+ }), Mn = {
1409
+ key: 0,
1410
+ class: "text-xs font-semibold text-muted uppercase tracking-wider mb-3"
1411
+ }, Nn = { class: "text-xs font-medium text-muted mb-2" }, Pn = { class: "flex flex-col gap-1.5" }, Fn = [
1412
+ "draggable",
1413
+ "onDragstart",
1414
+ "onClick"
1415
+ ], In = { class: "flex items-center gap-2.5 flex-1 min-w-0 px-3 py-2.5" }, Ln = { class: "flex-1 min-w-0" }, Rn = { class: "text-[13px] font-medium truncate text-color block leading-tight" }, zn = {
1416
+ key: 0,
1417
+ class: "text-[11px] text-muted block truncate mt-0.5 leading-tight"
1418
+ }, Bn = /*#__PURE__*/ ne(/* @__PURE__ */ A({
1419
+ __name: "CuiAutomationNodePalette",
1420
+ props: /*@__PURE__*/ n({ mode: {} }, K),
1421
+ emits: ["node-click"],
1422
+ setup(e) {
1423
+ let { t } = z(), n = [
1424
+ {
1425
+ key: "trigger",
1426
+ labelKey: "components.automation_nodes.category_triggers",
1427
+ nodes: W("trigger")
1428
+ },
1429
+ {
1430
+ key: "condition",
1431
+ labelKey: "components.automation_nodes.category_conditions",
1432
+ nodes: W("condition")
1433
+ },
1434
+ {
1435
+ key: "utility",
1436
+ labelKey: "components.automation_nodes.category_utilities",
1437
+ nodes: W("utility")
1438
+ },
1439
+ {
1440
+ key: "action",
1441
+ labelKey: "components.automation_nodes.category_actions",
1442
+ nodes: W("action")
1443
+ }
1444
+ ];
1445
+ function r(e, t) {
1446
+ e.dataTransfer && (e.dataTransfer.setData("application/automationnode", t), e.dataTransfer.effectAllowed = "move");
1447
+ }
1448
+ return (i, c) => (o(), S("div", { class: d(["overflow-y-auto p-3", e.mode === "drag" ? "h-full pb-[var(--cui-bottom-gap)]" : "pb-0"]) }, [e.mode === "drag" ? (o(), S("div", Mn, s(v(t)("views.automation.node_palette")), 1)) : h("", !0), (o(), S(w, null, a(n, (c, l) => E("div", {
1449
+ key: c.key,
1450
+ class: d({ "mb-4": l !== n.length - 1 })
1451
+ }, [E("div", Nn, s(v(t)(c.labelKey)), 1), E("div", Pn, [(o(!0), S(w, null, a(c.nodes, (n) => (o(), S("div", {
1452
+ key: n.type,
1453
+ class: d(["automation-palette-node", e.mode === "drag" ? "cursor-grab active:cursor-grabbing" : "cursor-pointer"]),
1454
+ draggable: e.mode === "drag",
1455
+ onDragstart: (t) => e.mode === "drag" ? r(t, n.type) : void 0,
1456
+ onClick: (t) => e.mode === "click" ? i.$emit("node-click", n.type) : void 0
1457
+ }, [E("div", {
1458
+ class: "automation-palette-node__accent",
1459
+ style: C({ backgroundColor: n.color })
1460
+ }, null, 4), E("div", In, [E("div", {
1461
+ class: "flex items-center justify-center w-8 h-8 rounded-lg shrink-0",
1462
+ style: C({
1463
+ backgroundColor: `${n.color}15`,
1464
+ color: n.color
1465
+ })
1466
+ }, [(o(), m(f(n.icon), { class: "w-4.5 h-4.5" }))], 4), E("div", Ln, [E("span", Rn, s(v(t)(n.labelKey)), 1), e.mode === "click" ? (o(), S("span", zn, s(v(t)(n.descriptionKey)), 1)) : h("", !0)])])], 42, Fn))), 128))])], 2)), 64))], 2));
1467
+ }
1468
+ }), [["__scopeId", "data-v-218bcc30"]]), Vn = { class: "flex items-center gap-2 px-3 py-2 border-bottom-color card-background min-h-[48px]" }, Hn = /* @__PURE__ */ A({
1469
+ __name: "CuiAutomationToolbar",
1470
+ props: {
1471
+ flow: {},
1472
+ showHistory: { type: Boolean }
1473
+ },
1474
+ emits: [
1475
+ "update:name",
1476
+ "toggle-enabled",
1477
+ "toggle-suppress-duplicates",
1478
+ "toggle-single-execution",
1479
+ "show-history"
1480
+ ],
1481
+ setup(e, { emit: t }) {
1482
+ let n = e, r = t, { t: i } = z(), { smBreakpoint: a } = ue(), s = T("menuRef"), c = y(() => [{
1483
+ key: "suppressDuplicates",
1484
+ label: i("views.automation.suppress_duplicates"),
1485
+ description: i("views.automation.suppress_duplicates_hint"),
1486
+ toggle: !0,
1487
+ toggleState: n.flow.suppressDuplicates,
1488
+ onClick: () => r("toggle-suppress-duplicates")
1489
+ }, {
1490
+ key: "singleExecution",
1491
+ label: i("views.automation.single_execution"),
1492
+ description: i("views.automation.single_execution_hint"),
1493
+ toggle: !0,
1494
+ toggleState: n.flow.singleExecution,
1495
+ onClick: () => r("toggle-single-execution")
1496
+ }]);
1497
+ return (t, n) => {
1498
+ let r = Ae, l = xe, u = V, f = ce, p = P, g = He, _ = ie, y = N;
1499
+ return o(), S("div", Vn, [
1500
+ v(a) ? h("", !0) : (o(), m(l, {
1501
+ key: 0,
1502
+ severity: "secondary",
1503
+ text: "",
1504
+ rounded: "",
1505
+ class: "cui-icon-md shrink-0",
1506
+ onClick: n[0] ||= (e) => t.$router.push("/automations")
1507
+ }, {
1508
+ icon: b(() => [M(r, {
1509
+ width: "100%",
1510
+ height: "100%"
1511
+ })]),
1512
+ _: 1
1513
+ })),
1514
+ M(u, {
1515
+ "model-value": e.flow.name,
1516
+ class: d(["font-medium text-sm min-w-0 flex-1", { "max-w-[300px]": !v(a) }]),
1517
+ placeholder: v(i)("views.automations.flow_name_placeholder"),
1518
+ "onUpdate:modelValue": n[1] ||= (e) => t.$emit("update:name", String(e ?? ""))
1519
+ }, null, 8, [
1520
+ "model-value",
1521
+ "class",
1522
+ "placeholder"
1523
+ ]),
1524
+ n[5] ||= E("div", { class: "flex-1" }, null, -1),
1525
+ M(f, {
1526
+ "model-value": e.flow.enabled,
1527
+ class: "shrink-0",
1528
+ "onUpdate:modelValue": n[2] ||= (e) => t.$emit("toggle-enabled")
1529
+ }, null, 8, ["model-value"]),
1530
+ e.showHistory ? D((o(), m(l, {
1531
+ key: 1,
1532
+ severity: "secondary",
1533
+ text: "",
1534
+ rounded: "",
1535
+ class: "cui-icon-md shrink-0",
1536
+ onClick: n[3] ||= (e) => t.$emit("show-history")
1537
+ }, {
1538
+ icon: b(() => [M(p, {
1539
+ width: "100%",
1540
+ height: "100%"
1541
+ })]),
1542
+ _: 1
1543
+ })), [[
1544
+ y,
1545
+ { value: v(i)("views.automations.run_history") },
1546
+ void 0,
1547
+ { bottom: !0 }
1548
+ ]]) : h("", !0),
1549
+ M(l, {
1550
+ severity: "secondary",
1551
+ text: "",
1552
+ rounded: "",
1553
+ class: "cui-icon-md shrink-0",
1554
+ onClick: n[4] ||= (e) => v(s)?.toggleMenu(e)
1555
+ }, {
1556
+ icon: b(() => [M(g, {
1557
+ width: "100%",
1558
+ height: "100%"
1559
+ })]),
1560
+ _: 1
1561
+ }),
1562
+ M(_, {
1563
+ ref_key: "menuRef",
1564
+ ref: s,
1565
+ items: v(c),
1566
+ "auto-hide": !1,
1567
+ popover: { pt: {
1568
+ root: { class: "w-[18rem]" },
1569
+ content: { class: "p-0! rounded-xl! overflow-hidden!" }
1570
+ } }
1571
+ }, null, 8, ["items"])
1572
+ ]);
1573
+ };
1574
+ }
1575
+ }), Un = { class: "flex flex-col gap-4 w-full" }, Wn = {
1576
+ key: 1,
1577
+ class: "text-sm text-muted"
1578
+ }, Gn = /* @__PURE__ */ A({
1579
+ __name: "CuiAutomationMobileNodeConfig",
1580
+ props: { node: {} },
1581
+ setup(e, { expose: t }) {
1582
+ let n = e, { t: r } = z(), i = Z(), a = y(() => {
1583
+ if (n.node.type) return fn[n.node.type];
1584
+ });
1585
+ function c(e) {
1586
+ if (!i.draft) return;
1587
+ let t = i.draft.nodes.find((e) => e.id === n.node.id);
1588
+ t?.data && (Object.assign(t.data, e), i.draftDirty = !0);
1589
+ }
1590
+ return t({ onConfirm: async () => {
1591
+ if (i.draft) {
1592
+ let e = n.node.id;
1593
+ i.draft.nodes = i.draft.nodes.filter((t) => t.id !== e), i.draft.edges = i.draft.edges.filter((t) => t.source !== e && t.target !== e);
1594
+ }
1595
+ } }), (t, n) => (o(), S("div", Un, [v(a) ? (o(), m(f(v(a)), {
1596
+ key: 0,
1597
+ data: e.node.data,
1598
+ "node-id": e.node.id,
1599
+ "onUpdate:data": c
1600
+ }, null, 40, ["data", "node-id"])) : (o(), S("div", Wn, s(v(r)("views.automation.no_node_selected")), 1))]));
1601
+ }
1602
+ }), Kn = { class: "h-full w-full relative overflow-hidden flex flex-col" }, qn = { class: "flex flex-1 min-h-0" }, Jn = { class: "relative w-6 h-6" }, Yn = {
1603
+ key: 1,
1604
+ class: "flex flex-1 items-center justify-center"
1605
+ }, Xn = {
1606
+ key: 2,
1607
+ class: "flex flex-1 items-center justify-center"
1608
+ }, Zn = { class: "text-muted" }, Qn = /*@__PURE__*/ A({
1609
+ __name: "Automation",
1610
+ setup(e) {
1611
+ let t = F(() => import("./CuiAutomationRunsDialog-DkK_ar5G.js")), n = new De(), r = oe(), i = se(), { t: a } = z(), { smBreakpoint: c } = ue(), { bottombarHeight: u } = ae(), p = ge(), g = re(), O = Z(), k = y(() => r.params.id), A = y(() => k.value === "new"), ee = y(() => ve(void 0, "admin")), { data: te, isBusy: P } = n.getAutomationQuery(k), { mutateAsync: ne } = n.createAutomationQuery(), { mutateAsync: ie } = n.patchAutomationQuery(), { mutateAsync: ce } = n.deleteAutomationQuery(), { mutateAsync: _e } = n.triggerAutomationQuery(), I = T("canvasRef"), L = j(!1), R = j(!1), ye = j(!1), be = j(!1), B = !1, V, H = y({
1612
+ get: () => O.draft,
1613
+ set: (e) => {
1614
+ O.draft = e;
1615
+ }
1616
+ }), U = y(() => {
1617
+ if (H.value && O.selectedNodeId) return H.value.nodes.find((e) => e.id === O.selectedNodeId);
1618
+ }), Se = y(() => {
1619
+ if (!c.value && U.value) return "calc(300px + 1.25rem + var(--safe-area-inset-right))";
1620
+ }), Ce = y(() => [
1621
+ ...H.value?.nodes.some((e) => e.type === "trigger-manual") ?? !1 ? [{
1622
+ label: a("views.automation.run"),
1623
+ icon: fe,
1624
+ buttonProps: { disabled: A.value || R.value },
1625
+ command: () => He()
1626
+ }] : [],
1627
+ {
1628
+ label: a("views.automation.undo"),
1629
+ icon: Be,
1630
+ buttonProps: { disabled: !ye.value },
1631
+ command: () => {
1632
+ I.value?.undo(), K();
1633
+ }
1634
+ },
1635
+ {
1636
+ label: a("views.automation.redo"),
1637
+ icon: Pe,
1638
+ buttonProps: { disabled: !be.value },
1639
+ command: () => {
1640
+ I.value?.redo(), K();
1641
+ }
1642
+ },
1643
+ {
1644
+ label: a("views.automation.export_blueprint"),
1645
+ icon: $e,
1646
+ command: () => Ue()
1647
+ },
1648
+ {
1649
+ label: a("views.automation.clear"),
1650
+ icon: Re,
1651
+ command: () => We()
1652
+ },
1653
+ {
1654
+ label: a("views.automations.delete"),
1655
+ icon: nt,
1656
+ buttonProps: { severity: "danger" },
1657
+ command: () => Ge()
1658
+ }
1659
+ ]);
1660
+ function we() {
1661
+ ye.value = I.value?.canUndo ?? !1, be.value = I.value?.canRedo ?? !1;
1662
+ }
1663
+ function Te() {
1664
+ H.value = {
1665
+ _id: pe(12),
1666
+ name: a("views.automation.untitled"),
1667
+ enabled: !1,
1668
+ nodes: [],
1669
+ edges: [],
1670
+ suppressDuplicates: !1,
1671
+ singleExecution: !1,
1672
+ createdAt: Date.now(),
1673
+ updatedAt: Date.now()
1674
+ }, O.selectedNodeId = null;
1675
+ }
1676
+ function W() {
1677
+ clearTimeout(V), V = setTimeout(() => {
1678
+ J(), O.validationIssues = It(H.value);
1679
+ }, 300);
1680
+ }
1681
+ function K() {
1682
+ R.value = !0, we(), W();
1683
+ }
1684
+ function q() {
1685
+ p.openComponentDialog(t, { data: {
1686
+ title: a("views.automations.run_history"),
1687
+ contentProps: { flowId: k.value },
1688
+ hideConfirmButton: !0
1689
+ } });
1690
+ }
1691
+ function je() {
1692
+ J(), K();
1693
+ }
1694
+ function Me(e) {
1695
+ H.value && (H.value.name = e, K());
1696
+ }
1697
+ function Fe(e, t) {
1698
+ if (!H.value) return;
1699
+ let n = H.value.nodes.find((t) => t.id === e);
1700
+ if (n?.data) {
1701
+ if (!Object.entries(t).some(([e, t]) => n.data[e] !== t)) return;
1702
+ Object.assign(n.data, t), I.value?.updateNodeData(e, { ...n.data }), K();
1703
+ }
1704
+ }
1705
+ function Ie() {
1706
+ if (!H.value) return {};
1707
+ let e = I.value?.getNodes?.() ?? H.value.nodes, t = I.value?.getEdges?.() ?? H.value.edges;
1708
+ return {
1709
+ name: H.value.name,
1710
+ enabled: H.value.enabled,
1711
+ suppressDuplicates: H.value.suppressDuplicates,
1712
+ singleExecution: H.value.singleExecution,
1713
+ nodes: e.map((e) => ({
1714
+ id: e.id,
1715
+ type: e.type ?? "",
1716
+ position: e.position,
1717
+ data: e.data ?? {}
1718
+ })),
1719
+ edges: t.map((e) => ({
1720
+ id: e.id,
1721
+ source: e.source,
1722
+ target: e.target,
1723
+ sourceHandle: e.sourceHandle ?? void 0,
1724
+ targetHandle: e.targetHandle ?? void 0
1725
+ }))
1726
+ };
1727
+ }
1728
+ async function Le() {
1729
+ if (!H.value) return;
1730
+ J();
1731
+ let e = Ie();
1732
+ try {
1733
+ if (A.value) {
1734
+ let t = await ne({ data: e });
1735
+ R.value = !1, i.replace(`/automations/${t._id}`);
1736
+ } else {
1737
+ let t = await ie({
1738
+ id: H.value._id,
1739
+ data: e
1740
+ });
1741
+ if (R.value = !1, t?.nodes && H.value) for (let e of t.nodes) {
1742
+ let t = H.value.nodes.find((t) => t.id === e.id);
1743
+ t?.data && e.data && Object.assign(t.data, e.data);
1744
+ }
1745
+ g.add({
1746
+ severity: "success",
1747
+ detail: a("views.automation.saved"),
1748
+ life: 3e3
1749
+ });
1750
+ }
1751
+ } catch {
1752
+ g.add({
1753
+ severity: "error",
1754
+ detail: a("views.automation.save_failed"),
1755
+ life: 3e3
1756
+ });
1757
+ }
1758
+ }
1759
+ function J() {
1760
+ if (!H.value) return;
1761
+ let e = I.value?.getNodes(), t = I.value?.getEdges();
1762
+ e && (H.value.nodes = e), t && (H.value.edges = t);
1763
+ }
1764
+ function Y(e) {
1765
+ if (O.selectedNodeId = e, c.value && e) {
1766
+ J();
1767
+ let t = H.value?.nodes.find((t) => t.id === e);
1768
+ if (!t) return;
1769
+ let n = t.type ? G(t.type) : void 0, r = n ? a(n.labelKey) : "Node", i = t.id;
1770
+ p.openComponentDialog(Gn, {
1771
+ data: {
1772
+ title: r,
1773
+ confirmText: a("views.automation.delete_node"),
1774
+ confirmButtonProps: { severity: "danger" },
1775
+ contentProps: { node: {
1776
+ id: t.id,
1777
+ type: t.type,
1778
+ data: t.data
1779
+ } }
1780
+ },
1781
+ onSettled: () => {
1782
+ H.value?.nodes.some((e) => e.id === i) || (I.value?.removeNode(i), K());
1783
+ }
1784
+ });
1785
+ }
1786
+ }
1787
+ function X(e) {
1788
+ L.value = !1, I.value?.addNodeAtCenter(e), K();
1789
+ }
1790
+ function ze() {
1791
+ O.selectedNodeId && (I.value?.removeNode(O.selectedNodeId), H.value && (H.value.nodes = H.value.nodes.filter((e) => e.id !== O.selectedNodeId), H.value.edges = H.value.edges.filter((e) => e.source !== O.selectedNodeId && e.target !== O.selectedNodeId)), O.selectedNodeId = null, O.lastOutput = null, K());
1792
+ }
1793
+ async function He() {
1794
+ if (H.value && !A.value) try {
1795
+ O.lastOutput = null;
1796
+ let e = await _e({ id: H.value._id });
1797
+ e?.output && Object.keys(e.output).length > 0 && (O.lastOutput = e.output), g.add({
1798
+ severity: "success",
1799
+ detail: a("views.automation.triggered"),
1800
+ life: 3e3
1801
+ });
1802
+ } catch {
1803
+ g.add({
1804
+ severity: "error",
1805
+ detail: a("views.automation.trigger_failed"),
1806
+ life: 3e3
1807
+ });
1808
+ }
1809
+ }
1810
+ function Ue() {
1811
+ if (!H.value) return;
1812
+ Le();
1813
+ let e = {
1814
+ version: 1,
1815
+ name: H.value.name,
1816
+ nodes: Oe(H.value.nodes),
1817
+ edges: H.value.edges
1818
+ }, t = JSON.stringify(e, null, 2), n = new Blob([t], { type: "application/json" });
1819
+ he({
1820
+ blob: n,
1821
+ filename: `${H.value.name.replace(/\s+/g, "_").toLowerCase()}.blueprint.json`
1822
+ });
1823
+ }
1824
+ function We() {
1825
+ p.openTextDialog({
1826
+ data: {
1827
+ title: a("views.automation.clear"),
1828
+ contentText: a("views.automation.clear_confirm"),
1829
+ confirmText: a("views.automation.clear")
1830
+ },
1831
+ onConfirm: async () => {
1832
+ I.value?.clearAll(), H.value && (H.value.nodes = [], H.value.edges = []), O.selectedNodeId = null, K();
1833
+ }
1834
+ });
1835
+ }
1836
+ function Ge() {
1837
+ if (!H.value) return;
1838
+ let e = H.value._id;
1839
+ p.openTextDialog({
1840
+ data: {
1841
+ title: a("views.automations.delete"),
1842
+ contentText: a("views.automations.delete_confirm"),
1843
+ confirmText: a("views.automations.delete")
1844
+ },
1845
+ onConfirm: async () => {
1846
+ await ce({ id: e }), i.push("/automations");
1847
+ }
1848
+ });
1849
+ }
1850
+ function Ke() {
1851
+ i.push("/automations");
1852
+ }
1853
+ return x(k, (e) => {
1854
+ O.activeFlowId = e === "new" ? null : e ?? null, O.selectedNodeId = null, O.lastOutput = null, R.value = !1, e === "new" ? Te() : H.value = null;
1855
+ }, { immediate: !0 }), x(te, (e) => {
1856
+ e && !R.value && (H.value = JSON.parse(JSON.stringify(e)), O.validationIssues = It(H.value));
1857
+ }, { immediate: !0 }), x(() => O.draftDirty, (e) => {
1858
+ e && (O.draftDirty = !1, K());
1859
+ }), de((e) => !R.value || B ? !0 : (p.openTextDialog({
1860
+ data: {
1861
+ title: a("views.automation.unsaved_title"),
1862
+ contentText: a("views.automation.unsaved_message"),
1863
+ confirmText: a("views.automation.discard")
1864
+ },
1865
+ onConfirm: async () => {
1866
+ B = !0, i.push(e.fullPath);
1867
+ }
1868
+ }), !1)), (e, t) => {
1869
+ let n = Ae, r = xe, i = me, p = Ee, g = ke, y = le, x = N;
1870
+ return o(), S("div", Kn, [M(i, { position: "left" }, {
1871
+ default: b(() => [M(r, {
1872
+ severity: "secondary",
1873
+ text: "",
1874
+ class: "cui-button p-2 text-color non-draggable-region",
1875
+ onClick: Ke
1876
+ }, {
1877
+ icon: b(() => [M(n, { class: "w-6 h-6" })]),
1878
+ _: 1
1879
+ })]),
1880
+ _: 1
1881
+ }), v(H) ? (o(), S(w, { key: 0 }, [
1882
+ M(Hn, {
1883
+ flow: v(H),
1884
+ "show-history": !v(A) && v(ee),
1885
+ onShowHistory: q,
1886
+ "onUpdate:name": Me,
1887
+ onToggleEnabled: t[0] ||= (e) => {
1888
+ v(H).enabled = !v(H).enabled, K();
1889
+ },
1890
+ onToggleSuppressDuplicates: t[1] ||= (e) => {
1891
+ v(H).suppressDuplicates = !v(H).suppressDuplicates, K();
1892
+ },
1893
+ onToggleSingleExecution: t[2] ||= (e) => {
1894
+ v(H).singleExecution = !v(H).singleExecution, K();
1895
+ }
1896
+ }, null, 8, ["flow", "show-history"]),
1897
+ E("div", qn, [
1898
+ v(c) ? h("", !0) : (o(), m(Bn, {
1899
+ key: 0,
1900
+ class: "w-[240px] shrink-0"
1901
+ })),
1902
+ M(dn, {
1903
+ ref_key: "canvasRef",
1904
+ ref: I,
1905
+ flow: v(H),
1906
+ mobile: v(c),
1907
+ class: d(["flex-1 min-w-0", { "mb-[var(--cui-bottom-gap)] h-auto!": !v(c) }]),
1908
+ onNodeSelect: Y,
1909
+ onChange: je
1910
+ }, null, 8, [
1911
+ "flow",
1912
+ "mobile",
1913
+ "class"
1914
+ ]),
1915
+ v(c) ? h("", !0) : (o(), S("div", {
1916
+ key: 1,
1917
+ class: "shrink-0 overflow-hidden transition-[width] duration-200 ease-in-out",
1918
+ style: C({ width: v(U) ? "300px" : "0px" })
1919
+ }, [v(U) ? (o(), m(jn, {
1920
+ key: 0,
1921
+ node: v(U),
1922
+ class: "w-[300px]",
1923
+ onClose: t[3] ||= (e) => v(O).selectedNodeId = null,
1924
+ "onUpdate:data": t[4] ||= (e) => Fe(v(O).selectedNodeId, e),
1925
+ onDelete: ze
1926
+ }, null, 8, ["node"])) : h("", !0)], 4))
1927
+ ]),
1928
+ M(p, {
1929
+ model: v(Ce),
1930
+ direction: "up",
1931
+ "transition-delay": 80,
1932
+ "tooltip-options": {
1933
+ position: "left",
1934
+ event: void 0
1935
+ },
1936
+ style: C({
1937
+ position: "fixed",
1938
+ zIndex: 15,
1939
+ bottom: `calc(${v(u)}px + ${v(R) ? "4.25rem" : "1.25rem"} + var(--safe-area-inset-bottom))`,
1940
+ right: v(Se) || "calc(1.25rem + var(--safe-area-inset-right))",
1941
+ transition: "right 0.2s ease-in-out, bottom 0.2s ease-in-out"
1942
+ }),
1943
+ pt: { root: { style: "pointer-events: none" } }
1944
+ }, {
1945
+ button: b(({ visible: e, toggleCallback: t }) => [M(r, {
1946
+ rounded: "",
1947
+ severity: "secondary",
1948
+ class: "pointer-events-auto",
1949
+ onClick: t
1950
+ }, {
1951
+ icon: b(() => [E("div", Jn, [
1952
+ E("div", {
1953
+ class: d(["absolute top-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full transform transition-all duration-100 origin-center", { "w-4 h-[2px] rotate-45 top-1/2 -translate-y-1/2 rounded-none": e }]),
1954
+ style: { backgroundColor: "var(--text-color)" }
1955
+ }, null, 2),
1956
+ E("div", {
1957
+ class: d(["absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-1.5 h-1.5 rounded-full transition-all duration-100", { "opacity-0 scale-0": e }]),
1958
+ style: { backgroundColor: "var(--text-color)" }
1959
+ }, null, 2),
1960
+ E("div", {
1961
+ class: d(["absolute bottom-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full transform transition-all duration-100 origin-center", { "w-4 h-[2px] -rotate-45 bottom-1/2 translate-y-1/2 rounded-none": e }]),
1962
+ style: { backgroundColor: "var(--text-color)" }
1963
+ }, null, 2)
1964
+ ])]),
1965
+ _: 2
1966
+ }, 1032, ["onClick"])]),
1967
+ item: b(({ item: e, toggleCallback: t }) => [D((o(), m(r, l({ severity: "secondary" }, e.buttonProps, {
1968
+ rounded: "",
1969
+ class: "pointer-events-auto",
1970
+ onClick: t
1971
+ }), {
1972
+ icon: b(() => [(o(), m(f(e.icon)))]),
1973
+ _: 2
1974
+ }, 1040, ["onClick"])), [[x, { value: e.label }]])]),
1975
+ _: 1
1976
+ }, 8, ["model", "style"]),
1977
+ v(c) ? D((o(), m(r, {
1978
+ key: 0,
1979
+ rounded: "",
1980
+ class: "pointer-events-auto text-white",
1981
+ style: C({
1982
+ position: "fixed",
1983
+ zIndex: 15,
1984
+ bottom: `calc(${v(u)}px + 1.25rem + var(--safe-area-inset-bottom))`,
1985
+ right: "calc(4.75rem + var(--safe-area-inset-right))"
1986
+ }),
1987
+ onClick: t[5] ||= (e) => L.value = !0
1988
+ }, {
1989
+ icon: b(() => [M(v(Ve), { class: "w-5 h-5" })]),
1990
+ _: 1
1991
+ }, 8, ["style"])), [[x, { value: v(a)("views.automation.add_step") }]]) : h("", !0),
1992
+ v(R) ? D((o(), m(r, {
1993
+ key: 1,
1994
+ rounded: "",
1995
+ severity: "success",
1996
+ class: "pointer-events-auto text-white",
1997
+ style: C({
1998
+ position: "fixed",
1999
+ zIndex: 15,
2000
+ bottom: `calc(${v(u)}px + 1.25rem + var(--safe-area-inset-bottom))`,
2001
+ right: v(Se) || "calc(1.25rem + var(--safe-area-inset-right))",
2002
+ transition: "right 0.2s ease-in-out"
2003
+ }),
2004
+ onClick: Le
2005
+ }, {
2006
+ icon: b(() => [M(v(Ne), { class: "w-5 h-5" })]),
2007
+ _: 1
2008
+ }, 8, ["style"])), [[x, { value: v(a)("views.automation.save") }]]) : h("", !0),
2009
+ M(g, {
2010
+ modelValue: v(L),
2011
+ "onUpdate:modelValue": t[6] ||= (e) => _(L) ? L.value = e : null,
2012
+ title: v(a)("views.automation.add_step"),
2013
+ "max-height": "70vh"
2014
+ }, {
2015
+ default: b(() => [M(Bn, {
2016
+ mode: "click",
2017
+ onNodeClick: X
2018
+ })]),
2019
+ _: 1
2020
+ }, 8, ["modelValue", "title"])
2021
+ ], 64)) : v(P) ? (o(), S("div", Yn, [M(y, {
2022
+ class: "!w-8 !h-8",
2023
+ "stroke-width": "5"
2024
+ })])) : (o(), S("div", Xn, [E("span", Zn, s(v(a)("views.automations.no_automations")), 1)]))]);
2025
+ };
2026
+ }
2027
+ }), $n = /* @__PURE__ */ e({ default: () => er }), er = Qn;
2028
+ //#endregion
2029
+ export { Z as a, er as default, Ge as i, We as n, Ke as r, $n as t };