@acorex/modules 19.3.3-next.1 → 19.3.5
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/auth/lib/pages/account/user-profile-card/user-profile-card.component.d.ts +1 -1
- package/auth/lib/pages/account/user-sessions/user-sessions.component.d.ts +1 -1
- package/common/lib/features/global-search/search-popup.component.d.ts +1 -1
- package/conversation/lib/entities/comments/pages/comment-list-view.component.d.ts +4 -3
- package/dashboard-management/index.d.ts +3 -1
- package/dashboard-management/lib/entities/dashboard/dashboard.types.d.ts +4 -0
- package/dashboard-management/lib/features/home-dashboard/dashboard-home/home-dashboard.d.ts +6 -25
- package/dashboard-management/lib/features/home-dashboard/dashboard-home/home-dashboard.store.d.ts +1 -26
- package/dashboard-management/lib/features/home-dashboard/dashboard-home/home-dashboard.type.d.ts +8 -0
- package/dashboard-management/lib/features/home-dashboard/dashboard-popups/add-dashboard-popup.d.ts +10 -2
- package/dashboard-management/lib/features/home-dashboard/dashboard-popups/dashboard-popup.service.d.ts +1 -1
- package/dashboard-management/lib/features/home-dashboard/index.d.ts +1 -0
- package/dashboard-management/lib/features/home-dashboard/widget-wrapper/dashboard-widget-wrapper.d.ts +1 -1
- package/dashboard-management/lib/features/shared/widgets/sticky-note/sticky-note-widget.component.d.ts +1 -1
- package/document-management/lib/features/document-explorer/components/create-folder-dialog/create-folder-dialog.component.d.ts +1 -1
- package/document-management/lib/features/document-explorer/views/attachement-widget/attachment-widget.component.d.ts +126 -0
- package/document-management/lib/features/file-type/widgets/file-type-extension/file-type-extension-edit.component.d.ts +1 -1
- package/document-management/lib/features/shared/components/choose-document-type/choose-document-type.component.d.ts +1 -1
- package/document-management/lib/features/shared/document-manager.types.d.ts +1 -3
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.d.ts +1 -0
- package/fesm2022/{acorex-modules-application-management-module-designer.component-ClxaJcjD.mjs → acorex-modules-application-management-module-designer.component-cD24pUfN.mjs} +7 -7
- package/fesm2022/{acorex-modules-application-management-module-designer.component-ClxaJcjD.mjs.map → acorex-modules-application-management-module-designer.component-cD24pUfN.mjs.map} +1 -1
- package/fesm2022/acorex-modules-application-management.mjs +41 -41
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-DJZcD1j3.mjs → acorex-modules-auth-acorex-modules-auth-VeeGJcyl.mjs} +43 -43
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-VeeGJcyl.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-DlYxDGQr.mjs → acorex-modules-auth-app-chooser.component-IhAQfHJU.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-app-chooser.component-DlYxDGQr.mjs.map → acorex-modules-auth-app-chooser.component-IhAQfHJU.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-blank.layout-DIttom0K.mjs +18 -0
- package/fesm2022/{acorex-modules-auth-blank.layout-B1a0710P.mjs.map → acorex-modules-auth-blank.layout-DIttom0K.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-D-XgzifC.mjs → acorex-modules-auth-login.module-B8qqaCq8.mjs} +8 -8
- package/fesm2022/{acorex-modules-auth-login.module-D-XgzifC.mjs.map → acorex-modules-auth-login.module-B8qqaCq8.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-ZaCb3CED.mjs → acorex-modules-auth-master.layout-egA9357P.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-master.layout-ZaCb3CED.mjs.map → acorex-modules-auth-master.layout-egA9357P.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-password.component-BMWDHmu6.mjs +59 -0
- package/fesm2022/{acorex-modules-auth-password.component-CLTZoufP.mjs.map → acorex-modules-auth-password.component-BMWDHmu6.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-C-xRIhrM.mjs → acorex-modules-auth-password.component-BimdcHXP.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-password.component-C-xRIhrM.mjs.map → acorex-modules-auth-password.component-BimdcHXP.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-4T5jq7su.mjs → acorex-modules-auth-routes-BYT58dkA.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-4T5jq7su.mjs.map → acorex-modules-auth-routes-BYT58dkA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-Ow7QtAWc.mjs → acorex-modules-auth-tenant-chooser.component-S07bx8PP.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-Ow7QtAWc.mjs.map → acorex-modules-auth-tenant-chooser.component-S07bx8PP.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-two-factor-code.component-CK9J4jMb.mjs +40 -0
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-PqOn37Gg.mjs.map → acorex-modules-auth-two-factor-code.component-CK9J4jMb.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-D72KIpvA.mjs → acorex-modules-auth-two-factor.module-B_g4P4is.mjs} +7 -7
- package/fesm2022/{acorex-modules-auth-two-factor.module-D72KIpvA.mjs.map → acorex-modules-auth-two-factor.module-B_g4P4is.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-user-sessions.component-Btnu_Oeq.mjs → acorex-modules-auth-user-sessions.component-DvYAh9cg.mjs} +6 -6
- package/fesm2022/acorex-modules-auth-user-sessions.component-DvYAh9cg.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/{acorex-modules-common-search-popup.component-C3XUb6pF.mjs → acorex-modules-common-search-popup.component-D1Ddwc_U.mjs} +6 -6
- package/fesm2022/acorex-modules-common-search-popup.component-D1Ddwc_U.mjs.map +1 -0
- package/fesm2022/acorex-modules-common.mjs +19 -19
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +45 -45
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs +4994 -1
- package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-hMEt0yZI.mjs → acorex-modules-document-management-acorex-modules-document-management-k2QMxYk9.mjs} +243 -222
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-k2QMxYk9.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-attachment-widget.component-BHCuKbmu.mjs +32 -0
- package/fesm2022/acorex-modules-document-management-attachment-widget.component-BHCuKbmu.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-D_FfCqY8.mjs → acorex-modules-document-management-create-folder-dialog.component-CNvlm2Va.mjs} +7 -7
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-CNvlm2Va.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-details-view.component-Oxtnvogq.mjs → acorex-modules-document-management-details-view.component-DE84Itc_.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-details-view.component-Oxtnvogq.mjs.map → acorex-modules-document-management-details-view.component-DE84Itc_.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-BqZyAAAw.mjs → acorex-modules-document-management-drive-choose.component-CKMI_oKM.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-BqZyAAAw.mjs.map → acorex-modules-document-management-drive-choose.component-CKMI_oKM.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-9APgNKIu.mjs → acorex-modules-document-management-large-icons-view.component-BPY3z02r.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-9APgNKIu.mjs.map → acorex-modules-document-management-large-icons-view.component-BPY3z02r.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-Byt-Hl3M.mjs → acorex-modules-document-management-large-tiles-view.component-eymKR4xY.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-Byt-Hl3M.mjs.map → acorex-modules-document-management-large-tiles-view.component-eymKR4xY.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-1iPUnhr1.mjs → acorex-modules-document-management-link-dialog.component-DKbO2nX8.mjs} +4 -4
- package/fesm2022/{acorex-modules-document-management-link-dialog.component-1iPUnhr1.mjs.map → acorex-modules-document-management-link-dialog.component-DKbO2nX8.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-list-view.component-BeuXrgYL.mjs → acorex-modules-document-management-list-view.component-CGSls2hG.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-list-view.component-BeuXrgYL.mjs.map → acorex-modules-document-management-list-view.component-CGSls2hG.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management-lock-dialog.component-By36woOc.mjs +52 -0
- package/fesm2022/{acorex-modules-document-management-lock-dialog.component-BwKdUUcf.mjs.map → acorex-modules-document-management-lock-dialog.component-By36woOc.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-9KjrOZc6.mjs → acorex-modules-document-management-permission-definition.provider-DROTONyx.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-9KjrOZc6.mjs.map → acorex-modules-document-management-permission-definition.provider-DROTONyx.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-BHayM-mO.mjs → acorex-modules-document-management-rename-node-dialog.component-BPU5NKy8.mjs} +7 -7
- package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-BPU5NKy8.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-BiNdRpqs.mjs → acorex-modules-document-management-share-dialog.component-Diof2rpe.mjs} +4 -4
- package/fesm2022/{acorex-modules-document-management-share-dialog.component-BiNdRpqs.mjs.map → acorex-modules-document-management-share-dialog.component-Diof2rpe.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management-share-email-dialog.component-Bj6G6aqt.mjs +55 -0
- package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-BvR5OuCV.mjs.map → acorex-modules-document-management-share-email-dialog.component-Bj6G6aqt.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-CNVZaLv2.mjs → acorex-modules-document-management-small-icons-view.component-CYjLGCUJ.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-CNVZaLv2.mjs.map → acorex-modules-document-management-small-icons-view.component-CYjLGCUJ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-BDv_sH9f.mjs → acorex-modules-document-management-small-tiles-view.component-BnXo0uWh.mjs} +5 -5
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-BDv_sH9f.mjs.map → acorex-modules-document-management-small-tiles-view.component-BnXo0uWh.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management-unlock-dialog.component-CNjFnm2w.mjs +37 -0
- package/fesm2022/{acorex-modules-document-management-unlock-dialog.component-DkZQ84kg.mjs.map → acorex-modules-document-management-unlock-dialog.component-CNjFnm2w.mjs.map} +1 -1
- package/fesm2022/acorex-modules-document-management.mjs +1 -1
- package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-CJ2Qoott.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-Bh0D44Yv.mjs} +56 -56
- package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-CJ2Qoott.mjs.map → acorex-modules-form-template-management-acorex-modules-form-template-management-Bh0D44Yv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-category.entity-BjNsUAZq.mjs → acorex-modules-form-template-management-category.entity-CMez7XCT.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-category.entity-BjNsUAZq.mjs.map → acorex-modules-form-template-management-category.entity-CMez7XCT.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-designer.page-Bd_bZ_7p.mjs → acorex-modules-form-template-management-designer.page-BmSMzkbb.mjs} +4 -4
- package/fesm2022/{acorex-modules-form-template-management-designer.page-Bd_bZ_7p.mjs.map → acorex-modules-form-template-management-designer.page-BmSMzkbb.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CqZ8ytjA.mjs → acorex-modules-form-template-management-permission-definition.provider-D_VOBOyf.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CqZ8ytjA.mjs.map → acorex-modules-form-template-management-permission-definition.provider-D_VOBOyf.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-LrzsYkiL.mjs → acorex-modules-form-template-management-settings.provider-CzvnYncE.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-settings.provider-LrzsYkiL.mjs.map → acorex-modules-form-template-management-settings.provider-CzvnYncE.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-M-R2U9CH.mjs → acorex-modules-form-template-management-template-picker.component-CcmJfby7.mjs} +17 -13
- package/fesm2022/acorex-modules-form-template-management-template-picker.component-CcmJfby7.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-BP75i9zU.mjs → acorex-modules-form-template-management-template-widget-edit.component-CJqwkNDn.mjs} +5 -5
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-BP75i9zU.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-CJqwkNDn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template.entity-CCaHPkWq.mjs → acorex-modules-form-template-management-template.entity-CSUgPKlG.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-template.entity-CCaHPkWq.mjs.map → acorex-modules-form-template-management-template.entity-CSUgPKlG.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CUOsh6e5.mjs → acorex-modules-form-template-management-viewer-popup.component-DDFNie66.mjs} +5 -5
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CUOsh6e5.mjs.map → acorex-modules-form-template-management-viewer-popup.component-DDFNie66.mjs.map} +1 -1
- package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
- package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-DcmAnBue.mjs → acorex-modules-issue-management-acorex-modules-issue-management-ErtEMU89.mjs} +63 -66
- package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-ErtEMU89.mjs.map +1 -0
- package/fesm2022/acorex-modules-issue-management-capture-screen.component-B6k0Zn9C.mjs +28 -0
- package/fesm2022/{acorex-modules-issue-management-capture-screen.component-BMpafdHr.mjs.map → acorex-modules-issue-management-capture-screen.component-B6k0Zn9C.mjs.map} +1 -1
- package/fesm2022/acorex-modules-issue-management.mjs +1 -1
- package/fesm2022/acorex-modules-log-management.mjs +10 -10
- package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +35 -35
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-add-item.component-DE0Ek0dk.mjs → acorex-modules-organization-management-add-item.component-CittqJHu.mjs} +10 -10
- package/fesm2022/acorex-modules-organization-management-add-item.component-CittqJHu.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-RuvkSheN.mjs → acorex-modules-organization-management-org-chart-configuration.page-CaNP3qwK.mjs} +5 -5
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-RuvkSheN.mjs.map → acorex-modules-organization-management-org-chart-configuration.page-CaNP3qwK.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-2EZNvjAH.mjs → acorex-modules-organization-management-org-chart-configuration.service-CtA19B8x.mjs} +4 -4
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-2EZNvjAH.mjs.map → acorex-modules-organization-management-org-chart-configuration.service-CtA19B8x.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-C2qYJxpY.mjs → acorex-modules-organization-management-org-chart.page-1UgQCqvl.mjs} +12 -12
- package/fesm2022/acorex-modules-organization-management-org-chart.page-1UgQCqvl.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-position-category.entity-DrZ9Ott4.mjs +320 -0
- package/fesm2022/acorex-modules-organization-management-position-category.entity-DrZ9Ott4.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-position.entity-CY4TugWR.mjs +412 -0
- package/fesm2022/acorex-modules-organization-management-position.entity-CY4TugWR.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-responsibility-category.entity-CmafbyCZ.mjs +332 -0
- package/fesm2022/acorex-modules-organization-management-responsibility-category.entity-CmafbyCZ.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-position.entity-DhPT9kzv.mjs → acorex-modules-organization-management-responsibility.entity-DmLeFogS.mjs} +63 -27
- package/fesm2022/acorex-modules-organization-management-responsibility.entity-DmLeFogS.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-role.entity-C-AIIaDo.mjs → acorex-modules-organization-management-role-category.entity-Cyt1dAKR.mjs} +58 -8
- package/fesm2022/acorex-modules-organization-management-role-category.entity-Cyt1dAKR.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-role.entity-BDErzNv-.mjs +324 -0
- package/fesm2022/acorex-modules-organization-management-role.entity-BDErzNv-.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-skill-category.entity-BPgGGVT3.mjs +320 -0
- package/fesm2022/acorex-modules-organization-management-skill-category.entity-BPgGGVT3.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-skill.entity-D9XojzUV.mjs +287 -0
- package/fesm2022/acorex-modules-organization-management-skill.entity-D9XojzUV.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management.mjs +451 -106
- package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-CJZ86Oon.mjs → acorex-modules-platform-management-acorex-modules-platform-management-Bh6NW7UJ.mjs} +384 -340
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-Bh6NW7UJ.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-list-version.component-a_szjudb.mjs → acorex-modules-platform-management-list-version.component-Ctqr4YiY.mjs} +8 -8
- package/fesm2022/acorex-modules-platform-management-list-version.component-Ctqr4YiY.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-settings.provider-D_lPw5D4.mjs → acorex-modules-platform-management-settings.provider-Bz3Npk_t.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-settings.provider-D_lPw5D4.mjs.map → acorex-modules-platform-management-settings.provider-Bz3Npk_t.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/acorex-modules-project-management.mjs +43 -43
- package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-scheduler-job-management.mjs +14 -14
- package/fesm2022/acorex-modules-scheduler-job-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +36 -36
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-XDFtTqft.mjs → acorex-modules-settings-management-setting-page.component-X33xeQrg.mjs} +4 -4
- package/fesm2022/{acorex-modules-settings-management-setting-page.component-XDFtTqft.mjs.map → acorex-modules-settings-management-setting-page.component-X33xeQrg.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-B_6RIU9e.mjs → acorex-modules-settings-management-setting-view.component-DryghOjs.mjs} +4 -4
- package/fesm2022/{acorex-modules-settings-management-setting-view.component-B_6RIU9e.mjs.map → acorex-modules-settings-management-setting-view.component-DryghOjs.mjs.map} +1 -1
- package/fesm2022/acorex-modules-settings-management.mjs +6 -6
- package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-text-template-management.mjs +24 -24
- package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-training-management.mjs +45 -45
- package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
- package/issue-management/lib/features/report-issue/components/report-new-issue/report-new-issue.component.d.ts +1 -1
- package/organization-management/lib/const.d.ts +38 -2
- package/organization-management/lib/entities/index.d.ts +6 -0
- package/organization-management/lib/entities/position/position.types.d.ts +5 -0
- package/organization-management/lib/entities/position-category/index.d.ts +3 -0
- package/organization-management/lib/entities/position-category/position-category.entity.d.ts +3 -0
- package/organization-management/lib/entities/position-category/position-category.module.d.ts +6 -0
- package/organization-management/lib/entities/position-category/position-category.service.d.ts +10 -0
- package/organization-management/lib/entities/position-category/position-category.types.d.ts +7 -0
- package/organization-management/lib/entities/responsibility/index.d.ts +3 -0
- package/organization-management/lib/entities/responsibility/responsibility.entity.d.ts +3 -0
- package/organization-management/lib/entities/responsibility/responsibility.module.d.ts +7 -0
- package/organization-management/lib/entities/responsibility/responsibility.service.d.ts +10 -0
- package/organization-management/lib/entities/responsibility/responsibility.types.d.ts +6 -0
- package/organization-management/lib/entities/responsibility-category/index.d.ts +3 -0
- package/organization-management/lib/entities/responsibility-category/responsibility-category.entity.d.ts +3 -0
- package/organization-management/lib/entities/responsibility-category/responsibility-category.module.d.ts +7 -0
- package/organization-management/lib/entities/responsibility-category/responsibility-category.service.d.ts +10 -0
- package/organization-management/lib/entities/responsibility-category/responsibility-category.types.d.ts +7 -0
- package/organization-management/lib/entities/role/role.types.d.ts +3 -0
- package/organization-management/lib/entities/role-category/index.d.ts +3 -0
- package/organization-management/lib/entities/role-category/role-category.entity.d.ts +3 -0
- package/organization-management/lib/entities/role-category/role-category.module.d.ts +6 -0
- package/organization-management/lib/entities/role-category/role-category.service.d.ts +10 -0
- package/organization-management/lib/entities/role-category/role-category.types.d.ts +7 -0
- package/organization-management/lib/entities/skill/index.d.ts +3 -0
- package/organization-management/lib/entities/skill/skill.entity.d.ts +3 -0
- package/organization-management/lib/entities/skill/skill.module.d.ts +6 -0
- package/organization-management/lib/entities/skill/skill.service.d.ts +10 -0
- package/organization-management/lib/entities/skill/skill.types.d.ts +6 -0
- package/organization-management/lib/entities/skill-category/index.d.ts +3 -0
- package/organization-management/lib/entities/skill-category/skill-category.entity.d.ts +3 -0
- package/organization-management/lib/entities/skill-category/skill-category.module.d.ts +6 -0
- package/organization-management/lib/entities/skill-category/skill-category.service.d.ts +10 -0
- package/organization-management/lib/entities/skill-category/skill-category.types.d.ts +7 -0
- package/organization-management/lib/features/organization-chart/add-item/add-item.component.d.ts +1 -1
- package/organization-management/lib/features/organization-chart/org-chart-configuration.page.d.ts +38 -2
- package/organization-management/lib/features/organization-chart/org-chart.page.d.ts +38 -2
- package/organization-management/lib/organization-management.module.d.ts +17 -11
- package/package.json +2 -1
- package/platform-management/lib/entities/data-source/coulmn-def.widget.d.ts +2 -5
- package/platform-management/lib/features/app-terms/components/notify-app/notify-app.component.d.ts +1 -2
- package/platform-management/lib/features/app-terms/pages/list/list-terms.component.d.ts +0 -1
- package/platform-management/lib/features/app-version/check-version.service.d.ts +1 -3
- package/platform-management/lib/features/app-version/components/list-versions/list-version.component.d.ts +2 -1
- package/platform-management/lib/features/app-version/components/notify-app/notify-app.component.d.ts +2 -3
- package/platform-management/lib/features/app-version/workflows/change-log.workflow.d.ts +8 -0
- package/platform-management/lib/features/common/index.d.ts +1 -0
- package/platform-management/lib/features/common/regional/data-source.provider.d.ts +1 -1
- package/platform-management/lib/features/updater/index.d.ts +2 -0
- package/platform-management/lib/features/updater/updater.module.d.ts +9 -0
- package/platform-management/lib/features/updater/updater.service.d.ts +6 -0
- package/platform-management/lib/platform-management.module.d.ts +5 -4
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-DJZcD1j3.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-blank.layout-B1a0710P.mjs +0 -18
- package/fesm2022/acorex-modules-auth-password.component-CLTZoufP.mjs +0 -59
- package/fesm2022/acorex-modules-auth-two-factor-code.component-PqOn37Gg.mjs +0 -40
- package/fesm2022/acorex-modules-auth-user-sessions.component-Btnu_Oeq.mjs.map +0 -1
- package/fesm2022/acorex-modules-common-search-popup.component-C3XUb6pF.mjs.map +0 -1
- package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-DKGnh_V9.mjs +0 -3780
- package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-DKGnh_V9.mjs.map +0 -1
- package/fesm2022/acorex-modules-dashboard-management-home-dashboard-By3lZP-J.mjs +0 -861
- package/fesm2022/acorex-modules-dashboard-management-home-dashboard-By3lZP-J.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-hMEt0yZI.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-D_FfCqY8.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-lock-dialog.component-BwKdUUcf.mjs +0 -52
- package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-BHayM-mO.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-share-email-dialog.component-BvR5OuCV.mjs +0 -55
- package/fesm2022/acorex-modules-document-management-unlock-dialog.component-DkZQ84kg.mjs +0 -37
- package/fesm2022/acorex-modules-form-template-management-template-picker.component-M-R2U9CH.mjs.map +0 -1
- package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-DcmAnBue.mjs.map +0 -1
- package/fesm2022/acorex-modules-issue-management-capture-screen.component-BMpafdHr.mjs +0 -28
- package/fesm2022/acorex-modules-organization-management-add-item.component-DE0Ek0dk.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart.page-C2qYJxpY.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-position.entity-DhPT9kzv.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-role.entity-C-AIIaDo.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-CJZ86Oon.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-list-version.component-a_szjudb.mjs.map +0 -1
@@ -1,861 +0,0 @@
|
|
1
|
-
import * as i1$1 from '@angular/common';
|
2
|
-
import { CommonModule } from '@angular/common';
|
3
|
-
import * as i0 from '@angular/core';
|
4
|
-
import { input, output, contentChild, afterNextRender, signal, ChangeDetectionStrategy, Component, model, inject, Injectable, computed, effect, ViewEncapsulation } from '@angular/core';
|
5
|
-
import { Router, ActivatedRoute } from '@angular/router';
|
6
|
-
import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
|
7
|
-
import * as i1 from '@acorex/components/button';
|
8
|
-
import { AXButtonModule } from '@acorex/components/button';
|
9
|
-
import { AXButtonGroupModule } from '@acorex/components/button-group';
|
10
|
-
import * as i2 from '@acorex/components/decorators';
|
11
|
-
import { AXDecoratorModule } from '@acorex/components/decorators';
|
12
|
-
import { AXDialogService } from '@acorex/components/dialog';
|
13
|
-
import * as i3 from '@acorex/components/dropdown';
|
14
|
-
import { AXDropdownModule } from '@acorex/components/dropdown';
|
15
|
-
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
16
|
-
import * as i4 from '@acorex/components/grid-layout-builder';
|
17
|
-
import { AXGridLayoutBuilderModule } from '@acorex/components/grid-layout-builder';
|
18
|
-
import * as i6 from '@acorex/core/translation';
|
19
|
-
import { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';
|
20
|
-
import * as i3$2 from '@acorex/platform/layout/builder';
|
21
|
-
import { AXPWidgetRendererDirective, AXPWidgetGroupEnum, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
|
22
|
-
import { AXPWidgetPropertyViewerComponent, AXPWidgetPickerService, AXPDesignerService } from '@acorex/platform/layout/designer';
|
23
|
-
import { AXPBasePageComponent, AXPPageLayoutComponent, AXPBasePage } from '@acorex/platform/themes/default';
|
24
|
-
import { AXPLayoutThemeService, AXPThemeLayoutBlockComponent } from '@acorex/platform/themes/shared';
|
25
|
-
import * as i2$2 from '@acorex/components/loading';
|
26
|
-
import { AXLoadingModule } from '@acorex/components/loading';
|
27
|
-
import { AXPopupService } from '@acorex/components/popup';
|
28
|
-
import { A as AXMDashboardService, R as RootConfig } from './acorex-modules-dashboard-management-acorex-modules-dashboard-management-DKGnh_V9.mjs';
|
29
|
-
import { AXPSettingService } from '@acorex/platform/common';
|
30
|
-
import { AXPPlatformScope, AXPDataGenerator } from '@acorex/platform/core';
|
31
|
-
import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
|
32
|
-
import { AXLabelModule } from '@acorex/components/label';
|
33
|
-
import { AXBasePageComponent } from '@acorex/components/page';
|
34
|
-
import * as i3$1 from '@acorex/components/text-box';
|
35
|
-
import { AXTextBoxModule } from '@acorex/components/text-box';
|
36
|
-
import * as i2$1 from '@angular/forms';
|
37
|
-
import { FormsModule } from '@angular/forms';
|
38
|
-
|
39
|
-
class AXMDashboardWidgetWrapperComponent {
|
40
|
-
constructor() {
|
41
|
-
this.title = input(null);
|
42
|
-
this.onDelete = output();
|
43
|
-
this.onConfiguration = output();
|
44
|
-
this.onValueChanged = output();
|
45
|
-
this.onOptionsChanged = output();
|
46
|
-
this.widget = contentChild(AXPWidgetRendererDirective);
|
47
|
-
this.#init = afterNextRender(() => {
|
48
|
-
this.widget()?.onOptionsChanged.subscribe((c) => {
|
49
|
-
this.onOptionsChanged.emit(c.widget.options());
|
50
|
-
});
|
51
|
-
this.widget()?.onValueChanged.subscribe((c) => {
|
52
|
-
this.onValueChanged.emit(c.widget.getValue());
|
53
|
-
});
|
54
|
-
});
|
55
|
-
this.hasConfiguration = input(true);
|
56
|
-
this.isDropdownOpen = signal(false);
|
57
|
-
}
|
58
|
-
#init;
|
59
|
-
handleOnItemClick(event) {
|
60
|
-
switch (event.item.data) {
|
61
|
-
case 'delete':
|
62
|
-
this.onDelete.emit();
|
63
|
-
break;
|
64
|
-
case 'configuration':
|
65
|
-
this.onConfiguration.emit();
|
66
|
-
break;
|
67
|
-
default:
|
68
|
-
break;
|
69
|
-
}
|
70
|
-
this.isDropdownOpen.set(false);
|
71
|
-
}
|
72
|
-
log(event) {
|
73
|
-
console.log('Dropdown event:', event);
|
74
|
-
}
|
75
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDashboardWidgetWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
76
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXMDashboardWidgetWrapperComponent, isStandalone: true, selector: "axm-dashboard-widget-wrapper", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, hasConfiguration: { classPropertyName: "hasConfiguration", publicName: "hasConfiguration", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: "onDelete", onConfiguration: "onConfiguration", onValueChanged: "onValueChanged", onOptionsChanged: "onOptionsChanged" }, queries: [{ propertyName: "widget", first: true, predicate: AXPWidgetRendererDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<section class=\"ax-relative ax-size-full ax-flex ax-flex-col ax-group ax-overflow-hidden\">\n <!-- Action button - stays absolute -->\n <div\n class=\"ax-p-[0.6125rem] ax-absolute ax-top-0 ax-end-0 ax-z-[99] ax-invisible group-hover:ax-visible\"\n [class.!ax-visible]=\"isDropdownOpen()\"\n >\n <ax-button class=\"ax-sm\" [look]=\"'blank'\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-ellipsis-vertical\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel (onOpened)=\"isDropdownOpen.set(true)\" (onClosed)=\"isDropdownOpen.set(false)\">\n <ng-container *translate=\"let t\">\n <ax-button-item-list (onItemClick)=\"handleOnItemClick($event)\">\n @if(hasConfiguration()){\n <ax-button-item\n [data]=\"'configuration'\"\n [text]=\"(t('configuration', { scope: 'dashboard' }) | async) || 'configuration'\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-cog\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [data]=\"'delete'\"\n [text]=\"(t('delete', { scope: 'dashboard' }) | async) || 'delete'\"\n color=\"danger\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ng-container>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n\n <!-- Title section -->\n @if(title()) {\n <div class=\"ax-ps-5 ax-pe-8 ax-py-3 ax-border-b\">\n <h3 class=\"ax-text-start ax-text-lg ax-font-medium ax-truncate\">{{title()}}</h3>\n </div>\n }\n\n <!-- Content section -->\n <div class=\"ax-overflow-auto ax-h-full\">\n <ng-content></ng-content>\n </div>\n</section>\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i3.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i6.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
77
|
-
}
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDashboardWidgetWrapperComponent, decorators: [{
|
79
|
-
type: Component,
|
80
|
-
args: [{ selector: 'axm-dashboard-widget-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule, AXDropdownModule, AXTranslationModule, CommonModule], standalone: true, template: "<section class=\"ax-relative ax-size-full ax-flex ax-flex-col ax-group ax-overflow-hidden\">\n <!-- Action button - stays absolute -->\n <div\n class=\"ax-p-[0.6125rem] ax-absolute ax-top-0 ax-end-0 ax-z-[99] ax-invisible group-hover:ax-visible\"\n [class.!ax-visible]=\"isDropdownOpen()\"\n >\n <ax-button class=\"ax-sm\" [look]=\"'blank'\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-ellipsis-vertical\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel (onOpened)=\"isDropdownOpen.set(true)\" (onClosed)=\"isDropdownOpen.set(false)\">\n <ng-container *translate=\"let t\">\n <ax-button-item-list (onItemClick)=\"handleOnItemClick($event)\">\n @if(hasConfiguration()){\n <ax-button-item\n [data]=\"'configuration'\"\n [text]=\"(t('configuration', { scope: 'dashboard' }) | async) || 'configuration'\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-cog\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-divider></ax-divider>\n }\n <ax-button-item\n [data]=\"'delete'\"\n [text]=\"(t('delete', { scope: 'dashboard' }) | async) || 'delete'\"\n color=\"danger\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ng-container>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n\n <!-- Title section -->\n @if(title()) {\n <div class=\"ax-ps-5 ax-pe-8 ax-py-3 ax-border-b\">\n <h3 class=\"ax-text-start ax-text-lg ax-font-medium ax-truncate\">{{title()}}</h3>\n </div>\n }\n\n <!-- Content section -->\n <div class=\"ax-overflow-auto ax-h-full\">\n <ng-content></ng-content>\n </div>\n</section>\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
|
81
|
-
}] });
|
82
|
-
|
83
|
-
const path = 'home:dashboard:';
|
84
|
-
var AXPHomeDashboardSetting;
|
85
|
-
(function (AXPHomeDashboardSetting) {
|
86
|
-
AXPHomeDashboardSetting["CurrentDashboard"] = "home:dashboard:current-dashboard";
|
87
|
-
})(AXPHomeDashboardSetting || (AXPHomeDashboardSetting = {}));
|
88
|
-
|
89
|
-
class AXMAddDashboardPopup extends AXBasePageComponent {
|
90
|
-
constructor() {
|
91
|
-
super(...arguments);
|
92
|
-
this.title = model('');
|
93
|
-
this.description = model('');
|
94
|
-
}
|
95
|
-
get isValid() {
|
96
|
-
return !!this.title()?.trim();
|
97
|
-
}
|
98
|
-
ngOnInit() {
|
99
|
-
this.title.set(this.data?.title || '');
|
100
|
-
this.description.set(this.data?.description || '');
|
101
|
-
}
|
102
|
-
async handleClose(isCanceled = false) {
|
103
|
-
this.close({
|
104
|
-
title: this.title()?.trim(),
|
105
|
-
description: this.description()?.trim(),
|
106
|
-
isCanceled,
|
107
|
-
});
|
108
|
-
}
|
109
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMAddDashboardPopup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
110
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.3", type: AXMAddDashboardPopup, isStandalone: true, selector: "ng-component", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { title: "titleChange", description: "descriptionChange" }, usesInheritance: true, ngImport: i0, template: `
|
111
|
-
<div class="ax-card-body ax-p-4">
|
112
|
-
<div class="ax-flex ax-flex-col ax-gap-2 ax-pb-4">
|
113
|
-
<p class="ax-font-semibold">{{ 'title' | translate | async }}</p>
|
114
|
-
<ax-text-box [(ngModel)]="title" name="title" placeholder="{{ 'title' | translate | async }}"> </ax-text-box>
|
115
|
-
</div>
|
116
|
-
<div class="ax-flex ax-flex-col ax-gap-2">
|
117
|
-
<p class="ax-font-semibold">{{ 'description' | translate | async }}</p>
|
118
|
-
<ax-text-box [(ngModel)]="description" name="description" placeholder="{{ 'description' | translate | async }}">
|
119
|
-
</ax-text-box>
|
120
|
-
</div>
|
121
|
-
</div>
|
122
|
-
|
123
|
-
<ax-footer>
|
124
|
-
<ax-prefix></ax-prefix>
|
125
|
-
<ax-suffix>
|
126
|
-
<ax-button [text]="'cancel' | translate | async" look="solid" (onClick)="handleClose(true)"> </ax-button>
|
127
|
-
<ax-button
|
128
|
-
[text]="'save' | translate | async"
|
129
|
-
look="solid"
|
130
|
-
color="primary"
|
131
|
-
[disabled]="!isValid"
|
132
|
-
(onClick)="handleClose()"
|
133
|
-
>
|
134
|
-
<ax-icon class="fa-solid fa-save"></ax-icon>
|
135
|
-
</ax-button>
|
136
|
-
</ax-suffix>
|
137
|
-
</ax-footer>
|
138
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i3$1.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }] }); }
|
139
|
-
}
|
140
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMAddDashboardPopup, decorators: [{
|
141
|
-
type: Component,
|
142
|
-
args: [{
|
143
|
-
template: `
|
144
|
-
<div class="ax-card-body ax-p-4">
|
145
|
-
<div class="ax-flex ax-flex-col ax-gap-2 ax-pb-4">
|
146
|
-
<p class="ax-font-semibold">{{ 'title' | translate | async }}</p>
|
147
|
-
<ax-text-box [(ngModel)]="title" name="title" placeholder="{{ 'title' | translate | async }}"> </ax-text-box>
|
148
|
-
</div>
|
149
|
-
<div class="ax-flex ax-flex-col ax-gap-2">
|
150
|
-
<p class="ax-font-semibold">{{ 'description' | translate | async }}</p>
|
151
|
-
<ax-text-box [(ngModel)]="description" name="description" placeholder="{{ 'description' | translate | async }}">
|
152
|
-
</ax-text-box>
|
153
|
-
</div>
|
154
|
-
</div>
|
155
|
-
|
156
|
-
<ax-footer>
|
157
|
-
<ax-prefix></ax-prefix>
|
158
|
-
<ax-suffix>
|
159
|
-
<ax-button [text]="'cancel' | translate | async" look="solid" (onClick)="handleClose(true)"> </ax-button>
|
160
|
-
<ax-button
|
161
|
-
[text]="'save' | translate | async"
|
162
|
-
look="solid"
|
163
|
-
color="primary"
|
164
|
-
[disabled]="!isValid"
|
165
|
-
(onClick)="handleClose()"
|
166
|
-
>
|
167
|
-
<ax-icon class="fa-solid fa-save"></ax-icon>
|
168
|
-
</ax-button>
|
169
|
-
</ax-suffix>
|
170
|
-
</ax-footer>
|
171
|
-
`,
|
172
|
-
imports: [
|
173
|
-
FormsModule,
|
174
|
-
AXButtonModule,
|
175
|
-
AXTextBoxModule,
|
176
|
-
AXLabelModule,
|
177
|
-
AXDecoratorModule,
|
178
|
-
CommonModule,
|
179
|
-
AXTranslationModule,
|
180
|
-
],
|
181
|
-
standalone: true,
|
182
|
-
}]
|
183
|
-
}] });
|
184
|
-
|
185
|
-
class AXMConfigurationPopup extends AXBasePageComponent {
|
186
|
-
constructor() {
|
187
|
-
super(...arguments);
|
188
|
-
this.widgetData = signal(null);
|
189
|
-
}
|
190
|
-
ngOnInit() {
|
191
|
-
this.widgetData.set(this.widget);
|
192
|
-
}
|
193
|
-
async handleClose(isCanceled = false) {
|
194
|
-
this.close({
|
195
|
-
isCanceled,
|
196
|
-
widget: this.widgetData(),
|
197
|
-
});
|
198
|
-
}
|
199
|
-
handlePropertyChange(event) {
|
200
|
-
this.widgetData.set(event.values);
|
201
|
-
}
|
202
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMConfigurationPopup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
203
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXMConfigurationPopup, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
|
204
|
-
@if(widget) {
|
205
|
-
<div class="ax-px-1">
|
206
|
-
<axp-widget-property-viewer (onChanged)="handlePropertyChange($event)" [widget]="widget">
|
207
|
-
</axp-widget-property-viewer>
|
208
|
-
</div>
|
209
|
-
}
|
210
|
-
<ax-footer>
|
211
|
-
<ax-prefix></ax-prefix>
|
212
|
-
<ax-suffix>
|
213
|
-
<ax-button text="Cancel" look="solid" (onClick)="handleClose(true)"> </ax-button>
|
214
|
-
<ax-button text="Save" look="solid" color="primary" (onClick)="handleClose()">
|
215
|
-
<ax-icon class="fa-solid fa-save"></ax-icon>
|
216
|
-
</ax-button>
|
217
|
-
</ax-suffix>
|
218
|
-
</ax-footer>
|
219
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget", "mode"], outputs: ["onChanged"] }] }); }
|
220
|
-
}
|
221
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMConfigurationPopup, decorators: [{
|
222
|
-
type: Component,
|
223
|
-
args: [{
|
224
|
-
template: `
|
225
|
-
@if(widget) {
|
226
|
-
<div class="ax-px-1">
|
227
|
-
<axp-widget-property-viewer (onChanged)="handlePropertyChange($event)" [widget]="widget">
|
228
|
-
</axp-widget-property-viewer>
|
229
|
-
</div>
|
230
|
-
}
|
231
|
-
<ax-footer>
|
232
|
-
<ax-prefix></ax-prefix>
|
233
|
-
<ax-suffix>
|
234
|
-
<ax-button text="Cancel" look="solid" (onClick)="handleClose(true)"> </ax-button>
|
235
|
-
<ax-button text="Save" look="solid" color="primary" (onClick)="handleClose()">
|
236
|
-
<ax-icon class="fa-solid fa-save"></ax-icon>
|
237
|
-
</ax-button>
|
238
|
-
</ax-suffix>
|
239
|
-
</ax-footer>
|
240
|
-
`,
|
241
|
-
imports: [AXButtonModule, AXDecoratorModule, AXPWidgetPropertyViewerComponent],
|
242
|
-
}]
|
243
|
-
}] });
|
244
|
-
|
245
|
-
class AXMDashboardPopupService {
|
246
|
-
constructor() {
|
247
|
-
this.popupService = inject(AXPopupService);
|
248
|
-
}
|
249
|
-
async generateDashboardLayout(data) {
|
250
|
-
const result = await this.popupService.open(AXMAddDashboardPopup, {
|
251
|
-
header: true,
|
252
|
-
size: 'fit',
|
253
|
-
draggable: true,
|
254
|
-
hasBackdrop: true,
|
255
|
-
title: 'Dashboard Info',
|
256
|
-
data: { data },
|
257
|
-
});
|
258
|
-
if (!result.data) {
|
259
|
-
return;
|
260
|
-
}
|
261
|
-
const { isCanceled, ...rest } = result.data;
|
262
|
-
if (isCanceled) {
|
263
|
-
return;
|
264
|
-
}
|
265
|
-
return rest;
|
266
|
-
}
|
267
|
-
async handlePopupConfiguration(widget) {
|
268
|
-
const result = await this.popupService.open(AXMConfigurationPopup, {
|
269
|
-
header: true,
|
270
|
-
size: 'sm',
|
271
|
-
draggable: true,
|
272
|
-
hasBackdrop: true,
|
273
|
-
title: 'Widget Configuration',
|
274
|
-
data: { widget },
|
275
|
-
});
|
276
|
-
if (!result.data) {
|
277
|
-
return;
|
278
|
-
}
|
279
|
-
const { isCanceled, ...rest } = result.data;
|
280
|
-
if (isCanceled) {
|
281
|
-
return;
|
282
|
-
}
|
283
|
-
return rest.widget;
|
284
|
-
}
|
285
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDashboardPopupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
286
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDashboardPopupService, providedIn: 'root' }); }
|
287
|
-
}
|
288
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDashboardPopupService, decorators: [{
|
289
|
-
type: Injectable,
|
290
|
-
args: [{ providedIn: 'root' }]
|
291
|
-
}] });
|
292
|
-
|
293
|
-
// Create the SignalStore
|
294
|
-
const AXMDashboardStore = signalStore({ providedIn: 'root' },
|
295
|
-
// Initial State Definition
|
296
|
-
withState(() => {
|
297
|
-
// Define initial empty state
|
298
|
-
const state = {
|
299
|
-
dashboards: [],
|
300
|
-
currentDashboardId: null,
|
301
|
-
dashboardsOption: {
|
302
|
-
float: true,
|
303
|
-
cellHeight: 75,
|
304
|
-
gap: 5,
|
305
|
-
minRow: 9,
|
306
|
-
column: 12,
|
307
|
-
responsiveLayout: [
|
308
|
-
{ column: 12, width: 2048 },
|
309
|
-
{ column: 6, width: 768 },
|
310
|
-
{ column: 1, width: 480 },
|
311
|
-
],
|
312
|
-
},
|
313
|
-
isLoading: false,
|
314
|
-
};
|
315
|
-
return state;
|
316
|
-
}),
|
317
|
-
// Computed Properties
|
318
|
-
withComputed((state) => ({
|
319
|
-
currentDashboard: computed(() => {
|
320
|
-
return state.dashboards().find((dashboard) => dashboard.id === state.currentDashboardId()) || null;
|
321
|
-
}),
|
322
|
-
})),
|
323
|
-
// Methods for State Management
|
324
|
-
withMethods((store, dashboardPopup = inject(AXMDashboardPopupService), dialogService = inject(AXDialogService), translationService = inject(AXTranslationService), widgetPickerService = inject(AXPWidgetPickerService), dashboardService = inject(AXMDashboardService), settingService = inject(AXPSettingService)) => {
|
325
|
-
// Load dashboards from service - runs on init via effect
|
326
|
-
effect(() => {
|
327
|
-
loadDashboards();
|
328
|
-
});
|
329
|
-
// Load dashboards from service
|
330
|
-
async function loadDashboards() {
|
331
|
-
try {
|
332
|
-
patchState(store, { isLoading: true });
|
333
|
-
// Get dashboards from service using query method
|
334
|
-
const result = await dashboardService.query({ skip: 0, take: 100 });
|
335
|
-
const dashboardModels = result.items || [];
|
336
|
-
// Convert dashboard models to AXPDashboardLayout
|
337
|
-
const dashboards = dashboardModels.map(modelToDashboardLayout);
|
338
|
-
// Get current dashboard from settings
|
339
|
-
const currentDashboardId = await settingService
|
340
|
-
.scope(AXPPlatformScope.User)
|
341
|
-
.get(AXPHomeDashboardSetting.CurrentDashboard);
|
342
|
-
let newCurrentDashboardId = null;
|
343
|
-
if (dashboards.length > 0) {
|
344
|
-
// Check if currentDashboardId exists and is valid
|
345
|
-
const dashboardExists = currentDashboardId && dashboards.some((d) => d.id === currentDashboardId);
|
346
|
-
if (dashboardExists) {
|
347
|
-
newCurrentDashboardId = currentDashboardId;
|
348
|
-
}
|
349
|
-
else {
|
350
|
-
// If current dashboard is not valid or not set, use the first one
|
351
|
-
newCurrentDashboardId = dashboards[0].id;
|
352
|
-
// Save to user settings
|
353
|
-
settingService
|
354
|
-
.scope(AXPPlatformScope.User)
|
355
|
-
.set(AXPHomeDashboardSetting.CurrentDashboard, newCurrentDashboardId);
|
356
|
-
}
|
357
|
-
}
|
358
|
-
patchState(store, {
|
359
|
-
dashboards,
|
360
|
-
isLoading: false,
|
361
|
-
currentDashboardId: newCurrentDashboardId,
|
362
|
-
});
|
363
|
-
}
|
364
|
-
catch (error) {
|
365
|
-
console.error('Error loading dashboards:', error);
|
366
|
-
patchState(store, { isLoading: false });
|
367
|
-
}
|
368
|
-
}
|
369
|
-
// Convert entity model to dashboard layout
|
370
|
-
function modelToDashboardLayout(model) {
|
371
|
-
return {
|
372
|
-
id: model.id || '',
|
373
|
-
title: model.title,
|
374
|
-
description: model.description,
|
375
|
-
widgets: model.widgets || [],
|
376
|
-
};
|
377
|
-
}
|
378
|
-
// Convert dashboard layout to entity model
|
379
|
-
function dashboardLayoutToModel(layout) {
|
380
|
-
return {
|
381
|
-
id: layout.id,
|
382
|
-
name: layout.title,
|
383
|
-
title: layout.title,
|
384
|
-
description: layout.description || '',
|
385
|
-
widgets: layout.widgets,
|
386
|
-
};
|
387
|
-
}
|
388
|
-
return {
|
389
|
-
// Set current dashboard
|
390
|
-
setCurrentDashboard(dashboardId) {
|
391
|
-
patchState(store, { currentDashboardId: dashboardId });
|
392
|
-
settingService.scope(AXPPlatformScope.User).set(AXPHomeDashboardSetting.CurrentDashboard, dashboardId);
|
393
|
-
},
|
394
|
-
// Add a new dashboard
|
395
|
-
async addDashboard() {
|
396
|
-
try {
|
397
|
-
const newDashboard = await dashboardPopup.generateDashboardLayout({});
|
398
|
-
if (!newDashboard)
|
399
|
-
return;
|
400
|
-
// Create dashboard model and save to service
|
401
|
-
const dashboardModel = dashboardLayoutToModel(newDashboard);
|
402
|
-
const createdDashboardId = await dashboardService.insertOne(dashboardModel);
|
403
|
-
newDashboard.id = createdDashboardId;
|
404
|
-
newDashboard.widgets = [];
|
405
|
-
// Update local state
|
406
|
-
const updatedDashboards = [...store.dashboards(), newDashboard];
|
407
|
-
patchState(store, {
|
408
|
-
dashboards: updatedDashboards,
|
409
|
-
currentDashboardId: newDashboard.id,
|
410
|
-
});
|
411
|
-
// Save current dashboard to settings
|
412
|
-
settingService.scope(AXPPlatformScope.User).set(AXPHomeDashboardSetting.CurrentDashboard, newDashboard.id);
|
413
|
-
}
|
414
|
-
catch (error) {
|
415
|
-
console.error('Error adding dashboard:', error);
|
416
|
-
}
|
417
|
-
},
|
418
|
-
// Add a widget to the current dashboard
|
419
|
-
async addWidget() {
|
420
|
-
if (!store.currentDashboardId()) {
|
421
|
-
console.warn('No current dashboard selected');
|
422
|
-
return;
|
423
|
-
}
|
424
|
-
try {
|
425
|
-
const widgets = await widgetPickerService.showPicker({
|
426
|
-
groups: [AXPWidgetGroupEnum.DashboardWidget],
|
427
|
-
});
|
428
|
-
//remove meta from widgets //TODO TEMPORARY FIX
|
429
|
-
const filteredWidgets = widgets.map(({ __meta__, ...rest }) => rest);
|
430
|
-
if (filteredWidgets[0]?.type === 'sticky-note') {
|
431
|
-
if (!filteredWidgets[0].options) {
|
432
|
-
filteredWidgets[0].options = {};
|
433
|
-
}
|
434
|
-
filteredWidgets[0].options.hasConfiguration = false;
|
435
|
-
}
|
436
|
-
filteredWidgets.forEach((widget) => {
|
437
|
-
const randomId = AXPDataGenerator.uuid();
|
438
|
-
widget.name = widget?.type + '-' + randomId;
|
439
|
-
widget.path = widget?.type + '-' + randomId;
|
440
|
-
});
|
441
|
-
// Step 2: Convert the selected widgets into AXPDashboardWidgetData format
|
442
|
-
const convertedWidgets = filteredWidgets.map((widget) => {
|
443
|
-
const id = AXPDataGenerator.uuid();
|
444
|
-
return {
|
445
|
-
config: {
|
446
|
-
height: widget?.meta?.dimensions?.height ?? 2,
|
447
|
-
width: widget?.meta?.dimensions?.width ?? 2,
|
448
|
-
minHeight: widget?.meta?.dimensions?.minHeight,
|
449
|
-
minWidth: widget?.meta?.dimensions?.minWidth,
|
450
|
-
maxHeight: widget?.meta?.dimensions?.maxHeight,
|
451
|
-
maxWidth: widget?.meta?.dimensions?.maxWidth,
|
452
|
-
id,
|
453
|
-
},
|
454
|
-
node: { ...widget, name: id },
|
455
|
-
};
|
456
|
-
});
|
457
|
-
// Step 3: Update the dashboards
|
458
|
-
const updatedDashboards = store.dashboards().map((dashboard) => {
|
459
|
-
if (dashboard.id === store.currentDashboardId()) {
|
460
|
-
return {
|
461
|
-
...dashboard,
|
462
|
-
widgets: [...dashboard.widgets, ...convertedWidgets],
|
463
|
-
};
|
464
|
-
}
|
465
|
-
return dashboard;
|
466
|
-
});
|
467
|
-
// Step 4: Save the updated dashboard to the service
|
468
|
-
const currentDashboard = updatedDashboards.find((d) => d.id === store.currentDashboardId());
|
469
|
-
if (currentDashboard) {
|
470
|
-
await dashboardService.updateOne(currentDashboard.id, dashboardLayoutToModel(currentDashboard));
|
471
|
-
}
|
472
|
-
patchState(store, { dashboards: updatedDashboards });
|
473
|
-
}
|
474
|
-
catch (error) {
|
475
|
-
console.error('Error adding widget:', error);
|
476
|
-
}
|
477
|
-
},
|
478
|
-
// Remove a dashboard
|
479
|
-
async removeDashboard(id) {
|
480
|
-
if (!id) {
|
481
|
-
console.warn('No dashboard ID provided for removal');
|
482
|
-
return;
|
483
|
-
}
|
484
|
-
try {
|
485
|
-
const dialogResult = await dialogService.confirm(await translationService.translateAsync('workflow.warning'), await translationService.translateAsync('workflow.confirm-delete'), 'danger', 'horizontal');
|
486
|
-
if (dialogResult.result) {
|
487
|
-
// Delete from service
|
488
|
-
await dashboardService.deleteOne(id);
|
489
|
-
// Remove the dashboard from local state
|
490
|
-
const updatedDashboards = store.dashboards().filter((dashboard) => dashboard.id !== id);
|
491
|
-
// Update state and select a new current dashboard if needed
|
492
|
-
let newCurrentDashboardId = store.currentDashboardId();
|
493
|
-
if (id === store.currentDashboardId()) {
|
494
|
-
newCurrentDashboardId =
|
495
|
-
updatedDashboards.length > 0 ? updatedDashboards[updatedDashboards.length - 1].id : null;
|
496
|
-
// Save to settings if we changed the current dashboard
|
497
|
-
if (newCurrentDashboardId) {
|
498
|
-
settingService
|
499
|
-
.scope(AXPPlatformScope.User)
|
500
|
-
.set(AXPHomeDashboardSetting.CurrentDashboard, newCurrentDashboardId);
|
501
|
-
}
|
502
|
-
}
|
503
|
-
patchState(store, {
|
504
|
-
dashboards: updatedDashboards,
|
505
|
-
currentDashboardId: newCurrentDashboardId,
|
506
|
-
});
|
507
|
-
}
|
508
|
-
}
|
509
|
-
catch (error) {
|
510
|
-
console.error('Error removing dashboard:', error);
|
511
|
-
}
|
512
|
-
},
|
513
|
-
// Remove a widget from a dashboard
|
514
|
-
async removeWidget(dashboardId, widgetId) {
|
515
|
-
const currentDashboard = store.dashboards().find((d) => d.id === dashboardId);
|
516
|
-
if (!currentDashboard)
|
517
|
-
return;
|
518
|
-
const updatedDashboard = {
|
519
|
-
...currentDashboard,
|
520
|
-
widgets: currentDashboard.widgets.filter((widget) => widget.config.id !== widgetId),
|
521
|
-
};
|
522
|
-
// Save to service
|
523
|
-
await dashboardService.updateOne(dashboardId, dashboardLayoutToModel(updatedDashboard));
|
524
|
-
// Update local state
|
525
|
-
const updatedDashboards = store
|
526
|
-
.dashboards()
|
527
|
-
.map((dashboard) => (dashboard.id === dashboardId ? updatedDashboard : dashboard));
|
528
|
-
patchState(store, { dashboards: updatedDashboards });
|
529
|
-
},
|
530
|
-
// Handle configuration changes
|
531
|
-
async handleConfigChange(dashboard) {
|
532
|
-
// Save to service
|
533
|
-
await dashboardService.updateOne(dashboard.id, dashboardLayoutToModel(dashboard));
|
534
|
-
// Update local state
|
535
|
-
const updatedDashboards = store.dashboards().map((d) => (d.id === dashboard.id ? dashboard : d));
|
536
|
-
patchState(store, {
|
537
|
-
dashboards: updatedDashboards,
|
538
|
-
currentDashboardId: dashboard.id,
|
539
|
-
});
|
540
|
-
// Save current dashboard to settings
|
541
|
-
settingService.scope(AXPPlatformScope.User).set(AXPHomeDashboardSetting.CurrentDashboard, dashboard.id);
|
542
|
-
},
|
543
|
-
// Handle grid layout changes
|
544
|
-
async onGridChange(event) {
|
545
|
-
if (!store.currentDashboard()) {
|
546
|
-
console.warn('No current dashboard for grid change');
|
547
|
-
return;
|
548
|
-
}
|
549
|
-
// Extract nodes from the event and remove the `element` property
|
550
|
-
const nodes = event.nodes.map(({ element, ...rest }) => rest);
|
551
|
-
// Update the current dashboard
|
552
|
-
const currentDashboard = store.currentDashboard();
|
553
|
-
const updatedWidgets = currentDashboard.widgets.map((widget) => {
|
554
|
-
const updatedNode = nodes.find((node) => node.id === widget.config.id);
|
555
|
-
if (updatedNode) {
|
556
|
-
return {
|
557
|
-
...widget,
|
558
|
-
config: updatedNode,
|
559
|
-
};
|
560
|
-
}
|
561
|
-
return widget;
|
562
|
-
});
|
563
|
-
const updatedDashboard = {
|
564
|
-
...currentDashboard,
|
565
|
-
widgets: updatedWidgets,
|
566
|
-
};
|
567
|
-
// Save to service
|
568
|
-
await dashboardService.updateOne(updatedDashboard.id, dashboardLayoutToModel(updatedDashboard));
|
569
|
-
// Update the dashboards
|
570
|
-
const updatedDashboards = store
|
571
|
-
.dashboards()
|
572
|
-
.map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));
|
573
|
-
patchState(store, { dashboards: updatedDashboards });
|
574
|
-
},
|
575
|
-
// Handle widget configuration
|
576
|
-
async handlePopupConfiguration(widgetNode) {
|
577
|
-
if (!store.currentDashboard()) {
|
578
|
-
console.warn('No current dashboard selected');
|
579
|
-
return;
|
580
|
-
}
|
581
|
-
try {
|
582
|
-
const updatedNode = await dashboardPopup.handlePopupConfiguration(widgetNode);
|
583
|
-
if (!updatedNode) {
|
584
|
-
return;
|
585
|
-
}
|
586
|
-
// Update the current dashboard's widget with the new configuration
|
587
|
-
const currentDashboard = store.currentDashboard();
|
588
|
-
const updatedWidgets = currentDashboard.widgets.map((widget) => {
|
589
|
-
if (widget.node?.name === widgetNode.name && widget.node?.path === widgetNode.path) {
|
590
|
-
return {
|
591
|
-
...widget,
|
592
|
-
node: updatedNode,
|
593
|
-
};
|
594
|
-
}
|
595
|
-
return widget;
|
596
|
-
});
|
597
|
-
const updatedDashboard = {
|
598
|
-
...currentDashboard,
|
599
|
-
widgets: updatedWidgets,
|
600
|
-
};
|
601
|
-
// Save to service
|
602
|
-
await dashboardService.updateOne(updatedDashboard.id, dashboardLayoutToModel(updatedDashboard));
|
603
|
-
// Update the dashboards state
|
604
|
-
const updatedDashboards = store
|
605
|
-
.dashboards()
|
606
|
-
.map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));
|
607
|
-
patchState(store, { dashboards: updatedDashboards });
|
608
|
-
}
|
609
|
-
catch (error) {
|
610
|
-
console.error('Error handling widget configuration:', error);
|
611
|
-
}
|
612
|
-
},
|
613
|
-
// Handle widget value changes
|
614
|
-
async handleValueChanged(widgetNode, data) {
|
615
|
-
if (!store.currentDashboard()) {
|
616
|
-
console.warn('No current dashboard selected');
|
617
|
-
return;
|
618
|
-
}
|
619
|
-
try {
|
620
|
-
// Update the current dashboard's widget with the new value
|
621
|
-
const currentDashboard = store.currentDashboard();
|
622
|
-
const updatedWidgets = currentDashboard.widgets.map((widget) => {
|
623
|
-
if (widget.node && widget.node.name === widgetNode.name && widget.node.path === widgetNode.path) {
|
624
|
-
return {
|
625
|
-
...widget,
|
626
|
-
node: {
|
627
|
-
...widget.node,
|
628
|
-
defaultValue: data,
|
629
|
-
},
|
630
|
-
};
|
631
|
-
}
|
632
|
-
return widget;
|
633
|
-
});
|
634
|
-
const updatedDashboard = {
|
635
|
-
...currentDashboard,
|
636
|
-
widgets: updatedWidgets,
|
637
|
-
};
|
638
|
-
// Save to service
|
639
|
-
await dashboardService.updateOne(updatedDashboard.id, dashboardLayoutToModel(updatedDashboard));
|
640
|
-
// Update the dashboards state
|
641
|
-
const updatedDashboards = store
|
642
|
-
.dashboards()
|
643
|
-
.map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));
|
644
|
-
// patchState(store, { dashboards: updatedDashboards });
|
645
|
-
}
|
646
|
-
catch (error) {
|
647
|
-
console.error('Error handling widget value change:', error);
|
648
|
-
}
|
649
|
-
},
|
650
|
-
// Handle widget options changes
|
651
|
-
async handleOptionsChanged(widgetNode, data) {
|
652
|
-
if (!store.currentDashboard()) {
|
653
|
-
console.warn('No current dashboard selected');
|
654
|
-
return;
|
655
|
-
}
|
656
|
-
try {
|
657
|
-
// Update the current dashboard's widget with the new options
|
658
|
-
const currentDashboard = store.currentDashboard();
|
659
|
-
const updatedWidgets = currentDashboard.widgets.map((widget) => {
|
660
|
-
if (widget.node && widget.node.name === widgetNode.name && widget.node.path === widgetNode.path) {
|
661
|
-
return {
|
662
|
-
...widget,
|
663
|
-
node: {
|
664
|
-
...widget.node,
|
665
|
-
options: {
|
666
|
-
...(widget.node.options || {}),
|
667
|
-
...data,
|
668
|
-
},
|
669
|
-
},
|
670
|
-
};
|
671
|
-
}
|
672
|
-
return widget;
|
673
|
-
});
|
674
|
-
const updatedDashboard = {
|
675
|
-
...currentDashboard,
|
676
|
-
widgets: updatedWidgets,
|
677
|
-
};
|
678
|
-
// Save to service
|
679
|
-
await dashboardService.updateOne(updatedDashboard.id, dashboardLayoutToModel(updatedDashboard));
|
680
|
-
// Update the dashboards state
|
681
|
-
const updatedDashboards = store
|
682
|
-
.dashboards()
|
683
|
-
.map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));
|
684
|
-
patchState(store, { dashboards: updatedDashboards });
|
685
|
-
}
|
686
|
-
catch (error) {
|
687
|
-
console.error('Error handling widget options change:', error);
|
688
|
-
}
|
689
|
-
},
|
690
|
-
// Reload dashboards from service
|
691
|
-
async refreshDashboards() {
|
692
|
-
await loadDashboards();
|
693
|
-
},
|
694
|
-
};
|
695
|
-
}));
|
696
|
-
|
697
|
-
class AXMDashboardHomeComponent extends AXPBasePageComponent {
|
698
|
-
constructor() {
|
699
|
-
super(...arguments);
|
700
|
-
//#region ---------------- Services & Dependencies ----------------
|
701
|
-
this.rootConfig = RootConfig;
|
702
|
-
this.popupService = inject(AXPopupService);
|
703
|
-
this.dialogService = inject(AXDialogService);
|
704
|
-
this.store = inject(AXMDashboardStore);
|
705
|
-
this.router = inject(Router);
|
706
|
-
this.activatedRoute = inject(ActivatedRoute);
|
707
|
-
this.layoutService = inject(AXPLayoutThemeService);
|
708
|
-
//#endregion
|
709
|
-
//#region ---------------- View Properties ----------------
|
710
|
-
this.isEdited = signal(false);
|
711
|
-
this.context = signal({});
|
712
|
-
//#endregion
|
713
|
-
//#region ---------------- Effects ----------------
|
714
|
-
this.#loadingEffect = effect(() => {
|
715
|
-
const isLoading = false; // Since store doesn't have isLoading, we'll default to false
|
716
|
-
this.layoutService.setNavigationLoading(isLoading);
|
717
|
-
});
|
718
|
-
}
|
719
|
-
//#endregion
|
720
|
-
//#region ---------------- Effects ----------------
|
721
|
-
#loadingEffect;
|
722
|
-
//#endregion
|
723
|
-
//#region ---------------- Event Handlers ----------------
|
724
|
-
toggleEdit() {
|
725
|
-
this.isEdited.update((value) => !value);
|
726
|
-
}
|
727
|
-
async confirmWidgetDelete(dashboardId, widgetId) {
|
728
|
-
try {
|
729
|
-
const dialogResult = await this.dialogService.confirm(await this.translateService.translateAsync('workflow.warning'), await this.translateService.translateAsync('workflow.confirm-delete'), 'danger', 'horizontal');
|
730
|
-
if (dialogResult.result) {
|
731
|
-
this.store.removeWidget(dashboardId, widgetId);
|
732
|
-
}
|
733
|
-
}
|
734
|
-
catch (error) {
|
735
|
-
console.error('Error confirming widget deletion:', error);
|
736
|
-
}
|
737
|
-
}
|
738
|
-
//#endregion
|
739
|
-
getPageTitle() {
|
740
|
-
return this.store.currentDashboard()?.title || 'Dashboard';
|
741
|
-
}
|
742
|
-
async getPageDescription() {
|
743
|
-
return this.store.currentDashboard()?.description || '';
|
744
|
-
}
|
745
|
-
getTitleActions() {
|
746
|
-
return [
|
747
|
-
...this.store.dashboards().map((i) => ({
|
748
|
-
title: i.title,
|
749
|
-
command: { name: i.id, metadata: { isDashboard: true, dashboard: i } },
|
750
|
-
icon: i.id === this.store.currentDashboardId() ? 'fa-solid fa-check' : '',
|
751
|
-
})),
|
752
|
-
];
|
753
|
-
}
|
754
|
-
async getPrimaryMenuItems() {
|
755
|
-
const scope = this.rootConfig.config.i18n;
|
756
|
-
return [
|
757
|
-
{
|
758
|
-
title: 't("add-item")',
|
759
|
-
icon: 'fa-light fa-square-plus',
|
760
|
-
color: 'primary',
|
761
|
-
items: [
|
762
|
-
{
|
763
|
-
title: await this.translateService.translateAsync('dashboard', { scope: 'dashboard' }),
|
764
|
-
icon: 'fa-light fa-gauge-high',
|
765
|
-
break: true,
|
766
|
-
command: {
|
767
|
-
name: 'new-dashboard',
|
768
|
-
},
|
769
|
-
},
|
770
|
-
{
|
771
|
-
title: await this.translateService.translateAsync('widget', { scope: 'dashboard' }),
|
772
|
-
icon: 'fa-light fa-window-restore',
|
773
|
-
command: {
|
774
|
-
name: 'new-widget',
|
775
|
-
},
|
776
|
-
},
|
777
|
-
],
|
778
|
-
},
|
779
|
-
];
|
780
|
-
}
|
781
|
-
async getSecondaryMenuItems() {
|
782
|
-
const scope = this.rootConfig.config.i18n;
|
783
|
-
return [
|
784
|
-
{
|
785
|
-
title: await this.translateService.translateAsync('delete-current-dashboard', { scope: 'dashboard' }),
|
786
|
-
icon: 'fa-light fa-trash-can',
|
787
|
-
color: 'danger',
|
788
|
-
disabled: this.store.dashboards().length <= 1,
|
789
|
-
command: {
|
790
|
-
name: 'delete',
|
791
|
-
},
|
792
|
-
},
|
793
|
-
];
|
794
|
-
}
|
795
|
-
async execute(command) {
|
796
|
-
if (command.metadata?.['isDashboard']) {
|
797
|
-
this.store.handleConfigChange(command.metadata?.['dashboard']);
|
798
|
-
this.recompute();
|
799
|
-
}
|
800
|
-
else {
|
801
|
-
switch (command.name) {
|
802
|
-
case 'new-dashboard':
|
803
|
-
await this.store.addDashboard();
|
804
|
-
this.recompute();
|
805
|
-
break;
|
806
|
-
case 'new-widget':
|
807
|
-
await this.store.addWidget();
|
808
|
-
this.recompute();
|
809
|
-
break;
|
810
|
-
case 'delete':
|
811
|
-
await this.store.removeDashboard(this.store.currentDashboard()?.id);
|
812
|
-
this.recompute();
|
813
|
-
break;
|
814
|
-
}
|
815
|
-
}
|
816
|
-
}
|
817
|
-
// #af = afterNextRender(() => {
|
818
|
-
// this.store.refreshDashboards();
|
819
|
-
// });
|
820
|
-
log(event) {
|
821
|
-
console.log(event);
|
822
|
-
}
|
823
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDashboardHomeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
824
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXMDashboardHomeComponent, isStandalone: true, selector: "axm-dashboard-home", providers: [
|
825
|
-
AXPDesignerService,
|
826
|
-
AXMDashboardStore,
|
827
|
-
{
|
828
|
-
provide: AXPBasePage,
|
829
|
-
useExisting: AXMDashboardHomeComponent,
|
830
|
-
},
|
831
|
-
], usesInheritance: true, ngImport: i0, template: "<axp-page-layout *translate=\"let t\">\n <!-- Content Section -->\n\n <axp-page-content class=\"ax-relative\">\n @if(store.isLoading()) {\n <div\n class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-w-full ax-absolute ax-z-10 ax-bg-white/80\"\n >\n <ax-loading></ax-loading>\n <p class=\"ax-mt-3 ax-text-gray-600\">{{ t('loading', { scope: 'dashboard' }) | async }}</p>\n </div>\n } @else {\n <axp-widgets-container [context]=\"context()\">\n <ax-grid-layout-container [options]=\"store.dashboardsOption()\" (onChange)=\"store.onGridChange($event)\">\n @for(widget of store.currentDashboard()?.widgets; track widget.config.id) {\n <ax-grid-layout-widget [options]=\"widget.config\">\n <axm-dashboard-widget-wrapper\n [title]=\"widget.node?.options?.['title']\"\n [hasConfiguration]=\"widget.node?.options?.['hasConfiguration'] ?? true\"\n (onDelete)=\"confirmWidgetDelete(store.currentDashboard()?.id!, widget.config.id!)\"\n (onConfiguration)=\"store.handlePopupConfiguration(widget.node!)\"\n (onValueChanged)=\"store.handleValueChanged(widget?.node!,$event)\"\n (onOptionsChanged)=\"store.handleOptionsChanged(widget?.node!,$event)\"\n >\n @if(widget.node) {\n <ng-container axp-widget-renderer [node]=\"widget.node\" [mode]=\"'view'\"></ng-container>\n }\n </axm-dashboard-widget-wrapper>\n </ax-grid-layout-widget>\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-bg-gray-50 ax-p-4\">\n <ax-icon icon=\"fa-light fa-shapes\" class=\"ax-text-4xl ax-text-gray-400 ax-mb-4\"></ax-icon>\n <h2 class=\"ax-text-xl ax-font-semibold ax-text-gray-700 ax-mb-2\">\n {{ t('no-widgets', { scope: 'dashboard' }) | async }}\n </h2>\n <p class=\"ax-text-gray-500 ax-text-center ax-mb-6\">\n {{ t('add-first-widget', { scope: 'dashboard' }) | async }}\n </p>\n </div>\n }\n </ax-grid-layout-container>\n </axp-widgets-container>\n }\n </axp-page-content>\n</axp-page-layout>\n", styles: ["axm-dashboard-home{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axm-dashboard-home .placeholder-content{border-radius:.5rem!important;border-width:1px!important;border-style:dashed!important;--tw-border-opacity: 1 !important;border-color:rgba(var(--ax-sys-color-primary-500),var(--tw-border-opacity, 1))!important;background-color:rgba(var(--ax-sys-color-primary-lightest-surface),.5)!important}axm-dashboard-home ax-grid-layout-widget .grid-stack-item-content{border-radius:.375rem!important;border-width:1px!important;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05) !important;--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important;--ax-comp-grid-layout-stack-item-content-bg-color: var(--ax-sys-color-lightest-surface) }\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i2$2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i3$2.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i3$2.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], outputs: ["onOptionsChanged", "onValueChanged"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXButtonGroupModule }, { kind: "ngmodule", type: AXGridLayoutBuilderModule }, { kind: "component", type: i4.AXGridLayoutContainerComponent, selector: "ax-grid-layout-container", inputs: ["options", "isEmpty"], outputs: ["onAdded", "onRemoved", "onWidgetChange", "onChange", "isLayoutRendered", "isEmptyChange"] }, { kind: "component", type: i4.AXGridLayoutWidgetComponent, selector: "ax-grid-layout-widget", inputs: ["options"] }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer, axp-page-header, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-container, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "directive", type: i6.AXTranslatorDirective, selector: "[translate]" }, { kind: "ngmodule", type: AXBreadcrumbsModule }, { kind: "component", type: AXMDashboardWidgetWrapperComponent, selector: "axm-dashboard-widget-wrapper", inputs: ["title", "hasConfiguration"], outputs: ["onDelete", "onConfiguration", "onValueChanged", "onOptionsChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
832
|
-
}
|
833
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXMDashboardHomeComponent, decorators: [{
|
834
|
-
type: Component,
|
835
|
-
args: [{ selector: 'axm-dashboard-home', standalone: true, imports: [
|
836
|
-
CommonModule,
|
837
|
-
AXLoadingModule,
|
838
|
-
AXPLayoutBuilderModule,
|
839
|
-
AXButtonModule,
|
840
|
-
AXButtonGroupModule,
|
841
|
-
AXGridLayoutBuilderModule,
|
842
|
-
AXPPageLayoutComponent,
|
843
|
-
AXPThemeLayoutBlockComponent,
|
844
|
-
AXDropdownButtonModule,
|
845
|
-
AXDropdownModule,
|
846
|
-
AXDecoratorModule,
|
847
|
-
AXTranslationModule,
|
848
|
-
AXBreadcrumbsModule,
|
849
|
-
AXMDashboardWidgetWrapperComponent,
|
850
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
851
|
-
AXPDesignerService,
|
852
|
-
AXMDashboardStore,
|
853
|
-
{
|
854
|
-
provide: AXPBasePage,
|
855
|
-
useExisting: AXMDashboardHomeComponent,
|
856
|
-
},
|
857
|
-
], template: "<axp-page-layout *translate=\"let t\">\n <!-- Content Section -->\n\n <axp-page-content class=\"ax-relative\">\n @if(store.isLoading()) {\n <div\n class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-w-full ax-absolute ax-z-10 ax-bg-white/80\"\n >\n <ax-loading></ax-loading>\n <p class=\"ax-mt-3 ax-text-gray-600\">{{ t('loading', { scope: 'dashboard' }) | async }}</p>\n </div>\n } @else {\n <axp-widgets-container [context]=\"context()\">\n <ax-grid-layout-container [options]=\"store.dashboardsOption()\" (onChange)=\"store.onGridChange($event)\">\n @for(widget of store.currentDashboard()?.widgets; track widget.config.id) {\n <ax-grid-layout-widget [options]=\"widget.config\">\n <axm-dashboard-widget-wrapper\n [title]=\"widget.node?.options?.['title']\"\n [hasConfiguration]=\"widget.node?.options?.['hasConfiguration'] ?? true\"\n (onDelete)=\"confirmWidgetDelete(store.currentDashboard()?.id!, widget.config.id!)\"\n (onConfiguration)=\"store.handlePopupConfiguration(widget.node!)\"\n (onValueChanged)=\"store.handleValueChanged(widget?.node!,$event)\"\n (onOptionsChanged)=\"store.handleOptionsChanged(widget?.node!,$event)\"\n >\n @if(widget.node) {\n <ng-container axp-widget-renderer [node]=\"widget.node\" [mode]=\"'view'\"></ng-container>\n }\n </axm-dashboard-widget-wrapper>\n </ax-grid-layout-widget>\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-full ax-bg-gray-50 ax-p-4\">\n <ax-icon icon=\"fa-light fa-shapes\" class=\"ax-text-4xl ax-text-gray-400 ax-mb-4\"></ax-icon>\n <h2 class=\"ax-text-xl ax-font-semibold ax-text-gray-700 ax-mb-2\">\n {{ t('no-widgets', { scope: 'dashboard' }) | async }}\n </h2>\n <p class=\"ax-text-gray-500 ax-text-center ax-mb-6\">\n {{ t('add-first-widget', { scope: 'dashboard' }) | async }}\n </p>\n </div>\n }\n </ax-grid-layout-container>\n </axp-widgets-container>\n }\n </axp-page-content>\n</axp-page-layout>\n", styles: ["axm-dashboard-home{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}axm-dashboard-home .placeholder-content{border-radius:.5rem!important;border-width:1px!important;border-style:dashed!important;--tw-border-opacity: 1 !important;border-color:rgba(var(--ax-sys-color-primary-500),var(--tw-border-opacity, 1))!important;background-color:rgba(var(--ax-sys-color-primary-lightest-surface),.5)!important}axm-dashboard-home ax-grid-layout-widget .grid-stack-item-content{border-radius:.375rem!important;border-width:1px!important;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05) !important;--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color) !important;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)!important;--ax-comp-grid-layout-stack-item-content-bg-color: var(--ax-sys-color-lightest-surface) }\n"] }]
|
858
|
-
}] });
|
859
|
-
|
860
|
-
export { AXMDashboardHomeComponent };
|
861
|
-
//# sourceMappingURL=acorex-modules-dashboard-management-home-dashboard-By3lZP-J.mjs.map
|