@fastybird/smart-panel-admin 1.1.0-alpha.63 → 1.1.0-alpha.65

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 (367) hide show
  1. package/dist/assets/{_baseClone-BRvt9rE2.js → _baseClone-Dte8C1GY.js} +1 -1
  2. package/dist/assets/alert-C46gt4gd.js +1 -0
  3. package/dist/assets/card-CfYeWlyn.js +1 -0
  4. package/dist/assets/card-add-form-prPDxTto.js +1 -0
  5. package/dist/assets/card-edit-form-DeJkki_S.js +1 -0
  6. package/dist/assets/checkbox-DTPMEXAL.js +1 -0
  7. package/dist/assets/{clamp-FW02HANf.js → clamp-Dw8cnUDq.js} +1 -1
  8. package/dist/assets/col-DlQWLFQs.js +1 -0
  9. package/dist/assets/collapse-Lq5XIsa-.js +1 -0
  10. package/dist/assets/common-Cq0z9nNV.js +135 -0
  11. package/dist/assets/components-B-hsdZRB.js +6 -0
  12. package/dist/assets/components-B383JPLp.js +1 -0
  13. package/dist/assets/components-B7P2CZq6.js +8 -0
  14. package/dist/assets/components-Bq3pGRkK.js +2 -0
  15. package/dist/assets/components-CAKqGh0u.js +1 -0
  16. package/dist/assets/components-CKVFjqFL.js +1 -0
  17. package/dist/assets/components-D-L2AY7i.js +1 -0
  18. package/dist/assets/components-DeVRIc-a.js +1 -0
  19. package/dist/assets/components-WE7iG2jt.js +1 -0
  20. package/dist/assets/components-Zvb61V03.js +1 -0
  21. package/dist/assets/composables-9t6Z9PcI.js +1 -0
  22. package/dist/assets/composables-BGj78DB-.js +1 -0
  23. package/dist/assets/composables-BYXOFFmS.js +1 -0
  24. package/dist/assets/{composables-C-o6-CAH.js → composables-CIOrWHUe.js} +1 -1
  25. package/dist/assets/composables-CQU3fAXU.js +1 -0
  26. package/dist/assets/composables-CZF9saW7.js +1 -0
  27. package/dist/assets/{composables-DPgLjJbY.js → composables-CkZcA6lV2.js} +1 -1
  28. package/dist/assets/composables-DQBxpwSg.js +1 -0
  29. package/dist/assets/composables-DWpPaUpC.js +1 -0
  30. package/dist/assets/composables-ejopM-lJ.js +1 -0
  31. package/dist/assets/composables-rXK2U5tg.js +1 -0
  32. package/dist/assets/config-COwev7fh.js +2 -0
  33. package/dist/assets/dashboard-CjfXUy9Q.js +2 -0
  34. package/dist/assets/{dashboard.types-B1PBhwVR.js → dashboard.types-CR6hZnWk.js} +1 -1
  35. package/dist/assets/{data-source-edit-form-DEVPfSNf.js → data-source-edit-form-BmWiJ3nH.js} +1 -1
  36. package/dist/assets/descriptions-CK3XrcY5.js +1 -0
  37. package/dist/assets/devices-Id44EDCB.js +2 -0
  38. package/dist/assets/devices-virtual.constants-BxQtZ-rg.js +1 -0
  39. package/dist/assets/devices.constants-cxt4nI1j.js +1 -0
  40. package/dist/assets/dialog-C_c6nIiU.js +1 -0
  41. package/dist/assets/directive-CBwN801q.js +1 -0
  42. package/dist/assets/drawer-BDUl_ooz.js +1 -0
  43. package/dist/assets/{empty-DvXiCUNF.js → empty-BkxH1E8f.js} +1 -1
  44. package/dist/assets/form-CoKeb4n7.js +12 -0
  45. package/dist/assets/{icon-with-child-CgZMNB3F.js → icon-with-child-C0yuv0oQ.js} +1 -1
  46. package/dist/assets/index-BH_S-Ibi.js +11 -0
  47. package/dist/assets/index-zUke6Vim.css +1 -0
  48. package/dist/assets/input-number-LzEdwV5R.js +1 -0
  49. package/dist/assets/integration-config-dialog-o1o5fsBY.js +1 -0
  50. package/dist/assets/{keys-TghOLUK_.js → keys-bvwxU-Nn.js} +1 -1
  51. package/dist/assets/layout-config-vjyQ55VE.js +1 -0
  52. package/dist/assets/{layout-default-CQvX8pvu.js → layout-default-Bmr2AuLS.js} +1 -1
  53. package/dist/assets/layout-lock-i85d1fqR.js +1 -0
  54. package/dist/assets/layout-profile-CN8aC5D8.js +1 -0
  55. package/dist/assets/layout-profile-CXXVPlf5.js +1 -0
  56. package/dist/assets/layout-sign-dRB17K6p.js +1 -0
  57. package/dist/assets/layout-sign-ltYwHtGk.js +1 -0
  58. package/dist/assets/link-oGaKVImK.js +1 -0
  59. package/dist/assets/list-data-sources-adjust-WTi20syM.js +1 -0
  60. package/dist/assets/list-locations-As0Q6B1j.js +1 -0
  61. package/dist/assets/list-users-DsoIjPaS.js +1 -0
  62. package/dist/assets/logs-entries.transformers-CsxVIzqA.js +1 -0
  63. package/dist/assets/mcp.exceptions-DCsimQKn.js +1 -0
  64. package/dist/assets/notifications.exceptions-DWLirHz-.js +1 -0
  65. package/dist/assets/{omit-CwOnvSVN.js → omit-Bx6J5ySX.js} +1 -1
  66. package/dist/assets/page-configure-D1uozFKi.js +1 -0
  67. package/dist/assets/page-configure-ytjG854u.js +1 -0
  68. package/dist/assets/pagination-BRD3yP76.js +1 -0
  69. package/dist/assets/radio-Ccjyja5p.js +1 -0
  70. package/dist/assets/scene-add-form-CgruxHec.js +1 -0
  71. package/dist/assets/scene-edit-form-Bix-e8-P.js +1 -0
  72. package/dist/assets/{schemas.utils-D840MBN3.js → schemas.utils-DWbEHUX2.js} +1 -1
  73. package/dist/assets/select-BZCtBPAN.js +1 -0
  74. package/dist/assets/select-data-source-plugin-iGick1Fu.js +1 -0
  75. package/dist/assets/skeleton-CNRuASqp.js +1 -0
  76. package/dist/assets/slider-Bb1_3mLl.js +1 -0
  77. package/dist/assets/source-candidates.utils-Cb9r1JWA.js +1 -0
  78. package/dist/assets/{spaces-D-tQFPMe.js → spaces-D9wyAbko.js} +2 -2
  79. package/dist/assets/spaces-home-control.constants-CvSKJux3.js +1 -0
  80. package/dist/assets/steps-CFlcEz-i.js +1 -0
  81. package/dist/assets/{system-DtQu7fE0.js → system-79rvuFsE.js} +2 -2
  82. package/dist/assets/table-CFRJXsHQ.js +1 -0
  83. package/dist/assets/tabs-61uwdeaq.js +1 -0
  84. package/dist/assets/tile-detail-D4Ur1_43.js +1 -0
  85. package/dist/assets/tile-edit-form-HVPJGvVJ.js +1 -0
  86. package/dist/assets/types-DPk4ChIx.js +1 -0
  87. package/dist/assets/types-DaHriOn2.js +1 -0
  88. package/dist/assets/use-dialog-DT7SEb4g.js +1 -0
  89. package/dist/assets/use-ordered-children-jLmZ6DmH.js +1 -0
  90. package/dist/assets/useBuddyChat-ChFgcSNQ.js +1 -0
  91. package/dist/assets/useConfigModule-C5G5RPH_.js +1 -0
  92. package/dist/assets/{useDataSources-Hdo8qJZg.js → useDataSources-BCjgNXH7.js} +1 -1
  93. package/dist/assets/useDevicesPlugins-DoFX5T7Z.js +1 -0
  94. package/dist/assets/useEventBus-BBp5LBB-.js +1 -0
  95. package/dist/assets/{useExtensions-DoQMQb0z.js → useExtensions-CBRBDhdG.js} +1 -1
  96. package/dist/assets/useGeolocation-Bu_OrWlG.js +2 -0
  97. package/dist/assets/useLocation-D4jTkrKi.js +1 -0
  98. package/dist/assets/{useMcpClients-1EbfQ9P3.js → useMcpClients-evOnRLSH.js} +1 -1
  99. package/dist/assets/{useModule-CkH6rcF3.js → useModule-BFwF0Hvb.js} +1 -1
  100. package/dist/assets/{useModules-Diux-w1Q.js → useModules-LMm1LMWQ.js} +1 -1
  101. package/dist/assets/{useNumberFormat-Cpk8jRAr.js → useNumberFormat-8Lz2ms_w.js} +1 -1
  102. package/dist/assets/{usePage-qUuM3PR6.js → usePage-i5CJ8Y7Q.js} +1 -1
  103. package/dist/assets/{usePersonalTokens-ePsqRodN.js → usePersonalTokens-B-gvWF4Y.js} +1 -1
  104. package/dist/assets/{usePlugin-DAzjvxjS.js → usePlugin-BR8u8DBb.js} +1 -1
  105. package/dist/assets/{usePlugins-BzLkBW9_.js → usePlugins-CJqAJVB-.js} +1 -1
  106. package/dist/assets/useSession-BRG9xKsr.js +1 -0
  107. package/dist/assets/{useSpaces-CWuh4Y89.js → useSpaces-B-iaoyU0.js} +1 -1
  108. package/dist/assets/{useUuid-d9Pl2-B1.js → useUuid-ki5cjFg3.js} +1 -1
  109. package/dist/assets/view-buddy-chat-DtHYWFX7.js +1 -0
  110. package/dist/assets/view-card-add-IQthsVQk.js +1 -0
  111. package/dist/assets/view-card-edit-CYPHEwmR.js +1 -0
  112. package/dist/assets/view-channel-C3NGmwqj.js +1 -0
  113. package/dist/assets/view-channel-add-mFc_Z5uu.js +1 -0
  114. package/dist/assets/view-channel-edit-DxGvIum2.js +1 -0
  115. package/dist/assets/view-channel-property-add-D1m7T7OC.js +1 -0
  116. package/dist/assets/view-channel-property-edit-DZPU_3he.js +1 -0
  117. package/dist/assets/view-channels-BuBP9OyR.js +1 -0
  118. package/dist/assets/view-config-module-edit-C3GF41u-.js +1 -0
  119. package/dist/assets/view-config-modules-BbMGPuHA.js +1 -0
  120. package/dist/assets/view-config-plugin-edit-BFC9JPsn.js +1 -0
  121. package/dist/assets/view-config-plugins-D5czRx2c.js +1 -0
  122. package/dist/assets/view-data-source-add-DC4Cslpa.js +1 -0
  123. package/dist/assets/view-data-source-add-E8o8Ah6n.js +1 -0
  124. package/dist/assets/view-data-source-edit-D2rNqmKf.js +1 -0
  125. package/dist/assets/view-data-source-edit-M2OtC6AF.js +1 -0
  126. package/dist/assets/view-device-D2uINp2H.js +1 -0
  127. package/dist/assets/view-device-IDRa3OGX.css +1 -0
  128. package/dist/assets/view-device-add-SVR78XVz.js +1 -0
  129. package/dist/assets/view-device-control-DjTtRcVc.js +1 -0
  130. package/dist/assets/view-device-edit-Das0ELu7.js +1 -0
  131. package/dist/assets/view-devices-ES4YZ9Mx.js +1 -0
  132. package/dist/assets/view-devices-wizard-DA74IFeX.js +1 -0
  133. package/dist/assets/view-display-BQfiAcvA.js +1 -0
  134. package/dist/assets/view-display-edit-C2Q42ydZ.js +1 -0
  135. package/dist/assets/view-display-tokens-BOESTyRS.js +1 -0
  136. package/dist/assets/view-displays-DY4G5b0h.js +1 -0
  137. package/dist/assets/view-extension-detail-bg9LM7Qj.js +1 -0
  138. package/dist/assets/view-extensions-xLhnoWiR.js +1 -0
  139. package/dist/assets/view-light-group-wizard-C9jkTOTk.js +1 -0
  140. package/dist/assets/view-location-BiJYukNN.js +1 -0
  141. package/dist/assets/view-location-add-CC6x1o9s.js +1 -0
  142. package/dist/assets/view-location-edit-GJ3tBcMW.js +1 -0
  143. package/dist/assets/view-locations-Cpb31fOD.js +1 -0
  144. package/dist/assets/view-lock-screen-Qq8nNW0J.js +1 -0
  145. package/dist/assets/view-mcp-clients-hheL7VHs.js +1 -0
  146. package/dist/assets/view-mcp-oauth-consent-CyRCSOdl.js +1 -0
  147. package/dist/assets/view-mcp-oauth-management-CCbs1Kls.js +1 -0
  148. package/dist/assets/view-not-found-Dmbqw-XX.js +1 -0
  149. package/dist/assets/view-notifications-BX_CiuBF.js +1 -0
  150. package/dist/assets/view-onboarding-CxSWrF3B.js +1 -0
  151. package/dist/assets/view-page-Cm0Y4rlN.js +1 -0
  152. package/dist/assets/view-page-add-prE_qprC.js +1 -0
  153. package/dist/assets/view-page-configure-CUg75FaF.js +1 -0
  154. package/dist/assets/view-page-configure-DiWrdPO7.js +1 -0
  155. package/dist/assets/view-page-data-source-add-NTc7jCDJ.js +1 -0
  156. package/dist/assets/view-page-data-source-edit-eUvW2Ikr.js +1 -0
  157. package/dist/assets/view-page-edit-WpWT7tqq.js +1 -0
  158. package/dist/assets/view-page-plugin-DUzf5_B5.js +1 -0
  159. package/dist/assets/view-pages-CTZGODWB.js +1 -0
  160. package/dist/assets/view-profile-general-BDIhKfZf.js +1 -0
  161. package/dist/assets/view-profile-security-C3XKfmMM.js +1 -0
  162. package/dist/assets/view-remote-access-BY2xp7Zs.js +1 -0
  163. package/dist/assets/view-scene-add-eg06sORS.js +1 -0
  164. package/dist/assets/view-scene-edit-PwGTdwiH.js +1 -0
  165. package/dist/assets/view-scenes-Cw9ZQs-s.js +1 -0
  166. package/dist/assets/view-sign-in-DAJUkP4c.js +1 -0
  167. package/dist/assets/view-sign-up-JILDDlSt.js +1 -0
  168. package/dist/assets/view-simulator-device-wizard-DSAJrqIl.js +1 -0
  169. package/dist/assets/view-space-add-1oPsH2pS.js +1 -0
  170. package/dist/assets/view-space-configure-DxcrtfV4.js +1 -0
  171. package/dist/assets/view-space-configure-xSeRl5_6.css +1 -0
  172. package/dist/assets/view-space-edit-CKqi1xnn.js +1 -0
  173. package/dist/assets/view-space-plugin-BC-2GTO3.js +1 -0
  174. package/dist/assets/view-spaces-CguaoIcm.js +1 -0
  175. package/dist/assets/view-spaces-wizard-BaSqyh-S.js +1 -0
  176. package/dist/assets/view-stats-Dy4hI8ZC.js +1 -0
  177. package/dist/assets/view-system-backups-DZPXeohl.js +1 -0
  178. package/dist/assets/view-system-info-CquwwTkw.js +1 -0
  179. package/dist/assets/view-system-log-detail-CJPA0zbJ.js +1 -0
  180. package/dist/assets/view-system-logs-DXgQ14GN.js +1 -0
  181. package/dist/assets/view-tile-C24Ijx8R.js +1 -0
  182. package/dist/assets/view-tile-add-CbmbvYTu.js +1 -0
  183. package/dist/assets/view-tile-add-P4tSvs_9.js +1 -0
  184. package/dist/assets/view-tile-data-source-add-Dq5BYt27.js +1 -0
  185. package/dist/assets/view-tile-data-source-edit-B6mEXeAW.js +1 -0
  186. package/dist/assets/view-tile-edit-BQVqas4k.js +1 -0
  187. package/dist/assets/view-tile-edit-Cch5jL15.js +1 -0
  188. package/dist/assets/view-tile-edit-iOjoxpHP.js +1 -0
  189. package/dist/assets/view-user-add-BRYyi5fb.js +1 -0
  190. package/dist/assets/view-user-edit-e2S_mRfQ.js +1 -0
  191. package/dist/assets/view-users-DHIxR8Qy.js +1 -0
  192. package/dist/assets/view-virtual-device-wizard-FIcP5kB2.js +1 -0
  193. package/dist/assets/view-virtual-measurement-wizard-BH4k8pUm.js +1 -0
  194. package/dist/assets/view-virtual-thermostat-wizard-BBIb-taG.js +1 -0
  195. package/dist/assets/virtual-light-group-members-OmU35xjj.js +1 -0
  196. package/dist/assets/virtual-measurement-editor-CkDduLTw.js +1 -0
  197. package/dist/assets/virtual-measurement-editor-R993YkiI.js +1 -0
  198. package/dist/assets/virtual-thermostat-editor-CRGPh71P.js +1 -0
  199. package/dist/assets/{vue-meta.esm-browser.min-C5z7o_np.js → vue-meta.esm-browser.min-K07OTZFQ.js} +1 -1
  200. package/dist/assets/weather-CMRkX4kS.js +2 -0
  201. package/dist/assets/{weather-forecast.transformers-Byk60sNo.js → weather-forecast.transformers-BLYZYxUk.js} +1 -1
  202. package/dist/index.html +106 -102
  203. package/package.json +1 -1
  204. package/dist/assets/alert-QrG1sCYZ.js +0 -1
  205. package/dist/assets/card-C50YgvLJ.js +0 -1
  206. package/dist/assets/card-add-form-xQ3jq8UU.js +0 -1
  207. package/dist/assets/card-edit-form-ij_WELVm.js +0 -1
  208. package/dist/assets/checkbox-DC8SWg5-.js +0 -1
  209. package/dist/assets/col-DutoOaP1.js +0 -1
  210. package/dist/assets/collapse-YYBw5kEr.js +0 -1
  211. package/dist/assets/common-DkmUkaQU.js +0 -135
  212. package/dist/assets/components-B9rBWPBZ.js +0 -1
  213. package/dist/assets/components-BhM6Ajnr.js +0 -1
  214. package/dist/assets/components-CJN-jy0X.js +0 -1
  215. package/dist/assets/components-CM0wAvqJ.js +0 -1
  216. package/dist/assets/components-CRnkbXLk.js +0 -2
  217. package/dist/assets/components-Cifm_fnj.js +0 -8
  218. package/dist/assets/components-DdRbccBG.js +0 -1
  219. package/dist/assets/components-QekuGn4_.js +0 -6
  220. package/dist/assets/components-rarETCGi.js +0 -1
  221. package/dist/assets/components-uz62kHtl.js +0 -1
  222. package/dist/assets/composables-B9DljBQT.js +0 -1
  223. package/dist/assets/composables-BOOOE2P5.js +0 -1
  224. package/dist/assets/composables-CPxXv_dj.js +0 -1
  225. package/dist/assets/composables-CptvqUdI.js +0 -1
  226. package/dist/assets/composables-D0d8feiK.js +0 -1
  227. package/dist/assets/composables-DC6tLXWe.js +0 -1
  228. package/dist/assets/composables-DleezpFx2.js +0 -1
  229. package/dist/assets/composables-DlulzZQO.js +0 -1
  230. package/dist/assets/composables-kGCsTX0b.js +0 -1
  231. package/dist/assets/config-CdzBdVwi.js +0 -2
  232. package/dist/assets/dashboard-C9xOrxUn.js +0 -2
  233. package/dist/assets/descriptions-AI3JbKtS.js +0 -1
  234. package/dist/assets/devices-DfJBsQy7.js +0 -2
  235. package/dist/assets/devices-virtual.constants-BIMeiR5r.js +0 -1
  236. package/dist/assets/devices.constants-DHQemX04.js +0 -1
  237. package/dist/assets/dialog-Bfheq391.js +0 -1
  238. package/dist/assets/directive-D42ORGRu.js +0 -1
  239. package/dist/assets/drawer-C7FPifGU.js +0 -1
  240. package/dist/assets/form-D4GORLIN.js +0 -12
  241. package/dist/assets/index-BZxtmZTM.css +0 -1
  242. package/dist/assets/index-CZrIVFr7.js +0 -11
  243. package/dist/assets/input-number-BZA4bSND.js +0 -1
  244. package/dist/assets/integration-config-dialog-DCWljoXP.js +0 -1
  245. package/dist/assets/layout-config-B5_LNz9i.js +0 -1
  246. package/dist/assets/layout-lock-DRVJcMfF.js +0 -1
  247. package/dist/assets/layout-profile-DWnH5jHT.js +0 -1
  248. package/dist/assets/layout-profile-PUlyhE4I.js +0 -1
  249. package/dist/assets/layout-sign-AHug0XoT.js +0 -1
  250. package/dist/assets/layout-sign-DvG4Nfc1.js +0 -1
  251. package/dist/assets/link-mE1gaRBg.js +0 -1
  252. package/dist/assets/list-data-sources-adjust-6RL1H-hB.js +0 -1
  253. package/dist/assets/list-locations-BgjPPXLh.js +0 -1
  254. package/dist/assets/list-users-BBeCJy0F.js +0 -1
  255. package/dist/assets/logs-entries.transformers-p26XEWE3.js +0 -1
  256. package/dist/assets/mcp.exceptions-0AO2PkjW.js +0 -1
  257. package/dist/assets/notifications.exceptions-iK91Mjq1.js +0 -1
  258. package/dist/assets/page-configure-BN473onl.js +0 -1
  259. package/dist/assets/page-configure-BwvoI9-V.js +0 -1
  260. package/dist/assets/pagination-CSrb9USq.js +0 -1
  261. package/dist/assets/radio-BfBpfygp.js +0 -1
  262. package/dist/assets/scene-add-form-CHA8yKeQ.js +0 -1
  263. package/dist/assets/scene-edit-form-DScYyBtx.js +0 -1
  264. package/dist/assets/select-SNW1ZnG3.js +0 -1
  265. package/dist/assets/select-data-source-plugin-D3pcvOKH.js +0 -1
  266. package/dist/assets/skeleton-DkyCzTs7.js +0 -1
  267. package/dist/assets/slider-Cfdt_kIA.js +0 -1
  268. package/dist/assets/spaces-home-control.constants-Ci3s_u49.js +0 -1
  269. package/dist/assets/steps-DVtRuf_2.js +0 -1
  270. package/dist/assets/table-DOZz9A77.js +0 -1
  271. package/dist/assets/tabs-CUYibH1q.js +0 -1
  272. package/dist/assets/tile-detail-E3wkJ8QA.js +0 -1
  273. package/dist/assets/tile-edit-form-DrcZiDuz.js +0 -1
  274. package/dist/assets/types-B6K6Du7l.js +0 -1
  275. package/dist/assets/types-CKQ-nhSt.js +0 -1
  276. package/dist/assets/use-dialog-BNeR0eyg.js +0 -1
  277. package/dist/assets/use-ordered-children-D5mRegXD.js +0 -1
  278. package/dist/assets/useBuddyChat-O-Nu32au.js +0 -1
  279. package/dist/assets/useConfigModule-DLtc9prD.js +0 -1
  280. package/dist/assets/useDevicesPlugins-BNDlsi9J.js +0 -1
  281. package/dist/assets/useEventBus-Bqm_mpTp.js +0 -1
  282. package/dist/assets/useGeolocation-BDxIXwid.js +0 -2
  283. package/dist/assets/useLocation-D66xYs9N.js +0 -1
  284. package/dist/assets/view-buddy-chat-DgkTnDkf.js +0 -1
  285. package/dist/assets/view-card-add-D9LBvOga.js +0 -1
  286. package/dist/assets/view-card-edit-bpvsyA1z.js +0 -1
  287. package/dist/assets/view-channel-D5jg84ge.js +0 -1
  288. package/dist/assets/view-channel-add-D7lj4_y2.js +0 -1
  289. package/dist/assets/view-channel-edit-DLcAW8TT.js +0 -1
  290. package/dist/assets/view-channel-property-add-B_5Ns00q.js +0 -1
  291. package/dist/assets/view-channel-property-edit-DW-cx9E6.js +0 -1
  292. package/dist/assets/view-channels-DF2fDrNv.js +0 -1
  293. package/dist/assets/view-config-module-edit-D1EjDVlr.js +0 -1
  294. package/dist/assets/view-config-modules-ggI2BfJX.js +0 -1
  295. package/dist/assets/view-config-plugin-edit-X-ItOKUt.js +0 -1
  296. package/dist/assets/view-config-plugins-C_yffKUH.js +0 -1
  297. package/dist/assets/view-data-source-add-BY8C94Cw.js +0 -1
  298. package/dist/assets/view-data-source-add-v_akMAIZ.js +0 -1
  299. package/dist/assets/view-data-source-edit-BvwZfjcY.js +0 -1
  300. package/dist/assets/view-data-source-edit-sz5TUYS-.js +0 -1
  301. package/dist/assets/view-device-TJjGoba6.css +0 -1
  302. package/dist/assets/view-device-add-DDN2vIT6.js +0 -1
  303. package/dist/assets/view-device-control-B0f7GJIW.js +0 -1
  304. package/dist/assets/view-device-edit-B-ND2cx1.js +0 -1
  305. package/dist/assets/view-device-tRXMirG-.js +0 -1
  306. package/dist/assets/view-devices-DUMMr560.js +0 -1
  307. package/dist/assets/view-devices-wizard-DJijp22F.js +0 -1
  308. package/dist/assets/view-display-BeXpzbyP.js +0 -1
  309. package/dist/assets/view-display-edit-DLXJwBL0.js +0 -1
  310. package/dist/assets/view-display-tokens-CiXmtc2w.js +0 -1
  311. package/dist/assets/view-displays-Cm3Fc3dW.js +0 -1
  312. package/dist/assets/view-extension-detail-CauGclcF.js +0 -1
  313. package/dist/assets/view-extensions-CQIV7tDa.js +0 -1
  314. package/dist/assets/view-location-C9JKUHrG.js +0 -1
  315. package/dist/assets/view-location-add-Cyw9rNUf.js +0 -1
  316. package/dist/assets/view-location-edit-aKeRl0KT.js +0 -1
  317. package/dist/assets/view-locations-BRvsyxJX.js +0 -1
  318. package/dist/assets/view-lock-screen-BCVT-Txz.js +0 -1
  319. package/dist/assets/view-mcp-clients-4Wbh1wHR.js +0 -1
  320. package/dist/assets/view-mcp-oauth-consent-Bg7DsVZA.js +0 -1
  321. package/dist/assets/view-mcp-oauth-management-Dd1VS4ue.js +0 -1
  322. package/dist/assets/view-not-found-G5Aj98MD.js +0 -1
  323. package/dist/assets/view-notifications-CPtnm75W.js +0 -1
  324. package/dist/assets/view-onboarding-Cy66_-so.js +0 -1
  325. package/dist/assets/view-page-B5vr7x6L.js +0 -1
  326. package/dist/assets/view-page-add-Bx4kqewh.js +0 -1
  327. package/dist/assets/view-page-configure-C8gP42vB.js +0 -1
  328. package/dist/assets/view-page-configure-DLbQ0jo4.js +0 -1
  329. package/dist/assets/view-page-data-source-add-Bw6M4YHe.js +0 -1
  330. package/dist/assets/view-page-data-source-edit-Dgg9mncl.js +0 -1
  331. package/dist/assets/view-page-edit-Dye6EYLo.js +0 -1
  332. package/dist/assets/view-page-plugin-DEtt9En1.js +0 -1
  333. package/dist/assets/view-pages-Dn8Drdve.js +0 -1
  334. package/dist/assets/view-profile-general-8ks668d4.js +0 -1
  335. package/dist/assets/view-profile-security-Ce-FmQW8.js +0 -1
  336. package/dist/assets/view-remote-access-e4HQhY5z.js +0 -1
  337. package/dist/assets/view-scene-add-RhFPc4Wu.js +0 -1
  338. package/dist/assets/view-scene-edit-C2C5cYN8.js +0 -1
  339. package/dist/assets/view-scenes-cbBuTg7e.js +0 -1
  340. package/dist/assets/view-sign-in-Cm_TlPMa.js +0 -1
  341. package/dist/assets/view-sign-up-DUuGiF8o.js +0 -1
  342. package/dist/assets/view-simulator-device-wizard-CCf80E51.js +0 -1
  343. package/dist/assets/view-space-add-BkLSwO2X.js +0 -1
  344. package/dist/assets/view-space-configure-DKlvZpIj.css +0 -1
  345. package/dist/assets/view-space-configure-DbW2ofRt.js +0 -1
  346. package/dist/assets/view-space-edit-DP5Y5ggD.js +0 -1
  347. package/dist/assets/view-space-plugin-Cwd9TUxg.js +0 -1
  348. package/dist/assets/view-spaces-C6SFJ1VW.js +0 -1
  349. package/dist/assets/view-spaces-wizard-Y3wiwlhs.js +0 -1
  350. package/dist/assets/view-stats-IW0CZ8Fw.js +0 -1
  351. package/dist/assets/view-system-backups-Dhtu-CnM.js +0 -1
  352. package/dist/assets/view-system-info-Cx-14wJG.js +0 -1
  353. package/dist/assets/view-system-log-detail-BO4ilDdv.js +0 -1
  354. package/dist/assets/view-system-logs-CqUXDuK_.js +0 -1
  355. package/dist/assets/view-tile-BPCK9n9t.js +0 -1
  356. package/dist/assets/view-tile-add-CF9ubtMw.js +0 -1
  357. package/dist/assets/view-tile-add-h0VJqXUB.js +0 -1
  358. package/dist/assets/view-tile-data-source-add-CVTfQps5.js +0 -1
  359. package/dist/assets/view-tile-data-source-edit-BzY0kuaA.js +0 -1
  360. package/dist/assets/view-tile-edit-50dQVXk8.js +0 -1
  361. package/dist/assets/view-tile-edit-BDAe8RfW.js +0 -1
  362. package/dist/assets/view-tile-edit-DR26QBRL.js +0 -1
  363. package/dist/assets/view-user-add-D6yErQib.js +0 -1
  364. package/dist/assets/view-user-edit-Dx054xQN.js +0 -1
  365. package/dist/assets/view-users-BRcK8se-.js +0 -1
  366. package/dist/assets/view-virtual-device-wizard-DMw5SLOV.js +0 -1
  367. package/dist/assets/weather-C4tKwN3s.js +0 -2
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Ci as t,D as n,Dr as r,E as i,Er as a,Fr as o,H as s,Mr as c,Mt as l,Nr as u,O as d,Or as f,Pi as p,T as m,Ti as h,Xi as g,Yi as _,Zr as v,bi as y,di as b,ei as x,k as S,kr as C,mi as w,ni as T,pi as E,qi as D,qr as O,t as k,xr as A,yr as j}from"./icon-with-child-C0yuv0oQ.js";import{Ai as M,Di as N,Gr as P,Jr as F,M as I,Qr as L,Ti as R,ai as z,bi as B,di as V,oi as H,wi as ee}from"./common-Cq0z9nNV.js";import{n as U,t as te}from"./table-CFRJXsHQ.js";import{n as W,t as G}from"./form-CoKeb4n7.js";import{t as K}from"./alert-C46gt4gd.js";import{t as q}from"./input-number-LzEdwV5R.js";import{r as J,t as Y}from"./select-BZCtBPAN.js";import{t as ne}from"./card-CfYeWlyn.js";import{n as re,t as ie}from"./checkbox-DTPMEXAL.js";import{n as X,r as Z}from"./radio-Ccjyja5p.js";import{n as Q,t as ae}from"./collapse-Lq5XIsa-.js";import{t as oe}from"./link-oGaKVImK.js";import{t as se}from"./pagination-BRD3yP76.js";import{t as $}from"./slider-Bb1_3mLl.js";import{t as ce}from"./components-B383JPLp.js";import{t as le}from"./directive-CBwN801q.js";import{i as ue}from"./config-COwev7fh.js";import{c as de,s as fe}from"./config.constants-17QBQ_kF.js";import{b as pe}from"./composables-BGj78DB-.js";import{a as me,g as he,i as ge,m as _e}from"./composables-DWpPaUpC.js";import{t as ve}from"./useSpaces-B-iaoyU0.js";import"./composables-BYXOFFmS.js";import{g as ye}from"./composables-CIOrWHUe.js";var be=o({name:`DisplaysMultiSelect`,__name:`displays-multi-select`,props:{modelValue:{default:null},placeholder:{default:`Select displays (leave empty for all displays)`}},emits:[`update:modelValue`],setup(t,{emit:n}){let r=n,{displays:i}=ge(),a=e=>{r(`update:modelValue`,e&&e.length>0?e:null)};return(n,r)=>(x(),f(p(J),{"model-value":t.modelValue,placeholder:t.placeholder,multiple:``,clearable:``,"collapse-tags":``,"collapse-tags-tooltip":``,"onUpdate:modelValue":a},{default:E(()=>[(x(!0),e(A,null,T(p(i),e=>(x(),f(p(Y),{key:e.id,label:e.name||e.macAddress,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`]))}}),xe={class:`flex items-center gap-2`},Se={class:`font-medium`},Ce={class:`px-2`},we={class:`text-gray-500 text-sm mt-1`},Te={class:`flex items-center gap-2`},Ee={class:`font-medium`},De={class:`px-2`},Oe={class:`text-gray-500 text-sm mt-1`},ke={class:`text-gray-500 text-sm mt-1`},Ae=[`innerHTML`],je={class:`flex items-center gap-2`},Me={class:`font-medium`},Ne={class:`px-2`},Pe={class:`flex items-center gap-2`},Fe={class:`font-medium`},Ie={class:`px-2`},Le={class:`text-gray-500 text-sm mt-1`},Re={class:`flex items-center gap-2`},ze={class:`font-medium`},Be={class:`px-2`},Ve={class:`flex items-center gap-2`},He={class:`font-medium`},Ue={class:`px-2`},We={class:`grid grid-cols-3 gap-4`},Ge={class:`text-gray-500 text-xs ml-1`},Ke={class:`flex items-center gap-2`},qe={class:`font-medium`},Je={class:`px-2`},Ye=o({name:`DisplayEditForm`,__name:`display-edit-form`,props:{display:{},remoteFormSubmit:{type:Boolean},remoteFormResult:{default:_e.NONE},remoteFormReset:{type:Boolean,default:!1},remoteFormChanged:{type:Boolean,default:!1}},emits:[`update:remote-form-submit`,`update:remote-form-result`,`update:remote-form-reset`,`update:remote-form-changed`],setup(t,{emit:i}){let o=t,l=i,{t:d}=m(),{pages:_,fetchPages:y}=pe(),{fetchSpaces:S,firstLoadFinished:w}=ve(),{locations:D,fetchLocations:O}=ye(),k=a(()=>he.map(e=>({value:e.value,label:d(`displaysModule.fields.displays.screenLockDuration.options.${e.labelKey}`)}))),j=a(()=>_.value.filter(e=>!e.displays||e.displays.length===0||e.displays.includes(o.display.id)));v(async()=>{try{await Promise.all([w.value?Promise.resolve():S(),y().catch(()=>{}),O().catch(()=>{})])}catch{}});let{model:M,formEl:P,formChanged:F,submit:I,formResult:L}=me({display:o.display}),R=h([`general`]),z=e=>{e!==`explicit`&&(M.homePageId=null),P.value&&(e===`auto_space`?P.value.validateField(`spaceId`).catch(()=>{}):P.value.clearValidate([`spaceId`]))},ee=a(()=>({name:[{max:100,message:d(`displaysModule.fields.displays.name.validation.maxLength`),trigger:`blur`}],unitSize:[{type:`number`,min:1,message:d(`displaysModule.fields.displays.unitSize.validation.min`),trigger:`blur`}],rows:[{type:`number`,min:1,message:d(`displaysModule.fields.displays.rows.validation.min`),trigger:`blur`}],cols:[{type:`number`,min:1,message:d(`displaysModule.fields.displays.cols.validation.min`),trigger:`blur`}],brightness:[{type:`number`,min:0,max:100,message:d(`displaysModule.fields.displays.brightness.validation.range`),trigger:`blur`}],screenLockDuration:[{type:`enum`,enum:he.map(e=>e.value),message:d(`displaysModule.fields.displays.screenLockDuration.title`),trigger:`change`}],homePageId:[{required:M.homeMode===`explicit`,message:d(`displaysModule.fields.displays.homePageId.validation.required`),trigger:`blur`}],spaceId:[{required:M.homeMode===`auto_space`,message:d(`displaysModule.fields.displays.spaceId.validation.required`),trigger:`change`}],speakerVolume:[{type:`number`,min:0,max:100,message:d(`displaysModule.fields.displays.speakerVolume.validation.range`),trigger:`blur`}],microphoneVolume:[{type:`number`,min:0,max:100,message:d(`displaysModule.fields.displays.microphoneVolume.validation.range`),trigger:`blur`}]}));return b(()=>L.value,e=>{l(`update:remote-form-result`,e)}),b(()=>o.remoteFormSubmit??!1,e=>{e&&(l(`update:remote-form-submit`,!1),I().catch(()=>{}))}),b(()=>o.remoteFormReset??!1,e=>{if(l(`update:remote-form-reset`,!1),e){if(!P.value)return;P.value.resetFields()}}),b(()=>F.value,e=>{l(`update:remote-form-changed`,e)}),(i,a)=>(x(),f(p(G),{ref_key:`formEl`,ref:P,model:p(M),rules:ee.value,"label-position":`top`,"status-icon":``},{default:E(()=>[u(p(ae),{modelValue:R.value,"onUpdate:modelValue":a[24]||=e=>R.value=e},{default:E(()=>[u(p(Q),{name:`general`},{title:E(()=>[r(`div`,xe,[u(p(s),{size:20},{default:E(()=>[u(p(n),{icon:`mdi:information`})]),_:1}),r(`span`,Se,g(p(d)(`displaysModule.edit.sections.general.title`)),1)])]),default:E(()=>[r(`div`,Ce,[u(p(W),{label:p(d)(`displaysModule.fields.displays.id.title`),prop:[`id`]},{default:E(()=>[u(p(N),{modelValue:p(M).id,"onUpdate:modelValue":a[0]||=e=>p(M).id=e,placeholder:p(d)(`displaysModule.fields.displays.id.placeholder`),name:`id`,readonly:``,disabled:``},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.name.title`),prop:[`name`]},{default:E(()=>[u(p(N),{modelValue:p(M).name,"onUpdate:modelValue":a[1]||=e=>p(M).name=e,placeholder:p(d)(`displaysModule.fields.displays.name.placeholder`),name:`name`},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.spaceId.title`),prop:[`spaceId`]},{default:E(()=>[u(p(ce),{modelValue:p(M).spaceId,"onUpdate:modelValue":a[2]||=e=>p(M).spaceId=e,placeholder:p(d)(`displaysModule.fields.displays.spaceId.placeholder`),filter:`all`},null,8,[`modelValue`,`placeholder`]),r(`div`,we,g(p(d)(`displaysModule.fields.displays.spaceId.description`)),1)]),_:1},8,[`label`])])]),_:1}),u(p(Q),{name:`homePage`},{title:E(()=>[r(`div`,Te,[u(p(s),{size:20},{default:E(()=>[u(p(n),{icon:`mdi:home`})]),_:1}),r(`span`,Ee,g(p(d)(`displaysModule.edit.sections.homePage.title`)),1)])]),default:E(()=>[r(`div`,De,[u(p(W),{label:p(d)(`displaysModule.fields.displays.homeMode.title`),prop:[`homeMode`]},{default:E(()=>[u(p(J),{modelValue:p(M).homeMode,"onUpdate:modelValue":a[3]||=e=>p(M).homeMode=e,name:`homeMode`,onChange:z},{default:E(()=>[u(p(Y),{value:`auto_space`,label:p(d)(`displaysModule.fields.displays.homeMode.options.autoSpace`)},null,8,[`label`]),u(p(Y),{value:`explicit`,label:p(d)(`displaysModule.fields.displays.homeMode.options.explicit`)},null,8,[`label`])]),_:1},8,[`modelValue`]),r(`div`,Oe,g(p(d)(`displaysModule.fields.displays.homeMode.description`)),1)]),_:1},8,[`label`]),p(M).homeMode===`explicit`?(x(),f(p(W),{key:0,label:p(d)(`displaysModule.fields.displays.homePageId.title`),prop:[`homePageId`]},{default:E(()=>[u(p(J),{modelValue:p(M).homePageId,"onUpdate:modelValue":a[4]||=e=>p(M).homePageId=e,placeholder:p(d)(`displaysModule.fields.displays.homePageId.placeholder`),name:`homePageId`,clearable:``},{default:E(()=>[(x(!0),e(A,null,T(j.value,e=>(x(),f(p(Y),{key:e.id,value:e.id,label:e.title},null,8,[`value`,`label`]))),128))]),_:1},8,[`modelValue`,`placeholder`]),r(`div`,ke,g(p(d)(`displaysModule.fields.displays.homePageId.description`)),1)]),_:1},8,[`label`])):C(``,!0),p(M).homeMode===`auto_space`&&p(M).spaceId?(x(),f(p(K),{key:1,type:`info`,closable:!1,"show-icon":``},{title:E(()=>[r(`span`,{innerHTML:p(d)(`displaysModule.edit.sections.homePage.autoSpaceHint`)},null,8,Ae)]),_:1})):C(``,!0)])]),_:1}),u(p(Q),{name:`appearance`},{title:E(()=>[r(`div`,je,[u(p(s),{size:20},{default:E(()=>[u(p(n),{icon:`mdi:palette`})]),_:1}),r(`span`,Me,g(p(d)(`displaysModule.edit.sections.appearance.title`)),1)])]),default:E(()=>[r(`div`,Ne,[u(p(W),{label:p(d)(`displaysModule.fields.displays.brightness.title`),prop:[`brightness`]},{default:E(()=>[u(p($),{modelValue:p(M).brightness,"onUpdate:modelValue":a[5]||=e=>p(M).brightness=e,min:0,max:100,"show-input":``},null,8,[`modelValue`])]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.darkMode.title`),prop:[`darkMode`],"label-position":`left`},{default:E(()=>[u(p(H),{modelValue:p(M).darkMode,"onUpdate:modelValue":a[6]||=e=>p(M).darkMode=e,name:`darkMode`},null,8,[`modelValue`])]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.screenSaver.title`),prop:[`screenSaver`],"label-position":`left`},{default:E(()=>[u(p(H),{modelValue:p(M).screenSaver,"onUpdate:modelValue":a[7]||=e=>p(M).screenSaver=e,name:`screenSaver`},null,8,[`modelValue`])]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.screenPowerOff.title`),prop:[`screenPowerOff`],"label-position":`left`},{default:E(()=>[u(p(H),{modelValue:p(M).screenPowerOff,"onUpdate:modelValue":a[8]||=e=>p(M).screenPowerOff=e,name:`screenPowerOff`},null,8,[`modelValue`])]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.screenLockDuration.title`),prop:[`screenLockDuration`]},{default:E(()=>[u(p(J),{modelValue:p(M).screenLockDuration,"onUpdate:modelValue":a[9]||=e=>p(M).screenLockDuration=e},{default:E(()=>[(x(!0),e(A,null,T(k.value,e=>(x(),f(p(Y),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1},8,[`label`])])]),_:1}),u(p(Q),{name:`weather`},{title:E(()=>[r(`div`,Pe,[u(p(s),{size:20},{default:E(()=>[u(p(n),{icon:`mdi:weather-partly-cloudy`})]),_:1}),r(`span`,Fe,g(p(d)(`displaysModule.edit.sections.weather.title`)),1)])]),default:E(()=>[r(`div`,Ie,[u(p(K),{title:p(d)(`displaysModule.edit.sections.weather.description`),type:`info`,closable:!1,"show-icon":``,class:`mb-4!`},null,8,[`title`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.weatherLocationId.title`),prop:[`weatherLocationId`]},{default:E(()=>[u(p(J),{modelValue:p(M).weatherLocationId,"onUpdate:modelValue":a[10]||=e=>p(M).weatherLocationId=e,placeholder:p(d)(`displaysModule.fields.displays.weatherLocationId.placeholder`),name:`weatherLocationId`,clearable:``,filterable:``},{default:E(()=>[(x(!0),e(A,null,T(p(D),e=>(x(),f(p(Y),{key:e.id,value:e.id,label:e.name},null,8,[`value`,`label`]))),128))]),_:1},8,[`modelValue`,`placeholder`]),r(`div`,Le,g(p(d)(`displaysModule.fields.displays.weatherLocationId.description`)),1)]),_:1},8,[`label`])])]),_:1}),u(p(Q),{name:`units`},{title:E(()=>[r(`div`,Re,[u(p(s),{size:20},{default:E(()=>[u(p(n),{icon:`mdi:ruler`})]),_:1}),r(`span`,ze,g(p(d)(`displaysModule.edit.sections.units.title`)),1)])]),default:E(()=>[r(`div`,Be,[u(p(K),{title:p(d)(`displaysModule.edit.sections.units.description`),type:`info`,closable:!1,"show-icon":``,class:`mb-4!`},null,8,[`title`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.numberFormat.title`),prop:[`numberFormat`]},{default:E(()=>[u(p(J),{modelValue:p(M).numberFormat,"onUpdate:modelValue":a[11]||=e=>p(M).numberFormat=e,placeholder:p(d)(`displaysModule.fields.displays.numberFormat.placeholder`),name:`numberFormat`,clearable:``},{default:E(()=>[u(p(Y),{label:p(d)(`displaysModule.fields.displays.numberFormat.placeholder`),value:``},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.numberFormat.values.commaDot`),value:`comma_dot`},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.numberFormat.values.dotComma`),value:`dot_comma`},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.numberFormat.values.spaceComma`),value:`space_comma`},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.numberFormat.values.none`),value:`none`},null,8,[`label`])]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.temperatureUnit.title`),prop:[`temperatureUnit`]},{default:E(()=>[u(p(J),{modelValue:p(M).temperatureUnit,"onUpdate:modelValue":a[12]||=e=>p(M).temperatureUnit=e,placeholder:p(d)(`displaysModule.fields.displays.temperatureUnit.placeholder`),name:`temperatureUnit`,clearable:``},{default:E(()=>[u(p(Y),{label:p(d)(`displaysModule.fields.displays.temperatureUnit.placeholder`),value:``},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.temperatureUnit.values.celsius`),value:`celsius`},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.temperatureUnit.values.fahrenheit`),value:`fahrenheit`},null,8,[`label`])]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.windSpeedUnit.title`),prop:[`windSpeedUnit`]},{default:E(()=>[u(p(J),{modelValue:p(M).windSpeedUnit,"onUpdate:modelValue":a[13]||=e=>p(M).windSpeedUnit=e,placeholder:p(d)(`displaysModule.fields.displays.windSpeedUnit.placeholder`),name:`windSpeedUnit`,clearable:``},{default:E(()=>[u(p(Y),{label:p(d)(`displaysModule.fields.displays.windSpeedUnit.placeholder`),value:``},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.windSpeedUnit.values.ms`),value:`ms`},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.windSpeedUnit.values.kmh`),value:`kmh`},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.windSpeedUnit.values.mph`),value:`mph`},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.windSpeedUnit.values.knots`),value:`knots`},null,8,[`label`])]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.pressureUnit.title`),prop:[`pressureUnit`]},{default:E(()=>[u(p(J),{modelValue:p(M).pressureUnit,"onUpdate:modelValue":a[14]||=e=>p(M).pressureUnit=e,placeholder:p(d)(`displaysModule.fields.displays.pressureUnit.placeholder`),name:`pressureUnit`,clearable:``},{default:E(()=>[u(p(Y),{label:p(d)(`displaysModule.fields.displays.pressureUnit.placeholder`),value:``},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.pressureUnit.values.hpa`),value:`hpa`},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.pressureUnit.values.mbar`),value:`mbar`},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.pressureUnit.values.inhg`),value:`inhg`},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.pressureUnit.values.mmhg`),value:`mmhg`},null,8,[`label`])]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.precipitationUnit.title`),prop:[`precipitationUnit`]},{default:E(()=>[u(p(J),{modelValue:p(M).precipitationUnit,"onUpdate:modelValue":a[15]||=e=>p(M).precipitationUnit=e,placeholder:p(d)(`displaysModule.fields.displays.precipitationUnit.placeholder`),name:`precipitationUnit`,clearable:``},{default:E(()=>[u(p(Y),{label:p(d)(`displaysModule.fields.displays.precipitationUnit.placeholder`),value:``},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.precipitationUnit.values.mm`),value:`mm`},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.precipitationUnit.values.inches`),value:`inches`},null,8,[`label`])]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.distanceUnit.title`),prop:[`distanceUnit`]},{default:E(()=>[u(p(J),{modelValue:p(M).distanceUnit,"onUpdate:modelValue":a[16]||=e=>p(M).distanceUnit=e,placeholder:p(d)(`displaysModule.fields.displays.distanceUnit.placeholder`),name:`distanceUnit`,clearable:``},{default:E(()=>[u(p(Y),{label:p(d)(`displaysModule.fields.displays.distanceUnit.placeholder`),value:``},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.distanceUnit.values.km`),value:`km`},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.distanceUnit.values.miles`),value:`miles`},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.distanceUnit.values.meters`),value:`meters`},null,8,[`label`]),u(p(Y),{label:p(d)(`displaysModule.fields.displays.distanceUnit.values.feet`),value:`feet`},null,8,[`label`])]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`])])]),_:1}),u(p(Q),{name:`layout`},{title:E(()=>[r(`div`,Ve,[u(p(s),{size:20},{default:E(()=>[u(p(n),{icon:`mdi:view-grid`})]),_:1}),r(`span`,He,g(p(d)(`displaysModule.edit.sections.layout.title`)),1),u(p(B),{size:`small`,type:`info`},{default:E(()=>[c(g(p(d)(`displaysModule.edit.sections.layout.badge`)),1)]),_:1})])]),default:E(()=>[r(`div`,Ue,[u(p(K),{title:p(d)(`displaysModule.edit.sections.layout.description`),type:`info`,closable:!1,"show-icon":``,class:`mb-4!`},null,8,[`title`]),r(`div`,We,[u(p(W),{label:p(d)(`displaysModule.fields.displays.unitSize.title`),prop:[`unitSize`]},{default:E(()=>[u(p(q),{modelValue:p(M).unitSize,"onUpdate:modelValue":a[17]||=e=>p(M).unitSize=e,min:1,name:`unitSize`,class:`w-full`},null,8,[`modelValue`]),r(`span`,Ge,g(p(d)(`displaysModule.fields.displays.unitSize.unit`)),1)]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.rows.title`),prop:[`rows`]},{default:E(()=>[u(p(q),{modelValue:p(M).rows,"onUpdate:modelValue":a[18]||=e=>p(M).rows=e,min:1,name:`rows`,class:`w-full`},null,8,[`modelValue`])]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.cols.title`),prop:[`cols`]},{default:E(()=>[u(p(q),{modelValue:p(M).cols,"onUpdate:modelValue":a[19]||=e=>p(M).cols=e,min:1,name:`cols`,class:`w-full`},null,8,[`modelValue`])]),_:1},8,[`label`])])])]),_:1}),t.display.audioOutputSupported||t.display.audioInputSupported?(x(),f(p(Q),{key:0,name:`audio`},{title:E(()=>[r(`div`,Ke,[u(p(s),{size:20},{default:E(()=>[u(p(n),{icon:`mdi:volume-high`})]),_:1}),r(`span`,qe,g(p(d)(`displaysModule.edit.sections.audio.title`)),1),u(p(B),{size:`small`,type:`info`},{default:E(()=>[c(g(p(d)(`displaysModule.edit.sections.audio.badge`)),1)]),_:1})])]),default:E(()=>[r(`div`,Je,[t.display.audioOutputSupported?(x(),e(A,{key:0},[u(p(W),{label:p(d)(`displaysModule.fields.displays.speaker.title`),prop:[`speaker`],"label-position":`left`},{default:E(()=>[u(p(H),{modelValue:p(M).speaker,"onUpdate:modelValue":a[20]||=e=>p(M).speaker=e,name:`speaker`},null,8,[`modelValue`])]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.speakerVolume.title`),prop:[`speakerVolume`]},{default:E(()=>[u(p($),{modelValue:p(M).speakerVolume,"onUpdate:modelValue":a[21]||=e=>p(M).speakerVolume=e,min:0,max:100,disabled:!p(M).speaker,"show-input":``},null,8,[`modelValue`,`disabled`])]),_:1},8,[`label`])],64)):C(``,!0),t.display.audioInputSupported?(x(),e(A,{key:1},[t.display.audioOutputSupported?(x(),f(p(V),{key:0})):C(``,!0),u(p(W),{label:p(d)(`displaysModule.fields.displays.microphone.title`),prop:[`microphone`],"label-position":`left`},{default:E(()=>[u(p(H),{modelValue:p(M).microphone,"onUpdate:modelValue":a[22]||=e=>p(M).microphone=e,name:`microphone`},null,8,[`modelValue`])]),_:1},8,[`label`]),u(p(W),{label:p(d)(`displaysModule.fields.displays.microphoneVolume.title`),prop:[`microphoneVolume`]},{default:E(()=>[u(p($),{modelValue:p(M).microphoneVolume,"onUpdate:modelValue":a[23]||=e=>p(M).microphoneVolume=e,min:0,max:100,disabled:!p(M).microphone,"show-input":``},null,8,[`modelValue`,`disabled`])]),_:1},8,[`label`])],64)):C(``,!0)])]),_:1})):C(``,!0)]),_:1},8,[`modelValue`])]),_:1},8,[`model`,`rules`]))}}),Xe=o({name:`DisplaysConfigForm`,__name:`displays-config-form`,props:{config:{},remoteFormSubmit:{type:Boolean},remoteFormResult:{default:fe.NONE},remoteFormReset:{type:Boolean,default:!1},remoteFormChanged:{type:Boolean,default:!1},layout:{default:de.DEFAULT}},emits:[`update:remote-form-submit`,`update:remote-form-result`,`update:remote-form-reset`,`update:remote-form-changed`],setup(e,{emit:n}){let i=e,a=n,{t:o}=m(),{formEl:s,model:c,formChanged:l,submit:d,formResult:h}=ue({config:i.config,messages:{success:o(`displaysModule.messages.config.edited`),error:o(`displaysModule.messages.config.notEdited`)}}),_=t({deploymentMode:[{required:!0,message:o(`displaysModule.fields.config.deploymentMode.validation.required`),trigger:`change`}],permitJoinDurationMs:[{required:!0,message:o(`displaysModule.fields.config.permitJoinDurationMs.validation.required`),trigger:`change`},{type:`number`,min:1e3,message:o(`displaysModule.fields.config.permitJoinDurationMs.validation.min`),trigger:`change`}]});return b(()=>h.value,async e=>{a(`update:remote-form-result`,e)}),b(()=>i.remoteFormSubmit,async e=>{e&&(a(`update:remote-form-submit`,!1),d().catch(()=>{}))}),b(()=>i.remoteFormReset,e=>{if(a(`update:remote-form-reset`,!1),e){if(!s.value)return;s.value.resetFields()}}),b(()=>l.value,e=>{a(`update:remote-form-changed`,e)}),(e,t)=>(x(),f(p(G),{ref_key:`formEl`,ref:s,model:p(c),rules:_,"label-position":`top`,"status-icon":``},{default:E(()=>[u(p(K),{type:`info`,title:p(o)(`displaysModule.headings.aboutDisplayConfiguration`),description:p(o)(`displaysModule.texts.aboutDisplayConfiguration`),closable:!1},null,8,[`title`,`description`]),u(p(W),{label:p(o)(`displaysModule.fields.config.deploymentMode.title`),prop:`deploymentMode`,class:`mt-3`},{default:E(()=>[u(p(J),{modelValue:p(c).deploymentMode,"onUpdate:modelValue":t[0]||=e=>p(c).deploymentMode=e,placeholder:p(o)(`displaysModule.fields.config.deploymentMode.placeholder`),name:`deploymentMode`},{default:E(()=>[u(p(Y),{label:`Standalone`,value:`standalone`}),u(p(Y),{label:`All-in-one`,value:`all-in-one`}),u(p(Y),{label:`Combined`,value:`combined`})]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),u(p(W),{label:p(o)(`displaysModule.fields.config.permitJoinDurationMs.title`),prop:`permitJoinDurationMs`},{append:E(()=>[r(`span`,null,g(p(o)(`displaysModule.fields.config.permitJoinDurationMs.unit`)),1)]),default:E(()=>[u(p(q),{modelValue:p(c).permitJoinDurationMs,"onUpdate:modelValue":t[1]||=e=>p(c).permitJoinDurationMs=e,min:1e3,step:1e3,placeholder:p(o)(`displaysModule.fields.config.permitJoinDurationMs.placeholder`),name:`permitJoinDurationMs`},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`])]),_:1},8,[`model`,`rules`]))}}),Ze=o({name:`DisplaysTableColumnIcon`,__name:`displays-table-column-icon`,props:{display:{}},setup(e){return(e,t)=>(x(),f(p(ee),{size:32},{default:E(()=>[u(p(n),{icon:`mdi:monitor`,class:`w[20px] h[20px]`})]),_:1}))}}),Qe={key:1,class:`text-gray-400`},$e=o({name:`TableColumnDisplay`,__name:`table-column-display`,props:{displayId:{},row:{},filters:{}},setup(t){let{t:n}=m(),r=t,i=a(()=>r.row?.displays?r.row.displays:null),{displays:o}=ge(),s=a(()=>!i.value||i.value.length===0?[]:o.value.filter(e=>i.value.includes(e.id)));return(t,r)=>i.value&&i.value.length>0?(x(!0),e(A,{key:0},T(s.value,e=>(x(),f(p(B),{key:e.id,size:`small`,class:`mr-1`},{default:E(()=>[c(g(e.name||e.macAddress),1)]),_:2},1024))),128)):(x(),e(`span`,Qe,g(p(n)(`dashboardModule.table.pages.columns.display.all`)),1))}}),et={class:`flex w-full`},tt=i(o({name:`DisplaysFilter`,__name:`displays-filter`,props:{filters:{},filtersActive:{type:Boolean},selectedCount:{},bulkActions:{}},emits:[`update:filters`,`reset-filters`,`adjust-list`,`bulk-action`],setup(t,{emit:r}){let i=t,a=r,o=l(`displays-filter`),{t:c}=m(),d=F(i,`filters`,a),g=h(void 0);return b(()=>d.value.search,e=>{e===``&&(d.value.search=void 0)}),(t,r)=>(x(),e(`div`,et,[u(p(G),{ref_key:`filterFormEl`,ref:g,inline:!0,model:p(d),class:D([[p(o).b()],`grow-1`])},{default:E(()=>[u(p(N),{modelValue:p(d).search,"onUpdate:modelValue":r[0]||=e=>p(d).search=e,placeholder:p(c)(`displaysModule.fields.search.placeholder`),class:`max-w[280px] p-1`,clearable:``},{suffix:E(()=>[u(p(s),null,{default:E(()=>[u(p(n),{icon:`mdi:magnify`})]),_:1})]),_:1},8,[`modelValue`,`placeholder`]),u(p(V),{direction:`vertical`}),u(p(W),{label:p(c)(`displaysModule.filters.state.title`),class:D([[p(o).e(`display-state`)],`p-1 m-0!`])},{default:E(()=>[u(p(Z),{modelValue:p(d).state,"onUpdate:modelValue":r[1]||=e=>p(d).state=e},{default:E(()=>[u(p(X),{label:p(c)(`displaysModule.states.connected`),value:`online`},null,8,[`label`]),u(p(X),{label:p(c)(`displaysModule.states.disconnected`),value:`offline`},null,8,[`label`]),u(p(X),{label:p(c)(`devicesModule.states.all`),value:`all`},null,8,[`label`])]),_:1},8,[`modelValue`])]),_:1},8,[`label`,`class`])]),_:1},8,[`model`,`class`]),u(p(I),{"selected-count":i.selectedCount,actions:i.bulkActions,onAction:r[2]||=e=>a(`bulk-action`,e)},null,8,[`selected-count`,`actions`]),i.filtersActive?(x(),f(p(S),{key:0,plain:``,class:`px-2! mt-1 mr-1`,onClick:r[3]||=e=>a(`reset-filters`)},{default:E(()=>[u(p(n),{icon:`mdi:filter-off`})]),_:1})):C(``,!0),u(p(S),{plain:``,class:`px-2! mt-1 mr-1`,onClick:r[4]||=e=>a(`adjust-list`)},{default:E(()=>[u(p(n),{icon:`mdi:slider`})]),_:1})]))}}),[[`__scopeId`,`data-v-ace051c6`]]),nt=o({name:`DisplaysTableColumnState`,__name:`displays-table-column-state`,props:{display:{},filters:{}},emits:[`filter-by`],setup(e,{emit:t}){let r=e,i=t,{t:a}=m();return(t,o)=>(x(),f(p(oe),{type:r.filters.states.includes(e.display.status??`unknown`)?`danger`:void 0,underline:`never`,class:`font-400!`,onClick:o[0]||=j(t=>i(`filter-by`,e.display.status??`unknown`,!r.filters.states.includes(e.display.status??`unknown`)),[`stop`])},{default:E(()=>[u(p(s),{class:`el-icon--left`},{default:E(()=>[r.filters.states.includes(e.display.status??`unknown`)?(x(),f(p(n),{key:0,icon:`mdi:filter-minus`})):(x(),f(p(n),{key:1,icon:`mdi:filter-plus`}))]),_:1}),c(` `+g(p(a)(`displaysModule.states.${e.display.status??`unknown`}`)),1)]),_:1},8,[`type`]))}}),rt={key:0,class:`h-full w-full leading-normal`},it={key:1,class:`h-full w-full leading-normal`},at={key:2,class:`h-full w-full leading-normal`},ot={class:`block`},st={class:`flex items-center justify-center gap-2`},ct=o({name:`DisplaysTable`,__name:`displays-table`,props:{items:{},totalRows:{},loading:{type:Boolean},filtersActive:{type:Boolean},filters:{},tableHeight:{},sortBy:{},sortDir:{}},emits:[`detail`,`edit`,`remove`,`reset-filters`,`selected-changes`,`update:filters`,`update:sort-by`,`update:sort-dir`],setup(t,{emit:i}){let o=t,l=i,{t:h}=m(),{isMDDevice:v}=P(),y=a(()=>o.totalRows===0),b=a(()=>o.tableHeight??400),T=F(o,`filters`,l),D=e=>{if(!e)return`—`;let t=e.toLowerCase().trim();return t===`localhost`||t===`127.0.0.1`||t===`::1`||t===`0:0:0:0:0:0:0:1`?h(`displaysModule.table.columns.local`):e},O=({prop:e,order:t})=>{l(`update:sort-by`,e),l(`update:sort-dir`,t===`descending`?`desc`:t===`ascending`?`asc`:null)},N=(e,t,n)=>{if(e===`state`){let e=T.value.states;n===!0?e.push(t):e=T.value.states.filter(e=>e!==t),T.value.states=Array.from(new Set(e))}},I=e=>{l(`selected-changes`,e)},L=e=>{l(`detail`,e.id)};return(t,i)=>w((x(),f(p(te),{"element-loading-text":p(h)(`displaysModule.texts.loadingDisplays`),data:o.items,"default-sort":o.sortBy!==void 0&&o.sortDir!==null?{prop:o.sortBy,order:o.sortDir===`desc`?`descending`:`ascending`}:void 0,"table-layout":`fixed`,"row-key":`id`,class:`flex-grow`,style:_({maxHeight:b.value+`px`}),"max-height":b.value,onSortChange:O,onSelectionChange:I,onRowClick:L},{empty:E(()=>[o.loading?(x(),e(`div`,rt,[u(p(d),{class:`h-full w-full`},{icon:E(()=>[u(p(k),{size:80},{primary:E(()=>[u(p(n),{icon:`mdi:monitor`})]),secondary:E(()=>[u(p(n),{icon:`mdi:database-refresh`})]),_:1})]),_:1})])):y.value&&!o.loading?(x(),e(`div`,it,[u(p(d),{class:`h-full w-full`},{icon:E(()=>[u(p(k),{size:80},{primary:E(()=>[u(p(n),{icon:`mdi:monitor`})]),secondary:E(()=>[u(p(n),{icon:`mdi:information`})]),_:1})]),title:E(()=>[c(g(p(h)(`displaysModule.texts.noDisplays`)),1)]),_:1})])):o.filtersActive&&!o.loading?(x(),e(`div`,at,[u(p(d),{class:`h-full w-full`},{icon:E(()=>[u(p(k),{size:80},{primary:E(()=>[u(p(n),{icon:`mdi:monitor`})]),secondary:E(()=>[u(p(n),{icon:`mdi:filter-multiple`})]),_:1})]),title:E(()=>[u(p(z),{class:`block`},{default:E(()=>[c(g(p(h)(`displaysModule.texts.noFilteredDisplays`)),1)]),_:1}),u(p(S),{type:`primary`,plain:``,class:`mt-4`,onClick:i[0]||=e=>l(`reset-filters`)},{icon:E(()=>[u(p(n),{icon:`mdi:filter-off`})]),default:E(()=>[c(` `+g(p(h)(`displaysModule.buttons.resetFilters.title`)),1)]),_:1})]),_:1})])):C(``,!0)]),default:E(()=>[p(v)?(x(),f(p(U),{key:0,type:`selection`,width:30})):C(``,!0),u(p(U),{width:60,align:`center`},{default:E(e=>[u(Ze,{display:e.row},null,8,[`display`])]),_:1}),u(p(U),{label:p(h)(`displaysModule.table.columns.name`),prop:`name`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],"min-width":200,"class-name":`py-0!`},{default:E(t=>[t.row.name?(x(),e(A,{key:0},[r(`strong`,ot,g(t.row.name),1),u(p(z),{size:`small`,class:`block leading-4`,truncated:``},{default:E(()=>[c(g(t.row.macAddress),1)]),_:2},1024)],64)):(x(),e(A,{key:1},[c(g(t.row.macAddress),1)],64))]),_:1},8,[`label`]),u(p(U),{label:p(h)(`displaysModule.table.columns.version`),prop:`version`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:110},{default:E(e=>[c(g(e.row.version),1)]),_:1},8,[`label`]),u(p(U),{label:p(h)(`displaysModule.table.columns.resolution`),prop:`screenWidth`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:120},{default:E(e=>[c(g(e.row.screenWidth)+`x`+g(e.row.screenHeight),1)]),_:1},8,[`label`]),u(p(U),{label:p(h)(`displaysModule.table.columns.layout`),width:80},{default:E(e=>[c(g(e.row.cols)+`x`+g(e.row.rows),1)]),_:1},8,[`label`]),u(p(U),{label:p(h)(`displaysModule.table.columns.audio`),width:80,align:`center`},{default:E(e=>[r(`div`,st,[e.row.audioOutputSupported?(x(),f(p(M),{key:0,content:p(h)(`displaysModule.table.tooltips.speakerSupported`),placement:`top`},{default:E(()=>[u(p(s),{size:18,class:`text-green-500`},{default:E(()=>[u(p(n),{icon:`mdi:volume-high`})]),_:1})]),_:1},8,[`content`])):(x(),f(p(s),{key:1,size:18,class:`text-gray-300`},{default:E(()=>[u(p(n),{icon:`mdi:volume-off`})]),_:1})),e.row.audioInputSupported?(x(),f(p(M),{key:2,content:p(h)(`displaysModule.table.tooltips.microphoneSupported`),placement:`top`},{default:E(()=>[u(p(s),{size:18,class:`text-green-500`},{default:E(()=>[u(p(n),{icon:`mdi:microphone`})]),_:1})]),_:1},8,[`content`])):(x(),f(p(s),{key:3,size:18,class:`text-gray-300`},{default:E(()=>[u(p(n),{icon:`mdi:microphone-off`})]),_:1}))])]),_:1},8,[`label`]),u(p(U),{label:p(h)(`displaysModule.table.columns.state.title`),prop:`status`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:130},{default:E(e=>[u(nt,{display:e.row,filters:p(T),onFilterBy:i[1]||=(e,t)=>N(`state`,e,t)},null,8,[`display`,`filters`])]),_:1},8,[`label`]),u(p(U),{label:p(h)(`displaysModule.table.columns.currentIpAddress`),prop:`currentIpAddress`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:130},{default:E(t=>[t.row.currentIpAddress?(x(),e(A,{key:0},[c(g(D(t.row.currentIpAddress)),1)],64)):(x(),e(A,{key:1},[c(` — `)],64))]),_:1},8,[`label`]),u(p(U),{width:190,align:`right`},{default:E(e=>[r(`div`,{onClick:i[2]||=j(()=>{},[`stop`])},[u(p(S),{size:`small`,plain:``,"data-test-id":`detail-display`,onClick:t=>l(`detail`,e.row.id)},{icon:E(()=>[u(p(n),{icon:`mdi:file-search-outline`})]),default:E(()=>[c(` `+g(p(h)(`displaysModule.buttons.detail.title`)),1)]),_:1},8,[`onClick`]),u(p(S),{size:`small`,plain:``,class:`ml-1!`,"data-test-id":`edit-display`,onClick:t=>l(`edit`,e.row.id)},{icon:E(()=>[u(p(n),{icon:`mdi:pencil`})]),_:1},8,[`onClick`]),u(p(S),{size:`small`,type:`warning`,plain:``,class:`ml-1!`,"data-test-id":`remove-display`,onClick:t=>l(`remove`,e.row.id)},{icon:E(()=>[u(p(n),{icon:`mdi:trash`})]),_:1},8,[`onClick`])])]),_:1})]),_:1},8,[`element-loading-text`,`data`,`default-sort`,`style`,`max-height`])),[[p(le),o.loading]])}}),lt=o({name:`ListDisplays`,__name:`list-displays`,props:{items:{},allItems:{},totalRows:{},loading:{type:Boolean},filtersActive:{type:Boolean},filters:{},paginateSize:{},paginatePage:{},sortBy:{},sortDir:{}},emits:[`detail`,`edit`,`remove`,`adjust-list`,`reset-filters`,`update:filters`,`update:paginate-size`,`update:paginate-page`,`update:sort-by`,`update:sort-dir`,`bulk-action`],setup(t,{emit:n}){let i=t,o=n,{t:s}=m(),{isMDDevice:c}=P(),l=null,d=h(null),f=h(null),g=F(i,`filters`,o),_=h(i.sortBy),S=h(i.sortDir),C=h(i.paginatePage),w=h(i.paginateSize),T=h(250),D=h([]),k=a(()=>[{key:`delete`,label:s(`application.bulkActions.delete`),icon:`mdi:trash`,type:`danger`}]),j=e=>{o(`detail`,e)},M=e=>{o(`edit`,e)},N=e=>{o(`remove`,e)},I=()=>{o(`reset-filters`)},L=e=>{o(`update:paginate-size`,e)},R=e=>{o(`update:paginate-page`,e)},z=e=>{D.value=e},B=e=>{o(`bulk-action`,e,D.value)};return v(()=>{if(!d.value)return;let e=()=>{T.value=d.value.clientHeight-f.value.clientHeight};typeof window<`u`&&`ResizeObserver`in window&&(l=new ResizeObserver(e),l.observe(d.value)),e()}),O(()=>{l&&d.value&&l.unobserve(d.value)}),b(()=>_.value,e=>{o(`update:sort-by`,e)}),b(()=>S.value,e=>{o(`update:sort-dir`,e)}),b(()=>i.paginatePage,e=>{C.value=e}),b(()=>i.paginateSize,e=>{w.value=e}),b(()=>i.sortDir,e=>{S.value=e}),b(()=>i.sortBy,e=>{_.value=e}),b(()=>c.value,e=>{e||(D.value=[])}),(t,n)=>(x(),e(A,null,[u(p(ne),{shadow:`never`,class:`px-1 py-2 shrink-0`,"body-class":`p-0!`},{default:E(()=>[u(tt,{filters:p(g),"onUpdate:filters":n[0]||=e=>y(g)?g.value=e:null,"filters-active":i.filtersActive,"selected-count":D.value.length,"bulk-actions":k.value,onResetFilters:n[1]||=e=>o(`reset-filters`),onAdjustList:n[2]||=e=>o(`adjust-list`),onBulkAction:B},null,8,[`filters`,`filters-active`,`selected-count`,`bulk-actions`])]),_:1}),r(`div`,{ref_key:`wrapper`,ref:d,class:`flex-grow overflow-hidden`},[u(p(ne),{shadow:`never`,class:`max-h-full flex flex-col overflow-hidden box-border`,"body-class":`p-0! max-h-full overflow-hidden flex flex-col`},{default:E(()=>[u(ct,{filters:p(g),"onUpdate:filters":n[3]||=e=>y(g)?g.value=e:null,"sort-by":_.value,"onUpdate:sortBy":n[4]||=e=>_.value=e,"sort-dir":S.value,"onUpdate:sortDir":n[5]||=e=>S.value=e,items:i.items,"total-rows":i.totalRows,loading:i.loading,"filters-active":i.filtersActive,"table-height":T.value,onDetail:j,onEdit:M,onRemove:N,onResetFilters:I,onSelectedChanges:z},null,8,[`filters`,`sort-by`,`sort-dir`,`items`,`total-rows`,`loading`,`filters-active`,`table-height`]),r(`div`,{ref_key:`paginator`,ref:f,class:`flex justify-center w-full py-4`},[u(p(se),{"current-page":C.value,"onUpdate:currentPage":n[6]||=e=>C.value=e,"page-size":w.value,"onUpdate:pageSize":n[7]||=e=>w.value=e,layout:p(c)?`total, sizes, prev, pager, next, jumper`:`total, sizes, prev, pager, next`,total:i.allItems.length,onSizeChange:L,onCurrentChange:R},null,8,[`current-page`,`page-size`,`layout`,`total`])],512)]),_:1})],512)],64))}}),ut={class:`px-2`},dt={class:`px-2`},ft={class:`px-5 py-2 text-center`},pt=i(o({name:`ListDisplaysAdjust`,__name:`list-displays-adjust`,props:{filters:{},filtersActive:{type:Boolean}},emits:[`update:filters`,`reset-filters`],setup(t,{emit:i}){let a=t,o=i,s=l(`list-displays-adjust`),{t:d}=m(),f=h([`darkMode`,`screenSaver`,`states`]),_=F(a,`filters`,o),v=[`connected`,`disconnected`,`lost`,`unknown`];return(t,i)=>(x(),e(A,null,[u(p(L),{teleport:``},{icon:E(()=>[u(p(n),{icon:`mdi:filter`})]),title:E(()=>[c(g(p(d)(`displaysModule.headings.adjustFilters`)),1)]),subtitle:E(()=>[c(g(p(d)(`displaysModule.subHeadings.adjustFilters`)),1)]),_:1}),r(`div`,{class:D([[p(s).b()],`flex flex-col h-full w-full overflow-hidden`])},[u(p(R),{class:`flex-grow`},{default:E(()=>[u(p(ae),{modelValue:f.value,"onUpdate:modelValue":i[3]||=e=>f.value=e},{default:E(()=>[u(p(Q),{name:`darkMode`,class:D([p(s).e(`filter-item`)])},{title:E(()=>[u(p(z),{class:`!px-2`},{default:E(()=>[c(g(p(d)(`displaysModule.filters.darkMode.title`)),1)]),_:1})]),default:E(()=>[r(`div`,ut,[u(p(Z),{modelValue:p(_).darkMode,"onUpdate:modelValue":i[0]||=e=>p(_).darkMode=e},{default:E(()=>[u(p(X),{label:p(d)(`displaysModule.filters.darkMode.values.enabled`),value:`enabled`},null,8,[`label`]),u(p(X),{label:p(d)(`displaysModule.filters.darkMode.values.disabled`),value:`disabled`},null,8,[`label`]),u(p(X),{label:p(d)(`displaysModule.filters.darkMode.values.all`),value:`all`},null,8,[`label`])]),_:1},8,[`modelValue`])])]),_:1},8,[`class`]),u(p(Q),{name:`screenSaver`,class:D([p(s).e(`filter-item`)])},{title:E(()=>[u(p(z),{class:`!px-2`},{default:E(()=>[c(g(p(d)(`displaysModule.filters.screenSaver.title`)),1)]),_:1})]),default:E(()=>[r(`div`,dt,[u(p(Z),{modelValue:p(_).screenSaver,"onUpdate:modelValue":i[1]||=e=>p(_).screenSaver=e},{default:E(()=>[u(p(X),{label:p(d)(`displaysModule.filters.screenSaver.values.enabled`),value:`enabled`},null,8,[`label`]),u(p(X),{label:p(d)(`displaysModule.filters.screenSaver.values.disabled`),value:`disabled`},null,8,[`label`]),u(p(X),{label:p(d)(`displaysModule.filters.screenSaver.values.all`),value:`all`},null,8,[`label`])]),_:1},8,[`modelValue`])])]),_:1},8,[`class`]),u(p(Q),{name:`states`,class:D([p(s).e(`filter-item`)])},{title:E(()=>[u(p(z),{class:`!px-2`},{default:E(()=>[c(g(p(d)(`displaysModule.filters.states.title`)),1)]),_:1})]),default:E(()=>[u(p(re),{modelValue:p(_).states,"onUpdate:modelValue":i[2]||=e=>p(_).states=e,class:`flex flex-col px-4`},{default:E(()=>[(x(),e(A,null,T(v,e=>u(p(ie),{key:e,label:p(d)(`displaysModule.states.${e}`),value:e},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`])]),_:1},8,[`class`])]),_:1},8,[`modelValue`])]),_:1}),r(`div`,ft,[u(p(S),{disabled:!a.filtersActive,onClick:i[4]||=e=>o(`reset-filters`)},{icon:E(()=>[u(p(n),{icon:`mdi:filter-remove`})]),default:E(()=>[c(` `+g(p(d)(`displaysModule.buttons.reset.title`)),1)]),_:1},8,[`disabled`])])],2)],64))}}),[[`__scopeId`,`data-v-503ec0ad`]]);export{Ye as a,Xe as i,lt as n,be as o,$e as r,pt as t};
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Br as t,Ci as n,D as r,Dr as i,E as a,Er as o,Fr as s,H as c,Mr as l,Mt as u,Nr as d,O as f,Or as p,Pi as m,T as h,Ti as g,Xi as _,Yi as v,Zr as y,bi as b,di as x,ei as S,k as C,kr as w,mi as T,ni as E,pi as D,qi as O,qr as k,t as A,xr as j,yr as M}from"./icon-with-child-C0yuv0oQ.js";import{Di as N,Gr as P,Jr as F,M as I,Qr as L,Ti as R,ai as z,bi as B,fr as V,oi as H,wi as U}from"./common-Cq0z9nNV.js";import{n as W,t as ee}from"./table-CFRJXsHQ.js";import{n as G,t as K}from"./form-CoKeb4n7.js";import{t as q}from"./alert-C46gt4gd.js";import{t as J}from"./input-number-LzEdwV5R.js";import{r as Y,t as X}from"./select-BZCtBPAN.js";import{t as Z}from"./card-CfYeWlyn.js";import{n as Q,r as te}from"./radio-Ccjyja5p.js";import{n as $,t as ne}from"./collapse-Lq5XIsa-.js";import{t as re}from"./link-oGaKVImK.js";import{t as ie}from"./pagination-BRD3yP76.js";import{t as ae}from"./directive-CBwN801q.js";import{i as oe}from"./config-COwev7fh.js";import{c as se,s as ce}from"./config.constants-17QBQ_kF.js";import{g as le,x as ue}from"./keys-bvwxU-Nn.js";import{t as de}from"./useSpaces-B-iaoyU0.js";import"./composables-BYXOFFmS.js";import"./composables-CQU3fAXU.js";import{i as fe,x as pe}from"./composables-CkZcA6lV2.js";import"./scene-add-form-CgruxHec.js";import"./scene-edit-form-Bix-e8-P.js";var me={class:`flex w-full`},he=s({name:`ScenesFilter`,__name:`scenes-filter`,props:{filters:{},filtersActive:{type:Boolean},selectedCount:{},bulkActions:{}},emits:[`update:filters`,`reset-filters`,`adjust-list`,`bulk-action`],setup(t,{emit:n}){let i=t,a=n,{t:o}=h(),s=F(i,`filters`,a),l=g(void 0);return x(()=>s.value.search,e=>{e===``&&(s.value.search=void 0)}),(t,n)=>(S(),e(`div`,me,[d(m(K),{ref_key:`filterFormEl`,ref:l,inline:!0,model:m(s),class:`grow-1`},{default:D(()=>[d(m(N),{modelValue:m(s).search,"onUpdate:modelValue":n[0]||=e=>m(s).search=e,placeholder:m(o)(`scenes.fields.search.placeholder`),class:`max-w[280px] p-1`,clearable:``},{suffix:D(()=>[d(m(c),null,{default:D(()=>[d(m(r),{icon:`mdi:magnify`})]),_:1})]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`model`]),d(m(I),{"selected-count":i.selectedCount,actions:i.bulkActions,onAction:n[1]||=e=>a(`bulk-action`,e)},null,8,[`selected-count`,`actions`]),i.filtersActive?(S(),p(m(C),{key:0,plain:``,class:`px-2! mt-1 mr-1`,onClick:n[2]||=e=>a(`reset-filters`)},{default:D(()=>[d(m(r),{icon:`mdi:filter-off`})]),_:1})):w(``,!0),d(m(C),{plain:``,class:`px-2! mt-1 mr-1`,onClick:n[3]||=e=>a(`adjust-list`)},{default:D(()=>[d(m(r),{icon:`mdi:slider`})]),_:1})]))}}),ge=s({name:`ScenesTableColumnIcon`,__name:`scenes-table-column-icon`,props:{scene:{}},setup(e){let{icon:t}=fe({id:e.scene.id});return(e,n)=>(S(),p(m(U),{size:32},{default:D(()=>[d(m(r),{icon:m(t),class:`w[20px] h[20px]`},null,8,[`icon`])]),_:1}))}}),_e={key:0,class:`h-full w-full leading-normal`},ve={key:1,class:`h-full w-full leading-normal`},ye={key:2,class:`h-full w-full leading-normal`},be={class:`block`},xe=a(s({name:`ScenesTable`,__name:`scenes-table`,props:{items:{},totalRows:{},filters:{},filtersActive:{type:Boolean},tableHeight:{},loading:{type:Boolean},triggering:{},sortBy:{},sortDir:{}},emits:[`edit`,`remove`,`trigger`,`reset-filters`,`selected-changes`,`update:filters`,`update:sort-by`,`update:sort-dir`],setup(n,{emit:a}){let s=n,u=a,{t:g}=h(),{isMDDevice:y}=P(),b=t(`spaces`,{value:[]}),x=o(()=>s.totalRows===0),E=F(s,`filters`,u),O=o(()=>s.tableHeight),k=e=>({[V.generic]:void 0,[V.lighting]:`warning`,[V.climate]:`info`,[V.media]:`primary`,[V.work]:void 0,[V.relax]:`success`,[V.night]:`info`,[V.morning]:`warning`,[V.party]:`danger`,[V.movie]:`primary`,[V.away]:void 0,[V.home]:`success`,[V.security]:`danger`,[V.energy]:`warning`,[V.custom]:void 0})[e],N=e=>e&&b.value.find(t=>t.id===e)?.name||g(`scenes.fields.wholeHome`),I=e=>new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}).format(e),L=({prop:e,order:t})=>{u(`update:sort-by`,t===null?void 0:e),u(`update:sort-dir`,t===`descending`?`desc`:t===`ascending`?`asc`:null)},R=e=>{u(`selected-changes`,e)},H=e=>{e.editable&&u(`edit`,e.id)},U=e=>{let t=e||`whole_home`;return E.value.primarySpaceId===t},G=e=>{let t=e||`whole_home`;E.value.primarySpaceId===t?E.value.primarySpaceId=void 0:E.value.primarySpaceId=t},K=e=>{let t=e?`enabled`:`disabled`;E.value.enabled===t?E.value.enabled=`all`:E.value.enabled=t};return(t,n)=>T((S(),p(m(ee),{"element-loading-text":m(g)(`scenes.texts.loadingScenes`),data:s.items,"default-sort":s.sortBy!==void 0&&s.sortDir!==null?{prop:s.sortBy,order:s.sortDir===`desc`?`descending`:`ascending`}:void 0,"table-layout":`fixed`,"row-key":`id`,class:`flex-grow`,style:v({maxHeight:O.value+`px`}),"max-height":O.value,onSortChange:L,onSelectionChange:R,onRowClick:H},{empty:D(()=>[s.loading?(S(),e(`div`,_e,[d(m(f),{class:`h-full w-full`},{icon:D(()=>[d(m(A),{size:80},{primary:D(()=>[d(m(r),{icon:`mdi:play-circle`})]),secondary:D(()=>[d(m(r),{icon:`mdi:database-refresh`})]),_:1})]),_:1})])):x.value&&!s.loading?(S(),e(`div`,ve,[d(m(f),{class:`h-full w-full`},{icon:D(()=>[d(m(A),{size:80},{primary:D(()=>[d(m(r),{icon:`mdi:play-circle`})]),secondary:D(()=>[d(m(r),{icon:`mdi:information`})]),_:1})]),title:D(()=>[l(_(m(g)(`scenes.texts.noScenes`)),1)]),_:1})])):s.filtersActive&&!s.loading?(S(),e(`div`,ye,[d(m(f),{class:`h-full w-full`},{icon:D(()=>[d(m(A),{size:80},{primary:D(()=>[d(m(r),{icon:`mdi:play-circle`})]),secondary:D(()=>[d(m(r),{icon:`mdi:filter-multiple`})]),_:1})]),title:D(()=>[d(m(z),{class:`block`},{default:D(()=>[l(_(m(g)(`scenes.texts.noFilteredScenes`)),1)]),_:1}),d(m(C),{type:`primary`,plain:``,class:`mt-4`,onClick:n[0]||=e=>u(`reset-filters`)},{icon:D(()=>[d(m(r),{icon:`mdi:filter-off`})]),default:D(()=>[l(` `+_(m(g)(`scenes.buttons.resetFilters.title`)),1)]),_:1})]),_:1})])):w(``,!0)]),default:D(()=>[m(y)?(S(),p(m(W),{key:0,type:`selection`,fixed:``,width:30})):w(``,!0),d(m(W),{width:60,align:`center`},{default:D(e=>[d(ge,{scene:e.row},null,8,[`scene`])]),_:1}),d(m(W),{label:m(g)(`scenes.fields.name`),prop:`name`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],"min-width":180,"class-name":`py-0!`},{default:D(t=>[t.row.description?(S(),e(j,{key:0},[i(`strong`,be,_(t.row.name),1),d(m(z),{size:`small`,class:`block leading-4`,truncated:``},{default:D(()=>[l(_(t.row.description),1)]),_:2},1024)],64)):(S(),e(j,{key:1},[l(_(t.row.name),1)],64))]),_:1},8,[`label`]),d(m(W),{label:m(g)(`scenes.fields.space`),prop:`primarySpaceId`,width:200},{default:D(e=>[d(m(re),{type:U(e.row.primarySpaceId)?`danger`:void 0,underline:`never`,class:`font-400!`,onClick:M(t=>G(e.row.primarySpaceId),[`stop`])},{default:D(()=>[d(m(c),{class:`el-icon--left`},{default:D(()=>[U(e.row.primarySpaceId)?(S(),p(m(r),{key:0,icon:`mdi:filter-minus`})):(S(),p(m(r),{key:1,icon:`mdi:filter-plus`}))]),_:2},1024),l(` `+_(N(e.row.primarySpaceId)),1)]),_:2},1032,[`type`,`onClick`])]),_:1},8,[`label`]),d(m(W),{label:m(g)(`scenes.fields.category`),prop:`category`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:140},{default:D(e=>[d(m(B),{type:k(e.row.category)},{default:D(()=>[l(_(m(g)(`scenes.categories.${e.row.category}`)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),d(m(W),{label:m(g)(`scenes.fields.enabled`),prop:`enabled`,width:110},{default:D(e=>[d(m(re),{type:m(E).enabled===(e.row.enabled?`enabled`:`disabled`)?`danger`:void 0,underline:`never`,class:`font-400!`,onClick:M(t=>K(e.row.enabled),[`stop`])},{default:D(()=>[d(m(c),{class:`el-icon--left`},{default:D(()=>[m(E).enabled===(e.row.enabled?`enabled`:`disabled`)?(S(),p(m(r),{key:0,icon:`mdi:filter-minus`})):(S(),p(m(r),{key:1,icon:`mdi:filter-plus`}))]),_:2},1024),l(` `+_(e.row.enabled?m(g)(`scenes.filters.enabled.values.enabled`):m(g)(`scenes.filters.enabled.values.disabled`)),1)]),_:2},1032,[`type`,`onClick`])]),_:1},8,[`label`]),d(m(W),{label:m(g)(`scenes.fields.lastTriggered`),prop:`lastTriggeredAt`,width:160},{default:D(e=>[e.row.lastTriggeredAt?(S(),p(m(z),{key:0,size:`small`},{default:D(()=>[l(_(I(e.row.lastTriggeredAt)),1)]),_:2},1024)):(S(),p(m(z),{key:1,size:`small`,type:`info`},{default:D(()=>[l(_(m(g)(`scenes.fields.neverTriggered`)),1)]),_:1}))]),_:1},8,[`label`]),d(m(W),{width:200,align:`right`},{default:D(e=>[e.row.triggerable?(S(),p(m(C),{key:0,size:`small`,type:`success`,plain:``,loading:s.triggering.includes(e.row.id),"data-test-id":`trigger-scene`,onClick:M(t=>u(`trigger`,e.row.id),[`stop`])},{icon:D(()=>[d(m(r),{icon:`mdi:play`})]),_:1},8,[`loading`,`onClick`])):w(``,!0),e.row.editable?(S(),p(m(C),{key:1,size:`small`,plain:``,class:`ml-1!`,"data-test-id":`edit-scene`,onClick:M(t=>u(`edit`,e.row.id),[`stop`])},{icon:D(()=>[d(m(r),{icon:`mdi:pencil`})]),_:1},8,[`onClick`])):w(``,!0),e.row.editable?(S(),p(m(C),{key:2,size:`small`,type:`warning`,plain:``,class:`ml-1!`,"data-test-id":`remove-scene`,onClick:M(t=>u(`remove`,e.row.id),[`stop`])},{icon:D(()=>[d(m(r),{icon:`mdi:trash`})]),_:1},8,[`onClick`])):w(``,!0)]),_:1})]),_:1},8,[`element-loading-text`,`data`,`default-sort`,`style`,`max-height`])),[[m(ae),s.loading]])}}),[[`__scopeId`,`data-v-a5b790c4`]]),Se=s({name:`ListScenes`,__name:`list-scenes`,props:{items:{},allItems:{},totalRows:{},filters:{},filtersActive:{type:Boolean},paginateSize:{},paginatePage:{},sortBy:{},sortDir:{},loading:{type:Boolean},triggering:{}},emits:[`edit`,`remove`,`trigger`,`adjust-list`,`reset-filters`,`bulk-action`,`update:filters`,`update:paginate-size`,`update:paginate-page`,`update:sort-by`,`update:sort-dir`],setup(t,{emit:n}){let r=t,a=n,{isMDDevice:s}=P(),{t:c}=h(),l=g([]),u=o(()=>[{key:`enable`,label:c(`application.bulkActions.enable`),icon:`mdi:check-circle-outline`,type:`success`},{key:`disable`,label:c(`application.bulkActions.disable`),icon:`mdi:close-circle-outline`,type:`warning`},{key:`delete`,label:c(`application.bulkActions.delete`),icon:`mdi:trash`,type:`danger`}]),f=null,p=g(null),_=g(null),v=F(r,`filters`,a),C=g(r.sortBy),w=g(r.sortDir),T=g(r.paginatePage),E=g(r.paginateSize),O=g(250),A=e=>{a(`edit`,e)},M=e=>{a(`remove`,e)},N=e=>{a(`trigger`,e)},I=()=>{a(`reset-filters`)},L=e=>{l.value=e},R=e=>{a(`bulk-action`,e,l.value)},z=e=>{a(`update:paginate-size`,e)},B=e=>{a(`update:paginate-page`,e)};return y(()=>{if(!p.value)return;let e=()=>{!p.value||!_.value||(O.value=p.value.clientHeight-_.value.clientHeight)};typeof window<`u`&&`ResizeObserver`in window&&(f=new ResizeObserver(e),f.observe(p.value)),e()}),k(()=>{f&&p.value&&f.unobserve(p.value)}),x(()=>C.value,e=>{a(`update:sort-by`,e)}),x(()=>w.value,e=>{a(`update:sort-dir`,e)}),x(()=>r.paginatePage,e=>{T.value=e}),x(()=>r.paginateSize,e=>{E.value=e}),x(()=>r.sortDir,e=>{w.value=e}),x(()=>r.sortBy,e=>{C.value=e}),x(()=>s.value,e=>{e||(l.value=[])}),(t,n)=>(S(),e(j,null,[d(m(Z),{shadow:`never`,class:`px-1 py-2 shrink-0`,"body-class":`p-0!`},{default:D(()=>[d(he,{filters:m(v),"onUpdate:filters":n[0]||=e=>b(v)?v.value=e:null,"filters-active":r.filtersActive,"selected-count":l.value.length,"bulk-actions":u.value,onResetFilters:n[1]||=e=>a(`reset-filters`),onAdjustList:n[2]||=e=>a(`adjust-list`),onBulkAction:R},null,8,[`filters`,`filters-active`,`selected-count`,`bulk-actions`])]),_:1}),i(`div`,{ref_key:`wrapper`,ref:p,class:`flex-grow overflow-hidden`},[d(m(Z),{shadow:`never`,class:`max-h-full flex flex-col overflow-hidden box-border`,"body-class":`p-0! max-h-full overflow-hidden flex flex-col`},{default:D(()=>[d(xe,{filters:m(v),"onUpdate:filters":n[3]||=e=>b(v)?v.value=e:null,"sort-by":C.value,"onUpdate:sortBy":n[4]||=e=>C.value=e,"sort-dir":w.value,"onUpdate:sortDir":n[5]||=e=>w.value=e,items:r.items,"total-rows":r.totalRows,loading:r.loading,"filters-active":r.filtersActive,"table-height":O.value,triggering:r.triggering,onEdit:A,onRemove:M,onTrigger:N,onResetFilters:I,onSelectedChanges:L},null,8,[`filters`,`sort-by`,`sort-dir`,`items`,`total-rows`,`loading`,`filters-active`,`table-height`,`triggering`]),i(`div`,{ref_key:`paginator`,ref:_,class:`flex justify-center w-full py-4`},[d(m(ie),{"current-page":T.value,"onUpdate:currentPage":n[6]||=e=>T.value=e,"page-size":E.value,"onUpdate:pageSize":n[7]||=e=>E.value=e,layout:m(s)?`total, sizes, prev, pager, next, jumper`:`total, sizes, prev, pager, next`,total:r.allItems.length,onSizeChange:z,onCurrentChange:B},null,8,[`current-page`,`page-size`,`layout`,`total`])],512)]),_:1})],512)],64))}}),Ce={class:`px-2`},we={class:`px-2`},Te={class:`flex items-center gap-2`},Ee={class:`px-2`},De={class:`flex items-center gap-2`},Oe={class:`px-5 py-2 text-center`},ke=a(s({name:`ListScenesAdjust`,__name:`list-scenes-adjust`,props:{filters:{},filtersActive:{type:Boolean}},emits:[`update:filters`,`reset-filters`],setup(t,{emit:n}){let a=t,s=n,c=u(`list-scenes-adjust`),{t:f}=h(),v=Object.values(V),{spaces:y}=de(),b=o(()=>{let e=[{value:`whole_home`,label:f(`scenes.fields.wholeHome`),icon:`mdi:home`}];return y.value.filter(e=>e.type===le.ROOM).forEach(t=>{e.push({value:t.id,label:t.name,icon:ue(t)})}),y.value.filter(e=>e.type===le.ZONE).forEach(t=>{e.push({value:t.id,label:t.name,icon:ue(t)})}),e}),x=g([`enabled`,`categories`,`spaces`]),w=F(a,`filters`,s);return(t,n)=>(S(),e(j,null,[d(m(L),{teleport:``},{icon:D(()=>[d(m(r),{icon:`mdi:filter`})]),title:D(()=>[l(_(m(f)(`scenes.headings.adjustFilters`)),1)]),subtitle:D(()=>[l(_(m(f)(`scenes.subHeadings.adjustFilters`)),1)]),_:1}),i(`div`,{class:O([[m(c).b()],`flex flex-col h-full w-full overflow-hidden`])},[d(m(R),{class:`flex-grow`},{default:D(()=>[d(m(ne),{modelValue:x.value,"onUpdate:modelValue":n[3]||=e=>x.value=e},{default:D(()=>[d(m($),{name:`enabled`,class:O([m(c).e(`filter-item`)])},{title:D(()=>[d(m(z),{class:`!px-2`},{default:D(()=>[l(_(m(f)(`scenes.filters.enabled.title`)),1)]),_:1})]),default:D(()=>[i(`div`,Ce,[d(m(te),{modelValue:m(w).enabled,"onUpdate:modelValue":n[0]||=e=>m(w).enabled=e},{default:D(()=>[d(m(Q),{label:m(f)(`scenes.filters.enabled.values.enabled`),value:`enabled`},null,8,[`label`]),d(m(Q),{label:m(f)(`scenes.filters.enabled.values.disabled`),value:`disabled`},null,8,[`label`]),d(m(Q),{label:m(f)(`scenes.filters.enabled.values.all`),value:`all`},null,8,[`label`])]),_:1},8,[`modelValue`])])]),_:1},8,[`class`]),d(m($),{name:`categories`,class:O([m(c).e(`filter-item`)])},{title:D(()=>[d(m(z),{class:`!px-2`},{default:D(()=>[l(_(m(f)(`scenes.filters.category.title`)),1)]),_:1})]),default:D(()=>[i(`div`,we,[d(m(Y),{modelValue:m(w).categories,"onUpdate:modelValue":n[1]||=e=>m(w).categories=e,placeholder:m(f)(`scenes.filters.category.placeholder`),name:`categories`,filterable:``,multiple:``,clearable:``,"collapse-tags":``,"collapse-tags-tooltip":``,"max-collapse-tags":3},{default:D(()=>[(S(!0),e(j,null,E(m(v),(e,t)=>(S(),p(m(X),{key:t,label:m(f)(`scenes.categories.${e}`),value:e},{default:D(()=>[i(`div`,Te,[d(m(r),{icon:m(pe)[e],class:`text-lg`},null,8,[`icon`]),i(`span`,null,_(m(f)(`scenes.categories.${e}`)),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])]),_:1},8,[`class`]),d(m($),{name:`spaces`,class:O([m(c).e(`filter-item`)])},{title:D(()=>[d(m(z),{class:`!px-2`},{default:D(()=>[l(_(m(f)(`scenes.filters.space.title`)),1)]),_:1})]),default:D(()=>[i(`div`,Ee,[d(m(Y),{modelValue:m(w).primarySpaceId,"onUpdate:modelValue":n[2]||=e=>m(w).primarySpaceId=e,placeholder:m(f)(`scenes.filters.space.placeholder`),name:`spaces`,filterable:``,clearable:``},{default:D(()=>[(S(!0),e(j,null,E(b.value,e=>(S(),p(m(X),{key:e.value,label:e.label,value:e.value},{default:D(()=>[i(`div`,De,[d(m(r),{icon:e.icon,class:`text-lg`},null,8,[`icon`]),i(`span`,null,_(e.label),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])]),_:1},8,[`class`])]),_:1},8,[`modelValue`])]),_:1}),i(`div`,Oe,[d(m(C),{disabled:!a.filtersActive,onClick:n[4]||=e=>s(`reset-filters`)},{icon:D(()=>[d(m(r),{icon:`mdi:filter-remove`})]),default:D(()=>[l(` `+_(m(f)(`scenes.buttons.resetFilters.title`)),1)]),_:1},8,[`disabled`])])],2)],64))}}),[[`__scopeId`,`data-v-323f3f68`]]),Ae=s({name:`ScenesConfigForm`,__name:`scenes-config-form`,props:{config:{},remoteFormSubmit:{type:Boolean},remoteFormResult:{default:ce.NONE},remoteFormReset:{type:Boolean,default:!1},remoteFormChanged:{type:Boolean,default:!1},layout:{default:se.DEFAULT}},emits:[`update:remote-form-submit`,`update:remote-form-result`,`update:remote-form-reset`,`update:remote-form-changed`],setup(e,{emit:t}){let r=e,i=t,{t:a}=h(),{formEl:o,model:s,formChanged:c,submit:u,formResult:f}=oe({config:r.config,messages:{success:a(`scenes.messages.config.edited`),error:a(`scenes.messages.config.notEdited`)}}),g=n({executionTimeoutMs:[{type:`number`,min:1e3,max:3e5,message:a(`scenes.fields.config.executionTimeoutMs.validation.range`),trigger:`blur`}],maxConcurrentExecutions:[{type:`number`,min:1,max:100,message:a(`scenes.fields.config.maxConcurrentExecutions.validation.range`),trigger:`blur`}]});return x(()=>f.value,async e=>{i(`update:remote-form-result`,e)}),x(()=>r.remoteFormSubmit,async e=>{e&&(i(`update:remote-form-submit`,!1),u().catch(()=>{}))}),x(()=>r.remoteFormReset,e=>{if(i(`update:remote-form-reset`,!1),e){if(!o.value)return;o.value.resetFields()}}),x(()=>c.value,e=>{i(`update:remote-form-changed`,e)}),(e,t)=>(S(),p(m(K),{ref_key:`formEl`,ref:o,model:m(s),rules:g,"label-position":`top`,"status-icon":``},{default:D(()=>[d(m(q),{title:m(a)(`scenes.fields.config.executionTimeoutMs.alertTitle`),type:`info`,closable:!1,"show-icon":``,class:`mb-4!`},{default:D(()=>[l(_(m(a)(`scenes.fields.config.executionTimeoutMs.hint`)),1)]),_:1},8,[`title`]),d(m(G),{label:m(a)(`scenes.fields.config.executionTimeoutMs.title`),prop:`executionTimeoutMs`},{default:D(()=>[d(m(J),{modelValue:m(s).executionTimeoutMs,"onUpdate:modelValue":t[0]||=e=>m(s).executionTimeoutMs=e,min:1e3,max:3e5,step:1e3,name:`executionTimeoutMs`},null,8,[`modelValue`])]),_:1},8,[`label`]),d(m(q),{title:m(a)(`scenes.fields.config.maxConcurrentExecutions.alertTitle`),type:`info`,closable:!1,"show-icon":``,class:`mb-4!`},{default:D(()=>[l(_(m(a)(`scenes.fields.config.maxConcurrentExecutions.hint`)),1)]),_:1},8,[`title`]),d(m(G),{label:m(a)(`scenes.fields.config.maxConcurrentExecutions.title`),prop:`maxConcurrentExecutions`},{default:D(()=>[d(m(J),{modelValue:m(s).maxConcurrentExecutions,"onUpdate:modelValue":t[1]||=e=>m(s).maxConcurrentExecutions=e,min:1,max:100,step:1,name:`maxConcurrentExecutions`},null,8,[`modelValue`])]),_:1},8,[`label`]),d(m(q),{title:m(a)(`scenes.fields.config.continueOnActionFailure.alertTitle`),type:`info`,closable:!1,"show-icon":``,class:`mb-4!`},{default:D(()=>[l(_(m(a)(`scenes.fields.config.continueOnActionFailure.hint`)),1)]),_:1},8,[`title`]),d(m(G),{label:m(a)(`scenes.fields.config.continueOnActionFailure.title`),prop:`continueOnActionFailure`},{default:D(()=>[d(m(H),{modelValue:m(s).continueOnActionFailure,"onUpdate:modelValue":t[2]||=e=>m(s).continueOnActionFailure=e,name:`continueOnActionFailure`},null,8,[`modelValue`])]),_:1},8,[`label`])]),_:1},8,[`model`,`rules`]))}});export{ke as n,Se as r,Ae as t};
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Er as e,Mi as t,Si as n,T as r,Ti as i,di as a,n as o}from"./icon-with-child-C0yuv0oQ.js";import{Ia as s,Jn as c,Mt as l,Nt as u,Pt as d,_ as f,gt as p,ii as m,it as h,m as g,p as _,s as v,x as y,yt as b}from"./common-Cq0z9nNV.js";import{t as x}from"./dist-DJgPCOr0.js";import{s as S}from"./system.constants-BvSIFqdm.js";import{n as C}from"./logs-entries.transformers-CsxVIzqA.js";import"./useExtensions-CBRBDhdG.js";var w=`extensions-module`,T={EXTENSIONS:`extensions_module-extensions`,EXTENSION:`extensions_module-extension`,EXTENSION_DETAIL:`extensions_module-extension-detail`},E=`table`,D=(e,t,n)=>`${e}:${t}:${n}`,O=n=>{let r=y().getStore(l),{semaphore:i,firstLoad:a}=s(r);return{extension:e(()=>r.findByType(t(n.type))),isLoading:e(()=>i.value.fetching.items||!a.value),fetchExtension:async()=>{await r.fetch()}}},k=p({search:b().optional(),kind:h([`all`,c.module,c.plugin]).default(`all`),enabled:h([`all`,`enabled`,`disabled`]).default(`all`),isCore:h([`all`,`core`,`addon`]).default(`all`)}),A={search:void 0,kind:`all`,enabled:`all`,isCore:`all`},j={by:`name`,dir:`asc`},M=()=>{let t=y().getStore(l),{semaphore:n}=s(t),{filters:r,sort:o,pagination:u,viewMode:d,reset:f}=v({key:`${w}:extensions:list`,filters:{schema:k,defaults:A},sort:{defaults:[j]},pagination:{defaults:{page:1,size:10}},viewMode:{options:[`table`,`cards`],default:E},syncQuery:!0,version:1}),p=e({get:()=>d.value??`table`,set:e=>{d.value=e}}),m=e(()=>r.value.search!==A.search||r.value.kind!==A.kind||r.value.enabled!==A.enabled||r.value.isCore!==A.isCore),h=i(u.value.size||10),g=i(u.value.page||1),_=i(o.value.length>0?o.value[0]?.by:void 0),b=i(o.value.length>0?o.value[0]?.dir??null:null),S=e(()=>Object.values(t.data)),C=e(()=>x(S.value.filter(e=>(!r.value.search||e.type.toLowerCase().includes(r.value.search.toLowerCase())||e.name.toLowerCase().includes(r.value.search.toLowerCase())||e.description?.toLowerCase().includes(r.value.search.toLowerCase()))&&(r.value.kind===`all`||e.kind===r.value.kind)&&(r.value.enabled===`all`||r.value.enabled===`enabled`&&e.enabled||r.value.enabled===`disabled`&&!e.enabled)&&(r.value.isCore===`all`||r.value.isCore===`core`&&e.isCore||r.value.isCore===`addon`&&!e.isCore)),[e=>_.value===`enabled`?+!!e.enabled:e[_.value]??``],[b.value===`asc`?`asc`:`desc`])),T=e(()=>C.value),D=e(()=>{let e=(g.value-1)*h.value,t=e+h.value;return T.value.slice(e,t)}),O=e(()=>C.value.filter(e=>e.kind===c.module)),M=e(()=>C.value.filter(e=>e.kind===c.plugin)),N=async()=>{await t.fetch()},P=e(()=>n.value.fetching.items),F=e(()=>T.value.length);return a(()=>u.value,e=>{g.value=e.page??1,h.value=e.size??10},{deep:!0}),a(()=>g.value,e=>{u.value.page=e}),a(()=>h.value,e=>{u.value.size=e}),a(()=>b.value,e=>{_.value===void 0||e===null?o.value=[]:o.value=[{by:_.value,dir:e}]}),a(()=>_.value,e=>{e===void 0||b.value===null?o.value=[]:o.value=[{by:e,dir:b.value}]}),{extensions:T,extensionsPaginated:D,modules:O,plugins:M,totalRows:F,areLoading:P,fetchExtensions:N,filters:r,filtersActive:m,paginateSize:h,paginatePage:g,sortBy:_,sortDir:b,viewMode:p,resetFilter:f}},N=()=>{let{t:e}=r(),t=y(),n=_(),i=t.getStore(l),a=t.getStore(u);return{toggleEnabled:async(t,r)=>{try{return await i.update({type:t,data:{enabled:r}}),n.success(e(r?`extensionsModule.messages.extensionEnabled`:`extensionsModule.messages.extensionDisabled`)),r&&setTimeout(()=>{a.fetch().then(()=>{let e=a.findAll().filter(e=>e.extensionType===t);for(let t of e)t.lastError&&n.warning(t.lastError)}).catch(()=>{})},1500),!0}catch(t){return t instanceof d&&t.code===400?n.error(e(`extensionsModule.messages.notConfigurableError`)):n.error(e(`extensionsModule.messages.updateError`)),!1}},bulkEnable:async t=>{let r=t.filter(e=>e.canToggleEnabled&&!e.enabled);if(r.length===0){n.info(e(`extensionsModule.messages.noExtensionsToEnable`));return}try{await m.confirm(e(`extensionsModule.messages.confirmBulkEnable`,{count:r.length}),e(`extensionsModule.headings.bulkEnable`),{confirmButtonText:e(`extensionsModule.buttons.yes`),cancelButtonText:e(`extensionsModule.buttons.no`),type:`info`})}catch{n.info(e(`extensionsModule.messages.bulkEnableCanceled`));return}try{let t=await i.bulkSetEnabled({types:r.map(e=>e.type),enabled:!0});t.succeeded.length>0&&n.success(e(`extensionsModule.messages.bulkEnabled`,{count:t.succeeded.length})),t.failed.length>0&&n.error(e(`extensionsModule.messages.bulkEnableFailed`,{count:t.failed.length}))}catch{n.error(e(`extensionsModule.messages.bulkEnableFailed`,{count:r.length}))}},bulkDisable:async t=>{let r=t.filter(e=>e.canToggleEnabled&&e.enabled);if(r.length===0){n.info(e(`extensionsModule.messages.noExtensionsToDisable`));return}try{await m.confirm(e(`extensionsModule.messages.confirmBulkDisable`,{count:r.length}),e(`extensionsModule.headings.bulkDisable`),{confirmButtonText:e(`extensionsModule.buttons.yes`),cancelButtonText:e(`extensionsModule.buttons.no`),type:`warning`})}catch{n.info(e(`extensionsModule.messages.bulkDisableCanceled`));return}try{let t=await i.bulkSetEnabled({types:r.map(e=>e.type),enabled:!1});t.succeeded.length>0&&n.success(e(`extensionsModule.messages.bulkDisabled`,{count:t.succeeded.length})),t.failed.length>0&&n.error(e(`extensionsModule.messages.bulkDisableFailed`,{count:t.failed.length}))}catch{n.error(e(`extensionsModule.messages.bulkDisableFailed`,{count:r.length}))}}}},P=r=>{let s=g(),c=f(),l=i({}),u=i(!1),d=i(!1),p=i(!1),m=i(void 0),h=i(!1),_=i([]),v=i(`all`),y=null,b={"1h":3600*1e3,"6h":360*60*1e3,"24h":1440*60*1e3,"7d":10080*60*1e3,all:0},x=e(()=>Object.values(l.value).sort((e,t)=>new Date(t.ts).getTime()-new Date(e.ts).getTime())),w=e(()=>{let e=x.value;if(_.value.length>0&&(e=e.filter(e=>_.value.includes(e.type))),v.value!==`all`){let t=Date.now()-b[v.value];e=e.filter(e=>new Date(e.ts).getTime()>=t)}return e}),T=e(()=>_.value.length>0||v.value!==`all`),E=()=>{_.value=[],v.value=`all`},D=async()=>{let e=t(r.extensionType);y=e,d.value=!0;try{let{data:t,error:n}=await s.client.GET(`/${o}/${S}/logs`,{params:{query:{extension:e,limit:50}}});if(y!==e)return;if(t!==void 0){let e=Object.fromEntries(t.data.map(e=>{let t=C(e);return[t.id,t]}));l.value=e,p.value=!0,u.value=t.metadata.has_more,m.value=t.metadata.next_cursor}else n&&c.error(`Failed to fetch extension logs:`,n)}catch(t){y===e&&c.error(`Error fetching extension logs:`,t)}finally{y===e&&(d.value=!1)}},O=async()=>{if(d.value||!u.value||!m.value)return;let e=t(r.extensionType),n=m.value;d.value=!0;try{let{data:t,error:r}=await s.client.GET(`/${o}/${S}/logs`,{params:{query:{extension:e,after_id:n,limit:50}}});if(y!==e)return;if(t!==void 0){let e=Object.fromEntries(t.data.map(e=>{let t=C(e);return[t.id,t]}));l.value={...l.value,...e},u.value=t.metadata.has_more,m.value=t.metadata.next_cursor}else r&&c.error(`Failed to load more extension logs:`,r)}catch(t){y===e&&c.error(`Error loading more extension logs:`,t)}finally{y===e&&(d.value=!1)}},k=async()=>{l.value={},m.value=void 0,u.value=!1,p.value=!1,await D()},A=null;return a(()=>h.value,e=>{A&&=(clearInterval(A),null),e&&(A=setInterval(()=>void D(),3e3))}),n(()=>{A&&=(clearInterval(A),null)}),a(()=>t(r.extensionType),()=>{k()}),{logs:w,hasMore:u,isLoading:d,loaded:p,live:h,filterLevels:_,filterTimeRange:v,filtersActive:T,clearFilters:E,fetchLogs:D,loadMoreLogs:O,refreshLogs:k}},F=()=>{let t=y().getStore(u),{data:n,semaphore:r}=s(t);return{services:e(()=>Object.values(n.value)),areLoading:e(()=>r.value.fetching.items),fetchServices:async()=>{await t.fetch()}}};export{O as a,T as c,M as i,P as n,D as o,N as r,w as s,F as t};
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ci as e,Er as t,T as n,Ti as r,di as i,ki as a}from"./icon-with-child-C0yuv0oQ.js";import{Ia as o,_ as s,f as c,gt as l,ht as u,ii as d,l as f,ot as p,p as m,s as h,st as g,x as _,yt as v}from"./common-Cq0z9nNV.js";import{r as y}from"./config-COwev7fh.js";import{r as b}from"./usePlugins-CJqAJVB-.js";import{t as x}from"./schemas.utils-DWbEHUX2.js";import{t as S}from"./dist-DJgPCOr0.js";import{a as C,c as w,d as T,i as E,n as D,o as O,r as k,t as A}from"./keys-DgS2vm-E.js";import{i as j,t as M}from"./types-DPk4ChIx.js";import{n as N}from"./useDataSources-BCjgNXH7.js";import"./usePage-i5CJ8Y7Q.js";var P=c(),F=()=>{let e=b(),{enabled:n}=y(),r=[`pageDetail`,`pageAddForm`,`pageEditForm`],i=[`pageSchema`,`pageAddFormSchema`,`pageEditFormSchema`,`pageCreateReqSchema`,`pageUpdateReqSchema`],a=[`configure`],o=t(()=>e.getPlugins().filter(e=>{if(!(e.modules===void 0||e.modules.includes(`dashboard-module`)))return!1;let t=a.some(t=>e.routes&&t in e.routes)??!0;return(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`dashboard-module`)))return!1;let n=r.length===0||!!e.components&&r.some(t=>e.components&&t in e.components),a=i.length===0||!!e.schemas&&i.some(t=>e.schemas&&t in e.schemas);return n||a||t})}));return{plugins:o,options:t(()=>S(o.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`dashboard-module`)).map(t=>({value:t.type,label:t.name?.trim()?t.name:e.name,disabled:!n(e.type)}))),[e=>e.label],[`asc`])),getByPluginType:e=>o.value.find(t=>t.type===e),getByType:e=>o.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`dashboard-module`)))),getElement:e=>{for(let t of o.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`dashboard-module`)));if(n)return n}}}},I=()=>{let e=_().getStore(D),{firstLoad:n,semaphore:r}=o(e);return{pages:t(()=>e.findAll().filter(e=>!e.draft)),areLoading:t(()=>!!r.value.fetching.items||!n.value),loaded:t(()=>n.value),fetchPages:async()=>{await e.fetch()}}},L={search:void 0,types:[],displays:[]},R={by:`title`,dir:`asc`},z=()=>{let e=_().getStore(D),{firstLoad:n,semaphore:a}=o(e),{filters:s,sort:c,pagination:l,reset:u}=h({key:`${w}:pages:list`,filters:{schema:j,defaults:L},sort:{defaults:[R]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),d=t(()=>s.value.search!==L.search||!(0,P.isEqual)(s.value.types,L.types)||!(0,P.isEqual)(s.value.displays,L.displays)),f=r(l.value.size||10),p=r(l.value.page||1),m=r(c.value.length>0?c.value[0]?.by:void 0),g=r(c.value.length>0?c.value[0]?.dir??null:null),v=t(()=>S(e.findAll().filter(e=>!e.draft&&(!s.value.search||e.title.toLowerCase().includes(s.value.search.toLowerCase()))&&(s.value.types.length===0||s.value.types.includes(e.type))&&(s.value.displays.length===0||s.value.displays.includes(`all`)&&(e.displays===null||e.displays.length===0)||e.displays!==null&&e.displays.length>0&&e.displays.some(e=>s.value.displays.includes(e)))),[e=>e[m.value]??``],[g.value===`asc`?`asc`:`desc`])),y=t(()=>{let e=(p.value-1)*f.value,t=e+f.value;return v.value.slice(e,t)}),b=async()=>{await e.fetch()},x=t(()=>a.value.fetching.items||!n.value),C=t(()=>n.value),T=t(()=>e.findAll().filter(e=>!e.draft).length);return i(()=>l.value,e=>{p.value=e.page??1,f.value=e.size??10},{deep:!0}),i(()=>p.value,e=>{l.value.page=e}),i(()=>f.value,e=>{l.value.size=e}),i(()=>g.value,e=>{m.value===void 0||e===null?c.value=[]:c.value=[{by:m.value,dir:e}]}),i(()=>m.value,e=>{e===void 0?c.value=[]:c.value=[{by:e,dir:g.value}]}),{pages:v,pagesPaginated:y,totalRows:T,areLoading:x,loaded:C,fetchPages:b,filters:s,filtersActive:d,paginateSize:f,paginatePage:p,sortBy:m,sortDir:g,resetFilter:u}},B=()=>{let{t:e}=n(),t=m(),r=_().getStore(D);return{remove:async n=>{let i=r.findById(n);if(i===null)throw new C(`Something went wrong, page can't be loaded`);d.confirm(e(`dashboardModule.texts.pages.confirmRemove`,{page:i.title}),e(`dashboardModule.headings.pages.remove`),{confirmButtonText:e(`dashboardModule.buttons.yes.title`),cancelButtonText:e(`dashboardModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await r.remove({id:i.id}),t.success(e(`dashboardModule.messages.pages.removed`,{page:i.title}))}catch(n){if(n instanceof E&&n.code===404){let n=e(`dashboardModule.messages.pages.notFound`,{page:i.title});t.error(n)}else if(n instanceof E&&n.code===422)t.error(n.message);else{let n=e(`dashboardModule.messages.pages.notRemoved`,{page:i.title});t.error(n)}}}).catch(()=>{t.info(e(`dashboardModule.messages.pages.removeCanceled`,{page:i.title}))})},bulkRemove:async n=>{if(n.length!==0){try{await d.confirm(e(`dashboardModule.texts.pages.confirmBulkRemove`,{count:n.length}),e(`dashboardModule.headings.pages.bulkRemove`),{confirmButtonText:e(`dashboardModule.buttons.yes.title`),cancelButtonText:e(`dashboardModule.buttons.no.title`),type:`warning`})}catch{return}try{let i=await r.bulkRemove({ids:n.map(e=>e.id)});i.succeeded.length>0&&t.success(e(`dashboardModule.messages.pages.bulkRemoved`,{count:i.succeeded.length})),i.failed.length>0&&t.error(e(`dashboardModule.messages.pages.bulkRemoveFailed`,{count:i.failed.length}))}catch{t.error(e(`dashboardModule.messages.pages.bulkRemoveFailed`,{count:n.length}))}}}}},V=({id:e})=>{let n=_().getStore(D);return{icon:t(()=>`mdi:${n.findById(e)?.icon??`view-dashboard`}`)}},H=l({id:v().uuid().optional(),type:v().trim().nonempty(),title:v().trim().nonempty(),icon:v().trim().transform(e=>e===``?null:e).nullable().optional(),order:u(),showTopBar:g().optional(),displays:p(v().uuid()).nullable().optional()}),U=l({id:v().uuid(),type:v().trim().nonempty(),title:v().trim().nonempty().optional(),icon:v().trim().transform(e=>e===``?null:e).nullable().optional(),order:u().optional(),showTopBar:g().optional(),displays:p(v().uuid()).nullable().optional()}),W=({type:e})=>{let{getByType:n}=F(),r=t(()=>n(e));return{plugin:r,element:t(()=>(r.value?.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`dashboard-module`))))}},G=({id:t,type:o})=>{let c=_(),{element:l}=W({type:o}),u=c.getStore(D),{t:d}=n(),p=m(),h=s(),g=r(T.NONE),v,y=e({...x(l.value?.schemas?.pageAddFormSchema||H),id:t,type:o,title:``,icon:``,order:0,showTopBar:!0}),b=f(a(y)),S=r(void 0),C=r(!1),w=async()=>{if(S.value.clearValidate(),!await S.value.validate())throw new O(`Form not valid`);let e=(l.value?.schemas?.pageAddFormSchema||H).safeParse(y);if(!e.success)throw h.error(`Schema validation failed with:`,e.error),new O(`Failed to validate create page model.`);g.value=T.WORKING;let n=d(`dashboardModule.messages.pages.notCreated`,{page:y.title});try{await u.add({id:t,draft:!1,data:{...e.data,type:o}})}catch(e){throw g.value=T.ERROR,v=window.setTimeout(k,2e3),e instanceof E&&e.code===422?p.error(e.message):p.error(n),e}return g.value=T.OK,v=window.setTimeout(k,2e3),p.success(d(`dashboardModule.messages.pages.created`,{page:y.title})),`added`},k=()=>{window.clearTimeout(v),g.value=T.NONE};return i(y,()=>{C.value=!(0,P.isEqual)(a(y),b)}),{model:y,formEl:S,formChanged:C,submit:w,clear:k,formResult:g}},K=({page:t,messages:o})=>{let c=_(),{element:l}=W({type:t.type}),u=c.getStore(D),{t:d}=n(),p=m(),h=s(),g=r(T.NONE),v,y=e(t),b=f(a(y)),x=r(void 0),S=r(!1),C=async()=>{let e=t.draft,n=o&&o.error?o.error:t.draft?d(`dashboardModule.messages.pages.notCreated`,{page:t.title}):d(`dashboardModule.messages.pages.notEdited`,{page:t.title});if(x.value.clearValidate(),!await x.value.validate())throw new O(`Form not valid`);let r=(l.value?.schemas?.pageEditFormSchema||U).safeParse(y);if(!r.success)throw h.error(`Schema validation failed with:`,r.error),new O(`Failed to validate edit page model.`);g.value=T.WORKING;try{let e;e=await u.edit({id:t.id,data:{...r.data,type:t.type}}),t.draft&&(e=await u.save({id:t.id})),e&&Object.assign(y,e)}catch(e){throw g.value=T.ERROR,v=window.setTimeout(w,2e3),e instanceof E&&e.code===422?p.error(e.message):p.error(n),e}return g.value=T.OK,v=window.setTimeout(w,2e3),e?(p.success(d(o&&o.success?o.success:`dashboardModule.messages.pages.created`,{page:t.title})),`added`):(p.success(d(o&&o.success?o.success:`dashboardModule.messages.pages.edited`,{page:t.title})),S.value=!1,b=f(a(y)),`saved`)},w=()=>{window.clearTimeout(v),g.value=T.NONE};return i(y,()=>{S.value=!(0,P.isEqual)(a(y),b)}),{model:y,formEl:x,formChanged:S,submit:C,clear:w,formResult:g}},q=e=>{let n=_().getStore(k),{firstLoad:r,semaphore:i}=o(n);return{tiles:t(()=>n.findForParent(e.parent,e.parentId)),areLoading:t(()=>i.value.fetching.items.includes(e.parentId)?!0:!r.value.includes(e.parentId)&&i.value.fetching.items.includes(e.parentId)),loaded:t(()=>r.value.includes(e.parentId)),fetchTiles:async()=>{await n.fetch({parent:{type:e.parent,id:e.parentId}})}}},J=e=>{let{t}=n(),r=m(),i=_().getStore(k);return{findById:(e,t)=>i.findById(e,t),edit:async e=>i.edit(e),save:async e=>i.save(e),remove:async n=>{let a=i.findById(e.parent,n);if(a===null)throw new C(`Something went wrong, tile can't be loaded`);d.confirm(t(`dashboardModule.texts.tiles.confirmRemove`),t(`dashboardModule.headings.tiles.remove`),{confirmButtonText:t(`dashboardModule.buttons.yes.title`),cancelButtonText:t(`dashboardModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await i.remove({id:a.id,parent:{type:e.parent,id:e.parentId}}),r.success(t(`dashboardModule.messages.tiles.removed`))}catch(e){if(e instanceof E&&e.code===404){let e=t(`dashboardModule.messages.tiles.notFound`);r.error(e)}else if(e instanceof E&&e.code===422)r.error(e.message);else{let e=t(`dashboardModule.messages.tiles.notRemoved`);r.error(e)}}}).catch(()=>{r.info(t(`dashboardModule.messages.tiles.removeCanceled`))})},removeDirectly:async e=>i.remove(e)}},Y=l({id:v().uuid().optional(),type:v().trim().nonempty(),row:u(),col:u(),rowSpan:u(),colSpan:u(),hidden:g()}),X=l({id:v().uuid(),type:v().trim().nonempty(),row:u().optional(),col:u().optional(),rowSpan:u().optional(),colSpan:u().optional(),hidden:g()}),Z=({id:t,parent:o,parentId:c,type:l,onlyDraft:u=!1})=>{let d=_(),{element:p}=N({type:l}),h=d.getStore(k),{t:g}=n(),v=m(),y=s(),b=r(T.NONE),S,C=e({...x(p.value?.schemas?.tileAddFormSchema||Y),id:t,type:l,row:1,col:1,rowSpan:1,colSpan:1,hidden:!1}),w=f(a(C)),D=r(void 0),A=r(!1),j=async()=>{if(D.value.clearValidate(),!await D.value.validate())throw new O(`Form not valid`);let e=(p.value?.schemas?.tileAddFormSchema||Y).safeParse(C);if(!e.success)throw y.error(`Schema validation failed with:`,e.error),new O(`Failed to validate create tile model.`);b.value=T.WORKING;let n=g(`dashboardModule.messages.tiles.notCreated`);try{await h.add({id:t,parent:{type:o,id:c},draft:u,data:{...e.data,type:l}})}catch(e){throw b.value=T.ERROR,S=window.setTimeout(M,2e3),e instanceof E&&e.code===422?v.error(e.message):v.error(n),e}return b.value=T.OK,S=window.setTimeout(M,2e3),v.success(g(`dashboardModule.messages.tiles.created`)),`added`},M=()=>{window.clearTimeout(S),b.value=T.NONE};return i(C,()=>{A.value=!(0,P.isEqual)(a(C),w)}),{model:C,formEl:D,formChanged:A,submit:j,clear:M,formResult:b}},ee=({tile:t,messages:o,onlyDraft:c=!1})=>{let l=_(),{element:u}=N({type:t.type}),d=l.getStore(k),{t:p}=n(),h=m(),g=s(),v=r(T.NONE),y,b=e(t),x=f(a(b)),S=r(void 0),C=r(!1),w=async()=>{let e=t.draft,n=o&&o.error?o.error:t.draft&&!c?p(`dashboardModule.messages.tiles.notCreated`):p(`dashboardModule.messages.tiles.notEdited`);if(S.value.clearValidate(),!await S.value.validate())throw new O(`Form not valid`);let r=(u.value?.schemas?.tileEditFormSchema||X).safeParse(b);if(!r.success)throw g.error(`Schema validation failed with:`,r.error),new O(`Failed to validate create tile model.`);v.value=T.WORKING;try{await d.edit({id:t.id,parent:t.parent,data:{...r.data,type:t.type}}),t.draft&&!c&&await d.save({id:t.id,parent:t.parent})}catch(e){throw v.value=T.ERROR,y=window.setTimeout(D,2e3),e instanceof E&&e.code===422?h.error(e.message):h.error(n),e}return v.value=T.OK,y=window.setTimeout(D,2e3),e&&!c?(h.success(p(o&&o.success?o.success:`dashboardModule.messages.tiles.created`)),`added`):(h.success(p(o&&o.success?o.success:`dashboardModule.messages.tiles.edited`)),C.value=!1,x=f(a(b)),`saved`)},D=()=>{window.clearTimeout(y),v.value=T.NONE};return i(b,()=>{C.value=!(0,P.isEqual)(a(b),x)}),{model:b,formEl:S,formChanged:C,submit:w,clear:D,formResult:v}},te=e=>{let{id:n}=e,r=_().getStore(A),{data:i,semaphore:a}=o(r);return{dataSource:t(()=>n===null?null:n in i.value?i.value[n]:null),isLoading:t(()=>a.value.fetching.item.includes(n)?!0:(n in i.value?i.value[n]:null)===null&&a.value.fetching.items.includes(e.parentId)),fetchDataSource:async()=>{(n in i.value?i.value[n]:null)?.draft||await r.get({id:n,parent:{type:e.parent,id:e.parentId}})}}},Q=l({id:v().uuid().optional(),type:v().trim().nonempty()}),$=l({id:v().uuid(),type:v().trim().nonempty()}),ne=({id:t,type:o,parent:c,parentId:l,onlyDraft:u=!1})=>{let d=_(),{element:p}=M({type:o}),h=d.getStore(A),{t:g}=n(),v=m(),y=s(),b=r(T.NONE),S,C=e({...x(p.value?.schemas?.dataSourceAddFormSchema||Q),id:t,type:o}),w=f(a(C)),D=r(void 0),k=r(!1),j=async()=>{if(D.value.clearValidate(),!await D.value.validate())throw new O(`Form not valid`);let e=(p.value?.schemas?.dataSourceAddFormSchema||Q).safeParse(C);if(!e.success)throw y.error(`Schema validation failed with:`,e.error),new O(`Failed to validate create data source model.`);b.value=T.WORKING;let n=g(`dashboardModule.messages.dataSources.notCreated`);try{await h.add({id:t,parent:{type:c,id:l},draft:u,data:{...e.data,type:o}})}catch(e){throw b.value=T.ERROR,S=window.setTimeout(N,2e3),e instanceof E&&e.code===422?v.error(e.message):v.error(n),e}return b.value=T.OK,S=window.setTimeout(N,2e3),v.success(g(`dashboardModule.messages.dataSources.created`)),`added`},N=()=>{window.clearTimeout(S),b.value=T.NONE};return i(C,()=>{k.value=!(0,P.isEqual)(a(C),w)}),{model:C,formEl:D,formChanged:k,submit:j,clear:N,formResult:b}},re=({dataSource:t,messages:o,onlyDraft:c=!1})=>{let l=_(),{element:u}=M({type:t.type}),d=l.getStore(A),{t:p}=n(),h=m(),g=s(),v=r(T.NONE),y,b=e(t),x=f(a(b)),S=r(void 0),C=r(!1),w=async()=>{let e=t.draft,n=o&&o.error?o.error:t.draft&&!c?p(`dashboardModule.messages.dataSources.notCreated`):p(`dashboardModule.messages.dataSources.notEdited`);if(S.value.clearValidate(),!await S.value.validate())throw new O(`Form not valid`);let r=(u.value?.schemas?.dataSourceEditFormSchema||$).safeParse(b);if(!r.success)throw g.error(`Schema validation failed with:`,r.error),new O(`Failed to validate create dataSource model.`);v.value=T.WORKING;try{await d.edit({id:t.id,parent:t.parent,data:{...r.data,type:t.type}}),t.draft&&!c&&await d.save({id:t.id,parent:t.parent})}catch(e){throw v.value=T.ERROR,y=window.setTimeout(D,2e3),e instanceof E&&e.code===422?h.error(e.message):h.error(n),e}return v.value=T.OK,y=window.setTimeout(D,2e3),e&&!c?(h.success(p(o&&o.success?o.success:`dashboardModule.messages.dataSources.created`)),`added`):(h.success(p(o&&o.success?o.success:`dashboardModule.messages.dataSources.edited`)),C.value=!1,x=f(a(b)),`saved`)},D=()=>{window.clearTimeout(y),v.value=T.NONE};return i(b,()=>{C.value=!(0,P.isEqual)(a(b),x)}),{model:b,formEl:S,formChanged:C,submit:w,clear:D,formResult:v}};export{V as _,te as a,I as b,Y as c,q as d,K as f,U as g,H as h,$ as i,X as l,W as m,ne as n,ee as o,G as p,Q as r,Z as s,re as t,J as u,B as v,F as x,z as y};
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ci as e,Er as t,Mi as n,Pi as r,T as i,Ti as a,di as o,ki as s}from"./icon-with-child-C0yuv0oQ.js";import{Ia as c,bt as l,f as u,gt as d,ht as f,ii as p,it as m,l as h,ot as g,p as _,pt as v,s as y,st as b,x,yt as S}from"./common-Cq0z9nNV.js";import{r as C}from"./config-COwev7fh.js";import{r as w}from"./usePlugins-CJqAJVB-.js";import{t as T}from"./dist-DJgPCOr0.js";import{t as E}from"./keys-DExX7OfU.js";import{C as D,S as O,_ as k,b as A,d as j,g as M,h as N,n as P,s as F,y as I}from"./keys-bvwxU-Nn.js";import{l as L,u as R}from"./useSpaces-B-iaoyU0.js";import{o as z}from"./keys-DMEIfK2a.js";var B=e=>{let n=x().getStore(P),{data:r,semaphore:i}=c(n);return{space:t(()=>e.value?r.value[e.value]??null:null),fetching:t(()=>e.value?i.value.fetching.item.includes(e.value):!1),fetchSpace:async()=>e.value?n.get({id:e.value}):null,editSpace:async t=>{if(!e.value)throw Error(`Space ID is required`);return n.edit({id:e.value,data:t})},removeSpace:async()=>{if(!e.value)throw Error(`Space ID is required`);return n.remove({id:e.value})}}},V=u(),H=d({search:S().optional(),types:g(S())}),U=d({name:S().min(1),description:S().nullable().optional(),category:l([v(N),v(k)]).nullable().optional(),icon:S().nullable().optional(),displayOrder:f().int().min(0).default(0),parentId:S().uuid().nullable().optional()}),W=U.extend({id:S().uuid(),type:m([M.ROOM,M.ZONE]).default(M.ROOM)}),G=U.extend({id:S().uuid(),type:v(M),suggestionsEnabled:b().default(!0),statusWidgets:g(L).nullable().optional()}),K=({id:t,type:n})=>{let r=x().getStore(P),{t:c}=i(),l=_(),u=a(F.NONE),d=a(null),f,p=e({id:t,type:n??M.ROOM,name:``,description:null,category:null,icon:null,displayOrder:0,parentId:null}),m=h(s(p)),g=a(void 0),v=a(!1),y=async()=>{if(g.value.clearValidate(),!await g.value.validate())throw Error(`Form not valid`);let e=W.safeParse(p);if(!e.success)throw Error(`Failed to validate create space model.`);u.value=F.WORKING;let n=c(`spacesModule.messages.notCreated`,{space:p.name});try{d.value=await r.add({id:t,data:{name:e.data.name,type:e.data.type,category:e.data.category??null,description:e.data.description??null,icon:e.data.icon??null,displayOrder:e.data.displayOrder,parentId:e.data.parentId??null}})}catch(e){throw u.value=F.ERROR,d.value=null,f=window.setTimeout(b,2e3),l.error(n),e}return u.value=F.OK,f=window.setTimeout(b,2e3),l.success(c(`spacesModule.messages.created`,{space:p.name})),`added`},b=()=>{window.clearTimeout(f),u.value=F.NONE,d.value=null};return o(p,()=>{v.value=!(0,V.isEqual)(s(p),m)}),{model:p,formEl:g,formChanged:v,submit:y,clear:b,formResult:u,createdSpace:d}};function q(e){let n=e=>{let t=I(e);return e===M.ROOM?[...t].sort((e,t)=>e.localeCompare(t)):t},i=e=>{let t=A(e);return t&&t.length>0?t:null};return{getCategoryOptions:n,getCategoryGroups:i,getCategoryTemplates:e=>O(e),categoryOptions:t(()=>{let t=r(e)??M.ROOM;return n(t)}),categoryGroups:t(()=>{let t=r(e)??M.ROOM;return i(t)}),currentTemplates:t(()=>O(r(e)??M.ROOM))}}var J=(e,n)=>{let r=x(),i=r.getStore(z),o=r.getStore(P),{semaphore:s,firstLoad:l}=c(i),u=a(!1);return{devices:t(()=>{if(!e.value||!n.value)return[];let t=i.findAll().filter(e=>!e.draft&&!e.hidden),r;return r=n.value===M.ROOM?t.filter(t=>t.roomId===e.value):t.filter(t=>t.zoneIds.includes(e.value)),r.sort((e,t)=>e.name.localeCompare(t.name))}),loading:t(()=>!!(u.value||s.value.fetching.items||!l.value)),firstLoadFinished:t(()=>l.value),fetchDevices:async()=>{await i.fetch()},addDevice:async t=>{if(!e.value||!n.value)throw Error(`Space ID and type are required`);u.value=!0;try{if(n.value===M.ROOM){let n=i.findById(t);if(!n)throw Error(`Device not found`);await i.edit({id:t,data:{type:n.type,roomId:e.value}})}else{let n=o.findById(e.value);if(n&&D(n.category))throw Error(`Cannot assign devices to floor zones. Floor membership is derived from room assignment.`);await i.addZone({id:t,zoneId:e.value})}}finally{u.value=!1}},removeDevice:async t=>{if(!e.value||!n.value)throw Error(`Space ID and type are required`);u.value=!0;try{if(n.value===M.ROOM){let e=i.findById(t);if(!e)throw Error(`Device not found`);await i.edit({id:t,data:{type:e.type,roomId:null}})}else await i.removeZone({id:t,zoneId:e.value})}finally{u.value=!1}},reassignDevice:async(e,t)=>{u.value=!0;try{let n=i.findById(e);if(!n)throw Error(`Device not found`);await i.edit({id:e,data:{type:n.type,roomId:t}})}finally{u.value=!1}}}},Y=e=>{let n=x().getStore(E),r=a(!1);return{displays:t(()=>e.value?n.findAll().filter(t=>t.spaceId===e.value).sort((e,t)=>(e.name||e.macAddress).localeCompare(t.name||t.macAddress)):[]),loading:t(()=>r.value?!0:n.fetching()),fetchDisplays:async()=>{await n.fetch()},reassignDisplay:async(e,t)=>{r.value=!0;try{await n.edit({id:e,data:{spaceId:t}})}finally{r.value=!1}},removeDisplay:async e=>{r.value=!0;try{await n.edit({id:e,data:{spaceId:null}})}finally{r.value=!1}}}},X=({space:t})=>{let n=()=>`value`in t?t.value:t,r=n(),c=x().getStore(P),{t:l}=i(),u=_(),d=a(F.NONE),f,p=e({id:r.id,type:r.type,name:r.name,description:r.description,category:r.category,icon:r.icon,displayOrder:r.displayOrder,parentId:r.parentId,suggestionsEnabled:r.suggestionsEnabled,statusWidgets:r.statusWidgets?[...r.statusWidgets.map(e=>({...e,settings:{...e.settings}}))]:null}),m=h(s(p)),g=a(void 0),v=a(!1),y=async()=>{if(g.value.clearValidate(),!await g.value.validate())throw Error(`Form not valid`);let e=G.safeParse(p);if(!e.success)throw Error(`Failed to validate edit space model.`);d.value=F.WORKING;let t=l(`spacesModule.messages.notEdited`,{space:p.name});try{await c.edit({id:r.id,data:{name:e.data.name,type:e.data.type,category:e.data.category??null,description:e.data.description??null,icon:e.data.icon??null,displayOrder:e.data.displayOrder,parentId:e.data.parentId??null,suggestionsEnabled:e.data.suggestionsEnabled,statusWidgets:e.data.statusWidgets??null}})}catch(e){throw d.value=F.ERROR,f=window.setTimeout(b,2e3),u.error(t),e}return d.value=F.OK,f=window.setTimeout(b,2e3),v.value=!1,m=h(s(p)),`saved`},b=()=>{window.clearTimeout(f),d.value=F.NONE};return o(p,()=>{v.value=!(0,V.isEqual)(s(p),m)}),o(()=>n(),e=>{e&&(p.id=e.id,p.type=e.type,p.name=e.name,p.description=e.description,p.category=e.category,p.icon=e.icon,p.displayOrder=e.displayOrder,p.parentId=e.parentId,p.suggestionsEnabled=e.suggestionsEnabled,p.statusWidgets=e.statusWidgets?[...e.statusWidgets.map(e=>({...e,settings:{...e.settings}}))]:null,m=h(s(p)),v.value=!1)},{deep:!0}),{model:p,formEl:g,formChanged:v,submit:y,clear:b,formResult:d}},Z=()=>{let{t:e}=i(),t=_(),n=x().getStore(P);return{remove:async r=>{let i=n.findById(r);return i?p.confirm(e(`spacesModule.messages.confirmRemove`,{name:i.name}),e(`spacesModule.headings.removeSpace`),{confirmButtonText:e(`spacesModule.buttons.yes.title`),cancelButtonText:e(`spacesModule.buttons.no.title`),type:`warning`}).then(async()=>{try{return await n.remove({id:r}),t.success(e(`spacesModule.messages.removed`,{space:i.name})),!0}catch(e){return e instanceof R&&t.error(e.message),!1}}).catch(()=>(t.info(e(`spacesModule.messages.removeCanceled`,{space:i.name})),!1)):(t.error(e(`spacesModule.messages.notFound`)),!1)},bulkRemove:async r=>{if(r.length!==0){try{await p.confirm(e(`spacesModule.messages.confirmBulkRemove`,{count:r.length}),e(`spacesModule.headings.bulkRemoveSpace`),{confirmButtonText:e(`spacesModule.buttons.yes.title`),cancelButtonText:e(`spacesModule.buttons.no.title`),type:`warning`})}catch{return}try{let i=await n.bulkRemove({ids:r.map(e=>e.id)});i.succeeded.length>0&&t.success(e(`spacesModule.messages.bulkRemoved`,{count:i.succeeded.length})),i.failed.length>0&&t.error(e(`spacesModule.messages.bulkRemoveFailed`,{count:i.failed.length}))}catch{t.error(e(`spacesModule.messages.bulkRemoveFailed`,{count:r.length}))}}}}},Q={search:void 0,types:[]},ee={by:`name`,dir:`asc`},te=()=>{let e=x().getStore(P),{firstLoad:n,semaphore:r}=c(e),{filters:i,sort:s,pagination:l,reset:u}=y({key:`${j}:spaces:list`,filters:{schema:H,defaults:Q},sort:{defaults:[ee]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:2}),d=t(()=>i.value.search!==Q.search||!(0,V.isEqual)(i.value.types,Q.types)),f=a(l.value.size||10),p=a(l.value.page||1),m=a(s.value.length>0?s.value[0]?.by:void 0),h=a(s.value.length>0?s.value[0]?.dir??null:null),g=t(()=>T(e.findAll().filter(e=>!e.draft&&(!i.value.search||e.id.toLowerCase().includes(i.value.search.toLowerCase())||e.name?.toLowerCase().includes(i.value.search.toLowerCase())||e.description?.toLowerCase().includes(i.value.search.toLowerCase()))&&(i.value.types.length===0||i.value.types.includes(e.type))),[e=>{switch(m.value){case`name`:return e.name;case`type`:return e.type;case`displayOrder`:return e.displayOrder;default:return e.displayOrder}}],[h.value??`asc`])),_=t(()=>{let e=(p.value-1)*f.value,t=e+f.value;return g.value.slice(e,t)}),v=async()=>{await e.fetch()},b=t(()=>!!(r.value.fetching.items||!n.value)),S=t(()=>n.value),C=t(()=>e.findAll().filter(e=>!e.draft).length);return o(()=>l.value,e=>{p.value=e.page??1,f.value=e.size??10},{deep:!0}),o(()=>p.value,e=>{l.value.page=e}),o(()=>f.value,e=>{l.value.size=e}),o(()=>h.value,e=>{m.value===void 0||e===null?s.value=[]:s.value=[{by:m.value,dir:e}]}),o(()=>m.value,e=>{e===void 0?s.value=[]:s.value=[{by:e,dir:h.value}]}),{spaces:g,spacesPaginated:_,totalRows:C,areLoading:b,loaded:S,fetchSpaces:v,filters:i,filtersActive:d,paginateSize:f,paginatePage:p,sortBy:m,sortDir:h,resetFilter:u}},$=()=>{let e=w(),{enabled:n}=C(),{t:r,te:a}=i(),o=[`spaceDetail`,`spaceAddForm`,`spaceEditForm`,`spaceWizard`],s=[`spaceDetail`,`spaceAddForm`,`spaceEditForm`],c=[`spaceSchema`,`spaceAddFormSchema`,`spaceEditFormSchema`,`spaceCreateReqSchema`,`spaceUpdateReqSchema`],l=[`configure`],u=t(()=>e.getPlugins().filter(e=>e.modules===void 0||e.modules.includes(`spaces-module`)?l.length>0&&l.some(t=>e.routes&&t in e.routes)?!0:(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`spaces-module`)))return!1;let t=o.length===0||!!e.components&&o.some(t=>e.components&&t in e.components),n=c.length===0||!!e.schemas&&c.some(t=>e.schemas&&t in e.schemas);return t||n}):!1)),d=e=>a(e)?r(e):e;return{plugins:u,options:t(()=>T(u.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`spaces-module`)).filter(e=>{let t=!!e.components&&s.some(t=>e.components&&t in e.components),n=!!e.schemas&&c.some(t=>e.schemas&&t in e.schemas);return t||n}).map(t=>({value:t.type,label:t.name?.trim()?d(t.name):d(e.name),disabled:!n(e.type)}))),[e=>e.label],[`asc`])),wizardOptions:t(()=>T(u.value.filter(e=>(e.elements??[]).some(e=>(e.modules===void 0||e.modules.includes(`spaces-module`))&&!!e.components?.spaceWizard)).map(e=>({value:e.type,label:d(e.name),description:e.description,disabled:!n(e.type)})),[e=>e.label],[`asc`])),getByPluginType:e=>u.value.find(t=>t.type===e),getByType:e=>u.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`spaces-module`)))),getElement:e=>{for(let t of u.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`spaces-module`)));if(n)return n}}}},ne=({type:e})=>{let{getByType:r}=$(),i=t(()=>r(n(e)));return{plugin:i,element:t(()=>{let t=n(e);return(i.value?.elements??[]).find(e=>e.type===t&&(e.modules===void 0||e.modules.includes(`spaces-module`)))})}};export{X as a,q as c,G as d,B as f,Z as i,K as l,$ as n,Y as o,te as r,J as s,ne as t,W as u};
@@ -1 +1 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{Ei as e,Er as t,Si as n,T as r,bi as i,ci as a,n as o}from"./icon-with-child-CgZMNB3F.js";import{Fr as s,_ as c,bt as l,ct as u,f as d,ft as f,gt as p,ht as m,l as h,m as g,o as _,ot as v,p as y,pa as b,st as x,x as S,xt as C,yt as w}from"./common-DkmUkaQU.js";import{r as T}from"./config-CdzBdVwi.js";import{r as E}from"./usePlugins-BzLkBW9_.js";import{t as D}from"./dist-DJgPCOr0.js";import{t as O}from"./useConfigModule-DLtc9prD.js";import{i as k,l as A,n as j,o as M,s as N}from"./useLocation-D66xYs9N.js";import{a as P,n as F,o as I}from"./weather.constants-_S0I_w_Q.js";import{t as L}from"./types-CKQ-nhSt.js";var R=()=>{let e=S().getStore(N),{data:n,semaphore:r}=b(e);return{weatherDay:t(()=>n.value),isLoading:t(()=>n.value===null&&r.value.getting),fetchWeatherDay:async()=>{await e.get()}}},z=()=>{let e=S().getStore(A),{firstLoad:n,semaphore:r}=b(e);return{locations:t(()=>e.findAll().filter(e=>!e.draft)),areLoading:t(()=>r.value.fetching.items),loaded:t(()=>n.value),fetchLocations:async()=>{await e.fetch()}}},B={search:void 0,types:[],primary:`all`},V=()=>{let e=S().getStore(A),{firstLoad:r,semaphore:i}=b(e),{configModule:o}=O({type:P}),s=t(()=>o.value?.primaryLocationId??null),c=n(10),l=n(1),u=n({...B}),d=t(()=>u.value.search!==B.search||u.value.types.length>0||u.value.primary!==B.primary),f=n(`name`),p=n(`ascending`),m=t(()=>{let t=e.findAll().filter(e=>!(e.draft||u.value.search&&!e.name.toLowerCase().includes(u.value.search.toLowerCase())||u.value.types.length>0&&!u.value.types.includes(e.type)||u.value.primary===`primary`&&e.id!==s.value||u.value.primary===`secondary`&&e.id===s.value));return p.value===null?t:D(t,[e=>e[f.value]??``],[p.value===`ascending`?`asc`:`desc`])}),h=t(()=>{let e=(l.value-1)*c.value,t=e+c.value;return m.value.slice(e,t)}),g=async()=>{await e.fetch()},_=t(()=>i.value.fetching.items||!r.value),v=t(()=>r.value),y=t(()=>e.findAll().filter(e=>!e.draft).length);return a(()=>u.value,()=>{l.value=1},{deep:!0}),{locations:m,locationsPaginated:h,totalRows:y,areLoading:_,loaded:v,fetchLocations:g,filters:u,filtersActive:d,paginateSize:c,paginatePage:l,sortBy:f,sortDir:p,resetFilter:()=>{u.value={...B}},primaryLocationId:s}},H=()=>{let e=g(),r=c(),i=n({}),a=n(!1),s=n(!1),l=n(!1);return{weatherByLocation:t(()=>i.value),isLoading:a,hasError:s,fetchCompleted:l,fetchLocationsWeather:async()=>{if(!a.value){a.value=!0,s.value=!1;try{let{data:t,error:n,response:a}=await e.client.GET(`/${o}/${I}/weather`,{});if(t!==void 0&&Array.isArray(t.data)){let e={};for(let n of t.data)if(n.location_id)try{let t=j(n.current),r=n.location;e[n.location_id]={current:t,locationName:r?.name??``,country:r?.country??null}}catch(e){r.error(`[WEATHER] Failed to transform weather data for location ${n.location_id}`,e)}i.value=e,Object.keys(e).length===0&&(s.value=!0);return}let c=`Failed to fetch locations weather.`;throw n&&(c=n.message??c),new k(c,a?.status??500)}catch(e){if(s.value=!0,e instanceof k)throw e;r.error(`[WEATHER] Failed to fetch locations weather`,e)}finally{a.value=!1,l.value=!0}}}}},U=()=>{let{t:e}=r(),t=y(),n=S().getStore(A);return{add:async e=>n.add(e),edit:async e=>n.edit(e),remove:async r=>{let i=n.findById(r);if(i)try{await s.confirm(e(`weatherModule.messages.locations.confirmDeleteLocation`,{name:i.name}),e(`weatherModule.headings.deleteLocation`),{confirmButtonText:e(`weatherModule.buttons.yes.title`),cancelButtonText:e(`weatherModule.buttons.no.title`),type:`warning`});try{await n.remove({id:r}),t.success(e(`weatherModule.messages.locations.deleted`))}catch{t.error(e(`weatherModule.messages.locations.notDeleted`))}}catch{t.info(e(`weatherModule.messages.locations.deleteCanceled`,{location:i.name}))}},bulkRemove:async r=>{if(r.length!==0){try{await s.confirm(e(`weatherModule.messages.locations.confirmBulkDelete`,{count:r.length}),e(`weatherModule.headings.bulkDeleteLocations`),{confirmButtonText:e(`weatherModule.buttons.yes.title`),cancelButtonText:e(`weatherModule.buttons.no.title`),type:`warning`})}catch{t.info(e(`weatherModule.messages.locations.bulkDeleteCanceled`));return}try{let i=await n.bulkRemove({ids:r.map(e=>e.id)});i.succeeded.length>0&&t.success(e(`weatherModule.messages.locations.bulkDeleted`,{count:i.succeeded.length})),i.failed.length>0&&t.error(e(`weatherModule.messages.locations.bulkDeleteFailed`,{count:i.failed.length}))}catch{t.error(e(`weatherModule.messages.locations.bulkDeleteFailed`,{count:r.length}))}}}}},W=d(),G=p({id:L,draft:x().default(!1),type:w().trim().nonempty(),name:w().trim().nonempty(),order:m().int().nonnegative().default(0),createdAt:l([w().datetime({offset:!0}),u()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:l([w().datetime({offset:!0}),u()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)}).catchall(C());p({fetching:p({items:x().default(!1),item:v(L)}),creating:v(L),updating:v(L),deleting:v(L)}),p({id:L,type:w().trim().nonempty(),data:f({})}),p({id:L,data:p({type:w().trim().nonempty(),name:w().trim().nonempty()}).catchall(C())}),p({id:L}),p({id:L});var K=p({id:L.optional().default(_()),draft:x().optional().default(!1),data:p({type:w().trim().nonempty(),name:w().trim().nonempty()}).catchall(C())}),q=p({id:L,data:p({type:w().trim().nonempty(),name:w().trim().optional()}).catchall(C())});p({id:L}),p({ids:v(L).nonempty()});var J=p({succeeded:v(w()),failed:v(p({id:w(),reason:w()}))});p({id:L});var Y=p({id:w().uuid().optional(),type:w().trim().nonempty(),name:w().trim().nonempty()}).passthrough(),X=p({type:w().trim().nonempty(),name:w().trim().nonempty().optional()}).passthrough();p({id:w().uuid(),type:w(),name:w().trim().nonempty(),created_at:w(),updated_at:w().nullable().optional()}),p({id:L,type:w().trim().nonempty(),name:w().trim().min(1,`Name is required`)});var Z=p({name:w().trim().min(1,`Name is required`)}),Q=G,ee=Y,te=X,ne=({id:t})=>{let o=S().getStore(A),{t:s}=r(),l=y(),u=c(),d=n(F.NONE),f,p=i({name:o.findById(t.value)?.name??``}),m=h(e(p)),g=n(void 0),_=n(!1),v=async()=>{if(g.value.clearValidate(),!await g.value.validate())throw new M(`Form not valid`);let n=Z.safeParse(p);if(!n.success)throw u.error(`[WEATHER_MODULE] Schema validation failed:`,n.error),new M(`Failed to validate update location model.`);d.value=F.WORKING;let r=o.findById(t.value);if(!r)throw new M(`Location not found.`);let i=s(`weatherModule.messages.locations.notUpdated`,{location:p.name});try{await o.edit({id:t.value,data:{type:r.type,...n.data}}),d.value=F.OK,l.success(s(`weatherModule.messages.locations.updated`,{location:p.name})),Object.assign(m,h(e(p))),_.value=!1}catch(e){throw d.value=F.ERROR,f=window.setTimeout(b,2e3),e instanceof k&&e.code===422?l.error(e.message):l.error(i),e}},b=()=>{window.clearTimeout(f),d.value=F.NONE};return a(()=>p,()=>{_.value=!(0,W.isEqual)(e(p),m)},{deep:!0}),a(()=>o.findById(t.value),t=>{t&&!_.value&&(p.name=t.name,Object.assign(m,h(e(p))))}),{model:p,formEl:g,formChanged:_,submit:v}},$=()=>{let e=E(),{enabled:n}=T(),r=[`locationAddForm`,`locationEditForm`],i=[`locationSchema`,`locationAddFormSchema`,`locationEditFormSchema`,`locationCreateReqSchema`,`locationUpdateReqSchema`],a=t(()=>e.getPlugins().filter(e=>e.modules===void 0||e.modules.includes(`weather-module`)?(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`weather-module`)))return!1;let t=r.length===0||!!e.components&&r.some(t=>e.components&&t in e.components),n=i.length===0||!!e.schemas&&i.some(t=>e.schemas&&t in e.schemas);return t||n}):!1));return{plugins:a,options:t(()=>D(a.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`weather-module`)).map(t=>({value:t.type,label:t.name?.trim()?t.name:e.name,disabled:!n(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>a.value.find(t=>t.type===e),getByType:e=>a.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`)))),getElement:e=>{for(let t of a.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`)));if(n)return n}}}},re=({type:e})=>{let{getByType:n}=$(),r=t(()=>n(e));return{plugin:r,element:t(()=>(r.value?.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`))))}};export{R as _,Q as a,G as c,J as d,q as f,z as g,V as h,ee as i,X as l,H as m,$ as n,te as o,U as p,ne as r,Y as s,re as t,K as u};
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ci as e,Er as t,T as n,Ti as r,di as i,ki as a,n as o}from"./icon-with-child-C0yuv0oQ.js";import{Ia as s,_ as c,bt as l,ct as u,f as d,ft as f,gt as p,ht as m,ii as h,l as g,m as _,o as v,ot as y,p as b,st as x,x as S,xt as C,yt as w}from"./common-Cq0z9nNV.js";import{r as T}from"./config-COwev7fh.js";import{r as E}from"./usePlugins-CJqAJVB-.js";import{t as D}from"./dist-DJgPCOr0.js";import{t as O}from"./useConfigModule-C5G5RPH_.js";import{i as k,l as A,n as j,o as M,s as N}from"./useLocation-D4jTkrKi.js";import{a as P,n as F,o as I}from"./weather.constants-_S0I_w_Q.js";import{t as L}from"./types-DaHriOn2.js";var R=()=>{let e=S().getStore(N),{data:n,semaphore:r}=s(e);return{weatherDay:t(()=>n.value),isLoading:t(()=>n.value===null&&r.value.getting),fetchWeatherDay:async()=>{await e.get()}}},z=()=>{let e=S().getStore(A),{firstLoad:n,semaphore:r}=s(e);return{locations:t(()=>e.findAll().filter(e=>!e.draft)),areLoading:t(()=>r.value.fetching.items),loaded:t(()=>n.value),fetchLocations:async()=>{await e.fetch()}}},B={search:void 0,types:[],primary:`all`},V=()=>{let e=S().getStore(A),{firstLoad:n,semaphore:a}=s(e),{configModule:o}=O({type:P}),c=t(()=>o.value?.primaryLocationId??null),l=r(10),u=r(1),d=r({...B}),f=t(()=>d.value.search!==B.search||d.value.types.length>0||d.value.primary!==B.primary),p=r(`name`),m=r(`ascending`),h=t(()=>{let t=e.findAll().filter(e=>!(e.draft||d.value.search&&!e.name.toLowerCase().includes(d.value.search.toLowerCase())||d.value.types.length>0&&!d.value.types.includes(e.type)||d.value.primary===`primary`&&e.id!==c.value||d.value.primary===`secondary`&&e.id===c.value));return m.value===null?t:D(t,[e=>e[p.value]??``],[m.value===`ascending`?`asc`:`desc`])}),g=t(()=>{let e=(u.value-1)*l.value,t=e+l.value;return h.value.slice(e,t)}),_=async()=>{await e.fetch()},v=t(()=>a.value.fetching.items||!n.value),y=t(()=>n.value),b=t(()=>e.findAll().filter(e=>!e.draft).length);return i(()=>d.value,()=>{u.value=1},{deep:!0}),{locations:h,locationsPaginated:g,totalRows:b,areLoading:v,loaded:y,fetchLocations:_,filters:d,filtersActive:f,paginateSize:l,paginatePage:u,sortBy:p,sortDir:m,resetFilter:()=>{d.value={...B}},primaryLocationId:c}},H=()=>{let e=_(),n=c(),i=r({}),a=r(!1),s=r(!1),l=r(!1);return{weatherByLocation:t(()=>i.value),isLoading:a,hasError:s,fetchCompleted:l,fetchLocationsWeather:async()=>{if(!a.value){a.value=!0,s.value=!1;try{let{data:t,error:r,response:a}=await e.client.GET(`/${o}/${I}/weather`,{});if(t!==void 0&&Array.isArray(t.data)){let e={};for(let r of t.data)if(r.location_id)try{let t=j(r.current),n=r.location;e[r.location_id]={current:t,locationName:n?.name??``,country:n?.country??null}}catch(e){n.error(`[WEATHER] Failed to transform weather data for location ${r.location_id}`,e)}i.value=e,Object.keys(e).length===0&&(s.value=!0);return}let c=`Failed to fetch locations weather.`;throw r&&(c=r.message??c),new k(c,a?.status??500)}catch(e){if(s.value=!0,e instanceof k)throw e;n.error(`[WEATHER] Failed to fetch locations weather`,e)}finally{a.value=!1,l.value=!0}}}}},U=()=>{let{t:e}=n(),t=b(),r=S().getStore(A);return{add:async e=>r.add(e),edit:async e=>r.edit(e),remove:async n=>{let i=r.findById(n);if(i)try{await h.confirm(e(`weatherModule.messages.locations.confirmDeleteLocation`,{name:i.name}),e(`weatherModule.headings.deleteLocation`),{confirmButtonText:e(`weatherModule.buttons.yes.title`),cancelButtonText:e(`weatherModule.buttons.no.title`),type:`warning`});try{await r.remove({id:n}),t.success(e(`weatherModule.messages.locations.deleted`))}catch{t.error(e(`weatherModule.messages.locations.notDeleted`))}}catch{t.info(e(`weatherModule.messages.locations.deleteCanceled`,{location:i.name}))}},bulkRemove:async n=>{if(n.length!==0){try{await h.confirm(e(`weatherModule.messages.locations.confirmBulkDelete`,{count:n.length}),e(`weatherModule.headings.bulkDeleteLocations`),{confirmButtonText:e(`weatherModule.buttons.yes.title`),cancelButtonText:e(`weatherModule.buttons.no.title`),type:`warning`})}catch{t.info(e(`weatherModule.messages.locations.bulkDeleteCanceled`));return}try{let i=await r.bulkRemove({ids:n.map(e=>e.id)});i.succeeded.length>0&&t.success(e(`weatherModule.messages.locations.bulkDeleted`,{count:i.succeeded.length})),i.failed.length>0&&t.error(e(`weatherModule.messages.locations.bulkDeleteFailed`,{count:i.failed.length}))}catch{t.error(e(`weatherModule.messages.locations.bulkDeleteFailed`,{count:n.length}))}}}}},W=d(),G=p({id:L,draft:x().default(!1),type:w().trim().nonempty(),name:w().trim().nonempty(),order:m().int().nonnegative().default(0),createdAt:l([w().datetime({offset:!0}),u()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:l([w().datetime({offset:!0}),u()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)}).catchall(C());p({fetching:p({items:x().default(!1),item:y(L)}),creating:y(L),updating:y(L),deleting:y(L)}),p({id:L,type:w().trim().nonempty(),data:f({})}),p({id:L,data:p({type:w().trim().nonempty(),name:w().trim().nonempty()}).catchall(C())}),p({id:L}),p({id:L});var K=p({id:L.optional().default(v()),draft:x().optional().default(!1),data:p({type:w().trim().nonempty(),name:w().trim().nonempty()}).catchall(C())}),q=p({id:L,data:p({type:w().trim().nonempty(),name:w().trim().optional()}).catchall(C())});p({id:L}),p({ids:y(L).nonempty()});var J=p({succeeded:y(w()),failed:y(p({id:w(),reason:w()}))});p({id:L});var Y=p({id:w().uuid().optional(),type:w().trim().nonempty(),name:w().trim().nonempty()}).passthrough(),X=p({type:w().trim().nonempty(),name:w().trim().nonempty().optional()}).passthrough();p({id:w().uuid(),type:w(),name:w().trim().nonempty(),created_at:w(),updated_at:w().nullable().optional()}),p({id:L,type:w().trim().nonempty(),name:w().trim().min(1,`Name is required`)});var Z=p({name:w().trim().min(1,`Name is required`)}),Q=G,ee=Y,te=X,ne=({id:t})=>{let o=S().getStore(A),{t:s}=n(),l=b(),u=c(),d=r(F.NONE),f,p=e({name:o.findById(t.value)?.name??``}),m=g(a(p)),h=r(void 0),_=r(!1),v=async()=>{if(h.value.clearValidate(),!await h.value.validate())throw new M(`Form not valid`);let e=Z.safeParse(p);if(!e.success)throw u.error(`[WEATHER_MODULE] Schema validation failed:`,e.error),new M(`Failed to validate update location model.`);d.value=F.WORKING;let n=o.findById(t.value);if(!n)throw new M(`Location not found.`);let r=s(`weatherModule.messages.locations.notUpdated`,{location:p.name});try{await o.edit({id:t.value,data:{type:n.type,...e.data}}),d.value=F.OK,l.success(s(`weatherModule.messages.locations.updated`,{location:p.name})),Object.assign(m,g(a(p))),_.value=!1}catch(e){throw d.value=F.ERROR,f=window.setTimeout(y,2e3),e instanceof k&&e.code===422?l.error(e.message):l.error(r),e}},y=()=>{window.clearTimeout(f),d.value=F.NONE};return i(()=>p,()=>{_.value=!(0,W.isEqual)(a(p),m)},{deep:!0}),i(()=>o.findById(t.value),e=>{e&&!_.value&&(p.name=e.name,Object.assign(m,g(a(p))))}),{model:p,formEl:h,formChanged:_,submit:v}},$=()=>{let e=E(),{enabled:n}=T(),r=[`locationAddForm`,`locationEditForm`],i=[`locationSchema`,`locationAddFormSchema`,`locationEditFormSchema`,`locationCreateReqSchema`,`locationUpdateReqSchema`],a=t(()=>e.getPlugins().filter(e=>e.modules===void 0||e.modules.includes(`weather-module`)?(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`weather-module`)))return!1;let t=r.length===0||!!e.components&&r.some(t=>e.components&&t in e.components),n=i.length===0||!!e.schemas&&i.some(t=>e.schemas&&t in e.schemas);return t||n}):!1));return{plugins:a,options:t(()=>D(a.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`weather-module`)).map(t=>({value:t.type,label:t.name?.trim()?t.name:e.name,disabled:!n(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>a.value.find(t=>t.type===e),getByType:e=>a.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`)))),getElement:e=>{for(let t of a.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`)));if(n)return n}}}},re=({type:e})=>{let{getByType:n}=$(),r=t(()=>n(e));return{plugin:r,element:t(()=>(r.value?.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`weather-module`))))}};export{R as _,Q as a,G as c,J as d,q as f,z as g,V as h,ee as i,X as l,H as m,$ as n,te as o,U as p,ne as r,Y as s,re as t,K as u};
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime-QTnfLwEv.js";import{Ci as e,Er as t,Mi as n,Si as r,T as i,Ti as a,di as o,ki as s,n as c,qr as l}from"./icon-with-child-C0yuv0oQ.js";import{Ia as u,Kn as d,Tr as f,_ as p,a as m,an as h,at as g,bt as _,f as v,gt as y,ht as b,ii as x,in as S,it as C,l as w,m as T,nn as E,on as D,ot as O,p as k,pt as A,rn as j,s as M,st as N,tr as P,x as F,yt as I}from"./common-Cq0z9nNV.js";import{r as L}from"./config-COwev7fh.js";import{r as R}from"./usePlugins-CJqAJVB-.js";import{t as z}from"./schemas.utils-DWbEHUX2.js";import{t as B}from"./dist-DJgPCOr0.js";import{a as V,i as H,o as U,r as W,s as G}from"./keys-DMEIfK2a.js";import{a as K,i as ee,n as te}from"./devices.constants-cxt4nI1j.js";import{t as ne}from"./useDevicesPlugins-DoFX5T7Z.js";import{s as re}from"./system.constants-BvSIFqdm.js";import{n as ie}from"./logs-entries.transformers-CsxVIzqA.js";var q=v(),J=class extends Error{exception;constructor(e,t=null){super(e),this.name=`DevicesException`,this.exception=t}},Y=class extends J{code;constructor(e,t=null,n=null){super(e,n),this.name=`DevicesApiException`,this.code=t}},X=class extends J{constructor(e,t=null){super(e,t),this.name=`DevicesValidationException`}},ae=()=>{let e=R(),{enabled:n}=L(),r=[`channelPropertyAddForm`,`channelPropertyEditForm`],i=[`channelPropertySchema`,`channelPropertyAddFormSchema`,`channelPropertyEditFormSchema`,`channelPropertyCreateReqSchema`,`channelPropertyUpdateReqSchema`],a=t(()=>e.getPlugins().filter(e=>e.modules===void 0||e.modules.includes(`devices-module`)?(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`devices-module`)))return!1;let t=r.length===0||!!e.components&&r.some(t=>e.components&&t in e.components),n=i.length===0||!!e.schemas&&i.some(t=>e.schemas&&t in e.schemas);return t||n}):!1));return{plugins:a,options:t(()=>B(a.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`devices-module`)).map(t=>({value:t.type,label:t.name?.trim()?t.name:e.name,disabled:!n(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>a.value.find(t=>t.type===e),getByType:e=>a.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`)))),getElement:e=>{for(let t of a.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`)));if(n)return n}}}},oe=()=>{let e=R(),{enabled:n}=L(),r=[`channelAddForm`,`channelEditForm`],i=[`channelSchema`,`channelAddFormSchema`,`channelEditFormSchema`,`channelCreateReqSchema`,`channelUpdateReqSchema`],a=t(()=>e.getPlugins().filter(e=>e.modules===void 0||e.modules.includes(`devices-module`)?(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`devices-module`)))return!1;let t=r.length===0||!!e.components&&r.some(t=>e.components&&t in e.components),n=i.length===0||!!e.schemas&&i.some(t=>e.schemas&&t in e.schemas);return t||n}):!1));return{plugins:a,options:t(()=>B(a.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`devices-module`)).map(t=>({value:t.type,label:t.name?.trim()?t.name:e.name,disabled:!n(e.type)}))),[e=>e.label],[`asc`])),getByName:e=>a.value.find(t=>t.type===e),getByType:e=>a.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`)))),getElement:e=>{for(let t of a.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`)));if(n)return n}}}},se=({id:e})=>{let n=F().getStore(H),{data:r,semaphore:i}=u(n);return{channel:t(()=>e===null?null:r.value[e]??null),isLoading:t(()=>i.value.fetching.item.includes(e)?!0:(r.value[e]??null)===null&&i.value.fetching.items.includes(`all`)),fetchChannel:async()=>{(r.value[e]??null)?.draft||await n.get({id:e})}}},ce=(e={})=>{let{deviceId:n}=e,r=F().getStore(H),{firstLoad:i,semaphore:a}=u(r),o=n===void 0?void 0:typeof n==`string`?t(()=>n):n;return{channels:t(()=>r.findAll().filter(e=>!o?.value||e.device===o.value)),areLoading:t(()=>a.value.fetching.items.includes(o?.value??`all`)?!0:!i.value.includes(o?.value??`all`)&&a.value.fetching.items.includes(o?.value??`all`)),loaded:t(()=>i.value.includes(o?.value??`all`)),fetchChannels:async()=>{await r.fetch({deviceId:o?.value})}}},le=y({search:I().optional(),types:O(I()),state:C([`all`,`offline`,`online`]).default(`all`),states:O(A(P)),categories:O(A(E)),enabled:C([`all`,`enabled`,`disabled`]).default(`all`),validation:C([`all`,`valid`,`invalid`]).default(`all`)}),ue=y({search:I().optional(),devices:O(I()),categories:O(A(j))}),de=y({search:I().optional(),channels:O(I()),categories:O(A(S)),permissions:O(A(D)),dataTypes:O(A(h))}),Z={search:void 0,devices:[],categories:[]},fe={by:`name`,dir:`asc`},pe=(e={})=>{let{deviceId:n}=e,r=F().getStore(H),{firstLoad:i,semaphore:s}=u(r),{filters:c,sort:l,pagination:d,reset:f}=M({key:`${te}:channels:list`,filters:{schema:ue,defaults:Z},sort:{defaults:[fe]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),p=t(()=>c.value.search!==Z.search||!(0,q.isEqual)(c.value.devices,Z.devices)||!(0,q.isEqual)(c.value.categories,Z.categories)),m=a(d.value.size||10),h=a(d.value.page||1),g=a(l.value.length>0?l.value[0]?.by:void 0),_=a(l.value.length>0?l.value[0]?.dir??null:null),v=t(()=>B(r.findAll().filter(e=>!n||e.device===n).filter(e=>!e.draft&&(!c.value.search||e.id.toLowerCase().includes(c.value.search.toLowerCase())||e.name.toLowerCase().includes(c.value.search.toLowerCase())||e.description?.toLowerCase().includes(c.value.search.toLowerCase())||e.identifier?.toLowerCase().includes(c.value.search.toLowerCase()))&&(c.value.categories.length===0||c.value.categories.includes(e.category))&&(c.value.devices.length===0||c.value.devices.includes(e.device))),[e=>e[g.value]??``],[_.value===`asc`?`asc`:`desc`])),y=t(()=>{let e=(h.value-1)*m.value,t=e+m.value;return v.value.slice(e,t)}),b=async()=>{await r.fetch({deviceId:n})},x=t(()=>s.value.fetching.items.includes(n??`all`)?!0:!i.value.includes(n??`all`)&&s.value.fetching.items.includes(n??`all`)),S=t(()=>i.value.includes(n??`all`)),C=t(()=>r.findAll().filter(e=>!n||e.device===n).filter(e=>!e.draft).length);return o(()=>d.value,e=>{h.value=e.page??1,m.value=e.size??10},{deep:!0}),o(()=>h.value,e=>{d.value.page=e}),o(()=>m.value,e=>{d.value.size=e}),o(()=>_.value,e=>{g.value===void 0||e===null?l.value=[]:l.value=[{by:g.value,dir:e}]}),o(()=>g.value,e=>{e===void 0?l.value=[]:l.value=[{by:e,dir:_.value}]}),{channels:v,channelsPaginated:y,totalRows:C,areLoading:x,loaded:S,fetchChannels:b,filters:c,filtersActive:p,paginateSize:m,paginatePage:h,sortBy:g,sortDir:_,resetFilter:f}},me=()=>{let{t:e}=i(),t=k(),n=F().getStore(H),r=e=>n.findById(e);return{remove:async i=>{let a=r(i);if(a===null)throw new J(`Something went wrong, channel can't be loaded`);x.confirm(e(`devicesModule.texts.channels.confirmRemove`,{channel:a.name}),e(`devicesModule.headings.channels.remove`),{confirmButtonText:e(`devicesModule.buttons.yes.title`),cancelButtonText:e(`devicesModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await n.remove({id:a.id}),t.success(e(`devicesModule.messages.channels.removed`,{channel:a.name}))}catch(n){if(n instanceof Y&&n.code===404){let n=e(`devicesModule.messages.channels.notFound`,{channel:a.name});t.error(n)}else if(n instanceof Y&&n.code===422)t.error(n.message);else{let n=e(`devicesModule.messages.channels.notRemoved`,{channel:a.name});t.error(n)}}}).catch(()=>{t.info(e(`devicesModule.messages.channels.removeCanceled`,{channel:a.name}))})}}},he=({id:e})=>{let n=F().getStore(H);return{icon:t(()=>{switch(n.findById(e)?.category){case j.button:return`mdi:gesture-tap-button`;case j.binary_input:return`mdi:toggle-switch`;case j.analog_input:return`mdi:tune-vertical`;default:return`mdi:chip`}})}},ge={air_quality:{category:`air_quality`,constraints:{oneOrMoreOf:[[`aqi`,`level`]]},properties:{aqi:{category:`aqi`,required:!1,permissions:[`ro`],data_type:`ushort`,unit:null,format:[0,500]},level:{category:`level`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`excellent`,`good`,`fair`,`inferior`,`poor`,`unknown`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},air_particulate:{category:`air_particulate`,constraints:{oneOrMoreOf:[[`detected`,`concentration`]]},properties:{detected:{category:`detected`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},concentration:{category:`concentration`,required:!1,permissions:[`ro`],data_type:`float`,unit:`µg/m³`,format:[0,1e3]},mode:{category:`mode`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`pm1`,`pm2_5`,`pm10`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},carbon_dioxide:{category:`carbon_dioxide`,constraints:{oneOrMoreOf:[[`detected`,`concentration`]]},properties:{detected:{category:`detected`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},concentration:{category:`concentration`,required:!1,permissions:[`ro`],data_type:`float`,unit:`ppm`,format:[0,1e5]},peak_level:{category:`peak_level`,required:!1,permissions:[`ro`],data_type:`float`,unit:`ppm`,format:[0,1e5]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},carbon_monoxide:{category:`carbon_monoxide`,constraints:{oneOrMoreOf:[[`detected`,`concentration`]]},properties:{detected:{category:`detected`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},concentration:{category:`concentration`,required:!1,permissions:[`ro`],data_type:`float`,unit:`ppm`,format:[0,100]},peak_level:{category:`peak_level`,required:!1,permissions:[`ro`],data_type:`float`,unit:`ppm`,format:[0,100]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},flow:{category:`flow`,properties:{rate:{category:`rate`,required:!0,permissions:[`ro`],data_type:`float`,unit:`m³/h`,format:[0,65533]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},humidity:{category:`humidity`,properties:{humidity:{category:`humidity`,required:!0,permissions:[`ro`],data_type:`uchar`,unit:`%`,format:[0,100]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},illuminance:{category:`illuminance`,properties:{illuminance:{category:`illuminance`,required:!0,permissions:[`ro`],data_type:`float`,unit:`lx`,format:[0,1e5]},level:{category:`level`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`bright`,`moderate`,`dusky`,`dark`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},nitrogen_dioxide:{category:`nitrogen_dioxide`,constraints:{oneOrMoreOf:[[`detected`,`concentration`]]},properties:{detected:{category:`detected`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},concentration:{category:`concentration`,required:!1,permissions:[`ro`],data_type:`float`,unit:`µg/m³`,format:[0,1e5]},mode:{category:`mode`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`annual`,`1_hour`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},ozone:{category:`ozone`,constraints:{oneOrMoreOf:[[`detected`,`concentration`,`level`]],oneOf:[[`concentration`,`level`]]},properties:{detected:{category:`detected`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},concentration:{category:`concentration`,required:!1,permissions:[`ro`],data_type:`float`,unit:`µg/m³`,format:[0,1e5]},level:{category:`level`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`low`,`medium`,`high`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},pressure:{category:`pressure`,properties:{pressure:{category:`pressure`,required:!0,permissions:[`ro`],data_type:`float`,unit:`kPa`,format:[0,32767]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},sulphur_dioxide:{category:`sulphur_dioxide`,properties:{detected:{category:`detected`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},concentration:{category:`concentration`,required:!0,permissions:[`ro`],data_type:`float`,unit:`µg/m³`,format:[0,1e5]},level:{category:`level`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`low`,`medium`,`high`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},temperature:{category:`temperature`,properties:{temperature:{category:`temperature`,required:!0,permissions:[`ro`],data_type:`float`,unit:`°C`,format:[0,100]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},volatile_organic_compounds:{category:`volatile_organic_compounds`,constraints:{oneOrMoreOf:[[`detected`,`concentration`,`level`]],oneOf:[[`concentration`,`level`]]},properties:{detected:{category:`detected`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},concentration:{category:`concentration`,required:!1,permissions:[`ro`],data_type:`float`,unit:`µg/m³`,format:[0,1e3]},level:{category:`level`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`low`,`medium`,`high`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},alarm:{category:`alarm`,properties:{state:{category:`state`,required:!0,permissions:[`rw`],data_type:`enum`,unit:null,format:[`disarmed`,`armed_home`,`armed_away`,`armed_night`]},alarm_state:{category:`alarm_state`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`idle`,`pending`,`triggered`,`silenced`]},triggered:{category:`triggered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},siren:{category:`siren`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},fault_description:{category:`fault_description`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},last_event:{category:`last_event`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null}}},contact:{category:`contact`,properties:{detected:{category:`detected`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},gas:{category:`gas`,properties:{detected:{category:`detected`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},status:{category:`status`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`normal`,`warning`,`alarm`]},concentration:{category:`concentration`,required:!1,permissions:[`ro`],data_type:`uint`,unit:`ppm`,format:[0,65535]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},leak:{category:`leak`,properties:{detected:{category:`detected`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},level:{category:`level`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`low`,`medium`,`high`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},lock:{category:`lock`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},status:{category:`status`,required:!0,permissions:[`rw`],data_type:`enum`,unit:null,format:[`locked`,`unlocked`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},motion:{category:`motion`,properties:{detected:{category:`detected`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},distance:{category:`distance`,required:!1,permissions:[`ro`],data_type:`float`,unit:`m`,format:[0,100]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},occupancy:{category:`occupancy`,properties:{detected:{category:`detected`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},distance:{category:`distance`,required:!1,permissions:[`ro`],data_type:`float`,unit:`m`,format:[0,100]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},smoke:{category:`smoke`,properties:{detected:{category:`detected`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},cooler:{category:`cooler`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},temperature:{category:`temperature`,required:!0,permissions:[`rw`],data_type:`float`,unit:`°C`,format:[0,100]},status:{category:`status`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},dehumidifier:{category:`dehumidifier`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},humidity:{category:`humidity`,required:!0,permissions:[`rw`],data_type:`uchar`,unit:`%`,format:[0,100]},mode:{category:`mode`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`auto`,`manual`,`continuous`,`laundry`,`quiet`]},status:{category:`status`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`idle`,`dehumidifying`,`defrosting`]},water_tank_full:{category:`water_tank_full`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},water_tank_level:{category:`water_tank_level`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:`%`,format:[0,100]},defrost_active:{category:`defrost_active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},timer:{category:`timer`,required:!1,permissions:[`rw`],data_types:[{id:`duration`,data_type:`ushort`,unit:`s`,format:[0,86400],step:60,description:{en:`Timer duration in seconds (0-86400)`}},{id:`preset`,data_type:`enum`,format:[`off`,`30m`,`1h`,`2h`,`4h`,`8h`,`12h`],description:{en:`Preset timer intervals`}}]},locked:{category:`locked`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},door:{category:`door`,properties:{obstruction:{category:`obstruction`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},status:{category:`status`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`opened`,`closed`,`opening`,`closing`,`stopped`]},position:{category:`position`,required:!0,permissions:[`rw`],data_type:`enum`,unit:null,format:[`open`,`close`,`stop`]},type:{category:`type`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`door`,`garage`]},percentage:{category:`percentage`,required:!1,permissions:[`rw`],data_type:`uchar`,unit:null,format:[0,100]},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},fan:{category:`fan`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},swing:{category:`swing`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},speed:{category:`speed`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Speed as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`off`,`low`,`medium`,`high`,`turbo`,`auto`],description:{en:`Speed as discrete levels`}}]},mode:{category:`mode`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`auto`,`manual`,`eco`,`sleep`,`natural`,`turbo`]},direction:{category:`direction`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`clockwise`,`counter_clockwise`]},natural_breeze:{category:`natural_breeze`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},timer:{category:`timer`,required:!1,permissions:[`rw`],data_types:[{id:`duration`,data_type:`ushort`,unit:`s`,format:[0,86400],step:60,description:{en:`Timer duration in seconds (0-86400)`}},{id:`preset`,data_type:`enum`,format:[`off`,`30m`,`1h`,`2h`,`4h`,`8h`,`12h`],description:{en:`Preset timer intervals`}}]},locked:{category:`locked`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null}}},heater:{category:`heater`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},temperature:{category:`temperature`,required:!0,permissions:[`rw`],data_type:`float`,unit:`°C`,format:[0,100]},status:{category:`status`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},position:{category:`position`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Position as percentage (0-100%)`}},{id:`state`,data_type:`enum`,format:[`closed`,`quarter`,`half`,`three_quarter`,`open`],description:{en:`Position as discrete states`}}]}}},humidifier:{category:`humidifier`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},humidity:{category:`humidity`,required:!0,permissions:[`rw`],data_type:`uchar`,unit:`%`,format:[0,100]},mode:{category:`mode`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`auto`,`manual`,`sleep`,`baby`]},status:{category:`status`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`idle`,`humidifying`]},mist_level:{category:`mist_level`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Mist level as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`off`,`low`,`medium`,`high`],description:{en:`Mist level as discrete levels`}}]},warm_mist:{category:`warm_mist`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},water_tank_empty:{category:`water_tank_empty`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},water_tank_level:{category:`water_tank_level`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:`%`,format:[0,100]},timer:{category:`timer`,required:!1,permissions:[`rw`],data_types:[{id:`duration`,data_type:`ushort`,unit:`s`,format:[0,86400],step:60,description:{en:`Timer duration in seconds (0-86400)`}},{id:`preset`,data_type:`enum`,format:[`off`,`30m`,`1h`,`2h`,`4h`,`8h`,`12h`],description:{en:`Preset timer intervals`}}]},locked:{category:`locked`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},light:{category:`light`,constraints:{mutuallyExclusiveGroups:[[[`color_red`,`color_green`,`color_blue`],[`hue`,`saturation`]]]},properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},brightness:{category:`brightness`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Brightness as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`off`,`low`,`medium`,`high`,`full`],description:{en:`Brightness as discrete levels`}}]},color_red:{category:`color_red`,required:!1,permissions:[`rw`],data_type:`uchar`,unit:null,format:[0,255]},color_green:{category:`color_green`,required:!1,permissions:[`rw`],data_type:`uchar`,unit:null,format:[0,255]},color_blue:{category:`color_blue`,required:!1,permissions:[`rw`],data_type:`uchar`,unit:null,format:[0,255]},color_white:{category:`color_white`,required:!1,permissions:[`rw`],data_type:`uchar`,unit:null,format:[0,255]},color_temperature:{category:`color_temperature`,required:!1,permissions:[`rw`],data_type:`ushort`,unit:`K`,format:[2e3,1e4]},hue:{category:`hue`,required:!1,permissions:[`rw`],data_type:`ushort`,unit:`deg`,format:[0,360]},saturation:{category:`saturation`,required:!1,permissions:[`rw`],data_type:`uchar`,unit:`%`,format:[0,100]}}},outlet:{category:`outlet`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},in_use:{category:`in_use`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},robot_vacuum:{category:`robot_vacuum`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},status:{category:`status`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`idle`,`cleaning`,`vacuuming`,`mopping`,`docking`,`charging`]},mode:{category:`mode`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`auto`,`spot`,`manual`]},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},switcher:{category:`switcher`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},child_lock:{category:`child_lock`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},timer:{category:`timer`,required:!1,permissions:[`rw`],data_types:[{id:`duration`,data_type:`ushort`,unit:`s`,format:[0,86400],step:60,description:{en:`Timer duration in seconds (0-86400)`}},{id:`preset`,data_type:`enum`,format:[`off`,`30m`,`1h`,`2h`,`4h`,`8h`,`12h`],description:{en:`Preset timer intervals`}}]}}},thermostat:{category:`thermostat`,properties:{floor_temperature:{category:`floor_temperature`,required:!1,permissions:[`ro`],data_type:`float`,unit:`°C`,format:null},locked:{category:`locked`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null}}},valve:{category:`valve`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},type:{category:`type`,required:!0,permissions:[`rw`],data_type:`enum`,unit:null,format:[`generic`,`irrigation`,`shower_head`,`water_faucet`]},duration:{category:`duration`,required:!1,permissions:[`rw`],data_type:`ushort`,unit:`s`,format:[0,3600]},remaining:{category:`remaining`,required:!1,permissions:[`ro`],data_type:`ushort`,unit:`s`,format:[0,3600]},mode:{category:`mode`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`manual`,`scheduled`]},position:{category:`position`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Position as percentage (0-100%)`}},{id:`state`,data_type:`enum`,format:[`closed`,`quarter`,`half`,`three_quarter`,`open`],description:{en:`Position as discrete states`}}]},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},window_covering:{category:`window_covering`,properties:{status:{category:`status`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`opened`,`closed`,`opening`,`closing`,`stopped`]},position:{category:`position`,required:!0,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Position as percentage (0-100%)`}},{id:`state`,data_type:`enum`,format:[`closed`,`quarter`,`half`,`three_quarter`,`open`],description:{en:`Position as discrete states`}}]},type:{category:`type`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`curtain`,`roller`,`blind`,`venetian_blind`,`vertical_blind`,`shutter`,`outdoor_blind`,`awning`]},command:{category:`command`,required:!0,permissions:[`wo`],data_type:`enum`,unit:null,format:[`open`,`close`,`stop`]},obstruction:{category:`obstruction`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},tilt:{category:`tilt`,required:!1,permissions:[`rw`],data_types:[{id:`angle`,data_type:`float`,unit:`°`,format:[-90,90],description:{en:`Explicit native tilt angle in degrees`}},{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Native slat opening percentage, never converted to an inferred angle`}}]},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},battery:{category:`battery`,properties:{percentage:{category:`percentage`,required:!0,permissions:[`ro`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Battery as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`critical`,`low`,`medium`,`high`,`full`],description:{en:`Battery as discrete levels`}}]},status:{category:`status`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`ok`,`low`,`charging`]},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},electrical_energy:{category:`electrical_energy`,properties:{consumption:{category:`consumption`,required:!0,permissions:[`ro`],data_type:`float`,unit:`kWh`,format:[0,null],measurement_kind:`cumulative`,reset_behavior:`unknown`},average_power:{category:`average_power`,required:!1,permissions:[`ro`],data_type:`float`,unit:`W`,format:[0,1e5],measurement_kind:`interval_average`},grid_import:{category:`grid_import`,required:!1,permissions:[`ro`],data_type:`float`,unit:`kWh`,format:[0,null],measurement_kind:`cumulative`,reset_behavior:`unknown`},grid_export:{category:`grid_export`,required:!1,permissions:[`ro`],data_type:`float`,unit:`kWh`,format:[0,null],measurement_kind:`cumulative`,reset_behavior:`unknown`},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},electrical_generation:{category:`electrical_generation`,properties:{production:{category:`production`,required:!0,permissions:[`ro`],data_type:`float`,unit:`kWh`,format:[0,null],measurement_kind:`cumulative`,reset_behavior:`unknown`},power:{category:`power`,required:!1,permissions:[`ro`],data_type:`float`,unit:`W`,format:[0,1e5],measurement_kind:`instantaneous`},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},electrical_power:{category:`electrical_power`,properties:{power:{category:`power`,required:!0,permissions:[`ro`],data_type:`float`,unit:`W`,format:[0,1e4],measurement_kind:`instantaneous`},voltage:{category:`voltage`,required:!1,permissions:[`ro`],data_type:`float`,unit:`V`,format:[0,500],measurement_kind:`instantaneous`},current:{category:`current`,required:!1,permissions:[`ro`],data_type:`float`,unit:`A`,format:[0,100],measurement_kind:`instantaneous`},frequency:{category:`frequency`,required:!1,permissions:[`ro`],data_type:`float`,unit:`Hz`,format:[40,70],measurement_kind:`instantaneous`},over_current:{category:`over_current`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},over_voltage:{category:`over_voltage`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},over_power:{category:`over_power`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},camera:{category:`camera`,properties:{status:{category:`status`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`available`,`in_use`,`unavailable`,`offline`,`initializing`,`error`]},source:{category:`source`,required:!0,permissions:[`ro`],data_type:`string`,unit:null,format:null},zoom:{category:`zoom`,required:!1,permissions:[`rw`],data_type:`float`,unit:null,format:[1,10]},pan:{category:`pan`,required:!1,permissions:[`rw`],data_type:`float`,unit:`°`,format:[-180,180]},tilt:{category:`tilt`,required:!1,permissions:[`rw`],data_type:`float`,unit:`°`,format:[-90,90]},infrared:{category:`infrared`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},doorbell:{category:`doorbell`,properties:{event:{category:`event`,required:!0,permissions:[`ro`],data_type:`enum`,unit:null,format:[`single_press`,`double_press`,`long_press`]},brightness:{category:`brightness`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Brightness as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`off`,`low`,`medium`,`high`,`full`],description:{en:`Brightness as discrete levels`}}]},tampered:{category:`tampered`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},media_input:{category:`media_input`,properties:{source:{category:`source`,required:!0,permissions:[`rw`],data_types:[{id:`standard`,data_type:`enum`,unit:null,format:`hdmi1.hdmi2.hdmi3.hdmi4.hdmi5.hdmi6.arc.earc.tv.cable.satellite.antenna.av1.av2.component.vga.dvi.usb.bluetooth.wifi.airplay.cast.dlna.miracast.app_netflix.app_youtube.app_spotify.app_prime_video.app_disney_plus.app_hbo_max.app_apple_tv.app_plex.app_kodi.other`.split(`.`),step:null,description:{en:`Standardized input/source identifier (recommended for UI).`}},{id:`custom`,data_type:`string`,unit:null,format:null,step:null,description:{en:`Integration-specific input/source value (fallback).`}}]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},source_label:{category:`source_label`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null}}},media_playback:{category:`media_playback`,properties:{status:{category:`status`,required:!0,permissions:[`rw`],data_type:`enum`,unit:null,format:[`playing`,`paused`,`stopped`]},track:{category:`track`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},duration:{category:`duration`,required:!1,permissions:[`ro`],data_type:`uint`,unit:`s`,format:[0,86400]},position:{category:`position`,required:!1,permissions:[`rw`],data_type:`uint`,unit:`s`,format:[0,86400]},shuffle:{category:`shuffle`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},repeat:{category:`repeat`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`off`,`one`,`all`]},command:{category:`command`,required:!1,permissions:[`wo`],data_type:`enum`,unit:null,format:[`play`,`pause`,`stop`,`next`,`previous`,`rewind`,`fast_forward`]},artist:{category:`artist`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},album:{category:`album`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},artwork_url:{category:`artwork_url`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},media_type:{category:`media_type`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`music`,`tvshow`,`movie`,`video`,`playlist`,`podcast`,`audiobook`,`radio`,`unknown`]}}},microphone:{category:`microphone`,properties:{active:{category:`active`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},volume:{category:`volume`,required:!1,permissions:[`ro`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Volume as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`mute`,`low`,`medium`,`high`,`max`],description:{en:`Volume as discrete levels`}}]}}},speaker:{category:`speaker`,properties:{active:{category:`active`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},volume:{category:`volume`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Volume as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`mute`,`low`,`medium`,`high`,`max`],description:{en:`Volume as discrete levels`}}]},mode:{category:`mode`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`stereo`,`mono`,`surround`]},mute:{category:`mute`,required:!1,permissions:[`rw`],data_type:`bool`,unit:null,format:null},balance:{category:`balance`,required:!1,permissions:[`rw`],data_type:`float`,unit:null,format:[-1,1]},bass:{category:`bass`,required:!1,permissions:[`rw`],data_type:`float`,unit:null,format:[-10,10]},treble:{category:`treble`,required:!1,permissions:[`rw`],data_type:`float`,unit:null,format:[-10,10]}}},television:{category:`television`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},brightness:{category:`brightness`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Brightness as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`off`,`low`,`medium`,`high`,`full`],description:{en:`Brightness as discrete levels`}}]},remote_key:{category:`remote_key`,required:!1,permissions:[`wo`],data_type:`enum`,unit:null,format:[`rewind`,`fast_forward`,`next`,`previous`,`arrow_up`,`arrow_down`,`arrow_left`,`arrow_right`,`select`,`back`,`exit`,`info`,`play`,`pause`]}}},projector:{category:`projector`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},brightness:{category:`brightness`,required:!1,permissions:[`rw`],data_types:[{id:`percentage`,data_type:`uchar`,unit:`%`,format:[0,100],step:1,description:{en:`Brightness as percentage (0-100%)`}},{id:`level`,data_type:`enum`,format:[`off`,`low`,`medium`,`high`,`full`],description:{en:`Brightness as discrete levels`}}]},remote_key:{category:`remote_key`,required:!1,permissions:[`wo`],data_type:`enum`,unit:null,format:[`rewind`,`fast_forward`,`next`,`previous`,`arrow_up`,`arrow_down`,`arrow_left`,`arrow_right`,`select`,`back`,`exit`,`info`,`play`,`pause`]}}},device_information:{category:`device_information`,properties:{manufacturer:{category:`manufacturer`,required:!0,permissions:[`ro`],data_type:`string`,unit:null,format:null},model:{category:`model`,required:!0,permissions:[`ro`],data_type:`string`,unit:null,format:null},serial_number:{category:`serial_number`,required:!0,permissions:[`ro`],data_type:`string`,unit:null,format:null},firmware_revision:{category:`firmware_revision`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},hardware_revision:{category:`hardware_revision`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},link_quality:{category:`link_quality`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:`%`,format:[0,100]},connection_type:{category:`connection_type`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`wired`,`wifi`,`zigbee`,`bluetooth`]},status:{category:`status`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`connected`,`disconnected`,`init`,`ready`,`running`,`sleeping`,`stopped`,`lost`,`alert`,`unknown`]},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},filter:{category:`filter`,properties:{life_remaining:{category:`life_remaining`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:`%`,format:[0,100]},status:{category:`status`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`good`,`replace_soon`,`replace_now`]},change_needed:{category:`change_needed`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},reset:{category:`reset`,required:!1,permissions:[`wo`],data_type:`bool`,unit:null,format:null},fault:{category:`fault`,required:!1,permissions:[`ro`],data_type:`uchar`,unit:null,format:[0,255]}}},button:{category:`button`,properties:{event:{category:`event`,required:!0,permissions:[`ev`],data_type:`enum`,unit:null,format:[`press`,`long_press`,`double_press`,`triple_press`,`down`,`up`]},detected:{category:`detected`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},binary_input:{category:`binary_input`,properties:{state:{category:`state`,required:!0,permissions:[`ro`],data_type:`bool`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},analog_input:{category:`analog_input`,properties:{value:{category:`value`,required:!0,permissions:[`ro`],data_type:`float`,unit:null,format:null},unit:{category:`unit`,required:!1,permissions:[`ro`],data_type:`string`,unit:null,format:null},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},indicator:{category:`indicator`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},brightness:{category:`brightness`,required:!1,permissions:[`rw`],data_type:`uchar`,unit:null,format:[0,255]},color:{category:`color_red`,required:!1,permissions:[`rw`],data_type:`enum`,unit:null,format:[`red`,`green`,`blue`,`yellow`,`white`,`off`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},buzzer:{category:`buzzer`,properties:{on:{category:`on`,required:!0,permissions:[`rw`],data_type:`bool`,unit:null,format:null},frequency:{category:`frequency`,required:!1,permissions:[`rw`],data_type:`uint`,unit:`Hz`,format:[100,1e4]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},accelerometer:{category:`accelerometer`,properties:{acceleration_x:{category:`acceleration_x`,required:!0,permissions:[`ro`],data_type:`float`,unit:`g`,format:[-16,16],step:.001},acceleration_y:{category:`acceleration_y`,required:!0,permissions:[`ro`],data_type:`float`,unit:`g`,format:[-16,16],step:.001},acceleration_z:{category:`acceleration_z`,required:!0,permissions:[`ro`],data_type:`float`,unit:`g`,format:[-16,16],step:.001},orientation:{category:`orientation`,required:!1,permissions:[`ro`],data_type:`enum`,unit:null,format:[`landscape`,`portrait`,`landscape_inverted`,`portrait_inverted`,`face_up`,`face_down`]},active:{category:`active`,required:!1,permissions:[`ro`],data_type:`bool`,unit:null,format:null}}},generic:{category:`generic`,properties:{generic:{category:`generic`,required:!1}}}},_e={generic:{category:`generic`,channels:{generic:{category:`generic`,required:!1,multiple:!0},device_information:{category:`device_information`,required:!0,multiple:!1},button:{category:`button`,required:!1,multiple:!0},binary_input:{category:`binary_input`,required:!1,multiple:!0},analog_input:{category:`analog_input`,required:!1,multiple:!0}}},air_conditioner:{category:`air_conditioner`,channels:{cooler:{category:`cooler`,required:!0,multiple:!1},fan:{category:`fan`,required:!0,multiple:!1},temperature:{category:`temperature`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},heater:{category:`heater`,required:!1,multiple:!1},humidity:{category:`humidity`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},filter:{category:`filter`,required:!1,multiple:!1},button:{category:`button`,required:!1,multiple:!0},binary_input:{category:`binary_input`,required:!1,multiple:!0},analog_input:{category:`analog_input`,required:!1,multiple:!0}}},air_dehumidifier:{category:`air_dehumidifier`,channels:{dehumidifier:{category:`dehumidifier`,required:!0,multiple:!1},humidity:{category:`humidity`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},fan:{category:`fan`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},temperature:{category:`temperature`,required:!1,multiple:!1}}},air_humidifier:{category:`air_humidifier`,channels:{humidifier:{category:`humidifier`,required:!0,multiple:!1},humidity:{category:`humidity`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},fan:{category:`fan`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},temperature:{category:`temperature`,required:!1,multiple:!1}}},air_purifier:{category:`air_purifier`,channels:{fan:{category:`fan`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},air_quality:{category:`air_quality`,required:!1,multiple:!1},filter:{category:`filter`,required:!1,multiple:!1},air_particulate:{category:`air_particulate`,required:!1,multiple:!1},carbon_dioxide:{category:`carbon_dioxide`,required:!1,multiple:!1},carbon_monoxide:{category:`carbon_monoxide`,required:!1,multiple:!1},humidity:{category:`humidity`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},nitrogen_dioxide:{category:`nitrogen_dioxide`,required:!1,multiple:!1},ozone:{category:`ozone`,required:!1,multiple:!1},pressure:{category:`pressure`,required:!1,multiple:!1},sulphur_dioxide:{category:`sulphur_dioxide`,required:!1,multiple:!1},temperature:{category:`temperature`,required:!1,multiple:!1},volatile_organic_compounds:{category:`volatile_organic_compounds`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1}}},thermostat:{category:`thermostat`,channels:{temperature:{category:`temperature`,required:!0,multiple:!1},thermostat:{category:`thermostat`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1},cooler:{category:`cooler`,required:!1,multiple:!1},heater:{category:`heater`,required:!1,multiple:!1},humidity:{category:`humidity`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},button:{category:`button`,required:!1,multiple:!0},binary_input:{category:`binary_input`,required:!1,multiple:!0},analog_input:{category:`analog_input`,required:!1,multiple:!0}}},alarm:{category:`alarm`,channels:{alarm:{category:`alarm`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1}}},camera:{category:`camera`,channels:{camera:{category:`camera`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1},humidity:{category:`humidity`,required:!1,multiple:!1},light:{category:`light`,required:!1,multiple:!1},microphone:{category:`microphone`,required:!1,multiple:!1},motion:{category:`motion`,required:!1,multiple:!1},speaker:{category:`speaker`,required:!1,multiple:!1},temperature:{category:`temperature`,required:!1,multiple:!1}}},doorbell:{category:`doorbell`,channels:{doorbell:{category:`doorbell`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1},camera:{category:`camera`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1},light:{category:`light`,required:!1,multiple:!1},lock:{category:`lock`,required:!1,multiple:!1},microphone:{category:`microphone`,required:!1,multiple:!1},motion:{category:`motion`,required:!1,multiple:!1},speaker:{category:`speaker`,required:!1,multiple:!1}}},door:{category:`door`,channels:{door:{category:`door`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1},lock:{category:`lock`,required:!1,multiple:!1},motion:{category:`motion`,required:!1,multiple:!1}}},lock:{category:`lock`,channels:{lock:{category:`lock`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1},motion:{category:`motion`,required:!1,multiple:!1}}},fan:{category:`fan`,channels:{fan:{category:`fan`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},button:{category:`button`,required:!1,multiple:!0},binary_input:{category:`binary_input`,required:!1,multiple:!0},analog_input:{category:`analog_input`,required:!1,multiple:!0}}},heating_unit:{category:`heating_unit`,channels:{heater:{category:`heater`,required:!0,multiple:!1},temperature:{category:`temperature`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},humidity:{category:`humidity`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1}}},water_heater:{category:`water_heater`,channels:{heater:{category:`heater`,required:!0,multiple:!1},temperature:{category:`temperature`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1}}},input_controller:{category:`input_controller`,constraints:{oneOrMoreOf:[[`button`,`binary_input`,`analog_input`]]},channels:{device_information:{category:`device_information`,required:!0,multiple:!1},button:{category:`button`,required:!1,multiple:!0},binary_input:{category:`binary_input`,required:!1,multiple:!0},analog_input:{category:`analog_input`,required:!1,multiple:!0},battery:{category:`battery`,required:!1,multiple:!1}}},lighting:{category:`lighting`,channels:{light:{category:`light`,required:!0,multiple:!0},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},illuminance:{category:`illuminance`,required:!1,multiple:!1},button:{category:`button`,required:!1,multiple:!0},binary_input:{category:`binary_input`,required:!1,multiple:!0},analog_input:{category:`analog_input`,required:!1,multiple:!0},temperature:{category:`temperature`,required:!1,multiple:!0}}},outlet:{category:`outlet`,channels:{outlet:{category:`outlet`,required:!0,multiple:!0},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},button:{category:`button`,required:!1,multiple:!0},binary_input:{category:`binary_input`,required:!1,multiple:!0},analog_input:{category:`analog_input`,required:!1,multiple:!0},temperature:{category:`temperature`,required:!1,multiple:!0}}},pump:{category:`pump`,channels:{flow:{category:`flow`,required:!1,multiple:!1},switcher:{category:`switcher`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},pressure:{category:`pressure`,required:!1,multiple:!1}}},sprinkler:{category:`sprinkler`,channels:{valve:{category:`valve`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},flow:{category:`flow`,required:!1,multiple:!1},humidity:{category:`humidity`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},pressure:{category:`pressure`,required:!1,multiple:!1}}},switcher:{category:`switcher`,constraints:{oneOrMoreOf:[[`outlet`,`switcher`]],mutuallyExclusiveGroups:[[[`outlet`],[`switcher`]]]},channels:{outlet:{category:`outlet`,required:!1,multiple:!0},switcher:{category:`switcher`,required:!1,multiple:!0},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},button:{category:`button`,required:!1,multiple:!0},binary_input:{category:`binary_input`,required:!1,multiple:!0},analog_input:{category:`analog_input`,required:!1,multiple:!0},temperature:{category:`temperature`,required:!1,multiple:!0}}},valve:{category:`valve`,channels:{valve:{category:`valve`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},flow:{category:`flow`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},pressure:{category:`pressure`,required:!1,multiple:!1}}},window_covering:{category:`window_covering`,channels:{window_covering:{category:`window_covering`,required:!0,multiple:!0},device_information:{category:`device_information`,required:!0,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},button:{category:`button`,required:!1,multiple:!0},binary_input:{category:`binary_input`,required:!1,multiple:!0},analog_input:{category:`analog_input`,required:!1,multiple:!0}}},media:{category:`media`,channels:{switcher:{category:`switcher`,required:!1,multiple:!1},media_input:{category:`media_input`,required:!1,multiple:!1},media_playback:{category:`media_playback`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},microphone:{category:`microphone`,required:!1,multiple:!1},speaker:{category:`speaker`,required:!1,multiple:!1}}},speaker:{category:`speaker`,channels:{switcher:{category:`switcher`,required:!1,multiple:!1},speaker:{category:`speaker`,required:!0,multiple:!0},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},media_input:{category:`media_input`,required:!1,multiple:!1},media_playback:{category:`media_playback`,required:!1,multiple:!1}}},television:{category:`television`,channels:{speaker:{category:`speaker`,required:!0,multiple:!1},television:{category:`television`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},media_playback:{category:`media_playback`,required:!1,multiple:!1},media_input:{category:`media_input`,required:!1,multiple:!1}}},projector:{category:`projector`,channels:{projector:{category:`projector`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},speaker:{category:`speaker`,required:!1,multiple:!1},media_playback:{category:`media_playback`,required:!1,multiple:!1},media_input:{category:`media_input`,required:!1,multiple:!1}}},av_receiver:{category:`av_receiver`,channels:{switcher:{category:`switcher`,required:!1,multiple:!1},speaker:{category:`speaker`,required:!0,multiple:!0},media_input:{category:`media_input`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},media_playback:{category:`media_playback`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1}}},set_top_box:{category:`set_top_box`,channels:{switcher:{category:`switcher`,required:!1,multiple:!1},media_playback:{category:`media_playback`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},media_input:{category:`media_input`,required:!1,multiple:!1},speaker:{category:`speaker`,required:!1,multiple:!1}}},game_console:{category:`game_console`,channels:{switcher:{category:`switcher`,required:!1,multiple:!1},media_playback:{category:`media_playback`,required:!1,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1}}},streaming_service:{category:`streaming_service`,channels:{media_playback:{category:`media_playback`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1}}},robot_vacuum:{category:`robot_vacuum`,channels:{battery:{category:`battery`,required:!0,multiple:!1},robot_vacuum:{category:`robot_vacuum`,required:!0,multiple:!1},device_information:{category:`device_information`,required:!0,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},filter:{category:`filter`,required:!1,multiple:!1}}},sensor:{category:`sensor`,channels:{device_information:{category:`device_information`,required:!0,multiple:!1},air_particulate:{category:`air_particulate`,required:!1,multiple:!1},battery:{category:`battery`,required:!1,multiple:!1},carbon_dioxide:{category:`carbon_dioxide`,required:!1,multiple:!1},carbon_monoxide:{category:`carbon_monoxide`,required:!1,multiple:!1},gas:{category:`gas`,required:!1,multiple:!1},contact:{category:`contact`,required:!1,multiple:!1},humidity:{category:`humidity`,required:!1,multiple:!1},illuminance:{category:`illuminance`,required:!1,multiple:!1},leak:{category:`leak`,required:!1,multiple:!1},motion:{category:`motion`,required:!1,multiple:!1},nitrogen_dioxide:{category:`nitrogen_dioxide`,required:!1,multiple:!1},occupancy:{category:`occupancy`,required:!1,multiple:!1},ozone:{category:`ozone`,required:!1,multiple:!1},pressure:{category:`pressure`,required:!1,multiple:!1},smoke:{category:`smoke`,required:!1,multiple:!1},sulphur_dioxide:{category:`sulphur_dioxide`,required:!1,multiple:!1},temperature:{category:`temperature`,required:!1,multiple:!1},volatile_organic_compounds:{category:`volatile_organic_compounds`,required:!1,multiple:!1},electrical_energy:{category:`electrical_energy`,required:!1,multiple:!1},electrical_power:{category:`electrical_power`,required:!1,multiple:!1},analog_input:{category:`analog_input`,required:!1,multiple:!0}}},terminal:{category:`terminal`,channels:{device_information:{category:`device_information`,required:!0,multiple:!1},button:{category:`button`,required:!1,multiple:!0},indicator:{category:`indicator`,required:!1,multiple:!0},buzzer:{category:`buzzer`,required:!1,multiple:!1},illuminance:{category:`illuminance`,required:!1,multiple:!1},accelerometer:{category:`accelerometer`,required:!1,multiple:!1},binary_input:{category:`binary_input`,required:!1,multiple:!0},switcher:{category:`switcher`,required:!1,multiple:!0},temperature:{category:`temperature`,required:!1,multiple:!1}}}},ve={[E.generic]:[],[E.air_conditioner]:[j.cooler,j.heater,j.fan,j.temperature,j.humidity,j.electrical_energy,j.electrical_power,j.leak,j.device_information],[E.air_dehumidifier]:[j.cooler,j.fan,j.temperature,j.humidity,j.electrical_energy,j.electrical_power,j.leak,j.device_information],[E.air_humidifier]:[j.humidity,j.switcher,j.temperature,j.fan,j.electrical_energy,j.electrical_power,j.leak,j.device_information],[E.air_purifier]:[j.fan,j.air_particulate,j.carbon_dioxide,j.carbon_monoxide,j.humidity,j.leak,j.nitrogen_dioxide,j.ozone,j.pressure,j.sulphur_dioxide,j.temperature,j.volatile_organic_compounds,j.electrical_energy,j.electrical_power,j.device_information],[E.alarm]:[j.alarm,j.device_information],[E.camera]:[j.camera,j.motion,j.microphone,j.speaker,j.contact,j.light,j.temperature,j.humidity,j.battery,j.device_information],[E.door]:[j.door,j.lock,j.contact,j.motion,j.battery,j.device_information],[E.doorbell]:[j.doorbell,j.camera,j.lock,j.motion,j.microphone,j.speaker,j.contact,j.light,j.battery,j.device_information],[E.fan]:[j.fan,j.electrical_energy,j.electrical_power,j.device_information],[E.heating_unit]:[j.heater,j.temperature,j.humidity,j.electrical_energy,j.electrical_power,j.device_information],[E.input_controller]:[j.button,j.binary_input,j.analog_input,j.battery,j.device_information],[E.lighting]:[j.light,j.button,j.binary_input,j.illuminance,j.electrical_energy,j.electrical_power,j.device_information],[E.lock]:[j.lock,j.contact,j.motion,j.battery,j.device_information],[E.media]:[j.media_input,j.media_playback,j.microphone,j.speaker,j.device_information],[E.av_receiver]:[j.media_input,j.media_playback,j.speaker,j.device_information],[E.game_console]:[j.media_playback,j.media_input,j.device_information],[E.projector]:[j.projector,j.speaker,j.media_playback,j.media_input,j.device_information],[E.set_top_box]:[j.media_input,j.media_playback,j.device_information],[E.streaming_service]:[j.media_playback,j.device_information],[E.outlet]:[j.outlet,j.electrical_energy,j.electrical_power,j.device_information],[E.pump]:[j.flow,j.switcher,j.leak,j.pressure,j.electrical_energy,j.electrical_power,j.device_information],[E.robot_vacuum]:[j.robot_vacuum,j.electrical_energy,j.electrical_power,j.leak,j.battery,j.device_information],[E.sensor]:[j.air_particulate,j.battery,j.carbon_dioxide,j.carbon_monoxide,j.contact,j.humidity,j.illuminance,j.leak,j.motion,j.nitrogen_dioxide,j.occupancy,j.ozone,j.pressure,j.smoke,j.sulphur_dioxide,j.temperature,j.volatile_organic_compounds,j.device_information],[E.speaker]:[j.speaker,j.media_input,j.media_playback,j.electrical_energy,j.electrical_power,j.device_information],[E.sprinkler]:[j.valve,j.flow,j.pressure,j.leak,j.humidity,j.electrical_energy,j.electrical_power,j.device_information],[E.switcher]:[j.switcher,j.button,j.binary_input,j.electrical_energy,j.electrical_power,j.device_information],[E.television]:[j.television,j.speaker,j.media_playback,j.media_input,j.device_information],[E.terminal]:[j.button,j.indicator,j.buzzer,j.illuminance,j.accelerometer,j.temperature,j.contact,j.switcher,j.device_information],[E.thermostat]:[j.thermostat,j.cooler,j.heater,j.temperature,j.humidity,j.contact,j.electrical_energy,j.electrical_power,j.device_information],[E.valve]:[j.valve,j.pressure,j.flow,j.leak,j.battery,j.electrical_energy,j.electrical_power,j.device_information],[E.water_heater]:[j.heater,j.temperature,j.leak,j.electrical_energy,j.electrical_power,j.device_information],[E.window_covering]:[j.window_covering,j.battery,j.electrical_energy,j.electrical_power,j.device_information]},ye=Object.fromEntries(Object.entries(_e).map(([e,t])=>{let n=Object.values(t.channels).map(e=>e.category),r=ve[e];return[e,r?[...n].sort((e,t)=>{let n=r.indexOf(e),i=r.indexOf(t);return n===-1&&i===-1?0:n===-1?1:i===-1?-1:n-i}):n]})),be=Object.fromEntries(Object.entries(_e).map(([e,t])=>[e,{required:Object.values(t.channels).filter(e=>e.required).map(e=>e.category),optional:Object.values(t.channels).filter(e=>!e.required).map(e=>e.category),multiple:Object.values(t.channels).filter(e=>e.multiple).map(e=>e.category)}])),xe=Object.fromEntries(Object.entries(ge).map(([e,t])=>[e,{required:Object.values(t.properties).filter(e=>e.required).map(e=>e.category),optional:Object.values(t.properties).filter(e=>!e.required).map(e=>e.category)}])),Se=(e,t)=>{let n=ge[e];if(!n)return;let r=Object.values(n.properties).find(e=>e.category===t);if(!r)return;let i=r.data_types?.[0];if(i)return{category:r.category,required:r.required,description:i.description??r.description??{en:``},permissions:r.permissions,data_type:i.data_type,unit:i.unit??null,format:i.format??null,invalid:r.invalid,step:i.step??null};if(r.data_type)return{category:r.category,required:r.required,description:r.description??{en:``},permissions:r.permissions,data_type:r.data_type,unit:r.unit??null,format:r.format??null,invalid:r.invalid,step:r.step??null}},Ce=({id:e})=>{let n=F(),r=n.getStore(H),i=n.getStore(W),a=e=>r.findById(e),o=e=>xe[e.category]??null;return{canAddAnotherProperty:t(()=>{let t=a(e);if(t===null)return!0;let{required:n,optional:r}=o(t)??{required:[],optional:[]},s=[...n,...r],c=i.findForChannel(t.id).map(e=>e.category);return s.filter(e=>!c.includes(e)).length>0}),missingRequiredProperties:t(()=>{let t=a(e);if(t===null)throw new J(`Something went wrong, channel can't be loaded`);let{required:n}=o(t)??{required:[]},r=i.findForChannel(t.id).map(e=>e.category);return n.filter(e=>!r.includes(e))})}},we=y({id:I().uuid().optional(),type:I().trim().nonempty(),device:I().uuid().optional(),category:A(j).default(j.generic),identifier:I().trim().nonempty().nullable().optional(),name:I().trim().nonempty(),description:I().trim().transform(e=>e===``?null:e).nullable().optional()}),Te=y({id:I().uuid(),type:I().trim().nonempty(),device:I().uuid(),category:A(j).default(j.generic),identifier:I().trim().nonempty().nullable().optional(),name:I().trim().nonempty().optional(),description:I().trim().transform(e=>e===``?null:e).nullable().optional()}),Ee=({type:e})=>{let{getByType:n}=oe(),r=t(()=>n(e));return{plugin:r,element:t(()=>(r.value?.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`))))}},De=()=>{let e=F().getStore(U),{firstLoad:n,semaphore:r}=u(e);return{devices:t(()=>e.findAll().filter(e=>!e.draft&&!e.hidden)),areLoading:t(()=>r.value.fetching.items),loaded:t(()=>n.value),fetchDevices:async()=>{await e.fetch()}}},Oe=({id:n,type:r,deviceId:c})=>{let l=F(),{element:u}=Ee({type:r}),d=l.getStore(H),{devices:f,fetchDevices:m,areLoading:h}=De(),{t:g}=i(),_=k(),v=p(),y=a(K.NONE),b,x=t(()=>D.device?f.value.find(e=>e.id===D.device)??null:null),S=t(()=>x.value?d.findForDevice(x.value.id).map(e=>e.category):[]),C=t(()=>x.value?be[x.value.category]??null:null),T=t(()=>C.value===null?[]:Object.values(j).filter(e=>C.value?.required.includes(e)||C.value?.optional.includes(e)).filter(e=>!S.value.includes(e)||C.value?.multiple?.includes(e)).map(e=>({value:e,label:g(`devicesModule.categories.channels.${e}`)}))),E=t(()=>f.value.filter(e=>e.type===r).map(e=>({value:e.id,label:e.name}))),D=e({...z(u.value?.schemas?.channelAddFormSchema||we),id:n,type:r,device:c,category:j.generic,name:``,description:``}),O=w(s(D)),A=a(void 0),M=a(!1),N=async()=>{if(A.value.clearValidate(),!await A.value.validate())throw new X(`Form not valid`);let e=c??D.device;if(!e)throw new X(`Missing device identifier`);if(!D.category)throw new X(`Missing data type definition`);let t=(u.value?.schemas?.channelAddFormSchema||we).safeParse(D);if(!t.success)throw v.error(`Schema validation failed with:`,t.error),new X(`Failed to validate create channel model.`);y.value=K.WORKING;let i=g(`devicesModule.messages.channels.notCreated`,{device:D.name});try{await d.add({id:n,deviceId:e,draft:!1,data:{...t.data,type:r}})}catch(e){throw y.value=K.ERROR,b=window.setTimeout(P,2e3),e instanceof Y&&e.code===422?_.error(e.message):_.error(i),e}return y.value=K.OK,b=window.setTimeout(P,2e3),_.success(g(`devicesModule.messages.channels.created`,{device:D.name})),`added`},P=()=>{window.clearTimeout(b),y.value=K.NONE};return m().catch(()=>{}),o(D,()=>{M.value=!(0,q.isEqual)(s(D),O)}),o(()=>T.value,e=>{e.length&&e[0]&&(D.category=e[0].value,O.category=e[0].value)},{immediate:!0}),{categoriesOptions:T,devicesOptions:E,model:D,formEl:A,formChanged:M,submit:N,clear:P,formResult:y,loadingDevices:h}},ke=({channel:n,messages:r})=>{let c=F(),{element:l}=Ee({type:n.type}),u=c.getStore(H),{devices:d,fetchDevices:f,areLoading:m}=De(),{t:h}=i(),g=k(),_=p(),v=a(K.NONE),y,b=t(()=>d.value.find(e=>e.id===n.device)??null),x=t(()=>b.value?u.findForDevice(b.value.id).filter(e=>e.id!==n.id).map(e=>e.category):[]),S=t(()=>b.value?be[b.value.category]??null:null),C=t(()=>S.value===null?[]:Object.values(j).filter(e=>S.value?.required.includes(e)||S.value?.optional.includes(e)).filter(e=>!x.value.includes(e)||S.value?.multiple?.includes(e)).map(e=>({value:e,label:h(`devicesModule.categories.channels.${e}`)}))),T=t(()=>d.value.map(e=>({value:e.id,label:e.name}))),E=e(n),D=w(s(E)),O=a(void 0),A=a(!1),M=async()=>{let e=n.draft,t=r&&r.error?r.error:n.draft?h(`devicesModule.messages.channels.notCreated`,{channel:n.name}):h(`devicesModule.messages.channels.notEdited`,{channel:n.name});if(O.value.clearValidate(),!await O.value.validate())throw new X(`Form not valid`);let i=(l.value?.schemas?.channelEditFormSchema||Te).safeParse(E);if(!i.success)throw _.error(`Schema validation failed with:`,i.error),new X(`Failed to validate edit channel model.`);v.value=K.WORKING;try{await u.edit({id:n.id,data:{...i.data,type:n.type}}),n.draft&&await u.save({id:n.id,deviceId:n.device})}catch(e){throw v.value=K.ERROR,y=window.setTimeout(N,2e3),e instanceof Y&&e.code===422?g.error(e.message):g.error(t),e}return v.value=K.OK,y=window.setTimeout(N,2e3),e?(g.success(h(r&&r.success?r.success:`devicesModule.messages.channels.created`,{channel:n.name})),`added`):(g.success(h(r&&r.success?r.success:`devicesModule.messages.channels.edited`,{channel:n.name})),A.value=!1,D=w(s(E)),`saved`)},N=()=>{window.clearTimeout(y),v.value=K.NONE};return f().catch(()=>{}),o(E,()=>{A.value=!(0,q.isEqual)(s(E),D)}),{categoriesOptions:C,devicesOptions:T,model:E,formEl:O,formChanged:A,submit:M,clear:N,formResult:v,loadingDevices:m}},Ae=({channelId:e,id:n})=>{let r=F().getStore(W),{data:i,semaphore:a}=u(r);return{property:t(()=>n===null?null:i.value[n]??null),isLoading:t(()=>a.value.fetching.item.includes(n)?!0:(i.value[n]??null)===null?a.value.fetching.items.includes(e)||a.value.fetching.items.includes(`all`):!1),fetchProperty:async()=>{(i.value[n]??null)?.draft||await r.get({id:n,channelId:e})}}},je=({channelId:e})=>{let n=F().getStore(W),{firstLoad:r,semaphore:i}=u(n),a=typeof e==`string`?t(()=>e):e;return{properties:t(()=>n.findAll().filter(e=>!a?.value||e.channel===a.value)),areLoading:t(()=>a.value?i.value.fetching.items.includes(a.value)?!0:!r.value.includes(a.value)&&i.value.fetching.items.includes(a.value):!1),loaded:t(()=>a.value?r.value.includes(a.value):!1),fetchProperties:async()=>{a.value&&await n.fetch({channelId:a.value})}}},Q={search:void 0,channels:[],categories:[],permissions:[],dataTypes:[]},Me={by:`category`,dir:`asc`},Ne=({channelId:e,key:n=`list`})=>{let r=F().getStore(W),{firstLoad:i,semaphore:s}=u(r),{filters:c,sort:l,pagination:d,reset:f}=M({key:`${te}:channels-properties:${n}`,filters:{schema:de,defaults:Q},sort:{defaults:[Me]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),p=t(()=>c.value.search!==Q.search||!(0,q.isEqual)(c.value.channels,Q.channels)||!(0,q.isEqual)(c.value.categories,Q.categories)||!(0,q.isEqual)(c.value.permissions,Q.permissions)||!(0,q.isEqual)(c.value.dataTypes,Q.dataTypes)),m=a(d.value.size||10),h=a(d.value.page||1),g=a(l.value.length>0?l.value[0]?.by:void 0),_=a(l.value.length>0?l.value[0]?.dir??null:null),v=t(()=>B(r.findAll().filter(t=>!e||t.channel===e).filter(e=>!e.draft&&(!c.value.search||e.id?.toLowerCase().includes(c.value.search.toLowerCase())||e.name?.toLowerCase().includes(c.value.search.toLowerCase())||e.identifier?.toLowerCase().includes(c.value.search.toLowerCase()))&&(c.value.categories.length===0||c.value.categories.includes(e.category))&&(c.value.dataTypes.length===0||c.value.dataTypes.includes(e.dataType))&&(c.value.permissions.length===0||e.permissions.some(e=>c.value.permissions.includes(e)))),[e=>e[g.value]??``],[_.value===`asc`?`asc`:`desc`])),y=t(()=>{let e=(h.value-1)*m.value,t=e+m.value;return v.value.slice(e,t)}),b=async()=>{await r.fetch({channelId:e})},x=t(()=>s.value.fetching.items.includes(e)?!0:!i.value.includes(e)&&s.value.fetching.items.includes(e)),S=t(()=>i.value.includes(e)),C=t(()=>r.findAll().filter(t=>!e||t.channel===e).filter(e=>!e.draft).length);return o(()=>d.value,e=>{h.value=e.page??1,m.value=e.size??10},{deep:!0}),o(()=>h.value,e=>{d.value.page=e}),o(()=>m.value,e=>{d.value.size=e}),o(()=>_.value,e=>{g.value===void 0||e===null?l.value=[]:l.value=[{by:g.value,dir:e}]}),o(()=>g.value,e=>{e===void 0?l.value=[]:l.value=[{by:e,dir:_.value}]}),{properties:v,propertiesPaginated:y,totalRows:C,areLoading:x,loaded:S,fetchProperties:b,filters:c,filtersActive:p,paginateSize:m,paginatePage:h,sortBy:g,sortDir:_,resetFilter:f}},Pe=()=>{let{t:e}=i(),t=k(),n=F().getStore(W);return{remove:async r=>{let i=n.findById(r);if(i===null)throw new J(`Something went wrong, channel property can't be loaded`);x.confirm(e(`devicesModule.texts.channelsProperties.confirmRemove`,{property:i.name??e(`devicesModule.categories.channelsProperties.${i.category}`)}),e(`devicesModule.headings.channelsProperties.remove`),{confirmButtonText:e(`devicesModule.buttons.yes.title`),cancelButtonText:e(`devicesModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await n.remove({id:i.id,channelId:i.channel}),t.success(e(`devicesModule.messages.channelsProperties.removed`,{property:i.name??e(`devicesModule.categories.channelsProperties.${i.category}`)}))}catch(n){if(n instanceof Y&&n.code===404){let n=e(`devicesModule.messages.channelsProperties.notFound`,{property:i.name??e(`devicesModule.categories.channelsProperties.${i.category}`)});t.error(n)}else if(n instanceof Y&&n.code===422)t.error(n.message);else{let n=e(`devicesModule.messages.channelsProperties.notRemoved`,{property:i.name??e(`devicesModule.categories.channelsProperties.${i.category}`)});t.error(n)}}}).catch(()=>{t.info(e(`devicesModule.messages.channelsProperties.removeCanceled`,{property:i.name??e(`devicesModule.categories.channelsProperties.${i.category}`)}))})}}},Fe=({id:e})=>{let n=F().getStore(W);return{icon:t(()=>{switch(n.findById(e)?.category){case S.event:return`mdi:bell-ring-outline`;case S.detected:return`mdi:record-circle-outline`;case S.unit:return`mdi:ruler`;case S.value:return`mdi:numeric`;default:return`mdi:tune`}})}},Ie=y({id:I().uuid().optional(),type:I().trim().nonempty(),channel:I().uuid().optional(),category:A(S).default(S.generic),identifier:I().trim().nonempty().nullable().optional(),name:I().trim().nonempty().nullable(),permissions:O(A(D)),dataType:A(h),format:O(_([I(),_([b(),g()])])).nullable(),invalid:_([I(),b(),N(),g()]),step:_([I(),b()]).transform(e=>e===``?null:Number(e)).nullable(),enterValue:N().default(!1),value:_([I(),b(),N(),g()]).optional(),enumValues:O(I()),minValue:_([I(),b()]).transform(e=>e===``?void 0:Number(e)).optional(),maxValue:_([I(),b()]).transform(e=>e===``?void 0:Number(e)).optional()}),Le=y({id:I().uuid(),type:I().trim().nonempty(),channel:I().uuid(),category:A(S).default(S.generic),identifier:I().trim().nonempty().nullable().optional(),name:I().trim().nonempty().nullable().optional(),permissions:O(A(D)),dataType:A(h),format:O(_([I(),_([b(),g()])])).nullable(),invalid:_([I(),b(),N(),g()]),step:_([I(),b()]).transform(e=>e===``?null:Number(e)).nullable(),enterValue:N().default(!1),value:_([I(),b(),N(),g()]).optional(),enumValues:O(I()),minValue:_([I(),b()]).transform(e=>e===``?void 0:Number(e)).optional(),maxValue:_([I(),b()]).transform(e=>e===``?void 0:Number(e)).optional()}),Re=({type:e})=>{let{getByType:n}=ae(),r=t(()=>n(e));return{plugin:r,element:t(()=>(r.value?.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`))))}},ze=({id:n,type:r,channelId:c})=>{let l=F(),{element:u}=Re({type:r}),d=l.getStore(W),{channels:f,fetchChannels:m,areLoading:g}=ce(),{t:_}=i(),v=k(),y=p(),b=a(K.NONE),x,C=t(()=>P.channel?f.value.find(e=>e.id===P.channel)??null:null),T=t(()=>C.value?d.findForChannel(C.value.id).map(e=>e.category):[]),E=t(()=>C.value?xe[C.value.category]??null:null),O=t(()=>E.value===null?[]:Object.values(S).filter(e=>E.value?.required.includes(e)||E.value?.optional.includes(e)).filter(e=>!T.value.includes(e)).map(e=>({value:e,label:_(`devicesModule.categories.channelsProperties.${e}`)}))),A=t(()=>f.value.map(e=>({value:e.id,label:e.name}))),M=Object.values(D).map(e=>({value:e,label:_(`devicesModule.permissions.${e}`)})),N=Object.values(h).map(e=>({value:e,label:_(`devicesModule.dataTypes.${e}`)})),P=e({...z(u.value?.schemas?.channelPropertyAddFormSchema||Ie),id:n,type:r,channel:c,category:S.generic,name:``,permissions:[],dataType:h.unknown,format:null,invalid:null,step:null,enumValues:[],minValue:void 0,maxValue:void 0,enterValue:!1,value:void 0}),I=w(s(P)),L=a(void 0),R=a(!1),B=async()=>{if(L.value.clearValidate(),!await L.value.validate())throw new X(`Form not valid`);let e=c??P.channel;if(!e)throw new X(`Missing channel identifier`);if(P.name===``&&(P.name=null),!P.category)throw new X(`Missing data type definition`);P.dataType===h.enum?P.format=P.enumValues:[h.char,h.uchar,h.short,h.ushort,h.int,h.uint,h.float].includes(P.dataType)&&(P.format=[typeof P.minValue==`string`&&P.minValue!==``?Number(P.minValue):typeof P.minValue==`number`?P.minValue:null,typeof P.maxValue==`string`&&P.maxValue!==``?Number(P.maxValue):typeof P.maxValue==`number`?P.maxValue:null]),P.enterValue||delete P.value;let t=(u.value?.schemas?.channelPropertyAddFormSchema||Ie).safeParse(P);if(!t.success)throw y.error(`Schema validation failed with:`,t.error),new X(`Failed to validate create channel property model.`);b.value=K.WORKING;let i=_(`devicesModule.messages.channelsProperties.notCreated`,{device:P.name});try{await d.add({id:n,channelId:e,draft:!1,data:{...t.data,type:r}})}catch(e){throw b.value=K.ERROR,x=window.setTimeout(V,2e3),e instanceof Y&&e.code===422?v.error(e.message):v.error(i),e}return b.value=K.OK,x=window.setTimeout(V,2e3),v.success(_(`devicesModule.messages.channelsProperties.created`,{device:P.name})),`added`},V=()=>{window.clearTimeout(x),b.value=K.NONE};return m().catch(()=>{}),o(P,()=>{R.value=!(0,q.isEqual)(s(P),I)}),o(()=>P.category,e=>{let t=Se(C.value?.category??j.generic,e);t&&(I.permissions=t.permissions,I.dataType=t.data_type,P.permissions=t.permissions,P.dataType=t.data_type,t.invalid!==void 0&&(I.invalid=t.invalid,P.invalid=t.invalid),t.step!==void 0&&(I.step=t.step,P.step=t.step),I.dataType===h.enum?(I.enumValues=t.format??[],I.minValue=void 0,I.maxValue=void 0,P.enumValues=t.format??[],P.minValue=void 0,P.maxValue=void 0):[h.char,h.uchar,h.short,h.ushort,h.int,h.uint,h.float].includes(P.dataType)?(I.enumValues=[],I.minValue=t.format?.[0],I.maxValue=t.format?.[1],P.enumValues=[],P.minValue=t.format?.[0],P.maxValue=t.format?.[1]):(I.enumValues=[],I.minValue=void 0,I.maxValue=void 0,P.enumValues=[],P.minValue=void 0,P.maxValue=void 0),R.value=!(0,q.isEqual)(s(P),I))},{immediate:!0}),o(()=>O.value,e=>{e.length&&e[0]&&(P.category=e[0].value,I.category=e[0].value)},{immediate:!0}),{categoriesOptions:O,channelsOptions:A,permissionsOptions:M,dataTypesOptions:N,model:P,formEl:L,formChanged:R,submit:B,clear:V,formResult:b,loadingChannels:g}},Be=({property:n,messages:r})=>{let c=F(),{element:l}=Re({type:n.type}),u=c.getStore(W),{channels:d,fetchChannels:f,areLoading:m}=ce(),{t:g}=i(),_=k(),v=p(),y=a(K.NONE),b,x=[],C,T;n.dataType===h.enum?x=n.format?n.format.map(e=>e?.toString()||``):[]:[h.char,h.uchar,h.short,h.ushort,h.int,h.uint,h.float].includes(n.dataType)&&Array.isArray(n.format)&&n.format.length===2&&(C=n.format[0],T=n.format[1]);let E=t(()=>d.value.find(e=>e.id===n.channel)??null),O=t(()=>E.value?u.findForChannel(E.value.id).filter(e=>e.id!==n.id).map(e=>e.category):[]),A=t(()=>E.value?xe[E.value.category]??null:null),j=t(()=>A.value===null?[]:Object.values(S).filter(e=>A.value?.required.includes(e)||A.value?.optional.includes(e)).filter(e=>!O.value.includes(e)).map(e=>({value:e,label:g(`devicesModule.categories.channelsProperties.${e}`)}))),M=t(()=>d.value.map(e=>({value:e.id,label:e.name}))),N=Object.values(D).map(e=>({value:e,label:g(`devicesModule.permissions.${e}`)})),P=Object.values(h).map(e=>({value:e,label:g(`devicesModule.dataTypes.${e}`)})),I=e({...n,format:s(n.format),value:n.value?.value??null,enumValues:x,minValue:C,maxValue:T,enterValue:!1}),L=w(s(I)),R=a(void 0),z=a(!1),B=async()=>{let e=n.draft,t=r&&r.error?r.error:n.draft?g(`devicesModule.messages.channelsProperties.notCreated`,{property:n.name??g(`devicesModule.categories.channelsProperties.${n.category}`)}):g(`devicesModule.messages.channelsProperties.notEdited`,{property:n.name??g(`devicesModule.categories.channelsProperties.${n.category}`)});if(R.value.clearValidate(),!await R.value.validate())throw new X(`Form not valid`);I.name===``&&(I.name=null),n.dataType===h.enum?I.format=I.enumValues:[h.char,h.uchar,h.short,h.ushort,h.int,h.uint,h.float].includes(n.dataType)&&(I.format=[I.minValue??null,I.maxValue??null]),I.enterValue||delete I.value;let i=(l.value?.schemas?.channelPropertyEditFormSchema||Le).safeParse(I);if(!i.success)throw v.error(`Schema validation failed with:`,i.error),new X(`Failed to validate edit channel property model.`);y.value=K.WORKING;try{await u.edit({id:n.id,channelId:n.channel,data:{...i.data,type:n.type}}),n.draft&&await u.save({id:n.id,channelId:n.channel})}catch(e){throw y.value=K.ERROR,b=window.setTimeout(V,2e3),e instanceof Y&&e.code===422?_.error(e.message):_.error(t),e}return y.value=K.OK,b=window.setTimeout(V,2e3),e?(_.success(g(r&&r.success?r.success:`devicesModule.messages.channelsProperties.created`,{property:n.name??g(`devicesModule.categories.channelsProperties.${n.category}`)})),`added`):(_.success(g(r&&r.success?r.success:`devicesModule.messages.channelsProperties.edited`,{property:n.name??g(`devicesModule.categories.channelsProperties.${n.category}`)})),z.value=!1,L=w(s(I)),`saved`)},V=()=>{window.clearTimeout(b),y.value=K.NONE};return f().catch(()=>{}),o(I,()=>{z.value=!(0,q.isEqual)(s(I),L)}),{categoriesOptions:j,channelsOptions:M,permissionsOptions:N,dataTypesOptions:P,model:I,formEl:R,formChanged:z,submit:B,clear:V,formResult:y,loadingChannels:m}},Ve=({id:e})=>{let r=F().getStore(U),{data:i,semaphore:a}=u(r);return{device:t(()=>{let t=n(e);return t===null?null:i.value[t]??null}),isLoading:t(()=>{let t=n(e);return a.value.fetching.item.includes(t)?!0:(i.value[t]??null)===null&&a.value.fetching.items}),fetchDevice:async()=>{let t=n(e);(i.value[t]??null)?.draft||await r.get({id:t})}}},$={search:void 0,types:[],state:`all`,states:[],categories:[],enabled:`all`,validation:`all`},He={by:`name`,dir:`asc`},Ue=()=>{let e=F(),n=e.getStore(U),r=e.getStore(G),{firstLoad:i,semaphore:s}=u(n),{filters:c,sort:l,pagination:f,reset:p}=M({key:`${te}:devices:list`,filters:{schema:le,defaults:$},sort:{defaults:[He]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),m=t(()=>c.value.search!==$.search||!(0,q.isEqual)(c.value.types,$.types)||c.value.state!==$.state||!(0,q.isEqual)(c.value.states,$.states)||!(0,q.isEqual)(c.value.categories,$.categories)||!(0,q.isEqual)(c.value.enabled,$.enabled)||c.value.validation!==$.validation),h=a(f.value.size||10),g=a(f.value.page||1),_=a(l.value.length>0?l.value[0]?.by:void 0),v=a(l.value.length>0?l.value[0]?.dir??null:null),y=a(!1),b=e=>r.findById(e)?.isValid??null,x=t(()=>B(n.findAll().filter(e=>!e.draft&&(y.value||!e.hidden)&&(!c.value.search||e.id.toLowerCase().includes(c.value.search.toLowerCase())||e.name.toLowerCase().includes(c.value.search.toLowerCase())||e.description?.toLowerCase().includes(c.value.search.toLowerCase())||e.identifier?.toLowerCase().includes(c.value.search.toLowerCase()))&&(c.value.types.length===0||c.value.types.includes(e.type))&&(c.value.categories.length===0||c.value.categories.includes(e.category))&&(c.value.enabled===`all`||c.value.enabled===`enabled`&&e.enabled||c.value.enabled===`disabled`&&!e.enabled)&&(c.value.states.length===0||c.value.states.includes(e.status?.status??P.unknown))&&(c.value.state===`all`||c.value.state===`online`&&[P.ready,P.connected,P.running].includes(e.status.status)||c.value.state===`offline`&&[P.disconnected,P.stopped,P.lost,P.unknown].includes(e.status.status))&&(c.value.validation===`all`||c.value.validation===`valid`&&b(e.id)===!0||c.value.validation===`invalid`&&b(e.id)===!1)),[e=>_.value===`state`?e.status?.status??P.unknown:e[_.value]??``],[v.value===`asc`?`asc`:`desc`])),S=t(()=>{let e=(g.value-1)*h.value,t=e+h.value;return x.value.slice(e,t)}),C=async()=>{await n.fetch({hidden:y.value?d.all:d.false})},w=t(()=>s.value.fetching.items||!i.value),T=t(()=>i.value),E=t(()=>n.findAll().filter(e=>!e.draft&&(y.value||!e.hidden)).length);return o(()=>f.value,e=>{g.value=e.page??1,h.value=e.size??10},{deep:!0}),o(()=>g.value,e=>{f.value.page=e}),o(()=>h.value,e=>{f.value.size=e}),o(()=>v.value,e=>{_.value===void 0||e===null?l.value=[]:l.value=[{by:_.value,dir:e}]}),o(()=>_.value,e=>{e===void 0?l.value=[]:l.value=[{by:e,dir:v.value}]}),{devices:x,devicesPaginated:S,totalRows:E,areLoading:w,loaded:T,fetchDevices:C,filters:c,filtersActive:m,paginateSize:h,paginatePage:g,sortBy:_,sortDir:v,resetFilter:p,showHidden:y}},We=()=>{let{t:e}=i(),t=k(),n=F().getStore(U);return{remove:async r=>{let i=n.findById(r);if(i===null)throw new J(`Something went wrong, device can't be loaded`);x.confirm(e(`devicesModule.texts.devices.confirmRemove`,{device:i.name}),e(`devicesModule.headings.devices.remove`),{confirmButtonText:e(`devicesModule.buttons.yes.title`),cancelButtonText:e(`devicesModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await n.remove({id:i.id}),t.success(e(`devicesModule.messages.devices.removed`,{device:i.name}))}catch(n){if(n instanceof Y&&n.code===404){let n=e(`devicesModule.messages.devices.notFound`,{device:i.name});t.error(n)}else if(n instanceof Y&&n.code===422)t.error(n.message);else{let n=e(`devicesModule.messages.devices.notRemoved`,{device:i.name});t.error(n)}}}).catch(()=>{t.info(e(`devicesModule.messages.devices.removeCanceled`,{device:i.name}))})},bulkRemove:async r=>{if(r.length!==0){try{await x.confirm(e(`devicesModule.texts.devices.confirmBulkRemove`,{count:r.length}),e(`devicesModule.headings.devices.bulkRemove`),{confirmButtonText:e(`devicesModule.buttons.yes.title`),cancelButtonText:e(`devicesModule.buttons.no.title`),type:`warning`})}catch{return}try{let i=await n.bulkRemove({ids:r.map(e=>e.id)});i.succeeded.length>0&&t.success(e(`devicesModule.messages.devices.bulkRemoved`,{count:i.succeeded.length})),i.failed.length>0&&t.error(e(`devicesModule.messages.devices.bulkRemoveFailed`,{count:i.failed.length}))}catch{t.error(e(`devicesModule.messages.devices.bulkRemoveFailed`,{count:r.length}))}}},bulkEnable:async r=>{if(r.length!==0){try{await x.confirm(e(`devicesModule.texts.devices.confirmBulkEnable`,{count:r.length}),e(`devicesModule.headings.devices.bulkEnable`),{confirmButtonText:e(`devicesModule.buttons.yes.title`),cancelButtonText:e(`devicesModule.buttons.no.title`),type:`info`})}catch{t.info(e(`devicesModule.messages.devices.bulkEnableCanceled`));return}try{let i=await n.bulkSetEnabled({ids:r.map(e=>e.id),enabled:!0});i.succeeded.length>0&&t.success(e(`devicesModule.messages.devices.bulkEnabled`,{count:i.succeeded.length})),i.failed.length>0&&t.error(e(`devicesModule.messages.devices.bulkEnableFailed`,{count:i.failed.length}))}catch{t.error(e(`devicesModule.messages.devices.bulkEnableFailed`,{count:r.length}))}}},bulkDisable:async r=>{if(r.length!==0){try{await x.confirm(e(`devicesModule.texts.devices.confirmBulkDisable`,{count:r.length}),e(`devicesModule.headings.devices.bulkDisable`),{confirmButtonText:e(`devicesModule.buttons.yes.title`),cancelButtonText:e(`devicesModule.buttons.no.title`),type:`warning`})}catch{t.info(e(`devicesModule.messages.devices.bulkDisableCanceled`));return}try{let i=await n.bulkSetEnabled({ids:r.map(e=>e.id),enabled:!1});i.succeeded.length>0&&t.success(e(`devicesModule.messages.devices.bulkDisabled`,{count:i.succeeded.length})),i.failed.length>0&&t.error(e(`devicesModule.messages.devices.bulkDisableFailed`,{count:i.failed.length}))}catch{t.error(e(`devicesModule.messages.devices.bulkDisableFailed`,{count:r.length}))}}}}},Ge=({id:e})=>{let n=F().getStore(U);return{icon:t(()=>{switch(n.findById(e)?.category){case E.input_controller:return`mdi:gesture-tap-button`;default:return`mdi:devices`}})}},Ke=({id:e})=>{let n=F(),r=n.getStore(U),i=n.getStore(H),a=e=>r.findById(e),o=e=>be[e.category]??null;return{canAddAnotherChannel:t(()=>{let t=a(typeof e==`string`?e:e.value);if(t===null)return!0;let{required:n,optional:r,multiple:s}=o(t)??{required:[],optional:[]},c=[...n,...r],l=i.findForDevice(t.id).map(e=>e.category);return c.filter(e=>!l.includes(e)).length>0||s!==void 0&&s.length>0}),missingRequiredChannels:t(()=>{let t=a(typeof e==`string`?e:e.value);if(t===null)throw new J(`Something went wrong, device can't be loaded`);let{required:n}=o(t)??{required:[]},r=i.findForDevice(t.id).map(e=>e.category);return n.filter(e=>!r.includes(e))})}},qe=y({id:I().uuid().optional(),type:I().trim().nonempty(),category:A(E).default(E.generic),identifier:I().trim().nonempty().nullable().optional(),name:I().trim().nonempty(),description:I().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:N().default(!0).optional()}),Je=y({id:I().uuid(),type:I().trim().nonempty(),category:A(E).default(E.generic),identifier:I().trim().nonempty().nullable().optional(),name:I().trim().nonempty().optional(),description:I().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:N().optional(),roomId:I().uuid().nullable().optional()}),Ye=({type:e})=>{let{getByType:n}=ne(),r=t(()=>n(e));return{plugin:r,element:t(()=>(r.value?.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`devices-module`))))}},Xe=({id:t,type:n})=>{let r=F(),{element:c}=Ye({type:n}),l=r.getStore(U),{t:u}=i(),d=k(),f=p(),m=a(K.NONE),h,g=Object.values(E).map(e=>({value:e,label:u(`devicesModule.categories.devices.${e}`)})),_=e({...z(c.value?.schemas?.deviceAddFormSchema||qe),id:t,type:n,category:E.generic,name:``,description:``}),v=w(s(_)),y=a(void 0),b=a(!1),x=async()=>{if(y.value.clearValidate(),!await y.value.validate())throw new X(`Form not valid`);let e=(c.value?.schemas?.deviceAddFormSchema||qe).safeParse(_);if(!e.success)throw f.error(`Schema validation failed with:`,e.error),new X(`Failed to validate create device model.`);m.value=K.WORKING;let r=u(`devicesModule.messages.devices.notCreated`,{device:_.name});try{await l.add({id:t,draft:!1,data:{...e.data,type:n}})}catch(e){throw m.value=K.ERROR,h=window.setTimeout(S,2e3),e instanceof Y&&e.code===422?d.error(e.message):d.error(r),e}return m.value=K.OK,h=window.setTimeout(S,2e3),d.success(u(`devicesModule.messages.devices.created`,{device:_.name})),`added`},S=()=>{window.clearTimeout(h),m.value=K.NONE};return o(_,()=>{b.value=!(0,q.isEqual)(s(_),v)}),{categoriesOptions:g,model:_,formEl:y,formChanged:b,submit:x,clear:S,formResult:m}},Ze=({device:e,model:t,messages:n,messagePrefix:r,parseModel:c,validationException:l,prepareData:u})=>{let d=F().getStore(U),{t:f}=i(),m=k(),h=p(),g=a(void 0),_=a(!1),v=a(K.NONE),y=w(s(t)),b,x=()=>{window.clearTimeout(b),v.value=K.NONE};return o(t,()=>{_.value=!(0,q.isEqual)(s(t),y)}),{formEl:g,formChanged:_,formResult:v,submit:async()=>{let i=e.draft,a=n?.error||f(`${r}.messages.devices.${i?`notCreated`:`notEdited`}`,{device:e.name});if(g.value.clearValidate(),!await g.value.validate())throw new X(`Form not valid`);let o=c();if(!o.success)throw h.error(`Schema validation failed with:`,o.error),new l(`Failed to validate edit device model.`);v.value=K.WORKING;try{let t=u?u(o.data,y):{...o.data};!u&&(0,q.isEqual)(t.roomId,y.roomId)&&delete t.roomId,await d.edit({id:e.id,data:{...t,type:e.type}}),e.draft&&await d.save({id:e.id})}catch(e){throw v.value=K.ERROR,b=window.setTimeout(x,2e3),m.error(e instanceof Y&&e.code===422?e.message:a),e}return v.value=K.OK,b=window.setTimeout(x,2e3),m.success(f(n?.success||`${r}.messages.devices.${i?`created`:`edited`}`,{device:e.name})),i?`added`:(_.value=!1,y=w(s(t)),`saved`)},clear:x}},Qe=({device:t,messages:n})=>{let{element:r}=Ye({type:t.type}),{t:a}=i(),o=Object.values(E).map(e=>({value:e,label:a(`devicesModule.categories.devices.${e}`)})),s=e(t),{formEl:c,formChanged:l,submit:u,clear:d,formResult:f}=Ze({device:t,model:s,messages:n,messagePrefix:`devicesModule`,parseModel:()=>(r.value?.schemas?.deviceEditFormSchema||Je).safeParse(s),validationException:X});return{categoriesOptions:o,model:s,formEl:c,formChanged:l,submit:u,clear:d,formResult:f}},$e=()=>{let e=F().getStore(G),{data:n,semaphore:r,firstLoad:i}=u(e);return{validation:t(()=>n.value),summary:t(()=>n.value?.summary??null),invalidDevices:t(()=>n.value?n.value.devices.filter(e=>!e.isValid):[]),isLoading:t(()=>r.value.fetching.items),isLoaded:t(()=>i.value),fetchValidation:async()=>{await e.fetch()},findById:t=>e.findById(t),isDeviceValid:t=>{let n=e.findById(t);return n?n.isValid:null},getDeviceIssueCount:t=>{let n=e.findById(t);return n?n.issues.length:0}}},et=({id:e})=>{let n=F().getStore(G),{semaphore:r}=u(n);return{validation:t(()=>n.findById(typeof e==`string`?e:e.value)),isValid:t(()=>{let t=n.findById(typeof e==`string`?e:e.value);return t?t.isValid:null}),issues:t(()=>{let t=n.findById(typeof e==`string`?e:e.value);return t?t.issues:[]}),errorCount:t(()=>{let t=n.findById(typeof e==`string`?e:e.value);return t?t.issues.filter(e=>e.severity===`error`).length:0}),warningCount:t(()=>{let t=n.findById(typeof e==`string`?e:e.value);return t?t.issues.filter(e=>e.severity===`warning`).length:0}),isLoading:t(()=>r.value.fetching.item.includes(typeof e==`string`?e:e.value)),fetchValidation:async()=>{await n.get({id:typeof e==`string`?e:e.value})}}},tt=300,nt=1e4,rt=({id:e})=>{let n=F(),r=n.getStore(U),i=n.getStore(H),s=n.getStore(W),{data:c,semaphore:d}=u(r),{data:f,semaphore:p,firstLoad:h}=u(i),{semaphore:g,firstLoad:_}=u(s),{sendCommand:v}=m(),y={},b={},x={},S=a({}),C=a({}),w=t(()=>e===null?null:c.value[e]??null),T=t(()=>Object.values(f.value).filter(t=>t.device===e&&t.category!==j.device_information)),E=t(()=>T.value.filter(e=>e.category===j.button||e.category===j.binary_input||e.category===j.analog_input?!1:s.findForChannel(e.id).some(e=>e.permissions.includes(D.rw)||e.permissions.includes(D.wo)))),O=t(()=>E.value.length>0),k=e=>s.findForChannel(e),A=e=>e.permissions.includes(D.rw)||e.permissions.includes(D.wo),M=e=>{let t=S.value[e];return t===void 0?s.findById(e)?.value?.value??null:t},N=e=>C.value[e]??!1,P=(e,t)=>{if(t!==void 0){let n=S.value[e];if(n!==t&&String(n)!==String(t))return}delete S.value[e],x[e]&&(clearTimeout(x[e]),delete x[e])},I=(e,t)=>{x[e]&&clearTimeout(x[e]),x[e]=setTimeout(()=>{let n=S.value[e];(n===t||String(n)===String(t))&&delete S.value[e],delete x[e]},nt)},L=async(t,n,r)=>s.findById(n)?(y[n]&&(clearTimeout(y[n]),delete y[n],b[n]&&(b[n](!1),delete b[n])),S.value[n]=r,new Promise(i=>{b[n]=i;let a=setTimeout(async()=>{delete b[n],C.value[n]=!0;try{await v(ee.CHANNEL_PROPERTY_SET,{context:{origin:`admin`},properties:[{device:e,channel:t,property:n,value:r}]},`DevicesModule.Internal.SetPropertyValue`)===!0?(I(n,r),i(!0)):(P(n,r),i(!1))}catch{P(n,r),i(!1)}finally{C.value[n]=!1,y[n]===a&&delete y[n]}},tt);y[n]=a})):!1,R=async()=>{(e in c.value?c.value[e]:null)?.draft||await r.get({id:e})},z=async()=>{await i.fetch({deviceId:e})},B=async()=>{let t=Object.values(f.value).filter(t=>t.device===e);for(let e of t)await s.fetch({channelId:e.id})},V=t(()=>{if(d.value.fetching.item.includes(e)||p.value.fetching.items.includes(e))return!0;for(let e of T.value)if(g.value.fetching.items.includes(e.id))return!0;return!1}),G=t(()=>h.value.includes(e)),K=t(()=>{if(!G.value)return!1;for(let e of T.value)if(!_.value.includes(e.id))return!1;return!0});return o(()=>{let e={};for(let t of Object.keys(S.value)){let n=s.findById(t);n&&(e[t]=n.value?.value??null)}return e},e=>{for(let[t,n]of Object.entries(S.value)){let r=e[t];(r===n||String(r)===String(n))&&P(t)}},{deep:!0}),l(()=>{for(let e of Object.keys(y))clearTimeout(y[e]),delete y[e],b[e]&&(b[e](!1),delete b[e]);for(let e of Object.keys(x))clearTimeout(x[e]),delete x[e]}),{device:w,channels:T,controllableChannels:E,hasControllableProperties:O,isLoading:V,areChannelsLoaded:G,arePropertiesLoaded:K,fetchDevice:R,fetchChannels:z,fetchProperties:B,getPropertiesForChannel:k,isPropertyWritable:A,getPropertyValue:M,isPropertyLoading:N,setPropertyValue:L}},it=({deviceId:e})=>{let n=F().getStore(V),{firstLoad:r,semaphore:i}=u(n);return{controls:t(()=>n.findForDevice(typeof e==`string`?e:e.value)),areLoading:t(()=>i.value.fetching.items.includes(typeof e==`string`?e:e.value)),loaded:t(()=>r.value.includes(typeof e==`string`?e:e.value)),fetchControls:async()=>n.fetch({deviceId:typeof e==`string`?e:e.value})}},at=e=>{let i=T(),s=p(),l=a({}),u=a(!1),d=a(!1),m=a(!1),h=a(void 0),g=a(!1),_=null,v=0,y=t(()=>Object.values(l.value).sort((e,t)=>new Date(t.ts).getTime()-new Date(e.ts).getTime())),b=t(()=>{let e=[f.warn,f.error,f.fatal,f.fail];return y.value.filter(t=>e.includes(t.type))}),x=t(()=>b.value.length),S=t(()=>x.value>0),C=async()=>{let t=n(e.deviceId);_=t,v++;let r=v;d.value=!0;try{let{data:e,error:n}=await i.client.GET(`/${c}/${re}/logs`,{params:{query:{resource:t,limit:50}}});if(_!==t||v!==r)return;if(e!==void 0){let t=Object.fromEntries(e.data.map(e=>{let t=ie(e);return[t.id,t]}));l.value=t,m.value=!0,u.value=e.metadata.has_more,h.value=e.metadata.next_cursor}else n&&s.error(`Failed to fetch device logs:`,n)}catch(e){_===t&&v===r&&s.error(`Error fetching device logs:`,e)}finally{_===t&&v===r&&(d.value=!1)}},w=async()=>{if(d.value||!u.value||!h.value)return;let t=n(e.deviceId),r=h.value,a=v;d.value=!0;try{let{data:e,error:n}=await i.client.GET(`/${c}/${re}/logs`,{params:{query:{resource:t,after_id:r,limit:50}}});if(_!==t||v!==a)return;if(e!==void 0){let t=Object.fromEntries(e.data.map(e=>{let t=ie(e);return[t.id,t]}));l.value={...l.value,...t},u.value=e.metadata.has_more,h.value=e.metadata.next_cursor}else n&&s.error(`Failed to load more device logs:`,n)}catch(e){_===t&&v===a&&s.error(`Error loading more device logs:`,e)}finally{_===t&&v===a&&(d.value=!1)}},E=async()=>{l.value={},h.value=void 0,u.value=!1,m.value=!1,await C()},D=null;return o(()=>g.value,e=>{D&&=(clearInterval(D),null),e&&(D=setInterval(()=>{d.value||C()},3e3))}),r(()=>{D&&=(clearInterval(D),null)}),o(()=>n(e.deviceId),()=>{E()}),{logs:y,alertLogs:b,alertCount:x,hasAlerts:S,hasMore:u,isLoading:d,loaded:m,live:g,fetchLogs:C,loadMoreLogs:w,refreshLogs:E}};export{xe as A,se as B,Ne as C,Oe as D,ke as E,ge as F,X as G,ae as H,he as I,me as L,ye as M,Se as N,De as O,_e as P,pe as R,Pe as S,Ae as T,Y as U,oe as V,J as W,Be as _,$e as a,Le as b,Xe as c,Je as d,Ke as f,Ve as g,Ue as h,et as i,be as j,Ce as k,Ye as l,We as m,it as n,Qe as o,Ge as p,rt as r,Ze as s,at as t,qe as u,ze as v,je as w,Fe as x,Ie as y,ce as z};
@@ -0,0 +1 @@
1
+ import{Ci as e,Er as t,T as n,Ti as r,n as i}from"./icon-with-child-C0yuv0oQ.js";import{Kn as a,m as o,p as s,x as c}from"./common-Cq0z9nNV.js";import{t as l}from"./keys-CIqUg3Jv.js";import{a as u}from"./config.constants-17QBQ_kF.js";import{f as d,g as f,n as p}from"./keys-bvwxU-Nn.js";import{o as m}from"./weather.constants-_S0I_w_Q.js";import{r as h}from"./devices.constants-cxt4nI1j.js";var g=r(null),_=r(!1),v=r(null),y=300*1e3,b=t(()=>g.value!==null&&!g.value.hasOwner),x=t(()=>g.value?.onboardingCompleted??!1),S=()=>{g.value=null,v.value=null},C=()=>{let e=o(),t=async(t=!1)=>{if(!t&&g.value&&v.value&&Date.now()-v.value<y)return g.value;_.value=!0;try{let{data:t,error:n}=await e.client.GET(`/${i}/system/system/onboarding`);return n||!t?null:(g.value={hasOwner:t.data.has_owner,onboardingCompleted:t.data.onboarding_completed,devicesCount:t.data.devices_count,spacesCount:t.data.spaces_count,displaysCount:t.data.displays_count},v.value=Date.now(),g.value)}catch{return null}finally{_.value=!1}},n=()=>{g.value=null,v.value=null};return{status:g,isLoading:_,needsOnboarding:b,isOnboardingCompleted:x,fetchStatus:t,invalidate:n,markComplete:async()=>{try{let{error:r}=await e.client.POST(`/${i}/system/system/onboarding/complete`);return r?!1:(n(),await t(!0),!0)}catch{return!1}}}},w={ONBOARDING:`onboarding_module-onboarding`},T=function(e){return e[e.WELCOME=0]=`WELCOME`,e[e.ACCOUNT=1]=`ACCOUNT`,e[e.LOCATION=2]=`LOCATION`,e[e.INTEGRATIONS=3]=`INTEGRATIONS`,e[e.SPACES=4]=`SPACES`,e[e.COMPLETE=5]=`COMPLETE`,e}({}),E=[{searchToken:`Living Room`,category:`living_room`,icon:`mdi:sofa`,i18nKey:`livingRoom`},{searchToken:`Bedroom`,category:`bedroom`,icon:`mdi:bed`,i18nKey:`bedroom`},{searchToken:`Kitchen`,category:`kitchen`,icon:`mdi:countertop`,i18nKey:`kitchen`},{searchToken:`Bathroom`,category:`bathroom`,icon:`mdi:shower`,i18nKey:`bathroom`},{searchToken:`Toilet`,category:`toilet`,icon:`mdi:toilet`,i18nKey:`toilet`},{searchToken:`Office`,category:`office`,icon:`mdi:desk`,i18nKey:`office`},{searchToken:`Garage`,category:`garage`,icon:`mdi:garage`,i18nKey:`garage`},{searchToken:`Hallway`,category:`hallway`,icon:`mdi:door-open`,i18nKey:`hallway`},{searchToken:`Entryway`,category:`entryway`,icon:`mdi:door-sliding`,i18nKey:`entryway`},{searchToken:`Dining Room`,category:`dining_room`,icon:`mdi:silverware-fork-knife`,i18nKey:`diningRoom`},{searchToken:`Laundry`,category:`laundry`,icon:`mdi:washing-machine`,i18nKey:`laundry`},{searchToken:`Nursery`,category:`nursery`,icon:`mdi:baby-carriage`,i18nKey:`nursery`},{searchToken:`Guest Room`,category:`guest_room`,icon:`mdi:bed-outline`,i18nKey:`guestRoom`},{searchToken:`Storage`,category:`storage`,icon:`mdi:package-variant-closed`,i18nKey:`storage`},{searchToken:`Workshop`,category:`workshop`,icon:`mdi:hammer-wrench`,i18nKey:`workshop`}],D=r(T.WELCOME),O=r(!1),k=r(!1),A=r(!1),j=r(!1),M=r(0),N=e({username:``,password:``,confirmPassword:``,email:``,firstName:``,lastName:``}),P=e({city:``,latitude:null,longitude:null,timezone:``}),F=e([]),I=e(new Set),L=e([]),R=e({}),z={},B=null,V=null,H=()=>{let{t:e}=n(),r=o(),g=s(),_=c(),v=_.getStore(l),y=_.getStore(p),{invalidate:b,markComplete:x}=C(),S=t(()=>D.value===T.COMPLETE),w=()=>{D.value<T.COMPLETE&&(D.value+=1)},H=()=>{D.value>T.WELCOME&&--D.value},U=async()=>{if(A.value)return!0;O.value=!0;try{return k.value||=(await v.register({data:{username:N.username,password:N.password,firstName:N.firstName,lastName:N.lastName,email:N.email||void 0}}),!0),await v.create({data:{username:N.username,password:N.password}}),A.value=!0,N.password=``,N.confirmPassword=``,b(),!0}catch{return g.error(e(`onboardingModule.account.messages.error`)),!1}finally{O.value=!1}},W=t(()=>P.latitude!==null&&P.longitude!==null),G=async()=>{if(j.value||P.latitude===null||P.longitude===null)return!0;try{if(B&&V&&(V.latitude!==P.latitude||V.longitude!==P.longitude)&&(B=null,V=null),!B){let e={type:`weather-open-meteo`,name:P.city||`Home`,latitude:P.latitude,longitude:P.longitude},{data:t,error:n}=await r.client.POST(`/${i}/${m}/locations`,{body:{data:e}});if(n||(B=t?.data?.id??null,!B))return!1;V={latitude:P.latitude,longitude:P.longitude}}let{error:e}=await r.client.PATCH(`/${i}/${u}/config/module/{module}`,{params:{path:{module:`weather-module`}},body:{data:{type:`weather-module`,primary_location_id:B}}});return e?!1:(j.value=!0,!0)}catch{return!1}},K=async()=>{try{let{data:e,error:t}=await r.client.GET(`/${i}/${h}/devices`,{params:{query:{hidden:a.false}}});if(t||!e)return!1;let n=e.data;L.splice(0,L.length);for(let e of n)L.push({id:e.id,name:e.name,type:e.type,category:e.category??`generic`,description:e.description??null,roomId:e.room_id??null});return!0}catch{return!1}},q=t=>t.i18nKey?e(`onboardingModule.spaces.categories.${t.i18nKey}`):t.searchToken,J=e=>{let t=e.toLowerCase();return E.find(e=>t.includes(e.searchToken.toLowerCase()))??null},Y=()=>{let e=new Set(F.map(e=>e.name.toLowerCase()));for(let t of L){let n=J(t.name);if(!n)continue;let r=q(n);!e.has(r.toLowerCase())&&!I.has(r.toLowerCase())&&(F.push({name:r,category:n.category,icon:n.icon}),e.add(r.toLowerCase())),!(t.id in R)&&!I.has(r.toLowerCase())&&(R[t.id]=r)}},X=async()=>{if(F.length===0)return!0;try{for(;F.length>0;){let e=F[0],t=await y.add({data:{name:e.name,type:f.ROOM,category:e.category,icon:e.icon}});z[e.name]=t.id,M.value++,F.splice(0,1)}return!0}catch{return!1}},Z=async()=>{let e={};for(let[t,n]of Object.entries(R)){if(!n)continue;let r=z[n];r&&(e[r]||(e[r]=[]),e[r].push(t))}for(let[t,n]of Object.entries(e)){let{error:e}=await r.client.POST(`/${i}/${d}/spaces/{id}/assign`,{params:{path:{id:t}},body:{data:{device_ids:n,display_ids:[]}}});if(e)return!1}return!0};return{currentStep:D,isLoading:O,accountCreated:A,hasLocationData:W,accountData:N,locationData:P,spacesToCreate:F,dismissedSpaces:I,discoveredDevices:L,deviceAssignments:R,savedSpacesCount:M,isLastStep:S,nextStep:w,prevStep:H,createAccount:U,saveLocation:G,saveSpaces:X,fetchDevices:K,suggestSpacesFromDevices:Y,completeOnboarding:async()=>{O.value=!0;try{return P.latitude!==null&&P.longitude!==null&&!await G()?(g.error(e(`onboardingModule.location.messages.error`)),!1):F.length>0&&!await X()?(g.error(e(`onboardingModule.spaces.messages.error`)),!1):Object.values(R).some(e=>e!==null)&&!await Z()?(g.error(e(`onboardingModule.spaces.messages.assignmentError`)),!1):await x()?!0:(g.error(e(`onboardingModule.complete.messages.error`)),!1)}catch{return g.error(e(`onboardingModule.complete.messages.error`)),!1}finally{O.value=!1}},reset:()=>{D.value=T.WELCOME,k.value=!1,A.value=!1,j.value=!1,M.value=0,N.username=``,N.password=``,N.confirmPassword=``,N.email=``,N.firstName=``,N.lastName=``,P.city=``,P.latitude=null,P.longitude=null,P.timezone=``,F.splice(0),I.clear(),L.splice(0),Object.keys(R).forEach(e=>delete R[e]),Object.keys(z).forEach(e=>delete z[e]),B=null,V=null}}};export{S as a,w as i,H as n,C as o,T as r,E as t};