@camera.ui/server 2.1.5 → 2.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. package/dist/interface/assets/{404-C0XhilKM.js → 404-EUyzR8Cu.js} +1 -1
  2. package/dist/interface/assets/{About-DZsTev1Z.js → About-BmfMwt66.js} +1 -1
  3. package/dist/interface/assets/{Automation-DftZGCt6.js → Automation-DtTMxMlL.js} +3 -3
  4. package/dist/interface/assets/{AutomationImport-CWz3wK45.js → AutomationImport-Cxrhgzer.js} +2 -2
  5. package/dist/interface/assets/{AutomationStore-BDgJ0e1s.js → AutomationStore-aTGlzTcI.js} +2 -2
  6. package/dist/interface/assets/{AutomationStoreDetail-BxjQz384.js → AutomationStoreDetail-BtmSvtyE.js} +2 -2
  7. package/dist/interface/assets/{Automations-CYK5CbkM.js → Automations-CBeEWCad.js} +2 -2
  8. package/dist/interface/assets/Camera-9tFj730F.js +2 -0
  9. package/dist/interface/assets/{CameraConsole-CNULG_YE.js → CameraConsole-rCJr-qfx.js} +1 -1
  10. package/dist/interface/assets/Cameras-BZkbEN1q.css +1 -0
  11. package/dist/interface/assets/{Cameras-CXWCJWzR.js → Cameras-DFuh9jxK.js} +2 -2
  12. package/dist/interface/assets/{Camview-C09leXh7.js → Camview-C2byPDDS.js} +1 -1
  13. package/dist/interface/assets/{Camview-UCj_OW0s.css → Camview-DxxONfeK.css} +1 -1
  14. package/dist/interface/assets/{Config-DNOXV5ek.js → Config-C_IAFeWx.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionCameraControl-BPfBxvxr.js → ConfigActionCameraControl-Caqlckcz.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionHttp-ipkZdIWF.js → ConfigActionHttp-DcQCJ4zV.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionImageInput-CvETCNjG.js → ConfigActionImageInput-DkgxdP2U.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionMqtt-B8ZNU0UW.js → ConfigActionMqtt-Dp2-YpS9.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionNotification-B-nC2J6v.js → ConfigActionNotification-DDbDqLLs.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionNotificationControl-DjxS7_ID.js → ConfigActionNotificationControl-CX83znhY.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionOutput-QG12dzwm.js → ConfigActionOutput-kMcDrgsm.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionPlugin-Q2Tcpdgm.js → ConfigActionPlugin-Bv2Ke9_L.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionSensor-BTFyt4ER.js → ConfigActionSensor-CogS-K7S.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionSnapshot-DfnAex92.js → ConfigActionSnapshot-CdIciF5F.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionVariable-COrJ-lFp.js → ConfigActionVariable-DS-nQLns.js} +1 -1
  26. package/dist/interface/assets/{ConfigConditionIfElse-Dpc6Cwpf.js → ConfigConditionIfElse-BWYzHNnH.js} +1 -1
  27. package/dist/interface/assets/{ConfigConditionSensorState-BQXY2c2t.js → ConfigConditionSensorState-CxiaJpOs.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionSwitch-BuI8_3Bp.js → ConfigConditionSwitch-l01kWXVF.js} +1 -1
  29. package/dist/interface/assets/{ConfigSensorValueInput-vY0DCyRn.js → ConfigSensorValueInput-Dm9r6m8t.js} +1 -1
  30. package/dist/interface/assets/{ConfigTriggerDetection-ChUtfRtm.js → ConfigTriggerDetection-CvK9Hvcd.js} +1 -1
  31. package/dist/interface/assets/{ConfigTriggerGeofence-fHTNHtGp.js → ConfigTriggerGeofence-DQcdG6av.js} +1 -1
  32. package/dist/interface/assets/{ConfigTriggerMqtt-ZeRfexN1.js → ConfigTriggerMqtt-16hSjN-I.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerSensor-BJkKOmTg.js → ConfigTriggerSensor-DkVWre58.js} +1 -1
  34. package/dist/interface/assets/{ConfigTriggerSystem-DedCuH2F.js → ConfigTriggerSystem-BAd9IeRa.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerWebhook-DPz9NPdp.js → ConfigTriggerWebhook-EmrFSoiV.js} +1 -1
  36. package/dist/interface/assets/{Console-D5hGnmUg.js → Console-C7lP5TMv.js} +1 -1
  37. package/dist/interface/assets/{CuiAutomationRunsDialog-BP-FYYXr.js → CuiAutomationRunsDialog-BoGUmS-Q.js} +1 -1
  38. package/dist/interface/assets/{CuiBottomSheet-B25DDhsj.js → CuiBottomSheet-DxrKqjWh.js} +1 -1
  39. package/dist/interface/assets/CuiBottomSheet-II-Ajj4k.js +1 -0
  40. package/dist/interface/assets/{CuiCameraPipCard-CeY7Gy9_.js → CuiCameraPipCard-C2nZsnPM.js} +1 -1
  41. package/dist/interface/assets/{CuiCameraRecordings-CqwUqjAU.js → CuiCameraRecordings-B4pJPGOQ.js} +1 -1
  42. package/dist/interface/assets/{CuiCameraShares-B5pdZrh3.js → CuiCameraShares-DBZ01JcG.js} +1 -1
  43. package/dist/interface/assets/{CuiCameraTable-BhUWRnwr.js → CuiCameraTable-BlJHb3gX.js} +2 -2
  44. package/dist/interface/assets/CuiCameraTable-WOrw4_LR.js +1 -0
  45. package/dist/interface/assets/{CuiConsole-CAHUWadU.js → CuiConsole-D56cxVKE.js} +1 -1
  46. package/dist/interface/assets/CuiDataTable-Ca51CpsO.js +1 -0
  47. package/dist/interface/assets/{CuiLightControl-8aZiuOCv.js → CuiLightControl-DP4pbkjr.js} +1 -1
  48. package/dist/interface/assets/CuiMarkdownContent-DIycyLeP.js +1 -0
  49. package/dist/interface/assets/{CuiMarkdownContent-BfJOBp3S.js → CuiMarkdownContent-PSq4kE1G.js} +1 -1
  50. package/dist/interface/assets/{CuiPluginCard-BZPiou4m.js → CuiPluginCard-DSQ7w6Nl.js} +2 -2
  51. package/dist/interface/assets/{CuiPluginCategoryChip-1h2moEVm.js → CuiPluginCategoryChip-DiUXddOe.js} +1 -1
  52. package/dist/interface/assets/{CuiPluginOAuthButton-CI5gdHHd.js → CuiPluginOAuthButton-ZRJJct-f.js} +2 -2
  53. package/dist/interface/assets/{CuiPluginTrustBadge-CqkEF6GV.js → CuiPluginTrustBadge-DNjUDEtv.js} +1 -1
  54. package/dist/interface/assets/{CuiQRCode-CQGx_k0S.js → CuiQRCode-wxEwM1Sh.js} +1 -1
  55. package/dist/interface/assets/{CuiRecordingsGrid-CLNQoUbw.js → CuiRecordingsGrid-DM5XDEMU.js} +1 -1
  56. package/dist/interface/assets/CuiSchema-BJE7vHFH.js +1 -0
  57. package/dist/interface/assets/{CuiTopNavbarItem-BekRyj7O.js → CuiTopNavbarItem-DdFdvKkq.js} +1 -1
  58. package/dist/interface/assets/{Faces-BEqO99qz.js → Faces-D4_QXhaT.js} +1 -1
  59. package/dist/interface/assets/{FirstSteps-BTDj1olc.js → FirstSteps-CfKHB_uc.js} +1 -1
  60. package/dist/interface/assets/{Instances-DTqwb5FF.js → Instances-DvAMsOPZ.js} +1 -1
  61. package/dist/interface/assets/{Logs-D8LlWlQ2.js → Logs-e3y9zMPD.js} +2 -2
  62. package/dist/interface/assets/{Menu-Cb5cBA-q.js → Menu-DMLqFO8c.js} +1 -1
  63. package/dist/interface/assets/Metrics-C3RI973t.js +1 -0
  64. package/dist/interface/assets/Metrics-DqBC-wEo.css +1 -0
  65. package/dist/interface/assets/{OAuthDeviceFlow-CExQxxt6.js → OAuthDeviceFlow-C51WkjaT.js} +1 -1
  66. package/dist/interface/assets/{Plugin-DtkmtFL6.js → Plugin-DcdVF_OG.js} +1 -1
  67. package/dist/interface/assets/{PluginConsole-CktnZFCJ.js → PluginConsole-D0n-Jf_E.js} +1 -1
  68. package/dist/interface/assets/{PluginDetail-t5V-ATem.js → PluginDetail-NOJPSqIS.js} +2 -2
  69. package/dist/interface/assets/{PluginSchema-DgXUaGQ2.js → PluginSchema-aG4DGAcH.js} +1 -1
  70. package/dist/interface/assets/PluginSearch-JGQTNibA.js +1 -0
  71. package/dist/interface/assets/{PluginSearch-D8qXgkEP.js → PluginSearch-w9vvKCTP.js} +2 -2
  72. package/dist/interface/assets/{PluginUpdateProgress-B9GSD9wl.js → PluginUpdateProgress-DkdoTjZY.js} +1 -1
  73. package/dist/interface/assets/{Plugins-CMjhJaUC.js → Plugins-BzQvLNj7.js} +1 -1
  74. package/dist/interface/assets/{Recordings-BP3-OD7P.js → Recordings-_2r3gD4E.js} +1 -1
  75. package/dist/interface/assets/{SensorEdit-B-64Y4xT.js → SensorEdit-qcv6KAap.js} +1 -1
  76. package/dist/interface/assets/{SensorHistory-D8xQKiuE.js → SensorHistory-C8vryAe_.js} +1 -1
  77. package/dist/interface/assets/{Sensors-D5VXCQ6N.js → Sensors-DnWG7VfR.js} +2 -2
  78. package/dist/interface/assets/{Settings-D8L1oiQx.css → Settings-B1MnGPuf.css} +1 -1
  79. package/dist/interface/assets/{Settings-B3INZjRu.js → Settings-BqcsLKll.js} +1 -1
  80. package/dist/interface/assets/SettingsAccount-BrYKAfPE.js +1 -0
  81. package/dist/interface/assets/SettingsAccount-CNfGFQuq.js +1 -0
  82. package/dist/interface/assets/{SettingsAppearance-CCf7QwkP.js → SettingsAppearance-B-smgzKL.js} +1 -1
  83. package/dist/interface/assets/SettingsAppearance-eeRSh42a.js +1 -0
  84. package/dist/interface/assets/{SettingsBackup-DSARU1qG.js → SettingsBackup-C0ekmlJy.js} +1 -1
  85. package/dist/interface/assets/{SettingsList-imzWFgaD.js → SettingsList-DeP1LOjz.js} +1 -1
  86. package/dist/interface/assets/{SettingsMqtt-DkEqSLI4.js → SettingsMqtt-Bo4jZHMl.js} +1 -1
  87. package/dist/interface/assets/{SettingsNotifications-CE5byZci.js → SettingsNotifications-Dx3me91s.js} +1 -1
  88. package/dist/interface/assets/SettingsRecordings-Dh-BqEba.js +1 -0
  89. package/dist/interface/assets/{SettingsRemote-DXw6kYER.js → SettingsRemote-W3skn8qk.js} +1 -1
  90. package/dist/interface/assets/{SettingsSystem-BctqXTc5.js → SettingsSystem-DnQSlgu0.js} +2 -2
  91. package/dist/interface/assets/SettingsUsers-CFBTzA0j.js +1 -0
  92. package/dist/interface/assets/{Terminal-CPOkeiZ5.js → Terminal-C7lDL745.js} +1 -1
  93. package/dist/interface/assets/{VariableInput-DfDRe6bt.js → VariableInput-DKmWb9RP.js} +1 -1
  94. package/dist/interface/assets/{VersionsHandler-BEWveXqP.js → VersionsHandler-CrHCAiKn.js} +1 -1
  95. package/dist/interface/assets/{VirtualSensorCreate-CUTyLWv-.js → VirtualSensorCreate-DHhbE5iD.js} +1 -1
  96. package/dist/interface/assets/{Workers-B_G_FZls.js → Workers-CY-3Ah4u.js} +2 -2
  97. package/dist/interface/assets/api-Bj4QRftG.css +2 -0
  98. package/dist/interface/assets/api-CvO7u24f.js +2 -0
  99. package/dist/interface/assets/{api-BrAt3E8w.js → api-DwU_RUzW.js} +1 -1
  100. package/dist/interface/assets/auth-BhT4BtBc.js +1 -0
  101. package/dist/interface/assets/{automations-C1EJke-z.js → automations-ya-5P8Jc.js} +1 -1
  102. package/dist/interface/assets/cloudHandoff-BPjQsq7k.js +1 -0
  103. package/dist/interface/assets/{config-Bq4jYnKb.js → config-CgGpshGm.js} +1 -1
  104. package/dist/interface/assets/{flowSchema-okQoWkh6.js → flowSchema-OrM5E_3R.js} +1 -1
  105. package/dist/interface/assets/{main-6B8o-buJ.css → main-Dd71JT_o.css} +1 -1
  106. package/dist/interface/assets/main-rlz9T4Ug.js +3 -0
  107. package/dist/interface/assets/{mqtt-DtPGnb1K.js → mqtt-CO84Q9sE.js} +1 -1
  108. package/dist/interface/assets/{notifications-CtZcAwQu.js → notifications-DxDFtZSo.js} +1 -1
  109. package/dist/interface/assets/{plugins-BK7kZLJw.js → plugins-g-qkx8GX.js} +1 -1
  110. package/dist/interface/assets/round-restart-alt-CmrjVFat.css +1 -0
  111. package/dist/interface/assets/round-restart-alt-YiDa63x6.js +1 -0
  112. package/dist/interface/assets/{sensorIcons-C9h8rHR6.js → sensorIcons-4dvSmrEv.js} +1 -1
  113. package/dist/interface/assets/{sensors-Bj4drsO3.js → sensors-BFCE7rbx.js} +1 -1
  114. package/dist/interface/assets/{server-D-ogiovS.js → server-arWVymo1.js} +1 -1
  115. package/dist/interface/assets/{theme-DGxZC_Ti.js → theme-Dw9-CwMe.js} +1 -1
  116. package/dist/interface/assets/{types-B1G3t3XJ.js → types-D5c17URv.js} +1 -1
  117. package/dist/interface/assets/{useAppVersion-Ceg42BEw.js → useAppVersion-Cp6mZ-ge.js} +1 -1
  118. package/dist/interface/assets/{useBackupRestore-BwnYTBUM.js → useBackupRestore-Drc-2VXy.js} +1 -1
  119. package/dist/interface/assets/{useCameraOptions-BxVd91Ew.js → useCameraOptions-BF3ASvVM.js} +1 -1
  120. package/dist/interface/assets/{useLogsSocket-0JucMhVY.js → useLogsSocket-hJ9xUUtr.js} +1 -1
  121. package/dist/interface/assets/{useNavLayout-CTTy15kG.js → useNavLayout-CcDIO9RG.js} +1 -1
  122. package/dist/interface/assets/{usePluginUpdates-B9k-vTcT.js → usePluginUpdates-BJwtwD9v.js} +1 -1
  123. package/dist/interface/assets/{useServerRestart-D7dAWdQ6.js → useServerRestart-DwpQyv5H.js} +1 -1
  124. package/dist/interface/assets/{useStreamStatus-BlV_fFBy.js → useStreamStatus-C5dH33U5.js} +1 -1
  125. package/dist/interface/assets/{useUpdateChannel-BeP49Gm-.js → useUpdateChannel-D7hnlzd5.js} +1 -1
  126. package/dist/interface/assets/{useUserOptions-B8UiLDx4.js → useUserOptions-DFgkIDv8.js} +1 -1
  127. package/dist/interface/assets/vendor-core-BNfYBWH3.js +1 -0
  128. package/dist/interface/assets/{vendor-markdown-BDjboykr.js → vendor-markdown-Bw_90xkF.js} +2 -2
  129. package/dist/interface/index.html +19 -20
  130. package/dist/interface/sw.js +1 -1
  131. package/dist/server/package.json +3 -3
  132. package/dist/server/requirements.txt +1 -1
  133. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/notifier.py +6 -0
  134. package/dist/server/src/api/controllers/notifications.controller.d.ts +5 -0
  135. package/dist/server/src/api/controllers/notifications.controller.js +27 -0
  136. package/dist/server/src/api/controllers/notifications.controller.js.map +1 -1
  137. package/dist/server/src/api/database/types.d.ts +1 -0
  138. package/dist/server/src/api/routes/notifications.routes.js +11 -0
  139. package/dist/server/src/api/routes/notifications.routes.js.map +1 -1
  140. package/dist/server/src/api/services/notifications.service.d.ts +1 -0
  141. package/dist/server/src/api/services/notifications.service.js +3 -0
  142. package/dist/server/src/api/services/notifications.service.js.map +1 -1
  143. package/dist/server/src/api/websocket/nsp/metrics.d.ts +4 -0
  144. package/dist/server/src/api/websocket/nsp/metrics.js +50 -1
  145. package/dist/server/src/api/websocket/nsp/metrics.js.map +1 -1
  146. package/dist/server/src/api/websocket/nsp/server.d.ts +3 -0
  147. package/dist/server/src/api/websocket/nsp/server.js +17 -0
  148. package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
  149. package/dist/server/src/api/websocket/types.d.ts +17 -0
  150. package/dist/server/src/camera/decoder/child.d.ts +2 -0
  151. package/dist/server/src/camera/decoder/child.js +9 -0
  152. package/dist/server/src/camera/decoder/child.js.map +1 -1
  153. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +2 -1
  154. package/dist/server/src/camera/decoder/detection-coordinator.js +12 -2
  155. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  156. package/dist/server/src/camera/decoder/{debug/perf-tracker.d.ts → perf-tracker.d.ts} +9 -1
  157. package/dist/server/src/camera/decoder/{debug/perf-tracker.js → perf-tracker.js} +43 -17
  158. package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -0
  159. package/dist/server/src/camera/decoder/types.d.ts +20 -0
  160. package/dist/server/src/camera/decoder/worker.d.ts +2 -0
  161. package/dist/server/src/camera/decoder/worker.js +11 -0
  162. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  163. package/dist/server/src/manager/notificationManager.d.ts +2 -0
  164. package/dist/server/src/manager/notificationManager.js +23 -1
  165. package/dist/server/src/manager/notificationManager.js.map +1 -1
  166. package/dist/server/src/rpc/interfaces/frameworker.d.ts +2 -0
  167. package/dist/server/src/workers/manager.js +2 -0
  168. package/dist/server/src/workers/manager.js.map +1 -1
  169. package/package.json +3 -3
  170. package/dist/interface/assets/Adminpanel-BFKj4r-J.js +0 -1
  171. package/dist/interface/assets/Camera-C7TRw5N0.js +0 -2
  172. package/dist/interface/assets/Cameras-DIY20Wlh.css +0 -1
  173. package/dist/interface/assets/CuiBottomSheet-de-zDc6R.js +0 -1
  174. package/dist/interface/assets/CuiDataTable-DcyMAPBx.js +0 -1
  175. package/dist/interface/assets/CuiMarkdownContent-73RAjkHa.js +0 -1
  176. package/dist/interface/assets/CuiSchema-U31deYpX.js +0 -1
  177. package/dist/interface/assets/PluginSearch-DDa1Jt8s.js +0 -1
  178. package/dist/interface/assets/SettingsAccount-BEMYyovd.js +0 -1
  179. package/dist/interface/assets/SettingsAccount-CcPLFq2z.js +0 -1
  180. package/dist/interface/assets/SettingsAppearance-BSVGF67s.js +0 -1
  181. package/dist/interface/assets/SettingsRecordings-CSCgcxrS.js +0 -1
  182. package/dist/interface/assets/SettingsUsers-DoPPk6w5.js +0 -1
  183. package/dist/interface/assets/api-DIm7LItL.css +0 -2
  184. package/dist/interface/assets/api-Da98l_Y7.js +0 -2
  185. package/dist/interface/assets/arrow-right-outline-C24f5mwe.js +0 -1
  186. package/dist/interface/assets/auth-BdsJrXmQ.js +0 -1
  187. package/dist/interface/assets/cloudHandoff-1DPEACLE.js +0 -1
  188. package/dist/interface/assets/main-W_rUAd4i.js +0 -3
  189. package/dist/interface/assets/round-restart-alt-SpAgbSYJ.css +0 -1
  190. package/dist/interface/assets/round-restart-alt-ctiUuhp8.js +0 -1
  191. package/dist/interface/assets/vendor-core-DNm82LOv.js +0 -1
  192. package/dist/server/src/camera/decoder/debug/perf-tracker.js.map +0 -1
