@fastybird/smart-panel-admin 1.1.0-alpha.2 → 1.1.0-alpha.20

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 (257) hide show
  1. package/dist/assets/{alert-B_504iE8.js → alert-I-oSc4A8.js} +1 -1
  2. package/dist/assets/{card-add-form-hQfcolyj.js → card-add-form-CwVNfOa0.js} +1 -1
  3. package/dist/assets/{card-edit-form-BPs9Aljn.js → card-edit-form-CSyu6tst.js} +1 -1
  4. package/dist/assets/{checkbox-DKrpi0d7.js → checkbox-CtqO8Xm5.js} +1 -1
  5. package/dist/assets/{clamp-BIBuaymK.js → clamp-_tCsf9IO.js} +1 -1
  6. package/dist/assets/{col-Brj0AIcp.js → col-CQn4VXnk.js} +1 -1
  7. package/dist/assets/{collapse-CcS8OeLM.js → collapse-hdC45R5w.js} +1 -1
  8. package/dist/assets/{common-CEAYa_VX.js → common-D4Z2wgrj.js} +24 -24
  9. package/dist/assets/components-2Mgp_aM2.js +1 -0
  10. package/dist/assets/components-C29cEP3E.js +1 -0
  11. package/dist/assets/components-ChpIwZ2c.js +1 -0
  12. package/dist/assets/components-CzhROY3R.js +1 -0
  13. package/dist/assets/components-D6u7Ijb4.js +1 -0
  14. package/dist/assets/components-DMv2ePKp.js +8 -0
  15. package/dist/assets/components-DOu6SAYU.js +1 -0
  16. package/dist/assets/components-EQDhXTcZ.js +2 -0
  17. package/dist/assets/components-d5kPKt7X.js +6 -0
  18. package/dist/assets/components-exNTKYiX.js +1 -0
  19. package/dist/assets/composables-2NuyfNXO.js +1 -0
  20. package/dist/assets/{composables-CO2f80jd.js → composables-B3z1DCa7.js} +1 -1
  21. package/dist/assets/composables-BVhAEToZ.js +1 -0
  22. package/dist/assets/{composables-DIjPmeHV.js → composables-BgJl3zKR.js} +1 -1
  23. package/dist/assets/composables-CF8Jf15i.js +1 -0
  24. package/dist/assets/composables-CPxmcJSb2.js +1 -0
  25. package/dist/assets/composables-CYT0Ry4D.js +1 -0
  26. package/dist/assets/{composables-o5wEPPAf.js → composables-Cpk78oG1.js} +1 -1
  27. package/dist/assets/composables-D2O7i4W5.js +1 -0
  28. package/dist/assets/composables-DLFP4TLA.js +1 -0
  29. package/dist/assets/{composables-D5CRUz8s.js → composables-DeXiqZuU.js} +1 -1
  30. package/dist/assets/config-DAgVgX46.js +2 -0
  31. package/dist/assets/{dashboard-CQWK08VY.js → dashboard-YUP0xrqH.js} +2 -2
  32. package/dist/assets/dashboard.types-CkyEAwdv.js +1 -0
  33. package/dist/assets/{data-source-edit-form-Ba0Rox_i.js → data-source-edit-form-BlyvQ5Mk.js} +1 -1
  34. package/dist/assets/{descriptions-Bk8rb6i3.js → descriptions-BHa0Pjk7.js} +1 -1
  35. package/dist/assets/devices-CtyyospS.js +2 -0
  36. package/dist/assets/{devices-virtual.constants-Ckcs-m8t.js → devices-virtual.constants-D0L6zhgQ.js} +1 -1
  37. package/dist/assets/devices.constants-DHQemX04.js +1 -0
  38. package/dist/assets/{dialog-BKnLpTNm.js → dialog-4clb5GeY.js} +1 -1
  39. package/dist/assets/{drawer-Bv6YcfZX.js → drawer-Dnlv6Zc7.js} +1 -1
  40. package/dist/assets/form-Wa6uIXea.js +12 -0
  41. package/dist/assets/index-BjcVMorB.js +11 -0
  42. package/dist/assets/index-CV45di_J.css +1 -0
  43. package/dist/assets/input-number-Cqu-p2BC.js +1 -0
  44. package/dist/assets/integration-config-dialog-DWcOAIcd.js +1 -0
  45. package/dist/assets/{keys-BYonWGX0.js → keys-BMDz3FOI.js} +1 -1
  46. package/dist/assets/{keys-DghNVBR5.js → keys-DMEIfK2a.js} +1 -1
  47. package/dist/assets/{layout-config-Cjya-WMb.js → layout-config-TRoVTCgx.js} +1 -1
  48. package/dist/assets/{layout-default-CS5XwxjF.js → layout-default-CUOZ4MAi.js} +1 -1
  49. package/dist/assets/{layout-lock-CoJt4ng5.js → layout-lock-C-s1eZ35.js} +1 -1
  50. package/dist/assets/layout-profile-CMTEn6TJ.js +1 -0
  51. package/dist/assets/{layout-profile-DaySzWNs.js → layout-profile-D1uL3lv-.js} +1 -1
  52. package/dist/assets/layout-sign-0Gx0uVg6.js +1 -0
  53. package/dist/assets/{layout-sign-BR-IRKTg.js → layout-sign-MILHx4Av.js} +1 -1
  54. package/dist/assets/{list-data-sources-adjust-C1BWaGAY.js → list-data-sources-adjust-BRhmPWJF.js} +1 -1
  55. package/dist/assets/{list-locations-B_k17JmN.js → list-locations-CE_JzOaE.js} +1 -1
  56. package/dist/assets/{list-users-Dtqpo3YK.js → list-users-1kC5_j5X.js} +1 -1
  57. package/dist/assets/logs-entries.transformers-Bp2zoFAY.js +1 -0
  58. package/dist/assets/{mcp.exceptions-DqhuYDrK.js → mcp.exceptions-cay0WaYC.js} +1 -1
  59. package/dist/assets/notifications.exceptions-Deqj0F89.js +1 -0
  60. package/dist/assets/{omit-DRbsINX4.js → omit-Dl8Tg7dR.js} +1 -1
  61. package/dist/assets/{page-configure-Bt3Zbbmn.js → page-configure-Dn69RQ5P.js} +1 -1
  62. package/dist/assets/{page-configure-CVQE_kOC.js → page-configure-Dz17Sp3H.js} +1 -1
  63. package/dist/assets/{pagination-CFSm62Hu.js → pagination-BFOA9Lqt.js} +1 -1
  64. package/dist/assets/{radio-Cmy69XUu.js → radio-DvF3ArlX.js} +1 -1
  65. package/dist/assets/{scene-add-form-CyeR3pxj.js → scene-add-form-telggkNn.js} +1 -1
  66. package/dist/assets/{scene-edit-form-dBV9baT5.js → scene-edit-form-D6fUKT6Q.js} +1 -1
  67. package/dist/assets/schemas.utils-fK_cgNcT.js +1 -0
  68. package/dist/assets/select-CTZp3DyT.js +1 -0
  69. package/dist/assets/{select-data-source-plugin-CgTE90rj.js → select-data-source-plugin-BMvwgPrL.js} +1 -1
  70. package/dist/assets/{slider-B7Mhws2_.js → slider-CaVuBQD9.js} +1 -1
  71. package/dist/assets/{spaces-DUnXUSuq.js → spaces-DVdwHxsH.js} +2 -2
  72. package/dist/assets/spaces-home-control.constants-BgmjmN0q.js +1 -0
  73. package/dist/assets/{steps-ChWGGNoh.js → steps-DuddYjrb.js} +1 -1
  74. package/dist/assets/system-BmVtHSSn.js +2 -0
  75. package/dist/assets/{table-CP4k6PuT.js → table-CeNNpGH7.js} +1 -1
  76. package/dist/assets/{tabs-BlmPldJW.js → tabs-CXWSFwGj.js} +1 -1
  77. package/dist/assets/{tile-detail-BbYkd7G4.js → tile-detail-DrEapGjL.js} +1 -1
  78. package/dist/assets/{tile-edit-form-DiShECn4.js → tile-edit-form-CCaFW-XS.js} +1 -1
  79. package/dist/assets/types-CE88rjDb.js +1 -0
  80. package/dist/assets/types-gvL9TxC-.js +1 -0
  81. package/dist/assets/{use-dialog-BFPWhCwQ.js → use-dialog-Dy1ldJel.js} +1 -1
  82. package/dist/assets/{use-ordered-children-CbAW48y2.js → use-ordered-children-DEKYVxDi.js} +1 -1
  83. package/dist/assets/{useBuddyChat-BQeijZgm.js → useBuddyChat-BAy2-Ry5.js} +1 -1
  84. package/dist/assets/{useConfigModule-l8zp4LY1.js → useConfigModule-CJHOZRLY.js} +1 -1
  85. package/dist/assets/{useDataSources-CI2pLb0w.js → useDataSources-XOQc7nLH.js} +1 -1
  86. package/dist/assets/{useDevicesPlugins-IYuPoZmZ.js → useDevicesPlugins-DEYJEOHX.js} +1 -1
  87. package/dist/assets/useEventBus-CPELSGhQ.js +1 -0
  88. package/dist/assets/useExtensions-ChNl1Nvt.js +1 -0
  89. package/dist/assets/useGeolocation-Corncs7O.js +2 -0
  90. package/dist/assets/useLocation-BpcB0mED.js +1 -0
  91. package/dist/assets/{useMcpClients-D44DSCoV.js → useMcpClients-DLp6nlKS.js} +1 -1
  92. package/dist/assets/{useModule-CGQr8Yht.js → useModule-BzC-HPHF.js} +1 -1
  93. package/dist/assets/{useModules-BqwGbI5l.js → useModules-C_VhvJHC.js} +1 -1
  94. package/dist/assets/{useNumberFormat-CLztaSFk.js → useNumberFormat-BR5R6xq8.js} +1 -1
  95. package/dist/assets/{usePage-D3Y3z-Z-.js → usePage-CafNhHit.js} +1 -1
  96. package/dist/assets/{usePersonalTokens-DwMWVRNS.js → usePersonalTokens-CzAHNnO2.js} +1 -1
  97. package/dist/assets/{usePlugin-DQ16ENWC.js → usePlugin-CQedVYWO.js} +1 -1
  98. package/dist/assets/{usePlugins-BAUrRkxK.js → usePlugins-CLZiBdYY.js} +1 -1
  99. package/dist/assets/useSpaces-CPYe_mwZ.js +1 -0
  100. package/dist/assets/{useUuid-B2AwaEQg.js → useUuid-D7PWqngt.js} +1 -1
  101. package/dist/assets/{view-buddy-chat-DpaYzexP.js → view-buddy-chat-BedBKSKL.js} +1 -1
  102. package/dist/assets/{view-card-add-BcIFVzzf.js → view-card-add-pt5m96qu.js} +1 -1
  103. package/dist/assets/view-card-edit-DXjl5oBU.js +1 -0
  104. package/dist/assets/{view-channel-vLXMY5of.js → view-channel-64nczy-k.js} +1 -1
  105. package/dist/assets/{view-channel-add-D9FB9I0d.js → view-channel-add-LCuEsNGM.js} +1 -1
  106. package/dist/assets/{view-channel-edit-BMC2n_jY.js → view-channel-edit-VfS9LNDh.js} +1 -1
  107. package/dist/assets/{view-channel-property-add-DMGQZ9QS.js → view-channel-property-add-DuQwYddG.js} +1 -1
  108. package/dist/assets/view-channel-property-edit-D0tBEGc6.js +1 -0
  109. package/dist/assets/view-channels-DVajMl_q.js +1 -0
  110. package/dist/assets/view-config-module-edit-B5Bac46h.js +1 -0
  111. package/dist/assets/{view-config-modules-Culfv_bK.js → view-config-modules-Bay5nICT.js} +1 -1
  112. package/dist/assets/view-config-plugin-edit-C7tkLRb8.js +1 -0
  113. package/dist/assets/{view-config-plugins-CK0vdPmj.js → view-config-plugins-Cb7qeQ6t.js} +1 -1
  114. package/dist/assets/view-data-source-add-BwwcOapn.js +1 -0
  115. package/dist/assets/{view-data-source-add-_7ip7mrf.js → view-data-source-add-C-YsEqNf.js} +1 -1
  116. package/dist/assets/{view-data-source-edit-CoUrprKG.js → view-data-source-edit-3a7uStGk.js} +1 -1
  117. package/dist/assets/{view-data-source-edit-DrlMJPDn.js → view-data-source-edit-Bjpg7BqJ.js} +1 -1
  118. package/dist/assets/view-device-BaGiuvzW.js +1 -0
  119. package/dist/assets/view-device-add-BtVlgtjS.js +1 -0
  120. package/dist/assets/view-device-control-BeeMDcA5.js +1 -0
  121. package/dist/assets/{view-device-edit-DoQRQB09.js → view-device-edit-BihbDRAo.js} +1 -1
  122. package/dist/assets/{view-devices-_LNxDPyf.js → view-devices-BXx_kR8z.js} +1 -1
  123. package/dist/assets/{view-devices-wizard-DNVtEru3.js → view-devices-wizard-ChTErg-2.js} +1 -1
  124. package/dist/assets/{view-display-pQhEo0QJ.js → view-display-BPX9RiY5.js} +1 -1
  125. package/dist/assets/{view-display-edit-KWE_nXux.js → view-display-edit-C1nr56vB.js} +1 -1
  126. package/dist/assets/{view-display-tokens-BkuVjpd3.js → view-display-tokens-ChsaJMyS.js} +1 -1
  127. package/dist/assets/{view-displays-CHfrmtje.js → view-displays-DvlfLyrG.js} +1 -1
  128. package/dist/assets/view-extension-detail-D17kM3Vm.js +1 -0
  129. package/dist/assets/{view-extensions-BEUE9DZM.js → view-extensions-DrR-zIpE.js} +1 -1
  130. package/dist/assets/view-location-BOJ0Uja9.js +1 -0
  131. package/dist/assets/{view-location-add-CR2vX0YA.js → view-location-add-B_PB1oaL.js} +1 -1
  132. package/dist/assets/view-location-edit-DYuz_sYs.js +1 -0
  133. package/dist/assets/view-locations-dclVguNJ.js +1 -0
  134. package/dist/assets/{view-lock-screen-CvMhzPRT.js → view-lock-screen-C9W836P_.js} +1 -1
  135. package/dist/assets/view-mcp-clients-CxGgawX9.js +1 -0
  136. package/dist/assets/{view-mcp-oauth-consent-CdSzhX8Z.js → view-mcp-oauth-consent-B2aQFOBm.js} +1 -1
  137. package/dist/assets/view-mcp-oauth-management-xnTPjJ36.js +1 -0
  138. package/dist/assets/view-notifications-BKBYRF9F.js +1 -0
  139. package/dist/assets/view-onboarding-BHdDgVMj.js +1 -0
  140. package/dist/assets/{view-page-Zu_2hwIi.js → view-page-DJwQBf8C.js} +1 -1
  141. package/dist/assets/view-page-add-CMkgrgRF.js +1 -0
  142. package/dist/assets/view-page-configure-JhXEhrod.js +1 -0
  143. package/dist/assets/view-page-configure-ho3B4Gtr.js +1 -0
  144. package/dist/assets/view-page-data-source-add-CnP1yn09.js +1 -0
  145. package/dist/assets/{view-page-data-source-edit-DQu21ar1.js → view-page-data-source-edit-D5WExoYy.js} +1 -1
  146. package/dist/assets/{view-page-edit-CWXaQZak.js → view-page-edit-ubc81fqj.js} +1 -1
  147. package/dist/assets/{view-page-plugin-Cfto42Wh.js → view-page-plugin-CtxG2AwO.js} +1 -1
  148. package/dist/assets/{view-pages-BBiRpjJE.js → view-pages-CZR6c3uY.js} +1 -1
  149. package/dist/assets/view-profile-general-CFUrEtJy.js +1 -0
  150. package/dist/assets/view-profile-security-CM-xrNiL.js +1 -0
  151. package/dist/assets/{view-remote-access-DtZM_sYV.js → view-remote-access-DMcIAtbJ.js} +1 -1
  152. package/dist/assets/{view-scene-add-LFcdVTaN.js → view-scene-add-H5f00zTk.js} +1 -1
  153. package/dist/assets/{view-scene-edit-fX-u8fib.js → view-scene-edit-BYUTky-m.js} +1 -1
  154. package/dist/assets/{view-scenes-DWbfoSPZ.js → view-scenes-eWQiAb02.js} +1 -1
  155. package/dist/assets/{view-sign-in-CZRERL0Y.js → view-sign-in-D31IT93n.js} +1 -1
  156. package/dist/assets/{view-sign-up-CrUHPweO.js → view-sign-up-BFvb0t1U.js} +1 -1
  157. package/dist/assets/view-simulator-device-wizard-CQcBfgMn.js +1 -0
  158. package/dist/assets/{view-space-add-BWXeqKGe.js → view-space-add-DLF9C3Az.js} +1 -1
  159. package/dist/assets/{view-space-configure-DpiLxtMc.js → view-space-configure-LA94Bfj9.js} +1 -1
  160. package/dist/assets/{view-space-edit-uz1TPncu.js → view-space-edit-CVBH6AaO.js} +1 -1
  161. package/dist/assets/{view-space-plugin-8dCIw60l.js → view-space-plugin-DALFumLq.js} +1 -1
  162. package/dist/assets/view-spaces-BpplLq0s.js +1 -0
  163. package/dist/assets/{view-spaces-wizard-BKBTNd3t.js → view-spaces-wizard-DTzT5Ajh.js} +1 -1
  164. package/dist/assets/{view-stats-sqy4OQw5.js → view-stats-DmijN6dE.js} +1 -1
  165. package/dist/assets/view-system-backups-DzGLs86e.js +1 -0
  166. package/dist/assets/{view-system-info-SAJnQgbZ.js → view-system-info-Cm7gO8w8.js} +1 -1
  167. package/dist/assets/{view-system-log-detail-De0uz6BL.js → view-system-log-detail-BhmwpL6q.js} +1 -1
  168. package/dist/assets/{view-system-logs-B0eMqnft.js → view-system-logs-9RhBvJ1C.js} +1 -1
  169. package/dist/assets/view-tile-DvsHTEes.js +1 -0
  170. package/dist/assets/{view-tile-add-BXX2-rGD.js → view-tile-add-ChtKYIGF.js} +1 -1
  171. package/dist/assets/{view-tile-add-Cn7SJEqT.js → view-tile-add-DNOx9gjy.js} +1 -1
  172. package/dist/assets/view-tile-data-source-add-C4DB5pJI.js +1 -0
  173. package/dist/assets/{view-tile-data-source-edit-CdWGlpDC.js → view-tile-data-source-edit-BgVjSqCX.js} +1 -1
  174. package/dist/assets/view-tile-edit-C-qWFXGR.js +1 -0
  175. package/dist/assets/{view-tile-edit-XzR_OQfI.js → view-tile-edit-CLNWeo9W.js} +1 -1
  176. package/dist/assets/{view-tile-edit-D80VgTdu.js → view-tile-edit-pikK5iSE.js} +1 -1
  177. package/dist/assets/{view-user-add-MWHxy3nf.js → view-user-add-CITnz-HU.js} +1 -1
  178. package/dist/assets/{view-user-edit-BJeiBIOb.js → view-user-edit-CdKYi6nv.js} +1 -1
  179. package/dist/assets/{view-users-DKrdtOjY.js → view-users-Dz1RKiyE.js} +1 -1
  180. package/dist/assets/view-virtual-device-wizard-DLi2AyTF.js +1 -0
  181. package/dist/assets/weather-BzXvq8lZ.js +2 -0
  182. package/dist/assets/weather-forecast.transformers-vk4s_2pl.js +1 -0
  183. package/dist/index.html +96 -96
  184. package/package.json +1 -1
  185. package/dist/assets/components-1l-XQ9JU.js +0 -6
  186. package/dist/assets/components-B4a-3cag.js +0 -1
  187. package/dist/assets/components-BqvPyJ09.js +0 -2
  188. package/dist/assets/components-CDS0rEqD.js +0 -1
  189. package/dist/assets/components-CGY9a3zE.js +0 -1
  190. package/dist/assets/components-CofHdxQO.js +0 -1
  191. package/dist/assets/components-DJ-PhAdU.js +0 -1
  192. package/dist/assets/components-Dg_-11L_.js +0 -1
  193. package/dist/assets/components-niPBJezT.js +0 -1
  194. package/dist/assets/components-v7BtnQr-.js +0 -8
  195. package/dist/assets/composables-BiL7NDB2.js +0 -1
  196. package/dist/assets/composables-CRIJLd1I.js +0 -1
  197. package/dist/assets/composables-CdLuPMLl.js +0 -1
  198. package/dist/assets/composables-CuDyfiS0.js +0 -1
  199. package/dist/assets/composables-DNfuP9v9.js +0 -1
  200. package/dist/assets/composables-DrSNDrtP.js +0 -1
  201. package/dist/assets/composables-ZUeIfONp.js +0 -1
  202. package/dist/assets/config-CIAUSdP7.js +0 -2
  203. package/dist/assets/dashboard.types-FCvSt30R.js +0 -1
  204. package/dist/assets/devices-Cx9K7dqW.js +0 -2
  205. package/dist/assets/devices.constants-HX5whDWr.js +0 -1
  206. package/dist/assets/form-CYGBQyZI.js +0 -12
  207. package/dist/assets/index-CRKyZO94.js +0 -9
  208. package/dist/assets/index-E5bAVcL9.css +0 -1
  209. package/dist/assets/input-number-DcR-vPr4.js +0 -1
  210. package/dist/assets/integration-config-dialog-CfcgPh5F.js +0 -1
  211. package/dist/assets/layout-profile-BH6_ndbj.js +0 -1
  212. package/dist/assets/layout-sign-lJc9My5g.js +0 -1
  213. package/dist/assets/logs-entries.transformers-CZw7f53p.js +0 -1
  214. package/dist/assets/notifications.exceptions-CTWKr2hv.js +0 -1
  215. package/dist/assets/schemas.utils-DPM2Btj1.js +0 -1
  216. package/dist/assets/select-BE-J6w_y.js +0 -1
  217. package/dist/assets/spaces-home-control.constants-DR2Pcn9V.js +0 -1
  218. package/dist/assets/system-DVGufF5G.js +0 -2
  219. package/dist/assets/types-BFzk34Iy.js +0 -1
  220. package/dist/assets/types-jnyNKIzd.js +0 -1
  221. package/dist/assets/useEventBus-C7h8fK0M.js +0 -1
  222. package/dist/assets/useExtensions-mIxpx3RO.js +0 -1
  223. package/dist/assets/useGeolocation-DlU1KRo-.js +0 -2
  224. package/dist/assets/useLocation-CKsKAhov.js +0 -1
  225. package/dist/assets/useSpaces-dSwttzjs.js +0 -1
  226. package/dist/assets/view-card-edit-BbS-QIUa.js +0 -1
  227. package/dist/assets/view-channel-property-edit-DZPQoC26.js +0 -1
  228. package/dist/assets/view-channels-Bo16Lq4L.js +0 -1
  229. package/dist/assets/view-config-module-edit-BFQDbwC6.js +0 -1
  230. package/dist/assets/view-config-plugin-edit-DX364xd_.js +0 -1
  231. package/dist/assets/view-data-source-add-Bzb-61aK.js +0 -1
  232. package/dist/assets/view-device-B6vGkfF5.js +0 -1
  233. package/dist/assets/view-device-add-BjIlyY6E.js +0 -1
  234. package/dist/assets/view-device-control-DdEXyVpn.js +0 -1
  235. package/dist/assets/view-extension-detail-BzdALouU.js +0 -1
  236. package/dist/assets/view-location-Cv4_QxT3.js +0 -1
  237. package/dist/assets/view-location-edit-CPXCB6Ty.js +0 -1
  238. package/dist/assets/view-locations-DYzQbnuC.js +0 -1
  239. package/dist/assets/view-mcp-clients-CXdQQbgy.js +0 -1
  240. package/dist/assets/view-mcp-oauth-management-u-zf8VgR.js +0 -1
  241. package/dist/assets/view-notifications-Cg2TL1DH.js +0 -1
  242. package/dist/assets/view-onboarding-DTDmluyn.js +0 -1
  243. package/dist/assets/view-page-add-CKANfB0w.js +0 -1
  244. package/dist/assets/view-page-configure-C-eA0dC4.js +0 -1
  245. package/dist/assets/view-page-configure-C5n0g4eO.js +0 -1
  246. package/dist/assets/view-page-data-source-add-7ItspGgj.js +0 -1
  247. package/dist/assets/view-profile-general-D_6x0Tyu.js +0 -1
  248. package/dist/assets/view-profile-security-BgZi5Vkz.js +0 -1
  249. package/dist/assets/view-simulator-device-wizard-DO1CpTZ7.js +0 -1
  250. package/dist/assets/view-spaces-BlGL7Tsw.js +0 -1
  251. package/dist/assets/view-system-backups-DRhdTizI.js +0 -1
  252. package/dist/assets/view-tile-CdKYi0pR.js +0 -1
  253. package/dist/assets/view-tile-data-source-add-pxfcE43r.js +0 -1
  254. package/dist/assets/view-tile-edit-rO9uSt8e.js +0 -1
  255. package/dist/assets/view-virtual-device-wizard-CCj2n1FE.js +0 -1
  256. package/dist/assets/weather-DMmOelu3.js +0 -2
  257. package/dist/assets/weather-forecast.transformers-BKEpj85v.js +0 -1
