@acorex/modules 19.2.17-next.0 → 19.2.19
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/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.d.ts +4 -0
- package/auth/lib/pages/login/password/password.component.d.ts +1 -0
- package/common/lib/entities/dashboard/dashboard.types.d.ts +2 -2
- package/common/lib/entities/index.d.ts +0 -1
- package/common/lib/features/dashboard-home/dashboard-home.d.ts +113 -0
- package/common/lib/features/dashboard-home/dashboard-home.store.d.ts +19 -0
- package/common/lib/features/dashboard-home/dashboard.type.d.ts +12 -0
- package/common/lib/features/dashboard-popups/add-dashboard-popup.d.ts +11 -0
- package/common/lib/features/dashboard-popups/dashboard-popup.service.d.ts +9 -0
- package/common/lib/features/widget-wrapper/dashboard-widget-wrapper.d.ts +10 -0
- package/document-management/lib/document-management.module.d.ts +3 -1
- package/document-management/lib/entities/document/document.service.d.ts +0 -5
- package/document-management/lib/entities/document/document.types.d.ts +6 -0
- package/document-management/lib/entities/document-type/document-type.service.d.ts +2 -2
- package/document-management/lib/entities/document-type/document-type.types.d.ts +1 -0
- package/document-management/lib/entities/folder/folder.types.d.ts +5 -4
- package/document-management/lib/features/document-explorer/document-explorer.component.d.ts +141 -10
- package/document-management/lib/features/document-explorer/document-explorer.viewmodel.d.ts +65 -6
- package/document-management/lib/features/document-explorer/views/detail-panel/detail-panel.component.d.ts +118 -0
- package/document-management/lib/features/document-explorer/views/details/details-view.component.d.ts +118 -0
- package/document-management/lib/features/document-explorer/views/large-icons/large-icons-view.component.d.ts +118 -0
- package/document-management/lib/features/document-explorer/views/large-tiles/large-tiles-view.component.d.ts +118 -0
- package/document-management/lib/features/document-explorer/views/list/list-view.component.d.ts +118 -0
- package/document-management/lib/features/document-explorer/views/small-icons/small-icons-view.component.d.ts +118 -0
- package/document-management/lib/features/document-explorer/views/small-tiles/small-tiles-view.component.d.ts +118 -0
- package/document-management/lib/features/drive/drive.component.d.ts +111 -86
- package/document-management/lib/features/drive-choose/drive-choose.component.d.ts +264 -0
- package/document-management/lib/features/file-type/widgets/file-type-extension/file-type-extension-edit.component.d.ts +1 -0
- package/document-management/lib/features/shared/components/choose-document-type/choose-document-type.component.d.ts +21 -0
- package/document-management/lib/features/shared/components/file-viewer-popup/file-viewer-popup.component.d.ts +9 -0
- package/document-management/lib/features/shared/components/folder-path-breadcrumbs/folder-path-breadcrumbs.component.d.ts +179 -0
- package/document-management/lib/features/shared/components/index.d.ts +3 -0
- package/document-management/lib/features/shared/document-manager.service.d.ts +67 -55
- package/document-management/lib/features/shared/document-manager.types.d.ts +9 -3
- package/document-management/lib/features/shared/index.d.ts +1 -0
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.d.ts +171 -1
- package/document-management/lib/features/workflow/upload/upload.workflow.d.ts +17 -0
- package/fesm2022/{acorex-modules-application-management-module-designer.component-DPJ4qpK3.mjs → acorex-modules-application-management-module-designer.component-Dd_lmV6C.mjs} +3 -3
- package/fesm2022/{acorex-modules-application-management-module-designer.component-DPJ4qpK3.mjs.map → acorex-modules-application-management-module-designer.component-Dd_lmV6C.mjs.map} +1 -1
- package/fesm2022/acorex-modules-application-management.mjs +4 -4
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-DTje3YIv.mjs → acorex-modules-auth-acorex-modules-auth-DrcL7GCj.mjs} +16 -16
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-DrcL7GCj.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-CZxX5-T_.mjs → acorex-modules-auth-app-chooser.component-CbJb1P_k.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-app-chooser.component-CZxX5-T_.mjs.map → acorex-modules-auth-app-chooser.component-CbJb1P_k.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-B9P2XpfQ.mjs → acorex-modules-auth-login.module-DFCB1l7W.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-B9P2XpfQ.mjs.map → acorex-modules-auth-login.module-DFCB1l7W.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-master.layout-CuKXvY0o.mjs +23 -0
- package/fesm2022/acorex-modules-auth-master.layout-CuKXvY0o.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-password.component-C7Yp-ioT.mjs → acorex-modules-auth-password.component-5gwz30CZ.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-password.component-C7Yp-ioT.mjs.map → acorex-modules-auth-password.component-5gwz30CZ.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-password.component-DacOjakT.mjs +132 -0
- package/fesm2022/acorex-modules-auth-password.component-DacOjakT.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-routes-Bu-xB4O6.mjs → acorex-modules-auth-routes-D018Lg-b.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-Bu-xB4O6.mjs.map → acorex-modules-auth-routes-D018Lg-b.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-CKsbiOUX.mjs → acorex-modules-auth-tenant-chooser.component-YZBKyJFH.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-CKsbiOUX.mjs.map → acorex-modules-auth-tenant-chooser.component-YZBKyJFH.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-DrV3UBuT.mjs → acorex-modules-auth-two-factor-code.component-B2ZYJOrN.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-DrV3UBuT.mjs.map → acorex-modules-auth-two-factor-code.component-B2ZYJOrN.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-YRh6_YcG.mjs → acorex-modules-auth-two-factor.module-DiEB7VWl.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-two-factor.module-YRh6_YcG.mjs.map → acorex-modules-auth-two-factor.module-DiEB7VWl.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-common-index-B3u5feXf.mjs +507 -0
- package/fesm2022/acorex-modules-common-index-B3u5feXf.mjs.map +1 -0
- package/fesm2022/acorex-modules-common.mjs +5 -505
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +5 -5
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-C9ZCejjs.mjs → acorex-modules-document-management-acorex-modules-document-management-CpoLrul7.mjs} +1061 -322
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-CpoLrul7.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-BnRaCq_Q.mjs → acorex-modules-document-management-create-folder-dialog.component-Cp26sAs9.mjs} +7 -7
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-Cp26sAs9.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-details-view.component-CZyOdjEl.mjs +24 -0
- package/fesm2022/acorex-modules-document-management-details-view.component-CZyOdjEl.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-drive-choose.component-HSZ-b7-z.mjs +163 -0
- package/fesm2022/acorex-modules-document-management-drive-choose.component-HSZ-b7-z.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-drive.component-CZR-optD.mjs +246 -0
- package/fesm2022/acorex-modules-document-management-drive.component-CZR-optD.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-large-icons-view.component-C5pB5bc2.mjs +20 -0
- package/fesm2022/acorex-modules-document-management-large-icons-view.component-C5pB5bc2.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-large-tiles-view.component-D9PFgzMQ.mjs +24 -0
- package/fesm2022/acorex-modules-document-management-large-tiles-view.component-D9PFgzMQ.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-list-view.component-DjULM8Me.mjs +20 -0
- package/fesm2022/acorex-modules-document-management-list-view.component-DjULM8Me.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-EBf1XqU8.mjs → acorex-modules-document-management-rename-node-dialog.component-D3Cg9_5d.mjs} +6 -6
- package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-D3Cg9_5d.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-small-icons-view.component-4M8c_1Dt.mjs +20 -0
- package/fesm2022/acorex-modules-document-management-small-icons-view.component-4M8c_1Dt.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-small-tiles-view.component-CXPXrH4g.mjs +24 -0
- package/fesm2022/acorex-modules-document-management-small-tiles-view.component-CXPXrH4g.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management.mjs +1 -1
- package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-szDh56Bk.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-CJYrDtq6.mjs} +10 -10
- package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-szDh56Bk.mjs.map → acorex-modules-form-template-management-acorex-modules-form-template-management-CJYrDtq6.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-category.entity-BZXqnhwK.mjs → acorex-modules-form-template-management-category.entity-BdiYytzK.mjs} +3 -3
- package/fesm2022/{acorex-modules-form-template-management-category.entity-BZXqnhwK.mjs.map → acorex-modules-form-template-management-category.entity-BdiYytzK.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-setting.provider-o2_TSVfK.mjs → acorex-modules-form-template-management-setting.provider-CoETMkEC.mjs} +2 -2
- package/fesm2022/{acorex-modules-form-template-management-setting.provider-o2_TSVfK.mjs.map → acorex-modules-form-template-management-setting.provider-CoETMkEC.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-BxOdV3y2.mjs → acorex-modules-form-template-management-template-picker.component-0JfGxdMv.mjs} +3 -3
- package/fesm2022/{acorex-modules-form-template-management-template-picker.component-BxOdV3y2.mjs.map → acorex-modules-form-template-management-template-picker.component-0JfGxdMv.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component--MGoF75g.mjs → acorex-modules-form-template-management-template-widget-edit.component-BkJ3ieIg.mjs} +3 -3
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component--MGoF75g.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-BkJ3ieIg.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-template.entity-JvWcqjzi.mjs → acorex-modules-form-template-management-template.entity-ByE2p0Mu.mjs} +3 -3
- package/fesm2022/{acorex-modules-form-template-management-template.entity-JvWcqjzi.mjs.map → acorex-modules-form-template-management-template.entity-ByE2p0Mu.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-Bllb70Ih.mjs → acorex-modules-form-template-management-viewer-popup.component-CThcXWpt.mjs} +4 -4
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-Bllb70Ih.mjs.map → acorex-modules-form-template-management-viewer-popup.component-CThcXWpt.mjs.map} +1 -1
- package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +4 -4
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-add-item.component-Y-i6xDkl.mjs → acorex-modules-organization-management-add-item.component-DW0TneoX.mjs} +3 -3
- package/fesm2022/{acorex-modules-organization-management-add-item.component-Y-i6xDkl.mjs.map → acorex-modules-organization-management-add-item.component-DW0TneoX.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-branch.entity-DhObzxhh.mjs → acorex-modules-organization-management-branch.entity-e5pFx82N.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-branch.entity-DhObzxhh.mjs.map → acorex-modules-organization-management-branch.entity-e5pFx82N.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-chart.entity-Bk4WgsYr.mjs → acorex-modules-organization-management-chart.entity-DnmNyyD2.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-chart.entity-Bk4WgsYr.mjs.map → acorex-modules-organization-management-chart.entity-DnmNyyD2.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-company.entity-d7GaCVei.mjs → acorex-modules-organization-management-company.entity-BRkEcDNt.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-company.entity-d7GaCVei.mjs.map → acorex-modules-organization-management-company.entity-BRkEcDNt.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-department.entity-BxyeK3lU.mjs → acorex-modules-organization-management-department.entity-ChJXNpXn.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-department.entity-BxyeK3lU.mjs.map → acorex-modules-organization-management-department.entity-ChJXNpXn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-division.entity-Dh54R4es.mjs → acorex-modules-organization-management-division.entity-qyDyhl-q.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-division.entity-Dh54R4es.mjs.map → acorex-modules-organization-management-division.entity-qyDyhl-q.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-employee.entity-DcJCJN3R.mjs → acorex-modules-organization-management-employee.entity-Cp5TejzT.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-employee.entity-DcJCJN3R.mjs.map → acorex-modules-organization-management-employee.entity-Cp5TejzT.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-employment-type.entity-aNkt-l_e.mjs → acorex-modules-organization-management-employment-type.entity-Ul10Mdwm.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-employment-type.entity-aNkt-l_e.mjs.map → acorex-modules-organization-management-employment-type.entity-Ul10Mdwm.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-D1tWlJqL.mjs +92 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-D1tWlJqL.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-DXyAFXwE.mjs → acorex-modules-organization-management-org-chart.page-bzbCuF-w.mjs} +16 -16
- package/fesm2022/acorex-modules-organization-management-org-chart.page-bzbCuF-w.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-position.entity-D17Yembh.mjs → acorex-modules-organization-management-position.entity-BpQbwW-x.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-position.entity-D17Yembh.mjs.map → acorex-modules-organization-management-position.entity-BpQbwW-x.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-role.entity-Cmbyle8P.mjs → acorex-modules-organization-management-role.entity-B9N4qA_E.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-role.entity-Cmbyle8P.mjs.map → acorex-modules-organization-management-role.entity-B9N4qA_E.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-setting.provider-CAU8Bve9.mjs → acorex-modules-organization-management-setting.provider-CMDpwkG2.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-setting.provider-CAU8Bve9.mjs.map → acorex-modules-organization-management-setting.provider-CMDpwkG2.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-team.entity-DcurAtLd.mjs → acorex-modules-organization-management-team.entity-7q6Eg74A.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-team.entity-DcurAtLd.mjs.map → acorex-modules-organization-management-team.entity-7q6Eg74A.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management.mjs +17 -15
- package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-list-version.component-CoZBz85x.mjs → acorex-modules-platform-management-list-version.component-C9764yzu.mjs} +3 -3
- package/fesm2022/{acorex-modules-platform-management-list-version.component-CoZBz85x.mjs.map → acorex-modules-platform-management-list-version.component-C9764yzu.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +376 -21
- package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-scheduler-job-management.mjs +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +1 -1
- package/fesm2022/acorex-modules-text-template-management.mjs +1 -1
- package/organization-management/lib/features/organization-chart/org-chart-configuration.page.d.ts +4 -0
- package/organization-management/lib/features/organization-chart/org-chart.page.d.ts +4 -0
- package/package.json +1 -1
- package/platform-management/lib/const.d.ts +6 -0
- package/platform-management/lib/entities/index.d.ts +1 -0
- package/platform-management/lib/entities/meta-data-definition/meta-data-definition.types.d.ts +1 -0
- package/platform-management/lib/entities/meta-data-definition-category/category.entity.d.ts +3 -0
- package/platform-management/lib/entities/meta-data-definition-category/category.service.d.ts +10 -0
- package/platform-management/lib/entities/meta-data-definition-category/category.types.d.ts +5 -0
- package/platform-management/lib/entities/meta-data-definition-category/index.d.ts +3 -0
- package/common/lib/entities/dashboard-widget-data/dashboard-widget-data.entity.d.ts +0 -3
- package/common/lib/entities/dashboard-widget-data/dashboard-widget-data.service.d.ts +0 -10
- package/common/lib/entities/dashboard-widget-data/dashboard-widget-data.types.d.ts +0 -9
- package/common/lib/entities/dashboard-widget-data/index.d.ts +0 -3
- package/common/lib/features/home/dashboard-home.d.ts +0 -5
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-DTje3YIv.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-master.layout-BYC0FYq1.mjs +0 -23
- package/fesm2022/acorex-modules-auth-master.layout-BYC0FYq1.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-password.component-DzrYH4yM.mjs +0 -127
- package/fesm2022/acorex-modules-auth-password.component-DzrYH4yM.mjs.map +0 -1
- package/fesm2022/acorex-modules-common-index-zaFxpV8u.mjs +0 -14
- package/fesm2022/acorex-modules-common-index-zaFxpV8u.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-C9ZCejjs.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-BnRaCq_Q.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-drive.component-Sz198sA6.mjs +0 -165
- package/fesm2022/acorex-modules-document-management-drive.component-Sz198sA6.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-index--I8MGeDs.mjs +0 -2
- package/fesm2022/acorex-modules-document-management-index--I8MGeDs.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-rename-node-dialog.component-EBf1XqU8.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-DO8wSZqZ.mjs +0 -92
- package/fesm2022/acorex-modules-organization-management-org-chart-configuration.page-DO8wSZqZ.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart.page-DXyAFXwE.mjs.map +0 -1
- /package/common/lib/features/{home → dashboard-home}/index.d.ts +0 -0
@@ -0,0 +1,507 @@
|
|
1
|
+
import { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';
|
2
|
+
import * as i2 from '@acorex/components/button';
|
3
|
+
import { AXButtonModule } from '@acorex/components/button';
|
4
|
+
import * as i5 from '@acorex/components/decorators';
|
5
|
+
import { AXDecoratorModule } from '@acorex/components/decorators';
|
6
|
+
import * as i3 from '@acorex/components/dropdown';
|
7
|
+
import { AXDropdownModule } from '@acorex/components/dropdown';
|
8
|
+
import * as i4$1 from '@acorex/components/dropdown-button';
|
9
|
+
import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
|
10
|
+
import * as i3$2 from '@acorex/components/grid-layout-builder';
|
11
|
+
import { AXGridLayoutBuilderModule } from '@acorex/components/grid-layout-builder';
|
12
|
+
import { AXTranslationService, AXTranslatorDirective } from '@acorex/core/translation';
|
13
|
+
import * as i1$1 from '@acorex/platform/layout/builder';
|
14
|
+
import { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
|
15
|
+
import { AXPDesignerService } from '@acorex/platform/layout/designer';
|
16
|
+
import { AXPSimplePageLayout } from '@acorex/platform/themes/default';
|
17
|
+
import { AXPLayoutThemeService, AXPThemeLayoutBlockComponent, AXPThemeLayoutPageHeaderComponent, AXPThemeLayoutActionsComponent, AXPThemeLayoutPagePrimaryActionsComponent, AXPThemeLayoutPageSecondaryActionsComponent } from '@acorex/platform/themes/shared';
|
18
|
+
import { AsyncPipe } from '@angular/common';
|
19
|
+
import * as i0 from '@angular/core';
|
20
|
+
import { output, input, ChangeDetectionStrategy, Component, model, afterNextRender, inject, Injectable, computed, signal } from '@angular/core';
|
21
|
+
import { ActivatedRoute } from '@angular/router';
|
22
|
+
import { RootConfig } from './acorex-modules-common.mjs';
|
23
|
+
import { AXDialogService } from '@acorex/components/dialog';
|
24
|
+
import { AXPDataGenerator } from '@acorex/platform/core';
|
25
|
+
import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
|
26
|
+
import { AXPopupService } from '@acorex/components/popup';
|
27
|
+
import * as i4 from '@acorex/components/label';
|
28
|
+
import { AXLabelModule } from '@acorex/components/label';
|
29
|
+
import { AXBasePageComponent } from '@acorex/components/page';
|
30
|
+
import * as i3$1 from '@acorex/components/text-box';
|
31
|
+
import { AXTextBoxModule } from '@acorex/components/text-box';
|
32
|
+
import * as i1 from '@angular/forms';
|
33
|
+
import { FormsModule } from '@angular/forms';
|
34
|
+
|
35
|
+
class AXCDashboardWidgetWrapperComponent {
|
36
|
+
constructor() {
|
37
|
+
this.onDelete = output();
|
38
|
+
this.hasOptions = input(true);
|
39
|
+
}
|
40
|
+
handleOnItemClick(event) {
|
41
|
+
console.log(event);
|
42
|
+
switch (event.item.data) {
|
43
|
+
case 'delete':
|
44
|
+
this.onDelete.emit();
|
45
|
+
break;
|
46
|
+
default:
|
47
|
+
break;
|
48
|
+
}
|
49
|
+
}
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCDashboardWidgetWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
51
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXCDashboardWidgetWrapperComponent, isStandalone: true, selector: "axc-dashboard-widget-wrapper", inputs: { hasOptions: { classPropertyName: "hasOptions", publicName: "hasOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onDelete: "onDelete" }, ngImport: i0, template: "<section class=\"ax-relative ax-size-full ax-flex ax-justify-center ax-items-center ax-group\">\n @if(hasOptions()){\n <div class=\"ax-p-1 ax-absolute ax-top-0 ax-left-0 ax-z-[9999] ax-invisible group-hover:ax-visible\">\n <ax-button color=\"secondary\" class=\"ax-sm\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-ellipsis-h\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel>\n <ng-container>\n <ax-button-item-list (onItemClick)=\"handleOnItemClick($event)\">\n <ax-button-item [data]=\"'delete'\" text=\"Delete\" color=\"danger\">\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 <ng-content></ng-content>\n</section>\n", styles: [":host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.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: i2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
52
|
+
}
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCDashboardWidgetWrapperComponent, decorators: [{
|
54
|
+
type: Component,
|
55
|
+
args: [{ selector: 'axc-dashboard-widget-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule, AXDropdownModule], standalone: true, template: "<section class=\"ax-relative ax-size-full ax-flex ax-justify-center ax-items-center ax-group\">\n @if(hasOptions()){\n <div class=\"ax-p-1 ax-absolute ax-top-0 ax-left-0 ax-z-[9999] ax-invisible group-hover:ax-visible\">\n <ax-button color=\"secondary\" class=\"ax-sm\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-ellipsis-h\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel>\n <ng-container>\n <ax-button-item-list (onItemClick)=\"handleOnItemClick($event)\">\n <ax-button-item [data]=\"'delete'\" text=\"Delete\" color=\"danger\">\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 <ng-content></ng-content>\n</section>\n", styles: [":host{display:block;width:100%;height:100%}\n"] }]
|
56
|
+
}] });
|
57
|
+
|
58
|
+
class AXCAddDashboardPopup extends AXBasePageComponent {
|
59
|
+
constructor() {
|
60
|
+
super(...arguments);
|
61
|
+
this.title = model();
|
62
|
+
this.description = model();
|
63
|
+
this.#init = afterNextRender(() => {
|
64
|
+
this.title.set(this.data.title || '');
|
65
|
+
this.description.set(this.data.description || '');
|
66
|
+
});
|
67
|
+
}
|
68
|
+
#init;
|
69
|
+
async handleClose(isCanceled = false) {
|
70
|
+
this.close({
|
71
|
+
title: this.title(),
|
72
|
+
description: this.description(),
|
73
|
+
isCanceled,
|
74
|
+
});
|
75
|
+
}
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCAddDashboardPopup, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.3", type: AXCAddDashboardPopup, 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: `
|
78
|
+
<div class="ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center">
|
79
|
+
<ax-label>Title</ax-label>
|
80
|
+
<ax-text-box [(ngModel)]="title" name="title"></ax-text-box>
|
81
|
+
|
82
|
+
<ax-label>Description</ax-label>
|
83
|
+
<ax-text-box [(ngModel)]="description" name="description"></ax-text-box>
|
84
|
+
</div>
|
85
|
+
|
86
|
+
<ax-footer>
|
87
|
+
<ax-prefix></ax-prefix>
|
88
|
+
<ax-suffix>
|
89
|
+
<ax-button text="Cancel" look="solid" (onClick)="handleClose(true)"></ax-button>
|
90
|
+
<ax-button text="Save" look="solid" color="primary" (onClick)="handleClose()">
|
91
|
+
<ax-icon class="fa-solid fa-save"></ax-icon>
|
92
|
+
</ax-button>
|
93
|
+
</ax-suffix>
|
94
|
+
</ax-footer>
|
95
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.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: "component", type: i4.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.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" }] }); }
|
96
|
+
}
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCAddDashboardPopup, decorators: [{
|
98
|
+
type: Component,
|
99
|
+
args: [{
|
100
|
+
template: `
|
101
|
+
<div class="ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center">
|
102
|
+
<ax-label>Title</ax-label>
|
103
|
+
<ax-text-box [(ngModel)]="title" name="title"></ax-text-box>
|
104
|
+
|
105
|
+
<ax-label>Description</ax-label>
|
106
|
+
<ax-text-box [(ngModel)]="description" name="description"></ax-text-box>
|
107
|
+
</div>
|
108
|
+
|
109
|
+
<ax-footer>
|
110
|
+
<ax-prefix></ax-prefix>
|
111
|
+
<ax-suffix>
|
112
|
+
<ax-button text="Cancel" look="solid" (onClick)="handleClose(true)"></ax-button>
|
113
|
+
<ax-button text="Save" look="solid" color="primary" (onClick)="handleClose()">
|
114
|
+
<ax-icon class="fa-solid fa-save"></ax-icon>
|
115
|
+
</ax-button>
|
116
|
+
</ax-suffix>
|
117
|
+
</ax-footer>
|
118
|
+
`,
|
119
|
+
imports: [FormsModule, AXButtonModule, AXTextBoxModule, AXLabelModule, AXButtonModule, AXDecoratorModule],
|
120
|
+
}]
|
121
|
+
}] });
|
122
|
+
|
123
|
+
class AXPDashboardPopupService {
|
124
|
+
constructor() {
|
125
|
+
this.popupService = inject(AXPopupService);
|
126
|
+
}
|
127
|
+
async generateDashboardLayout(data) {
|
128
|
+
const result = await this.popupService.open(AXCAddDashboardPopup, {
|
129
|
+
header: true,
|
130
|
+
size: 'fit',
|
131
|
+
draggable: true,
|
132
|
+
hasBackdrop: true,
|
133
|
+
title: 'Dashboard Layout Details',
|
134
|
+
data: { data },
|
135
|
+
});
|
136
|
+
const { isCanceled, ...rest } = result.data;
|
137
|
+
if (isCanceled) {
|
138
|
+
throw new Error('Process is Canceled by User!');
|
139
|
+
}
|
140
|
+
else {
|
141
|
+
return rest;
|
142
|
+
}
|
143
|
+
}
|
144
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDashboardPopupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
145
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDashboardPopupService, providedIn: 'root' }); }
|
146
|
+
}
|
147
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDashboardPopupService, decorators: [{
|
148
|
+
type: Injectable,
|
149
|
+
args: [{ providedIn: 'root' }]
|
150
|
+
}] });
|
151
|
+
|
152
|
+
// Initial state
|
153
|
+
const initialDashboards = [
|
154
|
+
{
|
155
|
+
id: 'widget1',
|
156
|
+
title: 'Home',
|
157
|
+
widget: [
|
158
|
+
{
|
159
|
+
config: {
|
160
|
+
id: '1',
|
161
|
+
height: 5,
|
162
|
+
width: 6,
|
163
|
+
},
|
164
|
+
node: {
|
165
|
+
name: 'bar-chart',
|
166
|
+
path: 'bar-chart',
|
167
|
+
type: 'bar-chart',
|
168
|
+
defaultValue: {
|
169
|
+
data: [
|
170
|
+
{ label: 'Category A', value: 30, color: 'green' },
|
171
|
+
{ label: 'Category B', value: 80 },
|
172
|
+
{ label: 'Category C', value: 45 },
|
173
|
+
{ label: 'Category D', value: 10 },
|
174
|
+
{ label: 'Category E', value: 100 },
|
175
|
+
],
|
176
|
+
options: { width: 600, height: 400, color: ['red', 'yellow', 'blue'] },
|
177
|
+
},
|
178
|
+
},
|
179
|
+
},
|
180
|
+
{
|
181
|
+
config: {
|
182
|
+
id: '5',
|
183
|
+
height: 5,
|
184
|
+
width: 6,
|
185
|
+
},
|
186
|
+
node: {
|
187
|
+
name: 'map',
|
188
|
+
path: 'map',
|
189
|
+
type: 'map',
|
190
|
+
options: {
|
191
|
+
hasDraw: true,
|
192
|
+
zoomLevel: 5,
|
193
|
+
latitude: 32,
|
194
|
+
longitude: 53,
|
195
|
+
fitToDraw: true,
|
196
|
+
limitDraw: [
|
197
|
+
{
|
198
|
+
points: [
|
199
|
+
{
|
200
|
+
latitude: 33.8339199536547,
|
201
|
+
longitude: 51.16056693933671,
|
202
|
+
},
|
203
|
+
{
|
204
|
+
latitude: 32.37996146435729,
|
205
|
+
longitude: 50.017223524232904,
|
206
|
+
},
|
207
|
+
{
|
208
|
+
latitude: 31.034108344903512,
|
209
|
+
longitude: 51.402428046377885,
|
210
|
+
},
|
211
|
+
{
|
212
|
+
latitude: 31.690781806136822,
|
213
|
+
longitude: 53.24936740923793,
|
214
|
+
},
|
215
|
+
{
|
216
|
+
latitude: 33.211116472416855,
|
217
|
+
longitude: 53.18340528913575,
|
218
|
+
},
|
219
|
+
],
|
220
|
+
color: 'blue',
|
221
|
+
},
|
222
|
+
],
|
223
|
+
},
|
224
|
+
},
|
225
|
+
},
|
226
|
+
],
|
227
|
+
},
|
228
|
+
{
|
229
|
+
id: 'widget2',
|
230
|
+
title: 'Work',
|
231
|
+
widget: [
|
232
|
+
{
|
233
|
+
config: {
|
234
|
+
id: '2',
|
235
|
+
height: 3,
|
236
|
+
width: 3,
|
237
|
+
},
|
238
|
+
node: {
|
239
|
+
name: 'sticky-note',
|
240
|
+
path: 'sticky-note',
|
241
|
+
type: 'sticky-note',
|
242
|
+
defaultValue: `test`,
|
243
|
+
options: {
|
244
|
+
hasOptions: false,
|
245
|
+
},
|
246
|
+
},
|
247
|
+
},
|
248
|
+
{
|
249
|
+
config: { id: '3', height: 4, width: 4 },
|
250
|
+
node: {
|
251
|
+
name: 'donut-chart',
|
252
|
+
path: 'donut-chart',
|
253
|
+
type: 'donut-chart',
|
254
|
+
defaultValue: {
|
255
|
+
data: [
|
256
|
+
{ id: 'a', name: 'Apples', value: 40, color: '#E57373' },
|
257
|
+
{ id: 'b', name: 'Bananas', value: 30, color: '#FFF176' },
|
258
|
+
{ id: 'c', name: 'ta', value: 20, color: '#F06292' },
|
259
|
+
{ id: 'd', name: 'Dates', value: 10, color: '#9575CD' },
|
260
|
+
],
|
261
|
+
options: { width: 250, height: 250 },
|
262
|
+
},
|
263
|
+
},
|
264
|
+
},
|
265
|
+
{
|
266
|
+
config: { id: '4', height: 4, width: 3 },
|
267
|
+
node: {
|
268
|
+
name: 'gauge-chart',
|
269
|
+
path: 'gauge-chart',
|
270
|
+
type: 'gauge-chart',
|
271
|
+
defaultValue: {
|
272
|
+
data: {
|
273
|
+
id: 'gauge1',
|
274
|
+
name: 'System Load',
|
275
|
+
value: 65,
|
276
|
+
color: '#2196F3',
|
277
|
+
},
|
278
|
+
options: {
|
279
|
+
width: 250,
|
280
|
+
height: 250,
|
281
|
+
minValue: 0,
|
282
|
+
maxValue: 100,
|
283
|
+
// thresholds: [
|
284
|
+
// { range: 30, color: '#4CAF50' }, // Green for low values
|
285
|
+
// { range: 70, color: '#FFC107' }, // Yellow for medium values
|
286
|
+
// { range: 100, color: '#F44336' }, // Red for high values
|
287
|
+
// ],
|
288
|
+
label: 'CPU Usage',
|
289
|
+
animationDuration: 3000,
|
290
|
+
},
|
291
|
+
},
|
292
|
+
},
|
293
|
+
},
|
294
|
+
],
|
295
|
+
},
|
296
|
+
];
|
297
|
+
// Create the SignalStore
|
298
|
+
const AXCDashboardStore = signalStore({},
|
299
|
+
// Define the state
|
300
|
+
withState({
|
301
|
+
dashboards: initialDashboards,
|
302
|
+
currentDashboardId: initialDashboards[0].id,
|
303
|
+
dashboardsOption: { float: true, cellHeight: 100, gap: 20, minRow: 7, column: 12 },
|
304
|
+
}),
|
305
|
+
// Define computed properties
|
306
|
+
withComputed((state) => ({
|
307
|
+
currentDashboard: computed(() => {
|
308
|
+
return state.dashboards().find((dashboard) => dashboard.id === state.currentDashboardId()) || null;
|
309
|
+
}),
|
310
|
+
})),
|
311
|
+
// Define methods
|
312
|
+
withMethods((state, dashboardPopup = inject(AXPDashboardPopupService), dialogService = inject(AXDialogService), translationService = inject(AXTranslationService), designerService = inject(AXPDesignerService)) => ({
|
313
|
+
// Set current dashboard
|
314
|
+
setCurrentDashboard(dashboardId) {
|
315
|
+
patchState(state, { currentDashboardId: dashboardId });
|
316
|
+
},
|
317
|
+
// Add a new dashboard
|
318
|
+
async addDashboard() {
|
319
|
+
try {
|
320
|
+
const newDashboard = await dashboardPopup.generateDashboardLayout({});
|
321
|
+
newDashboard.id = AXPDataGenerator.uuid();
|
322
|
+
newDashboard.widget = [];
|
323
|
+
// newDashboard.widget = [
|
324
|
+
// {
|
325
|
+
// config: {
|
326
|
+
// h: 1,
|
327
|
+
// w: 1,
|
328
|
+
// id: AXPDataGenerator.uuid(),
|
329
|
+
// },
|
330
|
+
// },
|
331
|
+
// ];
|
332
|
+
const updatedDashboards = [...state.dashboards(), newDashboard];
|
333
|
+
patchState(state, {
|
334
|
+
dashboards: updatedDashboards,
|
335
|
+
currentDashboardId: newDashboard.id,
|
336
|
+
});
|
337
|
+
}
|
338
|
+
catch (error) {
|
339
|
+
console.error('Error adding dashboard:', error);
|
340
|
+
}
|
341
|
+
},
|
342
|
+
// Add a widget to the current dashboard
|
343
|
+
async addWidget() {
|
344
|
+
if (!state.currentDashboardId()) {
|
345
|
+
console.warn('No current dashboard selected');
|
346
|
+
return;
|
347
|
+
}
|
348
|
+
try {
|
349
|
+
// Step 1: Show the picker and get the selected widgets
|
350
|
+
const widgets = await designerService.showPicker({
|
351
|
+
name: 'page-layout',
|
352
|
+
type: 'page-layout',
|
353
|
+
children: [],
|
354
|
+
});
|
355
|
+
// Step 2: Convert the selected widgets into AXPDashboardWidgetData format
|
356
|
+
const convertedWidgets = widgets.map((widget) => ({
|
357
|
+
config: { height: 2, width: 2, id: AXPDataGenerator.uuid() },
|
358
|
+
node: widget,
|
359
|
+
}));
|
360
|
+
// Step 3: Update the dashboards
|
361
|
+
const updatedDashboards = state.dashboards().map((dashboard) => {
|
362
|
+
if (dashboard.id === state.currentDashboardId()) {
|
363
|
+
return {
|
364
|
+
...dashboard,
|
365
|
+
widget: [...dashboard.widget, ...convertedWidgets],
|
366
|
+
};
|
367
|
+
}
|
368
|
+
return dashboard;
|
369
|
+
});
|
370
|
+
patchState(state, { dashboards: updatedDashboards });
|
371
|
+
}
|
372
|
+
catch (error) {
|
373
|
+
console.error('Error adding widget:', error);
|
374
|
+
}
|
375
|
+
},
|
376
|
+
// Remove a dashboard
|
377
|
+
async removeDashboard(id) {
|
378
|
+
if (!id) {
|
379
|
+
console.warn('No dashboard ID provided for removal');
|
380
|
+
return;
|
381
|
+
}
|
382
|
+
try {
|
383
|
+
const dialogResult = await dialogService.confirm(await translationService.translateAsync('workflow.warning'), await translationService.translateAsync('workflow.confirm-delete'), 'danger', 'horizontal');
|
384
|
+
if (dialogResult.result) {
|
385
|
+
// Remove the dashboard
|
386
|
+
const updatedDashboards = state.dashboards().filter((dashboard) => dashboard.id !== id);
|
387
|
+
// Update state
|
388
|
+
patchState(state, {
|
389
|
+
dashboards: updatedDashboards,
|
390
|
+
currentDashboardId: id === state.currentDashboardId()
|
391
|
+
? updatedDashboards.length > 0
|
392
|
+
? updatedDashboards[0].id
|
393
|
+
: null
|
394
|
+
: state.currentDashboardId(),
|
395
|
+
});
|
396
|
+
}
|
397
|
+
}
|
398
|
+
catch (error) {
|
399
|
+
console.error('Error removing dashboard:', error);
|
400
|
+
}
|
401
|
+
},
|
402
|
+
// Remove a widget from a dashboard
|
403
|
+
removeWidget(dashboardId, widgetId) {
|
404
|
+
const updatedDashboards = state.dashboards().map((dashboard) => {
|
405
|
+
if (dashboard.id === dashboardId) {
|
406
|
+
return {
|
407
|
+
...dashboard,
|
408
|
+
widget: dashboard.widget.filter((widget) => widget.config.id !== widgetId),
|
409
|
+
};
|
410
|
+
}
|
411
|
+
return dashboard;
|
412
|
+
});
|
413
|
+
patchState(state, { dashboards: updatedDashboards });
|
414
|
+
},
|
415
|
+
// Handle configuration changes
|
416
|
+
handleConfigChange(dashboard) {
|
417
|
+
const updatedDashboards = state.dashboards().map((d) => (d.id === dashboard.id ? dashboard : d));
|
418
|
+
patchState(state, {
|
419
|
+
dashboards: updatedDashboards,
|
420
|
+
currentDashboardId: dashboard.id,
|
421
|
+
});
|
422
|
+
},
|
423
|
+
// Handle grid layout changes
|
424
|
+
onGridChange(event) {
|
425
|
+
if (!state.currentDashboard()) {
|
426
|
+
console.warn('No current dashboard for grid change');
|
427
|
+
return;
|
428
|
+
}
|
429
|
+
// Extract nodes from the event and remove the `element` property
|
430
|
+
const nodes = event.nodes.map(({ element, ...rest }) => rest);
|
431
|
+
// Update the current dashboard
|
432
|
+
const currentDashboard = state.currentDashboard();
|
433
|
+
const updatedWidgets = currentDashboard.widget.map((widget) => {
|
434
|
+
const updatedNode = nodes.find((node) => node.id === widget.config.id);
|
435
|
+
if (updatedNode) {
|
436
|
+
return {
|
437
|
+
...widget,
|
438
|
+
config: updatedNode,
|
439
|
+
};
|
440
|
+
}
|
441
|
+
return widget;
|
442
|
+
});
|
443
|
+
const updatedDashboard = {
|
444
|
+
...currentDashboard,
|
445
|
+
widget: updatedWidgets,
|
446
|
+
};
|
447
|
+
// Update the dashboards
|
448
|
+
const updatedDashboards = state
|
449
|
+
.dashboards()
|
450
|
+
.map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));
|
451
|
+
patchState(state, { dashboards: updatedDashboards });
|
452
|
+
},
|
453
|
+
})));
|
454
|
+
|
455
|
+
class AXPDashboardHomeComponent {
|
456
|
+
constructor() {
|
457
|
+
this.activatedRoute = inject(ActivatedRoute);
|
458
|
+
this.layout = inject(AXPLayoutThemeService);
|
459
|
+
this.store = inject(AXCDashboardStore);
|
460
|
+
this.rootConfig = RootConfig;
|
461
|
+
this.isEdited = signal(false);
|
462
|
+
this.context = signal({});
|
463
|
+
}
|
464
|
+
toggleEdit() {
|
465
|
+
//(window as any).d = this.activatedRoute;
|
466
|
+
this.isEdited.update((i) => !i);
|
467
|
+
}
|
468
|
+
getGridBackground() {
|
469
|
+
if (!this.isEdited()) {
|
470
|
+
return null;
|
471
|
+
}
|
472
|
+
const gap = this.store.dashboardsOption().gap ?? 0; // Get the gap value, default to 0 if not provided
|
473
|
+
const columnWidth = `calc((100% - ${gap}px) / ${this.store.dashboardsOption().column ?? 12})`;
|
474
|
+
const cellHeight = this.store.dashboardsOption().cellHeight;
|
475
|
+
// Adjust the vertical lines to start at the gap value and end before the gap
|
476
|
+
const verticalLines = `linear-gradient(to right, #0000001c 1px, transparent 1px) ${gap}px 0 / ${columnWidth} 100%`;
|
477
|
+
// Adjust the horizontal lines to start at the gap value and end before the gap
|
478
|
+
const horizontalLines = `linear-gradient(to bottom, #0000001c 1px, transparent 1px) 0 ${gap}px / 100% ${cellHeight}px`;
|
479
|
+
return `${verticalLines}, ${horizontalLines}`;
|
480
|
+
}
|
481
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDashboardHomeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
482
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXPDashboardHomeComponent, isStandalone: true, selector: "ng-component", providers: [AXPDesignerService, AXCDashboardStore], ngImport: i0, template: "<axp-layout-simple-page *translate=\"let t\">\n <axp-layout-page-header>\n <axp-layout-title> {{ store.currentDashboard()?.title }} </axp-layout-title>\n\n <axp-layout-description> {{ store.currentDashboard()?.description }} </axp-layout-description>\n 1\n <axp-layout-breadcrumbs>\n <!-- <ax-breadcrumbs [class.ax-hidden]=\"layout.isSmall()\">\n <ng-template #divider>\n <i class=\"fa-regular fa-slash-forward ax-text-xs\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item [routerLink]=\"b.url\" class=\"!ax-text-xs\"> {{ b.title}} </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs> -->\n </axp-layout-breadcrumbs>\n\n <axp-layout-actions>\n <axp-layout-actions-primary>\n <ax-button [text]=\"t('create-new', { scope: rootConfig.config.i18n }) | async\" [color]=\"'primary'\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item\n (onClick)=\"store.addDashboard()\"\n [text]=\" (t('dashboard.dashboard', { scope: rootConfig.config.i18n })| async)!\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-folder-plus\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-divider></ax-divider>\n <ax-button-item\n (onClick)=\"store.addWidget()\"\n [text]=\" (t('dashboard.widget', { scope: rootConfig.config.i18n })| async)!\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-file-arrow-up\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <ax-dropdown-button [text]=\"store.currentDashboard()?.title\" [color]=\"'primary'\">\n <ax-button-item-list>\n @for (dashboard of store.dashboards(); track dashboard.id) {\n <ax-button-item\n [text]=\"dashboard.title\"\n [selected]=\"dashboard.id === store.currentDashboard()?.id\"\n (onClick)=\"store.handleConfigChange(dashboard)\"\n >\n </ax-button-item>\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-screen ax-bg-gray-50 ax-p-4\">\n <!-- Icon -->\n <svg\n class=\"ax-w-16 ax-h-16 ax-text-gray-400 ax-mb-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"\n ></path>\n </svg>\n\n <!-- Message -->\n <h2 class=\"ax-text-xl ax-font-semibold ax-text-gray-700 ax-mb-2\">No Dashboards Found</h2>\n <p class=\"ax-text-gray-500 ax-text-center ax-mb-6\">\n It looks like you don't have any dashboards yet. Create one to get started!\n </p>\n </div>\n }\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-actions-primary>\n <axp-layout-actions-secondary>\n <ax-button-item\n [disabled]=\"store.dashboards().length<=1\"\n [text]=\"(t('dashboard.delete-current-dashboard', { scope: rootConfig.config.i18n }) | async)!\"\n (onClick)=\"store.removeDashboard(store.currentDashboard()?.id!)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-trash\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </axp-layout-actions-secondary>\n </axp-layout-actions>\n </axp-layout-page-header>\n\n <axp-layout-page-content class=\"ax-relative\">\n <ax-grid-layout-container\n [style.background]=\"getGridBackground()\"\n #grid\n [options]=\"store.dashboardsOption()\"\n (onChange)=\"store.onGridChange($event)\"\n >\n @for(widget of store.currentDashboard()?.widget ; track widget.config.id) {\n <ax-grid-layout-widget [options]=\"widget.config\">\n <!-- <div class=\"ax-absolute ax-top-0 ax-size-3 ax-handler ax-bg-blue-500 ax-z-[999]\"></div> -->\n <axc-dashboard-widget-wrapper\n [hasOptions]=\"widget.node?.options?.['hasOptions'] ?? true\"\n (onDelete)=\"store.removeWidget(store.currentDashboard()?.id!,widget.config.id!)\"\n >\n @if(widget.node){\n <axp-widgets-container [context]=\"context()\">\n <ng-container axp-widget-renderer [node]=\"widget.node\" [mode]=\"'edit'\"> </ng-container>\n </axp-widgets-container>\n }\n </axc-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 <!-- Icon -->\n <svg\n class=\"ax-w-16 ax-h-16 ax-text-gray-400 ax-mb-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"\n ></path>\n </svg>\n\n <!-- Message -->\n <h2 class=\"ax-text-xl ax-font-semibold ax-text-gray-700 ax-mb-2\">No Widget Found</h2>\n <p class=\"ax-text-gray-500 ax-text-center ax-mb-6\">\n It looks like you don't have any Widget yet. Create one to get started!\n </p>\n </div>\n }\n </ax-grid-layout-container>\n <div class=\"ax-p-4 ax-absolute ax-bottom-0 ax-right-0\">\n <ax-button\n [color]=\"'primary'\"\n class=\"ax-xl ax-rounded-full\"\n [disabled]=\"!store.currentDashboard()?.widget?.length\"\n (onClick)=\"toggleEdit()\"\n >\n <ax-prefix> <ax-icon class=\"fa-solid fa-pen\"> </ax-icon></ax-prefix>\n </ax-button>\n </div>\n </axp-layout-page-content>\n</axp-layout-simple-page>\n", styles: ["::ng-deep .placeholder-content{position:absolute}\n"], dependencies: [{ kind: "ngmodule", type: AXPLayoutBuilderModule }, { kind: "component", type: i1$1.AXPWidgetContainerComponent, selector: "axp-widgets-container", inputs: ["context", "functions"], outputs: ["onContextChanged"] }, { kind: "directive", type: i1$1.AXPWidgetRendererDirective, selector: "[axp-widget-renderer]", inputs: ["parentNode", "index", "mode", "node"], exportAs: ["widgetRenderer"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.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: i2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i2.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXGridLayoutBuilderModule }, { kind: "component", type: i3$2.AXGridLayoutContainerComponent, selector: "ax-grid-layout-container", inputs: ["options", "isEmpty"], outputs: ["onAdded", "onRemoved", "onWidgetChange", "onChange", "isLayoutRendered", "isEmptyChange"] }, { kind: "component", type: i3$2.AXGridLayoutWidgetComponent, selector: "ax-grid-layout-widget", inputs: ["options"] }, { kind: "component", type: AXPSimplePageLayout, selector: "axp-layout-simple-page" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title, axp-layout-nav-button, axp-layout-description, axp-layout-title-bar, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPThemeLayoutPageHeaderComponent, selector: "axp-layout-page-header" }, { kind: "component", type: AXPThemeLayoutActionsComponent, selector: "axp-layout-actions" }, { kind: "component", type: AXPThemeLayoutPagePrimaryActionsComponent, selector: "axp-layout-actions-primary" }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i4$1.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: AXCDashboardWidgetWrapperComponent, selector: "axc-dashboard-widget-wrapper", inputs: ["hasOptions"], outputs: ["onDelete"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i5.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.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: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: AXTranslatorDirective, selector: "[translate]" }, { kind: "component", type: AXPThemeLayoutPageSecondaryActionsComponent, selector: "axp-layout-actions-secondary" }, { kind: "ngmodule", type: AXBreadcrumbsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
483
|
+
}
|
484
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPDashboardHomeComponent, decorators: [{
|
485
|
+
type: Component,
|
486
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, providers: [AXPDesignerService, AXCDashboardStore], imports: [
|
487
|
+
AXPLayoutBuilderModule,
|
488
|
+
AXButtonModule,
|
489
|
+
AXGridLayoutBuilderModule,
|
490
|
+
AXPSimplePageLayout,
|
491
|
+
AXPThemeLayoutBlockComponent,
|
492
|
+
AXPThemeLayoutPageHeaderComponent,
|
493
|
+
AXPThemeLayoutActionsComponent,
|
494
|
+
AXPThemeLayoutPagePrimaryActionsComponent,
|
495
|
+
AXDropdownButtonModule,
|
496
|
+
AXCDashboardWidgetWrapperComponent,
|
497
|
+
AXDecoratorModule,
|
498
|
+
AXDropdownModule,
|
499
|
+
AsyncPipe,
|
500
|
+
AXTranslatorDirective,
|
501
|
+
AXPThemeLayoutPageSecondaryActionsComponent,
|
502
|
+
AXBreadcrumbsModule,
|
503
|
+
], standalone: true, template: "<axp-layout-simple-page *translate=\"let t\">\n <axp-layout-page-header>\n <axp-layout-title> {{ store.currentDashboard()?.title }} </axp-layout-title>\n\n <axp-layout-description> {{ store.currentDashboard()?.description }} </axp-layout-description>\n 1\n <axp-layout-breadcrumbs>\n <!-- <ax-breadcrumbs [class.ax-hidden]=\"layout.isSmall()\">\n <ng-template #divider>\n <i class=\"fa-regular fa-slash-forward ax-text-xs\"></i>\n </ng-template>\n @for(b of vm.beardcrumbs();track $index;let last=$last) {\n <ax-breadcrumbs-item [routerLink]=\"b.url\" class=\"!ax-text-xs\"> {{ b.title}} </ax-breadcrumbs-item>\n }\n </ax-breadcrumbs> -->\n </axp-layout-breadcrumbs>\n\n <axp-layout-actions>\n <axp-layout-actions-primary>\n <ax-button [text]=\"t('create-new', { scope: rootConfig.config.i18n }) | async\" [color]=\"'primary'\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-plus\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item\n (onClick)=\"store.addDashboard()\"\n [text]=\" (t('dashboard.dashboard', { scope: rootConfig.config.i18n })| async)!\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-folder-plus\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-divider></ax-divider>\n <ax-button-item\n (onClick)=\"store.addWidget()\"\n [text]=\" (t('dashboard.widget', { scope: rootConfig.config.i18n })| async)!\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-file-arrow-up\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <ax-dropdown-button [text]=\"store.currentDashboard()?.title\" [color]=\"'primary'\">\n <ax-button-item-list>\n @for (dashboard of store.dashboards(); track dashboard.id) {\n <ax-button-item\n [text]=\"dashboard.title\"\n [selected]=\"dashboard.id === store.currentDashboard()?.id\"\n (onClick)=\"store.handleConfigChange(dashboard)\"\n >\n </ax-button-item>\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-h-screen ax-bg-gray-50 ax-p-4\">\n <!-- Icon -->\n <svg\n class=\"ax-w-16 ax-h-16 ax-text-gray-400 ax-mb-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"\n ></path>\n </svg>\n\n <!-- Message -->\n <h2 class=\"ax-text-xl ax-font-semibold ax-text-gray-700 ax-mb-2\">No Dashboards Found</h2>\n <p class=\"ax-text-gray-500 ax-text-center ax-mb-6\">\n It looks like you don't have any dashboards yet. Create one to get started!\n </p>\n </div>\n }\n </ax-button-item-list>\n </ax-dropdown-button>\n </axp-layout-actions-primary>\n <axp-layout-actions-secondary>\n <ax-button-item\n [disabled]=\"store.dashboards().length<=1\"\n [text]=\"(t('dashboard.delete-current-dashboard', { scope: rootConfig.config.i18n }) | async)!\"\n (onClick)=\"store.removeDashboard(store.currentDashboard()?.id!)\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-trash\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </axp-layout-actions-secondary>\n </axp-layout-actions>\n </axp-layout-page-header>\n\n <axp-layout-page-content class=\"ax-relative\">\n <ax-grid-layout-container\n [style.background]=\"getGridBackground()\"\n #grid\n [options]=\"store.dashboardsOption()\"\n (onChange)=\"store.onGridChange($event)\"\n >\n @for(widget of store.currentDashboard()?.widget ; track widget.config.id) {\n <ax-grid-layout-widget [options]=\"widget.config\">\n <!-- <div class=\"ax-absolute ax-top-0 ax-size-3 ax-handler ax-bg-blue-500 ax-z-[999]\"></div> -->\n <axc-dashboard-widget-wrapper\n [hasOptions]=\"widget.node?.options?.['hasOptions'] ?? true\"\n (onDelete)=\"store.removeWidget(store.currentDashboard()?.id!,widget.config.id!)\"\n >\n @if(widget.node){\n <axp-widgets-container [context]=\"context()\">\n <ng-container axp-widget-renderer [node]=\"widget.node\" [mode]=\"'edit'\"> </ng-container>\n </axp-widgets-container>\n }\n </axc-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 <!-- Icon -->\n <svg\n class=\"ax-w-16 ax-h-16 ax-text-gray-400 ax-mb-4\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z\"\n ></path>\n </svg>\n\n <!-- Message -->\n <h2 class=\"ax-text-xl ax-font-semibold ax-text-gray-700 ax-mb-2\">No Widget Found</h2>\n <p class=\"ax-text-gray-500 ax-text-center ax-mb-6\">\n It looks like you don't have any Widget yet. Create one to get started!\n </p>\n </div>\n }\n </ax-grid-layout-container>\n <div class=\"ax-p-4 ax-absolute ax-bottom-0 ax-right-0\">\n <ax-button\n [color]=\"'primary'\"\n class=\"ax-xl ax-rounded-full\"\n [disabled]=\"!store.currentDashboard()?.widget?.length\"\n (onClick)=\"toggleEdit()\"\n >\n <ax-prefix> <ax-icon class=\"fa-solid fa-pen\"> </ax-icon></ax-prefix>\n </ax-button>\n </div>\n </axp-layout-page-content>\n</axp-layout-simple-page>\n", styles: ["::ng-deep .placeholder-content{position:absolute}\n"] }]
|
504
|
+
}] });
|
505
|
+
|
506
|
+
export { AXPDashboardHomeComponent };
|
507
|
+
//# sourceMappingURL=acorex-modules-common-index-B3u5feXf.mjs.map
|