@fastybird/smart-panel-admin 1.1.0-alpha.5 → 1.1.0-alpha.50
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.
- package/dist/assets/{alert-BQTYQnER.js → alert-Bc6ljXPb.js} +1 -1
- package/dist/assets/{card-add-form-Ck6-mLod.js → card-add-form-B4x7u0cp.js} +1 -1
- package/dist/assets/{card-edit-form-DxlxRWrN.js → card-edit-form-Cf5VjS68.js} +1 -1
- package/dist/assets/{checkbox-Ct1KW9j2.js → checkbox-C8Q48mHi.js} +1 -1
- package/dist/assets/{clamp-Bz8nCcc6.js → clamp-lVqf-YIx.js} +1 -1
- package/dist/assets/{col-UcL8KWuz.js → col-DG0Uk0fn.js} +1 -1
- package/dist/assets/{collapse-BMAQOZL8.js → collapse-itpGQffm.js} +1 -1
- package/dist/assets/{common-BlrTsYp4.js → common-Bn7l0dTZ.js} +26 -26
- package/dist/assets/{components-BCl_vqkh.js → components-0KOwvMX5.js} +1 -1
- package/dist/assets/components-BQk9ABpe.js +1 -0
- package/dist/assets/{components-tSwiG4en.js → components-CpPrlrei.js} +2 -2
- package/dist/assets/{components-C9BfAORH.js → components-DS0uNHCr.js} +1 -1
- package/dist/assets/{components-SsYNmgAe.js → components-Dc4T4W8z.js} +1 -1
- package/dist/assets/components-DcaTfFyP.js +1 -0
- package/dist/assets/{components-DAga4if7.js → components-Dsancsu8.js} +2 -2
- package/dist/assets/{components-C80SHFcG.js → components-dPbDseUH.js} +1 -1
- package/dist/assets/components-uxAIvZTA.js +6 -0
- package/dist/assets/components-yqrMbM8D.js +1 -0
- package/dist/assets/composables-B8QvbgV62.js +1 -0
- package/dist/assets/{composables-TDMgkeOk.js → composables-BSctq0KM.js} +1 -1
- package/dist/assets/composables-CH-OkvsW.js +1 -0
- package/dist/assets/composables-CmYPZ47C.js +1 -0
- package/dist/assets/{composables-B6mqSg_E.js → composables-D76SlpcV.js} +1 -1
- package/dist/assets/{composables-CS735TVh.js → composables-DHER6Xkm.js} +1 -1
- package/dist/assets/{composables-B1UgF1fo.js → composables-DUQ9KHEb.js} +1 -1
- package/dist/assets/composables-DW-Zpqxd.js +1 -0
- package/dist/assets/composables-DdPJS-mE.js +1 -0
- package/dist/assets/composables-XOSB-fgc.js +1 -0
- package/dist/assets/{composables-Xla74SYE.js → composables-ZLvwxxZC.js} +1 -1
- package/dist/assets/config-CAo-YTTc.js +2 -0
- package/dist/assets/{dashboard-LB4cuZv7.js → dashboard-CtTnq3HK.js} +2 -2
- package/dist/assets/{dashboard.types-CmAH61tA.js → dashboard.types-BpuAFT4r.js} +1 -1
- package/dist/assets/{data-source-edit-form-B8ccwrVQ.js → data-source-edit-form-D35kVTS6.js} +1 -1
- package/dist/assets/{descriptions-D8nHSu3F.js → descriptions-M8aFuu-k.js} +1 -1
- package/dist/assets/devices-DIjZu5Q3.js +2 -0
- package/dist/assets/{devices-virtual.constants-Dti7rDJR.js → devices-virtual.constants-C1_ro-LK.js} +1 -1
- package/dist/assets/devices.constants-DHQemX04.js +1 -0
- package/dist/assets/{dialog-BICM2Xbe.js → dialog-DhC8145N.js} +1 -1
- package/dist/assets/{drawer-DJgGmol9.js → drawer-ByKAvd_2.js} +1 -1
- package/dist/assets/form-jpL98Nph.js +12 -0
- package/dist/assets/index-7MHIfpsV.css +1 -0
- package/dist/assets/index-CL0ujjJJ.js +11 -0
- package/dist/assets/input-number-BRmkMRRq.js +1 -0
- package/dist/assets/{integration-config-dialog-BXTlbFkD.js → integration-config-dialog-aLehHqcK.js} +1 -1
- package/dist/assets/{keys-J7s06zUV.js → keys-C5NnpJdN.js} +1 -1
- package/dist/assets/{keys-DghNVBR5.js → keys-DMEIfK2a.js} +1 -1
- package/dist/assets/{layout-config-B6OpZGeM.js → layout-config-NcC5DHPR.js} +1 -1
- package/dist/assets/{layout-default-D1wGN9VG.js → layout-default-CPoBlQZ5.js} +1 -1
- package/dist/assets/{layout-lock-BVVq9YJ4.js → layout-lock-CESlP_M8.js} +1 -1
- package/dist/assets/{layout-profile-N3XqNTf3.js → layout-profile-0bWlxiwz.js} +1 -1
- package/dist/assets/layout-profile-C4ht-llW.js +1 -0
- package/dist/assets/{layout-sign-Di4Hq0yu.js → layout-sign-Cg2b24JH.js} +1 -1
- package/dist/assets/layout-sign-_yS8Xz76.js +1 -0
- package/dist/assets/{list-data-sources-adjust-C_E-PVZZ.js → list-data-sources-adjust-2lJX_ENq.js} +1 -1
- package/dist/assets/{list-locations-CZ9eQzKS.js → list-locations-uySMgHl2.js} +1 -1
- package/dist/assets/{list-users-B5PiiD7k.js → list-users-BBgR3DOQ.js} +1 -1
- package/dist/assets/logs-entries.transformers-BjKfup2a.js +1 -0
- package/dist/assets/{mcp.exceptions-BPGtzQ-L.js → mcp.exceptions-D0YUoxSw.js} +1 -1
- package/dist/assets/notifications.exceptions-CpBjpo3W.js +1 -0
- package/dist/assets/{omit-CLxUr8_o.js → omit-B_6GPdqv.js} +1 -1
- package/dist/assets/{page-configure-DB7q7mTf.js → page-configure-By4HPQSb.js} +1 -1
- package/dist/assets/{page-configure-CAdm7vAk.js → page-configure-DE6uqM2E.js} +1 -1
- package/dist/assets/pagination-CdLRjz12.js +1 -0
- package/dist/assets/{radio-Bogyjga1.js → radio-CMz-0Y0Y.js} +1 -1
- package/dist/assets/{scene-add-form-CvhKyMmg.js → scene-add-form-CAxqp0MZ.js} +1 -1
- package/dist/assets/{scene-edit-form-CqDsd82P.js → scene-edit-form-CvKkPJuT.js} +1 -1
- package/dist/assets/{schemas.utils-BHZ0MJE0.js → schemas.utils-BElnm6kF.js} +1 -1
- package/dist/assets/{select-data-source-plugin-B5L75geT.js → select-data-source-plugin-C80G-hUW.js} +1 -1
- package/dist/assets/select-pvePhCbe.js +1 -0
- package/dist/assets/slider-Dne3bbVF.js +1 -0
- package/dist/assets/{spaces-BrIV4DRc.js → spaces-DWJb7hcY.js} +2 -2
- package/dist/assets/spaces-home-control.constants-bGgXf051.js +1 -0
- package/dist/assets/{steps-Cw7-fEld.js → steps-CKdwrlWC.js} +1 -1
- package/dist/assets/system-CTlI_wg2.js +2 -0
- package/dist/assets/{table-BXf7N0rb.js → table-DiAinRPD.js} +1 -1
- package/dist/assets/tabs-DIGEewlR.js +1 -0
- package/dist/assets/{tile-detail-DnXnJ-BI.js → tile-detail-PAEZvBde.js} +1 -1
- package/dist/assets/{tile-edit-form-D1S6rZb5.js → tile-edit-form-B4Fn98xv.js} +1 -1
- package/dist/assets/types--W3-1FoJ.js +1 -0
- package/dist/assets/types-DzAQW7Py.js +1 -0
- package/dist/assets/{use-dialog-aFWpVYsw.js → use-dialog-B0Bfl4rV.js} +1 -1
- package/dist/assets/{use-ordered-children-CYVizl7x.js → use-ordered-children-DKgoLYUM.js} +1 -1
- package/dist/assets/useBuddyChat-CHeVnV6E.js +1 -0
- package/dist/assets/{useConfigModule-C2d2v37P.js → useConfigModule-R_7PM1I0.js} +1 -1
- package/dist/assets/{useDataSources-sR_x_yyt.js → useDataSources-CSAJizk1.js} +1 -1
- package/dist/assets/{useDevicesPlugins-BA5bjG9l.js → useDevicesPlugins-DWrs7Fyl.js} +1 -1
- package/dist/assets/useEventBus-CEYwTYd6.js +1 -0
- package/dist/assets/useExtensions-fmnb_pZR.js +1 -0
- package/dist/assets/useGeolocation-BTHIW0Vo.js +2 -0
- package/dist/assets/useLocation-B7kX3B8V.js +1 -0
- package/dist/assets/{useMcpClients-Dkh8Ey61.js → useMcpClients-DcNgf4kP.js} +1 -1
- package/dist/assets/{useModule-CRJ6yZnq.js → useModule-CXgrRxAp.js} +1 -1
- package/dist/assets/{useModules-Ww3v2LZk.js → useModules-CTA2wgv3.js} +1 -1
- package/dist/assets/{useNumberFormat-DG8-VSSE.js → useNumberFormat-CihLXNU2.js} +1 -1
- package/dist/assets/{usePage-iMNf9o87.js → usePage-C9_04WQu.js} +1 -1
- package/dist/assets/{usePersonalTokens-B0Qdlw56.js → usePersonalTokens-0POLLRnY.js} +1 -1
- package/dist/assets/{usePlugin-BeF6k5Xa.js → usePlugin-kD3zkpk6.js} +1 -1
- package/dist/assets/{usePlugins-DvfAfej3.js → usePlugins-BE15XY1o.js} +1 -1
- package/dist/assets/{useSpaces-2SKsqV-l.js → useSpaces-kPcgR4I4.js} +1 -1
- package/dist/assets/{useUuid-BiNKWprF.js → useUuid-CglXc4gF.js} +1 -1
- package/dist/assets/{view-buddy-chat-Dp5GC0Gs.js → view-buddy-chat-cpi2sm5F.js} +1 -1
- package/dist/assets/{view-card-add-B_HQdgId.js → view-card-add-dHXYuPoI.js} +1 -1
- package/dist/assets/{view-card-edit-PY_ojb6G.js → view-card-edit-kvtcgYdp.js} +1 -1
- package/dist/assets/{view-channel-VBR36Rbn.js → view-channel-D3_bNqDh.js} +1 -1
- package/dist/assets/view-channel-add-cCXJLAEX.js +1 -0
- package/dist/assets/{view-channel-edit-B3dwrzPj.js → view-channel-edit-CmBX4mft.js} +1 -1
- package/dist/assets/{view-channel-property-add-nMpqJ0Ob.js → view-channel-property-add-DJTHY_RI.js} +1 -1
- package/dist/assets/view-channel-property-edit-C_Z49NMl.js +1 -0
- package/dist/assets/{view-channels-BDRx9dSg.js → view-channels-BIqXmqk8.js} +1 -1
- package/dist/assets/{view-config-module-edit-_CR9FYc1.js → view-config-module-edit-DvIZUIoY.js} +1 -1
- package/dist/assets/{view-config-modules-m17c1Itw.js → view-config-modules-Cpl4pRnH.js} +1 -1
- package/dist/assets/{view-config-plugin-edit-uZ2b1wem.js → view-config-plugin-edit-BnYjdm-M.js} +1 -1
- package/dist/assets/view-config-plugins-CDHn_Y7z.js +1 -0
- package/dist/assets/{view-data-source-add-JOqY3Ax9.js → view-data-source-add-BeHpMEWY.js} +1 -1
- package/dist/assets/{view-data-source-add-D7uUH5Uc.js → view-data-source-add-JnCP4qPQ.js} +1 -1
- package/dist/assets/view-data-source-edit-CMTCeuLV.js +1 -0
- package/dist/assets/{view-data-source-edit-BItu4eum.js → view-data-source-edit-DtAzqjtE.js} +1 -1
- package/dist/assets/view-device-81kZt8l_.js +1 -0
- package/dist/assets/{view-device-add-5gzFbap_.js → view-device-add-I81uiQKy.js} +1 -1
- package/dist/assets/{view-device-control-D1iHL-PG.js → view-device-control-DxRWRwNv.js} +1 -1
- package/dist/assets/{view-device-edit-jFFmHSh7.js → view-device-edit-D0qfeHQ2.js} +1 -1
- package/dist/assets/{view-devices-DCZ2e0z0.js → view-devices-DLTEWDsY.js} +1 -1
- package/dist/assets/{view-devices-wizard-o_kZHPNb.js → view-devices-wizard-BwK4Chfa.js} +1 -1
- package/dist/assets/{view-display-5Hn5sWPZ.js → view-display-DF7n1Ma7.js} +1 -1
- package/dist/assets/{view-display-edit-BNQYxXpt.js → view-display-edit-B14Vz_PU.js} +1 -1
- package/dist/assets/{view-display-tokens-DJ_IGOcy.js → view-display-tokens-BVYDl9PU.js} +1 -1
- package/dist/assets/{view-displays-e9KUJJUz.js → view-displays-CsyrHH6e.js} +1 -1
- package/dist/assets/view-extension-detail-Dj5CC_Rx.js +1 -0
- package/dist/assets/{view-extensions-DLkGlWmU.js → view-extensions-CB9VmscX.js} +1 -1
- package/dist/assets/{view-location-DRXUqln5.js → view-location-CS43dxHB.js} +1 -1
- package/dist/assets/{view-location-add-BNyDqhTZ.js → view-location-add-CYRPjb2K.js} +1 -1
- package/dist/assets/view-location-edit-DwnmyFCR.js +1 -0
- package/dist/assets/{view-locations-BN8GPdnZ.js → view-locations-cm61ZZVu.js} +1 -1
- package/dist/assets/{view-lock-screen-1Vwm2jGy.js → view-lock-screen-Bxd62Z7P.js} +1 -1
- package/dist/assets/view-mcp-clients-DmWpQiHV.js +1 -0
- package/dist/assets/{view-mcp-oauth-consent-B8khqeda.js → view-mcp-oauth-consent-CxTGj6oc.js} +1 -1
- package/dist/assets/{view-mcp-oauth-management-D3c2vSnl.js → view-mcp-oauth-management-6LFmtUIE.js} +1 -1
- package/dist/assets/{view-notifications-VJb9gFIy.js → view-notifications-DXtoy3F7.js} +1 -1
- package/dist/assets/view-onboarding-Z1W0nz_2.js +1 -0
- package/dist/assets/{view-page-oG5xdZtl.js → view-page-B3HzxxsX.js} +1 -1
- package/dist/assets/{view-page-add-BDPt_b8F.js → view-page-add-Bz0-KkC8.js} +1 -1
- package/dist/assets/{view-page-configure-DvDNUd1u.js → view-page-configure-DUhE_7Mv.js} +1 -1
- package/dist/assets/{view-page-configure-BPWn7Ny3.js → view-page-configure-pvQyC5nt.js} +1 -1
- package/dist/assets/{view-page-data-source-add-QHJueyUu.js → view-page-data-source-add-sBhundim.js} +1 -1
- package/dist/assets/view-page-data-source-edit-BUDtKHqt.js +1 -0
- package/dist/assets/{view-page-edit-D5aq17tK.js → view-page-edit-boPE7ykI.js} +1 -1
- package/dist/assets/{view-page-plugin-YDjLQCR5.js → view-page-plugin-BeDc-i9y.js} +1 -1
- package/dist/assets/{view-pages-Cm3BDGCm.js → view-pages-BX1YcSiV.js} +1 -1
- package/dist/assets/{view-profile-general-BwtoezLV.js → view-profile-general-DOypVvxs.js} +1 -1
- package/dist/assets/{view-profile-security-D6Wg35cz.js → view-profile-security-BJg_3p8X.js} +1 -1
- package/dist/assets/{view-remote-access-DXMycWj6.js → view-remote-access-COVA98ix.js} +1 -1
- package/dist/assets/{view-scene-add-BztY0D7W.js → view-scene-add-B5nE1_9A.js} +1 -1
- package/dist/assets/{view-scene-edit-CLSlT_wP.js → view-scene-edit-BDTtehVO.js} +1 -1
- package/dist/assets/{view-scenes-B2biNvGx.js → view-scenes-BvOCSVVZ.js} +1 -1
- package/dist/assets/{view-sign-in-BDqoekQL.js → view-sign-in-BJccCXjl.js} +1 -1
- package/dist/assets/{view-sign-up-RJHv9boO.js → view-sign-up-DTxO1jnm.js} +1 -1
- package/dist/assets/view-simulator-device-wizard-DQ7hW7_o.js +1 -0
- package/dist/assets/{view-space-add-D17l50VQ.js → view-space-add-7b9qh77w.js} +1 -1
- package/dist/assets/{view-space-configure-CdcttTaV.js → view-space-configure-DaR-fxwT.js} +1 -1
- package/dist/assets/view-space-edit-DR5oXpyg.js +1 -0
- package/dist/assets/{view-space-plugin-CfGxgpkq.js → view-space-plugin-BLF5lyOd.js} +1 -1
- package/dist/assets/view-spaces-Z8CI7cFu.js +1 -0
- package/dist/assets/{view-spaces-wizard-BPirZ9Aa.js → view-spaces-wizard-BB_-rtib.js} +1 -1
- package/dist/assets/{view-stats-ClftjuyH.js → view-stats-CPhKo1g8.js} +1 -1
- package/dist/assets/view-system-backups-CZXAz1Jb.js +1 -0
- package/dist/assets/{view-system-info-DPiJJavB.js → view-system-info-B1_fBxiv.js} +1 -1
- package/dist/assets/{view-system-log-detail-Bc0omAj2.js → view-system-log-detail-CeXJ1Let.js} +1 -1
- package/dist/assets/{view-system-logs-CCSGcjci.js → view-system-logs-Fs_r4nkz.js} +1 -1
- package/dist/assets/{view-tile-CB1KgK-5.js → view-tile-DPs5o6f9.js} +1 -1
- package/dist/assets/view-tile-add-CetZHPLA.js +1 -0
- package/dist/assets/{view-tile-add-Ct5UPyHj.js → view-tile-add-D3JURMrl.js} +1 -1
- package/dist/assets/{view-tile-data-source-add-BsUJ65SR.js → view-tile-data-source-add-C5zeEU15.js} +1 -1
- package/dist/assets/view-tile-data-source-edit-meG-cEWv.js +1 -0
- package/dist/assets/{view-tile-edit-Cu1iNWgN.js → view-tile-edit-B3LkQVu3.js} +1 -1
- package/dist/assets/{view-tile-edit-6Pt1jA5V.js → view-tile-edit-DI7MVvjk.js} +1 -1
- package/dist/assets/view-tile-edit-I6s2oufQ.js +1 -0
- package/dist/assets/{view-user-add-BPixnli9.js → view-user-add-Bu2LDCre.js} +1 -1
- package/dist/assets/view-user-edit-BwbWL9a6.js +1 -0
- package/dist/assets/view-users-DvBH7yS0.js +1 -0
- package/dist/assets/view-virtual-device-wizard-KNFX7Jzi.js +1 -0
- package/dist/assets/weather-DZLx2M2_.js +2 -0
- package/dist/assets/{weather-forecast.transformers-CBGYqemp.js → weather-forecast.transformers-vh4hgT-a.js} +1 -1
- package/dist/index.html +95 -95
- package/package.json +1 -1
- package/dist/assets/components-BRoDURXE.js +0 -6
- package/dist/assets/components-C_amdP0v.js +0 -1
- package/dist/assets/components-DO_OG1j4.js +0 -1
- package/dist/assets/components-bPVD__Pw.js +0 -1
- package/dist/assets/composables-2m9ra6Gg.js +0 -1
- package/dist/assets/composables-BRwonHAV.js +0 -1
- package/dist/assets/composables-DhW08g2b2.js +0 -1
- package/dist/assets/composables-MOgrFVd2.js +0 -1
- package/dist/assets/composables-PXUNt-tc.js +0 -1
- package/dist/assets/composables-fXtWAsME.js +0 -1
- package/dist/assets/config-DB5uU6lv.js +0 -2
- package/dist/assets/devices-B6BgB4Yw.js +0 -2
- package/dist/assets/devices.constants-HX5whDWr.js +0 -1
- package/dist/assets/form-PoOFmumT.js +0 -12
- package/dist/assets/index-gO_aD3ZM.js +0 -10
- package/dist/assets/index-qxTMOQVp.css +0 -1
- package/dist/assets/input-number-DKFs6rPn.js +0 -1
- package/dist/assets/layout-profile-D-1_a6Dd.js +0 -1
- package/dist/assets/layout-sign-CvbjLRd2.js +0 -1
- package/dist/assets/logs-entries.transformers-HHWOxKN-.js +0 -1
- package/dist/assets/notifications.exceptions-CwBj-Vvh.js +0 -1
- package/dist/assets/pagination-BCuLYs_W.js +0 -1
- package/dist/assets/select-DTgGke01.js +0 -1
- package/dist/assets/slider-PaPkGT-_.js +0 -1
- package/dist/assets/spaces-home-control.constants-DDgSTbk_.js +0 -1
- package/dist/assets/system-CitR2a_O.js +0 -2
- package/dist/assets/tabs-bVTlvkzX.js +0 -1
- package/dist/assets/types-BrtPl24B.js +0 -1
- package/dist/assets/types-DvlsZ8qQ.js +0 -1
- package/dist/assets/useBuddyChat-DvQPgsIX.js +0 -1
- package/dist/assets/useEventBus-BH4WQ_nq.js +0 -1
- package/dist/assets/useExtensions-QH0QtLKU.js +0 -1
- package/dist/assets/useGeolocation-Dpq2oORG.js +0 -2
- package/dist/assets/useLocation-CghMA-vm.js +0 -1
- package/dist/assets/view-channel-add-Vj566gBN.js +0 -1
- package/dist/assets/view-channel-property-edit-BxQMuL7w.js +0 -1
- package/dist/assets/view-config-plugins-D1v4d8_H.js +0 -1
- package/dist/assets/view-data-source-edit-DEg93Qr3.js +0 -1
- package/dist/assets/view-device-BH42AyJU.js +0 -1
- package/dist/assets/view-extension-detail-Bz2Qf-lB.js +0 -1
- package/dist/assets/view-location-edit-CM1DPwNX.js +0 -1
- package/dist/assets/view-mcp-clients-f9t--2J2.js +0 -1
- package/dist/assets/view-onboarding-FDxjKhsz.js +0 -1
- package/dist/assets/view-page-data-source-edit-Cu3WiaWl.js +0 -1
- package/dist/assets/view-simulator-device-wizard-B8aQTt-A.js +0 -1
- package/dist/assets/view-space-edit-v7oroJrp.js +0 -1
- package/dist/assets/view-spaces-CsxjOkle.js +0 -1
- package/dist/assets/view-system-backups-DLn57ltm.js +0 -1
- package/dist/assets/view-tile-add-Bpwl35uX.js +0 -1
- package/dist/assets/view-tile-data-source-edit-CfH2RQMK.js +0 -1
- package/dist/assets/view-tile-edit-DLOgjyK4.js +0 -1
- package/dist/assets/view-user-edit-BxxSMKU4.js +0 -1
- package/dist/assets/view-users-BftTio_a.js +0 -1
- package/dist/assets/view-virtual-device-wizard-BJUEmNEu.js +0 -1
- package/dist/assets/weather-CUmy8DMg.js +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime-QTnfLwEv.js";import{Ar as e,Bi as t,D as n,Dr as r,Dt as i,E as a,Er as o,Gr as s,H as c,I as l,Ki as u,L as d,Mr as f,Mt as p,Nr as m,O as h,Or as g,Pr as _,Qr as v,R as y,Si as b,T as x,Ui as S,Wi as C,Yr as w,_i as T,an as E,bi as ee,bt as D,ci as O,cn as k,di as A,ei as j,gn as M,ji as N,k as P,kr as F,kt as te,ln as I,pn as L,qi as R,t as z,ti as ne,ui as B,x as V,xr as H,yr as U,z as re}from"./icon-with-child-CgZMNB3F.js";import{A as ie,Ar as W,Cr as ae,Gr as oe,M as G,Ni as se,Qr as K,Ri as ce,Xr as le,Yr as ue,_r as de,br as fe,jr as pe,o as me,ra as he,ta as ge,ui as _e}from"./common-BlrTsYp4.js";import{n as q,t as ve}from"./table-BXf7N0rb.js";import{n as J,t as ye}from"./form-PoOFmumT.js";import{t as Y}from"./alert-BQTYQnER.js";import{t as be}from"./input-number-DKFs6rPn.js";import{n as xe,r as X,t as Z}from"./select-DTgGke01.js";import{t as Se}from"./card-C50YgvLJ.js";import{n as Ce,t as we}from"./checkbox-Ct1KW9j2.js";import{n as Q,t as Te}from"./collapse-BMAQOZL8.js";import{t as Ee}from"./link-mE1gaRBg.js";import{t as De}from"./pagination-BCuLYs_W.js";import{t as Oe}from"./directive-D42ORGRu.js";import{a as ke,g as $,i as Ae,s as je,v as Me,w as Ne,x as Pe}from"./keys-J7s06zUV.js";import{t as Fe}from"./useSpaces-2SKsqV-l.js";import{a as Ie,c as Le,l as Re,n as ze,t as Be}from"./composables-B1UgF1fo.js";var Ve={label:`label`,value:`value`,disabled:`disabled`},He=k({direction:{type:I(String),default:`horizontal`},options:{type:I(Array),default:()=>[]},modelValue:{type:[String,Number,Boolean],default:void 0},props:{type:I(Object),default:()=>Ve},block:Boolean,size:i,disabled:{type:Boolean,default:void 0},validateEvent:{type:Boolean,default:!0},id:String,name:String,..._e([`ariaLabel`])}),Ue={[he]:e=>S(e)||M(e)||L(e),[ge]:e=>S(e)||M(e)||L(e)},We=[`id`,`aria-label`,`aria-labelledby`],Ge=[`name`,`disabled`,`checked`,`onChange`],Ke=D(_({name:`ElSegmented`,__name:`segmented`,props:He,emits:Ue,setup(n,{emit:i}){let a=n,s=i,c=p(`segmented`),m=te(),h=re(),g=y(),{formItem:_}=l(),{inputId:x,isLabeledByFormItem:S}=d(a,{formItemContext:_}),w=b(null),T=se(),D=ee({isInit:!1,width:0,height:0,translateX:0,translateY:0,focusVisible:!1}),k=(e,t)=>{let n=P(t);s(he,n),s(ge,n),e.target.checked=n===a.modelValue},A=o(()=>({...Ve,...a.props})),M=e=>e,P=e=>t(e)?e[A.value.value]:e,I=e=>t(e)?e[A.value.label]:e,L=e=>!!(g.value||t(e)&&e[A.value.disabled]),z=e=>a.modelValue===P(e),B=e=>a.options.find(t=>P(t)===e),V=e=>[c.e(`item`),c.is(`selected`,z(e)),c.is(`disabled`,L(e))],U=()=>{if(!w.value)return;let e=w.value.querySelector(`.is-selected`),t=w.value.querySelector(`.is-selected input`);if(!e||!t){D.width=0,D.height=0,D.translateX=0,D.translateY=0,D.focusVisible=!1;return}D.isInit=!0,a.direction===`vertical`?(D.height=e.offsetHeight,D.translateY=e.offsetTop):(D.width=e.offsetWidth,D.translateX=e.offsetLeft);try{D.focusVisible=t.matches(`:focus-visible`)}catch{}},ie=o(()=>[c.b(),c.m(h.value),c.is(`block`,a.block)]),W=o(()=>({width:a.direction===`vertical`?`100%`:`${D.width}px`,height:a.direction===`vertical`?`${D.height}px`:`100%`,transform:a.direction===`vertical`?`translateY(${D.translateY}px)`:`translateX(${D.translateX}px)`,display:D.isInit?`block`:`none`})),ae=o(()=>[c.e(`item-selected`),c.is(`disabled`,L(B(a.modelValue))),c.is(`focus-visible`,D.focusVisible)]),oe=o(()=>a.name||m.value);return ce(w,U),O(T,U),O(()=>a.modelValue,()=>{U(),a.validateEvent&&_?.validate?.(`change`).catch(e=>E(e))},{flush:`post`}),(t,i)=>n.options.length?(v(),e(`div`,{key:0,id:N(x),ref_key:`segmentedRef`,ref:w,class:C(ie.value),role:`radiogroup`,"aria-label":N(S)?void 0:n.ariaLabel||`segmented`,"aria-labelledby":N(S)?N(_).labelId:void 0},[r(`div`,{class:C([N(c).e(`group`),N(c).m(n.direction)])},[r(`div`,{style:u(W.value),class:C(ae.value)},null,6),(v(!0),e(H,null,j(n.options,(n,i)=>(v(),e(`label`,{key:i,class:C(V(n))},[r(`input`,{class:C(N(c).e(`item-input`)),type:`radio`,name:oe.value,disabled:L(n),checked:z(n),onChange:e=>k(e,n)},null,42,Ge),r(`div`,{class:C(N(c).e(`item-label`))},[ne(t.$slots,`default`,{item:M(n)},()=>[f(R(I(n)),1)])],2)],2))),128))],2)],10,We)):F(`v-if`,!0)}})),qe={class:`flex w-full`},Je=_({name:`SpacesFilter`,__name:`spaces-filter`,props:{filters:{},filtersActive:{type:Boolean},selectedCount:{},bulkActions:{}},emits:[`update:filters`,`reset-filters`,`adjust-list`,`bulk-action`],setup(t,{emit:r}){let i=t,a=r,{t:o}=x(),s=fe(i,`filters`,a),l=b(void 0);return O(()=>s.value.search,e=>{e===``&&(s.value.search=void 0)}),(t,r)=>(v(),e(`div`,qe,[m(N(ye),{ref_key:`filterFormEl`,ref:l,inline:!0,model:N(s),class:`grow-1`},{default:B(()=>[m(N(K),{modelValue:N(s).search,"onUpdate:modelValue":r[0]||=e=>N(s).search=e,placeholder:N(o)(`spacesModule.fields.search.placeholder`),class:`max-w[280px] p-1`,clearable:``},{suffix:B(()=>[m(N(c),null,{default:B(()=>[m(N(n),{icon:`mdi:magnify`})]),_:1})]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`model`]),m(N(G),{"selected-count":i.selectedCount,actions:i.bulkActions,onAction:r[1]||=e=>a(`bulk-action`,e)},null,8,[`selected-count`,`actions`]),i.filtersActive?(v(),g(N(P),{key:0,plain:``,class:`px-2! mt-1 mr-1`,onClick:r[2]||=e=>a(`reset-filters`)},{default:B(()=>[m(N(n),{icon:`mdi:filter-off`})]),_:1})):F(``,!0),m(N(P),{plain:``,class:`px-2! mt-1 mr-1`,onClick:r[3]||=e=>a(`adjust-list`)},{default:B(()=>[m(N(n),{icon:`mdi:slider`})]),_:1})]))}}),Ye=_({name:`SpacesTableColumnActions`,__name:`spaces-table-column-actions`,props:{space:{}},emits:[`edit`,`remove`],setup(t,{emit:r}){let i=t,a=r,{t:o}=x(),s=V(),{plugin:c}=Be({type:()=>i.space.type}),l=()=>{let e=c.value?.routes?.configure;e&&(typeof e==`function`?s.push(e(i.space.id)):s.push(e))};return(t,r)=>(v(),e(H,null,[N(c)?.routes?.configure?(v(),g(N(P),{key:0,size:`small`,plain:``,"data-test-id":`configure-space`,onClick:U(l,[`stop`])},{icon:B(()=>[m(N(n),{icon:`mdi:cogs`})]),default:B(()=>[f(` `+R(N(o)(`spacesModule.buttons.configure.title`)),1)]),_:1})):F(``,!0),m(N(P),{size:`small`,plain:``,class:`ml-1!`,"data-test-id":`edit-space`,onClick:r[0]||=U(e=>a(`edit`,i.space.id),[`stop`])},{icon:B(()=>[m(N(n),{icon:`mdi:pencil`})]),_:1}),m(N(P),{size:`small`,type:`warning`,plain:``,class:`ml-1!`,"data-test-id":`remove-space`,onClick:r[1]||=U(e=>a(`remove`,i.space.id),[`stop`])},{icon:B(()=>[m(N(n),{icon:`mdi:trash`})]),_:1})],64))}}),Xe=_({name:`SpacesTableColumnPlugin`,__name:`spaces-table-column-plugin`,props:{space:{},filters:{}},emits:[`filter-by`],setup(e,{emit:t}){let r=e,i=t,{plugin:a}=Be({type:()=>r.space.type});return(e,t)=>r.filters?(v(),g(N(W),{key:1,truncated:``},{default:B(()=>[m(N(Ee),{type:r.filters.types.includes(r.space.type)?`danger`:void 0,underline:`never`,class:`font-400!`,onClick:t[0]||=U(e=>i(`filter-by`,r.space.type,!r.filters.types.includes(r.space.type)),[`stop`])},{default:B(()=>[m(N(c),{class:`el-icon--left`},{default:B(()=>[r.filters.types.includes(r.space.type)?(v(),g(N(n),{key:0,icon:`mdi:filter-minus`})):(v(),g(N(n),{key:1,icon:`mdi:filter-plus`}))]),_:1}),f(` `+R(N(a)?.name||r.space.type),1)]),_:1},8,[`type`])]),_:1})):(v(),g(N(W),{key:0,truncated:``,class:`font-400!`},{default:B(()=>[f(R(N(a)?.name||r.space.type),1)]),_:1}))}}),Ze={key:0,class:`h-full w-full leading-normal`},Qe={key:1,class:`h-full w-full leading-normal`},$e={key:2,class:`h-full w-full leading-normal`},et={class:`block`},tt=_({name:`SpacesTable`,__name:`spaces-table`,props:{items:{},totalRows:{},loading:{type:Boolean},filtersActive:{type:Boolean},tableHeight:{},filters:{},sortBy:{},sortDir:{}},emits:[`edit`,`remove`,`add`,`reset-filters`,`update:filters`,`update:sort-by`,`update:sort-dir`,`selected-changes`],setup(t,{emit:i}){let a=t,s=i,{t:c}=x(),{isMDDevice:l}=de(),d=fe(a,`filters`,s),p=o(()=>a.totalRows===0),_=o(()=>a.tableHeight??400),y=({prop:e,order:t})=>{s(`update:sort-by`,e),s(`update:sort-dir`,t===`descending`?`desc`:t===`ascending`?`asc`:null)},b=e=>{s(`selected-changes`,e)},S=e=>{s(`edit`,e.id)},C=(e,t)=>{let n=t?[...d.value.types,e]:d.value.types.filter(t=>t!==e);d.value.types=Array.from(new Set(n))};return(t,i)=>A((v(),g(N(ve),{"element-loading-text":N(c)(`spacesModule.texts.loadingSpaces`),data:a.items,"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":`id`,class:`flex-grow`,style:u({maxHeight:_.value+`px`}),"max-height":_.value,onRowClick:S,onSortChange:y,onSelectionChange:b},{empty:B(()=>[a.loading?(v(),e(`div`,Ze,[m(N(h),{class:`h-full w-full`},{icon:B(()=>[m(N(z),{size:80},{primary:B(()=>[m(N(n),{icon:`mdi:home-group`})]),secondary:B(()=>[m(N(n),{icon:`mdi:database-refresh`})]),_:1})]),_:1})])):a.filtersActive&&!a.loading?(v(),e(`div`,Qe,[m(N(h),{class:`h-full w-full`},{icon:B(()=>[m(N(z),{size:80},{primary:B(()=>[m(N(n),{icon:`mdi:home-group`})]),secondary:B(()=>[m(N(n),{icon:`mdi:filter-multiple`})]),_:1})]),title:B(()=>[m(N(W),{class:`block`},{default:B(()=>[f(R(N(c)(`spacesModule.texts.noFilteredSpaces`)),1)]),_:1}),m(N(P),{type:`primary`,plain:``,class:`mt-4`,onClick:i[0]||=e=>s(`reset-filters`)},{icon:B(()=>[m(N(n),{icon:`mdi:filter-off`})]),default:B(()=>[f(` `+R(N(c)(`spacesModule.buttons.resetFilters.title`)),1)]),_:1})]),_:1})])):p.value&&!a.loading?(v(),e(`div`,$e,[m(N(h),{class:`h-full w-full`},{icon:B(()=>[m(N(z),{size:80},{primary:B(()=>[m(N(n),{icon:`mdi:home-group`})]),secondary:B(()=>[m(N(n),{icon:`mdi:information`})]),_:1})]),title:B(()=>[f(R(N(c)(`spacesModule.texts.noSpaces`)),1)]),_:1})])):F(``,!0)]),default:B(()=>[N(l)?(v(),g(N(q),{key:0,type:`selection`,fixed:``,width:30})):F(``,!0),m(N(q),{width:60,align:`center`},{default:B(e=>[m(N(ue),{size:32},{default:B(()=>[m(N(n),{icon:e.row.icon||(e.row.type===N($).ROOM?`mdi:door`:`mdi:home-floor-1`),class:`w[20px] h[20px]`},null,8,[`icon`])]),_:2},1024)]),_:1}),m(N(q),{label:N(c)(`spacesModule.table.columns.name`),prop:`name`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],"min-width":200,"class-name":`py-0!`},{default:B(e=>[r(`strong`,et,R(e.row.name),1),e.row.description?(v(),g(N(W),{key:0,size:`small`,class:`block leading-4`,truncated:``},{default:B(()=>[f(R(e.row.description),1)]),_:2},1024)):F(``,!0)]),_:1},8,[`label`]),m(N(q),{label:N(c)(`spacesModule.table.columns.type`),prop:`type`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:200},{default:B(e=>[m(Xe,{space:e.row,filters:N(d),onFilterBy:i[1]||=(e,t)=>C(e,t)},null,8,[`space`,`filters`])]),_:1},8,[`label`]),m(N(q),{label:N(c)(`spacesModule.table.columns.order`),prop:`displayOrder`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:100,align:`center`},{default:B(e=>[f(R(e.row.displayOrder),1)]),_:1},8,[`label`]),m(N(q),{width:220,align:`right`},{default:B(e=>[r(`div`,{onClick:i[4]||=U(()=>{},[`stop`])},[m(Ye,{space:e.row,onEdit:i[2]||=e=>s(`edit`,e),onRemove:i[3]||=e=>s(`remove`,e)},null,8,[`space`])])]),_:1})]),_:1},8,[`element-loading-text`,`data`,`default-sort`,`style`,`max-height`])),[[N(Oe),a.loading]])}}),nt=_({name:`ListSpaces`,__name:`list-spaces`,props:{items:{},allItems:{},totalRows:{},loading:{type:Boolean},filtersActive:{type:Boolean},filters:{},paginatePage:{},paginateSize:{},sortBy:{},sortDir:{}},emits:[`edit`,`remove`,`add`,`adjust-list`,`reset-filters`,`update:filters`,`update:paginate-size`,`update:paginate-page`,`update:sort-by`,`update:sort-dir`,`bulk-action`],setup(t,{emit:n}){let i=t,a=n,{t:c}=x(),{isMDDevice:l}=de(),u=null,d=b(null),f=b(null),p=fe(i,`filters`,a),h=b(i.sortBy),g=b(i.sortDir??null),_=b(i.paginatePage),y=b(i.paginateSize),S=b(250),C=b([]),E=o(()=>[{key:`delete`,label:c(`application.bulkActions.delete`),icon:`mdi:trash`,type:`danger`}]),ee=e=>{a(`edit`,e)},D=e=>{a(`remove`,e)},k=()=>{a(`add`)},A=()=>{a(`reset-filters`)},j=e=>{a(`update:paginate-size`,e)},M=e=>{a(`update:paginate-page`,e)},P=e=>{C.value=e},F=e=>{a(`bulk-action`,e,C.value)};return w(()=>{if(!d.value)return;let e=()=>{d.value&&f.value&&(S.value=d.value.clientHeight-f.value.clientHeight)};typeof window<`u`&&`ResizeObserver`in window&&(u=new ResizeObserver(e),u.observe(d.value)),e()}),s(()=>{u&&d.value&&u.unobserve(d.value)}),O(()=>h.value,e=>{a(`update:sort-by`,e)}),O(()=>g.value,e=>{a(`update:sort-dir`,e)}),O(()=>i.paginatePage,e=>{_.value=e}),O(()=>i.paginateSize,e=>{y.value=e}),O(()=>i.sortDir??null,e=>{g.value=e}),O(()=>i.sortBy,e=>{h.value=e}),O(()=>l.value,e=>{e||(C.value=[])}),(t,n)=>(v(),e(H,null,[m(N(Se),{shadow:`never`,class:`px-1 py-2 shrink-0`,"body-class":`p-0!`},{default:B(()=>[m(Je,{filters:N(p),"onUpdate:filters":n[0]||=e=>T(p)?p.value=e:null,"filters-active":i.filtersActive,"selected-count":C.value.length,"bulk-actions":E.value,onResetFilters:n[1]||=e=>a(`reset-filters`),onAdjustList:n[2]||=e=>a(`adjust-list`),onBulkAction:F},null,8,[`filters`,`filters-active`,`selected-count`,`bulk-actions`])]),_:1}),r(`div`,{ref_key:`wrapper`,ref:d,class:`flex-grow overflow-hidden`},[m(N(Se),{shadow:`never`,class:`max-h-full flex flex-col overflow-hidden box-border`,"body-class":`p-0! max-h-full overflow-hidden flex flex-col`},{default:B(()=>[m(tt,{filters:N(p),"onUpdate:filters":n[3]||=e=>T(p)?p.value=e:null,"sort-by":h.value,"onUpdate:sortBy":n[4]||=e=>h.value=e,"sort-dir":g.value,"onUpdate:sortDir":n[5]||=e=>g.value=e,items:i.items,"total-rows":i.totalRows,loading:i.loading,"filters-active":i.filtersActive,"table-height":S.value,onEdit:ee,onRemove:D,onAdd:k,onResetFilters:A,onSelectedChanges:P},null,8,[`filters`,`sort-by`,`sort-dir`,`items`,`total-rows`,`loading`,`filters-active`,`table-height`]),r(`div`,{ref_key:`paginator`,ref:f,class:`flex justify-center w-full py-4`},[m(N(De),{"current-page":_.value,"onUpdate:currentPage":n[6]||=e=>_.value=e,"page-size":y.value,"onUpdate:pageSize":n[7]||=e=>y.value=e,layout:N(l)?`total, sizes, prev, pager, next, jumper`:`total, sizes, prev, pager, next`,total:i.allItems.length,onSizeChange:j,onCurrentChange:M},null,8,[`current-page`,`page-size`,`layout`,`total`])],512)]),_:1})],512)],64))}}),rt={class:`px-5 py-2 text-center`},it=a(_({name:`ListSpacesAdjust`,__name:`list-spaces-adjust`,props:{filters:{},filtersActive:{type:Boolean}},emits:[`update:filters`,`reset-filters`],setup(t,{emit:i}){let a=t,o=i,s=p(`list-spaces-adjust`),{t:c}=x(),{options:l}=ze(),u=b([`types`]),d=fe(a,`filters`,o);return(t,i)=>(v(),e(H,null,[m(N(ae),{teleport:``},{icon:B(()=>[m(N(n),{icon:`mdi:filter`})]),title:B(()=>[f(R(N(c)(`spacesModule.headings.adjustFilters`)),1)]),subtitle:B(()=>[f(R(N(c)(`spacesModule.subHeadings.adjustFilters`)),1)]),_:1}),r(`div`,{class:C([[N(s).b()],`flex flex-col h-full w-full overflow-hidden`])},[m(N(le),{class:`flex-grow`},{default:B(()=>[m(N(Te),{modelValue:u.value,"onUpdate:modelValue":i[1]||=e=>u.value=e},{default:B(()=>[m(N(Q),{name:`types`,class:C([N(s).e(`filter-item`)])},{title:B(()=>[m(N(W),{class:`!px-2`},{default:B(()=>[f(R(N(c)(`spacesModule.filters.types.title`)),1)]),_:1})]),default:B(()=>[m(N(Ce),{modelValue:N(d).types,"onUpdate:modelValue":i[0]||=e=>N(d).types=e,class:`flex flex-col px-4`},{default:B(()=>[(v(!0),e(H,null,j(N(l),e=>(v(),g(N(we),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1},8,[`class`])]),_:1},8,[`modelValue`])]),_:1}),r(`div`,rt,[m(N(P),{disabled:!a.filtersActive,onClick:i[2]||=e=>o(`reset-filters`)},{icon:B(()=>[m(N(n),{icon:`mdi:filter-remove`})]),default:B(()=>[f(` `+R(N(c)(`spacesModule.buttons.reset.title`)),1)]),_:1},8,[`disabled`])])],2)],64))}}),[[`__scopeId`,`data-v-72f5d81c`]]),at={class:`flex items-center gap-2`},ot={class:`font-medium`},st={class:`px-2`},ct={class:`flex items-center gap-2`},lt={class:`flex items-center gap-2`},ut={class:`flex items-center gap-2`},dt={class:`font-medium`},ft={class:`px-2`},pt={class:`flex items-center gap-2`},mt={key:0,class:`flex gap-2 justify-end mt-4`},ht=_({__name:`space-add-form`,props:{type:{},hideActions:{type:Boolean,default:!1}},emits:[`saved`,`cancel`,`update:remote-form-changed`],setup(t,{expose:i,emit:a}){let s=t,l=a,{t:u}=x(),{zoneSpaces:d}=Fe(),{model:p,formEl:h,formChanged:_,submit:y,formResult:S,createdSpace:C}=Re({id:me().toString(),type:s.type}),w=b();O(w,e=>{h.value=e},{immediate:!0});let T=b([`general`,`organization`]),E=ee({icon:null,description:null}),D=o({get:()=>p.icon?.replace(`mdi:`,``)??null,set:e=>{p.icon=e?`mdi:${e}`:null}}),{categoryOptions:k,categoryGroups:A,currentTemplates:M}=Le(o(()=>p.type));O(()=>p.type,e=>{p.category&&!Ne(p.category,e)&&(p.category=null,p.icon===E.icon&&(p.icon=null,E.icon=null),p.description===E.description&&(p.description=null,E.description=null)),e===$.ZONE&&(p.parentId=null),w.value?.clearValidate()});let te=e=>{if(e&&M.value[e]){let t=M.value[e];(!p.icon||p.icon===E.icon)&&(p.icon=t.icon,E.icon=t.icon),(!p.description||p.description===E.description)&&(p.description=t.description,E.description=t.description)}},I=o(()=>({name:[{required:!0,message:u(`spacesModule.fields.spaces.name.validation.required`),trigger:`blur`}],category:[{required:p.type===$.ZONE,message:u(`spacesModule.fields.spaces.category.validation.requiredForZone`),trigger:`blur`}]}));O(()=>_.value,e=>{l(`update:remote-form-changed`,e)},{immediate:!0});let L=async()=>{try{await y(),C.value&&l(`saved`,C.value)}catch{}},z=()=>{l(`cancel`)};return i({submit:L}),(t,i)=>(v(),g(N(ye),{ref_key:`formElRef`,ref:w,model:N(p),rules:I.value,"label-position":`top`,onSubmit:U(L,[`prevent`])},{default:B(()=>[m(N(Te),{modelValue:T.value,"onUpdate:modelValue":i[7]||=e=>T.value=e},{default:B(()=>[m(N(Q),{name:`general`},{title:B(()=>[r(`div`,at,[m(N(c),{size:20},{default:B(()=>[m(N(n),{icon:`mdi:information`})]),_:1}),r(`span`,ot,R(N(u)(`spacesModule.edit.sections.general.title`)),1)])]),default:B(()=>[r(`div`,st,[m(N(J),{label:N(u)(`spacesModule.fields.spaces.name.title`),prop:`name`},{default:B(()=>[m(N(K),{modelValue:N(p).name,"onUpdate:modelValue":i[0]||=e=>N(p).name=e,placeholder:N(u)(`spacesModule.fields.spaces.name.placeholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),s.type?F(``,!0):(v(),g(N(J),{key:0,label:N(u)(`spacesModule.fields.spaces.type.title`),prop:`type`},{default:B(()=>[m(N(X),{modelValue:N(p).type,"onUpdate:modelValue":i[1]||=e=>N(p).type=e},{default:B(()=>[m(N(Z),{label:N(u)(`spacesModule.fields.spaces.type.options.room`),value:N($).ROOM},null,8,[`label`,`value`]),m(N(Z),{label:N(u)(`spacesModule.fields.spaces.type.options.zone`),value:N($).ZONE},null,8,[`label`,`value`])]),_:1},8,[`modelValue`])]),_:1},8,[`label`])),m(N(J),{label:N(u)(`spacesModule.fields.spaces.category.title`),prop:`category`},{default:B(()=>[m(N(X),{modelValue:N(p).category,"onUpdate:modelValue":i[2]||=e=>N(p).category=e,placeholder:N(u)(`spacesModule.fields.spaces.category.placeholder`),clearable:N(p).type!==N($).ZONE,onChange:te},{default:B(()=>[N(A)?(v(!0),e(H,{key:0},j(N(A),t=>(v(),g(N(xe),{key:t.key,label:N(u)(`spacesModule.fields.spaces.category.groups.${t.key}`)},{default:B(()=>[(v(!0),e(H,null,j(t.categories,e=>(v(),g(N(Z),{key:e,label:N(u)(`spacesModule.fields.spaces.category.options.${e}`),value:e},{default:B(()=>[r(`span`,ct,[N(M)[e]?(v(),g(N(c),{key:0},{default:B(()=>[m(N(n),{icon:N(M)[e].icon},null,8,[`icon`])]),_:2},1024)):F(``,!0),f(` `+R(N(u)(`spacesModule.fields.spaces.category.options.${e}`)),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:2},1032,[`label`]))),128)):(v(!0),e(H,{key:1},j(N(k),e=>(v(),g(N(Z),{key:e,label:N(u)(`spacesModule.fields.spaces.category.options.${e}`),value:e},{default:B(()=>[r(`span`,lt,[N(M)[e]?(v(),g(N(c),{key:0},{default:B(()=>[m(N(n),{icon:N(M)[e].icon},null,8,[`icon`])]),_:2},1024)):F(``,!0),f(` `+R(N(u)(`spacesModule.fields.spaces.category.options.${e}`)),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`clearable`])]),_:1},8,[`label`]),m(N(Y),{title:N(u)(`spacesModule.fields.spaces.category.hint`),type:`info`,closable:!1,"show-icon":``,class:`my-2!`},null,8,[`title`]),m(N(J),{label:N(u)(`spacesModule.fields.spaces.description.title`),prop:`description`},{default:B(()=>[m(N(K),{modelValue:N(p).description,"onUpdate:modelValue":i[3]||=e=>N(p).description=e,type:`textarea`,rows:3,placeholder:N(u)(`spacesModule.fields.spaces.description.placeholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),m(N(J),{label:N(u)(`spacesModule.fields.spaces.icon.title`),prop:`icon`},{default:B(()=>[m(N(ie),{modelValue:D.value,"onUpdate:modelValue":i[4]||=e=>D.value=e,placeholder:N(u)(`spacesModule.fields.spaces.icon.placeholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),m(N(J),{label:N(u)(`spacesModule.fields.spaces.displayOrder.title`),prop:`displayOrder`},{default:B(()=>[m(N(be),{modelValue:N(p).displayOrder,"onUpdate:modelValue":i[5]||=e=>N(p).displayOrder=e,min:0},null,8,[`modelValue`])]),_:1},8,[`label`])])]),_:1}),N(p).type===N($).ROOM?(v(),g(N(Q),{key:0,name:`organization`},{title:B(()=>[r(`div`,ut,[m(N(c),{size:20},{default:B(()=>[m(N(n),{icon:`mdi:sitemap`})]),_:1}),r(`span`,dt,R(N(u)(`spacesModule.edit.sections.organization.title`)),1)])]),default:B(()=>[r(`div`,ft,[m(N(J),{label:N(u)(`spacesModule.fields.spaces.parentZone.title`),prop:`parentId`},{default:B(()=>[m(N(X),{modelValue:N(p).parentId,"onUpdate:modelValue":i[6]||=e=>N(p).parentId=e,placeholder:N(u)(`spacesModule.fields.spaces.parentZone.placeholder`),clearable:``,filterable:``},{default:B(()=>[(v(!0),e(H,null,j(N(d),e=>(v(),g(N(Z),{key:e.id,label:e.name,value:e.id},{default:B(()=>[r(`span`,pt,[e.icon?(v(),g(N(c),{key:0},{default:B(()=>[m(N(n),{icon:e.icon},null,8,[`icon`])]),_:2},1024)):F(``,!0),f(` `+R(e.name),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),m(N(Y),{title:N(u)(`spacesModule.edit.sections.organization.hint`),type:`info`,closable:!1,"show-icon":``},null,8,[`title`])])]),_:1})):F(``,!0)]),_:1},8,[`modelValue`]),s.hideActions?F(``,!0):(v(),e(`div`,mt,[m(N(P),{onClick:z},{default:B(()=>[f(R(N(u)(`spacesModule.buttons.cancel.title`)),1)]),_:1}),m(N(P),{type:`primary`,loading:N(S)===N(je).WORKING,onClick:L},{default:B(()=>[f(R(N(u)(`spacesModule.buttons.save.title`)),1)]),_:1},8,[`loading`])]))]),_:1},8,[`model`,`rules`]))}}),gt={class:`flex items-center gap-2`},_t={class:`font-medium`},vt={class:`px-2`},yt={class:`flex items-center gap-2`},bt={class:`flex items-center gap-2`},xt={class:`flex items-center gap-2`},St={class:`font-medium`},Ct={class:`px-2`},wt={class:`flex items-center gap-2`},Tt={class:`flex items-center gap-2`},Et={class:`font-medium`},Dt={class:`px-2`},Ot={class:`border border-solid border-gray-200 rounded-lg p-4 mb-2`},kt={class:`flex items-center justify-between mb-3`},At={class:`flex items-center gap-2`},jt={class:`font-medium`},Mt={class:`flex items-center gap-2`},Nt={class:`font-medium`},Pt={class:`px-2`},Ft={key:0,class:`flex gap-2 justify-end mt-4`},It=_({__name:`space-edit-form`,props:{space:{},hideActions:{type:Boolean,default:!1}},emits:[`saved`,`cancel`,`update:remote-form-changed`],setup(t,{expose:i,emit:a}){let s=t,l=a,{t:u}=x(),{zoneSpaces:d,findById:p}=Fe(),{model:h,formEl:_,formChanged:y,submit:S,formResult:C}=Ie({space:o(()=>s.space)}),w=b();O(w,e=>{_.value=e},{immediate:!0});let T=b([`general`,`organization`]),E=ee({icon:null,description:null}),D=o({get:()=>h.icon?.replace(`mdi:`,``)??null,set:e=>{h.icon=e?`mdi:${e}`:null}}),{categoryOptions:k,categoryGroups:A,currentTemplates:M}=Le(o(()=>h.type)),te=o(()=>d.value.filter(e=>!s.space||e.id!==s.space.id)),I=()=>h.statusWidgets?.find(e=>e.type===Me.ENERGY),L=o(()=>!!I()),z=o(()=>[{label:u(`spacesModule.fields.spaces.statusWidgets.energy.range.options.today`),value:ke.TODAY},{label:u(`spacesModule.fields.spaces.statusWidgets.energy.range.options.week`),value:ke.WEEK},{label:u(`spacesModule.fields.spaces.statusWidgets.energy.range.options.month`),value:ke.MONTH}]),ne=o({get:()=>I()?.settings?.range??Ae.range,set:e=>{let t=I();t&&(t.settings={...t.settings,range:e})}}),V=o({get:()=>I()?.settings?.showProduction??Ae.showProduction,set:e=>{let t=I();t&&(t.settings={...t.settings,showProduction:e})}}),re=e=>{if(e){let e=h.statusWidgets??[];if(e.some(e=>e.type===Me.ENERGY))return;e.push({type:Me.ENERGY,order:e.length,settings:{range:Ae.range,showProduction:Ae.showProduction}}),h.statusWidgets=e}else{let e=(h.statusWidgets??[]).filter(e=>e.type!==Me.ENERGY);h.statusWidgets=e.length>0?e:null}};O(()=>h.type,e=>{h.category&&!Ne(h.category,e)&&(h.category=null,h.icon===E.icon&&(h.icon=null,E.icon=null),h.description===E.description&&(h.description=null,E.description=null)),e===$.ZONE&&(h.parentId=null),w.value?.clearValidate()});let W=e=>{if(e&&M.value[e]){let t=M.value[e];(!h.icon||h.icon===E.icon)&&(h.icon=t.icon,E.icon=t.icon),(!h.description||h.description===E.description)&&(h.description=t.description,E.description=t.description)}},ae=o(()=>({name:[{required:!0,message:u(`spacesModule.fields.spaces.name.validation.required`),trigger:`blur`}],category:[{required:h.type===$.ZONE,message:u(`spacesModule.fields.spaces.category.validation.requiredForZone`),trigger:`blur`}]}));O(()=>y.value,e=>{l(`update:remote-form-changed`,e)},{immediate:!0}),O(()=>s.space,e=>{e&&(E.icon=null,E.description=null)});let G=async()=>{try{await S();let e=p(h.id);e&&l(`saved`,e)}catch{}},se=()=>{l(`cancel`)};return i({submit:G}),(i,a)=>(v(),g(N(ye),{ref_key:`formRef`,ref:w,model:N(h),rules:ae.value,"label-position":`top`,onSubmit:U(G,[`prevent`])},{default:B(()=>[m(N(Te),{modelValue:T.value,"onUpdate:modelValue":a[9]||=e=>T.value=e},{default:B(()=>[m(N(Q),{name:`general`},{title:B(()=>[r(`div`,gt,[m(N(c),{size:20},{default:B(()=>[m(N(n),{icon:`mdi:information`})]),_:1}),r(`span`,_t,R(N(u)(`spacesModule.edit.sections.general.title`)),1)])]),default:B(()=>[r(`div`,vt,[m(N(J),{label:N(u)(`spacesModule.fields.spaces.name.title`),prop:`name`},{default:B(()=>[m(N(K),{modelValue:N(h).name,"onUpdate:modelValue":a[0]||=e=>N(h).name=e,placeholder:N(u)(`spacesModule.fields.spaces.name.placeholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),m(N(J),{label:N(u)(`spacesModule.fields.spaces.category.title`),prop:`category`},{default:B(()=>[m(N(X),{modelValue:N(h).category,"onUpdate:modelValue":a[1]||=e=>N(h).category=e,placeholder:N(u)(`spacesModule.fields.spaces.category.placeholder`),clearable:N(h).type!==N($).ZONE,onChange:W},{default:B(()=>[N(A)?(v(!0),e(H,{key:0},j(N(A),t=>(v(),g(N(xe),{key:t.key,label:N(u)(`spacesModule.fields.spaces.category.groups.${t.key}`)},{default:B(()=>[(v(!0),e(H,null,j(t.categories,e=>(v(),g(N(Z),{key:e,label:N(u)(`spacesModule.fields.spaces.category.options.${e}`),value:e},{default:B(()=>[r(`span`,yt,[N(M)[e]?(v(),g(N(c),{key:0},{default:B(()=>[m(N(n),{icon:N(M)[e].icon},null,8,[`icon`])]),_:2},1024)):F(``,!0),f(` `+R(N(u)(`spacesModule.fields.spaces.category.options.${e}`)),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:2},1032,[`label`]))),128)):(v(!0),e(H,{key:1},j(N(k),e=>(v(),g(N(Z),{key:e,label:N(u)(`spacesModule.fields.spaces.category.options.${e}`),value:e},{default:B(()=>[r(`span`,bt,[N(M)[e]?(v(),g(N(c),{key:0},{default:B(()=>[m(N(n),{icon:N(M)[e].icon},null,8,[`icon`])]),_:2},1024)):F(``,!0),f(` `+R(N(u)(`spacesModule.fields.spaces.category.options.${e}`)),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`clearable`])]),_:1},8,[`label`]),m(N(Y),{title:N(u)(`spacesModule.fields.spaces.category.hint`),type:`info`,closable:!1,"show-icon":``,class:`!my-2`},null,8,[`title`]),m(N(J),{label:N(u)(`spacesModule.fields.spaces.description.title`),prop:`description`},{default:B(()=>[m(N(K),{modelValue:N(h).description,"onUpdate:modelValue":a[2]||=e=>N(h).description=e,type:`textarea`,rows:3,placeholder:N(u)(`spacesModule.fields.spaces.description.placeholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),m(N(J),{label:N(u)(`spacesModule.fields.spaces.icon.title`),prop:`icon`},{default:B(()=>[m(N(ie),{modelValue:D.value,"onUpdate:modelValue":a[3]||=e=>D.value=e,placeholder:N(u)(`spacesModule.fields.spaces.icon.placeholder`)},null,8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),m(N(J),{label:N(u)(`spacesModule.fields.spaces.displayOrder.title`),prop:`displayOrder`},{default:B(()=>[m(N(be),{modelValue:N(h).displayOrder,"onUpdate:modelValue":a[4]||=e=>N(h).displayOrder=e,min:0},null,8,[`modelValue`])]),_:1},8,[`label`])])]),_:1}),N(h).type===N($).ROOM?(v(),g(N(Q),{key:0,name:`organization`},{title:B(()=>[r(`div`,xt,[m(N(c),{size:20},{default:B(()=>[m(N(n),{icon:`mdi:sitemap`})]),_:1}),r(`span`,St,R(N(u)(`spacesModule.edit.sections.organization.title`)),1)])]),default:B(()=>[r(`div`,Ct,[m(N(J),{label:N(u)(`spacesModule.fields.spaces.parentZone.title`),prop:`parentId`},{default:B(()=>[m(N(X),{modelValue:N(h).parentId,"onUpdate:modelValue":a[5]||=e=>N(h).parentId=e,placeholder:N(u)(`spacesModule.fields.spaces.parentZone.placeholder`),clearable:``,filterable:``},{default:B(()=>[(v(!0),e(H,null,j(te.value,e=>(v(),g(N(Z),{key:e.id,label:e.name,value:e.id},{default:B(()=>[r(`span`,wt,[e.icon?(v(),g(N(c),{key:0},{default:B(()=>[m(N(n),{icon:e.icon},null,8,[`icon`])]),_:2},1024)):F(``,!0),f(` `+R(e.name),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])]),_:1},8,[`label`]),m(N(Y),{title:N(u)(`spacesModule.edit.sections.organization.hint`),type:`info`,closable:!1,"show-icon":``},null,8,[`title`])])]),_:1})):F(``,!0),m(N(Q),{name:`statusWidgets`},{title:B(()=>[r(`div`,Tt,[m(N(c),{size:20},{default:B(()=>[m(N(n),{icon:`mdi:view-dashboard-variant`})]),_:1}),r(`span`,Et,R(N(u)(`spacesModule.edit.sections.statusWidgets.title`)),1)])]),default:B(()=>[r(`div`,Dt,[m(N(Y),{title:N(u)(`spacesModule.edit.sections.statusWidgets.hint`),type:`info`,closable:!1,"show-icon":``,class:`!mb-4`},null,8,[`title`]),r(`div`,Ot,[r(`div`,kt,[r(`div`,At,[m(N(n),{icon:`mdi:flash-outline`,class:`text-lg`}),r(`span`,jt,R(N(u)(`spacesModule.fields.spaces.statusWidgets.energy.title`)),1)]),m(N(pe),{"model-value":L.value,onChange:re},null,8,[`model-value`])]),L.value?(v(),e(H,{key:0},[m(N(J),{label:N(u)(`spacesModule.fields.spaces.statusWidgets.energy.range.title`)},{default:B(()=>[m(N(Ke),{modelValue:ne.value,"onUpdate:modelValue":a[6]||=e=>ne.value=e,options:z.value,block:``},null,8,[`modelValue`,`options`])]),_:1},8,[`label`]),m(N(J),{"label-position":`left`},{label:B(()=>[f(R(N(u)(`spacesModule.fields.spaces.statusWidgets.energy.showProduction.title`)),1)]),default:B(()=>[m(N(pe),{modelValue:V.value,"onUpdate:modelValue":a[7]||=e=>V.value=e},null,8,[`modelValue`])]),_:1})],64)):F(``,!0)])])]),_:1}),m(N(Q),{name:`smartOverrides`},{title:B(()=>[r(`div`,Mt,[m(N(c),{size:20},{default:B(()=>[m(N(n),{icon:`mdi:tune`})]),_:1}),r(`span`,Nt,R(N(u)(`spacesModule.edit.sections.smartOverrides.title`)),1),m(N(oe),{size:`small`,type:`info`},{default:B(()=>[f(R(N(u)(`spacesModule.edit.sections.smartOverrides.badge`)),1)]),_:1})])]),default:B(()=>[r(`div`,Pt,[m(N(Y),{title:N(u)(`spacesModule.edit.sections.smartOverrides.hint`),type:`info`,closable:!1,"show-icon":``},null,8,[`title`]),m(N(J),{prop:`suggestionsEnabled`,"label-position":`left`},{label:B(()=>[f(R(N(u)(`spacesModule.fields.spaces.suggestionsEnabled.title`)),1)]),default:B(()=>[m(N(pe),{modelValue:N(h).suggestionsEnabled,"onUpdate:modelValue":a[8]||=e=>N(h).suggestionsEnabled=e},null,8,[`modelValue`])]),_:1}),m(N(Y),{title:N(u)(`spacesModule.fields.spaces.suggestionsEnabled.hint`),type:`info`,closable:!1,"show-icon":``},null,8,[`title`])])]),_:1})]),_:1},8,[`modelValue`]),t.hideActions?F(``,!0):(v(),e(`div`,Ft,[m(N(P),{onClick:se},{default:B(()=>[f(R(N(u)(`spacesModule.buttons.cancel.title`)),1)]),_:1}),m(N(P),{type:`primary`,loading:N(C)===N(je).WORKING,onClick:G},{default:B(()=>[f(R(N(u)(`spacesModule.buttons.save.title`)),1)]),_:1},8,[`loading`])]))]),_:1},8,[`model`,`rules`]))}}),Lt={class:`grid m-0`},Rt={class:`b-b b-b-solid b-r b-r-solid py-3 px-2 flex items-center justify-end`,style:{background:`var(--el-fill-color-light)`}},zt={class:`col-start-2 b-b b-b-solid m-0 p-2 flex items-center min-w-[8rem]`},Bt={class:`b-b b-b-solid b-r b-r-solid py-3 px-2 flex items-center justify-end`,style:{background:`var(--el-fill-color-light)`}},Vt={class:`col-start-2 b-b b-b-solid m-0 p-2 flex items-center min-w-[8rem]`},Ht={key:0,class:`b-b b-b-solid b-r b-r-solid py-3 px-2 flex items-center justify-end`,style:{background:`var(--el-fill-color-light)`}},Ut={key:1,class:`col-start-2 b-b b-b-solid m-0 p-2 flex items-center min-w-[8rem]`},Wt={key:2,class:`b-b b-b-solid b-r b-r-solid py-3 px-2 flex items-center justify-end`,style:{background:`var(--el-fill-color-light)`}},Gt={key:3,class:`col-start-2 b-b b-b-solid m-0 p-2 flex items-center gap-2 min-w-[8rem]`},Kt=_({name:`SpaceDetail`,__name:`space-detail`,props:{space:{}},setup(t){let{t:i}=x();return(a,o)=>(v(),g(N(Se),{shadow:`never`,class:`mt-2`,"body-class":`p-0!`},{default:B(()=>[r(`dl`,Lt,[r(`dt`,Rt,R(N(i)(`spacesModule.fields.spaces.name.title`)),1),r(`dd`,zt,[m(N(W),null,{default:B(()=>[f(R(t.space.name),1)]),_:1})]),r(`dt`,Bt,R(N(i)(`spacesModule.fields.spaces.type.title`)),1),r(`dd`,Vt,[m(Xe,{space:t.space},null,8,[`space`])]),t.space.description?(v(),e(`dt`,Ht,R(N(i)(`spacesModule.fields.spaces.description.title`)),1)):F(``,!0),t.space.description?(v(),e(`dd`,Ut,[m(N(W),null,{default:B(()=>[f(R(t.space.description),1)]),_:1})])):F(``,!0),t.space.icon?(v(),e(`dt`,Wt,R(N(i)(`spacesModule.fields.spaces.icon.title`)),1)):F(``,!0),t.space.icon?(v(),e(`dd`,Gt,[m(N(c),null,{default:B(()=>[m(N(n),{icon:t.space.icon},null,8,[`icon`])]),_:1}),m(N(W),null,{default:B(()=>[f(R(t.space.icon),1)]),_:1})])):F(``,!0),ne(a.$slots,`default`)])]),_:3}))}}),qt={class:`flex items-center gap-2`},Jt={class:`flex items-center gap-2`},Yt=_({name:`SpaceSelect`,__name:`space-select`,props:{modelValue:{},filter:{default:`all`},placeholder:{},clearable:{type:Boolean,default:!0},filterable:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(t){let i=t,{t:a}=x(),{spaces:s,roomSpaces:c,zoneSpaces:l,fetching:u,findById:d}=Fe(),f=o(()=>i.filter===`all`),p=o(()=>i.filter===`room`?c.value:i.filter===`zone`?l.value:s.value),h=o(()=>{let e=[],t=c.value.slice().sort((e,t)=>e.name.localeCompare(t.name)),n=l.value.slice().sort((e,t)=>e.name.localeCompare(t.name)),r=s.value.filter(e=>e.type!==$.ROOM&&e.type!==$.ZONE).slice().sort((e,t)=>e.name.localeCompare(t.name));return t.length>0&&e.push({type:$.ROOM,label:a(`spacesModule.labels.rooms`),options:t}),n.length>0&&e.push({type:$.ZONE,label:a(`spacesModule.labels.zones`),options:n}),r.length>0&&e.push({type:`other`,label:a(`spacesModule.labels.others`),options:r}),e}),_=o(()=>{if(!i.modelValue)return null;let e=d(i.modelValue);return e?Pe(e):null});return(i,a)=>(v(),g(N(X),{"model-value":t.modelValue,placeholder:t.placeholder,clearable:t.clearable,filterable:t.filterable,disabled:t.disabled,loading:N(u),class:`w-full`,"onUpdate:modelValue":a[0]||=e=>i.$emit(`update:modelValue`,e)},{prefix:B(()=>[_.value?(v(),g(N(n),{key:0,icon:_.value,class:`text-lg`},null,8,[`icon`])):F(``,!0)]),default:B(()=>[f.value?(v(!0),e(H,{key:0},j(h.value,t=>(v(),g(N(xe),{key:t.type,label:t.label},{default:B(()=>[(v(!0),e(H,null,j(t.options,e=>(v(),g(N(Z),{key:e.id,label:e.name,value:e.id},{default:B(()=>[r(`div`,qt,[m(N(n),{icon:N(Pe)(e),class:`text-lg`},null,8,[`icon`]),r(`span`,null,R(e.name),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:2},1032,[`label`]))),128)):(v(!0),e(H,{key:1},j(p.value,e=>(v(),g(N(Z),{key:e.id,label:e.name,value:e.id},{default:B(()=>[r(`div`,Jt,[m(N(n),{icon:N(Pe)(e),class:`text-lg`},null,8,[`icon`]),r(`span`,null,R(e.name),1)])]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`model-value`,`placeholder`,`clearable`,`filterable`,`disabled`,`loading`]))}});export{it as a,ht as i,Kt as n,nt as o,It as r,Yt as t};
|
|
@@ -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{Ar as L,Cn as R,Cr as z,Er as B,Fr as V,Gr as H,Ir as ee,Lt as te,M as ne,Nr as U,Pr as W,Qn as G,Qr as re,Sn as ie,Tr as ae,Xr as K,Yr as oe,_r as se,br as q,jn as J,jr as ce,kr as le,ti as Y,vr as ue,wn as X,wr as de}from"./common-BlrTsYp4.js";import{n as Z,t as fe}from"./table-BXf7N0rb.js";import{n as pe,t as me}from"./form-PoOFmumT.js";import{t as he}from"./skeleton-DkyCzTs7.js";import{t as ge}from"./alert-BQTYQnER.js";import{t as _e}from"./input-number-DKFs6rPn.js";import{r as ve,t as ye}from"./select-DTgGke01.js";import{t as Q}from"./card-C50YgvLJ.js";import{n as $,r as be}from"./radio-Bogyjga1.js";import{n as xe,t as Se}from"./collapse-BMAQOZL8.js";import{t as Ce}from"./drawer-DJgGmol9.js";import{t as we}from"./empty-DvXiCUNF.js";import{t as Te}from"./pagination-BCuLYs_W.js";import{g as Ee}from"./components-BRoDURXE.js";import{n as De,t as Oe}from"./tabs-bVTlvkzX.js";import{t as ke}from"./directive-D42ORGRu.js";import"./system-CitR2a_O.js";import{n as Ae,o as je}from"./composables-TDMgkeOk.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},ee=(e,t,n)=>{C(e)[t]=n},ne=(e,t)=>{let n=C(e)[t];return Array.isArray(n)?n:[]},U=(e,t,n)=>{C(e)[t]=n},W=()=>{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)}},G=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}))}),ie=async e=>{if(e.dangerous)try{await le.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,()=>{W();for(let e of s.value)S(e.id)},{immediate:!0}),(e,r)=>(g(),t(`div`,Me,[O(c)?(g(),m(O(he),{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(G.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(H),{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(H),{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(me),{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(pe),{key:n.name,label:n.label,class:`mb-2!`},k({default:P(()=>[n.type===`string`?(g(),m(O(re),{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(_e),{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(ce),{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(ve),{key:3,"model-value":V(e.id,n.name),placeholder:n.label,class:`w-full!`,"onUpdate:modelValue":t=>ee(e.id,n.name,t)},{default:P(()=>[(g(!0),t(F,null,D(n.options,e=>(g(),m(O(ye),{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(ve),{key:4,"model-value":ne(e.id,n.name),placeholder:n.label,multiple:``,class:`w-full!`,"onUpdate:modelValue":t=>U(e.id,n.name,t)},{default:P(()=>[(g(!0),t(F,null,D(n.options,e=>(g(),m(O(ye),{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(L),{key:0,type:`danger`,class:`ml-1`},{default:P(()=>[...r[0]||=[u(` * `,-1)]]),_:1})):j(``,!0),n.description?(g(),m(O(L),{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(ge),{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(Y),{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=>ie(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(Y),{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===J.module?`mdi:package-variant`:`mdi:toy-brick`),d=o(()=>a.extension.isCore&&a.extension.kind===J.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(H),{type:e.extension.kind===O(J).module?`primary`:`success`,size:`small`},{default:P(()=>[u(M(e.extension.kind===O(J).module?O(c)(`extensionsModule.labels.module`):O(c)(`extensionsModule.labels.plugin`)),1)]),_:1},8,[`type`]),e.extension.isCore?(g(),m(O(H),{key:0,type:`warning`,size:`small`},{default:P(()=>[u(M(O(c)(`extensionsModule.labels.core`)),1)]),_:1})):j(``,!0),f(O(H),{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(U),{"split-button":``,size:`small`,trigger:`click`,onClick:h,onCommand:_},{dropdown:P(()=>[f(O(V),null,{default:P(()=>[f(O(W),{command:e.extension.enabled?`disable`:`enable`,disabled:!e.extension.canToggleEnabled},{default:P(()=>[f(O(Y),{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(W),{command:`delete`,disabled:``,divided:``},{default:P(()=>[f(O(Y),{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:L,filtersActive:R,clearFilters:V,fetchLogs:ee,loadMoreLogs:te,refreshLogs:ne}=Ae({extensionType:r(()=>s.extensionType)}),U=q(s,`live`,l,{defaultValue:!1}),W=_(null),re=o({get:()=>W.value!==null,set:e=>{e||(W.value=null)}}),ie=[G.error,G.warn,G.info,G.debug,G.fatal,G.log,G.success,G.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()},J=()=>{te()},le=e=>ue(new Date(e)),X=e=>new Date(e).toISOString(),Z=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(()=>{ee()}),(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(ce),{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(ve),{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(ye),{key:e,label:O(d)(`systemModule.levels.${e}`),value:e},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`,`placeholder`]),f(O(ve),{modelValue:O(L),"onUpdate:modelValue":r[2]||=e=>C(L)?L.value=e:null,size:`small`,class:`w-[140px]!`},{default:P(()=>[(g(!0),t(F,null,D(oe.value,e=>(g(),m(O(ye),{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),O(R)?(g(),m(O(A),{key:0,size:`small`,onClick:O(V)},{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(R)&&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(V)},{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(K),{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(Y),{content:X(e.ts),placement:`top-start`},{default:P(()=>[u(M(le(e.ts)),1)]),_:2},1032,[`content`])]),f(O(H),y({ref_for:!0},Z(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:J},{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:re.value,"onUpdate:modelValue":r[4]||=e=>re.value=e,"show-close":!1,"with-header":!1,direction:`rtl`,size:`40%`},{default:P(()=>[i(`div`,bt,[f(O(B),{"menu-button-hidden":``},{"button-right":P(()=>[f(O(de),{align:O(ae).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(z),{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(K),{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(K),{class:`h-full`},{default:P(()=>[e.loading&&e.items.length===0?(g(),m(O(he),{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=q(a,`filters`,o),p=q(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(me),{ref_key:`filterFormEl`,ref:h,inline:!0,model:O(u),class:b([[O(s).b()],`grow-1`])},{default:P(()=>[f(O(re),{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(ee),{direction:`vertical`}),f(O(pe),{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(ne),{"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}=se(),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(fe),{"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(L),{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(Z),{key:0,type:`selection`,width:30})):j(``,!0),f(O(Z),{width:60,align:`center`},{default:P(e=>[f(O(oe),{size:32},{default:P(()=>[f(O(n),{icon:e.row.kind===O(J).module?`mdi:package-variant`:`mdi:toy-brick`,class:`w[20px] h[20px]`},null,8,[`icon`])]),_:2},1024)]),_:1}),f(O(Z),{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(L),{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(Z),{label:O(c)(`extensionsModule.table.columns.type.title`),prop:`type`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:200},{default:P(e=>[f(O(Y),{content:e.row.type,placement:`top`,"show-after":500},{default:P(()=>[f(O(L),{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(Z),{label:O(c)(`extensionsModule.table.columns.kind.title`),prop:`kind`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:120},{default:P(e=>[f(O(H),{type:e.row.kind===O(J).module?`primary`:`success`,size:`small`},{default:P(()=>[u(M(e.row.kind===O(J).module?O(c)(`extensionsModule.labels.module`):O(c)(`extensionsModule.labels.plugin`)),1)]),_:2},1032,[`type`])]),_:1},8,[`label`]),f(O(Z),{label:O(c)(`extensionsModule.table.columns.version.title`),prop:`version`,width:100},{default:P(e=>[e.row.version?(g(),m(O(L),{key:0,size:`small`},{default:P(()=>[u(M(e.row.version),1)]),_:2},1024)):(g(),m(O(L),{key:1,size:`small`,type:`info`},{default:P(()=>[...o[3]||=[u(` - `,-1)]]),_:1}))]),_:1},8,[`label`]),f(O(Z),{label:O(c)(`extensionsModule.table.columns.core.title`),prop:`isCore`,width:100},{default:P(e=>[e.row.isCore?(g(),m(O(H),{key:0,type:`warning`,size:`small`},{default:P(()=>[u(M(O(c)(`extensionsModule.labels.core`)),1)]),_:1})):(g(),m(O(H),{key:1,type:`info`,size:`small`},{default:P(()=>[u(M(O(c)(`extensionsModule.labels.addon`)),1)]),_:1}))]),_:1},8,[`label`]),f(O(Z),{label:O(c)(`extensionsModule.table.columns.enabled.title`),prop:`enabled`,sortable:`custom`,"sort-orders":[`ascending`,`descending`],width:120},{default:P(e=>[f(O(ce),{"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(Z),{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}=se(),u=null,d=_(null),p=_(null),h=q(r,`filters`,a),y=q(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=q(a,`filters`,o);return(e,r)=>(g(),t(F,null,[f(O(z),{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(K),{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(L),{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(L),{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(L),{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===X.starting||a.service.state===X.stopping),d=o(()=>a.service.state===X.stopped||a.service.state===X.error),p=o(()=>a.service.state===X.started||a.service.state===X.starting),h=o(()=>a.service.activationPolicy===ie.always),_=o(()=>d.value),y=o(()=>p.value),x=o(()=>a.service.state===X.started),S=o(()=>_.value&&a.service.desiredState===R.started&&!l.value&&!a.acting),C=o(()=>y.value&&a.service.state!==X.stopping&&!a.acting),w=o(()=>x.value&&a.service.desiredState===R.started&&!l.value&&!a.acting),T=o(()=>a.service.desiredState===R.stopped?c(`extensionsModule.services.tooltips.disabledExtension`):l.value?c(`extensionsModule.services.tooltips.transitioning`):c(`extensionsModule.services.tooltips.startService`)),E=o(()=>a.service.state===X.stopping?c(`extensionsModule.services.tooltips.transitioning`):c(`extensionsModule.services.tooltips.stopService`)),D=o(()=>a.service.desiredState===R.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 X.started:return`success`;case X.stopped:return`info`;case X.starting:case X.stopping:return`warning`;case X.error:return`danger`;default:return`info`}}),I=o(()=>{switch(a.service.state){case X.started:return`mdi:check-circle`;case X.stopped:return`mdi:stop-circle`;case X.starting:case X.stopping:return`mdi:loading`;case X.error:return`mdi:alert-circle`;default:return`mdi:help-circle`}}),L=o(()=>{switch(a.service.state){case X.started:return`text-green-500`;case X.stopped:return`text-gray-400`;case X.starting:case X.stopping:return`text-yellow-500 animate-spin`;case X.error:return`text-red-500`;default:return`text-gray-400`}}),z=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(` `)}),B=o(()=>a.service.lastStartedAt?new Date(a.service.lastStartedAt).toLocaleString():`-`),V=()=>{s(`start`)},ee=()=>{s(`stop`)},te=()=>{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`,L.value])},null,8,[`icon`,`class`])]),i(`div`,Ht,[i(`div`,Ut,[i(`span`,Wt,M(e.extensionName??e.service.extensionType),1),f(O(H),{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(H),{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(H),{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(H),{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(H),{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(Y),{key:0,content:T.value,placement:`top`},{default:P(()=>[f(O(A),{type:`success`,size:`small`,plain:``,disabled:!S.value,loading:e.acting,onClick:V},{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(Y),{key:1,content:E.value,placement:`top`},{default:P(()=>[f(O(A),{type:`danger`,size:`small`,plain:``,disabled:!C.value,loading:e.acting,onClick:ee},{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(Y),{key:2,content:D.value,placement:`top`},{default:P(()=>[f(O(A),{type:`primary`,size:`small`,plain:``,disabled:!w.value,loading:e.acting,onClick:te},{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(z.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(B.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(ge),{key:0,type:e.service.state===O(X).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===J.module),plugins:e.filter(e=>e.extensionKind===J.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:J.module,label:c(`extensionsModule.tabs.modules`),icon:`mdi:package-variant`,services:e.modules},{name:J.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(he),{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(ge),{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(K),{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 +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{_ as o,f as s,gt as c,ht as l,kr as u,l as d,ot as f,p,s as m,sa as h,st as g,x as _,yt as v}from"./common-BlrTsYp4.js";import{r as y}from"./config-DB5uU6lv.js";import{r as b}from"./usePlugins-DvfAfej3.js";import{t as x}from"./schemas.utils-BHZ0MJE0.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-DvlsZ8qQ.js";import{n as N}from"./useDataSources-sR_x_yyt.js";import"./usePage-iMNf9o87.js";var P=s(),F=()=>{let e=b(),{enabled:n}=y(),r=[`pageDetail`,`pageAddForm`,`pageEditForm`],i=[`pageSchema`,`pageAddFormSchema`,`pageEditFormSchema`,`pageCreateReqSchema`,`pageUpdateReqSchema`],a=[`configure`],o=t(()=>e.getPlugins().filter(e=>{if(!(e.modules===void 0||e.modules.includes(`dashboard-module`)))return!1;let t=a.some(t=>e.routes&&t in e.routes)??!0;return(e.elements??[]).some(e=>{if(!(e.modules===void 0||e.modules.includes(`dashboard-module`)))return!1;let n=r.length===0||!!e.components&&r.some(t=>e.components&&t in e.components),a=i.length===0||!!e.schemas&&i.some(t=>e.schemas&&t in e.schemas);return n||a||t})}));return{plugins:o,options:t(()=>S(o.value.flatMap(e=>(e.elements??[]).filter(e=>e.modules===void 0||e.modules.includes(`dashboard-module`)).map(t=>({value:t.type,label:t.name?.trim()?t.name:e.name,disabled:!n(e.type)}))),[e=>e.label],[`asc`])),getByPluginType:e=>o.value.find(t=>t.type===e),getByType:e=>o.value.find(t=>(t.elements??[]).some(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`dashboard-module`)))),getElement:e=>{for(let t of o.value){let n=(t.elements??[]).find(t=>t.type===e&&(t.modules===void 0||t.modules.includes(`dashboard-module`)));if(n)return n}}}},I=()=>{let e=_().getStore(D),{firstLoad:n,semaphore:r}=h(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=_().getStore(D),{firstLoad:r,semaphore:i}=h(e),{filters:o,sort:s,pagination:c,reset:l}=m({key:`${w}:pages:list`,filters:{schema:j,defaults:L},sort:{defaults:[ee]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),u=t(()=>o.value.search!==L.search||!(0,P.isEqual)(o.value.types,L.types)||!(0,P.isEqual)(o.value.displays,L.displays)),d=n(c.value.size||10),f=n(c.value.page||1),p=n(s.value.length>0?s.value[0]?.by:void 0),g=n(s.value.length>0?s.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[p.value]??``],[g.value===`asc`?`asc`:`desc`])),y=t(()=>{let e=(f.value-1)*d.value,t=e+d.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(()=>c.value,e=>{f.value=e.page??1,d.value=e.size??10},{deep:!0}),a(()=>f.value,e=>{c.value.page=e}),a(()=>d.value,e=>{c.value.size=e}),a(()=>g.value,e=>{p.value===void 0||e===null?s.value=[]:s.value=[{by:p.value,dir:e}]}),a(()=>p.value,e=>{e===void 0?s.value=[]:s.value=[{by:e,dir:g.value}]}),{pages:v,pagesPaginated:y,totalRows:T,areLoading:x,loaded:C,fetchPages:b,filters:o,filtersActive:u,paginateSize:d,paginatePage:f,sortBy:p,sortDir:g,resetFilter:l}},R=()=>{let{t:e}=r(),t=p(),n=_().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`);u.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 u.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=_().getStore(D);return{icon:t(()=>`mdi:${n.findById(e)?.icon??`view-dashboard`}`)}},B=c({id:v().uuid().optional(),type:v().trim().nonempty(),title:v().trim().nonempty(),icon:v().trim().transform(e=>e===``?null:e).nullable().optional(),order:l(),showTopBar:g().optional(),displays:f(v().uuid()).nullable().optional()}),V=c({id:v().uuid(),type:v().trim().nonempty(),title:v().trim().nonempty().optional(),icon:v().trim().transform(e=>e===``?null:e).nullable().optional(),order:l().optional(),showTopBar:g().optional(),displays:f(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:s})=>{let c=_(),{element:l}=H({type:s}),u=c.getStore(D),{t:f}=r(),m=p(),h=o(),g=n(T.NONE),v,y=i({...x(l.value?.schemas?.pageAddFormSchema||B),id:t,type:s,title:``,icon:``,order:0,showTopBar:!0}),b=d(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=(l.value?.schemas?.pageAddFormSchema||B).safeParse(y);if(!e.success)throw h.error(`Schema validation failed with:`,e.error),new O(`Failed to validate create page model.`);g.value=T.WORKING;let n=f(`dashboardModule.messages.pages.notCreated`,{page:y.title});try{await u.add({id:t,draft:!1,data:{...e.data,type:s}})}catch(e){throw g.value=T.ERROR,v=window.setTimeout(k,2e3),e instanceof E&&e.code===422?m.error(e.message):m.error(n),e}return g.value=T.OK,v=window.setTimeout(k,2e3),m.success(f(`dashboardModule.messages.pages.created`,{page:y.title})),`added`},k=()=>{window.clearTimeout(v),g.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:g}},W=({page:t,messages:s})=>{let c=_(),{element:l}=H({type:t.type}),u=c.getStore(D),{t:f}=r(),m=p(),h=o(),g=n(T.NONE),v,y=i(t),b=d(e(y)),x=n(void 0),S=n(!1),C=async()=>{let n=t.draft,r=s&&s.error?s.error:t.draft?f(`dashboardModule.messages.pages.notCreated`,{page:t.title}):f(`dashboardModule.messages.pages.notEdited`,{page:t.title});if(x.value.clearValidate(),!await x.value.validate())throw new O(`Form not valid`);let i=(l.value?.schemas?.pageEditFormSchema||V).safeParse(y);if(!i.success)throw h.error(`Schema validation failed with:`,i.error),new O(`Failed to validate edit page model.`);g.value=T.WORKING;try{let e;e=await u.edit({id:t.id,data:{...i.data,type:t.type}}),t.draft&&(e=await u.save({id:t.id})),e&&Object.assign(y,e)}catch(e){throw g.value=T.ERROR,v=window.setTimeout(w,2e3),e instanceof E&&e.code===422?m.error(e.message):m.error(r),e}return g.value=T.OK,v=window.setTimeout(w,2e3),n?(m.success(f(s&&s.success?s.success:`dashboardModule.messages.pages.created`,{page:t.title})),`added`):(m.success(f(s&&s.success?s.success:`dashboardModule.messages.pages.edited`,{page:t.title})),S.value=!1,b=d(e(y)),`saved`)},w=()=>{window.clearTimeout(v),g.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}},G=e=>{let n=_().getStore(k),{firstLoad:r,semaphore:i}=h(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=p(),i=_().getStore(k);return{findById:(e,t)=>i.findById(e,t),edit:async e=>i.edit(e),save:async e=>i.save(e),remove:async r=>{let a=i.findById(e.parent,r);if(a===null)throw new C(`Something went wrong, tile can't be loaded`);u.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=c({id:v().uuid().optional(),type:v().trim().nonempty(),row:l(),col:l(),rowSpan:l(),colSpan:l(),hidden:g()}),J=c({id:v().uuid(),type:v().trim().nonempty(),row:l().optional(),col:l().optional(),rowSpan:l().optional(),colSpan:l().optional(),hidden:g()}),Y=({id:t,parent:s,parentId:c,type:l,onlyDraft:u=!1})=>{let f=_(),{element:m}=N({type:l}),h=f.getStore(k),{t:g}=r(),v=p(),y=o(),b=n(T.NONE),S,C=i({...x(m.value?.schemas?.tileAddFormSchema||q),id:t,type:l,row:1,col:1,rowSpan:1,colSpan:1,hidden:!1}),w=d(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=(m.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=g(`dashboardModule.messages.tiles.notCreated`);try{await h.add({id:t,parent:{type:s,id:c},draft:u,data:{...e.data,type:l}})}catch(e){throw b.value=T.ERROR,S=window.setTimeout(M,2e3),e instanceof E&&e.code===422?v.error(e.message):v.error(n),e}return b.value=T.OK,S=window.setTimeout(M,2e3),v.success(g(`dashboardModule.messages.tiles.created`)),`added`},M=()=>{window.clearTimeout(S),b.value=T.NONE};return 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:s,onlyDraft:c=!1})=>{let l=_(),{element:u}=N({type:t.type}),f=l.getStore(k),{t:m}=r(),h=p(),g=o(),v=n(T.NONE),y,b=i(t),x=d(e(b)),S=n(void 0),C=n(!1),w=async()=>{let n=t.draft,r=s&&s.error?s.error:t.draft&&!c?m(`dashboardModule.messages.tiles.notCreated`):m(`dashboardModule.messages.tiles.notEdited`);if(S.value.clearValidate(),!await S.value.validate())throw new O(`Form not valid`);let i=(u.value?.schemas?.tileEditFormSchema||J).safeParse(b);if(!i.success)throw g.error(`Schema validation failed with:`,i.error),new O(`Failed to validate create tile model.`);v.value=T.WORKING;try{await f.edit({id:t.id,parent:t.parent,data:{...i.data,type:t.type}}),t.draft&&!c&&await f.save({id:t.id,parent:t.parent})}catch(e){throw v.value=T.ERROR,y=window.setTimeout(D,2e3),e instanceof E&&e.code===422?h.error(e.message):h.error(r),e}return v.value=T.OK,y=window.setTimeout(D,2e3),n&&!c?(h.success(m(s&&s.success?s.success:`dashboardModule.messages.tiles.created`)),`added`):(h.success(m(s&&s.success?s.success:`dashboardModule.messages.tiles.edited`)),C.value=!1,x=d(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=_().getStore(A),{data:i,semaphore:a}=h(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=c({id:v().uuid().optional(),type:v().trim().nonempty()}),$=c({id:v().uuid(),type:v().trim().nonempty()}),ne=({id:t,type:s,parent:c,parentId:l,onlyDraft:u=!1})=>{let f=_(),{element:m}=M({type:s}),h=f.getStore(A),{t:g}=r(),v=p(),y=o(),b=n(T.NONE),S,C=i({...x(m.value?.schemas?.dataSourceAddFormSchema||Q),id:t,type:s}),w=d(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=(m.value?.schemas?.dataSourceAddFormSchema||Q).safeParse(C);if(!e.success)throw y.error(`Schema validation failed with:`,e.error),new O(`Failed to validate create data source model.`);b.value=T.WORKING;let n=g(`dashboardModule.messages.dataSources.notCreated`);try{await h.add({id:t,parent:{type:c,id:l},draft:u,data:{...e.data,type:s}})}catch(e){throw b.value=T.ERROR,S=window.setTimeout(N,2e3),e instanceof E&&e.code===422?v.error(e.message):v.error(n),e}return b.value=T.OK,S=window.setTimeout(N,2e3),v.success(g(`dashboardModule.messages.dataSources.created`)),`added`},N=()=>{window.clearTimeout(S),b.value=T.NONE};return 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:s,onlyDraft:c=!1})=>{let l=_(),{element:u}=M({type:t.type}),f=l.getStore(A),{t:m}=r(),h=p(),g=o(),v=n(T.NONE),y,b=i(t),x=d(e(b)),S=n(void 0),C=n(!1),w=async()=>{let n=t.draft,r=s&&s.error?s.error:t.draft&&!c?m(`dashboardModule.messages.dataSources.notCreated`):m(`dashboardModule.messages.dataSources.notEdited`);if(S.value.clearValidate(),!await S.value.validate())throw new O(`Form not valid`);let i=(u.value?.schemas?.dataSourceEditFormSchema||$).safeParse(b);if(!i.success)throw g.error(`Schema validation failed with:`,i.error),new O(`Failed to validate create dataSource model.`);v.value=T.WORKING;try{await f.edit({id:t.id,parent:t.parent,data:{...i.data,type:t.type}}),t.draft&&!c&&await f.save({id:t.id,parent:t.parent})}catch(e){throw v.value=T.ERROR,y=window.setTimeout(D,2e3),e instanceof E&&e.code===422?h.error(e.message):h.error(r),e}return v.value=T.OK,y=window.setTimeout(D,2e3),n&&!c?(h.success(m(s&&s.success?s.success:`dashboardModule.messages.dataSources.created`)),`added`):(h.success(m(s&&s.success?s.success:`dashboardModule.messages.dataSources.edited`)),C.value=!1,x=d(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{Er as e,Si as t,T as n,bi as r,ci as i}from"./icon-with-child-CgZMNB3F.js";import{Vt as a,f as o,kr as s,l as c,p as l,sa as u,x as d}from"./common-BlrTsYp4.js";import{t as f}from"./dist-DJgPCOr0.js";var p=`users`,m=`users-module`,h=`UsersModule.`,g=function(e){return e.USER_CREATED=`UsersModule.User.Created`,e.USER_UPDATED=`UsersModule.User.Updated`,e.USER_DELETED=`UsersModule.User.Deleted`,e.USER_RESET=`UsersModule.User.Reset`,e.MODULE_RESET=`UsersModule.All.Reset`,e}({}),_=function(e){return e.NONE=`none`,e.WORKING=`working`,e.ERROR=`error`,e.OK=`ok`,e}({}),v={USERS:`users_module-users`,USER_ADD:`users_module-user-add`,USER_EDIT:`users_module-user-edit`},y=Symbol(`FB-Module-Users-UsersStore`),b=class extends Error{exception;constructor(e,t=null){super(e),this.name=`UsersException`,this.exception=t}},x=class extends b{code;constructor(e,t=null,n=null){super(e,n),this.name=`UsersApiException`,this.code=t}},S=class extends b{constructor(e,t=null){super(e,t),this.name=`UsersValidationException`}},C=({id:t})=>{let n=d().getStore(y),{data:r,semaphore:i}=u(n);return{user:e(()=>t===null?null:r.value[t]??null),isLoading:e(()=>i.value.fetching.item.includes(t)?!0:r.value[t]===void 0&&i.value.fetching.items),fetchUser:async()=>{r.value[t]?.draft||await n.get({id:t})}}},w=({id:e})=>{let o=d().getStore(y),{t:s}=n(),c=l(),u=t(_.NONE),f,p=r({username:``,password:``,repeatPassword:``,email:``,firstName:``,lastName:``,role:a.user}),m=t(void 0),h=t(!1),g=async()=>{let t=s(`usersModule.messages.notCreated`,{user:p.username});if(m.value.clearValidate(),!await m.value.validate())throw new S(`Form not valid`);u.value=_.WORKING;try{await o.add({id:e,draft:!1,data:{username:p.username,password:p.password,email:p.email?.trim()===``?null:p.email,firstName:p.firstName?.trim()===``?null:p.firstName,lastName:p.lastName?.trim()===``?null:p.lastName,role:p.role}})}catch(e){throw u.value=_.ERROR,f=window.setTimeout(v,2e3),e instanceof x&&e.code===422?c.error(e.message):c.error(t),e}return u.value=_.OK,f=window.setTimeout(v,2e3),c.success(s(`usersModule.messages.created`,{user:p.username})),`added`},v=()=>{window.clearTimeout(f),u.value=_.NONE};return i(p,e=>{e.username===``&&e.password===``&&e.email===``&&e.firstName===``&&e.lastName===``&&e.role===a.user?h.value=!1:h.value=!0}),{model:p,formEl:m,formChanged:h,submit:g,clear:v,formResult:u}},T=({user:e,messages:a})=>{let o=d().getStore(y),{t:s}=n(),c=l(),u=t(_.NONE),f,p=r({username:e.username,password:`secretpassword`,email:e.email||``,firstName:e.firstName||``,lastName:e.lastName||``,role:e.role}),m=t(void 0),h=t(!1),g=async()=>{let t=e.draft,n=a&&a.error?a.error:e.draft?s(`usersModule.messages.notCreated`,{user:e.username}):s(`usersModule.messages.notEdited`,{user:e.username});if(m.value.clearValidate(),!await m.value.validate())throw new S(`Form not valid`);u.value=_.WORKING;try{await o.edit({id:e.id,data:{email:!p.email||p.email.trim()===``?null:p.email,firstName:!p.firstName||p.firstName.trim()===``?null:p.firstName,lastName:!p.lastName||p.lastName.trim()===``?null:p.lastName,role:p.role}}),e.draft&&await o.save({id:e.id})}catch(e){throw u.value=_.ERROR,f=window.setTimeout(v,2e3),e instanceof x&&e.code===422?c.error(e.message):c.error(n),e}return u.value=_.OK,f=window.setTimeout(v,2e3),t?(c.success(s(a&&a.success?a.success:`usersModule.messages.created`,{user:e.username})),`added`):(c.success(s(a&&a.success?a.success:`usersModule.messages.edited`,{user:e.username})),`saved`)},v=()=>{window.clearTimeout(f),u.value=_.NONE};return i(p,t=>{t.email===e.email&&t.firstName===e.firstName&&t.lastName===e.lastName&&t.role===e.role?h.value=!1:h.value=!0}),{model:p,formEl:m,formChanged:h,submit:g,clear:v,formResult:u}},E=({user:e,messages:a})=>{let o=d().getStore(y),{t:s}=n(),c=l(),u=t(_.NONE),f,p=r({password:``,repeatPassword:``}),m=t(void 0),h=t(!1),g=async()=>{let t=a&&a.error?a.error:s(`usersModule.messages.notEdited`,{user:e.username});if(m.value.clearValidate(),!await m.value.validate())throw new S(`Form not valid`);u.value=_.WORKING;try{await o.edit({id:e.id,data:{password:p.password}}),e.draft&&await o.save({id:e.id})}catch(e){throw u.value=_.ERROR,f=window.setTimeout(v,2e3),e instanceof x&&e.code===422?c.error(e.message):c.error(t),e}return u.value=_.OK,f=window.setTimeout(v,2e3),c.success(s(a&&a.success?a.success:`usersModule.messages.edited`,{user:e.username})),`saved`},v=()=>{window.clearTimeout(f),u.value=_.NONE};return i(p,e=>{e.password===``&&e.repeatPassword===``?h.value=!1:h.value=!0}),{model:p,formEl:m,formChanged:h,submit:g,clear:v,formResult:u}},D=({user:e,messages:a})=>{let o=d().getStore(y),{t:s}=n(),c=l(),u=t(_.NONE),f,p=r({username:e.username}),m=t(void 0),h=t(!1),g=async()=>{let t=a&&a.error?a.error:s(`usersModule.messages.notEdited`,{user:e.username});if(m.value.clearValidate(),!await m.value.validate())throw new S(`Form not valid`);u.value=_.WORKING;try{await o.edit({id:e.id,data:{username:p.username}}),e.draft&&await o.save({id:e.id})}catch(e){throw u.value=_.ERROR,f=window.setTimeout(v,2e3),e instanceof x&&e.code===422?c.error(e.message):c.error(t),e}return u.value=_.OK,f=window.setTimeout(v,2e3),c.success(s(a&&a.success?a.success:`usersModule.messages.edited`,{user:e.username})),`saved`},v=()=>{window.clearTimeout(f),u.value=_.NONE};return i(p,t=>{h.value=t.username!==e.username}),{model:p,formEl:m,formChanged:h,submit:g,clear:v,formResult:u}},O=o(),k={search:void 0,roles:[]},A=()=>{let n=d().getStore(y),{firstLoad:r,semaphore:a}=u(n),o=t(10),s=t(1),l=t(c(k)),p=e(()=>l.value.search!==k.search||!(0,O.isEqual)(l.value.roles,k.roles)),m=t(`username`),h=t(`ascending`),g=e(()=>f(n.findAll().filter(e=>!e.draft&&(!l.value.search||e.username.toLowerCase().includes(l.value.search.toLowerCase()))&&(l.value.roles.length===0||l.value.roles.includes(e.role))),[e=>e[m.value]??``],[h.value===`ascending`?`asc`:`desc`])),_=e(()=>{let e=(s.value-1)*o.value,t=e+o.value;return g.value.slice(e,t)}),v=async()=>{await n.fetch()},b=e(()=>a.value.fetching.items||!r.value),x=e(()=>r.value),S=e(()=>n.findAll().filter(e=>!e.draft).length);return i(()=>l.value,()=>{s.value=1},{deep:!0}),{users:g,usersPaginated:_,totalRows:S,areLoading:b,loaded:x,fetchUsers:v,filters:l,filtersActive:p,paginateSize:o,paginatePage:s,sortBy:m,sortDir:h,resetFilter:()=>{l.value=c(k)}}},j=()=>{let{t:e}=n(),t=l(),r=d().getStore(y);return{remove:async n=>{let i=r.findById(n);if(i===null)throw new b(`Something went wrong, user can't be loaded`);s.confirm(e(`usersModule.texts.confirmRemove`,{user:i.username}),e(`usersModule.headings.remove`),{confirmButtonText:e(`usersModule.buttons.yes.title`),cancelButtonText:e(`usersModule.buttons.no.title`),type:`warning`}).then(async()=>{try{await r.remove({id:i.id}),t.success(e(`usersModule.messages.removed`,{user:i.username}))}catch(n){if(n instanceof x&&n.code===404){let n=e(`usersModule.messages.notFound`,{user:i.username});t.error(n)}else if(n instanceof x&&n.code===422)t.error(n.message);else{let n=e(`usersModule.messages.notRemoved`,{user:i.username});t.error(n)}}}).catch(()=>{t.info(e(`usersModule.messages.removeCanceled`,{user:i.username}))})},bulkRemove:async n=>{if(n.length!==0){try{await s.confirm(e(`usersModule.texts.confirmBulkRemove`,{count:n.length}),e(`usersModule.headings.removeBulk`),{confirmButtonText:e(`usersModule.buttons.yes.title`),cancelButtonText:e(`usersModule.buttons.no.title`),type:`warning`})}catch{return}try{let i=await r.bulkRemove({ids:n.map(e=>e.id)});i.succeeded.length>0&&t.success(e(`usersModule.messages.bulkRemoved`,{count:i.succeeded.length})),i.failed.length>0&&t.error(e(`usersModule.messages.bulkRemoveFailed`,{count:i.failed.length}))}catch{t.error(e(`usersModule.messages.bulkRemoveFailed`,{count:n.length}))}}}}};export{p as _,T as a,x as c,y as d,g as f,m as g,h,E as i,b as l,v as m,A as n,w as o,_ as p,D as r,C as s,j as t,S as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Er as e}from"./icon-with-child-CgZMNB3F.js";import{sa as t,x as n}from"./common-BlrTsYp4.js";import{t as r}from"./keys-CIqUg3Jv.js";import"./usePersonalTokens-B0Qdlw56.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"./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{Ht as c,Sr as l,_ as u,f as d,gt as f,it as p,kr as m,l as h,m as g,ot as _,p as v,s as y,sa as b,x,yt as S}from"./common-BlrTsYp4.js";import{t as C}from"./dist-DJgPCOr0.js";import{t as w}from"./keys-DExX7OfU.js";var T=e=>{let n=x().getStore(w),{tokenRefreshTriggers:i}=b(n),a=u(),s=r([]),c=t(()=>e.value===null?null:n?.findById(e.value)??null),d=t(()=>e.value===null?!1:n?.getting(e.value)??!1),f=async()=>{if(e.value!==null)try{await n?.get({id:e.value})}catch(e){a.error(`Failed to fetch display:`,e)}},p=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 l(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 p()}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 f()}catch(e){a.error(`Failed to fetch display on id change:`,e)}},{immediate:!0}),{display:c,tokens:s,isLoading:d,fetchDisplay:f,fetchTokens:p,revokeToken:async()=>{if(e.value===null)return!1;let t=await n?.revokeToken({id:e.value});return t&&(s.value=[]),t??!1}}},E=d(),D=`displays`,O=`displays-module`,k=`DisplaysModule.`,A=c,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=x().getStore(w),{t:l}=i(),u=v(),d=r(M.NONE),f,p=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=h(e(p)),g=r(void 0),_=r(!1),y=async()=>{let n=s&&s.error?s.error:l(`displaysModule.messages.notEdited`,{display:t.name||t.macAddress});if(!g.value)throw new I(`Form element is not available`);if(g.value.clearValidate(),!await g.value.validate())throw new I(`Form not valid`);d.value=M.WORKING;try{let e={name:p.name||null,spaceId:p.spaceId,unitSize:p.unitSize,rows:p.rows,cols:p.cols,brightness:p.brightness,screenLockDuration:p.screenLockDuration,darkMode:p.darkMode,screenSaver:p.screenSaver,screenPowerOff:p.screenPowerOff,homeMode:p.homeMode,homePageId:p.homeMode===`explicit`?p.homePageId:null,numberFormat:p.numberFormat||null,temperatureUnit:p.temperatureUnit||null,windSpeedUnit:p.windSpeedUnit||null,pressureUnit:p.pressureUnit||null,precipitationUnit:p.precipitationUnit||null,distanceUnit:p.distanceUnit||null,weatherLocationId:p.weatherLocationId||null};t.audioOutputSupported&&(e.speaker=p.speaker,e.speakerVolume=p.speakerVolume),t.audioInputSupported&&(e.microphone=p.microphone,e.microphoneVolume=p.microphoneVolume),await c.edit({id:t.id,data:e})}catch(e){throw d.value=M.ERROR,f=window.setTimeout(b,2e3),e instanceof L&&e.code===422?u.error(e.message):u.error(n),e}return d.value=M.OK,f=window.setTimeout(b,2e3),u.success(l(s&&s.success?s.success:`displaysModule.messages.edited`,{display:t.name||t.macAddress})),_.value=!1,m=h(e(p)),`saved`},b=()=>{f!==void 0&&(window.clearTimeout(f),f=void 0),d.value=M.NONE};return o(p,()=>{_.value=!(0,E.isEqual)(e(p),m)}),n(()=>{b()}),{model:p,formEl:g,formChanged:_,submit:y,clear:b,formResult:d}},z=()=>{let e=x().getStore(w),{firstLoad:n}=b(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=f({search:S().optional(),darkMode:p([`all`,`enabled`,`disabled`]).default(`all`),screenSaver:p([`all`,`enabled`,`disabled`]).default(`all`),state:p([`all`,`offline`,`online`]).default(`all`),states:_(p([`connected`,`disconnected`,`lost`,`unknown`]))}),V={search:void 0,darkMode:`all`,screenSaver:`all`,state:`all`,states:[]},H={by:`name`,dir:`asc`},U=()=>{let e=x().getStore(w),{firstLoad:n,semaphore:i}=b(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}),u=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)),d=r(c.value.size||10),f=r(c.value.page||1),p=r(s.value.length>0?s.value[0]?.by:void 0),m=r(s.value.length>0?s.value[0]?.dir??null:null),h=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(p.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}}],[m.value===`asc`?`asc`:`desc`])),g=t(()=>{let e=(f.value-1)*d.value,t=e+d.value;return h.value.slice(e,t)}),_=async()=>{await e.fetch()},v=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=>{f.value=e.page??1,d.value=e.size??10},{deep:!0}),o(()=>f.value,e=>{c.value.page=e}),o(()=>d.value,e=>{c.value.size=e}),o(()=>m.value,e=>{p.value===void 0||e===null?s.value=[]:s.value=[{by:p.value,dir:e}]}),o(()=>p.value,e=>{e===void 0?s.value=[]:s.value=[{by:e,dir:m.value}]}),{displays:h,displaysPaginated:g,totalRows:T,areLoading:v,loaded:S,fetchDisplays:_,filters:a,filtersActive:u,paginateSize:d,paginatePage:f,sortBy:p,sortDir:m,resetFilter:l}},W=()=>{let e=x().getStore(w),{t}=i(),n=v();return{remove:async r=>{let i=e?.findById(r);if(!i){n.error(t(`displaysModule.messages.notFound`));return}try{await m.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 m.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=g(),n=u(),i=r(null),a=r(!1),o=r(!1),c=t(()=>i.value?.available??!1),l=t(()=>i.value?.active??!1),d=t(()=>i.value?.deploymentMode??`combined`),f=t(()=>i.value?.remainingTime??null),p=t(()=>{let e=f.value;return e===null?0:Math.ceil(e/1e3)}),m=t(()=>{let e=p.value;return e<=0?`0:00`:`${Math.floor(e/60)}:${(e%60).toString().padStart(2,`0`)}`}),h=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:d,remainingTime:f,remainingTimeSeconds:p,remainingTimeFormatted:m,fetchStatus:h,activate:async()=>{try{o.value=!0,await e.client.POST(`/${s}/${D}/displays/permit-join`),await h()}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 h()}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};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./composables-CS735TVh.js";
|
|
@@ -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{In as u,Qn as d,_ as f,a as p,an as m,at as h,bt as g,f as _,gt as v,ht as y,in as b,it as x,kn as S,kr as C,l as w,m as T,nn as E,on as D,ot as O,p as k,pt as A,rn as j,s as M,sa as N,st as P,x as F,yt as I}from"./common-BlrTsYp4.js";import{r as L}from"./config-DB5uU6lv.js";import{r as R}from"./usePlugins-DvfAfej3.js";import{t as z}from"./schemas.utils-BHZ0MJE0.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-BA5bjG9l.js";import{s as ie}from"./system.constants-BvSIFqdm.js";import{n as ae}from"./logs-entries.transformers-HHWOxKN-.js";var K=_(),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=F().getStore(W),{data:r,semaphore:i}=N(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=F().getStore(W),{firstLoad:i,semaphore:a}=N(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=v({search:I().optional(),types:O(I()),state:x([`all`,`offline`,`online`]).default(`all`),states:O(A(u)),categories:O(A(E)),enabled:x([`all`,`enabled`,`disabled`]).default(`all`),validation:x([`all`,`valid`,`invalid`]).default(`all`)}),de=v({search:I().optional(),devices:O(I()),categories:O(A(j))}),fe=v({search:I().optional(),channels:O(I()),categories:O(A(b)),permissions:O(A(D)),dataTypes:O(A(m))}),X={search:void 0,devices:[],categories:[]},pe={by:`name`,dir:`asc`},me=(e={})=>{let{deviceId:n}=e,i=F().getStore(W),{firstLoad:a,semaphore:s}=N(i),{filters:c,sort:l,pagination:u,reset:d}=M({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),m=r(u.value.page||1),h=r(l.value.length>0?l.value[0]?.by:void 0),g=r(l.value.length>0?l.value[0]?.dir??null:null),_=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[h.value]??``],[g.value===`asc`?`asc`:`desc`])),v=t(()=>{let e=(m.value-1)*p.value,t=e+p.value;return _.value.slice(e,t)}),y=async()=>{await i.fetch({deviceId:n})},b=t(()=>s.value.fetching.items.includes(n??`all`)?!0:!a.value.includes(n??`all`)&&s.value.fetching.items.includes(n??`all`)),x=t(()=>a.value.includes(n??`all`)),S=t(()=>i.findAll().filter(e=>!n||e.device===n).filter(e=>!e.draft).length);return o(()=>u.value,e=>{m.value=e.page??1,p.value=e.size??10},{deep:!0}),o(()=>m.value,e=>{u.value.page=e}),o(()=>p.value,e=>{u.value.size=e}),o(()=>g.value,e=>{h.value===void 0||e===null?l.value=[]:l.value=[{by:h.value,dir:e}]}),o(()=>h.value,e=>{e===void 0?l.value=[]:l.value=[{by:e,dir:g.value}]}),{channels:_,channelsPaginated:v,totalRows:S,areLoading:b,loaded:x,fetchChannels:y,filters:c,filtersActive:f,paginateSize:p,paginatePage:m,sortBy:h,sortDir:g,resetFilter:d}},he=()=>{let{t:e}=i(),t=k(),n=F().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`);C.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=F().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={[E.generic]:[],[E.air_conditioner]:[j.cooler,j.heater,j.fan,j.temperature,j.humidity,j.electrical_energy,j.electrical_power,j.leak,j.device_information],[E.air_dehumidifier]:[j.cooler,j.fan,j.temperature,j.humidity,j.electrical_energy,j.electrical_power,j.leak,j.device_information],[E.air_humidifier]:[j.humidity,j.switcher,j.temperature,j.fan,j.electrical_energy,j.electrical_power,j.leak,j.device_information],[E.air_purifier]:[j.fan,j.air_particulate,j.carbon_dioxide,j.carbon_monoxide,j.humidity,j.leak,j.nitrogen_dioxide,j.ozone,j.pressure,j.sulphur_dioxide,j.temperature,j.volatile_organic_compounds,j.electrical_energy,j.electrical_power,j.device_information],[E.alarm]:[j.alarm,j.device_information],[E.camera]:[j.camera,j.motion,j.microphone,j.speaker,j.contact,j.light,j.temperature,j.humidity,j.battery,j.device_information],[E.door]:[j.door,j.lock,j.contact,j.motion,j.battery,j.device_information],[E.doorbell]:[j.doorbell,j.camera,j.lock,j.motion,j.microphone,j.speaker,j.contact,j.light,j.battery,j.device_information],[E.fan]:[j.fan,j.electrical_energy,j.electrical_power,j.device_information],[E.heating_unit]:[j.heater,j.temperature,j.humidity,j.electrical_energy,j.electrical_power,j.device_information],[E.lighting]:[j.light,j.illuminance,j.electrical_energy,j.electrical_power,j.device_information],[E.lock]:[j.lock,j.contact,j.motion,j.battery,j.device_information],[E.media]:[j.media_input,j.media_playback,j.microphone,j.speaker,j.device_information],[E.av_receiver]:[j.media_input,j.media_playback,j.speaker,j.device_information],[E.game_console]:[j.media_playback,j.media_input,j.device_information],[E.projector]:[j.projector,j.speaker,j.media_playback,j.media_input,j.device_information],[E.set_top_box]:[j.media_input,j.media_playback,j.device_information],[E.streaming_service]:[j.media_playback,j.device_information],[E.outlet]:[j.outlet,j.electrical_energy,j.electrical_power,j.device_information],[E.pump]:[j.flow,j.switcher,j.leak,j.pressure,j.electrical_energy,j.electrical_power,j.device_information],[E.robot_vacuum]:[j.robot_vacuum,j.electrical_energy,j.electrical_power,j.leak,j.battery,j.device_information],[E.sensor]:[j.air_particulate,j.battery,j.carbon_dioxide,j.carbon_monoxide,j.contact,j.humidity,j.illuminance,j.leak,j.motion,j.nitrogen_dioxide,j.occupancy,j.ozone,j.pressure,j.smoke,j.sulphur_dioxide,j.temperature,j.volatile_organic_compounds,j.device_information],[E.speaker]:[j.speaker,j.media_input,j.media_playback,j.electrical_energy,j.electrical_power,j.device_information],[E.sprinkler]:[j.valve,j.flow,j.pressure,j.leak,j.humidity,j.electrical_energy,j.electrical_power,j.device_information],[E.switcher]:[j.switcher,j.electrical_energy,j.electrical_power,j.device_information],[E.television]:[j.television,j.speaker,j.media_playback,j.media_input,j.device_information],[E.terminal]:[j.button,j.indicator,j.buzzer,j.illuminance,j.accelerometer,j.temperature,j.contact,j.switcher,j.device_information],[E.thermostat]:[j.thermostat,j.cooler,j.heater,j.temperature,j.humidity,j.contact,j.electrical_energy,j.electrical_power,j.device_information],[E.valve]:[j.valve,j.pressure,j.flow,j.leak,j.battery,j.electrical_energy,j.electrical_power,j.device_information],[E.water_heater]:[j.heater,j.temperature,j.leak,j.electrical_energy,j.electrical_power,j.device_information],[E.window_covering]:[j.window_covering,j.battery,j.electrical_energy,j.electrical_power,j.device_information]},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=F(),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=v({id:I().uuid().optional(),type:I().trim().nonempty(),device:I().uuid().optional(),category:A(j).default(j.generic),identifier:I().trim().nonempty().nullable().optional(),name:I().trim().nonempty(),description:I().trim().transform(e=>e===``?null:e).nullable().optional()}),Te=v({id:I().uuid(),type:I().trim().nonempty(),device:I().uuid(),category:A(j).default(j.generic),identifier:I().trim().nonempty().nullable().optional(),name:I().trim().nonempty().optional(),description:I().trim().transform(e=>e===``?null:e).nullable().optional()}),Ee=({type:e})=>{let{getByType:n}=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=F().getStore(V),{firstLoad:n,semaphore:r}=N(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=F(),{element:u}=Ee({type:s}),d=l.getStore(W),{devices:p,fetchDevices:m,areLoading:h}=De(),{t:g}=i(),_=k(),v=f(),y=r(G.NONE),b,x=t(()=>D.device?p.value.find(e=>e.id===D.device)??null:null),S=t(()=>x.value?d.findForDevice(x.value.id).map(e=>e.category):[]),C=t(()=>x.value?Z[x.value.category]??null:null),T=t(()=>C.value===null?[]:Object.values(j).filter(e=>C.value?.required.includes(e)||C.value?.optional.includes(e)).filter(e=>!S.value.includes(e)||C.value?.multiple?.includes(e)).map(e=>({value:e,label:g(`devicesModule.categories.channels.${e}`)}))),E=t(()=>p.value.filter(e=>e.type===s).map(e=>({value:e.id,label:e.name}))),D=a({...z(u.value?.schemas?.channelAddFormSchema||we),id:n,type:s,device:c,category:j.generic,name:``,description:``}),O=w(e(D)),A=r(void 0),M=r(!1),N=async()=>{if(A.value.clearValidate(),!await A.value.validate())throw new Y(`Form not valid`);let e=c??D.device;if(!e)throw new Y(`Missing device identifier`);if(!D.category)throw new Y(`Missing data type definition`);let t=(u.value?.schemas?.channelAddFormSchema||we).safeParse(D);if(!t.success)throw v.error(`Schema validation failed with:`,t.error),new Y(`Failed to validate create channel model.`);y.value=G.WORKING;let r=g(`devicesModule.messages.channels.notCreated`,{device:D.name});try{await d.add({id:n,deviceId:e,draft:!1,data:{...t.data,type:s}})}catch(e){throw y.value=G.ERROR,b=window.setTimeout(P,2e3),e instanceof J&&e.code===422?_.error(e.message):_.error(r),e}return y.value=G.OK,b=window.setTimeout(P,2e3),_.success(g(`devicesModule.messages.channels.created`,{device:D.name})),`added`},P=()=>{window.clearTimeout(b),y.value=G.NONE};return m().catch(()=>{}),o(D,()=>{M.value=!(0,K.isEqual)(e(D),O)}),o(()=>T.value,e=>{e.length&&e[0]&&(D.category=e[0].value,O.category=e[0].value)},{immediate:!0}),{categoriesOptions:T,devicesOptions:E,model:D,formEl:A,formChanged:M,submit:N,clear:P,formResult:y,loadingDevices:h}},ke=({channel:n,messages:s})=>{let c=F(),{element:l}=Ee({type:n.type}),u=c.getStore(W),{devices:d,fetchDevices:p,areLoading:m}=De(),{t:h}=i(),g=k(),_=f(),v=r(G.NONE),y,b=t(()=>d.value.find(e=>e.id===n.device)??null),x=t(()=>b.value?u.findForDevice(b.value.id).filter(e=>e.id!==n.id).map(e=>e.category):[]),S=t(()=>b.value?Z[b.value.category]??null:null),C=t(()=>S.value===null?[]:Object.values(j).filter(e=>S.value?.required.includes(e)||S.value?.optional.includes(e)).filter(e=>!x.value.includes(e)||S.value?.multiple?.includes(e)).map(e=>({value:e,label:h(`devicesModule.categories.channels.${e}`)}))),T=t(()=>d.value.map(e=>({value:e.id,label:e.name}))),E=a(n),D=w(e(E)),O=r(void 0),A=r(!1),M=async()=>{let t=n.draft,r=s&&s.error?s.error:n.draft?h(`devicesModule.messages.channels.notCreated`,{channel:n.name}):h(`devicesModule.messages.channels.notEdited`,{channel:n.name});if(O.value.clearValidate(),!await O.value.validate())throw new Y(`Form not valid`);let i=(l.value?.schemas?.channelEditFormSchema||Te).safeParse(E);if(!i.success)throw _.error(`Schema validation failed with:`,i.error),new Y(`Failed to validate edit channel model.`);v.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 v.value=G.ERROR,y=window.setTimeout(N,2e3),e instanceof J&&e.code===422?g.error(e.message):g.error(r),e}return v.value=G.OK,y=window.setTimeout(N,2e3),t?(g.success(h(s&&s.success?s.success:`devicesModule.messages.channels.created`,{channel:n.name})),`added`):(g.success(h(s&&s.success?s.success:`devicesModule.messages.channels.edited`,{channel:n.name})),A.value=!1,D=w(e(E)),`saved`)},N=()=>{window.clearTimeout(y),v.value=G.NONE};return p().catch(()=>{}),o(E,()=>{A.value=!(0,K.isEqual)(e(E),D)}),{categoriesOptions:C,devicesOptions:T,model:E,formEl:O,formChanged:A,submit:M,clear:N,formResult:v,loadingDevices:m}},Ae=({channelId:e,id:n})=>{let r=F().getStore(H),{data:i,semaphore:a}=N(r);return{property:t(()=>n===null?null:i.value[n]??null),isLoading:t(()=>a.value.fetching.item.includes(n)?!0:(i.value[n]??null)===null?a.value.fetching.items.includes(e)||a.value.fetching.items.includes(`all`):!1),fetchProperty:async()=>{(i.value[n]??null)?.draft||await r.get({id:n,channelId:e})}}},je=({channelId:e})=>{let n=F().getStore(H),{firstLoad:r,semaphore:i}=N(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=F().getStore(H),{firstLoad:a,semaphore:s}=N(i),{filters:c,sort:l,pagination:u,reset:d}=M({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),m=r(u.value.page||1),h=r(l.value.length>0?l.value[0]?.by:void 0),g=r(l.value.length>0?l.value[0]?.dir??null:null),_=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[h.value]??``],[g.value===`asc`?`asc`:`desc`])),v=t(()=>{let e=(m.value-1)*p.value,t=e+p.value;return _.value.slice(e,t)}),y=async()=>{await i.fetch({channelId:e})},b=t(()=>s.value.fetching.items.includes(e)?!0:!a.value.includes(e)&&s.value.fetching.items.includes(e)),x=t(()=>a.value.includes(e)),S=t(()=>i.findAll().filter(t=>!e||t.channel===e).filter(e=>!e.draft).length);return o(()=>u.value,e=>{m.value=e.page??1,p.value=e.size??10},{deep:!0}),o(()=>m.value,e=>{u.value.page=e}),o(()=>p.value,e=>{u.value.size=e}),o(()=>g.value,e=>{h.value===void 0||e===null?l.value=[]:l.value=[{by:h.value,dir:e}]}),o(()=>h.value,e=>{e===void 0?l.value=[]:l.value=[{by:e,dir:g.value}]}),{properties:_,propertiesPaginated:v,totalRows:S,areLoading:b,loaded:x,fetchProperties:y,filters:c,filtersActive:f,paginateSize:p,paginatePage:m,sortBy:h,sortDir:g,resetFilter:d}},Pe=()=>{let{t:e}=i(),t=k(),n=F().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`);C.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=F().getStore(H);return{icon:t(()=>{switch(n.findById(e)?.category){default:return`mdi:tune`}})}},Ie=v({id:I().uuid().optional(),type:I().trim().nonempty(),channel:I().uuid().optional(),category:A(b).default(b.generic),identifier:I().trim().nonempty().nullable().optional(),name:I().trim().nonempty().nullable(),permissions:O(A(D)),dataType:A(m),format:O(g([I(),g([y(),h()])])).nullable(),invalid:g([I(),y(),P(),h()]),step:g([I(),y()]).transform(e=>e===``?null:Number(e)).nullable(),enterValue:P().default(!1),value:g([I(),y(),P(),h()]).optional(),enumValues:O(I()),minValue:g([I(),y()]).transform(e=>e===``?void 0:Number(e)).optional(),maxValue:g([I(),y()]).transform(e=>e===``?void 0:Number(e)).optional()}),Le=v({id:I().uuid(),type:I().trim().nonempty(),channel:I().uuid(),category:A(b).default(b.generic),identifier:I().trim().nonempty().nullable().optional(),name:I().trim().nonempty().nullable().optional(),permissions:O(A(D)),dataType:A(m),format:O(g([I(),g([y(),h()])])).nullable(),invalid:g([I(),y(),P(),h()]),step:g([I(),y()]).transform(e=>e===``?null:Number(e)).nullable(),enterValue:P().default(!1),value:g([I(),y(),P(),h()]).optional(),enumValues:O(I()),minValue:g([I(),y()]).transform(e=>e===``?void 0:Number(e)).optional(),maxValue:g([I(),y()]).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=F(),{element:u}=Re({type:s}),d=l.getStore(H),{channels:p,fetchChannels:h,areLoading:g}=le(),{t:_}=i(),v=k(),y=f(),x=r(G.NONE),S,C=t(()=>P.channel?p.value.find(e=>e.id===P.channel)??null:null),T=t(()=>C.value?d.findForChannel(C.value.id).map(e=>e.category):[]),E=t(()=>C.value?xe[C.value.category]??null:null),O=t(()=>E.value===null?[]:Object.values(b).filter(e=>E.value?.required.includes(e)||E.value?.optional.includes(e)).filter(e=>!T.value.includes(e)).map(e=>({value:e,label:_(`devicesModule.categories.channelsProperties.${e}`)}))),A=t(()=>p.value.map(e=>({value:e.id,label:e.name}))),M=Object.values(D).map(e=>({value:e,label:_(`devicesModule.permissions.${e}`)})),N=Object.values(m).map(e=>({value:e,label:_(`devicesModule.dataTypes.${e}`)})),P=a({...z(u.value?.schemas?.channelPropertyAddFormSchema||Ie),id:n,type:s,channel:c,category:b.generic,name:``,permissions:[],dataType:m.unknown,format:null,invalid:null,step:null,enumValues:[],minValue:void 0,maxValue:void 0,enterValue:!1,value:void 0}),I=w(e(P)),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??P.channel;if(!e)throw new Y(`Missing channel identifier`);if(P.name===``&&(P.name=null),!P.category)throw new Y(`Missing data type definition`);P.dataType===m.enum?P.format=P.enumValues:[m.char,m.uchar,m.short,m.ushort,m.int,m.uint,m.float].includes(P.dataType)&&(P.format=[typeof P.minValue==`string`&&P.minValue!==``?Number(P.minValue):typeof P.minValue==`number`?P.minValue:null,typeof P.maxValue==`string`&&P.maxValue!==``?Number(P.maxValue):typeof P.maxValue==`number`?P.maxValue:null]),P.enterValue||delete P.value;let t=(u.value?.schemas?.channelPropertyAddFormSchema||Ie).safeParse(P);if(!t.success)throw y.error(`Schema validation failed with:`,t.error),new Y(`Failed to validate create channel property model.`);x.value=G.WORKING;let r=_(`devicesModule.messages.channelsProperties.notCreated`,{device:P.name});try{await d.add({id:n,channelId:e,draft:!1,data:{...t.data,type:s}})}catch(e){throw x.value=G.ERROR,S=window.setTimeout(V,2e3),e instanceof J&&e.code===422?v.error(e.message):v.error(r),e}return x.value=G.OK,S=window.setTimeout(V,2e3),v.success(_(`devicesModule.messages.channelsProperties.created`,{device:P.name})),`added`},V=()=>{window.clearTimeout(S),x.value=G.NONE};return h().catch(()=>{}),o(P,()=>{R.value=!(0,K.isEqual)(e(P),I)}),o(()=>P.category,t=>{let n=Se(C.value?.category??j.generic,t);n&&(I.permissions=n.permissions,I.dataType=n.data_type,P.permissions=n.permissions,P.dataType=n.data_type,n.invalid!==void 0&&(I.invalid=n.invalid,P.invalid=n.invalid),n.step!==void 0&&(I.step=n.step,P.step=n.step),I.dataType===m.enum?(I.enumValues=n.format??[],I.minValue=void 0,I.maxValue=void 0,P.enumValues=n.format??[],P.minValue=void 0,P.maxValue=void 0):[m.char,m.uchar,m.short,m.ushort,m.int,m.uint,m.float].includes(P.dataType)?(I.enumValues=[],I.minValue=n.format?.[0],I.maxValue=n.format?.[1],P.enumValues=[],P.minValue=n.format?.[0],P.maxValue=n.format?.[1]):(I.enumValues=[],I.minValue=void 0,I.maxValue=void 0,P.enumValues=[],P.minValue=void 0,P.maxValue=void 0),R.value=!(0,K.isEqual)(e(P),I))},{immediate:!0}),o(()=>O.value,e=>{e.length&&e[0]&&(P.category=e[0].value,I.category=e[0].value)},{immediate:!0}),{categoriesOptions:O,channelsOptions:A,permissionsOptions:M,dataTypesOptions:N,model:P,formEl:L,formChanged:R,submit:B,clear:V,formResult:x,loadingChannels:g}},Be=({property:n,messages:s})=>{let c=F(),{element:l}=Re({type:n.type}),u=c.getStore(H),{channels:d,fetchChannels:p,areLoading:h}=le(),{t:g}=i(),_=k(),v=f(),y=r(G.NONE),x,S=[],C,T;n.dataType===m.enum?S=n.format?n.format.map(e=>e?.toString()||``):[]:[m.char,m.uchar,m.short,m.ushort,m.int,m.uint,m.float].includes(n.dataType)&&Array.isArray(n.format)&&n.format.length===2&&(C=n.format[0],T=n.format[1]);let E=t(()=>d.value.find(e=>e.id===n.channel)??null),O=t(()=>E.value?u.findForChannel(E.value.id).filter(e=>e.id!==n.id).map(e=>e.category):[]),A=t(()=>E.value?xe[E.value.category]??null:null),j=t(()=>A.value===null?[]:Object.values(b).filter(e=>A.value?.required.includes(e)||A.value?.optional.includes(e)).filter(e=>!O.value.includes(e)).map(e=>({value:e,label:g(`devicesModule.categories.channelsProperties.${e}`)}))),M=t(()=>d.value.map(e=>({value:e.id,label:e.name}))),N=Object.values(D).map(e=>({value:e,label:g(`devicesModule.permissions.${e}`)})),P=Object.values(m).map(e=>({value:e,label:g(`devicesModule.dataTypes.${e}`)})),I=a({...n,format:e(n.format),value:n.value?.value??null,enumValues:S,minValue:C,maxValue:T,enterValue:!1}),L=w(e(I)),R=r(void 0),z=r(!1),B=async()=>{let t=n.draft,r=s&&s.error?s.error:n.draft?g(`devicesModule.messages.channelsProperties.notCreated`,{property:n.name??g(`devicesModule.categories.channelsProperties.${n.category}`)}):g(`devicesModule.messages.channelsProperties.notEdited`,{property:n.name??g(`devicesModule.categories.channelsProperties.${n.category}`)});if(R.value.clearValidate(),!await R.value.validate())throw new Y(`Form not valid`);I.name===``&&(I.name=null),n.dataType===m.enum?I.format=I.enumValues:[m.char,m.uchar,m.short,m.ushort,m.int,m.uint,m.float].includes(n.dataType)&&(I.format=[I.minValue??null,I.maxValue??null]),I.enterValue||delete I.value;let i=(l.value?.schemas?.channelPropertyEditFormSchema||Le).safeParse(I);if(!i.success)throw v.error(`Schema validation failed with:`,i.error),new Y(`Failed to validate edit channel property model.`);y.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 y.value=G.ERROR,x=window.setTimeout(V,2e3),e instanceof J&&e.code===422?_.error(e.message):_.error(r),e}return y.value=G.OK,x=window.setTimeout(V,2e3),t?(_.success(g(s&&s.success?s.success:`devicesModule.messages.channelsProperties.created`,{property:n.name??g(`devicesModule.categories.channelsProperties.${n.category}`)})),`added`):(_.success(g(s&&s.success?s.success:`devicesModule.messages.channelsProperties.edited`,{property:n.name??g(`devicesModule.categories.channelsProperties.${n.category}`)})),z.value=!1,L=w(e(I)),`saved`)},V=()=>{window.clearTimeout(x),y.value=G.NONE};return p().catch(()=>{}),o(I,()=>{z.value=!(0,K.isEqual)(e(I),L)}),{categoriesOptions:j,channelsOptions:M,permissionsOptions:N,dataTypesOptions:P,model:I,formEl:R,formChanged:z,submit:B,clear:V,formResult:y,loadingChannels:h}},Ve=({id:e})=>{let n=F().getStore(V),{data:r,semaphore:i}=N(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=F(),n=e.getStore(V),i=e.getStore(U),{firstLoad:a,semaphore:s}=N(n),{filters:c,sort:l,pagination:d,reset:f}=M({key:`${ne}:devices:list`,filters:{schema:ue,defaults:$},sort:{defaults:[He]},pagination:{defaults:{page:1,size:10}},syncQuery:!0,version:1}),p=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),m=r(d.value.size||10),h=r(d.value.page||1),g=r(l.value.length>0?l.value[0]?.by:void 0),_=r(l.value.length>0?l.value[0]?.dir??null:null),v=r(!1),y=e=>i.findById(e)?.isValid??null,b=t(()=>B(n.findAll().filter(e=>!e.draft&&(v.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??u.unknown))&&(c.value.state===`all`||c.value.state===`online`&&[u.ready,u.connected,u.running].includes(e.status.status)||c.value.state===`offline`&&[u.disconnected,u.stopped,u.lost,u.unknown].includes(e.status.status))&&(c.value.validation===`all`||c.value.validation===`valid`&&y(e.id)===!0||c.value.validation===`invalid`&&y(e.id)===!1)),[e=>g.value===`state`?e.status?.status??u.unknown:e[g.value]??``],[_.value===`asc`?`asc`:`desc`])),x=t(()=>{let e=(h.value-1)*m.value,t=e+m.value;return b.value.slice(e,t)}),C=async()=>{await n.fetch({hidden:v.value?S.all:S.false})},w=t(()=>s.value.fetching.items||!a.value),T=t(()=>a.value),E=t(()=>n.findAll().filter(e=>!e.draft&&(v.value||!e.hidden)).length);return o(()=>d.value,e=>{h.value=e.page??1,m.value=e.size??10},{deep:!0}),o(()=>h.value,e=>{d.value.page=e}),o(()=>m.value,e=>{d.value.size=e}),o(()=>_.value,e=>{g.value===void 0||e===null?l.value=[]:l.value=[{by:g.value,dir:e}]}),o(()=>g.value,e=>{e===void 0?l.value=[]:l.value=[{by:e,dir:_.value}]}),{devices:b,devicesPaginated:x,totalRows:E,areLoading:w,loaded:T,fetchDevices:C,filters:c,filtersActive:p,paginateSize:m,paginatePage:h,sortBy:g,sortDir:_,resetFilter:f,showHidden:v}},We=()=>{let{t:e}=i(),t=k(),n=F().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`);C.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 C.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 C.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 C.confirm(e(`devicesModule.texts.devices.confirmBulkDisable`,{count:r.length}),e(`devicesModule.headings.devices.bulkDisable`),{confirmButtonText:e(`devicesModule.buttons.yes.title`),cancelButtonText:e(`devicesModule.buttons.no.title`),type:`warning`})}catch{t.info(e(`devicesModule.messages.devices.bulkDisableCanceled`));return}try{let i=await n.bulkSetEnabled({ids:r.map(e=>e.id),enabled:!1});i.succeeded.length>0&&t.success(e(`devicesModule.messages.devices.bulkDisabled`,{count:i.succeeded.length})),i.failed.length>0&&t.error(e(`devicesModule.messages.devices.bulkDisableFailed`,{count:i.failed.length}))}catch{t.error(e(`devicesModule.messages.devices.bulkDisableFailed`,{count:r.length}))}}}}},Ge=({id:e})=>{let n=F().getStore(V);return{icon:t(()=>{switch(n.findById(e)?.category){default:return`mdi:devices`}})}},Ke=({id:e})=>{let n=F(),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=v({id:I().uuid().optional(),type:I().trim().nonempty(),category:A(E).default(E.generic),identifier:I().trim().nonempty().nullable().optional(),name:I().trim().nonempty(),description:I().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:P().default(!0).optional()}),Je=v({id:I().uuid(),type:I().trim().nonempty(),category:A(E).default(E.generic),identifier:I().trim().nonempty().nullable().optional(),name:I().trim().nonempty().optional(),description:I().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:P().optional(),roomId:I().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=F(),{element:c}=Ye({type:n}),l=s.getStore(V),{t:u}=i(),d=k(),p=f(),m=r(G.NONE),h,g=Object.values(E).map(e=>({value:e,label:u(`devicesModule.categories.devices.${e}`)})),_=a({...z(c.value?.schemas?.deviceAddFormSchema||qe),id:t,type:n,category:E.generic,name:``,description:``}),v=w(e(_)),y=r(void 0),b=r(!1),x=async()=>{if(y.value.clearValidate(),!await y.value.validate())throw new Y(`Form not valid`);let e=(c.value?.schemas?.deviceAddFormSchema||qe).safeParse(_);if(!e.success)throw p.error(`Schema validation failed with:`,e.error),new Y(`Failed to validate create device model.`);m.value=G.WORKING;let r=u(`devicesModule.messages.devices.notCreated`,{device:_.name});try{await l.add({id:t,draft:!1,data:{...e.data,type:n}})}catch(e){throw m.value=G.ERROR,h=window.setTimeout(S,2e3),e instanceof J&&e.code===422?d.error(e.message):d.error(r),e}return m.value=G.OK,h=window.setTimeout(S,2e3),d.success(u(`devicesModule.messages.devices.created`,{device:_.name})),`added`},S=()=>{window.clearTimeout(h),m.value=G.NONE};return o(_,()=>{b.value=!(0,K.isEqual)(e(_),v)}),{categoriesOptions:g,model:_,formEl:y,formChanged:b,submit:x,clear:S,formResult:m}},Ze=({device:t,messages:n})=>{let s=F(),{element:c}=Ye({type:t.type}),l=s.getStore(V),{t:u}=i(),d=k(),p=f(),m=r(G.NONE),h,g=Object.values(E).map(e=>({value:e,label:u(`devicesModule.categories.devices.${e}`)})),_=a(t),v=w(e(_)),y=r(void 0),b=r(!1),x=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(y.value.clearValidate(),!await y.value.validate())throw new Y(`Form not valid`);let a=(c.value?.schemas?.deviceEditFormSchema||Je).safeParse(_);if(!a.success)throw p.error(`Schema validation failed with:`,a.error),new Y(`Failed to validate edit device model.`);let o={...a.data};(0,K.isEqual)(o.roomId,v.roomId)&&delete o.roomId,m.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 m.value=G.ERROR,h=window.setTimeout(S,2e3),e instanceof J&&e.code===422?d.error(e.message):d.error(i),e}return m.value=G.OK,h=window.setTimeout(S,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})),b.value=!1,v=w(e(_)),`saved`)},S=()=>{window.clearTimeout(h),m.value=G.NONE};return o(_,()=>{b.value=!(0,K.isEqual)(e(_),v)}),{categoriesOptions:g,model:_,formEl:y,formChanged:b,submit:x,clear:S,formResult:m}},Qe=()=>{let e=F().getStore(U),{data:n,semaphore:r,firstLoad:i}=N(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=F().getStore(U),{semaphore:r}=N(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=F(),a=i.getStore(V),s=i.getStore(W),c=i.getStore(H),{data:l,semaphore:u}=N(a),{data:d,semaphore:f,firstLoad:m}=N(s),{semaphore:h,firstLoad:g}=N(c),{sendCommand:_}=p(),v={},y={},b={},x=r({}),S=r({}),C=t(()=>e===null?null:l.value[e]??null),w=t(()=>Object.values(d.value).filter(t=>t.device===e&&t.category!==j.device_information)),T=t(()=>w.value.filter(e=>c.findForChannel(e.id).some(e=>e.permissions.includes(D.rw)||e.permissions.includes(D.wo)))),E=t(()=>T.value.length>0),O=e=>c.findForChannel(e),k=e=>e.permissions.includes(D.rw)||e.permissions.includes(D.wo),A=e=>{let t=x.value[e];return t===void 0?c.findById(e)?.value?.value??null:t},M=e=>S.value[e]??!1,P=(e,t)=>{if(t!==void 0){let n=x.value[e];if(n!==t&&String(n)!==String(t))return}delete x.value[e],b[e]&&(clearTimeout(b[e]),delete b[e])},I=(e,t)=>{b[e]&&clearTimeout(b[e]),b[e]=setTimeout(()=>{let n=x.value[e];(n===t||String(n)===String(t))&&delete x.value[e],delete b[e]},tt)},L=async(t,n,r)=>c.findById(n)?(v[n]&&(clearTimeout(v[n]),delete v[n],y[n]&&(y[n](!1),delete y[n])),x.value[n]=r,new Promise(i=>{y[n]=i;let a=setTimeout(async()=>{delete y[n],S.value[n]=!0;try{await _(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)):(P(n,r),i(!1))}catch{P(n,r),i(!1)}finally{S.value[n]=!1,v[n]===a&&delete v[n]}},et);v[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 w.value)if(h.value.fetching.items.includes(e.id))return!0;return!1}),U=t(()=>m.value.includes(e)),G=t(()=>{if(!U.value)return!1;for(let e of w.value)if(!g.value.includes(e.id))return!1;return!0});return o(()=>{let e={};for(let t of Object.keys(x.value)){let n=c.findById(t);n&&(e[t]=n.value?.value??null)}return e},e=>{for(let[t,n]of Object.entries(x.value)){let r=e[t];(r===n||String(r)===String(n))&&P(t)}},{deep:!0}),n(()=>{for(let e of Object.keys(v))clearTimeout(v[e]),delete v[e],y[e]&&(y[e](!1),delete y[e]);for(let e of Object.keys(b))clearTimeout(b[e]),delete b[e]}),{device:C,channels:w,controllableChannels:T,hasControllableProperties:E,isLoading:ee,areChannelsLoaded:U,arePropertiesLoaded:G,fetchDevice:R,fetchChannels:z,fetchProperties:B,getPropertiesForChannel:O,isPropertyWritable:k,getPropertyValue:A,isPropertyLoading:M,setPropertyValue:L}},rt=({deviceId:e})=>{let n=F().getStore(ee),{firstLoad:r,semaphore:i}=N(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=T(),i=f(),a=r({}),u=r(!1),p=r(!1),m=r(!1),h=r(void 0),g=r(!1),_=null,v=0,y=t(()=>Object.values(a.value).sort((e,t)=>new Date(t.ts).getTime()-new Date(e.ts).getTime())),b=t(()=>{let e=[d.warn,d.error,d.fatal,d.fail];return y.value.filter(t=>e.includes(t.type))}),x=t(()=>b.value.length),S=t(()=>x.value>0),C=async()=>{let t=s(e.deviceId);_=t,v++;let r=v;p.value=!0;try{let{data:e,error:o}=await n.client.GET(`/${c}/${ie}/logs`,{params:{query:{resource:t,limit:50}}});if(_!==t||v!==r)return;if(e!==void 0){let t=Object.fromEntries(e.data.map(e=>{let t=ae(e);return[t.id,t]}));a.value=t,m.value=!0,u.value=e.metadata.has_more,h.value=e.metadata.next_cursor}else o&&i.error(`Failed to fetch device logs:`,o)}catch(e){_===t&&v===r&&i.error(`Error fetching device logs:`,e)}finally{_===t&&v===r&&(p.value=!1)}},w=async()=>{if(p.value||!u.value||!h.value)return;let t=s(e.deviceId),r=h.value,o=v;p.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(_!==t||v!==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,h.value=e.metadata.next_cursor}else s&&i.error(`Failed to load more device logs:`,s)}catch(e){_===t&&v===o&&i.error(`Error loading more device logs:`,e)}finally{_===t&&v===o&&(p.value=!1)}},E=async()=>{a.value={},h.value=void 0,u.value=!1,m.value=!1,await C()},D=null;return o(()=>g.value,e=>{D&&=(clearInterval(D),null),e&&(D=setInterval(()=>{p.value||C()},3e3))}),l(()=>{D&&=(clearInterval(D),null)}),o(()=>s(e.deviceId),()=>{E()}),{logs:y,alertLogs:b,alertCount:x,hasAlerts:S,hasMore:u,isLoading:p,loaded:m,live:g,fetchLogs:C,loadMoreLogs:w,refreshLogs:E}};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};
|