@@ -1 +0,0 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{A as e,Ar as t,D as n,Di as r,Dr as i,E as a,Er as o,Gr as s,H as c,Ki as l,Mr as u,Mt as d,Nr as f,O as p,Or as m,Pr as h,Qr as g,Si as _,T as v,Vr as y,Wi as b,Wr as x,Yr as S,_i as C,bi as w,ci as T,di as E,ei as D,ji as O,jr as k,k as A,kr as j,qi as M,t as N,ui as P,xr as F,yr as I}from"./icon-with-child-CgZMNB3F.js";import{$r as L,An as R,Cn as z,Cr as B,Dr as ee,It as te,Jr as V,Mr as H,Nr as ne,Or as U,Pr as W,Sn as G,Sr as re,Ur as K,Xn as q,Xr as ie,gr as ae,hr as oe,j as se,jr as ce,kr as le,qr as ue,vr as J,wr as de,xn as fe,xr as pe}from"./common-CEAYa_VX.js";import{n as Y,t as me}from"./table-CP4k6PuT.js";import{n as he,t as ge}from"./form-CYGBQyZI.js";import{t as _e}from"./skeleton-DkyCzTs7.js";import{t as ve}from"./alert-B_504iE8.js";import{t as ye}from"./input-number-DcR-vPr4.js";import{r as X,t as Z}from"./select-BE-J6w_y.js";import{t as Q}from"./card-C50YgvLJ.js";import{n as $,r as be}from"./radio-Cmy69XUu.js";import{n as xe,t as Se}from"./collapse-CcS8OeLM.js";import{t as Ce}from"./drawer-Bv6YcfZX.js";import{t as we}from"./empty-DvXiCUNF.js";import{t as Te}from"./pagination-CFSm62Hu.js";import{g as Ee}from"./components-1l-XQ9JU.js";import{n as De,t as Oe}from"./tabs-BlmPldJW.js";import{t as ke}from"./directive-D42ORGRu.js";import"./system-DVGufF5G.js";import{n as Ae,o as je}from"./composables-DIjPmeHV.js";var Me={class:`p-4`},Ne={class:`text-sm font-semibold uppercase tracking-wide mb-2 text-gray-500`},Pe={class:`grid grid-cols-1 gap-3`},Fe={class:`flex items-start gap-3`},Ie={key:0,class:`shrink-0 mt-1`},Le={class:`flex-1 min-w-0`},Re={class:`flex items-center gap-2 mb-1`},ze={class:`font-medium`},Be={key:0,class:`text-sm text-gray-500 m-0 mb-3`},Ve={class:`truncate flex-1`},He={class:`shrink-0`},Ue={class:`shrink-0`},We={class:`shrink-0`},Ge=h({name:`ExtensionActions`,__name:`extension-actions`,props:{extensionType:{}},setup(e){let r=e,{t:a}=v(),{actions:s,isLoading:c,executingActions:l,executeAction:d,fetchActionHistory:p}=te(),h=w({}),_=w({}),y=w({}),x=e=>new Date(e).toLocaleString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`}),S=async e=>{y[e]=await p(r.extensionType,e)},C=e=>(h[e]||(h[e]={}),h[e]),E=(e,t)=>C(e)[t],N=(e,t,n)=>{C(e)[t]=n},I=(e,t)=>C(e)[t],R=(e,t,n)=>{C(e)[t]=n},z=(e,t)=>{let n=C(e)[t];return typeof n==`boolean`&&n},B=(e,t,n)=>{C(e)[t]=n},V=(e,t)=>{let n=C(e)[t];return Array.isArray(n)?void 0:n},H=(e,t,n)=>{C(e)[t]=n},ne=(e,t)=>{let n=C(e)[t];return Array.isArray(n)?n:[]},W=(e,t,n)=>{C(e)[t]=n},G=()=>{let e=new Set(s.value.map(e=>e.id));for(let t of Object.keys(h))e.has(t)||delete h[t];for(let t of Object.keys(_))e.has(t)||delete _[t];for(let t of Object.keys(y))e.has(t)||delete y[t];for(let e of s.value){h[e.id]={};for(let t of e.parameters??[])t.default!==void 0&&(h[e.id][t.name]=t.default)}},re=o(()=>{let e={};for(let t of s.value){let n=t.category??`general`;e[n]||(e[n]=[]),e[n].push(t)}return Object.entries(e).map(([e,t])=>({name:e,actions:t}))}),q=async e=>{if(e.dangerous)try{await ee.confirm(a(`extensionsModule.actions.messages.confirmDangerous`),e.label,{confirmButtonText:a(`extensionsModule.actions.buttons.confirm`),cancelButtonText:a(`extensionsModule.actions.buttons.cancel`),type:`warning`})}catch{return}delete _[e.id];let t=h[e.id]??{},n=await d(r.extensionType,e.id,t);_[e.id]=n,S(e.id)};return T(s,()=>{G();for(let e of s.value)S(e.id)},{immediate:!0}),(e,r)=>(g(),t(`div`,Me,[O(c)?(g(),m(O(_e),{key:0,rows:4,animated:``})):O(s).length===0?(g(),m(O(we),{key:1,description:O(a)(`extensionsModule.actions.messages.noActions`)},null,8,[`description`])):(g(!0),t(F,{key:2},D(re.value,e=>(g(),t(`div`,{key:e.name,class:`mb-4`},[i(`h4`,Ne,M(O(a)(`extensionsModule.actions.labels.category.${e.name}`)),1),i(`div`,Pe,[(g(!0),t(F,null,D(e.actions,e=>(g(),m(O(Q),{key:e.id,shadow:`hover`,"body-class":`p-4!`},{default:P(()=>[i(`div`,Fe,[e.icon?(g(),t(`div`,Ie,[f(O(n),{icon:e.icon,class:`w-6 h-6 text-gray-500`},null,8,[`icon`])])):j(``,!0),i(`div`,Le,[i(`div`,Re,[i(`span`,ze,M(e.label),1),e.mode===`interactive`?(g(),m(O(K),{key:0,size:`small`,type:`info`},{default:P(()=>[u(M(O(a)(`extensionsModule.actions.labels.comingSoon`)),1)]),_:1})):j(``,!0),e.dangerous?(g(),m(O(K),{key:1,size:`small`,type:`danger`},{default:P(()=>[u(M(O(a)(`extensionsModule.actions.labels.dangerous`)),1)]),_:1})):j(``,!0)]),e.description?(g(),t(`p`,Be,M(e.description),1)):j(``,!0),e.mode===`immediate`&&e.parameters?.length?(g(),m(O(ge),{key:1,model:C(e.id),"label-position":`top`,class:`mb-3`,size:`small`},{default:P(()=>[(g(!0),t(F,null,D(e.parameters,n=>(g(),m(O(he),{key:n.name,label:n.label,class:`mb-2!`},k({default:P(()=>[n.type===`string`?(g(),m(O(ie),{key:0,"model-value":E(e.id,n.name),placeholder:n.label,"onUpdate:modelValue":t=>N(e.id,n.name,t)},null,8,[`model-value`,`placeholder`,`onUpdate:modelValue`])):n.type===`number`?(g(),m(O(ye),{key:1,"model-value":I(e.id,n.name),min:n.validation?.min,max:n.validation?.max,"controls-position":`right`,class:`w-full!`,"onUpdate:modelValue":t=>R(e.id,n.name,t)},null,8,[`model-value`,`min`,`max`,`onUpdate:modelValue`])):n.type===`boolean`?(g(),m(O(le),{key:2,"model-value":z(e.id,n.name),"onUpdate:modelValue":t=>B(e.id,n.name,!!t)},null,8,[`model-value`,`onUpdate:modelValue`])):n.type===`select`?(g(),m(O(X),{key:3,"model-value":V(e.id,n.name),placeholder:n.label,class:`w-full!`,"onUpdate:modelValue":t=>H(e.id,n.name,t)},{default:P(()=>[(g(!0),t(F,null,D(n.options,e=>(g(),m(O(Z),{key:String(e.value),label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`onUpdate:modelValue`])):n.type===`multi_select`?(g(),m(O(X),{key:4,"model-value":ne(e.id,n.name),placeholder:n.label,multiple:``,class:`w-full!`,"onUpdate:modelValue":t=>W(e.id,n.name,t)},{default:P(()=>[(g(!0),t(F,null,D(n.options,e=>(g(),m(O(Z),{key:String(e.value),label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:2},1032,[`model-value`,`placeholder`,`onUpdate:modelValue`])):j(``,!0)]),_:2},[n.description||n.required?{name:`label`,fn:P(()=>[i(`span`,null,M(n.label),1),n.required?(g(),m(O(U),{key:0,type:`danger`,class:`ml-1`},{default:P(()=>[...r[0]||=[u(` * `,-1)]]),_:1})):j(``,!0),n.description?(g(),m(O(U),{key:1,class:`block text-xs! font-normal`,type:`info`},{default:P(()=>[u(M(n.description),1)]),_:2},1024)):j(``,!0)]),key:`0`}:void 0]),1032,[`label`]))),128))]),_:2},1032,[`model`])):j(``,!0),_[e.id]?(g(),m(O(ve),{key:2,type:_[e.id].success?`success`:`error`,title:_[e.id].message||(_[e.id].success?O(a)(`extensionsModule.actions.messages.success`):O(a)(`extensionsModule.actions.messages.error`)),"show-icon":``,closable:``,class:`mb-2`,onClose:t=>delete _[e.id]},null,8,[`type`,`title`,`onClose`])):j(``,!0),y[e.id]?.length?(g(),m(O(Se),{key:3,class:`mt-2`},{default:P(()=>[f(O(xe),{title:O(a)(`extensionsModule.actions.labels.history`,{count:y[e.id].length})},{default:P(()=>[(g(!0),t(F,null,D(y[e.id],e=>(g(),t(`div`,{key:e.id,class:`flex items-center gap-2 py-1 text-xs text-gray-500 border-b border-gray-100 last:border-b-0`},[f(O(n),{icon:e.success?`mdi:check-circle`:`mdi:alert-circle`,class:b([e.success?`text-green-500`:`text-red-500`,`w-4 h-4 shrink-0`])},null,8,[`icon`,`class`]),i(`span`,Ve,M(e.message||(e.success?O(a)(`extensionsModule.actions.messages.success`):O(a)(`extensionsModule.actions.messages.error`))),1),i(`span`,He,M(e.duration_ms)+`ms`,1),i(`span`,Ue,M(x(e.timestamp)),1)]))),128))]),_:2},1032,[`title`])]),_:2},1024)):j(``,!0)]),i(`div`,We,[e.mode===`immediate`&&e.allowed===!1?(g(),m(O(L),{key:0,content:O(a)(`extensionsModule.actions.messages.insufficientPermissions`)},{default:P(()=>[f(O(A),{type:`primary`,disabled:``},{icon:P(()=>[f(O(n),{icon:`mdi:lock`})]),default:P(()=>[u(` `+M(O(a)(`extensionsModule.actions.buttons.run`)),1)]),_:1})]),_:1},8,[`content`])):e.mode===`immediate`?(g(),m(O(A),{key:1,type:`primary`,loading:O(l).has(e.id),disabled:O(l).has(e.id),onClick:t=>q(e)},{icon:P(()=>[f(O(n),{icon:`mdi:play`})]),default:P(()=>[u(` `+M(O(a)(`extensionsModule.actions.buttons.run`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`])):(g(),m(O(L),{key:2,content:O(a)(`extensionsModule.actions.messages.interactiveNotAvailable`)},{default:P(()=>[f(O(A),{disabled:``},{icon:P(()=>[f(O(n),{icon:`mdi:console`})]),default:P(()=>[u(` `+M(O(a)(`extensionsModule.actions.buttons.run`)),1)]),_:1})]),_:1},8,[`content`]))])])]),_:2},1024))),128))])]))),128))]))}}),Ke={class:`extension-card__header`},qe={class:`extension-card__header-content`},Je={class:`extension-card__title`},Ye={class:`extension-card__tags`},Xe={class:`extension-card__content`},Ze={key:0,class:`extension-card__description`},Qe={key:1,class:`extension-card__description extension-card__description--empty`},$e={class:`extension-card__meta`},et={key:0,class:`extension-card__meta-item`},tt={key:1,class:`extension-card__author`},nt={class:`extension-card__footer`},rt={class:`extension-card__links`},it={class:`flex items-center w-full`},at={class:`flex items-center w-full`},ot=a(h({name:`ExtensionCard`,__name:`extension-card`,props:{extension:{}},emits:[`toggle-enabled`,`detail`],setup(e,{emit:r}){let a=e,s=r,{t:c}=v(),l=o(()=>a.extension.kind===R.module?`mdi:package-variant`:`mdi:toy-brick`),d=o(()=>a.extension.isCore&&a.extension.kind===R.module?c(`extensionsModule.tooltips.coreModuleCannotBeDisabled`):c(`extensionsModule.tooltips.cannotToggleEnabled`)),p=o(()=>a.extension.isCore?c(`extensionsModule.tooltips.coreCannotBeRemoved`):c(`extensionsModule.tooltips.removeNotSupported`)),h=()=>{s(`detail`,a.extension.type)},_=e=>{switch(e){case`enable`:s(`toggle-enabled`,a.extension.type,!0);break;case`disable`:s(`toggle-enabled`,a.extension.type,!1);break;case`delete`:break}},y=e=>{window.open(e,`_blank`,`noopener,noreferrer`)};return(r,a)=>(g(),m(O(Q),{class:b([`extension-card`,{"extension-card--disabled":!e.extension.enabled}]),shadow:`hover`,"header-class":`py-2!`,"body-class":`py-3!`,"footer-class":`py-2! px-4!`},{header:P(()=>[i(`div`,Ke,[f(O(n),{icon:l.value,class:`extension-card__icon`},null,8,[`icon`]),i(`div`,qe,[i(`h3`,Je,M(e.extension.name),1),i(`div`,Ye,[f(O(K),{type:e.extension.kind===O(R).module?`primary`:`success`,size:`small`},{default:P(()=>[u(M(e.extension.kind===O(R).module?O(c)(`extensionsModule.labels.module`):O(c)(`extensionsModule.labels.plugin`)),1)]),_:1},8,[`type`]),e.extension.isCore?(g(),m(O(K),{key:0,type:`warning`,size:`small`},{default:P(()=>[u(M(O(c)(`extensionsModule.labels.core`)),1)]),_:1})):j(``,!0),f(O(K),{type:e.extension.enabled?`success`:`info`,size:`small`},{default:P(()=>[u(M(e.extension.enabled?O(c)(`extensionsModule.labels.enabled`):O(c)(`extensionsModule.labels.disabled`)),1)]),_:1},8,[`type`])])])])]),footer:P(()=>[i(`div`,nt,[i(`div`,rt,[e.extension.links?.documentation?(g(),m(O(A),{key:0,type:`primary`,size:`small`,link:``,onClick:a[0]||=I(t=>y(e.extension.links.documentation),[`stop`])},{default:P(()=>[f(O(n),{icon:`mdi:book-open-page-variant`,class:`mr-1`}),u(` `+M(O(c)(`extensionsModule.buttons.documentation`)),1)]),_:1})):j(``,!0),e.extension.links?.repository?(g(),m(O(A),{key:1,type:`primary`,size:`small`,link:``,onClick:a[1]||=I(t=>y(e.extension.links.repository),[`stop`])},{default:P(()=>[f(O(n),{icon:`mdi:github`,class:`mr-1`}),u(` `+M(O(c)(`extensionsModule.buttons.repository`)),1)]),_:1})):j(``,!0),e.extension.links?.bugsTracking?(g(),m(O(A),{key:2,type:`primary`,size:`small`,link:``,onClick:a[2]||=I(t=>y(e.extension.links.bugsTracking),[`stop`])},{default:P(()=>[f(O(n),{icon:`mdi:bug`,class:`mr-1`}),u(` `+M(O(c)(`extensionsModule.buttons.issues`)),1)]),_:1})):j(``,!0)]),f(O(ce),{"split-button":``,size:`small`,trigger:`click`,onClick:h,onCommand:_},{dropdown:P(()=>[f(O(ne),null,{default:P(()=>[f(O(H),{command:e.extension.enabled?`disable`:`enable`,disabled:!e.extension.canToggleEnabled},{default:P(()=>[f(O(L),{content:d.value,disabled:e.extension.canToggleEnabled,placement:`left`},{default:P(()=>[i(`span`,it,[f(O(n),{icon:e.extension.enabled?`mdi:toggle-switch-off`:`mdi:toggle-switch`,class:`mr-2`},null,8,[`icon`]),u(` `+M(e.extension.enabled?O(c)(`extensionsModule.buttons.disable`):O(c)(`extensionsModule.buttons.enable`)),1)])]),_:1},8,[`content`,`disabled`])]),_:1},8,[`command`,`disabled`]),f(O(H),{command:`delete`,disabled:``,divided:``},{default:P(()=>[f(O(L),{content:p.value,placement:`left`},{default:P(()=>[i(`span`,at,[f(O(n),{icon:`mdi:delete`,class:`mr-2`}),u(` `+M(O(c)(`extensionsModule.buttons.remove`)),1)])]),_:1},8,[`content`])]),_:1})]),_:1})]),default:P(()=>[u(M(O(c)(`extensionsModule.buttons.detail.title`))+` `,1)]),_:1})])]),default:P(()=>[i(`div`,Xe,[e.extension.description?(g(),t(`p`,Ze,M(e.extension.description),1)):(g(),t(`p`,Qe,M(O(c)(`extensionsModule.messages.noDescription`)),1)),i(`div`,$e,[e.extension.version?(g(),t(`div`,et,[f(O(n),{icon:`mdi:tag`,class:`extension-card__meta-icon`}),i(`span`,null,M(e.extension.version),1)])):j(``,!0),e.extension.author?(g(),t(`div`,tt,[f(O(n),{icon:`mdi:account`,class:`extension-card__author-icon`}),i(`span`,null,M(e.extension.author),1)])):j(``,!0)])])]),_:1},8,[`class`]))}}),[[`__scopeId`,`data-v-32ba1b6c`]]),st={class:`h-full w-full flex flex-col`},ct={class:`flex items-center justify-between p-2 border-b`},lt={class:`flex items-center gap-2`},ut={class:`flex items-center gap-2`},dt={key:0,class:`flex-1 flex items-center justify-center`},ft={key:1,class:`flex-1 flex items-center justify-center`},pt={key:2,class:`flex-1 flex items-center justify-center`},mt=[`onClick`],ht={class:`grid grid-cols-[140px_70px_1fr] gap-3 items-center`},gt={class:`font-mono text-xs`},_t={class:`truncate text-sm`},vt={class:`py-3 text-center`},yt={key:0,class:`text-xs text-gray-400`},bt={class:`flex flex-col h-full`},xt={class:`flex flex-col overflow-hidden h-full`},St=h({name:`ExtensionLogs`,__name:`extension-logs`,props:{extensionType:{},live:{type:Boolean}},emits:[`update:live`],setup(e,{emit:a}){let s=e,l=a,{t:d}=v(),{logs:h,hasMore:b,isLoading:S,loaded:w,live:k,filterLevels:I,filterTimeRange:R,filtersActive:z,clearFilters:ee,fetchLogs:te,loadMoreLogs:H,refreshLogs:ne}=Ae({extensionType:r(()=>s.extensionType)}),U=J(s,`live`,l,{defaultValue:!1}),W=_(null),G=o({get:()=>W.value!==null,set:e=>{e||(W.value=null)}}),ie=[q.error,q.warn,q.info,q.debug,q.fatal,q.log,q.success,q.fail],oe=o(()=>[{value:`all`,label:d(`extensionsModule.texts.logs.timeRange.all`)},{value:`1h`,label:d(`extensionsModule.texts.logs.timeRange.1h`)},{value:`6h`,label:d(`extensionsModule.texts.logs.timeRange.6h`)},{value:`24h`,label:d(`extensionsModule.texts.logs.timeRange.24h`)},{value:`7d`,label:d(`extensionsModule.texts.logs.timeRange.7d`)}]);T(U,e=>{k.value=e},{immediate:!0}),T(k,e=>{U.value=e});let se=()=>{ne()},ce=()=>{H()},ue=e=>ae(new Date(e)),fe=e=>new Date(e).toISOString(),Y=e=>{let t=e.toLowerCase();return[`fatal`,`error`,`fail`].includes(t)?{type:`danger`,effect:`light`}:[`warn`,`box`].includes(t)?{type:`warning`,effect:`light`}:[`success`,`ready`,`start`,`info`,`log`].includes(t)?{type:`success`,effect:`light`}:{effect:`plain`,class:`tag-neutral`}};return x(()=>{te()}),(e,r)=>(g(),t(`div`,st,[i(`div`,ct,[i(`div`,lt,[f(O(A),{size:`small`,onClick:se},{icon:P(()=>[f(O(n),{icon:`mdi:refresh`})]),default:P(()=>[u(` `+M(O(d)(`extensionsModule.buttons.refresh`)),1)]),_:1}),f(O(le),{modelValue:O(U),"onUpdate:modelValue":r[0]||=e=>C(U)?U.value=e:null,size:`small`,"active-text":O(d)(`extensionsModule.labels.live`)},null,8,[`modelValue`,`active-text`])]),i(`div`,ut,[f(O(X),{modelValue:O(I),"onUpdate:modelValue":r[1]||=e=>C(I)?I.value=e:null,size:`small`,class:`w-[200px]!`,clearable:``,multiple:``,"collapse-tags":``,"collapse-tags-tooltip":``,placeholder:O(d)(`extensionsModule.texts.logs.allLevels`)},{default:P(()=>[(g(),t(F,null,D(ie,e=>f(O(Z),{key:e,label:O(d)(`systemModule.levels.${e}`),value:e},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`,`placeholder`]),f(O(X),{modelValue:O(R),"onUpdate:modelValue":r[2]||=e=>C(R)?R.value=e:null,size:`small`,class:`w-[140px]!`},{default:P(()=>[(g(!0),t(F,null,D(oe.value,e=>(g(),m(O(Z),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),O(z)?(g(),m(O(A),{key:0,size:`small`,onClick:O(ee)},{icon:P(()=>[f(O(n),{icon:`mdi:filter-off`})]),default:P(()=>[u(` `+M(O(d)(`extensionsModule.buttons.resetFilters.title`)),1)]),_:1},8,[`onClick`])):j(``,!0)])]),!O(w)&&O(S)?(g(),t(`div`,dt,[f(O(p),null,{icon:P(()=>[f(O(N),{size:80},{primary:P(()=>[f(O(n),{icon:`mdi:console`})]),secondary:P(()=>[f(O(n),{icon:`mdi:database-refresh`})]),_:1})]),_:1})])):O(z)&&O(h).length===0?(g(),t(`div`,ft,[f(O(p),null,{icon:P(()=>[f(O(N),{size:80},{primary:P(()=>[f(O(n),{icon:`mdi:console`})]),secondary:P(()=>[f(O(n),{icon:`mdi:filter-multiple`})]),_:1})]),title:P(()=>[u(M(O(d)(`extensionsModule.texts.logs.noFilteredLogs`)),1)]),"sub-title":P(()=>[f(O(A),{type:`primary`,plain:``,class:`mt-2`,onClick:O(ee)},{icon:P(()=>[f(O(n),{icon:`mdi:filter-off`})]),default:P(()=>[u(` `+M(O(d)(`extensionsModule.buttons.resetFilters.title`)),1)]),_:1},8,[`onClick`])]),_:1})])):O(h).length===0?(g(),t(`div`,pt,[f(O(p),null,{icon:P(()=>[f(O(N),{size:80},{primary:P(()=>[f(O(n),{icon:`mdi:console`})]),secondary:P(()=>[f(O(n),{icon:`mdi:information`})]),_:1})]),title:P(()=>[u(M(O(d)(`extensionsModule.texts.logs.noLogs`)),1)]),"sub-title":P(()=>[u(M(O(d)(`extensionsModule.texts.logs.noLogsDescription`)),1)]),_:1})])):E((g(),m(O(V),{key:3,class:`flex-1`},{default:P(()=>[i(`div`,null,[(g(!0),t(F,null,D(O(h),e=>(g(),t(`div`,{key:e.id,class:`px-3 py-2 border-b hover:bg-[var(--el-fill-color-light)] cursor-pointer`,onClick:t=>W.value=e},[i(`div`,ht,[i(`span`,gt,[f(O(L),{content:fe(e.ts),placement:`top-start`},{default:P(()=>[u(M(ue(e.ts)),1)]),_:2},1032,[`content`])]),f(O(K),y({ref_for:!0},Y(e.type),{size:`small`,class:`justify-self-start`}),{default:P(()=>[u(M(e.type),1)]),_:2},1040),i(`div`,_t,M(e.message??O(d)(`extensionsModule.texts.logs.noMessage`)),1)])],8,mt))),128)),i(`div`,vt,[O(b)?j(``,!0):(g(),t(`span`,yt,M(O(d)(`extensionsModule.texts.logs.noMoreEntries`)),1)),O(b)?(g(),m(O(A),{key:1,loading:O(S),onClick:ce},{icon:P(()=>[f(O(n),{icon:`mdi:chevron-down`})]),default:P(()=>[u(` `+M(O(d)(`extensionsModule.buttons.loadMore`)),1)]),_:1},8,[`loading`])):j(``,!0)])])]),_:1})),[[O(ke),O(S)&&O(h).length>0]]),f(O(Ce),{modelValue:G.value,"onUpdate:modelValue":r[4]||=e=>G.value=e,"show-close":!1,"with-header":!1,direction:`rtl`,size:`40%`},{default:P(()=>[i(`div`,bt,[f(O(de),{"menu-button-hidden":``},{"button-right":P(()=>[f(O(re),{align:O(B).RIGHT,class:`mr-2`,onClick:r[3]||=e=>W.value=null},{icon:P(()=>[f(O(c),null,{default:P(()=>[f(O(n),{icon:`mdi:close`})]),_:1})]),_:1},8,[`align`])]),_:1}),f(O(pe),{teleport:``},{icon:P(()=>[f(O(n),{icon:`mdi:note-text-outline`,class:`w[20px] h[20px]`})]),title:P(()=>[u(M(O(d)(`systemModule.headings.systemLogs.detail`)),1)]),subtitle:P(()=>[u(M(O(d)(`systemModule.subHeadings.systemLogs.detail`)),1)]),_:1}),i(`div`,xt,[W.value?(g(),m(O(V),{key:0,class:`grow-1 p-2 md:px-4`},{default:P(()=>[f(O(Ee),{"system-log":W.value},null,8,[`system-log`])]),_:1})):j(``,!0)])])]),_:1},8,[`modelValue`])]))}}),Ct={key:2,class:`grid grid-cols-[repeat(auto-fill,minmax(350px,1fr))] max-sm:grid-cols-1 gap-3`},wt=h({name:`ExtensionsCards`,__name:`extensions-cards`,props:{items:{},loading:{type:Boolean,default:!1},filtersActive:{type:Boolean,default:!1}},emits:[`toggle-enabled`,`detail`,`reset-filters`],setup(e,{emit:n}){let r=e,i=n,{t:a}=v(),s=o(()=>[...r.items].sort((e,t)=>e.isCore&&!t.isCore?-1:!e.isCore&&t.isCore?1:e.name.localeCompare(t.name))),c=o(()=>r.filtersActive?a(`extensionsModule.messages.noMatchingExtensions`):a(`extensionsModule.messages.noExtensions`)),l=(e,t)=>{i(`toggle-enabled`,e,t)},u=e=>{i(`detail`,e)};return(n,r)=>(g(),m(O(V),{class:`h-full`},{default:P(()=>[e.loading&&e.items.length===0?(g(),m(O(_e),{key:0,rows:5,animated:``})):e.items.length===0?(g(),m(O(p),{key:1,icon:`info`,title:c.value},null,8,[`title`])):(g(),t(`div`,Ct,[(g(!0),t(F,null,D(s.value,e=>(g(),m(ot,{key:e.type,extension:e,onToggleEnabled:l,onDetail:u},null,8,[`extension`]))),128))]))]),_:1}))}}),Tt={class:`flex w-full items-center justify-center`},Et=a(h({name:`ExtensionsFilter`,__name:`extensions-filter`,props:{filters:{},filtersActive:{type:Boolean},viewMode:{default:`table`},selectedCount:{},bulkActions:{}},emits:[`update:filters`,`update:view-mode`,`reset-filters`,`adjust-list`,`bulk-action`],setup(r,{emit:i}){let a=r,o=i,s=d(`extensions-filter`),{t:l}=v(),u=J(a,`filters`,o),p=J(a,`viewMode`,o),h=_(void 0);return T(()=>u.value.search,e=>{e===``&&(u.value.search=void 0)}),(r,i)=>(g(),t(`div`,Tt,[f(O(ge),{ref_key:`filterFormEl`,ref:h,inline:!0,model:O(u),class:b([[O(s).b()],`grow-1`])},{default:P(()=>[f(O(ie),{modelValue:O(u).search,"onUpdate:modelValue":i[0]||=e=>O(u).search=e,placeholder:O(l)(`extensionsModule.fields.search.placeholder`),class:`max-w[280px] p-1`,clearable:``},{suffix:P(()=>[f(O(c),null,{default:P(()=>[f(O(n),{icon:`mdi:magnify`})]),_:1})]),_:1},8,[`modelValue`,`placeholder`]),f(O(W),{direction:`vertical`}),f(O(he),{label:O(l)(`extensionsModule.filters.kind.title`),class:b([[O(s).e(`extension-kind`)],`p-1 m-0!`])},{default:P(()=>[f(O(be),{modelValue:O(u).kind,"onUpdate:modelValue":i[1]||=e=>O(u).kind=e},{default:P(()=>[f(O($),{label:O(l)(`extensionsModule.labels.module`),value:`module`},null,8,[`label`]),f(O($),{label:O(l)(`extensionsModule.labels.plugin`),value:`plugin`},null,8,[`label`]),f(O($),{label:O(l)(`extensionsModule.states.all`),value:`all`},null,8,[`label`])]),_:1},8,[`modelValue`])]),_:1},8,[`label`,`class`])]),_:1},8,[`model`,`class`]),f(O(se),{"selected-count":a.selectedCount,actions:a.bulkActions,onAction:i[2]||=e=>o(`bulk-action`,e)},null,8,[`selected-count`,`actions`]),f(O(e),{class:`mr-3`},{default:P(()=>[f(O(A),{type:O(p)===`table`?`primary`:void 0,plain:``,class:`px-2!`,onClick:i[3]||=e=>p.value=`table`},{default:P(()=>[f(O(n),{icon:`mdi:table`})]),_:1},8,[`type`]),f(O(A),{type:O(p)===`cards`?`primary`:void 0,plain:``,class:`px-2!`,onClick:i[4]||=e=>p.value=`cards`},{default:P(()=>[f(O(n),{icon:`mdi:view-grid`})]),_:1},8,[`type`])]),_:1}),a.filtersActive?(g(),m(O(A),{key:0,plain:``,class:`px-2! p-1`,onClick:i[5]||=e=>o(`reset-filters`)},{default:P(()=>[f(O(n),{icon:`mdi:filter-off`})]),_:1})):j(``,!0),f(O(A),{plain:``,class:`px-2! p-1`,onClick:i[6]||=e=>o(`adjust-list`)},{default:P(()=>[f(O(n),{icon:`mdi:slider`})]),_:1})]))}}),[[`__scopeId`,`data-v-7de8e0d9`]]),Dt={key:0,class:`h-full w-full leading-normal`},Ot={key:1,class:`h-full w-full leading-normal`},kt={key:2,class:`h-full w-full leading-normal`},At={class:`block`},jt=h({name:`ExtensionsTable`,__name:`extensions-table`,props:{items:{},totalRows:{},loading:{type:Boolean},filtersActive:{type:Boolean},tableHeight:{},sortBy:{},sortDir:{}},emits:[`detail`,`toggle-enabled`,`reset-filters`,`selected-changes`,`update:sort-by`,`update:sort-dir`],setup(e,{emit:r}){let a=e,s=r,{t:c}=v(),{isMDDevice:d}=oe(),h=o(()=>a.totalRows===0),_=o(()=>a.items),y=({prop:e,order:t})=>{s(`update:sort-by`,e),s(`update:sort-dir`,t===`descending`?`desc`:t===`ascending`?`asc`:null)},b=e=>{s(`detail`,e.type)},x=(e,t)=>{s(`toggle-enabled`,e,t)},S=e=>{s(`selected-changes`,e)};return(r,o)=>E((g(),m(O(me),{"element-loading-text":O(c)(`extensionsModule.texts.loadingExtensions`),data:_.value,"default-sort":a.sortBy!==void 0&&a.sortDir!==null?{prop:a.sortBy,order:a.sortDir===`desc`?`descending`:`ascending`}:void 0,"table-layout":`fixed`,"row-key":`type`,class:`flex-grow`,style:l({maxHeight:e.tableHeight+`px`}),"max-height":e.tableHeight,onSortChange:y,onSelectionChange:S,onRowClick:b},{empty:P(()=>[a.loading?(g(),t(`div`,Dt,[f(O(p),{class:`h-full w-full`},{icon:P(()=>[f(O(N),{size:80},{primary:P(()=>[f(O(n),{icon:`mdi:puzzle`})]),secondary:P(()=>[f(O(n),{icon:`mdi:database-refresh`})]),_:1})]),_:1})])):h.value&&!a.loading?(g(),t(`div`,Ot,[f(O(p),{class:`h-full w-full`},{icon:P(()=>[f(O(N),{size:80},{primary:P(()=>[f(O(n),{icon:`mdi:puzzle`})]),secondary:P(()=>[f(O(n),{icon:`mdi:information`})]),_:1})]),title:P(()=>[u(M(O(c)(`extensionsModule.texts.noExtensions`)),1)]),_:1})])):a.filtersActive&&!a.loading?(g(),t(`div`,kt,[f(O(p),{class:`h-full w-full`},{icon:P(()=>[f(O(N),{size:80},{primary:P(()=>[f(O(n),{icon:`mdi:puzzle`})]),secondary:P(()=>[f(O(n),{icon:`mdi:filter-multiple`})]),_:1})]),title:P(()=>[f(O(U),{class:`block`},{default:P(()=>[u(M(O(c)(`extensionsModule.texts.noFilteredExtensions`)),1)]),_:1}),f(O(A),{type:`primary`,plain:``,class:`mt-4`,onClick:o[0]||=e=>s(`reset-filters`)},{icon:P(()=>[f(O(n),{icon:`mdi:filter-off`})]),default:P(()=>[u(` `+M(O(c)(`extensionsModule.buttons.resetFilters.title`)),1)]),_:1})]),_:1})])):j(``,!0)]),default:P(()=>[O(d)?(g(),m(O(Y),{key:0,type:`selection`,width:30})):j(``,!0),f(O(Y),{width:60,align:`center`},{default:P(e=>[f(O(ue),{size:32},{default:P(()=>[f(O(n),{icon:e.row.kind===O(R).module?`mdi:package-variant`:`mdi:toy-brick`,class:`w[20px] h[20px]`},null,8,[`icon`])]),_:2},1024)]),_:1}),f(O(Y),{label:O(c)(`extensionsModule.table.columns.name.title`),prop:`name`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],"min-width":200,"class-name":`py-0!`},{default:P(e=>[e.row.description?(g(),t(F,{key:0},[i(`strong`,At,M(e.row.name),1),f(O(U),{size:`small`,class:`block leading-4`,truncated:``},{default:P(()=>[u(M(e.row.description),1)]),_:2},1024)],64)):(g(),t(F,{key:1},[u(M(e.row.name),1)],64))]),_:1},8,[`label`]),f(O(Y),{label:O(c)(`extensionsModule.table.columns.type.title`),prop:`type`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:200},{default:P(e=>[f(O(L),{content:e.row.type,placement:`top`,"show-after":500},{default:P(()=>[f(O(U),{size:`small`,type:`info`,class:`block max-w-[180px]`,truncated:``},{default:P(()=>[u(M(e.row.type),1)]),_:2},1024)]),_:2},1032,[`content`])]),_:1},8,[`label`]),f(O(Y),{label:O(c)(`extensionsModule.table.columns.kind.title`),prop:`kind`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:120},{default:P(e=>[f(O(K),{type:e.row.kind===O(R).module?`primary`:`success`,size:`small`},{default:P(()=>[u(M(e.row.kind===O(R).module?O(c)(`extensionsModule.labels.module`):O(c)(`extensionsModule.labels.plugin`)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),f(O(Y),{label:O(c)(`extensionsModule.table.columns.version.title`),prop:`version`,width:100},{default:P(e=>[e.row.version?(g(),m(O(U),{key:0,size:`small`},{default:P(()=>[u(M(e.row.version),1)]),_:2},1024)):(g(),m(O(U),{key:1,size:`small`,type:`info`},{default:P(()=>[...o[3]||=[u(` - `,-1)]]),_:1}))]),_:1},8,[`label`]),f(O(Y),{label:O(c)(`extensionsModule.table.columns.core.title`),prop:`isCore`,width:100},{default:P(e=>[e.row.isCore?(g(),m(O(K),{key:0,type:`warning`,size:`small`},{default:P(()=>[u(M(O(c)(`extensionsModule.labels.core`)),1)]),_:1})):(g(),m(O(K),{key:1,type:`info`,size:`small`},{default:P(()=>[u(M(O(c)(`extensionsModule.labels.addon`)),1)]),_:1}))]),_:1},8,[`label`]),f(O(Y),{label:O(c)(`extensionsModule.table.columns.enabled.title`),prop:`enabled`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:120},{default:P(e=>[f(O(le),{"model-value":e.row.enabled,disabled:!e.row.canToggleEnabled,size:`small`,onClick:o[1]||=I(()=>{},[`stop`]),onChange:t=>x(e.row.type,t)},null,8,[`model-value`,`disabled`,`onChange`])]),_:1},8,[`label`]),f(O(Y),{width:100,align:`right`},{default:P(e=>[i(`div`,{onClick:o[2]||=I(()=>{},[`stop`])},[f(O(A),{size:`small`,plain:``,"data-test-id":`detail-extension`,onClick:t=>s(`detail`,e.row.type)},{icon:P(()=>[f(O(n),{icon:`mdi:file-search-outline`})]),default:P(()=>[u(` `+M(O(c)(`extensionsModule.buttons.detail.title`)),1)]),_:1},8,[`onClick`])])]),_:1})]),_:1},8,[`element-loading-text`,`data`,`default-sort`,`style`,`max-height`])),[[O(ke),a.loading]])}}),Mt=h({name:`ListExtensions`,__name:`list-extensions`,props:{items:{},allItems:{},totalRows:{},loading:{type:Boolean},filtersActive:{type:Boolean},filters:{},viewMode:{},paginateSize:{},paginatePage:{},sortBy:{},sortDir:{}},emits:[`detail`,`toggle-enabled`,`adjust-list`,`reset-filters`,`update:filters`,`update:view-mode`,`update:paginate-size`,`update:paginate-page`,`update:sort-by`,`update:sort-dir`,`bulk-action`],setup(e,{emit:n}){let r=e,a=n,{t:c}=v(),{isMDDevice:l}=oe(),u=null,d=_(null),p=_(null),h=J(r,`filters`,a),y=J(r,`viewMode`,a),b=_(r.sortBy),x=_(r.sortDir??null),w=_(r.paginatePage),E=_(r.paginateSize),D=_(250),k=_([]),A=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`}]),j=e=>{a(`detail`,e)},M=(e,t)=>{a(`toggle-enabled`,e,t)},N=()=>{a(`reset-filters`)},I=e=>{a(`update:paginate-size`,e)},L=e=>{a(`update:paginate-page`,e)},R=e=>{k.value=e},z=e=>{a(`bulk-action`,e,k.value)},B=()=>{if(!d.value)return;let e=y.value===`table`?p.value?.clientHeight??60:0;D.value=d.value.clientHeight-e};return S(()=>{d.value&&(typeof window<`u`&&`ResizeObserver`in window&&(u=new ResizeObserver(B),u.observe(d.value)),B())}),s(()=>{u&&d.value&&u.unobserve(d.value)}),T(()=>b.value,e=>{a(`update:sort-by`,e)}),T(()=>x.value,e=>{a(`update:sort-dir`,e)}),T(()=>r.paginatePage,e=>{w.value=e}),T(()=>r.paginateSize,e=>{E.value=e}),T(()=>r.sortDir,e=>{x.value=e??null}),T(()=>r.sortBy,e=>{b.value=e}),T(()=>y.value,e=>{e===`cards`&&(k.value=[]),setTimeout(B,50)}),T(()=>l.value,e=>{e||(k.value=[])}),(e,n)=>(g(),t(F,null,[f(O(Q),{shadow:`never`,class:`px-1 py-2 shrink-0`,"body-class":`p-0!`},{default:P(()=>[f(Et,{filters:O(h),"onUpdate:filters":n[0]||=e=>C(h)?h.value=e:null,"view-mode":O(y),"onUpdate:viewMode":n[1]||=e=>C(y)?y.value=e:null,"filters-active":r.filtersActive,"selected-count":k.value.length,"bulk-actions":A.value,onResetFilters:n[2]||=e=>a(`reset-filters`),onAdjustList:n[3]||=e=>a(`adjust-list`),onBulkAction:z},null,8,[`filters`,`view-mode`,`filters-active`,`selected-count`,`bulk-actions`])]),_:1}),i(`div`,{ref_key:`wrapper`,ref:d,class:`grow-1 overflow-hidden`},[O(y)===`table`?(g(),m(O(Q),{key:0,shadow:`never`,class:`max-h-full flex flex-col overflow-hidden box-border`,"body-class":`p-0! grow-1 max-h-full overflow-hidden flex flex-col`},{default:P(()=>[f(jt,{"sort-by":b.value,"onUpdate:sortBy":n[4]||=e=>b.value=e,"sort-dir":x.value,"onUpdate:sortDir":n[5]||=e=>x.value=e,items:r.items,"total-rows":r.totalRows,loading:r.loading,"filters-active":r.filtersActive,"table-height":D.value,onDetail:j,onToggleEnabled:M,onResetFilters:N,onSelectedChanges:R},null,8,[`sort-by`,`sort-dir`,`items`,`total-rows`,`loading`,`filters-active`,`table-height`]),i(`div`,{ref_key:`paginator`,ref:p,class:`flex justify-center w-full py-4 shrink-0`},[f(O(Te),{"current-page":w.value,"onUpdate:currentPage":n[6]||=e=>w.value=e,"page-size":E.value,"onUpdate:pageSize":n[7]||=e=>E.value=e,layout:O(l)?`total, sizes, prev, pager, next, jumper`:`total, sizes, prev, pager, next`,total:r.allItems.length,onSizeChange:I,onCurrentChange:L},null,8,[`current-page`,`page-size`,`layout`,`total`])],512)]),_:1})):(g(),m(wt,{key:1,items:r.allItems,loading:r.loading,"filters-active":r.filtersActive,onDetail:j,onToggleEnabled:M,onResetFilters:N},null,8,[`items`,`loading`,`filters-active`]))],512)],64))}}),Nt={class:`px-2`},Pt={class:`px-2`},Ft={class:`px-2`},It={class:`px-5 py-2 text-center`},Lt=a(h({name:`ListExtensionsAdjust`,__name:`list-extensions-adjust`,props:{filters:{},filtersActive:{type:Boolean}},emits:[`update:filters`,`reset-filters`],setup(e,{emit:r}){let a=e,o=r,s=d(`list-extensions-adjust`),{t:c}=v(),l=_([`kind`,`enabled`,`isCore`]),p=J(a,`filters`,o);return(e,r)=>(g(),t(F,null,[f(O(pe),{teleport:``},{icon:P(()=>[f(O(n),{icon:`mdi:filter`})]),title:P(()=>[u(M(O(c)(`extensionsModule.headings.adjustFilters`)),1)]),subtitle:P(()=>[u(M(O(c)(`extensionsModule.subHeadings.adjustFilters`)),1)]),_:1}),i(`div`,{class:b([[O(s).b()],`flex flex-col h-full w-full overflow-hidden`])},[f(O(V),{class:`flex-grow`},{default:P(()=>[f(O(Se),{modelValue:l.value,"onUpdate:modelValue":r[3]||=e=>l.value=e},{default:P(()=>[f(O(xe),{name:`kind`,class:b([O(s).e(`filter-item`)])},{title:P(()=>[f(O(U),{class:`!px-2`},{default:P(()=>[u(M(O(c)(`extensionsModule.filters.kind.title`)),1)]),_:1})]),default:P(()=>[i(`div`,Nt,[f(O(be),{modelValue:O(p).kind,"onUpdate:modelValue":r[0]||=e=>O(p).kind=e},{default:P(()=>[f(O($),{label:O(c)(`extensionsModule.states.all`),value:`all`},null,8,[`label`]),f(O($),{label:O(c)(`extensionsModule.labels.module`),value:`module`},null,8,[`label`]),f(O($),{label:O(c)(`extensionsModule.labels.plugin`),value:`plugin`},null,8,[`label`])]),_:1},8,[`modelValue`])])]),_:1},8,[`class`]),f(O(xe),{name:`enabled`,class:b([O(s).e(`filter-item`)])},{title:P(()=>[f(O(U),{class:`!px-2`},{default:P(()=>[u(M(O(c)(`extensionsModule.filters.enabled.title`)),1)]),_:1})]),default:P(()=>[i(`div`,Pt,[f(O(be),{modelValue:O(p).enabled,"onUpdate:modelValue":r[1]||=e=>O(p).enabled=e},{default:P(()=>[f(O($),{label:O(c)(`extensionsModule.states.all`),value:`all`},null,8,[`label`]),f(O($),{label:O(c)(`extensionsModule.labels.enabled`),value:`enabled`},null,8,[`label`]),f(O($),{label:O(c)(`extensionsModule.labels.disabled`),value:`disabled`},null,8,[`label`])]),_:1},8,[`modelValue`])])]),_:1},8,[`class`]),f(O(xe),{name:`isCore`,class:b([O(s).e(`filter-item`)])},{title:P(()=>[f(O(U),{class:`!px-2`},{default:P(()=>[u(M(O(c)(`extensionsModule.filters.type.title`)),1)]),_:1})]),default:P(()=>[i(`div`,Ft,[f(O(be),{modelValue:O(p).isCore,"onUpdate:modelValue":r[2]||=e=>O(p).isCore=e},{default:P(()=>[f(O($),{label:O(c)(`extensionsModule.states.all`),value:`all`},null,8,[`label`]),f(O($),{label:O(c)(`extensionsModule.labels.core`),value:`core`},null,8,[`label`]),f(O($),{label:O(c)(`extensionsModule.labels.addon`),value:`addon`},null,8,[`label`])]),_:1},8,[`modelValue`])])]),_:1},8,[`class`])]),_:1},8,[`modelValue`])]),_:1}),i(`div`,It,[f(O(A),{disabled:!a.filtersActive,onClick:r[4]||=e=>o(`reset-filters`)},{icon:P(()=>[f(O(n),{icon:`mdi:filter-remove`})]),default:P(()=>[u(` `+M(O(c)(`extensionsModule.buttons.reset.title`)),1)]),_:1},8,[`disabled`])])],2)],64))}}),[[`__scopeId`,`data-v-1f502633`]]),Rt={class:`flex flex-col gap-3`},zt={class:`flex items-center justify-between gap-4`},Bt={class:`flex items-center gap-3 min-w-0 flex-1`},Vt={class:`flex items-center justify-center w-10 h-10 rounded-lg bg-gray-100 dark:bg-gray-800`},Ht={class:`min-w-0 flex-1`},Ut={class:`flex items-center gap-2 flex-wrap`},Wt={class:`font-medium text-base truncate`},Gt={class:`text-xs text-gray-500 dark:text-gray-400 truncate mt-1`},Kt={class:`flex items-center gap-2 mt-1 flex-wrap`},qt={class:`flex items-center gap-1`},Jt={class:`flex items-center gap-2`},Yt={class:`flex items-center gap-6 text-sm text-gray-500 dark:text-gray-400 flex-wrap`},Xt={key:0,class:`flex items-center gap-1`},Zt={key:1,class:`flex items-center gap-1`},Qt={key:2,class:`flex items-center gap-1`},$t={class:`flex items-center gap-1`},en=h({name:`ServiceItem`,__name:`service-item`,props:{service:{},extensionName:{},acting:{type:Boolean}},emits:[`start`,`stop`,`restart`],setup(e,{emit:r}){let a=e,s=r,{t:c}=v(),l=o(()=>a.service.state===z.starting||a.service.state===z.stopping),d=o(()=>a.service.state===z.stopped||a.service.state===z.error),p=o(()=>a.service.state===z.started||a.service.state===z.starting),h=o(()=>a.service.activationPolicy===fe.always),_=o(()=>d.value),y=o(()=>p.value),x=o(()=>a.service.state===z.started),S=o(()=>_.value&&a.service.desiredState===G.started&&!l.value&&!a.acting),C=o(()=>y.value&&a.service.state!==z.stopping&&!a.acting),w=o(()=>x.value&&a.service.desiredState===G.started&&!l.value&&!a.acting),T=o(()=>a.service.desiredState===G.stopped?c(`extensionsModule.services.tooltips.disabledExtension`):l.value?c(`extensionsModule.services.tooltips.transitioning`):c(`extensionsModule.services.tooltips.startService`)),E=o(()=>a.service.state===z.stopping?c(`extensionsModule.services.tooltips.transitioning`):c(`extensionsModule.services.tooltips.stopService`)),D=o(()=>a.service.desiredState===G.stopped?c(`extensionsModule.services.tooltips.disabledExtension`):l.value?c(`extensionsModule.services.tooltips.transitioning`):c(`extensionsModule.services.tooltips.restartService`)),k=o(()=>{let e=a.service.state;return c(`extensionsModule.services.states.${e}`)}),N=o(()=>c(`extensionsModule.services.desiredStates.${a.service.desiredState}`)),F=o(()=>{switch(a.service.state){case z.started:return`success`;case z.stopped:return`info`;case z.starting:case z.stopping:return`warning`;case z.error:return`danger`;default:return`info`}}),I=o(()=>{switch(a.service.state){case z.started:return`mdi:check-circle`;case z.stopped:return`mdi:stop-circle`;case z.starting:case z.stopping:return`mdi:loading`;case z.error:return`mdi:alert-circle`;default:return`mdi:help-circle`}}),R=o(()=>{switch(a.service.state){case z.started:return`text-green-500`;case z.stopped:return`text-gray-400`;case z.starting:case z.stopping:return`text-yellow-500 animate-spin`;case z.error:return`text-red-500`;default:return`text-gray-400`}}),B=o(()=>{if(a.service.uptimeMs===void 0)return`-`;let e=Math.floor(a.service.uptimeMs/1e3),t=Math.floor(e/86400),n=Math.floor(e%86400/3600),r=Math.floor(e%3600/60),i=[];return t>0&&i.push(`${t}d`),n>0&&i.push(`${n}h`),(r>0||i.length===0)&&i.push(`${r}m`),i.join(` `)}),ee=o(()=>a.service.lastStartedAt?new Date(a.service.lastStartedAt).toLocaleString():`-`),te=()=>{s(`start`)},V=()=>{s(`stop`)},H=()=>{s(`restart`)};return(r,a)=>(g(),m(O(Q),{shadow:`never`,class:`service-item`,"body-class":`p-3!`},{default:P(()=>[i(`div`,Rt,[i(`div`,zt,[i(`div`,Bt,[i(`div`,Vt,[f(O(n),{icon:I.value,class:b([`w-5 h-5`,R.value])},null,8,[`icon`,`class`])]),i(`div`,Ht,[i(`div`,Ut,[i(`span`,Wt,M(e.extensionName??e.service.extensionType),1),f(O(K),{size:`small`,type:`info`},{default:P(()=>[u(M(e.service.serviceId),1)]),_:1})]),i(`div`,Gt,M(e.service.extensionType),1),i(`div`,Kt,[f(O(K),{type:F.value,size:`small`,effect:`light`},{default:P(()=>[i(`div`,qt,[l.value?(g(),m(O(n),{key:0,icon:`mdi:loading`,class:`animate-spin w-3 h-3`})):j(``,!0),u(` `+M(k.value),1)])]),_:1},8,[`type`]),e.service.enabled?j(``,!0):(g(),m(O(K),{key:0,type:`warning`,size:`small`,effect:`light`},{default:P(()=>[u(M(O(c)(`extensionsModule.services.texts.extensionDisabled`)),1)]),_:1})),h.value?(g(),m(O(K),{key:1,type:`primary`,size:`small`,effect:`light`},{default:P(()=>[u(M(O(c)(`extensionsModule.services.activationPolicies.always`)),1)]),_:1})):j(``,!0),e.service.healthy===void 0?j(``,!0):(g(),m(O(K),{key:2,type:e.service.healthy?`success`:`danger`,size:`small`,effect:`light`},{default:P(()=>[u(M(e.service.healthy?O(c)(`extensionsModule.services.labels.healthy`):O(c)(`extensionsModule.services.labels.unhealthy`)),1)]),_:1},8,[`type`]))])])]),i(`div`,Jt,[_.value?(g(),m(O(L),{key:0,content:T.value,placement:`top`},{default:P(()=>[f(O(A),{type:`success`,size:`small`,plain:``,disabled:!S.value,loading:e.acting,onClick:te},{icon:P(()=>[f(O(n),{icon:`mdi:play`})]),default:P(()=>[u(` `+M(O(c)(`extensionsModule.services.buttons.start`)),1)]),_:1},8,[`disabled`,`loading`])]),_:1},8,[`content`])):j(``,!0),y.value?(g(),m(O(L),{key:1,content:E.value,placement:`top`},{default:P(()=>[f(O(A),{type:`danger`,size:`small`,plain:``,disabled:!C.value,loading:e.acting,onClick:V},{icon:P(()=>[f(O(n),{icon:`mdi:stop`})]),default:P(()=>[u(` `+M(O(c)(`extensionsModule.services.buttons.stop`)),1)]),_:1},8,[`disabled`,`loading`])]),_:1},8,[`content`])):j(``,!0),x.value?(g(),m(O(L),{key:2,content:D.value,placement:`top`},{default:P(()=>[f(O(A),{type:`primary`,size:`small`,plain:``,disabled:!w.value,loading:e.acting,onClick:H},{icon:P(()=>[f(O(n),{icon:`mdi:restart`})]),default:P(()=>[u(` `+M(O(c)(`extensionsModule.services.buttons.restart`)),1)]),_:1},8,[`disabled`,`loading`])]),_:1},8,[`content`])):j(``,!0)])]),i(`div`,Yt,[e.service.state===`started`&&e.service.uptimeMs!==void 0?(g(),t(`div`,Xt,[f(O(n),{icon:`mdi:clock-outline`,class:`w-4 h-4`}),i(`span`,null,M(O(c)(`extensionsModule.services.labels.uptime`))+`: `+M(B.value),1)])):j(``,!0),e.service.startCount>0?(g(),t(`div`,Zt,[f(O(n),{icon:`mdi:counter`,class:`w-4 h-4`}),i(`span`,null,M(O(c)(`extensionsModule.services.labels.startCount`))+`: `+M(e.service.startCount),1)])):j(``,!0),e.service.lastStartedAt?(g(),t(`div`,Qt,[f(O(n),{icon:`mdi:play-circle-outline`,class:`w-4 h-4`}),i(`span`,null,M(O(c)(`extensionsModule.services.labels.lastStarted`))+`: `+M(ee.value),1)])):j(``,!0),i(`div`,$t,[f(O(n),{icon:`mdi:target`,class:`w-4 h-4`}),i(`span`,null,M(O(c)(`extensionsModule.services.labels.desiredState`))+`: `+M(N.value),1)])]),e.service.lastError?(g(),m(O(ve),{key:0,type:e.service.state===O(z).error?`error`:`warning`,title:O(c)(`extensionsModule.services.labels.lastError`),description:e.service.lastError,"show-icon":``,closable:!1},null,8,[`type`,`title`,`description`])):j(``,!0)])]),_:1}))}}),tn=e=>({modules:e.filter(e=>e.extensionKind===R.module),plugins:e.filter(e=>e.extensionKind===R.plugin)}),nn={class:`h-full flex flex-col gap-3 overflow-hidden`},rn={class:`flex items-center gap-2`},an={key:1,class:`flex flex-col gap-3`},on=a(h({name:`ServicesList`,__name:`services-list`,props:{activeKind:{},services:{},loading:{type:Boolean},extensionNames:{},isActing:{type:Function}},emits:[`update:activeKind`,`start`,`stop`,`restart`],setup(e,{emit:r}){let a=e,s=r,{t:c}=v(),l=o({get:()=>a.activeKind,set:e=>s(`update:activeKind`,e)}),d=o(()=>{let e=tn(a.services);return[{name:R.module,label:c(`extensionsModule.tabs.modules`),icon:`mdi:package-variant`,services:e.modules},{name:R.plugin,label:c(`extensionsModule.tabs.plugins`),icon:`mdi:toy-brick`,services:e.plugins}]}),h=(e,t)=>`${e}:${t}`,_=(e,t,n)=>{s(`start`,e,t,n)},y=(e,t,n)=>{s(`stop`,e,t,n)},b=(e,t,n)=>{s(`restart`,e,t,n)};return(r,a)=>(g(),t(`div`,nn,[e.loading&&e.services.length===0?(g(),m(O(_e),{key:0,rows:5,animated:``})):e.services.length===0?(g(),m(O(p),{key:1,icon:`info`,title:O(c)(`extensionsModule.services.texts.noServices`)},null,8,[`title`])):(g(),t(F,{key:2},[f(O(ve),{class:`shrink-0`,type:`info`,description:O(c)(`extensionsModule.services.texts.alwaysActiveDescription`),"show-icon":``,closable:!1},null,8,[`description`]),f(O(De),{modelValue:l.value,"onUpdate:modelValue":a[0]||=e=>l.value=e,class:`services-kind-tabs grow-1 min-h-0 overflow-hidden`},{default:P(()=>[(g(!0),t(F,null,D(d.value,r=>(g(),m(O(Oe),{key:r.name,name:r.name,class:`h-full`},{label:P(()=>[i(`div`,rn,[f(O(n),{icon:r.icon},null,8,[`icon`]),u(` `+M(r.label),1)])]),default:P(()=>[f(O(V),{class:`h-full`},{default:P(()=>[r.services.length===0?(g(),m(O(p),{key:0,icon:`info`,title:O(c)(`extensionsModule.services.texts.noServices`)},null,8,[`title`])):(g(),t(`div`,an,[(g(!0),t(F,null,D(r.services,t=>(g(),m(en,{key:O(je)(t.extensionKind,t.extensionType,t.serviceId),service:t,"extension-name":e.extensionNames?.[h(t.extensionKind,t.extensionType)],acting:e.isActing(t.extensionKind,t.extensionType,t.serviceId),onStart:e=>_(t.extensionKind,t.extensionType,t.serviceId),onStop:e=>y(t.extensionKind,t.extensionType,t.serviceId),onRestart:e=>b(t.extensionKind,t.extensionType,t.serviceId)},null,8,[`service`,`extension-name`,`acting`,`onStart`,`onStop`,`onRestart`]))),128))]))]),_:2},1024)]),_:2},1032,[`name`]))),128))]),_:1},8,[`modelValue`])],64))]))}}),[[`__scopeId`,`data-v-510d5e30`]]);export{Ge as a,St as i,Lt as n,Mt as r,on as t};
@@ -1,8 +0,0 @@
1
- import{r as e,t}from"./rolldown-runtime-QTnfLwEv.js";import{Ar as n,D as r,Dr as i,E as a,Er as o,Mr as s,Nr as c,O as l,Or as u,Pr as d,Qr as f,Si as p,T as m,bi as h,ci as g,ei as _,ii as v,ji as y,k as b,kr as x,qi as S,t as C,ui as w,xr as T}from"./icon-with-child-CgZMNB3F.js";import{Pr as E,Ur as D,Xr as O,aa as k,at as A,b as j,f as ee,gt as te,it as ne,kr as M,ot as N,vt as P,yt as re}from"./common-CEAYa_VX.js";import{n as F,t as ie}from"./table-CP4k6PuT.js";import{n as I,t as ae}from"./form-CYGBQyZI.js";import{t as L}from"./alert-B_504iE8.js";import{r as oe,t as se}from"./select-BE-J6w_y.js";import{t as ce}from"./card-C50YgvLJ.js";import{a as le,i as ue}from"./config-CIAUSdP7.js";import{r as de}from"./usePlugins-BAUrRkxK.js";import{c as fe,s as pe}from"./config.constants-17QBQ_kF.js";var R=P().trim().refine(e=>{try{let t=new URL(e);return(t.protocol===`http:`||t.protocol===`https:`)&&t.hostname!==``&&t.username===``&&t.password===``&&t.search===``&&t.hash===``&&t.pathname===`/`&&t.origin===e}catch{return!1}},{message:`Must be a normalized absolute HTTP(S) origin without a path, credentials, query, or fragment.`}),z=te(e=>e===``?null:e,re([R,ne()])),B=`(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d|0)`,me=RegExp(`^${`${B}(\\.${B}){3}`}(/(3[0-2]|[12]?\\d))?$`),he=/^[0-9a-fA-F:]+(\/(12[0-8]|1[01]\d|[1-9]?\d))?$/,V=P().trim().refine(e=>me.test(e)||e.includes(`:`)&&he.test(e),{message:`Must be a valid IPv4/IPv6 address or CIDR range.`}),ge=le.extend({internalUrl:z.default(null),externalUrl:z.default(null),trustForwardedHeaders:N().default(!1),trustedProxies:A(V).default([])}),_e={class:`text-sm text-gray-500 mt-1`},ve={class:`text-sm text-gray-500 mt-1`},ye={class:`text-sm text-gray-500 mt-1`},be=d({name:`RemoteAccessConfigForm`,__name:`remote-access-config-form`,props:{config:{},remoteFormSubmit:{type:Boolean,default:!1},remoteFormResult:{default:pe.NONE},remoteFormReset:{type:Boolean,default:!1},remoteFormChanged:{type:Boolean,default:!1},layout:{default:fe.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,a=t,{t:o}=m(),{formEl:s,model:l,formChanged:d,submit:p,formResult:v}=ue({config:r.config,messages:{success:o(`remoteAccessModule.messages.config.edited`),error:o(`remoteAccessModule.messages.config.notEdited`)}}),b=h({internalUrl:[{validator:(e,t,n)=>{n(t===null||t===``||R.safeParse(t).success?void 0:Error(o(`remoteAccessModule.fields.config.internalUrl.invalid`)))},trigger:`change`}],externalUrl:[{validator:(e,t,n)=>{n(t===null||t===``||R.safeParse(t).success?void 0:Error(o(`remoteAccessModule.fields.config.externalUrl.invalid`)))},trigger:`change`}],trustedProxies:[{validator:(e,t,n)=>{n(Array.isArray(t)&&t.every(e=>V.safeParse(e).success)?void 0:Error(o(`remoteAccessModule.fields.config.trustedProxies.invalid`)))},trigger:`change`}]});return g(v,e=>a(`update:remote-form-result`,e)),g(()=>r.remoteFormSubmit,e=>{e&&(a(`update:remote-form-submit`,!1),p().catch(()=>{}))}),g(()=>r.remoteFormReset,e=>{a(`update:remote-form-reset`,!1),e&&s.value?.resetFields()}),g(d,e=>a(`update:remote-form-changed`,e)),(e,t)=>(f(),u(y(ae),{ref_key:`formEl`,ref:s,model:y(l),rules:b,"label-position":`top`,"status-icon":``},{default:w(()=>[c(y(L),{type:`info`,title:y(o)(`remoteAccessModule.config.about.title`),description:y(o)(`remoteAccessModule.config.about.description`),closable:!1},null,8,[`title`,`description`]),c(y(I),{label:y(o)(`remoteAccessModule.fields.config.internalUrl.title`),prop:`internalUrl`,class:`mt-3`},{default:w(()=>[c(y(O),{modelValue:y(l).internalUrl,"onUpdate:modelValue":t[0]||=e=>y(l).internalUrl=e,placeholder:y(o)(`remoteAccessModule.fields.config.internalUrl.placeholder`),name:`internalUrl`,clearable:``},null,8,[`modelValue`,`placeholder`]),i(`div`,_e,S(y(o)(`remoteAccessModule.fields.config.internalUrl.description`)),1)]),_:1},8,[`label`]),c(y(I),{label:y(o)(`remoteAccessModule.fields.config.externalUrl.title`),prop:`externalUrl`},{default:w(()=>[c(y(O),{modelValue:y(l).externalUrl,"onUpdate:modelValue":t[1]||=e=>y(l).externalUrl=e,placeholder:y(o)(`remoteAccessModule.fields.config.externalUrl.placeholder`),name:`externalUrl`,clearable:``},null,8,[`modelValue`,`placeholder`]),i(`div`,ve,S(y(o)(`remoteAccessModule.fields.config.externalUrl.description`)),1)]),_:1},8,[`label`]),c(y(E)),c(y(L),{type:`info`,title:y(o)(`remoteAccessModule.config.proxyTrust.title`),description:y(o)(`remoteAccessModule.config.proxyTrust.description`),closable:!1},null,8,[`title`,`description`]),c(y(I),{label:y(o)(`remoteAccessModule.fields.config.trustForwardedHeaders.title`),prop:`trustForwardedHeaders`,"label-position":`left`,class:`mt-3`},{default:w(()=>[c(y(M),{modelValue:y(l).trustForwardedHeaders,"onUpdate:modelValue":t[2]||=e=>y(l).trustForwardedHeaders=e,name:`trustForwardedHeaders`},null,8,[`modelValue`])]),_:1},8,[`label`]),c(y(I),{label:y(o)(`remoteAccessModule.fields.config.trustedProxies.title`),prop:`trustedProxies`},{default:w(()=>[c(y(oe),{modelValue:y(l).trustedProxies,"onUpdate:modelValue":t[3]||=e=>y(l).trustedProxies=e,name:`trustedProxies`,multiple:``,filterable:``,"allow-create":``,"default-first-option":``,"reserve-keyword":!1,placeholder:y(o)(`remoteAccessModule.fields.config.trustedProxies.placeholder`)},{default:w(()=>[(f(!0),n(T,null,_(y(l).trustedProxies,e=>(f(),u(y(se),{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`]),i(`div`,ye,S(y(o)(`remoteAccessModule.fields.config.trustedProxies.description`)),1)]),_:1},8,[`label`])]),_:1},8,[`model`,`rules`]))}}),H=Symbol(`FB-Module-RemoteAccess-Status`),U=()=>{let e=j().getStore(H),{data:t,semaphore:n}=k(e);return{status:o(()=>t.value),enabled:o(()=>t.value?.enabled??!1),advisories:o(()=>t.value?.advisories??[]),isLoading:o(()=>t.value===null&&n.value.getting),fetchStatus:async()=>{await e.get()}}},W=()=>{let e=j().getStore(H),{data:t,semaphore:n}=k(e);return{internal:o(()=>t.value?.urls.internal??null),candidates:o(()=>t.value?.urls.candidates??[]),external:o(()=>t.value?.urls.external??[]),primary:o(()=>t.value?.urls.primary??null),isLoading:o(()=>t.value===null&&n.value.getting),fetchUrls:async()=>{await e.get()}}},xe=`remote-access`,Se=`remote-access-module`,Ce=`RemoteAccessModule.`,we=`provider`,Te=function(e){return e.PROVIDER_STATUS=`RemoteAccessModule.Provider.Status`,e.URLS_CHANGED=`RemoteAccessModule.Urls.Changed`,e.SETUP_PROGRESS=`RemoteAccessModule.Setup.Progress`,e}({}),Ee=function(e){return e.REMOTE_ACCESS=`remote_access_module-module`,e}({}),De=()=>{let e=j(),t=de(),n=e.getStore(H),{data:r,semaphore:i}=k(n);return{providers:o(()=>r.value?.providers??[]),isLoading:o(()=>r.value===null&&i.value.getting),fetchProviders:async()=>{await n.get()},getElement:e=>(t.getPlugins().find(t=>t.type===e)?.elements??[]).find(e=>e.type===`provider`&&(e.modules===void 0||e.modules.includes(`remote-access-module`)))}},Oe=d({name:`RemoteAccessStatusBanner`,__name:`remote-access-status-banner`,setup(e){let{t}=m(),{enabled:n,advisories:r}=U(),i=o(()=>r.value.filter(e=>e.severity===`critical`).length),a=o(()=>r.value.filter(e=>e.severity===`warning`).length),s=o(()=>n.value?i.value>0?`error`:a.value>0?`warning`:`success`:`info`),c=o(()=>n.value?r.value.length>0?t(`remoteAccessModule.status.banner.advisoriesTitle`,{count:r.value.length}):t(`remoteAccessModule.status.banner.okTitle`):t(`remoteAccessModule.status.banner.disabledTitle`)),l=o(()=>n.value?r.value.length>0?t(`remoteAccessModule.status.banner.advisoriesDescription`):t(`remoteAccessModule.status.banner.okDescription`):t(`remoteAccessModule.status.banner.disabledDescription`));return(e,t)=>(f(),u(y(L),{type:s.value,title:c.value,description:l.value,closable:!1,"show-icon":``},null,8,[`type`,`title`,`description`]))}}),ke=t(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),G=t((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),K=t((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),Ae=t(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),je=t(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),Me=t((e=>{var t=G().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),Ne=t((e=>{var t=G().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),Pe=t((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),q=t((e=>{var t=K(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),Fe=t((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),Ie=t((e=>{var t=Fe();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),Le=t(((e,t)=>{var n=Ie();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),J=t((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),Y=t((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\u`);var i=`(?:(?![A-Z0-9 $%*+\\-./:]|`+r+`)(?:.|[\r
2
- ]))+`;e.KANJI=new RegExp(r,`g`),e.BYTE_KANJI=RegExp(`[^A-Z0-9 $%*+\\-./:]+`,`g`),e.BYTE=new RegExp(i,`g`),e.NUMERIC=new RegExp(t,`g`),e.ALPHANUMERIC=new RegExp(n,`g`);var a=RegExp(`^`+r+`$`),o=RegExp(`^[0-9]+$`),s=RegExp(`^[A-Z0-9 $%*+\\-./:]+$`);e.testKanji=function(e){return a.test(e)},e.testNumeric=function(e){return o.test(e)},e.testAlphanumeric=function(e){return s.test(e)}})),X=t((e=>{var t=J(),n=Y();e.NUMERIC={id:`Numeric`,bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:`Alphanumeric`,bit:2,ccBits:[9,11,13]},e.BYTE={id:`Byte`,bit:4,ccBits:[8,16,16]},e.KANJI={id:`Kanji`,bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,n){if(!e.ccBits)throw Error(`Invalid mode: `+e);if(!t.isValid(n))throw Error(`Invalid version: `+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return n.testNumeric(t)?e.NUMERIC:n.testAlphanumeric(t)?e.ALPHANUMERIC:n.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw Error(`Invalid mode`)},e.isValid=function(e){return e&&e.bit&&e.ccBits};function r(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`numeric`:return e.NUMERIC;case`alphanumeric`:return e.ALPHANUMERIC;case`kanji`:return e.KANJI;case`byte`:return e.BYTE;default:throw Error(`Unknown mode: `+t)}}e.from=function(t,n){if(e.isValid(t))return t;try{return r(t)}catch{return n}}})),Re=t((e=>{var t=G(),n=q(),r=K(),i=X(),a=J(),o=7973,s=t.getBCHDigit(o);function c(t,n,r){for(let i=1;i<=40;i++)if(n<=e.getCapacity(i,r,t))return i}function l(e,t){return i.getCharCountIndicator(e,t)+4}function u(e,t){let n=0;return e.forEach(function(e){let r=l(e.mode,t);n+=r+e.getBitsLength()}),n}function d(t,n){for(let r=1;r<=40;r++)if(u(t,r)<=e.getCapacity(r,n,i.MIXED))return r}e.from=function(e,t){return a.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,r,o){if(!a.isValid(e))throw Error(`Invalid QR Code version`);o===void 0&&(o=i.BYTE);let s=(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r))*8;if(o===i.MIXED)return s;let c=s-l(o,e);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(e,t){let n,i=r.from(t,r.M);if(Array.isArray(e)){if(e.length>1)return d(e,i);if(e.length===0)return 1;n=e[0]}else n=e;return c(n.mode,n.getLength(),i)},e.getEncodedBits=function(e){if(!a.isValid(e)||e<7)throw Error(`Invalid QR Code version`);let n=e<<12;for(;t.getBCHDigit(n)-s>=0;)n^=o<<t.getBCHDigit(n)-s;return e<<12|n}})),ze=t((e=>{var t=G(),n=1335,r=21522,i=t.getBCHDigit(n);e.getEncodedBits=function(e,a){let o=e.bit<<3|a,s=o<<10;for(;t.getBCHDigit(s)-i>=0;)s^=n<<t.getBCHDigit(s)-i;return(o<<10|s)^r}})),Be=t(((e,t)=>{var n=X();function r(e){this.mode=n.NUMERIC,this.data=e.toString()}r.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){let t,n,r;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),r=parseInt(n,10),e.put(r,10);let i=this.data.length-t;i>0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,i*3+1))},t.exports=r})),Ve=t(((e,t)=>{var n=X(),r=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`.split(``);function i(e){this.mode=n.ALPHANUMERIC,this.data=e}i.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let n=r.indexOf(this.data[t])*45;n+=r.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(r.indexOf(this.data[t]),6)},t.exports=i})),He=t(((e,t)=>{var n=X();function r(e){this.mode=n.BYTE,typeof e==`string`?this.data=new TextEncoder().encode(e):this.data=new Uint8Array(e)}r.getBitsLength=function(e){return e*8},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){for(let t=0,n=this.data.length;t<n;t++)e.put(this.data[t],8)},t.exports=r})),Ue=t(((e,t)=>{var n=X(),r=G();function i(e){this.mode=n.KANJI,this.data=e}i.getBitsLength=function(e){return e*13},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t<this.data.length;t++){let n=r.toSJIS(this.data[t]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw Error(`Invalid SJIS character: `+this.data[t]+`
3
- Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.exports=i})),We=t(((e,t)=>{var n={single_source_shortest_paths:function(e,t,r){var i={},a={};a[t]=0;var o=n.PriorityQueue.make();o.push(t,0);for(var s,c,l,u,d,f,p,m,h;!o.empty();)for(l in s=o.pop(),c=s.value,u=s.cost,d=e[c]||{},d)d.hasOwnProperty(l)&&(f=d[l],p=u+f,m=a[l],h=a[l]===void 0,(h||m>p)&&(a[l]=p,o.push(l,p),i[l]=c));if(r!==void 0&&a[r]===void 0){var g=[`Could not find a path from `,t,` to `,r,`.`].join(``);throw Error(g)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,t,r){var i=n.single_source_shortest_paths(e,t,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var t=n.PriorityQueue,r={},i;for(i in e||={},t)t.hasOwnProperty(i)&&(r[i]=t[i]);return r.queue=[],r.sorter=e.sorter||t.default_sorter,r},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};t!==void 0&&(t.exports=n)})),Ge=t((e=>{var t=X(),n=Be(),r=Ve(),i=He(),a=Ue(),o=Y(),s=G(),c=We();function l(e){return unescape(encodeURIComponent(e)).length}function u(e,t,n){let r=[],i;for(;(i=e.exec(n))!==null;)r.push({data:i[0],index:i.index,mode:t,length:i[0].length});return r}function d(e){let n=u(o.NUMERIC,t.NUMERIC,e),r=u(o.ALPHANUMERIC,t.ALPHANUMERIC,e),i,a;return s.isKanjiModeEnabled()?(i=u(o.BYTE,t.BYTE,e),a=u(o.KANJI,t.KANJI,e)):(i=u(o.BYTE_KANJI,t.BYTE,e),a=[]),n.concat(r,i,a).sort(function(e,t){return e.index-t.index}).map(function(e){return{data:e.data,mode:e.mode,length:e.length}})}function f(e,o){switch(o){case t.NUMERIC:return n.getBitsLength(e);case t.ALPHANUMERIC:return r.getBitsLength(e);case t.KANJI:return a.getBitsLength(e);case t.BYTE:return i.getBitsLength(e)}}function p(e){return e.reduce(function(e,t){let n=e.length-1>=0?e[e.length-1]:null;return n&&n.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)},[])}function m(e){let n=[];for(let r=0;r<e.length;r++){let i=e[r];switch(i.mode){case t.NUMERIC:n.push([i,{data:i.data,mode:t.ALPHANUMERIC,length:i.length},{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.ALPHANUMERIC:n.push([i,{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.KANJI:n.push([i,{data:i.data,mode:t.BYTE,length:l(i.data)}]);break;case t.BYTE:n.push([{data:i.data,mode:t.BYTE,length:l(i.data)}])}}return n}function h(e,n){let r={},i={start:{}},a=[`start`];for(let o=0;o<e.length;o++){let s=e[o],c=[];for(let e=0;e<s.length;e++){let l=s[e],u=``+o+e;c.push(u),r[u]={node:l,lastCount:0},i[u]={};for(let e=0;e<a.length;e++){let o=a[e];r[o]&&r[o].node.mode===l.mode?(i[o][u]=f(r[o].lastCount+l.length,l.mode)-f(r[o].lastCount,l.mode),r[o].lastCount+=l.length):(r[o]&&(r[o].lastCount=l.length),i[o][u]=f(l.length,l.mode)+4+t.getCharCountIndicator(l.mode,n))}}a=c}for(let e=0;e<a.length;e++)i[a[e]].end=0;return{map:i,table:r}}function g(e,o){let c,l=t.getBestModeForData(e);if(c=t.from(o,l),c!==t.BYTE&&c.bit<l.bit)throw Error(`"`+e+`" cannot be encoded with mode `+t.toString(c)+`.
4
- Suggested mode is: `+t.toString(l));switch(c===t.KANJI&&!s.isKanjiModeEnabled()&&(c=t.BYTE),c){case t.NUMERIC:return new n(e);case t.ALPHANUMERIC:return new r(e);case t.KANJI:return new a(e);case t.BYTE:return new i(e)}}e.fromArray=function(e){return e.reduce(function(e,t){return typeof t==`string`?e.push(g(t,null)):t.data&&e.push(g(t.data,t.mode)),e},[])},e.fromString=function(t,n){let r=h(m(d(t,s.isKanjiModeEnabled())),n),i=c.find_path(r.map,`start`,`end`),a=[];for(let e=1;e<i.length-1;e++)a.push(r.table[i[e]].node);return e.fromArray(p(a))},e.rawSplit=function(t){return e.fromArray(d(t,s.isKanjiModeEnabled()))}})),Ke=t((e=>{var t=G(),n=K(),r=Ae(),i=je(),a=Me(),o=Ne(),s=Pe(),c=q(),l=Le(),u=Re(),d=ze(),f=X(),p=Ge();function m(e,t){let n=e.size,r=o.getPositions(t);for(let t=0;t<r.length;t++){let i=r[t][0],a=r[t][1];for(let t=-1;t<=7;t++)if(!(i+t<=-1||n<=i+t))for(let r=-1;r<=7;r++)a+r<=-1||n<=a+r||(t>=0&&t<=6&&(r===0||r===6)||r>=0&&r<=6&&(t===0||t===6)||t>=2&&t<=4&&r>=2&&r<=4?e.set(i+t,a+r,!0,!0):e.set(i+t,a+r,!1,!0))}}function h(e){let t=e.size;for(let n=8;n<t-8;n++){let t=n%2==0;e.set(n,6,t,!0),e.set(6,n,t,!0)}}function g(e,t){let n=a.getPositions(t);for(let t=0;t<n.length;t++){let r=n[t][0],i=n[t][1];for(let t=-2;t<=2;t++)for(let n=-2;n<=2;n++)t===-2||t===2||n===-2||n===2||t===0&&n===0?e.set(r+t,i+n,!0,!0):e.set(r+t,i+n,!1,!0)}}function _(e,t){let n=e.size,r=u.getEncodedBits(t),i,a,o;for(let t=0;t<18;t++)i=Math.floor(t/3),a=t%3+n-8-3,o=(r>>t&1)==1,e.set(i,a,o,!0),e.set(a,i,o,!0)}function v(e,t,n){let r=e.size,i=d.getEncodedBits(t,n),a,o;for(a=0;a<15;a++)o=(i>>a&1)==1,a<6?e.set(a,8,o,!0):a<8?e.set(a+1,8,o,!0):e.set(r-15+a,8,o,!0),a<8?e.set(8,r-a-1,o,!0):a<9?e.set(8,15-a-1+1,o,!0):e.set(8,15-a-1,o,!0);e.set(r-8,8,1,!0)}function y(e,t){let n=e.size,r=-1,i=n-1,a=7,o=0;for(let s=n-1;s>0;s-=2)for(s===6&&s--;;){for(let n=0;n<2;n++)if(!e.isReserved(i,s-n)){let r=!1;o<t.length&&(r=(t[o]>>>a&1)==1),e.set(i,s-n,r),a--,a===-1&&(o++,a=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}function b(e,n,i){let a=new r;i.forEach(function(t){a.put(t.mode.bit,4),a.put(t.getLength(),f.getCharCountIndicator(t.mode,e)),t.write(a)});let o=(t.getSymbolTotalCodewords(e)-c.getTotalCodewordsCount(e,n))*8;for(a.getLengthInBits()+4<=o&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(0);let s=(o-a.getLengthInBits())/8;for(let e=0;e<s;e++)a.put(e%2?17:236,8);return x(a,e,n)}function x(e,n,r){let i=t.getSymbolTotalCodewords(n),a=i-c.getTotalCodewordsCount(n,r),o=c.getBlocksCount(n,r),s=o-i%o,u=Math.floor(i/o),d=Math.floor(a/o),f=d+1,p=u-d,m=new l(p),h=0,g=Array(o),_=Array(o),v=0,y=new Uint8Array(e.buffer);for(let e=0;e<o;e++){let t=e<s?d:f;g[e]=y.slice(h,h+t),_[e]=m.encode(g[e]),h+=t,v=Math.max(v,t)}let b=new Uint8Array(i),x=0,S,C;for(S=0;S<v;S++)for(C=0;C<o;C++)S<g[C].length&&(b[x++]=g[C][S]);for(S=0;S<p;S++)for(C=0;C<o;C++)b[x++]=_[C][S];return b}function S(e,n,r,a){let o;if(Array.isArray(e))o=p.fromArray(e);else if(typeof e==`string`){let t=n;if(!t){let n=p.rawSplit(e);t=u.getBestVersionForData(n,r)}o=p.fromString(e,t||40)}else throw Error(`Invalid data`);let c=u.getBestVersionForData(o,r);if(!c)throw Error(`The amount of data is too big to be stored in a QR Code`);if(!n)n=c;else if(n<c)throw Error(`
5
- The chosen QR Code version cannot contain this amount of data.
6
- Minimum version required to store current data is: `+c+`.
7
- `);let l=b(n,r,o),d=new i(t.getSymbolSize(n));return m(d,n),h(d),g(d,n),v(d,r,0),n>=7&&_(d,n),y(d,l),isNaN(a)&&(a=s.getBestMask(d,v.bind(null,d,r))),s.applyMask(a,d),v(d,r,a),{modules:d,version:n,errorCorrectionLevel:r,maskPattern:a,segments:o}}e.create=function(e,r){if(e===void 0||e===``)throw Error(`No input text`);let i=n.M,a,o;return r!==void 0&&(i=n.from(r.errorCorrectionLevel,n.M),a=u.from(r.version),o=s.from(r.maskPattern),r.toSJISFunc&&t.setToSJISFunction(r.toSJISFunc)),S(e,a,i,o)}})),Z=t((e=>{function t(e){if(typeof e==`number`&&(e=e.toString()),typeof e!=`string`)throw Error(`Color should be defined as hex string`);let t=e.slice().replace(`#`,``).split(``);if(t.length<3||t.length===5||t.length>8)throw Error(`Invalid hex color: `+e);(t.length===3||t.length===4)&&(t=Array.prototype.concat.apply([],t.map(function(e){return[e,e]}))),t.length===6&&t.push(`F`,`F`);let n=parseInt(t.join(``),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:n&255,hex:`#`+t.slice(0,6).join(``)}}e.getOptions=function(e){e||={},e.color||={};let n=e.margin===void 0||e.margin===null||e.margin<0?4:e.margin,r=e.width&&e.width>=21?e.width:void 0,i=e.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:t(e.color.dark||`#000000ff`),light:t(e.color.light||`#ffffffff`)},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+t.margin*2?t.width/(e+t.margin*2):t.scale},e.getImageWidth=function(t,n){let r=e.getScale(t,n);return Math.floor((t+n.margin*2)*r)},e.qrToImageData=function(t,n,r){let i=n.modules.size,a=n.modules.data,o=e.getScale(i,r),s=Math.floor((i+r.margin*2)*o),c=r.margin*o,l=[r.color.light,r.color.dark];for(let e=0;e<s;e++)for(let n=0;n<s;n++){let u=(e*s+n)*4,d=r.color.light;if(e>=c&&n>=c&&e<s-c&&n<s-c){let t=Math.floor((e-c)/o),r=Math.floor((n-c)/o);d=l[+!!a[t*i+r]]}t[u++]=d.r,t[u++]=d.g,t[u++]=d.b,t[u]=d.a}}})),qe=t((e=>{var t=Z();function n(e,t,n){e.clearRect(0,0,t.width,t.height),t.style||={},t.height=n,t.width=n,t.style.height=n+`px`,t.style.width=n+`px`}function r(){try{return document.createElement(`canvas`)}catch{throw Error(`You need to specify a canvas element`)}}e.render=function(e,i,a){let o=a,s=i;o===void 0&&(!i||!i.getContext)&&(o=i,i=void 0),i||(s=r()),o=t.getOptions(o);let c=t.getImageWidth(e.modules.size,o),l=s.getContext(`2d`),u=l.createImageData(c,c);return t.qrToImageData(u.data,e,o),n(l,s,c),l.putImageData(u,0,0),s},e.renderToDataURL=function(t,n,r){let i=r;i===void 0&&(!n||!n.getContext)&&(i=n,n=void 0),i||={};let a=e.render(t,n,i),o=i.type||`image/png`,s=i.rendererOpts||{};return a.toDataURL(o,s.quality)}})),Je=t((e=>{var t=Z();function n(e,t){let n=e.a/255,r=t+`="`+e.hex+`"`;return n<1?r+` `+t+`-opacity="`+n.toFixed(2).slice(1)+`"`:r}function r(e,t,n){let r=e+t;return n!==void 0&&(r+=` `+n),r}function i(e,t,n){let i=``,a=0,o=!1,s=0;for(let c=0;c<e.length;c++){let l=Math.floor(c%t),u=Math.floor(c/t);!l&&!o&&(o=!0),e[c]?(s++,c>0&&l>0&&e[c-1]||(i+=o?r(`M`,l+n,.5+u+n):r(`m`,a,0),a=0,o=!1),l+1<t&&e[c+1]||(i+=r(`h`,s),s=0)):a++}return i}e.render=function(e,r,a){let o=t.getOptions(r),s=e.modules.size,c=e.modules.data,l=s+o.margin*2,u=o.color.light.a?`<path `+n(o.color.light,`fill`)+` d="M0 0h`+l+`v`+l+`H0z"/>`:``,d=`<path `+n(o.color.dark,`stroke`)+` d="`+i(c,s,o.margin)+`"/>`,f=`viewBox="0 0 `+l+` `+l+`"`,p=`<svg xmlns="http://www.w3.org/2000/svg" `+(o.width?`width="`+o.width+`" height="`+o.width+`" `:``)+f+` shape-rendering="crispEdges">`+u+d+`</svg>
8
- `;return typeof a==`function`&&a(null,p),p}})),Q=t((e=>{var t=ke(),n=Ke(),r=qe(),i=Je();function a(e,r,i,a,o){let s=[].slice.call(arguments,1),c=s.length,l=typeof s[c-1]==`function`;if(!l&&!t())throw Error(`Callback required as last argument`);if(l){if(c<2)throw Error(`Too few arguments provided`);c===2?(o=i,i=r,r=a=void 0):c===3&&(r.getContext&&o===void 0?(o=a,a=void 0):(o=a,a=i,i=r,r=void 0))}else{if(c<1)throw Error(`Too few arguments provided`);return c===1?(i=r,r=a=void 0):c===2&&!r.getContext&&(a=i,i=r,r=void 0),new Promise(function(t,o){try{t(e(n.create(i,a),r,a))}catch(e){o(e)}})}try{let t=n.create(i,a);o(null,e(t,r,a))}catch(e){o(e)}}e.create=n.create,e.toCanvas=a.bind(null,r.render),e.toDataURL=a.bind(null,r.renderToDataURL),e.toString=a.bind(null,function(e,t,n){return i.render(e,n)})})),Ye=e(Q(),1),Xe={class:`flex flex-col gap-6`},Ze={class:`text-sm font-semibold text-gray-500 mb-2`},Qe={class:`flex items-center gap-2 rounded border border-gray-200 px-3 py-2`},$e={class:`font-mono text-sm flex-1 break-all`},et={key:0,class:`flex justify-center mt-2`},tt=[`src`,`alt`],nt={key:1,class:`mt-2 flex flex-col gap-1`},rt={class:`font-mono flex-1 break-all`},it={class:`text-sm font-semibold text-gray-500 mb-2`},at={class:`flex items-center gap-2`},ot={class:`text-sm font-medium`},st={class:`flex items-center gap-2`},ct={class:`font-mono text-sm flex-1 break-all`},lt={key:0,class:`flex justify-center mt-1`},ut=[`src`,`alt`],dt=d({name:`AccessUrlsList`,__name:`access-urls-list`,setup(e){let{t}=m(),a=ee(),{internal:o,candidates:l,external:d}=W(),g=p(null),v=h({}),C=async e=>{try{await navigator.clipboard.writeText(e),a.success(t(`remoteAccessModule.messages.urlCopied`))}catch{a.error(t(`remoteAccessModule.messages.copyFailed`))}},E=async e=>{if(g.value===e){g.value=null;return}if(g.value=e,!v[e])try{v[e]=await Ye.toDataURL(e,{width:180,margin:2})}catch{a.error(t(`remoteAccessModule.messages.qrFailed`)),g.value===e&&(g.value=null)}};return(e,a)=>(f(),n(`div`,Xe,[i(`div`,null,[i(`h3`,Ze,S(y(t)(`remoteAccessModule.headings.internalUrl`)),1),y(o)?(f(),n(T,{key:0},[i(`div`,Qe,[i(`span`,$e,S(y(o)),1),c(y(b),{size:`small`,"aria-label":y(t)(`remoteAccessModule.buttons.copy.title`),onClick:a[0]||=e=>C(y(o))},{default:w(()=>[c(y(r),{icon:`mdi:content-copy`})]),_:1},8,[`aria-label`]),c(y(b),{size:`small`,"aria-label":y(t)(`remoteAccessModule.buttons.showQr.title`),onClick:a[1]||=e=>E(y(o))},{default:w(()=>[c(y(r),{icon:`mdi:qrcode`})]),_:1},8,[`aria-label`])]),g.value===y(o)&&v[y(o)]?(f(),n(`div`,et,[i(`img`,{src:v[y(o)],alt:y(t)(`remoteAccessModule.texts.qrAlt`),width:`180`,height:`180`},null,8,tt)])):x(``,!0)],64)):x(``,!0),y(l).length>0?(f(),n(`ul`,nt,[(f(!0),n(T,null,_(y(l),e=>(f(),n(`li`,{key:e,class:`flex items-center gap-2 text-sm text-gray-500`},[i(`span`,rt,S(e),1),c(y(b),{size:`small`,text:``,"aria-label":y(t)(`remoteAccessModule.buttons.copy.title`),onClick:t=>C(e)},{default:w(()=>[c(y(r),{icon:`mdi:content-copy`})]),_:1},8,[`aria-label`,`onClick`])]))),128))])):x(``,!0)]),i(`div`,null,[i(`h3`,it,S(y(t)(`remoteAccessModule.headings.externalUrls`)),1),y(d).length===0?(f(),u(y(L),{key:0,type:`info`,title:y(t)(`remoteAccessModule.texts.noExternalUrls`),closable:!1},null,8,[`title`])):x(``,!0),(f(!0),n(T,null,_(y(d),(e,a)=>(f(),n(`div`,{key:e.url,class:`flex flex-col gap-1 rounded border border-gray-200 px-3 py-2 mb-2`},[i(`div`,at,[i(`span`,ot,S(e.label),1),a===0?(f(),u(y(D),{key:0,type:`success`,size:`small`},{default:w(()=>[s(S(y(t)(`remoteAccessModule.texts.primary`)),1)]),_:1})):x(``,!0),c(y(D),{type:e.https?`success`:`warning`,size:`small`},{default:w(()=>[s(S(e.https?y(t)(`remoteAccessModule.texts.https`):y(t)(`remoteAccessModule.texts.http`)),1)]),_:2},1032,[`type`]),c(y(D),{type:e.scope===`public`?`warning`:`info`,size:`small`},{default:w(()=>[s(S(e.scope===`public`?y(t)(`remoteAccessModule.texts.public`):y(t)(`remoteAccessModule.texts.private`)),1)]),_:2},1032,[`type`])]),i(`div`,st,[i(`span`,ct,S(e.url),1),c(y(b),{size:`small`,"aria-label":y(t)(`remoteAccessModule.buttons.copy.title`),onClick:t=>C(e.url)},{default:w(()=>[c(y(r),{icon:`mdi:content-copy`})]),_:1},8,[`aria-label`,`onClick`]),c(y(b),{size:`small`,"aria-label":y(t)(`remoteAccessModule.buttons.showQr.title`),onClick:t=>E(e.url)},{default:w(()=>[c(y(r),{icon:`mdi:qrcode`})]),_:1},8,[`aria-label`,`onClick`])]),g.value===e.url&&v[e.url]?(f(),n(`div`,lt,[i(`img`,{src:v[e.url],alt:y(t)(`remoteAccessModule.texts.qrAlt`),width:`180`,height:`180`},null,8,ut)])):x(``,!0)]))),128))])]))}}),ft={key:1,class:`grid grid-cols-[repeat(auto-fill,minmax(350px,1fr))] max-sm:grid-cols-1 gap-3`},$={class:`provider-card__header`},pt={class:`provider-card__heading`},mt={class:`provider-card__title`},ht={class:`provider-card__tags`},gt={class:`provider-card__content`},_t={key:0,class:`provider-card__description`},vt={key:1,class:`provider-card__description provider-card__description--empty`},yt={key:2,class:`flex flex-col gap-1`},bt=a(d({name:`ProviderCards`,__name:`provider-cards`,setup(e){let{t}=m(),{providers:a,getElement:o}=De(),d=e=>{switch(e){case`connected`:return`success`;case`error`:return`danger`;case`connecting`:case`pending-auth`:case`pending-approval`:case`setup-required`:return`warning`;default:return`info`}};return(e,p)=>y(a).length===0?(f(),u(y(l),{key:0,icon:`info`,title:y(t)(`remoteAccessModule.texts.noProviders`)},null,8,[`title`])):(f(),n(`div`,ft,[(f(!0),n(T,null,_(y(a),e=>(f(),n(T,{key:e.type},[y(o)(e.type)?.components?.providerCard?(f(),u(v(y(o)(e.type)?.components?.providerCard),{key:0,provider:e},null,8,[`provider`])):(f(),u(y(ce),{key:1,class:`provider-card`,shadow:`hover`,"header-class":`py-2!`,"body-class":`py-3!`},{header:w(()=>[i(`div`,$,[i(`div`,pt,[c(y(r),{icon:`mdi:lan-connect`,class:`provider-card__icon`}),i(`h3`,mt,S(e.type),1)]),i(`div`,ht,[c(y(D),{type:d(e.state),size:`small`},{default:w(()=>[s(S(y(t)(`remoteAccessModule.status.${e.state}`)),1)]),_:2},1032,[`type`])])])]),default:w(()=>[i(`div`,gt,[e.message?(f(),n(`p`,_t,S(e.message),1)):e.endpoints.length===0?(f(),n(`p`,vt,S(y(t)(`remoteAccessModule.texts.noEndpoints`)),1)):x(``,!0),e.endpoints.length>0?(f(),n(`ul`,yt,[(f(!0),n(T,null,_(e.endpoints,e=>(f(),n(`li`,{key:e.url,class:`text-sm font-mono break-all`},S(e.label)+` — `+S(e.url),1))),128))])):x(``,!0)])]),_:2},1024))],64))),128))]))}}),[[`__scopeId`,`data-v-dd93c5bb`]]),xt={class:`font-mono`},St={class:`h-full w-full leading-normal`},Ct=d({name:`AdvisoriesTable`,__name:`advisories-table`,setup(e){let{t}=m(),{advisories:n}=U(),a=o(()=>n.value.map((e,t)=>({...e,rowKey:`${e.code}-${e.provider??`module`}-${t}`}))),d=e=>{switch(e){case`critical`:return`danger`;case`warning`:return`warning`;default:return`info`}};return(e,n)=>(f(),u(y(ie),{data:a.value,"table-layout":`fixed`,"row-key":`rowKey`},{empty:w(()=>[i(`div`,St,[c(y(l),{class:`h-full w-full`},{icon:w(()=>[c(y(C),{size:80},{primary:w(()=>[c(y(r),{icon:`mdi:cloud-lock-outline`})]),secondary:w(()=>[c(y(r),{icon:`mdi:check-circle`})]),_:1})]),title:w(()=>[s(S(y(t)(`remoteAccessModule.texts.noAdvisories`)),1)]),_:1})])]),default:w(()=>[c(y(F),{label:y(t)(`remoteAccessModule.fields.advisory.severity`),prop:`severity`,width:130},{default:w(e=>[c(y(D),{size:`small`,type:d(e.row.severity)},{default:w(()=>[s(S(y(t)(`remoteAccessModule.severity.${e.row.severity}`)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),c(y(F),{label:y(t)(`remoteAccessModule.fields.advisory.message`),prop:`message`,"min-width":320},null,8,[`label`]),c(y(F),{label:y(t)(`remoteAccessModule.fields.advisory.provider`),prop:`provider`,width:200},{default:w(e=>[s(S(e.row.provider??y(t)(`remoteAccessModule.texts.moduleSource`)),1)]),_:1},8,[`label`]),c(y(F),{label:y(t)(`remoteAccessModule.fields.advisory.code`),prop:`code`,width:240},{default:w(e=>[i(`span`,xt,S(e.row.code),1)]),_:1},8,[`label`])]),_:1},8,[`data`]))}});export{Oe as a,Se as c,Ee as d,W as f,ge as g,be as h,Q as i,xe as l,H as m,bt as n,Te as o,U as p,dt as r,Ce as s,Ct as t,we as u};
@@ -1 +0,0 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{Ei as e,Er as t,Gr as n,Si as r,T as i,bi as a,ci as o,ki as s,n as c,yi as l}from"./icon-with-child-CgZMNB3F.js";import{Dr as u,Fn as d,On as f,Xn as p,aa as m,an as h,at as g,b as _,c as v,d as y,f as b,ft as x,g as S,ht as C,i as w,in as T,it as E,mt as D,nn as O,o as k,ot as A,p as j,rn as M,rt as N,tn as P,vt as F,yt as I}from"./common-CEAYa_VX.js";import{r as L}from"./config-CIAUSdP7.js";import{r as R}from"./usePlugins-BAUrRkxK.js";import{t as z}from"./schemas.utils-DPM2Btj1.js";import{t as B}from"./dist-DJgPCOr0.js";import{a as V,i as ee,n as H,o as U,r as W}from"./keys-DghNVBR5.js";import{a as G,i as te,n as ne}from"./devices.constants-HX5whDWr.js";import{t as re}from"./useDevicesPlugins-IYuPoZmZ.js";import{s as ie}from"./system.constants-BvSIFqdm.js";import{n as ae}from"./logs-entries.transformers-CZw7f53p.js";var K=y(),q=class extends Error{exception;constructor(e,t=null){super(e),this.name=`DevicesException`,this.exception=t}},J=class extends q{code;constructor(e,t=null,n=null){super(e,n),this.name=`DevicesApiException`,this.code=t}},Y=class extends q{constructor(e,t=null){super(e,t),this.name=`DevicesValidationException`}},oe=()=>{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}}}},se=()=>{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}}}},ce=({id:e})=>{let n=_().getStore(W),{data:r,semaphore:i}=m(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})}}},le=(e={})=>{let{deviceId:n}=e,r=_().getStore(W),{firstLoad:i,semaphore:a}=m(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})}}},ue=C({search:F().optional(),types:g(F()),state:N([`all`,`offline`,`online`]).default(`all`),states:g(x(d)),categories:g(x(P)),enabled:N([`all`,`enabled`,`disabled`]).default(`all`),validation:N([`all`,`valid`,`invalid`]).default(`all`)}),de=C({search:F().optional(),devices:g(F()),categories:g(x(O))}),fe=C({search:F().optional(),channels:g(F()),categories:g(x(M)),permissions:g(x(h)),dataTypes:g(x(T))}),X={search:void 0,devices:[],categories:[]},pe={by:`name`,dir:`asc`},me=(e={})=>{let{deviceId:n}=e,i=_().getStore(W),{firstLoad:a,semaphore:s}=m(i),{filters:c,sort:l,pagination:u,reset:d}=k({key:`${ne}:channels:list`,filters:{schema:de,defaults:X},sort:{defaults:[pe]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),f=t(()=>c.value.search!==X.search||!(0,K.isEqual)(c.value.devices,X.devices)||!(0,K.isEqual)(c.value.categories,X.categories)),p=r(u.value.size||10),h=r(u.value.page||1),g=r(l.value.length>0?l.value[0]?.by:void 0),v=r(l.value.length>0?l.value[0]?.dir??null:null),y=t(()=>B(i.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]??``],[v.value===`asc`?`asc`:`desc`])),b=t(()=>{let e=(h.value-1)*p.value,t=e+p.value;return y.value.slice(e,t)}),x=async()=>{await i.fetch({deviceId:n})},S=t(()=>s.value.fetching.items.includes(n??`all`)?!0:!a.value.includes(n??`all`)&&s.value.fetching.items.includes(n??`all`)),C=t(()=>a.value.includes(n??`all`)),w=t(()=>i.findAll().filter(e=>!n||e.device===n).filter(e=>!e.draft).length);return o(()=>u.value,e=>{h.value=e.page??1,p.value=e.size??10},{deep:!0}),o(()=>h.value,e=>{u.value.page=e}),o(()=>p.value,e=>{u.value.size=e}),o(()=>v.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:v.value}]}),{channels:y,channelsPaginated:b,totalRows:w,areLoading:S,loaded:C,fetchChannels:x,filters:c,filtersActive:f,paginateSize:p,paginatePage:h,sortBy:g,sortDir:v,resetFilter:d}},he=()=>{let{t:e}=i(),t=b(),n=_().getStore(W),r=e=>n.findById(e);return{remove:async i=>{let a=r(i);if(a===null)throw new q(`Something went wrong, channel can't be loaded`);u.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 J&&n.code===404){let n=e(`devicesModule.messages.channels.notFound`,{channel:a.name});t.error(n)}else if(n instanceof J&&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}))})}}},ge=({id:e})=>{let n=_().getStore(W);return{icon:t(()=>{switch(n.findById(e)?.category){default:return`mdi:chip`}})}},_e={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:!0,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:{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_type:`float`,unit:`°`,format:[-90,90]},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`]},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}}},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}}}},ve={generic:{category:`generic`,channels:{generic:{category:`generic`,required:!1,multiple:!0},device_information:{category:`device_information`,required:!0,multiple:!1}}},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}}},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}}},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}}},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}}},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}}},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}}},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}}},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}}},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}}},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},contact:{category:`contact`,required:!1,multiple:!0},switcher:{category:`switcher`,required:!1,multiple:!0},temperature:{category:`temperature`,required:!1,multiple:!1}}}},ye={[P.generic]:[],[P.air_conditioner]:[O.cooler,O.heater,O.fan,O.temperature,O.humidity,O.electrical_energy,O.electrical_power,O.leak,O.device_information],[P.air_dehumidifier]:[O.cooler,O.fan,O.temperature,O.humidity,O.electrical_energy,O.electrical_power,O.leak,O.device_information],[P.air_humidifier]:[O.humidity,O.switcher,O.temperature,O.fan,O.electrical_energy,O.electrical_power,O.leak,O.device_information],[P.air_purifier]:[O.fan,O.air_particulate,O.carbon_dioxide,O.carbon_monoxide,O.humidity,O.leak,O.nitrogen_dioxide,O.ozone,O.pressure,O.sulphur_dioxide,O.temperature,O.volatile_organic_compounds,O.electrical_energy,O.electrical_power,O.device_information],[P.alarm]:[O.alarm,O.device_information],[P.camera]:[O.camera,O.motion,O.microphone,O.speaker,O.contact,O.light,O.temperature,O.humidity,O.battery,O.device_information],[P.door]:[O.door,O.lock,O.contact,O.motion,O.battery,O.device_information],[P.doorbell]:[O.doorbell,O.camera,O.lock,O.motion,O.microphone,O.speaker,O.contact,O.light,O.battery,O.device_information],[P.fan]:[O.fan,O.electrical_energy,O.electrical_power,O.device_information],[P.heating_unit]:[O.heater,O.temperature,O.humidity,O.electrical_energy,O.electrical_power,O.device_information],[P.lighting]:[O.light,O.illuminance,O.electrical_energy,O.electrical_power,O.device_information],[P.lock]:[O.lock,O.contact,O.motion,O.battery,O.device_information],[P.media]:[O.media_input,O.media_playback,O.microphone,O.speaker,O.device_information],[P.av_receiver]:[O.media_input,O.media_playback,O.speaker,O.device_information],[P.game_console]:[O.media_playback,O.media_input,O.device_information],[P.projector]:[O.projector,O.speaker,O.media_playback,O.media_input,O.device_information],[P.set_top_box]:[O.media_input,O.media_playback,O.device_information],[P.streaming_service]:[O.media_playback,O.device_information],[P.outlet]:[O.outlet,O.electrical_energy,O.electrical_power,O.device_information],[P.pump]:[O.flow,O.switcher,O.leak,O.pressure,O.electrical_energy,O.electrical_power,O.device_information],[P.robot_vacuum]:[O.robot_vacuum,O.electrical_energy,O.electrical_power,O.leak,O.battery,O.device_information],[P.sensor]:[O.air_particulate,O.battery,O.carbon_dioxide,O.carbon_monoxide,O.contact,O.humidity,O.illuminance,O.leak,O.motion,O.nitrogen_dioxide,O.occupancy,O.ozone,O.pressure,O.smoke,O.sulphur_dioxide,O.temperature,O.volatile_organic_compounds,O.device_information],[P.speaker]:[O.speaker,O.media_input,O.media_playback,O.electrical_energy,O.electrical_power,O.device_information],[P.sprinkler]:[O.valve,O.flow,O.pressure,O.leak,O.humidity,O.electrical_energy,O.electrical_power,O.device_information],[P.switcher]:[O.switcher,O.electrical_energy,O.electrical_power,O.device_information],[P.television]:[O.television,O.speaker,O.media_playback,O.media_input,O.device_information],[P.terminal]:[O.button,O.indicator,O.buzzer,O.illuminance,O.accelerometer,O.temperature,O.contact,O.switcher,O.device_information],[P.thermostat]:[O.thermostat,O.cooler,O.heater,O.temperature,O.humidity,O.contact,O.electrical_energy,O.electrical_power,O.device_information],[P.valve]:[O.valve,O.pressure,O.flow,O.leak,O.battery,O.electrical_energy,O.electrical_power,O.device_information],[P.water_heater]:[O.heater,O.temperature,O.leak,O.electrical_energy,O.electrical_power,O.device_information],[P.window_covering]:[O.window_covering,O.battery,O.electrical_energy,O.electrical_power,O.device_information]},be=Object.fromEntries(Object.entries(ve).map(([e,t])=>{let n=Object.values(t.channels).map(e=>e.category),r=ye[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]})),Z=Object.fromEntries(Object.entries(ve).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(_e).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=_e[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=_(),r=n.getStore(W),i=n.getStore(H),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 q(`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=C({id:F().uuid().optional(),type:F().trim().nonempty(),device:F().uuid().optional(),category:x(O).default(O.generic),identifier:F().trim().nonempty().nullable().optional(),name:F().trim().nonempty(),description:F().trim().transform(e=>e===``?null:e).nullable().optional()}),Te=C({id:F().uuid(),type:F().trim().nonempty(),device:F().uuid(),category:x(O).default(O.generic),identifier:F().trim().nonempty().nullable().optional(),name:F().trim().nonempty().optional(),description:F().trim().transform(e=>e===``?null:e).nullable().optional()}),Ee=({type:e})=>{let{getByType:n}=se(),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=_().getStore(V),{firstLoad:n,semaphore:r}=m(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:s,deviceId:c})=>{let l=_(),{element:u}=Ee({type:s}),d=l.getStore(W),{devices:f,fetchDevices:p,areLoading:m}=De(),{t:h}=i(),g=b(),y=S(),x=r(G.NONE),C,w=t(()=>A.device?f.value.find(e=>e.id===A.device)??null:null),T=t(()=>w.value?d.findForDevice(w.value.id).map(e=>e.category):[]),E=t(()=>w.value?Z[w.value.category]??null:null),D=t(()=>E.value===null?[]:Object.values(O).filter(e=>E.value?.required.includes(e)||E.value?.optional.includes(e)).filter(e=>!T.value.includes(e)||E.value?.multiple?.includes(e)).map(e=>({value:e,label:h(`devicesModule.categories.channels.${e}`)}))),k=t(()=>f.value.filter(e=>e.type===s).map(e=>({value:e.id,label:e.name}))),A=a({...z(u.value?.schemas?.channelAddFormSchema||we),id:n,type:s,device:c,category:O.generic,name:``,description:``}),j=v(e(A)),M=r(void 0),N=r(!1),P=async()=>{if(M.value.clearValidate(),!await M.value.validate())throw new Y(`Form not valid`);let e=c??A.device;if(!e)throw new Y(`Missing device identifier`);if(!A.category)throw new Y(`Missing data type definition`);let t=(u.value?.schemas?.channelAddFormSchema||we).safeParse(A);if(!t.success)throw y.error(`Schema validation failed with:`,t.error),new Y(`Failed to validate create channel model.`);x.value=G.WORKING;let r=h(`devicesModule.messages.channels.notCreated`,{device:A.name});try{await d.add({id:n,deviceId:e,draft:!1,data:{...t.data,type:s}})}catch(e){throw x.value=G.ERROR,C=window.setTimeout(F,2e3),e instanceof J&&e.code===422?g.error(e.message):g.error(r),e}return x.value=G.OK,C=window.setTimeout(F,2e3),g.success(h(`devicesModule.messages.channels.created`,{device:A.name})),`added`},F=()=>{window.clearTimeout(C),x.value=G.NONE};return p().catch(()=>{}),o(A,()=>{N.value=!(0,K.isEqual)(e(A),j)}),o(()=>D.value,e=>{e.length&&e[0]&&(A.category=e[0].value,j.category=e[0].value)},{immediate:!0}),{categoriesOptions:D,devicesOptions:k,model:A,formEl:M,formChanged:N,submit:P,clear:F,formResult:x,loadingDevices:m}},ke=({channel:n,messages:s})=>{let c=_(),{element:l}=Ee({type:n.type}),u=c.getStore(W),{devices:d,fetchDevices:f,areLoading:p}=De(),{t:m}=i(),h=b(),g=S(),y=r(G.NONE),x,C=t(()=>d.value.find(e=>e.id===n.device)??null),w=t(()=>C.value?u.findForDevice(C.value.id).filter(e=>e.id!==n.id).map(e=>e.category):[]),T=t(()=>C.value?Z[C.value.category]??null:null),E=t(()=>T.value===null?[]:Object.values(O).filter(e=>T.value?.required.includes(e)||T.value?.optional.includes(e)).filter(e=>!w.value.includes(e)||T.value?.multiple?.includes(e)).map(e=>({value:e,label:m(`devicesModule.categories.channels.${e}`)}))),D=t(()=>d.value.map(e=>({value:e.id,label:e.name}))),k=a(n),A=v(e(k)),j=r(void 0),M=r(!1),N=async()=>{let t=n.draft,r=s&&s.error?s.error:n.draft?m(`devicesModule.messages.channels.notCreated`,{channel:n.name}):m(`devicesModule.messages.channels.notEdited`,{channel:n.name});if(j.value.clearValidate(),!await j.value.validate())throw new Y(`Form not valid`);let i=(l.value?.schemas?.channelEditFormSchema||Te).safeParse(k);if(!i.success)throw g.error(`Schema validation failed with:`,i.error),new Y(`Failed to validate edit channel model.`);y.value=G.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 y.value=G.ERROR,x=window.setTimeout(P,2e3),e instanceof J&&e.code===422?h.error(e.message):h.error(r),e}return y.value=G.OK,x=window.setTimeout(P,2e3),t?(h.success(m(s&&s.success?s.success:`devicesModule.messages.channels.created`,{channel:n.name})),`added`):(h.success(m(s&&s.success?s.success:`devicesModule.messages.channels.edited`,{channel:n.name})),M.value=!1,A=v(e(k)),`saved`)},P=()=>{window.clearTimeout(x),y.value=G.NONE};return f().catch(()=>{}),o(k,()=>{M.value=!(0,K.isEqual)(e(k),A)}),{categoriesOptions:E,devicesOptions:D,model:k,formEl:j,formChanged:M,submit:N,clear:P,formResult:y,loadingDevices:p}},Ae=({channelId:e,id:n})=>{let r=_().getStore(H),{data:i,semaphore:a}=m(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=_().getStore(H),{firstLoad:r,semaphore:i}=m(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 i=_().getStore(H),{firstLoad:a,semaphore:s}=m(i),{filters:c,sort:l,pagination:u,reset:d}=k({key:`${ne}:channels-properties:${n}`,filters:{schema:fe,defaults:Q},sort:{defaults:[Me]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),f=t(()=>c.value.search!==Q.search||!(0,K.isEqual)(c.value.channels,Q.channels)||!(0,K.isEqual)(c.value.categories,Q.categories)||!(0,K.isEqual)(c.value.permissions,Q.permissions)||!(0,K.isEqual)(c.value.dataTypes,Q.dataTypes)),p=r(u.value.size||10),h=r(u.value.page||1),g=r(l.value.length>0?l.value[0]?.by:void 0),v=r(l.value.length>0?l.value[0]?.dir??null:null),y=t(()=>B(i.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]??``],[v.value===`asc`?`asc`:`desc`])),b=t(()=>{let e=(h.value-1)*p.value,t=e+p.value;return y.value.slice(e,t)}),x=async()=>{await i.fetch({channelId:e})},S=t(()=>s.value.fetching.items.includes(e)?!0:!a.value.includes(e)&&s.value.fetching.items.includes(e)),C=t(()=>a.value.includes(e)),w=t(()=>i.findAll().filter(t=>!e||t.channel===e).filter(e=>!e.draft).length);return o(()=>u.value,e=>{h.value=e.page??1,p.value=e.size??10},{deep:!0}),o(()=>h.value,e=>{u.value.page=e}),o(()=>p.value,e=>{u.value.size=e}),o(()=>v.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:v.value}]}),{properties:y,propertiesPaginated:b,totalRows:w,areLoading:S,loaded:C,fetchProperties:x,filters:c,filtersActive:f,paginateSize:p,paginatePage:h,sortBy:g,sortDir:v,resetFilter:d}},Pe=()=>{let{t:e}=i(),t=b(),n=_().getStore(H);return{remove:async r=>{let i=n.findById(r);if(i===null)throw new q(`Something went wrong, channel property can't be loaded`);u.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 J&&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 J&&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=_().getStore(H);return{icon:t(()=>{switch(n.findById(e)?.category){default:return`mdi:tune`}})}},Ie=C({id:F().uuid().optional(),type:F().trim().nonempty(),channel:F().uuid().optional(),category:x(M).default(M.generic),identifier:F().trim().nonempty().nullable().optional(),name:F().trim().nonempty().nullable(),permissions:g(x(h)),dataType:x(T),format:g(I([F(),I([D(),E()])])).nullable(),invalid:I([F(),D(),A(),E()]),step:I([F(),D()]).transform(e=>e===``?null:Number(e)).nullable(),enterValue:A().default(!1),value:I([F(),D(),A(),E()]).optional(),enumValues:g(F()),minValue:I([F(),D()]).transform(e=>e===``?void 0:Number(e)).optional(),maxValue:I([F(),D()]).transform(e=>e===``?void 0:Number(e)).optional()}),Le=C({id:F().uuid(),type:F().trim().nonempty(),channel:F().uuid(),category:x(M).default(M.generic),identifier:F().trim().nonempty().nullable().optional(),name:F().trim().nonempty().nullable().optional(),permissions:g(x(h)),dataType:x(T),format:g(I([F(),I([D(),E()])])).nullable(),invalid:I([F(),D(),A(),E()]),step:I([F(),D()]).transform(e=>e===``?null:Number(e)).nullable(),enterValue:A().default(!1),value:I([F(),D(),A(),E()]).optional(),enumValues:g(F()),minValue:I([F(),D()]).transform(e=>e===``?void 0:Number(e)).optional(),maxValue:I([F(),D()]).transform(e=>e===``?void 0:Number(e)).optional()}),Re=({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`))))}},ze=({id:n,type:s,channelId:c})=>{let l=_(),{element:u}=Re({type:s}),d=l.getStore(H),{channels:f,fetchChannels:p,areLoading:m}=le(),{t:g}=i(),y=b(),x=S(),C=r(G.NONE),w,E=t(()=>F.channel?f.value.find(e=>e.id===F.channel)??null:null),D=t(()=>E.value?d.findForChannel(E.value.id).map(e=>e.category):[]),k=t(()=>E.value?xe[E.value.category]??null:null),A=t(()=>k.value===null?[]:Object.values(M).filter(e=>k.value?.required.includes(e)||k.value?.optional.includes(e)).filter(e=>!D.value.includes(e)).map(e=>({value:e,label:g(`devicesModule.categories.channelsProperties.${e}`)}))),j=t(()=>f.value.map(e=>({value:e.id,label:e.name}))),N=Object.values(h).map(e=>({value:e,label:g(`devicesModule.permissions.${e}`)})),P=Object.values(T).map(e=>({value:e,label:g(`devicesModule.dataTypes.${e}`)})),F=a({...z(u.value?.schemas?.channelPropertyAddFormSchema||Ie),id:n,type:s,channel:c,category:M.generic,name:``,permissions:[],dataType:T.unknown,format:null,invalid:null,step:null,enumValues:[],minValue:void 0,maxValue:void 0,enterValue:!1,value:void 0}),I=v(e(F)),L=r(void 0),R=r(!1),B=async()=>{if(L.value.clearValidate(),!await L.value.validate())throw new Y(`Form not valid`);let e=c??F.channel;if(!e)throw new Y(`Missing channel identifier`);if(F.name===``&&(F.name=null),!F.category)throw new Y(`Missing data type definition`);F.dataType===T.enum?F.format=F.enumValues:[T.char,T.uchar,T.short,T.ushort,T.int,T.uint,T.float].includes(F.dataType)&&(F.format=[typeof F.minValue==`string`&&F.minValue!==``?Number(F.minValue):typeof F.minValue==`number`?F.minValue:null,typeof F.maxValue==`string`&&F.maxValue!==``?Number(F.maxValue):typeof F.maxValue==`number`?F.maxValue:null]),F.enterValue||delete F.value;let t=(u.value?.schemas?.channelPropertyAddFormSchema||Ie).safeParse(F);if(!t.success)throw x.error(`Schema validation failed with:`,t.error),new Y(`Failed to validate create channel property model.`);C.value=G.WORKING;let r=g(`devicesModule.messages.channelsProperties.notCreated`,{device:F.name});try{await d.add({id:n,channelId:e,draft:!1,data:{...t.data,type:s}})}catch(e){throw C.value=G.ERROR,w=window.setTimeout(V,2e3),e instanceof J&&e.code===422?y.error(e.message):y.error(r),e}return C.value=G.OK,w=window.setTimeout(V,2e3),y.success(g(`devicesModule.messages.channelsProperties.created`,{device:F.name})),`added`},V=()=>{window.clearTimeout(w),C.value=G.NONE};return p().catch(()=>{}),o(F,()=>{R.value=!(0,K.isEqual)(e(F),I)}),o(()=>F.category,t=>{let n=Se(E.value?.category??O.generic,t);n&&(I.permissions=n.permissions,I.dataType=n.data_type,F.permissions=n.permissions,F.dataType=n.data_type,n.invalid!==void 0&&(I.invalid=n.invalid,F.invalid=n.invalid),n.step!==void 0&&(I.step=n.step,F.step=n.step),I.dataType===T.enum?(I.enumValues=n.format??[],I.minValue=void 0,I.maxValue=void 0,F.enumValues=n.format??[],F.minValue=void 0,F.maxValue=void 0):[T.char,T.uchar,T.short,T.ushort,T.int,T.uint,T.float].includes(F.dataType)?(I.enumValues=[],I.minValue=n.format?.[0],I.maxValue=n.format?.[1],F.enumValues=[],F.minValue=n.format?.[0],F.maxValue=n.format?.[1]):(I.enumValues=[],I.minValue=void 0,I.maxValue=void 0,F.enumValues=[],F.minValue=void 0,F.maxValue=void 0),R.value=!(0,K.isEqual)(e(F),I))},{immediate:!0}),o(()=>A.value,e=>{e.length&&e[0]&&(F.category=e[0].value,I.category=e[0].value)},{immediate:!0}),{categoriesOptions:A,channelsOptions:j,permissionsOptions:N,dataTypesOptions:P,model:F,formEl:L,formChanged:R,submit:B,clear:V,formResult:C,loadingChannels:m}},Be=({property:n,messages:s})=>{let c=_(),{element:l}=Re({type:n.type}),u=c.getStore(H),{channels:d,fetchChannels:f,areLoading:p}=le(),{t:m}=i(),g=b(),y=S(),x=r(G.NONE),C,w=[],E,D;n.dataType===T.enum?w=n.format?n.format.map(e=>e?.toString()||``):[]:[T.char,T.uchar,T.short,T.ushort,T.int,T.uint,T.float].includes(n.dataType)&&Array.isArray(n.format)&&n.format.length===2&&(E=n.format[0],D=n.format[1]);let O=t(()=>d.value.find(e=>e.id===n.channel)??null),k=t(()=>O.value?u.findForChannel(O.value.id).filter(e=>e.id!==n.id).map(e=>e.category):[]),A=t(()=>O.value?xe[O.value.category]??null:null),j=t(()=>A.value===null?[]:Object.values(M).filter(e=>A.value?.required.includes(e)||A.value?.optional.includes(e)).filter(e=>!k.value.includes(e)).map(e=>({value:e,label:m(`devicesModule.categories.channelsProperties.${e}`)}))),N=t(()=>d.value.map(e=>({value:e.id,label:e.name}))),P=Object.values(h).map(e=>({value:e,label:m(`devicesModule.permissions.${e}`)})),F=Object.values(T).map(e=>({value:e,label:m(`devicesModule.dataTypes.${e}`)})),I=a({...n,format:e(n.format),value:n.value?.value??null,enumValues:w,minValue:E,maxValue:D,enterValue:!1}),L=v(e(I)),R=r(void 0),z=r(!1),B=async()=>{let t=n.draft,r=s&&s.error?s.error:n.draft?m(`devicesModule.messages.channelsProperties.notCreated`,{property:n.name??m(`devicesModule.categories.channelsProperties.${n.category}`)}):m(`devicesModule.messages.channelsProperties.notEdited`,{property:n.name??m(`devicesModule.categories.channelsProperties.${n.category}`)});if(R.value.clearValidate(),!await R.value.validate())throw new Y(`Form not valid`);I.name===``&&(I.name=null),n.dataType===T.enum?I.format=I.enumValues:[T.char,T.uchar,T.short,T.ushort,T.int,T.uint,T.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 y.error(`Schema validation failed with:`,i.error),new Y(`Failed to validate edit channel property model.`);x.value=G.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 x.value=G.ERROR,C=window.setTimeout(V,2e3),e instanceof J&&e.code===422?g.error(e.message):g.error(r),e}return x.value=G.OK,C=window.setTimeout(V,2e3),t?(g.success(m(s&&s.success?s.success:`devicesModule.messages.channelsProperties.created`,{property:n.name??m(`devicesModule.categories.channelsProperties.${n.category}`)})),`added`):(g.success(m(s&&s.success?s.success:`devicesModule.messages.channelsProperties.edited`,{property:n.name??m(`devicesModule.categories.channelsProperties.${n.category}`)})),z.value=!1,L=v(e(I)),`saved`)},V=()=>{window.clearTimeout(C),x.value=G.NONE};return f().catch(()=>{}),o(I,()=>{z.value=!(0,K.isEqual)(e(I),L)}),{categoriesOptions:j,channelsOptions:N,permissionsOptions:P,dataTypesOptions:F,model:I,formEl:R,formChanged:z,submit:B,clear:V,formResult:x,loadingChannels:p}},Ve=({id:e})=>{let n=_().getStore(V),{data:r,semaphore:i}=m(n);return{device:t(()=>{let t=s(e);return t===null?null:r.value[t]??null}),isLoading:t(()=>{let t=s(e);return i.value.fetching.item.includes(t)?!0:(r.value[t]??null)===null&&i.value.fetching.items}),fetchDevice:async()=>{let t=s(e);(r.value[t]??null)?.draft||await n.get({id:t})}}},$={search:void 0,types:[],state:`all`,states:[],categories:[],enabled:`all`,validation:`all`},He={by:`name`,dir:`asc`},Ue=()=>{let e=_(),n=e.getStore(V),i=e.getStore(U),{firstLoad:a,semaphore:s}=m(n),{filters:c,sort:l,pagination:u,reset:p}=k({key:`${ne}:devices:list`,filters:{schema:ue,defaults:$},sort:{defaults:[He]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),h=t(()=>c.value.search!==$.search||!(0,K.isEqual)(c.value.types,$.types)||c.value.state!==$.state||!(0,K.isEqual)(c.value.states,$.states)||!(0,K.isEqual)(c.value.categories,$.categories)||!(0,K.isEqual)(c.value.enabled,$.enabled)||c.value.validation!==$.validation),g=r(u.value.size||10),v=r(u.value.page||1),y=r(l.value.length>0?l.value[0]?.by:void 0),b=r(l.value.length>0?l.value[0]?.dir??null:null),x=r(!1),S=e=>i.findById(e)?.isValid??null,C=t(()=>B(n.findAll().filter(e=>!e.draft&&(x.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??d.unknown))&&(c.value.state===`all`||c.value.state===`online`&&[d.ready,d.connected,d.running].includes(e.status.status)||c.value.state===`offline`&&[d.disconnected,d.stopped,d.lost,d.unknown].includes(e.status.status))&&(c.value.validation===`all`||c.value.validation===`valid`&&S(e.id)===!0||c.value.validation===`invalid`&&S(e.id)===!1)),[e=>y.value===`state`?e.status?.status??d.unknown:e[y.value]??``],[b.value===`asc`?`asc`:`desc`])),w=t(()=>{let e=(v.value-1)*g.value,t=e+g.value;return C.value.slice(e,t)}),T=async()=>{await n.fetch({hidden:x.value?f.all:f.false})},E=t(()=>s.value.fetching.items||!a.value),D=t(()=>a.value),O=t(()=>n.findAll().filter(e=>!e.draft&&(x.value||!e.hidden)).length);return o(()=>u.value,e=>{v.value=e.page??1,g.value=e.size??10},{deep:!0}),o(()=>v.value,e=>{u.value.page=e}),o(()=>g.value,e=>{u.value.size=e}),o(()=>b.value,e=>{y.value===void 0||e===null?l.value=[]:l.value=[{by:y.value,dir:e}]}),o(()=>y.value,e=>{e===void 0?l.value=[]:l.value=[{by:e,dir:b.value}]}),{devices:C,devicesPaginated:w,totalRows:O,areLoading:E,loaded:D,fetchDevices:T,filters:c,filtersActive:h,paginateSize:g,paginatePage:v,sortBy:y,sortDir:b,resetFilter:p,showHidden:x}},We=()=>{let{t:e}=i(),t=b(),n=_().getStore(V);return{remove:async r=>{let i=n.findById(r);if(i===null)throw new q(`Something went wrong, device can't be loaded`);u.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 J&&n.code===404){let n=e(`devicesModule.messages.devices.notFound`,{device:i.name});t.error(n)}else if(n instanceof J&&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 u.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 u.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 u.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=_().getStore(V);return{icon:t(()=>{switch(n.findById(e)?.category){default:return`mdi:devices`}})}},Ke=({id:e})=>{let n=_(),r=n.getStore(V),i=n.getStore(W),a=e=>r.findById(e),o=e=>Z[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 q(`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=C({id:F().uuid().optional(),type:F().trim().nonempty(),category:x(P).default(P.generic),identifier:F().trim().nonempty().nullable().optional(),name:F().trim().nonempty(),description:F().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:A().default(!0).optional()}),Je=C({id:F().uuid(),type:F().trim().nonempty(),category:x(P).default(P.generic),identifier:F().trim().nonempty().nullable().optional(),name:F().trim().nonempty().optional(),description:F().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:A().optional(),roomId:F().uuid().nullable().optional()}),Ye=({type:e})=>{let{getByType:n}=re(),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 s=_(),{element:c}=Ye({type:n}),l=s.getStore(V),{t:u}=i(),d=b(),f=S(),p=r(G.NONE),m,h=Object.values(P).map(e=>({value:e,label:u(`devicesModule.categories.devices.${e}`)})),g=a({...z(c.value?.schemas?.deviceAddFormSchema||qe),id:t,type:n,category:P.generic,name:``,description:``}),y=v(e(g)),x=r(void 0),C=r(!1),w=async()=>{if(x.value.clearValidate(),!await x.value.validate())throw new Y(`Form not valid`);let e=(c.value?.schemas?.deviceAddFormSchema||qe).safeParse(g);if(!e.success)throw f.error(`Schema validation failed with:`,e.error),new Y(`Failed to validate create device model.`);p.value=G.WORKING;let r=u(`devicesModule.messages.devices.notCreated`,{device:g.name});try{await l.add({id:t,draft:!1,data:{...e.data,type:n}})}catch(e){throw p.value=G.ERROR,m=window.setTimeout(T,2e3),e instanceof J&&e.code===422?d.error(e.message):d.error(r),e}return p.value=G.OK,m=window.setTimeout(T,2e3),d.success(u(`devicesModule.messages.devices.created`,{device:g.name})),`added`},T=()=>{window.clearTimeout(m),p.value=G.NONE};return o(g,()=>{C.value=!(0,K.isEqual)(e(g),y)}),{categoriesOptions:h,model:g,formEl:x,formChanged:C,submit:w,clear:T,formResult:p}},Ze=({device:t,messages:n})=>{let s=_(),{element:c}=Ye({type:t.type}),l=s.getStore(V),{t:u}=i(),d=b(),f=S(),p=r(G.NONE),m,h=Object.values(P).map(e=>({value:e,label:u(`devicesModule.categories.devices.${e}`)})),g=a(t),y=v(e(g)),x=r(void 0),C=r(!1),w=async()=>{let r=t.draft,i=n&&n.error?n.error:t.draft?u(`devicesModule.messages.devices.notCreated`,{device:t.name}):u(`devicesModule.messages.devices.notEdited`,{device:t.name});if(x.value.clearValidate(),!await x.value.validate())throw new Y(`Form not valid`);let a=(c.value?.schemas?.deviceEditFormSchema||Je).safeParse(g);if(!a.success)throw f.error(`Schema validation failed with:`,a.error),new Y(`Failed to validate edit device model.`);let o={...a.data};(0,K.isEqual)(o.roomId,y.roomId)&&delete o.roomId,p.value=G.WORKING;try{await l.edit({id:t.id,data:{...o,type:t.type}}),t.draft&&await l.save({id:t.id})}catch(e){throw p.value=G.ERROR,m=window.setTimeout(T,2e3),e instanceof J&&e.code===422?d.error(e.message):d.error(i),e}return p.value=G.OK,m=window.setTimeout(T,2e3),r?(d.success(u(n&&n.success?n.success:`devicesModule.messages.devices.created`,{device:t.name})),`added`):(d.success(u(n&&n.success?n.success:`devicesModule.messages.devices.edited`,{device:t.name})),C.value=!1,y=v(e(g)),`saved`)},T=()=>{window.clearTimeout(m),p.value=G.NONE};return o(g,()=>{C.value=!(0,K.isEqual)(e(g),y)}),{categoriesOptions:h,model:g,formEl:x,formChanged:C,submit:w,clear:T,formResult:p}},Qe=()=>{let e=_().getStore(U),{data:n,semaphore:r,firstLoad:i}=m(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}}},$e=({id:e})=>{let n=_().getStore(U),{semaphore:r}=m(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})}}},et=300,tt=1e4,nt=({id:e})=>{let i=_(),a=i.getStore(V),s=i.getStore(W),c=i.getStore(H),{data:l,semaphore:u}=m(a),{data:d,semaphore:f,firstLoad:p}=m(s),{semaphore:g,firstLoad:v}=m(c),{sendCommand:y}=w(),b={},x={},S={},C=r({}),T=r({}),E=t(()=>e===null?null:l.value[e]??null),D=t(()=>Object.values(d.value).filter(t=>t.device===e&&t.category!==O.device_information)),k=t(()=>D.value.filter(e=>c.findForChannel(e.id).some(e=>e.permissions.includes(h.rw)||e.permissions.includes(h.wo)))),A=t(()=>k.value.length>0),j=e=>c.findForChannel(e),M=e=>e.permissions.includes(h.rw)||e.permissions.includes(h.wo),N=e=>{let t=C.value[e];return t===void 0?c.findById(e)?.value?.value??null:t},P=e=>T.value[e]??!1,F=(e,t)=>{if(t!==void 0){let n=C.value[e];if(n!==t&&String(n)!==String(t))return}delete C.value[e],S[e]&&(clearTimeout(S[e]),delete S[e])},I=(e,t)=>{S[e]&&clearTimeout(S[e]),S[e]=setTimeout(()=>{let n=C.value[e];(n===t||String(n)===String(t))&&delete C.value[e],delete S[e]},tt)},L=async(t,n,r)=>c.findById(n)?(b[n]&&(clearTimeout(b[n]),delete b[n],x[n]&&(x[n](!1),delete x[n])),C.value[n]=r,new Promise(i=>{x[n]=i;let a=setTimeout(async()=>{delete x[n],T.value[n]=!0;try{await y(te.CHANNEL_PROPERTY_SET,{context:{origin:`admin`},properties:[{device:e,channel:t,property:n,value:r}]},`DevicesModule.Internal.SetPropertyValue`)===!0?(I(n,r),i(!0)):(F(n,r),i(!1))}catch{F(n,r),i(!1)}finally{T.value[n]=!1,b[n]===a&&delete b[n]}},et);b[n]=a})):!1,R=async()=>{(e in l.value?l.value[e]:null)?.draft||await a.get({id:e})},z=async()=>{await s.fetch({deviceId:e})},B=async()=>{let t=Object.values(d.value).filter(t=>t.device===e);for(let e of t)await c.fetch({channelId:e.id})},ee=t(()=>{if(u.value.fetching.item.includes(e)||f.value.fetching.items.includes(e))return!0;for(let e of D.value)if(g.value.fetching.items.includes(e.id))return!0;return!1}),U=t(()=>p.value.includes(e)),G=t(()=>{if(!U.value)return!1;for(let e of D.value)if(!v.value.includes(e.id))return!1;return!0});return o(()=>{let e={};for(let t of Object.keys(C.value)){let n=c.findById(t);n&&(e[t]=n.value?.value??null)}return e},e=>{for(let[t,n]of Object.entries(C.value)){let r=e[t];(r===n||String(r)===String(n))&&F(t)}},{deep:!0}),n(()=>{for(let e of Object.keys(b))clearTimeout(b[e]),delete b[e],x[e]&&(x[e](!1),delete x[e]);for(let e of Object.keys(S))clearTimeout(S[e]),delete S[e]}),{device:E,channels:D,controllableChannels:k,hasControllableProperties:A,isLoading:ee,areChannelsLoaded:U,arePropertiesLoaded:G,fetchDevice:R,fetchChannels:z,fetchProperties:B,getPropertiesForChannel:j,isPropertyWritable:M,getPropertyValue:N,isPropertyLoading:P,setPropertyValue:L}},rt=({deviceId:e})=>{let n=_().getStore(ee),{firstLoad:r,semaphore:i}=m(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})}},it=e=>{let n=j(),i=S(),a=r({}),u=r(!1),d=r(!1),f=r(!1),m=r(void 0),h=r(!1),g=null,_=0,v=t(()=>Object.values(a.value).sort((e,t)=>new Date(t.ts).getTime()-new Date(e.ts).getTime())),y=t(()=>{let e=[p.warn,p.error,p.fatal,p.fail];return v.value.filter(t=>e.includes(t.type))}),b=t(()=>y.value.length),x=t(()=>b.value>0),C=async()=>{let t=s(e.deviceId);g=t,_++;let r=_;d.value=!0;try{let{data:e,error:o}=await n.client.GET(`/${c}/${ie}/logs`,{params:{query:{resource:t,limit:50}}});if(g!==t||_!==r)return;if(e!==void 0){let t=Object.fromEntries(e.data.map(e=>{let t=ae(e);return[t.id,t]}));a.value=t,f.value=!0,u.value=e.metadata.has_more,m.value=e.metadata.next_cursor}else o&&i.error(`Failed to fetch device logs:`,o)}catch(e){g===t&&_===r&&i.error(`Error fetching device logs:`,e)}finally{g===t&&_===r&&(d.value=!1)}},w=async()=>{if(d.value||!u.value||!m.value)return;let t=s(e.deviceId),r=m.value,o=_;d.value=!0;try{let{data:e,error:s}=await n.client.GET(`/${c}/${ie}/logs`,{params:{query:{resource:t,after_id:r,limit:50}}});if(g!==t||_!==o)return;if(e!==void 0){let t=Object.fromEntries(e.data.map(e=>{let t=ae(e);return[t.id,t]}));a.value={...a.value,...t},u.value=e.metadata.has_more,m.value=e.metadata.next_cursor}else s&&i.error(`Failed to load more device logs:`,s)}catch(e){g===t&&_===o&&i.error(`Error loading more device logs:`,e)}finally{g===t&&_===o&&(d.value=!1)}},T=async()=>{a.value={},m.value=void 0,u.value=!1,f.value=!1,await C()},E=null;return o(()=>h.value,e=>{E&&=(clearInterval(E),null),e&&(E=setInterval(()=>{d.value||C()},3e3))}),l(()=>{E&&=(clearInterval(E),null)}),o(()=>s(e.deviceId),()=>{T()}),{logs:v,alertLogs:y,alertCount:b,hasAlerts:x,hasMore:u,isLoading:d,loaded:f,live:h,fetchLogs:C,loadMoreLogs:w,refreshLogs:T}};export{Z as A,se as B,je as C,De as D,Oe as E,ge as F,J as H,he as I,me as L,Se as M,ve as N,Ce as O,_e as P,le as R,Ne as S,ke as T,q as U,oe as V,Y as W,ze as _,Qe as a,Fe as b,Ye as c,Ke as d,Ge as f,Be as g,Ve as h,$e as i,be as j,xe as k,qe as l,Ue as m,rt as n,Ze as o,We as p,nt as r,Xe as s,it as t,Je as u,Ie as v,Ae as w,Pe as x,Le as y,ce as z};
@@ -1 +0,0 @@
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}from"./icon-with-child-CgZMNB3F.js";import{Dr as o,aa as s,at as c,b as l,c as u,d,f,g as p,ht as m,mt as h,o as g,ot as _,vt as v}from"./common-CEAYa_VX.js";import{r as y}from"./config-CIAUSdP7.js";import{r as b}from"./usePlugins-BAUrRkxK.js";import{t as x}from"./schemas.utils-DPM2Btj1.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-jnyNKIzd.js";import{n as N}from"./useDataSources-CI2pLb0w.js";import"./usePage-D3Y3z-Z-.js";var P=d(),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=l().getStore(D),{firstLoad:n,semaphore:r}=s(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:[]},ee={by:`title`,dir:`asc`},te=()=>{let e=l().getStore(D),{firstLoad:r,semaphore:i}=s(e),{filters:o,sort:c,pagination:u,reset:d}=g({key:`${w}:pages:list`,filters:{schema:j,defaults:L},sort:{defaults:[ee]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),f=t(()=>o.value.search!==L.search||!(0,P.isEqual)(o.value.types,L.types)||!(0,P.isEqual)(o.value.displays,L.displays)),p=n(u.value.size||10),m=n(u.value.page||1),h=n(c.value.length>0?c.value[0]?.by:void 0),_=n(c.value.length>0?c.value[0]?.dir??null:null),v=t(()=>S(e.findAll().filter(e=>!e.draft&&(!o.value.search||e.title.toLowerCase().includes(o.value.search.toLowerCase()))&&(o.value.types.length===0||o.value.types.includes(e.type))&&(o.value.displays.length===0||o.value.displays.includes(`all`)&&(e.displays===null||e.displays.length===0)||e.displays!==null&&e.displays.length>0&&e.displays.some(e=>o.value.displays.includes(e)))),[e=>e[h.value]??``],[_.value===`asc`?`asc`:`desc`])),y=t(()=>{let e=(m.value-1)*p.value,t=e+p.value;return v.value.slice(e,t)}),b=async()=>{await e.fetch()},x=t(()=>i.value.fetching.items||!r.value),C=t(()=>r.value),T=t(()=>e.findAll().filter(e=>!e.draft).length);return a(()=>u.value,e=>{m.value=e.page??1,p.value=e.size??10},{deep:!0}),a(()=>m.value,e=>{u.value.page=e}),a(()=>p.value,e=>{u.value.size=e}),a(()=>_.value,e=>{h.value===void 0||e===null?c.value=[]:c.value=[{by:h.value,dir:e}]}),a(()=>h.value,e=>{e===void 0?c.value=[]:c.value=[{by:e,dir:_.value}]}),{pages:v,pagesPaginated:y,totalRows:T,areLoading:x,loaded:C,fetchPages:b,filters:o,filtersActive:f,paginateSize:p,paginatePage:m,sortBy:h,sortDir:_,resetFilter:d}},R=()=>{let{t:e}=r(),t=f(),n=l().getStore(D);return{remove:async r=>{let i=n.findById(r);if(i===null)throw new C(`Something went wrong, page can't be loaded`);o.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 n.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 r=>{if(r.length!==0){try{await o.confirm(e(`dashboardModule.texts.pages.confirmBulkRemove`,{count:r.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 n.bulkRemove({ids:r.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:r.length}))}}}}},z=({id:e})=>{let n=l().getStore(D);return{icon:t(()=>`mdi:${n.findById(e)?.icon??`view-dashboard`}`)}},B=m({id:v().uuid().optional(),type:v().trim().nonempty(),title:v().trim().nonempty(),icon:v().trim().transform(e=>e===``?null:e).nullable().optional(),order:h(),showTopBar:_().optional(),displays:c(v().uuid()).nullable().optional()}),V=m({id:v().uuid(),type:v().trim().nonempty(),title:v().trim().nonempty().optional(),icon:v().trim().transform(e=>e===``?null:e).nullable().optional(),order:h().optional(),showTopBar:_().optional(),displays:c(v().uuid()).nullable().optional()}),H=({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`))))}},U=({id:t,type:o})=>{let s=l(),{element:c}=H({type:o}),d=s.getStore(D),{t:m}=r(),h=f(),g=p(),_=n(T.NONE),v,y=i({...x(c.value?.schemas?.pageAddFormSchema||B),id:t,type:o,title:``,icon:``,order:0,showTopBar:!0}),b=u(e(y)),S=n(void 0),C=n(!1),w=async()=>{if(S.value.clearValidate(),!await S.value.validate())throw new O(`Form not valid`);let e=(c.value?.schemas?.pageAddFormSchema||B).safeParse(y);if(!e.success)throw g.error(`Schema validation failed with:`,e.error),new O(`Failed to validate create page model.`);_.value=T.WORKING;let n=m(`dashboardModule.messages.pages.notCreated`,{page:y.title});try{await d.add({id:t,draft:!1,data:{...e.data,type:o}})}catch(e){throw _.value=T.ERROR,v=window.setTimeout(k,2e3),e instanceof E&&e.code===422?h.error(e.message):h.error(n),e}return _.value=T.OK,v=window.setTimeout(k,2e3),h.success(m(`dashboardModule.messages.pages.created`,{page:y.title})),`added`},k=()=>{window.clearTimeout(v),_.value=T.NONE};return a(y,()=>{C.value=!(0,P.isEqual)(e(y),b)}),{model:y,formEl:S,formChanged:C,submit:w,clear:k,formResult:_}},W=({page:t,messages:o})=>{let s=l(),{element:c}=H({type:t.type}),d=s.getStore(D),{t:m}=r(),h=f(),g=p(),_=n(T.NONE),v,y=i(t),b=u(e(y)),x=n(void 0),S=n(!1),C=async()=>{let n=t.draft,r=o&&o.error?o.error:t.draft?m(`dashboardModule.messages.pages.notCreated`,{page:t.title}):m(`dashboardModule.messages.pages.notEdited`,{page:t.title});if(x.value.clearValidate(),!await x.value.validate())throw new O(`Form not valid`);let i=(c.value?.schemas?.pageEditFormSchema||V).safeParse(y);if(!i.success)throw g.error(`Schema validation failed with:`,i.error),new O(`Failed to validate edit page model.`);_.value=T.WORKING;try{let e;e=await d.edit({id:t.id,data:{...i.data,type:t.type}}),t.draft&&(e=await d.save({id:t.id})),e&&Object.assign(y,e)}catch(e){throw _.value=T.ERROR,v=window.setTimeout(w,2e3),e instanceof E&&e.code===422?h.error(e.message):h.error(r),e}return _.value=T.OK,v=window.setTimeout(w,2e3),n?(h.success(m(o&&o.success?o.success:`dashboardModule.messages.pages.created`,{page:t.title})),`added`):(h.success(m(o&&o.success?o.success:`dashboardModule.messages.pages.edited`,{page:t.title})),S.value=!1,b=u(e(y)),`saved`)},w=()=>{window.clearTimeout(v),_.value=T.NONE};return a(y,()=>{S.value=!(0,P.isEqual)(e(y),b)}),{model:y,formEl:x,formChanged:S,submit:C,clear:w,formResult:_}},G=e=>{let n=l().getStore(k),{firstLoad:r,semaphore:i}=s(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}})}}},K=e=>{let{t}=r(),n=f(),i=l().getStore(k);return{findById:(e,t)=>i.findById(e,t),edit:async e=>i.edit(e),save:async e=>i.save(e),remove:async r=>{let a=i.findById(e.parent,r);if(a===null)throw new C(`Something went wrong, tile can't be loaded`);o.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}}),n.success(t(`dashboardModule.messages.tiles.removed`))}catch(e){if(e instanceof E&&e.code===404){let e=t(`dashboardModule.messages.tiles.notFound`);n.error(e)}else if(e instanceof E&&e.code===422)n.error(e.message);else{let e=t(`dashboardModule.messages.tiles.notRemoved`);n.error(e)}}}).catch(()=>{n.info(t(`dashboardModule.messages.tiles.removeCanceled`))})},removeDirectly:async e=>i.remove(e)}},q=m({id:v().uuid().optional(),type:v().trim().nonempty(),row:h(),col:h(),rowSpan:h(),colSpan:h(),hidden:_()}),J=m({id:v().uuid(),type:v().trim().nonempty(),row:h().optional(),col:h().optional(),rowSpan:h().optional(),colSpan:h().optional(),hidden:_()}),Y=({id:t,parent:o,parentId:s,type:c,onlyDraft:d=!1})=>{let m=l(),{element:h}=N({type:c}),g=m.getStore(k),{t:_}=r(),v=f(),y=p(),b=n(T.NONE),S,C=i({...x(h.value?.schemas?.tileAddFormSchema||q),id:t,type:c,row:1,col:1,rowSpan:1,colSpan:1,hidden:!1}),w=u(e(C)),D=n(void 0),A=n(!1),j=async()=>{if(D.value.clearValidate(),!await D.value.validate())throw new O(`Form not valid`);let e=(h.value?.schemas?.tileAddFormSchema||q).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=_(`dashboardModule.messages.tiles.notCreated`);try{await g.add({id:t,parent:{type:o,id:s},draft:d,data:{...e.data,type:c}})}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(_(`dashboardModule.messages.tiles.created`)),`added`},M=()=>{window.clearTimeout(S),b.value=T.NONE};return a(C,()=>{A.value=!(0,P.isEqual)(e(C),w)}),{model:C,formEl:D,formChanged:A,submit:j,clear:M,formResult:b}},X=({tile:t,messages:o,onlyDraft:s=!1})=>{let c=l(),{element:d}=N({type:t.type}),m=c.getStore(k),{t:h}=r(),g=f(),_=p(),v=n(T.NONE),y,b=i(t),x=u(e(b)),S=n(void 0),C=n(!1),w=async()=>{let n=t.draft,r=o&&o.error?o.error:t.draft&&!s?h(`dashboardModule.messages.tiles.notCreated`):h(`dashboardModule.messages.tiles.notEdited`);if(S.value.clearValidate(),!await S.value.validate())throw new O(`Form not valid`);let i=(d.value?.schemas?.tileEditFormSchema||J).safeParse(b);if(!i.success)throw _.error(`Schema validation failed with:`,i.error),new O(`Failed to validate create tile model.`);v.value=T.WORKING;try{await m.edit({id:t.id,parent:t.parent,data:{...i.data,type:t.type}}),t.draft&&!s&&await m.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?g.error(e.message):g.error(r),e}return v.value=T.OK,y=window.setTimeout(D,2e3),n&&!s?(g.success(h(o&&o.success?o.success:`dashboardModule.messages.tiles.created`)),`added`):(g.success(h(o&&o.success?o.success:`dashboardModule.messages.tiles.edited`)),C.value=!1,x=u(e(b)),`saved`)},D=()=>{window.clearTimeout(y),v.value=T.NONE};return a(b,()=>{C.value=!(0,P.isEqual)(e(b),x)}),{model:b,formEl:S,formChanged:C,submit:w,clear:D,formResult:v}},Z=e=>{let{id:n}=e,r=l().getStore(A),{data:i,semaphore:a}=s(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=m({id:v().uuid().optional(),type:v().trim().nonempty()}),$=m({id:v().uuid(),type:v().trim().nonempty()}),ne=({id:t,type:o,parent:s,parentId:c,onlyDraft:d=!1})=>{let m=l(),{element:h}=M({type:o}),g=m.getStore(A),{t:_}=r(),v=f(),y=p(),b=n(T.NONE),S,C=i({...x(h.value?.schemas?.dataSourceAddFormSchema||Q),id:t,type:o}),w=u(e(C)),D=n(void 0),k=n(!1),j=async()=>{if(D.value.clearValidate(),!await D.value.validate())throw new O(`Form not valid`);let e=(h.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=_(`dashboardModule.messages.dataSources.notCreated`);try{await g.add({id:t,parent:{type:s,id:c},draft:d,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(_(`dashboardModule.messages.dataSources.created`)),`added`},N=()=>{window.clearTimeout(S),b.value=T.NONE};return a(C,()=>{k.value=!(0,P.isEqual)(e(C),w)}),{model:C,formEl:D,formChanged:k,submit:j,clear:N,formResult:b}},re=({dataSource:t,messages:o,onlyDraft:s=!1})=>{let c=l(),{element:d}=M({type:t.type}),m=c.getStore(A),{t:h}=r(),g=f(),_=p(),v=n(T.NONE),y,b=i(t),x=u(e(b)),S=n(void 0),C=n(!1),w=async()=>{let n=t.draft,r=o&&o.error?o.error:t.draft&&!s?h(`dashboardModule.messages.dataSources.notCreated`):h(`dashboardModule.messages.dataSources.notEdited`);if(S.value.clearValidate(),!await S.value.validate())throw new O(`Form not valid`);let i=(d.value?.schemas?.dataSourceEditFormSchema||$).safeParse(b);if(!i.success)throw _.error(`Schema validation failed with:`,i.error),new O(`Failed to validate create dataSource model.`);v.value=T.WORKING;try{await m.edit({id:t.id,parent:t.parent,data:{...i.data,type:t.type}}),t.draft&&!s&&await m.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?g.error(e.message):g.error(r),e}return v.value=T.OK,y=window.setTimeout(D,2e3),n&&!s?(g.success(h(o&&o.success?o.success:`dashboardModule.messages.dataSources.created`)),`added`):(g.success(h(o&&o.success?o.success:`dashboardModule.messages.dataSources.edited`)),C.value=!1,x=u(e(b)),`saved`)},D=()=>{window.clearTimeout(y),v.value=T.NONE};return a(b,()=>{C.value=!(0,P.isEqual)(e(b),x)}),{model:b,formEl:S,formChanged:C,submit:w,clear:D,formResult:v}};export{z as _,Z as a,I as b,q as c,G as d,W as f,V as g,B as h,$ as i,J as l,H as m,ne as n,X as o,U as p,Q as r,Y as s,re as t,K as u,R as v,F as x,te as y};
@@ -1 +0,0 @@
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,ji as o,ki as s}from"./icon-with-child-CgZMNB3F.js";import{Dr as c,aa as l,at as u,b as d,c as f,d as p,f as m,ft as h,ht as g,mt as _,o as v,ot as y,rt as b,vt as x,yt as S}from"./common-CEAYa_VX.js";import{r as C}from"./config-CIAUSdP7.js";import{r as w}from"./usePlugins-BAUrRkxK.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-BYonWGX0.js";import{l as L,u as R}from"./useSpaces-dSwttzjs.js";import{a as z}from"./keys-DghNVBR5.js";var B=e=>{let n=d().getStore(P),{data:r,semaphore:i}=l(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=p(),H=g({search:x().optional(),types:u(x())}),U=g({name:x().min(1),description:x().nullable().optional(),category:S([h(N),h(k)]).nullable().optional(),icon:x().nullable().optional(),displayOrder:_().int().min(0).default(0),parentId:x().uuid().nullable().optional()}),W=U.extend({id:x().uuid(),type:b([M.ROOM,M.ZONE]).default(M.ROOM)}),G=U.extend({id:x().uuid(),type:h(M),suggestionsEnabled:y().default(!0),statusWidgets:u(L).nullable().optional()}),K=({id:t,type:o})=>{let s=d().getStore(P),{t:c}=r(),l=m(),u=n(F.NONE),p=n(null),h,g=i({id:t,type:o??M.ROOM,name:``,description:null,category:null,icon:null,displayOrder:0,parentId:null}),_=f(e(g)),v=n(void 0),y=n(!1),b=async()=>{if(v.value.clearValidate(),!await v.value.validate())throw Error(`Form not valid`);let e=W.safeParse(g);if(!e.success)throw Error(`Failed to validate create space model.`);u.value=F.WORKING;let n=c(`spacesModule.messages.notCreated`,{space:g.name});try{p.value=await s.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,p.value=null,h=window.setTimeout(x,2e3),l.error(n),e}return u.value=F.OK,h=window.setTimeout(x,2e3),l.success(c(`spacesModule.messages.created`,{space:g.name})),`added`},x=()=>{window.clearTimeout(h),u.value=F.NONE,p.value=null};return a(g,()=>{y.value=!(0,V.isEqual)(e(g),_)}),{model:g,formEl:v,formChanged:y,submit:b,clear:x,formResult:u,createdSpace:p}};function q(e){let n=e=>{let t=I(e);return e===M.ROOM?[...t].sort((e,t)=>e.localeCompare(t)):t},r=e=>{let t=A(e);return t&&t.length>0?t:null};return{getCategoryOptions:n,getCategoryGroups:r,getCategoryTemplates:e=>O(e),categoryOptions:t(()=>{let t=o(e)??M.ROOM;return n(t)}),categoryGroups:t(()=>{let t=o(e)??M.ROOM;return r(t)}),currentTemplates:t(()=>O(o(e)??M.ROOM))}}var J=(e,r)=>{let i=d(),a=i.getStore(z),o=i.getStore(P),{semaphore:s,firstLoad:c}=l(a),u=n(!1);return{devices:t(()=>{if(!e.value||!r.value)return[];let t=a.findAll().filter(e=>!e.draft&&!e.hidden),n;return n=r.value===M.ROOM?t.filter(t=>t.roomId===e.value):t.filter(t=>t.zoneIds.includes(e.value)),n.sort((e,t)=>e.name.localeCompare(t.name))}),loading:t(()=>!!(u.value||s.value.fetching.items||!c.value)),firstLoadFinished:t(()=>c.value),fetchDevices:async()=>{await a.fetch()},addDevice:async t=>{if(!e.value||!r.value)throw Error(`Space ID and type are required`);u.value=!0;try{if(r.value===M.ROOM){let n=a.findById(t);if(!n)throw Error(`Device not found`);await a.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 a.addZone({id:t,zoneId:e.value})}}finally{u.value=!1}},removeDevice:async t=>{if(!e.value||!r.value)throw Error(`Space ID and type are required`);u.value=!0;try{if(r.value===M.ROOM){let e=a.findById(t);if(!e)throw Error(`Device not found`);await a.edit({id:t,data:{type:e.type,roomId:null}})}else await a.removeZone({id:t,zoneId:e.value})}finally{u.value=!1}},reassignDevice:async(e,t)=>{u.value=!0;try{let n=a.findById(e);if(!n)throw Error(`Device not found`);await a.edit({id:e,data:{type:n.type,roomId:t}})}finally{u.value=!1}}}},Y=e=>{let r=d().getStore(E),i=n(!1);return{displays:t(()=>e.value?r.findAll().filter(t=>t.spaceId===e.value).sort((e,t)=>(e.name||e.macAddress).localeCompare(t.name||t.macAddress)):[]),loading:t(()=>i.value?!0:r.fetching()),fetchDisplays:async()=>{await r.fetch()},reassignDisplay:async(e,t)=>{i.value=!0;try{await r.edit({id:e,data:{spaceId:t}})}finally{i.value=!1}},removeDisplay:async e=>{i.value=!0;try{await r.edit({id:e,data:{spaceId:null}})}finally{i.value=!1}}}},X=({space:t})=>{let o=()=>`value`in t?t.value:t,s=o(),c=d().getStore(P),{t:l}=r(),u=m(),p=n(F.NONE),h,g=i({id:s.id,type:s.type,name:s.name,description:s.description,category:s.category,icon:s.icon,displayOrder:s.displayOrder,parentId:s.parentId,suggestionsEnabled:s.suggestionsEnabled,statusWidgets:s.statusWidgets?[...s.statusWidgets.map(e=>({...e,settings:{...e.settings}}))]:null}),_=f(e(g)),v=n(void 0),y=n(!1),b=async()=>{if(v.value.clearValidate(),!await v.value.validate())throw Error(`Form not valid`);let t=G.safeParse(g);if(!t.success)throw Error(`Failed to validate edit space model.`);p.value=F.WORKING;let n=l(`spacesModule.messages.notEdited`,{space:g.name});try{await c.edit({id:s.id,data:{name:t.data.name,type:t.data.type,category:t.data.category??null,description:t.data.description??null,icon:t.data.icon??null,displayOrder:t.data.displayOrder,parentId:t.data.parentId??null,suggestionsEnabled:t.data.suggestionsEnabled,statusWidgets:t.data.statusWidgets??null}})}catch(e){throw p.value=F.ERROR,h=window.setTimeout(x,2e3),u.error(n),e}return p.value=F.OK,h=window.setTimeout(x,2e3),y.value=!1,_=f(e(g)),`saved`},x=()=>{window.clearTimeout(h),p.value=F.NONE};return a(g,()=>{y.value=!(0,V.isEqual)(e(g),_)}),a(()=>o(),t=>{t&&(g.id=t.id,g.type=t.type,g.name=t.name,g.description=t.description,g.category=t.category,g.icon=t.icon,g.displayOrder=t.displayOrder,g.parentId=t.parentId,g.suggestionsEnabled=t.suggestionsEnabled,g.statusWidgets=t.statusWidgets?[...t.statusWidgets.map(e=>({...e,settings:{...e.settings}}))]:null,_=f(e(g)),y.value=!1)},{deep:!0}),{model:g,formEl:v,formChanged:y,submit:b,clear:x,formResult:p}},Z=()=>{let{t:e}=r(),t=m(),n=d().getStore(P);return{remove:async r=>{let i=n.findById(r);return i?c.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 c.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=d().getStore(P),{firstLoad:r,semaphore:i}=l(e),{filters:o,sort:s,pagination:c,reset:u}=v({key:`${j}:spaces:list`,filters:{schema:H,defaults:Q},sort:{defaults:[ee]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:2}),f=t(()=>o.value.search!==Q.search||!(0,V.isEqual)(o.value.types,Q.types)),p=n(c.value.size||10),m=n(c.value.page||1),h=n(s.value.length>0?s.value[0]?.by:void 0),g=n(s.value.length>0?s.value[0]?.dir??null:null),_=t(()=>T(e.findAll().filter(e=>!e.draft&&(!o.value.search||e.id.toLowerCase().includes(o.value.search.toLowerCase())||e.name?.toLowerCase().includes(o.value.search.toLowerCase())||e.description?.toLowerCase().includes(o.value.search.toLowerCase()))&&(o.value.types.length===0||o.value.types.includes(e.type))),[e=>{switch(h.value){case`name`:return e.name;case`type`:return e.type;case`displayOrder`:return e.displayOrder;default:return e.displayOrder}}],[g.value??`asc`])),y=t(()=>{let e=(m.value-1)*p.value,t=e+p.value;return _.value.slice(e,t)}),b=async()=>{await e.fetch()},x=t(()=>!!(i.value.fetching.items||!r.value)),S=t(()=>r.value),C=t(()=>e.findAll().filter(e=>!e.draft).length);return a(()=>c.value,e=>{m.value=e.page??1,p.value=e.size??10},{deep:!0}),a(()=>m.value,e=>{c.value.page=e}),a(()=>p.value,e=>{c.value.size=e}),a(()=>g.value,e=>{h.value===void 0||e===null?s.value=[]:s.value=[{by:h.value,dir:e}]}),a(()=>h.value,e=>{e===void 0?s.value=[]:s.value=[{by:e,dir:g.value}]}),{spaces:_,spacesPaginated:y,totalRows:C,areLoading:x,loaded:S,fetchSpaces:b,filters:o,filtersActive:f,paginateSize:p,paginatePage:m,sortBy:h,sortDir:g,resetFilter:u}},$=()=>{let e=w(),{enabled:n}=C(),{t:i,te:a}=r(),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)?i(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:n}=$(),r=t(()=>n(s(e)));return{plugin:r,element:t(()=>{let t=s(e);return(r.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 +0,0 @@
1
- import{Er as e}from"./icon-with-child-CgZMNB3F.js";import{aa as t,b as n}from"./common-CEAYa_VX.js";import{t as r}from"./keys-CIqUg3Jv.js";import"./usePersonalTokens-DwMWVRNS.js";var i=()=>{let i=n().getStore(r),{profile:a}=t(i);return{profile:e(()=>a.value),isSignedIn:e(()=>i.isSignedIn())}};export{i as t};
@@ -1 +0,0 @@
1
- import"./composables-DrSNDrtP.js";
@@ -1 +0,0 @@
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{Dr as s,a as c,aa as l,at as u,b as d,bt as f,c as p,d as m,dt as h,f as g,g as _,ht as v,mt as y,ot as b,p as x,st as S,vt as C,yt as w}from"./common-CEAYa_VX.js";import{r as T}from"./config-CIAUSdP7.js";import{r as E}from"./usePlugins-BAUrRkxK.js";import{t as D}from"./dist-DJgPCOr0.js";import{t as O}from"./useConfigModule-l8zp4LY1.js";import{i as k,l as A,n as j,o as M,s as N}from"./useLocation-CKsKAhov.js";import{a as P,n as F,o as I}from"./weather.constants-_S0I_w_Q.js";import{t as L}from"./types-BFzk34Iy.js";var R=()=>{let e=d().getStore(N),{data:n,semaphore:r}=l(e);return{weatherDay:t(()=>n.value),isLoading:t(()=>n.value===null&&r.value.getting),fetchWeatherDay:async()=>{await e.get()}}},z=()=>{let e=d().getStore(A),{firstLoad:n,semaphore:r}=l(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=d().getStore(A),{firstLoad:r,semaphore:i}=l(e),{configModule:o}=O({type:P}),s=t(()=>o.value?.primaryLocationId??null),c=n(10),u=n(1),f=n({...B}),p=t(()=>f.value.search!==B.search||f.value.types.length>0||f.value.primary!==B.primary),m=n(`name`),h=n(`ascending`),g=t(()=>{let t=e.findAll().filter(e=>!(e.draft||f.value.search&&!e.name.toLowerCase().includes(f.value.search.toLowerCase())||f.value.types.length>0&&!f.value.types.includes(e.type)||f.value.primary===`primary`&&e.id!==s.value||f.value.primary===`secondary`&&e.id===s.value));return h.value===null?t:D(t,[e=>e[m.value]??``],[h.value===`ascending`?`asc`:`desc`])}),_=t(()=>{let e=(u.value-1)*c.value,t=e+c.value;return g.value.slice(e,t)}),v=async()=>{await e.fetch()},y=t(()=>i.value.fetching.items||!r.value),b=t(()=>r.value),x=t(()=>e.findAll().filter(e=>!e.draft).length);return a(()=>f.value,()=>{u.value=1},{deep:!0}),{locations:g,locationsPaginated:_,totalRows:x,areLoading:y,loaded:b,fetchLocations:v,filters:f,filtersActive:p,paginateSize:c,paginatePage:u,sortBy:m,sortDir:h,resetFilter:()=>{f.value={...B}},primaryLocationId:s}},H=()=>{let e=x(),r=_(),i=n({}),a=n(!1),s=n(!1),c=n(!1);return{weatherByLocation:t(()=>i.value),isLoading:a,hasError:s,fetchCompleted:c,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,c.value=!0}}}}},U=()=>{let{t:e}=r(),t=g(),n=d().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=m(),G=v({id:L,draft:b().default(!1),type:C().trim().nonempty(),name:C().trim().nonempty(),order:y().int().nonnegative().default(0),createdAt:w([C().datetime({offset:!0}),S()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:w([C().datetime({offset:!0}),S()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)}).catchall(f());v({fetching:v({items:b().default(!1),item:u(L)}),creating:u(L),updating:u(L),deleting:u(L)}),v({id:L,type:C().trim().nonempty(),data:h({})}),v({id:L,data:v({type:C().trim().nonempty(),name:C().trim().nonempty()}).catchall(f())}),v({id:L}),v({id:L});var K=v({id:L.optional().default(c()),draft:b().optional().default(!1),data:v({type:C().trim().nonempty(),name:C().trim().nonempty()}).catchall(f())}),q=v({id:L,data:v({type:C().trim().nonempty(),name:C().trim().optional()}).catchall(f())});v({id:L}),v({ids:u(L).nonempty()});var J=v({succeeded:u(C()),failed:u(v({id:C(),reason:C()}))});v({id:L});var Y=v({id:C().uuid().optional(),type:C().trim().nonempty(),name:C().trim().nonempty()}).passthrough(),X=v({type:C().trim().nonempty(),name:C().trim().nonempty().optional()}).passthrough();v({id:C().uuid(),type:C(),name:C().trim().nonempty(),created_at:C(),updated_at:C().nullable().optional()}),v({id:L,type:C().trim().nonempty(),name:C().trim().min(1,`Name is required`)});var Z=v({name:C().trim().min(1,`Name is required`)}),Q=G,ee=Y,te=X,ne=({id:t})=>{let o=d().getStore(A),{t:s}=r(),c=g(),l=_(),u=n(F.NONE),f,m=i({name:o.findById(t.value)?.name??``}),h=p(e(m)),v=n(void 0),y=n(!1),b=async()=>{if(v.value.clearValidate(),!await v.value.validate())throw new M(`Form not valid`);let n=Z.safeParse(m);if(!n.success)throw l.error(`[WEATHER_MODULE] Schema validation failed:`,n.error),new M(`Failed to validate update location model.`);u.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:m.name});try{await o.edit({id:t.value,data:{type:r.type,...n.data}}),u.value=F.OK,c.success(s(`weatherModule.messages.locations.updated`,{location:m.name})),Object.assign(h,p(e(m))),y.value=!1}catch(e){throw u.value=F.ERROR,f=window.setTimeout(x,2e3),e instanceof k&&e.code===422?c.error(e.message):c.error(i),e}},x=()=>{window.clearTimeout(f),u.value=F.NONE};return a(()=>m,()=>{y.value=!(0,W.isEqual)(e(m),h)},{deep:!0}),a(()=>o.findById(t.value),t=>{t&&!y.value&&(m.name=t.name,Object.assign(h,p(e(m))))}),{model:m,formEl:v,formChanged:y,submit:b}},$=()=>{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 +0,0 @@
1
- import"./rolldown-runtime-QTnfLwEv.js";import{Ei as e,Er as t,Gr as n,Si as r,T as i,bi as a,ci as o,n as s}from"./icon-with-child-CgZMNB3F.js";import{Dr as c,Vt as l,aa as u,at as d,b as f,br as p,c as m,d as h,f as g,g as _,ht as v,o as y,p as b,rt as x,vt as S}from"./common-CEAYa_VX.js";import{t as C}from"./dist-DJgPCOr0.js";import{t as w}from"./keys-DExX7OfU.js";var T=e=>{let n=f().getStore(w),{tokenRefreshTriggers:i}=u(n),a=_(),s=r([]),c=t(()=>e.value===null?null:n?.findById(e.value)??null),l=t(()=>e.value===null?!1:n?.getting(e.value)??!1),d=async()=>{if(e.value!==null)try{await n?.get({id:e.value})}catch(e){a.error(`Failed to fetch display:`,e)}},m=async()=>{if(e.value!==null)try{let t=await n?.getTokens({id:e.value});s.value=t??[]}catch(e){a.error(`Failed to fetch display tokens:`,e),s.value=[]}};return p(t(()=>{if(e.value===null||!n)return 0;let t=i.value;return!t||typeof t!=`object`?0:t[e.value]??0}),async()=>{if(e.value!==null)try{await m()}catch(e){a.error(`Failed to refresh tokens:`,e)}},{debounce:300}),o(()=>e.value,async e=>{if(e!==null&&n?.findById(e)===null)try{await d()}catch(e){a.error(`Failed to fetch display on id change:`,e)}},{immediate:!0}),{display:c,tokens:s,isLoading:l,fetchDisplay:d,fetchTokens:m,revokeToken:async()=>{if(e.value===null)return!1;let t=await n?.revokeToken({id:e.value});return t&&(s.value=[]),t??!1}}},E=h(),D=`displays`,O=`displays-module`,k=`DisplaysModule.`,A=l,j=function(e){return e.DISPLAY_CREATED=`DisplaysModule.Display.Created`,e.DISPLAY_UPDATED=`DisplaysModule.Display.Updated`,e.DISPLAY_DELETED=`DisplaysModule.Display.Deleted`,e.DISPLAY_TOKEN_REVOKED=`DisplaysModule.Display.TokenRevoked`,e}({}),M=function(e){return e.NONE=`none`,e.WORKING=`working`,e.ERROR=`error`,e.OK=`ok`,e}({}),N={DISPLAYS:`displays_module-displays`,DISPLAYS_EDIT:`displays_module-displays_edit`,DISPLAY:`displays_module-display`,DISPLAY_EDIT:`displays_module-display_edit`,DISPLAY_TOKENS:`displays_module-display_tokens`},P=[{value:15,labelKey:`15s`},{value:30,labelKey:`30s`},{value:60,labelKey:`1min`},{value:120,labelKey:`2min`},{value:300,labelKey:`5min`},{value:600,labelKey:`10min`},{value:1800,labelKey:`30min`},{value:0,labelKey:`never`}],F=class extends Error{exception;constructor(e,t=null){super(e),this.name=`DisplaysException`,this.exception=t}},I=class extends F{constructor(e,t=null){super(e,t),this.name=`DisplaysValidationException`}},L=class extends F{code;constructor(e,t=null,n=null){super(e,n),this.name=`DisplaysApiException`,this.code=t}},R=({display:t,messages:s})=>{let c=f().getStore(w),{t:l}=i(),u=g(),d=r(M.NONE),p,h=a({id:t.id,name:t.name,spaceId:t.spaceId,unitSize:t.unitSize,rows:t.rows,cols:t.cols,brightness:t.brightness,screenLockDuration:t.screenLockDuration,darkMode:t.darkMode,screenSaver:t.screenSaver,screenPowerOff:t.screenPowerOff,speaker:t.speaker,speakerVolume:t.speakerVolume,microphone:t.microphone,microphoneVolume:t.microphoneVolume,homeMode:t.homeMode,homePageId:t.homePageId,numberFormat:t.numberFormat??``,temperatureUnit:t.temperatureUnit??``,windSpeedUnit:t.windSpeedUnit??``,pressureUnit:t.pressureUnit??``,precipitationUnit:t.precipitationUnit??``,distanceUnit:t.distanceUnit??``,weatherLocationId:t.weatherLocationId??null}),_=m(e(h)),v=r(void 0),y=r(!1),b=async()=>{let n=s&&s.error?s.error:l(`displaysModule.messages.notEdited`,{display:t.name||t.macAddress});if(!v.value)throw new I(`Form element is not available`);if(v.value.clearValidate(),!await v.value.validate())throw new I(`Form not valid`);d.value=M.WORKING;try{let e={name:h.name||null,spaceId:h.spaceId,unitSize:h.unitSize,rows:h.rows,cols:h.cols,brightness:h.brightness,screenLockDuration:h.screenLockDuration,darkMode:h.darkMode,screenSaver:h.screenSaver,screenPowerOff:h.screenPowerOff,homeMode:h.homeMode,homePageId:h.homeMode===`explicit`?h.homePageId:null,numberFormat:h.numberFormat||null,temperatureUnit:h.temperatureUnit||null,windSpeedUnit:h.windSpeedUnit||null,pressureUnit:h.pressureUnit||null,precipitationUnit:h.precipitationUnit||null,distanceUnit:h.distanceUnit||null,weatherLocationId:h.weatherLocationId||null};t.audioOutputSupported&&(e.speaker=h.speaker,e.speakerVolume=h.speakerVolume),t.audioInputSupported&&(e.microphone=h.microphone,e.microphoneVolume=h.microphoneVolume),await c.edit({id:t.id,data:e})}catch(e){throw d.value=M.ERROR,p=window.setTimeout(x,2e3),e instanceof L&&e.code===422?u.error(e.message):u.error(n),e}return d.value=M.OK,p=window.setTimeout(x,2e3),u.success(l(s&&s.success?s.success:`displaysModule.messages.edited`,{display:t.name||t.macAddress})),y.value=!1,_=m(e(h)),`saved`},x=()=>{p!==void 0&&(window.clearTimeout(p),p=void 0),d.value=M.NONE};return o(h,()=>{y.value=!(0,E.isEqual)(e(h),_)}),n(()=>{x()}),{model:h,formEl:v,formChanged:y,submit:b,clear:x,formResult:d}},z=()=>{let e=f().getStore(w),{firstLoad:n}=u(e),r=t(()=>e?.findAll()??[]);return{displays:r,isLoading:t(()=>e?.fetching()??!1),isLoaded:t(()=>n.value),fetchDisplays:async()=>{await e?.fetch()},options:t(()=>r.value.map(e=>({value:e.id,label:e.name||e.macAddress})))}},B=v({search:S().optional(),darkMode:x([`all`,`enabled`,`disabled`]).default(`all`),screenSaver:x([`all`,`enabled`,`disabled`]).default(`all`),state:x([`all`,`offline`,`online`]).default(`all`),states:d(x([`connected`,`disconnected`,`lost`,`unknown`]))}),V={search:void 0,darkMode:`all`,screenSaver:`all`,state:`all`,states:[]},H={by:`name`,dir:`asc`},U=()=>{let e=f().getStore(w),{firstLoad:n,semaphore:i}=u(e),{filters:a,sort:s,pagination:c,reset:l}=y({key:`${O}:displays:list`,filters:{schema:B,defaults:V},sort:{defaults:[H]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),d=t(()=>a.value.search!==V.search||!(0,E.isEqual)(a.value.darkMode,V.darkMode)||!(0,E.isEqual)(a.value.screenSaver,V.screenSaver)||!(0,E.isEqual)(a.value.state,V.state)||!(0,E.isEqual)(a.value.states,V.states)),p=r(c.value.size||10),m=r(c.value.page||1),h=r(s.value.length>0?s.value[0]?.by:void 0),g=r(s.value.length>0?s.value[0]?.dir??null:null),_=t(()=>C(e.findAll().filter(e=>!e.draft&&(!a.value.search||e.id.toLowerCase().includes(a.value.search.toLowerCase())||e.name?.toLowerCase().includes(a.value.search.toLowerCase())||e.macAddress.toLowerCase().includes(a.value.search.toLowerCase())||e.version.toLowerCase().includes(a.value.search.toLowerCase()))&&(a.value.darkMode===`all`||a.value.darkMode===`enabled`&&e.darkMode||a.value.darkMode===`disabled`&&!e.darkMode)&&(a.value.screenSaver===`all`||a.value.screenSaver===`enabled`&&e.screenSaver||a.value.screenSaver===`disabled`&&!e.screenSaver)&&(!a.value.states||a.value.states.length===0||a.value.states.includes(e.status??`unknown`))&&(a.value.state===`all`||a.value.state===`online`&&e.status===`connected`||a.value.state===`offline`&&[`disconnected`,`lost`,`unknown`].includes(e.status??`unknown`))),[e=>{switch(h.value){case`name`:return e.name||e.macAddress;case`version`:return e.version;case`screenWidth`:return e.screenWidth??0;case`status`:return e.status??`unknown`;default:return e.name||e.macAddress}}],[g.value===`asc`?`asc`:`desc`])),v=t(()=>{let e=(m.value-1)*p.value,t=e+p.value;return _.value.slice(e,t)}),b=async()=>{await e.fetch()},x=t(()=>i.value.fetching.items||!n.value),S=t(()=>n.value),T=t(()=>e.findAll().filter(e=>!e.draft).length);return o(()=>c.value,e=>{m.value=e.page??1,p.value=e.size??10},{deep:!0}),o(()=>m.value,e=>{c.value.page=e}),o(()=>p.value,e=>{c.value.size=e}),o(()=>g.value,e=>{h.value===void 0||e===null?s.value=[]:s.value=[{by:h.value,dir:e}]}),o(()=>h.value,e=>{e===void 0?s.value=[]:s.value=[{by:e,dir:g.value}]}),{displays:_,displaysPaginated:v,totalRows:T,areLoading:x,loaded:S,fetchDisplays:b,filters:a,filtersActive:d,paginateSize:p,paginatePage:m,sortBy:h,sortDir:g,resetFilter:l}},W=()=>{let e=f().getStore(w),{t}=i(),n=g();return{remove:async r=>{let i=e?.findById(r);if(!i){n.error(t(`displaysModule.messages.notFound`));return}try{await c.confirm(t(`displaysModule.messages.confirmRemove`,{name:i.name||i.macAddress}),t(`displaysModule.headings.removeDisplay`),{confirmButtonText:t(`displaysModule.buttons.yes.title`),cancelButtonText:t(`displaysModule.buttons.no.title`),type:`warning`}),await e.remove({id:r}),n.success(t(`displaysModule.messages.removed`))}catch{}},bulkRemove:async r=>{if(r.length!==0){try{await c.confirm(t(`displaysModule.messages.confirmBulkRemove`,{count:r.length}),t(`displaysModule.headings.removeBulkDisplays`),{confirmButtonText:t(`displaysModule.buttons.yes.title`),cancelButtonText:t(`displaysModule.buttons.no.title`),type:`warning`})}catch{return}try{let i=await e.bulkRemove({ids:r.map(e=>e.id)});i.succeeded.length>0&&n.success(t(`displaysModule.messages.bulkRemoved`,{count:i.succeeded.length})),i.failed.length>0&&n.error(t(`displaysModule.messages.bulkRemoveFailed`,{count:i.failed.length}))}catch{n.error(t(`displaysModule.messages.bulkRemoveFailed`,{count:r.length}))}}}}},G=()=>{let e=b(),n=_(),i=r(null),a=r(!1),o=r(!1),c=t(()=>i.value?.available??!1),l=t(()=>i.value?.active??!1),u=t(()=>i.value?.deploymentMode??`combined`),d=t(()=>i.value?.remainingTime??null),f=t(()=>{let e=d.value;return e===null?0:Math.ceil(e/1e3)}),p=t(()=>{let e=f.value;return e<=0?`0:00`:`${Math.floor(e/60)}:${(e%60).toString().padStart(2,`0`)}`}),m=async()=>{try{a.value=!0;let{data:t}=await e.client.GET(`/${s}/${D}/displays/permit-join/status`);if(t?.data){let e=t.data;i.value={active:e.active??!1,expiresAt:e.expires_at?new Date(e.expires_at):null,remainingTime:e.remaining_time??null,deploymentMode:e.deployment_mode??`combined`,available:e.available??!1}}}catch(e){throw n.error(`Failed to fetch permit join status`,e),new F(`Failed to fetch permit join status`)}finally{a.value=!1}};return{status:i,loading:a,activating:o,isAvailable:c,isActive:l,deploymentMode:u,remainingTime:d,remainingTimeSeconds:f,remainingTimeFormatted:p,fetchStatus:m,activate:async()=>{try{o.value=!0,await e.client.POST(`/${s}/${D}/displays/permit-join`),await m()}catch(e){throw n.error(`Failed to activate permit join`,e),new F(`Failed to activate permit join`)}finally{o.value=!1}},deactivate:async()=>{try{o.value=!0,await e.client.DELETE(`/${s}/${D}/displays/permit-join`,{}),await m()}catch(e){throw n.error(`Failed to deactivate permit join`,e),new F(`Failed to deactivate permit join`)}finally{o.value=!1}}}};export{T as _,R as a,I as c,D as d,A as f,P as g,N as h,z as i,k as l,M as m,W as n,L as o,j as p,U as r,F as s,G as t,O as u};