@@ -1 +1 @@
1
- import{Cr as e,fr as t}from"./api-Da98l_Y7.js";import{cr as n,q as r}from"./vendor-BaiDFVEr.js";async function i({signal:t}){return(await e.get(`/`,{signal:t})).data}var a=class{_queryClient=r();queryActivator=n([{name:`apiInfoQuery`,enabled:!0}]);get queryClient(){return this._queryClient}apiInfoQuery(){return t({queryKey:[`api`],queryFn:({signal:e})=>i({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`apiInfoQuery`&&e.enabled)})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{i as n,a as t};
1
+ import{Cr as e,fr as t}from"./api-CvO7u24f.js";import{cr as n,q as r}from"./vendor-BaiDFVEr.js";async function i({signal:t}){return(await e.get(`/`,{signal:t})).data}var a=class{_queryClient=r();queryActivator=n([{name:`apiInfoQuery`,enabled:!0}]);get queryClient(){return this._queryClient}apiInfoQuery(){return t({queryKey:[`api`],queryFn:({signal:e})=>i({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`apiInfoQuery`&&e.enabled)})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{i as n,a as t};
@@ -0,0 +1 @@
1
+ import{Cr as e,fr as t,gr as n,hr as r,mr as i}from"./api-CvO7u24f.js";import{Nn as a,U as o,an as s,cn as c,cr as l,gr as u,ir as d,q as f}from"./vendor-BaiDFVEr.js";var p={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function m(e,t){return a(),c(`svg`,p,[...t[0]||=[s(`path`,{fill:`currentColor`,d:`m17 7l-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5M4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4z`},null,-1)]])}var h=d({name:`mdi-logout`,render:m});async function g(t){let r=n().endpoint.value??window.location.origin;return(await e.get(`/tunnel/check`,{signal:t,baseURL:r})).data}async function _({parameter:t,signal:n}){return(await e.get(`/auth/sessions`,{params:t,signal:n})).data.result??[]}async function v({parameter:t,signal:n}){return(await e.get(`/auth/sessions/all`,{params:t,signal:n})).data.result??[]}async function y({id:t}){await e.delete(`/auth/sessions/${t}`)}async function b(){await e.delete(`/auth/sessions`)}async function x(t){return(await e.get(`/auth/tokens`,{signal:t})).data??[]}async function S({name:t}){return(await e.post(`/auth/tokens`,{name:t})).data}async function C({id:t}){await e.delete(`/auth/tokens/${t}`)}async function w({loginInformation:t}){return(await e.post(`/auth/login`,t)).data}async function T({tempToken:t,code:n}){return(await e.post(`/auth/verify-2fa`,{tempToken:t,code:n})).data}async function E(t){return(await e.get(`/auth/2fa/status`,{signal:t})).data}async function D(){return(await e.post(`/auth/2fa/setup`)).data}async function O({code:t}){return(await e.post(`/auth/2fa/enable`,{code:t})).data}async function k({code:t}){await e.post(`/auth/2fa/disable`,{code:t})}async function A({code:t}){return(await e.post(`/auth/2fa/backup-codes`,{code:t})).data}async function j(){return(await e.post(`/auth/logout`)).data}async function M({refresh_token:t,signal:n}){return(await e.post(`/auth/refresh`,{refresh_token:t},{timeout:1e4,signal:n})).data}var N=class{_queryClient=f();t=r.global.t;toast=i();queryActivator=l([{name:`checkQuery`,enabled:!0},{name:`listSessionsQuery`,enabled:!0},{name:`listAllSessionsQuery`,enabled:!0},{name:`get2FAStatusQuery`,enabled:!0},{name:`listApiTokensQuery`,enabled:!0}]);get queryClient(){return this._queryClient}checkQuery(){return t({queryKey:[`auth`,`check`],queryFn:({signal:e})=>g(e),enabled:()=>this.queryActivator.value.some(e=>e.name===`checkQuery`&&e.enabled)})}listSessionsQuery(e){return t({queryKey:[`auth`,`sessions`,e],queryFn:({signal:t})=>_({parameter:u(e),signal:t}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`listSessionsQuery`&&e.enabled)})}listAllSessionsQuery(e){return t({queryKey:[`auth`,`sessions`,`all`,e],queryFn:({signal:t})=>v({parameter:u(e),signal:t}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`listAllSessionsQuery`&&e.enabled)})}loginQuery(){return o({mutationFn:w,onError:()=>{}})}logoutQuery(){return o({mutationFn:j})}revokeSessionQuery(){return o({mutationFn:y,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`auth`,`sessions`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.user_logged_out`),life:3e3})}})}revokeOtherSessionsQuery(){return o({mutationFn:b,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`auth`,`sessions`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.active_sessions.revoke_others_success`),life:3e3})}})}listApiTokensQuery(){return t({queryKey:[`auth`,`apiTokens`],queryFn:({signal:e})=>x(e),enabled:()=>this.queryActivator.value.some(e=>e.name===`listApiTokensQuery`&&e.enabled)})}createApiTokenQuery(){return o({mutationFn:S,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`auth`,`apiTokens`]})}})}revokeApiTokenQuery(){return o({mutationFn:C,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`auth`,`apiTokens`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.api_tokens.revoke_success`),life:3e3})}})}refreshQuery(){return o({mutationFn:M})}verify2FAQuery(){return o({mutationFn:T,onError:()=>{}})}get2FAStatusQuery(){return t({queryKey:[`auth`,`2fa`,`status`],queryFn:({signal:e})=>E(e),enabled:()=>this.queryActivator.value.some(e=>e.name===`get2FAStatusQuery`&&e.enabled)})}setup2FAQuery(){return o({mutationFn:D})}enable2FAQuery(){return o({mutationFn:O,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`auth`,`2fa`,`status`]})}})}disable2FAQuery(){return o({mutationFn:k,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`auth`,`2fa`,`status`]})}})}regenerateBackupCodesQuery(){return o({mutationFn:A})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{h as n,N as t};
@@ -1 +1 @@
1
- import{Cr as e,fr as t,hr as n,mr as r}from"./api-Da98l_Y7.js";import{U as i,cr as a,gr as o,q as s}from"./vendor-BaiDFVEr.js";async function c({signal:t}){return(await e.get(`/automations`,{signal:t})).data}async function l({id:t,signal:n}){return(await e.get(`/automations/${t}`,{signal:n})).data}async function u({id:t,signal:n}){return(await e.get(`/automations/${t}/runs`,{signal:n})).data}async function d({data:t}){return(await e.post(`/automations`,t)).data}async function f({id:t,data:n}){return(await e.patch(`/automations/${t}`,n)).data}async function p({id:t}){await e.delete(`/automations/${t}`)}async function m({ids:t,data:n}){return(await e.patch(`/automations`,{ids:t,data:n})).data}async function h({ids:t}){return(await e.delete(`/automations`,{data:{ids:t}})).data}async function g({id:t}){let{data:n}=await e.post(`/automations/${t}/trigger`);return n}async function _({blueprint:t}){return(await e.post(`/automations/import`,t)).data}async function v({signal:t}){return(await e.get(`/automations/plugin-methods`,{signal:t})).data}async function y({refresh:t,signal:n}){return(await e.get(`/automations/store`,{params:t?{refresh:!0}:{},signal:n})).data}async function b({id:t,signal:n}){return(await e.get(`/automations/store/${t}`,{signal:n})).data}var x=class{_queryClient=s();t=n.global.t;toast=r();queryActivator=a([{name:`getAutomationsQuery`,enabled:!0},{name:`getAutomationQuery`,enabled:!0}]);getAutomationsQuery(){return t({queryKey:[`automationsList`],queryFn:({signal:e})=>c({signal:e}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`getAutomationsQuery`&&e.enabled)})}getAutomationQuery(e){return t({queryKey:[`automation`,e],queryFn:({signal:t})=>l({id:o(e),signal:t}),enabled:()=>!!o(e)&&o(e)!==`new`&&this.queryActivator.value.some(e=>e.name===`getAutomationQuery`&&e.enabled)})}getAutomationRunsQuery(e){return t({queryKey:[`automationRuns`,e],queryFn:({signal:t})=>u({id:o(e),signal:t}),enabled:()=>!!o(e)})}createAutomationQuery(){return i({mutationFn:d,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]}),this.toast.add({severity:`success`,detail:this.t(`views.automation.saved`),life:3e3})}})}patchAutomationQuery(){return i({mutationFn:f,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]}),await this._queryClient.refetchQueries({queryKey:[`automation`,t.id]})}})}deleteAutomationQuery(){return i({mutationFn:p,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]})}})}bulkPatchAutomationsQuery(){return i({mutationFn:m,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]})}})}bulkDeleteAutomationsQuery(){return i({mutationFn:h,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]})}})}triggerAutomationQuery(){return i({mutationFn:g,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]}),await this._queryClient.refetchQueries({queryKey:[`automation`,t.id]})}})}getPluginMethodsQuery(){return t({queryKey:[`automationPluginMethods`],queryFn:({signal:e})=>v({signal:e})})}getAutomationStoreQuery(e){return t({queryKey:[`automationStore`],queryFn:({signal:t})=>y({refresh:o(e),signal:t}),placeholderData:e=>e})}getAutomationStoreItemQuery(e){return t({queryKey:[`automationStoreItem`,e],queryFn:({signal:t})=>b({id:o(e),signal:t}),enabled:()=>!!o(e)})}importBlueprintQuery(){return i({mutationFn:_,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]}),this.toast.add({severity:`success`,detail:this.t(`views.automations.import_success`),life:3e3})}})}};export{x as t};
1
+ import{Cr as e,fr as t,hr as n,mr as r}from"./api-CvO7u24f.js";import{U as i,cr as a,gr as o,q as s}from"./vendor-BaiDFVEr.js";async function c({signal:t}){return(await e.get(`/automations`,{signal:t})).data}async function l({id:t,signal:n}){return(await e.get(`/automations/${t}`,{signal:n})).data}async function u({id:t,signal:n}){return(await e.get(`/automations/${t}/runs`,{signal:n})).data}async function d({data:t}){return(await e.post(`/automations`,t)).data}async function f({id:t,data:n}){return(await e.patch(`/automations/${t}`,n)).data}async function p({id:t}){await e.delete(`/automations/${t}`)}async function m({ids:t,data:n}){return(await e.patch(`/automations`,{ids:t,data:n})).data}async function h({ids:t}){return(await e.delete(`/automations`,{data:{ids:t}})).data}async function g({id:t}){let{data:n}=await e.post(`/automations/${t}/trigger`);return n}async function _({blueprint:t}){return(await e.post(`/automations/import`,t)).data}async function v({signal:t}){return(await e.get(`/automations/plugin-methods`,{signal:t})).data}async function y({refresh:t,signal:n}){return(await e.get(`/automations/store`,{params:t?{refresh:!0}:{},signal:n})).data}async function b({id:t,signal:n}){return(await e.get(`/automations/store/${t}`,{signal:n})).data}var x=class{_queryClient=s();t=n.global.t;toast=r();queryActivator=a([{name:`getAutomationsQuery`,enabled:!0},{name:`getAutomationQuery`,enabled:!0}]);getAutomationsQuery(){return t({queryKey:[`automationsList`],queryFn:({signal:e})=>c({signal:e}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`getAutomationsQuery`&&e.enabled)})}getAutomationQuery(e){return t({queryKey:[`automation`,e],queryFn:({signal:t})=>l({id:o(e),signal:t}),enabled:()=>!!o(e)&&o(e)!==`new`&&this.queryActivator.value.some(e=>e.name===`getAutomationQuery`&&e.enabled)})}getAutomationRunsQuery(e){return t({queryKey:[`automationRuns`,e],queryFn:({signal:t})=>u({id:o(e),signal:t}),enabled:()=>!!o(e)})}createAutomationQuery(){return i({mutationFn:d,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]}),this.toast.add({severity:`success`,detail:this.t(`views.automation.saved`),life:3e3})}})}patchAutomationQuery(){return i({mutationFn:f,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]}),await this._queryClient.refetchQueries({queryKey:[`automation`,t.id]})}})}deleteAutomationQuery(){return i({mutationFn:p,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]})}})}bulkPatchAutomationsQuery(){return i({mutationFn:m,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]})}})}bulkDeleteAutomationsQuery(){return i({mutationFn:h,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]})}})}triggerAutomationQuery(){return i({mutationFn:g,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]}),await this._queryClient.refetchQueries({queryKey:[`automation`,t.id]})}})}getPluginMethodsQuery(){return t({queryKey:[`automationPluginMethods`],queryFn:({signal:e})=>v({signal:e})})}getAutomationStoreQuery(e){return t({queryKey:[`automationStore`],queryFn:({signal:t})=>y({refresh:o(e),signal:t}),placeholderData:e=>e})}getAutomationStoreItemQuery(e){return t({queryKey:[`automationStoreItem`,e],queryFn:({signal:t})=>b({id:o(e),signal:t}),enabled:()=>!!o(e)})}importBlueprintQuery(){return i({mutationFn:_,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`automationsList`]}),this.toast.add({severity:`success`,detail:this.t(`views.automations.import_success`),life:3e3})}})}};export{x as t};
@@ -0,0 +1 @@
1
+ import{tr as e}from"./api-CvO7u24f.js";export{e as bounceToCloudFrontend};
@@ -1 +1 @@
1
- import{Cr as e,fr as t,hr as n,mr as r}from"./api-Da98l_Y7.js";import{U as i,cr as a,gr as o,q as s}from"./vendor-BaiDFVEr.js";async function c({json:t,signal:n}){return(await e.get(`/config`,{params:{json:t},signal:n})).data}async function l({json:t,signal:n}){return(await e.get(`/config/go2rtc`,{params:{json:t},signal:n})).data}async function u({configData:t}){return(await e.patch(`/config`,t,{headers:{"Content-Type":`text/yaml`}})).data}async function d({configData:t}){return(await e.patch(`/config/go2rtc`,t,{headers:{"Content-Type":`text/yaml`}})).data}async function f(){return(await e.delete(`/config`)).data}async function p(){return(await e.delete(`/config/go2rtc`)).data}var m=class{_queryClient=s();t=n.global.t;toast=r();queryActivator=a([{name:`getConfigQuery`,enabled:!0},{name:`getGo2RtcConfigQuery`,enabled:!0}]);get queryClient(){return this._queryClient}getConfigQuery(e=!1){return t({queryKey:[`config`,{json:e}],queryFn:({signal:t})=>c({json:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getConfigQuery`&&e.enabled)})}getGo2RtcConfigQuery(e=!1){return t({queryKey:[`go2rtcConfig`],queryFn:({signal:t})=>l({json:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getGo2RtcConfigQuery`&&e.enabled)})}patchConfigQuery(){return i({mutationFn:u,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`config`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_updated`),life:3e3})}})}patchGo2RtcConfigQuery(){return i({mutationFn:d,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`go2rtcConfig`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_go2rtc_updated`),life:3e3})}})}delteConfigQuery(){return i({mutationFn:f,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`config`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_deleted`),life:3e3})}})}delteGo2RtcConfigQuery(){return i({mutationFn:p,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`go2rtcConfig`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_go2rtc_deleted`),life:3e3})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{m as t};
1
+ import{Cr as e,fr as t,hr as n,mr as r}from"./api-CvO7u24f.js";import{U as i,cr as a,gr as o,q as s}from"./vendor-BaiDFVEr.js";async function c({json:t,signal:n}){return(await e.get(`/config`,{params:{json:t},signal:n})).data}async function l({json:t,signal:n}){return(await e.get(`/config/go2rtc`,{params:{json:t},signal:n})).data}async function u({configData:t}){return(await e.patch(`/config`,t,{headers:{"Content-Type":`text/yaml`}})).data}async function d({configData:t}){return(await e.patch(`/config/go2rtc`,t,{headers:{"Content-Type":`text/yaml`}})).data}async function f(){return(await e.delete(`/config`)).data}async function p(){return(await e.delete(`/config/go2rtc`)).data}var m=class{_queryClient=s();t=n.global.t;toast=r();queryActivator=a([{name:`getConfigQuery`,enabled:!0},{name:`getGo2RtcConfigQuery`,enabled:!0}]);get queryClient(){return this._queryClient}getConfigQuery(e=!1){return t({queryKey:[`config`,{json:e}],queryFn:({signal:t})=>c({json:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getConfigQuery`&&e.enabled)})}getGo2RtcConfigQuery(e=!1){return t({queryKey:[`go2rtcConfig`],queryFn:({signal:t})=>l({json:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getGo2RtcConfigQuery`&&e.enabled)})}patchConfigQuery(){return i({mutationFn:u,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`config`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_updated`),life:3e3})}})}patchGo2RtcConfigQuery(){return i({mutationFn:d,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`go2rtcConfig`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_go2rtc_updated`),life:3e3})}})}delteConfigQuery(){return i({mutationFn:f,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`config`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_deleted`),life:3e3})}})}delteGo2RtcConfigQuery(){return i({mutationFn:p,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`go2rtcConfig`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.config_go2rtc_deleted`),life:3e3})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{m as t};
@@ -1 +1 @@
1
- import{Fr as e}from"./vendor-cameraui-GaXYUHUd.js";import{cr as t,hr as n,in as r}from"./vendor-BaiDFVEr.js";import{F as i,P as a}from"./types-BCygqese.js";import{f as o}from"./vendor-core-DNm82LOv.js";var s=o(`automations`,()=>{let e=t(null),n=t(null),r=t(null),i=t(!1),a=t(null),o=t([]);function s(e){if(!r.value)return;let t=r.value.edges,n=r.value.nodes,i=t.filter(t=>t.target===e).map(e=>e.source);return n.find(e=>i.includes(e.id))}return{activeFlowId:e,selectedNodeId:n,draft:r,draftDirty:i,lastOutput:a,validationIssues:o,getDraftSourceNode:s}});function c(e,t){if(!e)return[];let n=[];return f(e,t,n,new Set,new Set),n}function l(e,t,n){let r=(n??``).trim();if(r)return c(e,t).find(e=>e.template===r)}function u(t){let i=s(),{t:a}=e(),o=r(()=>c(i.draft,n(t)));return{variables:o,options:r(()=>o.value.map(e=>({label:e.labelKey?a(`components.automation_nodes.${e.labelKey}`):e.label??e.template,value:e.template})))}}function d(e,t){return e?.values?e.values.map(e=>({label:e.labelKey?`${t(`components.automation_nodes.${e.labelKey}`)} (${e.value})`:e.value,value:e.value})):[]}function f(e,t,n,r,i){if(i.has(t))return;i.add(t);let a=e.edges,o=e.nodes;for(let s of a){if(s.target!==t)continue;let a=o.find(e=>e.id===s.source);if(!a?.type)continue;let c=p(a),l=typeof a.data?.alias==`string`?a.data.alias:void 0;for(let e of c){if(l){let t={...e,template:e.template.replace(`{{`,`{{${l}.`),label:`${l}: ${e.label??``}`.trim()};r.has(t.template)||(r.add(t.template),n.push(t))}r.has(e.template)||(r.add(e.template),n.push(e))}f(e,s.source,n,r,i)}}function p(e){let t=e.data??{},n=[],r=(t,r,i,a,o)=>{n.push({template:t,valueType:r,labelKey:i,sourceNodeId:e.id,sourceType:e.type??``,...a&&a.length>0?{values:a}:{},...o?{label:o}:{}})};switch(e.type){case`trigger-detection`:{let e=(t.detectionLabels??[]).map(e=>({value:e}));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`,[{value:`active`,labelKey:`variable_value_active`},{value:`ended`,labelKey:`variable_value_ended`}]),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`);break}case`trigger-sensor`:{let o=String(t.sensorType??``),s=(t.properties??[]).length>0?t.properties:a(o),c=s.map(e=>i(o,e)).filter(e=>!!e);r(`{{sensor.value}}`,m(c),`variable_sensor_value`,h(o,c)),r(`{{sensor.previousValue}}`,m(c),`variable_sensor_previous_value`);for(let t of s){let r=i(o,t);for(let i of r?.keys??[])n.push({template:`{{sensor.value.${i}}}`,valueType:`number`,label:`${t}.${i}`,sourceNodeId:e.id,sourceType:e.type})}r(`{{sensor.property}}`,`enum`,`variable_sensor_property`,s.map(e=>({value:e,labelKey:`sensor_property_${e}`}))),r(`{{sensor.sensorType}}`,`string`,`variable_sensor_type`),r(`{{sensor.sensorId}}`,`string`,`variable_sensor_id`),r(`{{sensor.assignedCameraIds}}`,`string`,`variable_sensor_cameras`);break}case`trigger-webhook`:r(`{{webhook.body}}`,`string`,`variable_webhook_body`),r(`{{webhook.data}}`,`string`,`variable_webhook_data`),r(`{{webhook.method}}`,`enum`,`variable_webhook_method`,[`GET`,`POST`,`PUT`,`PATCH`,`DELETE`].map(e=>({value:e}))),r(`{{webhook.headers}}`,`object`,`variable_webhook_headers`);break;case`trigger-mqtt`: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`);break;case`trigger-geofence`:{let e=t.event??`both`;r(`{{geo.event}}`,`enum`,`variable_geo_event`,(e===`both`?[`enter`,`leave`]:[e]).map(e=>({value:e,labelKey:`variable_value_${e}`}))),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`);break}case`trigger-system`: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`);break;case`action-snapshot`:r(`{{snapshot}}`,`string`,`variable_snapshot`),r(`{{snapshot.base64}}`,`string`,`variable_snapshot_data_uri`);break;case`action-http`: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`);break;case`action-plugin`: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`);break;case`action-camera-control`:r(`{{camera.id}}`,`string`,`variable_camera_id`),r(`{{camera.name}}`,`string`,`variable_camera_name`);break;case`action-image-input`:{let r=typeof t.variableName==`string`&&t.variableName?t.variableName:`image`;n.push({template:`{{${r}}}`,valueType:`string`,label:r,sourceNodeId:e.id,sourceType:e.type}),n.push({template:`{{${r}.width}}`,valueType:`number`,label:`${r}.width`,sourceNodeId:e.id,sourceType:e.type}),n.push({template:`{{${r}.height}}`,valueType:`number`,label:`${r}.height`,sourceNodeId:e.id,sourceType:e.type});break}case`action-variable`:typeof t.variableName==`string`&&t.variableName&&n.push({template:`{{${t.variableName}}}`,valueType:`string`,label:t.variableName,sourceNodeId:e.id,sourceType:e.type})}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}function m(e){let t=new Set(e.map(e=>e.type));return t.size===1?[...t][0]:`string`}function h(e,t){let n=[],r=new Set,i=(e,t)=>{r.has(e)||(r.add(e),n.push({value:e,...t?{labelKey:t}:{}}))};for(let n of t)if(n.type===`boolean`)i(`true`),i(`false`);else if(n.type===`enum`&&n.values)for(let[t,r]of Object.entries(n.values))i(String(r),`${e}_state_${t}`);return n}export{s as a,u as i,d as n,c as r,l as t};
1
+ import{Fr as e}from"./vendor-cameraui-GaXYUHUd.js";import{cr as t,hr as n,in as r}from"./vendor-BaiDFVEr.js";import{F as i,P as a}from"./types-BCygqese.js";import{f as o}from"./vendor-core-BNfYBWH3.js";var s=o(`automations`,()=>{let e=t(null),n=t(null),r=t(null),i=t(!1),a=t(null),o=t([]);function s(e){if(!r.value)return;let t=r.value.edges,n=r.value.nodes,i=t.filter(t=>t.target===e).map(e=>e.source);return n.find(e=>i.includes(e.id))}return{activeFlowId:e,selectedNodeId:n,draft:r,draftDirty:i,lastOutput:a,validationIssues:o,getDraftSourceNode:s}});function c(e,t){if(!e)return[];let n=[];return f(e,t,n,new Set,new Set),n}function l(e,t,n){let r=(n??``).trim();if(r)return c(e,t).find(e=>e.template===r)}function u(t){let i=s(),{t:a}=e(),o=r(()=>c(i.draft,n(t)));return{variables:o,options:r(()=>o.value.map(e=>({label:e.labelKey?a(`components.automation_nodes.${e.labelKey}`):e.label??e.template,value:e.template})))}}function d(e,t){return e?.values?e.values.map(e=>({label:e.labelKey?`${t(`components.automation_nodes.${e.labelKey}`)} (${e.value})`:e.value,value:e.value})):[]}function f(e,t,n,r,i){if(i.has(t))return;i.add(t);let a=e.edges,o=e.nodes;for(let s of a){if(s.target!==t)continue;let a=o.find(e=>e.id===s.source);if(!a?.type)continue;let c=p(a),l=typeof a.data?.alias==`string`?a.data.alias:void 0;for(let e of c){if(l){let t={...e,template:e.template.replace(`{{`,`{{${l}.`),label:`${l}: ${e.label??``}`.trim()};r.has(t.template)||(r.add(t.template),n.push(t))}r.has(e.template)||(r.add(e.template),n.push(e))}f(e,s.source,n,r,i)}}function p(e){let t=e.data??{},n=[],r=(t,r,i,a,o)=>{n.push({template:t,valueType:r,labelKey:i,sourceNodeId:e.id,sourceType:e.type??``,...a&&a.length>0?{values:a}:{},...o?{label:o}:{}})};switch(e.type){case`trigger-detection`:{let e=(t.detectionLabels??[]).map(e=>({value:e}));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`,[{value:`active`,labelKey:`variable_value_active`},{value:`ended`,labelKey:`variable_value_ended`}]),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`);break}case`trigger-sensor`:{let o=String(t.sensorType??``),s=(t.properties??[]).length>0?t.properties:a(o),c=s.map(e=>i(o,e)).filter(e=>!!e);r(`{{sensor.value}}`,m(c),`variable_sensor_value`,h(o,c)),r(`{{sensor.previousValue}}`,m(c),`variable_sensor_previous_value`);for(let t of s){let r=i(o,t);for(let i of r?.keys??[])n.push({template:`{{sensor.value.${i}}}`,valueType:`number`,label:`${t}.${i}`,sourceNodeId:e.id,sourceType:e.type})}r(`{{sensor.property}}`,`enum`,`variable_sensor_property`,s.map(e=>({value:e,labelKey:`sensor_property_${e}`}))),r(`{{sensor.sensorType}}`,`string`,`variable_sensor_type`),r(`{{sensor.sensorId}}`,`string`,`variable_sensor_id`),r(`{{sensor.assignedCameraIds}}`,`string`,`variable_sensor_cameras`);break}case`trigger-webhook`:r(`{{webhook.body}}`,`string`,`variable_webhook_body`),r(`{{webhook.data}}`,`string`,`variable_webhook_data`),r(`{{webhook.method}}`,`enum`,`variable_webhook_method`,[`GET`,`POST`,`PUT`,`PATCH`,`DELETE`].map(e=>({value:e}))),r(`{{webhook.headers}}`,`object`,`variable_webhook_headers`);break;case`trigger-mqtt`: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`);break;case`trigger-geofence`:{let e=t.event??`both`;r(`{{geo.event}}`,`enum`,`variable_geo_event`,(e===`both`?[`enter`,`leave`]:[e]).map(e=>({value:e,labelKey:`variable_value_${e}`}))),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`);break}case`trigger-system`: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`);break;case`action-snapshot`:r(`{{snapshot}}`,`string`,`variable_snapshot`),r(`{{snapshot.base64}}`,`string`,`variable_snapshot_data_uri`);break;case`action-http`: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`);break;case`action-plugin`: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`);break;case`action-camera-control`:r(`{{camera.id}}`,`string`,`variable_camera_id`),r(`{{camera.name}}`,`string`,`variable_camera_name`);break;case`action-image-input`:{let r=typeof t.variableName==`string`&&t.variableName?t.variableName:`image`;n.push({template:`{{${r}}}`,valueType:`string`,label:r,sourceNodeId:e.id,sourceType:e.type}),n.push({template:`{{${r}.width}}`,valueType:`number`,label:`${r}.width`,sourceNodeId:e.id,sourceType:e.type}),n.push({template:`{{${r}.height}}`,valueType:`number`,label:`${r}.height`,sourceNodeId:e.id,sourceType:e.type});break}case`action-variable`:typeof t.variableName==`string`&&t.variableName&&n.push({template:`{{${t.variableName}}}`,valueType:`string`,label:t.variableName,sourceNodeId:e.id,sourceType:e.type})}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}function m(e){let t=new Set(e.map(e=>e.type));return t.size===1?[...t][0]:`string`}function h(e,t){let n=[],r=new Set,i=(e,t)=>{r.has(e)||(r.add(e),n.push({value:e,...t?{labelKey:t}:{}}))};for(let n of t)if(n.type===`boolean`)i(`true`),i(`false`);else if(n.type===`enum`&&n.values)for(let[t,r]of Object.entries(n.values))i(String(r),`${e}_state_${t}`);return n}export{s as a,u as i,d as n,c as r,l as t};
@@ -1 +1 @@
1
- .app-lock-overlay[data-v-baef4383]{z-index:9999;background:var(--ground-background);-webkit-backdrop-filter:blur(20px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cui-restore-overlay[data-v-0c1a6c8d]{z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.cui-restore-overlay__card[data-v-0c1a6c8d]{background:var(--card-background);border:1px solid var(--border-color);text-align:center;border-radius:.75rem;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:360px;padding:2rem 1.5rem;display:flex}.fade-enter-active[data-v-0c1a6c8d],.fade-leave-active[data-v-0c1a6c8d]{transition:opacity .3s}.fade-enter-from[data-v-0c1a6c8d],.fade-leave-to[data-v-0c1a6c8d]{opacity:0}.cui-update-indicator[data-v-8ce1000d]{z-index:9999;background:var(--card-background);border:1px solid var(--border-color);border-radius:.5rem;padding:.75rem 1rem;position:fixed;left:50%;transform:translate(-50%)}.cui-update-indicator__content[data-v-8ce1000d]{align-items:center;gap:.5rem;display:flex}.cui-update-indicator__spinner[data-v-8ce1000d]{width:20px!important;height:20px!important}.cui-update-indicator__icon[data-v-8ce1000d]{width:20px;height:20px;color:var(--text-color)}.cui-update-indicator__text[data-v-8ce1000d]{color:var(--text-color);white-space:nowrap;font-size:.875rem}.cui-update-indicator__button[data-v-8ce1000d]{white-space:nowrap;margin-left:.5rem}.fade-enter-active[data-v-8ce1000d],.fade-leave-active[data-v-8ce1000d]{transition:opacity .3s}.fade-enter-from[data-v-8ce1000d],.fade-leave-to[data-v-8ce1000d]{opacity:0}.cui-connection-indicator[data-v-0204ee57]{z-index:9999;background:var(--card-background);border:1px solid var(--border-color);border-radius:.5rem;max-width:calc(100vw - 2rem);padding:.75rem 1rem;position:fixed;left:50%;transform:translate(-50%)}.cui-connection-indicator__content[data-v-0204ee57]{align-items:center;gap:.5rem;display:flex}.cui-connection-indicator__text[data-v-0204ee57]{color:var(--text-color);white-space:nowrap;font-size:.875rem}.cui-connection-indicator__button[data-v-0204ee57]{margin-left:.5rem}.fade-enter-active[data-v-0204ee57],.fade-leave-active[data-v-0204ee57]{transition:opacity .3s}.fade-enter-from[data-v-0204ee57],.fade-leave-to[data-v-0204ee57]{opacity:0}.close-button[data-v-d1e31a06],.minify-button[data-v-d1e31a06],.expand-button[data-v-d1e31a06],.disabled-button[data-v-d1e31a06]{-webkit-app-region:no-drag;border-radius:20px;width:12px;height:12px;transition:all .2s ease-in-out}.close-button[data-v-d1e31a06]:hover,.minify-button[data-v-d1e31a06]:hover,.expand-button[data-v-d1e31a06]:hover,.disabled-button[data-v-d1e31a06]:hover{cursor:default}.close-button[data-v-d1e31a06]{background-color:#ff5954;border:0 solid #df302a}.close-button[data-v-d1e31a06]:active{background-color:#d63f3a;border:0 solid #c12e26}.minify-button[data-v-d1e31a06]{background-color:#fdbd30;border:0 solid #c18b17}.minify-button[data-v-d1e31a06]:active{background-color:#c18b17;border:0 solid #a27613}.expand-button[data-v-d1e31a06]{background-color:#00ca3b;border:0 solid #02a934}.expand-button[data-v-d1e31a06]:active{background-color:#02a934;border:0 solid #028b2b}.disabled-button[data-v-d1e31a06]{background-color:#3d3d3d;border:0 solid #282828}.navitem-active[data-v-9e0c467b]{background:var(--navitem-active-color,var(--p-button-text-primary-active-background));border-color:#0000;border-top:1px solid var(--navitem-active-color,var(--p-button-outlined-danger-hover-background))}.navbar-group-enter-active[data-v-01db94b4],.navbar-group-leave-active[data-v-01db94b4]{transition:all .2s;overflow:hidden}.navbar-group-enter-from[data-v-01db94b4],.navbar-group-leave-to[data-v-01db94b4]{opacity:0;max-height:0}.navbar-group-enter-to[data-v-01db94b4],.navbar-group-leave-from[data-v-01db94b4]{opacity:1;max-height:400px}.nav-edit-move[data-v-01db94b4],.nav-edit-enter-active[data-v-01db94b4],.nav-edit-leave-active[data-v-01db94b4]{transition:transform .25s,opacity .2s}.nav-edit-enter-from[data-v-01db94b4],.nav-edit-leave-to[data-v-01db94b4]{opacity:0}.nav-edit-leave-active[data-v-01db94b4]{width:100%;position:absolute}.cui-bottombar[data-v-b0d768aa]:before{content:"";background:linear-gradient(#0000000d,#0000);height:1px;position:absolute;top:-1px;left:0;right:0}.notification-menu{left:auto!important;right:calc(env(safe-area-inset-right,0px) + .5rem)!important;top:calc(env(safe-area-inset-top,0px) + 3.3rem)!important}.cui-topbar[data-v-1c767220]{background:var(--topbar-background);border-bottom:1px solid var(--border-color)}.playground-container[data-v-6fb7c7a6]{z-index:100;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;flex:1;justify-content:center;position:relative}@media (width>=800px){.playground-container[data-v-6fb7c7a6]{border-radius:0 0 2px 2px}}.playground-container .playground[data-v-6fb7c7a6]{position:relative}.playground-container .playground:hover .handle[data-v-6fb7c7a6]{opacity:1}.playground-container .playground.customizing[data-v-6fb7c7a6]{cursor:crosshair}.playground-container .playground.start .custom-notice[data-v-6fb7c7a6]{opacity:1}.playground-container .playground .custom-notice[data-v-6fb7c7a6]{pointer-events:none;opacity:0;background:#fff0;justify-content:center;align-items:center;transition:background .25s;display:flex;position:absolute;inset:0 0 1rem}.playground-container .playground .custom-notice div[data-v-6fb7c7a6]{text-align:center;opacity:1;background:#ffffffe6;border-radius:2px;width:100%;margin:0 2rem;padding:1rem;transition:opacity .25s;box-shadow:0 1px 2px #100a0926}.playground-container .playground .custom-notice div .touchy[data-v-6fb7c7a6]:after{content:"Click"}.playground-container .playground .sandbox[data-v-6fb7c7a6]{touch-action:none;width:100%;height:100%;position:relative;inset:0}.playground-container .playground .sandbox .shadowboard[data-v-6fb7c7a6]{z-index:11;pointer-events:none;opacity:0;background:#df2a4c4d 50%/cover;transition:opacity .375s;position:absolute;inset:10px}.playground-container .playground .sandbox .shadowboard.on[data-v-6fb7c7a6]{opacity:0}.playground-container .playground.customizing .handle[data-v-6fb7c7a6]{pointer-events:none}.handles[data-v-6fb7c7a6]{z-index:10;position:absolute;inset:0}.handles .clipboard[data-v-6fb7c7a6]{z-index:1;position:absolute;inset:0}.handles .clipboard .polygon-container[data-v-6fb7c7a6]{position:absolute}.handles .clipboard .polygon-container path.selected[data-v-6fb7c7a6]{stroke-width:2px}.handles .clipboard .polygon-container path.dash[data-v-6fb7c7a6]{stroke-dasharray:5 5}.handles .delete-point[data-v-6fb7c7a6],.handles .handle[data-v-6fb7c7a6]{z-index:2;width:20px;height:20px;position:absolute}.handles .handle[data-v-6fb7c7a6]{opacity:.8;border-radius:50%;transition:opacity .25s;box-shadow:inset 0 0 0 10px #fff}.handles .handle.is-dragging[data-v-6fb7c7a6],.handles .handle.is-pointer-down[data-v-6fb7c7a6]{z-index:100;cursor:none;transition:box-shadow;box-shadow:inset 0 0 0 10px #d0d0d0}.handles .handle.draggable[data-v-6fb7c7a6]{cursor:grab}.handles .handle.show-delete .delete-point[data-v-6fb7c7a6]{opacity:1;transition:transform .25s cubic-bezier(.15,1,.3,1.1),opacity .25s;transform:scale3d(.9,.9,.9)}.handles .handle[data-v-6fb7c7a6]:after{content:"";display:block;position:absolute;inset:-8px}.handles .handle .delete-point[data-v-6fb7c7a6]{transform-origin:0;cursor:pointer;opacity:.75;clip-path:polygon(25% 0,100% 1%,100% 100%,25% 100%,0 50%);background:#d3d0c9;border-radius:3px;width:25px;padding-left:5px;transition:transform .25s,opacity .25s;position:absolute;top:0;left:22px;transform:scale3d(0,0,0)}.handles .handle .delete-point[data-v-6fb7c7a6]:after{content:"";clip-path:polygon(20% 10%,10% 20%,40% 50%,10% 80%,20% 90%,50% 60%,80% 90%,90% 80%,60% 50%,90% 20%,80% 10%,50% 40%);background:#100a09;display:block;position:absolute;inset:4px 4px 4px 9px}.cui-detection[data-v-4bdc871b]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-detection--detected[data-v-4bdc871b]{border-color:#22c55e4d}.cui-detection--disabled[data-v-4bdc871b]{opacity:.6}.cui-detection__header[data-v-4bdc871b]{align-items:center;gap:.5rem;display:flex}.cui-detection__icon[data-v-4bdc871b]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-detection__icon-svg[data-v-4bdc871b]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s}.cui-detection__icon--detected .cui-detection__icon-svg[data-v-4bdc871b]{color:#22c55e}.cui-detection__info[data-v-4bdc871b]{flex-direction:column;flex:1;gap:0;display:flex}.cui-detection__label[data-v-4bdc871b]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-detection__status[data-v-4bdc871b]{color:var(--text-secondary-color);font-size:.75rem;font-weight:500}.cui-detection__status--detected[data-v-4bdc871b]{color:#22c55e}.cui-detection__indicator[data-v-4bdc871b]{background-color:var(--surface-300);border-radius:50%;width:.5rem;height:.5rem;transition:all .2s}.cui-detection__indicator--detected[data-v-4bdc871b]{background-color:#22c55e;animation:1.5s ease-in-out infinite pulse-indicator-4bdc871b;box-shadow:0 0 6px #22c55e99}@keyframes pulse-indicator-4bdc871b{0%,to{opacity:1}50%{opacity:.5}}.cui-detection__detections[data-v-4bdc871b]{flex-wrap:wrap;gap:.25rem;padding-top:.5rem;display:flex}.cui-detection__detection-tag[data-v-4bdc871b]{color:#22c55e;text-transform:capitalize;background:#22c55e26;border-radius:1rem;align-items:center;padding:.125rem .5rem;font-size:.625rem;font-weight:500;display:inline-flex}.cui-detection--small[data-v-4bdc871b]{gap:.375rem;padding:.5rem}.cui-detection--small .cui-detection__icon[data-v-4bdc871b]{width:1.25rem;height:1.25rem}.cui-detection--small .cui-detection__icon-svg[data-v-4bdc871b]{width:1.125rem;height:1.125rem}.cui-detection--small .cui-detection__label[data-v-4bdc871b]{font-size:.75rem}.cui-detection--small .cui-detection__status[data-v-4bdc871b]{font-size:.625rem}.cui-detection--small .cui-detection__indicator[data-v-4bdc871b]{width:.375rem;height:.375rem}.cui-detection--small .cui-detection__detection-tag[data-v-4bdc871b]{padding:.0625rem .375rem;font-size:.5rem}.cui-detection--large[data-v-4bdc871b]{gap:.75rem;padding:1rem}.cui-detection--large .cui-detection__icon[data-v-4bdc871b]{width:2.25rem;height:2.25rem}.cui-detection--large .cui-detection__icon-svg[data-v-4bdc871b]{width:2rem;height:2rem}.cui-detection--large .cui-detection__label[data-v-4bdc871b]{font-size:1rem}.cui-detection--large .cui-detection__status[data-v-4bdc871b]{font-size:.875rem}.cui-detection--large .cui-detection__indicator[data-v-4bdc871b]{width:.625rem;height:.625rem}.cui-detection--large .cui-detection__detection-tag[data-v-4bdc871b]{padding:.1875rem .625rem;font-size:.75rem}.overview-container[data-v-9b7f0edd]{flex-direction:column;display:flex}.overview-section[data-v-9b7f0edd]{border-bottom:1px solid var(--surface-border);padding:1rem}.overview-section[data-v-9b7f0edd]:last-child{border-bottom:none}.overview-section-title[data-v-9b7f0edd]{text-transform:uppercase;color:var(--text-secondary-color);letter-spacing:.05em;margin-bottom:.75rem;font-size:.75rem;font-weight:600}[data-v-9b7f0edd] .p-datatable-tbody>tr>td{height:50px}.no-sensors[data-v-9b7f0edd]{text-align:center;color:var(--text-secondary-color);padding:1.5rem;font-size:.875rem}.drawer-header[data-v-94cafb3a]{background:var(--p-drawer-background)}.loader[data-v-839ba1ea]{background:var(--ground-background);width:100dvw;min-width:100dvw;max-width:100dvw;height:100dvh;min-height:100dvh;max-height:100dvh}div[data-v-839ba1ea] .cameraLens{transform-origin:35% 55%;animation:.8s cubic-bezier(.47,1.84,.21,.8) forwards lensMove-839ba1ea,.8s ease-in-out .4s forwards lensRotate-839ba1ea,.6s cubic-bezier(.47,1.84,.21,.8) 1.3s forwards lensMoveBack-839ba1ea}div[data-v-839ba1ea] .cameraLetter{transform-origin:50%;animation:.4s cubic-bezier(.47,1.84,.21,.8) forwards letterScale-839ba1ea,.4s cubic-bezier(.47,1.84,.21,.8) 1.2s forwards letterScaleBack-839ba1ea}@keyframes letterScale-839ba1ea{0%{transform:scale(1)}to{transform:scale(.8)}}@keyframes letterScaleBack-839ba1ea{0%{transform:scale(.8)}to{transform:scale(1)}}@keyframes lensMove-839ba1ea{0%{transform:translateY(0)}to{transform:translateY(-40px)}}@keyframes lensMoveBack-839ba1ea{0%{transform:translateY(-40px)}to{transform:translateY(0)}}@keyframes lensRotate-839ba1ea{0%{transform:translateY(-40px)rotate(0)}to{transform:translateY(-40px)rotate(-360deg)}}.fixed-bg[data-v-d25eaf46]{top:calc(0px - env(safe-area-inset-top,0px) - 10px);left:calc(0px - env(safe-area-inset-left,0px) - 10px);right:calc(0px - env(safe-area-inset-right,0px) - 10px);bottom:calc(0px - env(safe-area-inset-bottom,0px) - 10px);z-index:0;position:fixed}
1
+ .app-lock-overlay[data-v-baef4383]{z-index:9999;background:var(--ground-background);-webkit-backdrop-filter:blur(20px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cui-restore-overlay[data-v-0c1a6c8d]{z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.cui-restore-overlay__card[data-v-0c1a6c8d]{background:var(--card-background);border:1px solid var(--border-color);text-align:center;border-radius:.75rem;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:360px;padding:2rem 1.5rem;display:flex}.fade-enter-active[data-v-0c1a6c8d],.fade-leave-active[data-v-0c1a6c8d]{transition:opacity .3s}.fade-enter-from[data-v-0c1a6c8d],.fade-leave-to[data-v-0c1a6c8d]{opacity:0}.cui-update-indicator[data-v-8ce1000d]{z-index:9999;background:var(--card-background);border:1px solid var(--border-color);border-radius:.5rem;padding:.75rem 1rem;position:fixed;left:50%;transform:translate(-50%)}.cui-update-indicator__content[data-v-8ce1000d]{align-items:center;gap:.5rem;display:flex}.cui-update-indicator__spinner[data-v-8ce1000d]{width:20px!important;height:20px!important}.cui-update-indicator__icon[data-v-8ce1000d]{width:20px;height:20px;color:var(--text-color)}.cui-update-indicator__text[data-v-8ce1000d]{color:var(--text-color);white-space:nowrap;font-size:.875rem}.cui-update-indicator__button[data-v-8ce1000d]{white-space:nowrap;margin-left:.5rem}.fade-enter-active[data-v-8ce1000d],.fade-leave-active[data-v-8ce1000d]{transition:opacity .3s}.fade-enter-from[data-v-8ce1000d],.fade-leave-to[data-v-8ce1000d]{opacity:0}.cui-connection-indicator[data-v-0204ee57]{z-index:9999;background:var(--card-background);border:1px solid var(--border-color);border-radius:.5rem;max-width:calc(100vw - 2rem);padding:.75rem 1rem;position:fixed;left:50%;transform:translate(-50%)}.cui-connection-indicator__content[data-v-0204ee57]{align-items:center;gap:.5rem;display:flex}.cui-connection-indicator__text[data-v-0204ee57]{color:var(--text-color);white-space:nowrap;font-size:.875rem}.cui-connection-indicator__button[data-v-0204ee57]{margin-left:.5rem}.fade-enter-active[data-v-0204ee57],.fade-leave-active[data-v-0204ee57]{transition:opacity .3s}.fade-enter-from[data-v-0204ee57],.fade-leave-to[data-v-0204ee57]{opacity:0}.close-button[data-v-d1e31a06],.minify-button[data-v-d1e31a06],.expand-button[data-v-d1e31a06],.disabled-button[data-v-d1e31a06]{-webkit-app-region:no-drag;border-radius:20px;width:12px;height:12px;transition:all .2s ease-in-out}.close-button[data-v-d1e31a06]:hover,.minify-button[data-v-d1e31a06]:hover,.expand-button[data-v-d1e31a06]:hover,.disabled-button[data-v-d1e31a06]:hover{cursor:default}.close-button[data-v-d1e31a06]{background-color:#ff5954;border:0 solid #df302a}.close-button[data-v-d1e31a06]:active{background-color:#d63f3a;border:0 solid #c12e26}.minify-button[data-v-d1e31a06]{background-color:#fdbd30;border:0 solid #c18b17}.minify-button[data-v-d1e31a06]:active{background-color:#c18b17;border:0 solid #a27613}.expand-button[data-v-d1e31a06]{background-color:#00ca3b;border:0 solid #02a934}.expand-button[data-v-d1e31a06]:active{background-color:#02a934;border:0 solid #028b2b}.disabled-button[data-v-d1e31a06]{background-color:#3d3d3d;border:0 solid #282828}.navitem-active[data-v-9e0c467b]{background:var(--navitem-active-color,var(--p-button-text-primary-active-background));border-color:#0000;border-top:1px solid var(--navitem-active-color,var(--p-button-outlined-danger-hover-background))}.navbar-group-enter-active[data-v-c786d137],.navbar-group-leave-active[data-v-c786d137]{transition:all .2s;overflow:hidden}.navbar-group-enter-from[data-v-c786d137],.navbar-group-leave-to[data-v-c786d137]{opacity:0;max-height:0}.navbar-group-enter-to[data-v-c786d137],.navbar-group-leave-from[data-v-c786d137]{opacity:1;max-height:400px}.nav-edit-move[data-v-c786d137],.nav-edit-enter-active[data-v-c786d137],.nav-edit-leave-active[data-v-c786d137]{transition:transform .25s,opacity .2s}.nav-edit-enter-from[data-v-c786d137],.nav-edit-leave-to[data-v-c786d137]{opacity:0}.nav-edit-leave-active[data-v-c786d137]{width:100%;position:absolute}.cui-bottombar[data-v-b0d768aa]:before{content:"";background:linear-gradient(#0000000d,#0000);height:1px;position:absolute;top:-1px;left:0;right:0}.notification-menu{left:auto!important;right:calc(env(safe-area-inset-right,0px) + .5rem)!important;top:calc(env(safe-area-inset-top,0px) + 3.3rem)!important}.cui-topbar[data-v-1c767220]{background:var(--topbar-background);border-bottom:1px solid var(--border-color)}.playground-container[data-v-6fb7c7a6]{z-index:100;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;flex:1;justify-content:center;position:relative}@media (width>=800px){.playground-container[data-v-6fb7c7a6]{border-radius:0 0 2px 2px}}.playground-container .playground[data-v-6fb7c7a6]{position:relative}.playground-container .playground:hover .handle[data-v-6fb7c7a6]{opacity:1}.playground-container .playground.customizing[data-v-6fb7c7a6]{cursor:crosshair}.playground-container .playground.start .custom-notice[data-v-6fb7c7a6]{opacity:1}.playground-container .playground .custom-notice[data-v-6fb7c7a6]{pointer-events:none;opacity:0;background:#fff0;justify-content:center;align-items:center;transition:background .25s;display:flex;position:absolute;inset:0 0 1rem}.playground-container .playground .custom-notice div[data-v-6fb7c7a6]{text-align:center;opacity:1;background:#ffffffe6;border-radius:2px;width:100%;margin:0 2rem;padding:1rem;transition:opacity .25s;box-shadow:0 1px 2px #100a0926}.playground-container .playground .custom-notice div .touchy[data-v-6fb7c7a6]:after{content:"Click"}.playground-container .playground .sandbox[data-v-6fb7c7a6]{touch-action:none;width:100%;height:100%;position:relative;inset:0}.playground-container .playground .sandbox .shadowboard[data-v-6fb7c7a6]{z-index:11;pointer-events:none;opacity:0;background:#df2a4c4d 50%/cover;transition:opacity .375s;position:absolute;inset:10px}.playground-container .playground .sandbox .shadowboard.on[data-v-6fb7c7a6]{opacity:0}.playground-container .playground.customizing .handle[data-v-6fb7c7a6]{pointer-events:none}.handles[data-v-6fb7c7a6]{z-index:10;position:absolute;inset:0}.handles .clipboard[data-v-6fb7c7a6]{z-index:1;position:absolute;inset:0}.handles .clipboard .polygon-container[data-v-6fb7c7a6]{position:absolute}.handles .clipboard .polygon-container path.selected[data-v-6fb7c7a6]{stroke-width:2px}.handles .clipboard .polygon-container path.dash[data-v-6fb7c7a6]{stroke-dasharray:5 5}.handles .delete-point[data-v-6fb7c7a6],.handles .handle[data-v-6fb7c7a6]{z-index:2;width:20px;height:20px;position:absolute}.handles .handle[data-v-6fb7c7a6]{opacity:.8;border-radius:50%;transition:opacity .25s;box-shadow:inset 0 0 0 10px #fff}.handles .handle.is-dragging[data-v-6fb7c7a6],.handles .handle.is-pointer-down[data-v-6fb7c7a6]{z-index:100;cursor:none;transition:box-shadow;box-shadow:inset 0 0 0 10px #d0d0d0}.handles .handle.draggable[data-v-6fb7c7a6]{cursor:grab}.handles .handle.show-delete .delete-point[data-v-6fb7c7a6]{opacity:1;transition:transform .25s cubic-bezier(.15,1,.3,1.1),opacity .25s;transform:scale3d(.9,.9,.9)}.handles .handle[data-v-6fb7c7a6]:after{content:"";display:block;position:absolute;inset:-8px}.handles .handle .delete-point[data-v-6fb7c7a6]{transform-origin:0;cursor:pointer;opacity:.75;clip-path:polygon(25% 0,100% 1%,100% 100%,25% 100%,0 50%);background:#d3d0c9;border-radius:3px;width:25px;padding-left:5px;transition:transform .25s,opacity .25s;position:absolute;top:0;left:22px;transform:scale3d(0,0,0)}.handles .handle .delete-point[data-v-6fb7c7a6]:after{content:"";clip-path:polygon(20% 10%,10% 20%,40% 50%,10% 80%,20% 90%,50% 60%,80% 90%,90% 80%,60% 50%,90% 20%,80% 10%,50% 40%);background:#100a09;display:block;position:absolute;inset:4px 4px 4px 9px}.cui-detection[data-v-4bdc871b]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-detection--detected[data-v-4bdc871b]{border-color:#22c55e4d}.cui-detection--disabled[data-v-4bdc871b]{opacity:.6}.cui-detection__header[data-v-4bdc871b]{align-items:center;gap:.5rem;display:flex}.cui-detection__icon[data-v-4bdc871b]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-detection__icon-svg[data-v-4bdc871b]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s}.cui-detection__icon--detected .cui-detection__icon-svg[data-v-4bdc871b]{color:#22c55e}.cui-detection__info[data-v-4bdc871b]{flex-direction:column;flex:1;gap:0;display:flex}.cui-detection__label[data-v-4bdc871b]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-detection__status[data-v-4bdc871b]{color:var(--text-secondary-color);font-size:.75rem;font-weight:500}.cui-detection__status--detected[data-v-4bdc871b]{color:#22c55e}.cui-detection__indicator[data-v-4bdc871b]{background-color:var(--surface-300);border-radius:50%;width:.5rem;height:.5rem;transition:all .2s}.cui-detection__indicator--detected[data-v-4bdc871b]{background-color:#22c55e;animation:1.5s ease-in-out infinite pulse-indicator-4bdc871b;box-shadow:0 0 6px #22c55e99}@keyframes pulse-indicator-4bdc871b{0%,to{opacity:1}50%{opacity:.5}}.cui-detection__detections[data-v-4bdc871b]{flex-wrap:wrap;gap:.25rem;padding-top:.5rem;display:flex}.cui-detection__detection-tag[data-v-4bdc871b]{color:#22c55e;text-transform:capitalize;background:#22c55e26;border-radius:1rem;align-items:center;padding:.125rem .5rem;font-size:.625rem;font-weight:500;display:inline-flex}.cui-detection--small[data-v-4bdc871b]{gap:.375rem;padding:.5rem}.cui-detection--small .cui-detection__icon[data-v-4bdc871b]{width:1.25rem;height:1.25rem}.cui-detection--small .cui-detection__icon-svg[data-v-4bdc871b]{width:1.125rem;height:1.125rem}.cui-detection--small .cui-detection__label[data-v-4bdc871b]{font-size:.75rem}.cui-detection--small .cui-detection__status[data-v-4bdc871b]{font-size:.625rem}.cui-detection--small .cui-detection__indicator[data-v-4bdc871b]{width:.375rem;height:.375rem}.cui-detection--small .cui-detection__detection-tag[data-v-4bdc871b]{padding:.0625rem .375rem;font-size:.5rem}.cui-detection--large[data-v-4bdc871b]{gap:.75rem;padding:1rem}.cui-detection--large .cui-detection__icon[data-v-4bdc871b]{width:2.25rem;height:2.25rem}.cui-detection--large .cui-detection__icon-svg[data-v-4bdc871b]{width:2rem;height:2rem}.cui-detection--large .cui-detection__label[data-v-4bdc871b]{font-size:1rem}.cui-detection--large .cui-detection__status[data-v-4bdc871b]{font-size:.875rem}.cui-detection--large .cui-detection__indicator[data-v-4bdc871b]{width:.625rem;height:.625rem}.cui-detection--large .cui-detection__detection-tag[data-v-4bdc871b]{padding:.1875rem .625rem;font-size:.75rem}.overview-container[data-v-9b7f0edd]{flex-direction:column;display:flex}.overview-section[data-v-9b7f0edd]{border-bottom:1px solid var(--surface-border);padding:1rem}.overview-section[data-v-9b7f0edd]:last-child{border-bottom:none}.overview-section-title[data-v-9b7f0edd]{text-transform:uppercase;color:var(--text-secondary-color);letter-spacing:.05em;margin-bottom:.75rem;font-size:.75rem;font-weight:600}[data-v-9b7f0edd] .p-datatable-tbody>tr>td{height:50px}.no-sensors[data-v-9b7f0edd]{text-align:center;color:var(--text-secondary-color);padding:1.5rem;font-size:.875rem}.drawer-header[data-v-94cafb3a]{background:var(--p-drawer-background)}.loader[data-v-839ba1ea]{background:var(--ground-background);width:100dvw;min-width:100dvw;max-width:100dvw;height:100dvh;min-height:100dvh;max-height:100dvh}div[data-v-839ba1ea] .cameraLens{transform-origin:35% 55%;animation:.8s cubic-bezier(.47,1.84,.21,.8) forwards lensMove-839ba1ea,.8s ease-in-out .4s forwards lensRotate-839ba1ea,.6s cubic-bezier(.47,1.84,.21,.8) 1.3s forwards lensMoveBack-839ba1ea}div[data-v-839ba1ea] .cameraLetter{transform-origin:50%;animation:.4s cubic-bezier(.47,1.84,.21,.8) forwards letterScale-839ba1ea,.4s cubic-bezier(.47,1.84,.21,.8) 1.2s forwards letterScaleBack-839ba1ea}@keyframes letterScale-839ba1ea{0%{transform:scale(1)}to{transform:scale(.8)}}@keyframes letterScaleBack-839ba1ea{0%{transform:scale(.8)}to{transform:scale(1)}}@keyframes lensMove-839ba1ea{0%{transform:translateY(0)}to{transform:translateY(-40px)}}@keyframes lensMoveBack-839ba1ea{0%{transform:translateY(-40px)}to{transform:translateY(0)}}@keyframes lensRotate-839ba1ea{0%{transform:translateY(-40px)rotate(0)}to{transform:translateY(-40px)rotate(-360deg)}}.fixed-bg[data-v-d25eaf46]{top:calc(0px - env(safe-area-inset-top,0px) - 10px);left:calc(0px - env(safe-area-inset-left,0px) - 10px);right:calc(0px - env(safe-area-inset-right,0px) - 10px);bottom:calc(0px - env(safe-area-inset-bottom,0px) - 10px);z-index:0;position:fixed}