@acorex/modules 19.3.0-next.1 → 19.3.0-next.3
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/app-chooser/app-chooser-list.component.d.ts +1 -0
- package/auth/lib/pages/account/profile/profile-slot.component.d.ts +4 -0
- package/auth/lib/pages/account/tenant-chooser/tenant-chooser.component.d.ts +3 -0
- package/auth/lib/pages/account/user-sessions/user-sessions.component.d.ts +71 -0
- package/auth/lib/pages/account/user-sessions/user-sessions.service.d.ts +22 -0
- package/common/index.d.ts +2 -1
- package/common/lib/common.module.d.ts +2 -1
- package/common/lib/entities/dashboard/dashboard.types.d.ts +1 -1
- package/common/lib/features/home-dashboard/dashboard-home/home-dashboard.d.ts +5 -2
- package/common/lib/features/home-dashboard/dashboard-home/home-dashboard.store.d.ts +2 -0
- package/common/lib/features/home-dashboard/dashboard-home/home-dashboard.type.d.ts +1 -1
- package/common/lib/features/home-dashboard/home-dashboard.module.d.ts +7 -0
- package/common/lib/features/home-dashboard/widget-wrapper/dashboard-widget-wrapper.d.ts +10 -3
- package/common/lib/features/home-dashboard/widgets/dashboard-shortcut/dashboard-shortcut-widget-view.component.d.ts +24 -0
- package/common/lib/features/home-dashboard/widgets/dashboard-shortcut/dashboard-shortcut-widget.config.d.ts +2 -0
- package/common/lib/menu.provider.d.ts +1 -0
- package/common/lib/widgets-names-list.d.ts +39 -0
- package/document-management/index.d.ts +1 -1
- package/document-management/lib/features/file-type/widgets/file-type-extension/file-type-extension-column.component.d.ts +2 -2
- package/document-management/lib/features/file-type/widgets/file-type-extension/file-type-extension-designer.component.d.ts +2 -2
- package/document-management/lib/features/file-type/widgets/file-type-extension/file-type-extension-edit.component.d.ts +2 -2
- package/document-management/lib/features/file-type/widgets/file-type-extension/file-type-extension-view.component.d.ts +2 -2
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-column.component.d.ts +2 -2
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.d.ts +10 -2
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-print.component.d.ts +2 -2
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-view.component.d.ts +2 -2
- package/fesm2022/{acorex-modules-application-management-module-designer.component-Dd_lmV6C.mjs → acorex-modules-application-management-module-designer.component-ClxaJcjD.mjs} +9 -9
- package/fesm2022/{acorex-modules-application-management-module-designer.component-Dd_lmV6C.mjs.map → acorex-modules-application-management-module-designer.component-ClxaJcjD.mjs.map} +1 -1
- package/fesm2022/acorex-modules-application-management.mjs +14 -15
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-5o4GqqVA.mjs → acorex-modules-auth-acorex-modules-auth-DWcYgyZA.mjs} +100 -28
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-DWcYgyZA.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-NuQzP5DC.mjs → acorex-modules-auth-app-chooser.component-rr25Ry55.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-app-chooser.component-NuQzP5DC.mjs.map → acorex-modules-auth-app-chooser.component-rr25Ry55.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-login.module-B_WrZQJx.mjs → acorex-modules-auth-login.module-BgTtZuTg.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-B_WrZQJx.mjs.map → acorex-modules-auth-login.module-BgTtZuTg.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-hDbrFbwO.mjs → acorex-modules-auth-master.layout-he9vVKsC.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-hDbrFbwO.mjs.map → acorex-modules-auth-master.layout-he9vVKsC.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-DDE0M5GE.mjs → acorex-modules-auth-password.component-U16w7Rq4.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-password.component-DDE0M5GE.mjs.map → acorex-modules-auth-password.component-U16w7Rq4.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-BnT_IaqN.mjs → acorex-modules-auth-password.component-_ceO6nyb.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-password.component-BnT_IaqN.mjs.map → acorex-modules-auth-password.component-_ceO6nyb.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-routes-Da02kID6.mjs → acorex-modules-auth-routes-CSGjcpD8.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-Da02kID6.mjs.map → acorex-modules-auth-routes-CSGjcpD8.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-settings.provider-CM-T8nbI.mjs +128 -0
- package/fesm2022/acorex-modules-auth-settings.provider-CM-T8nbI.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-tenant-chooser.component-YZBKyJFH.mjs → acorex-modules-auth-tenant-chooser.component-B5VHdItj.mjs} +24 -10
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-B5VHdItj.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-B2ZYJOrN.mjs → acorex-modules-auth-two-factor-code.component-PqOn37Gg.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-B2ZYJOrN.mjs.map → acorex-modules-auth-two-factor-code.component-PqOn37Gg.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-BrDpX4X1.mjs → acorex-modules-auth-two-factor.module-B9UV3Nxb.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-two-factor.module-BrDpX4X1.mjs.map → acorex-modules-auth-two-factor.module-B9UV3Nxb.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-user-sessions.component-Dx0zd4Nj.mjs +135 -0
- package/fesm2022/acorex-modules-auth-user-sessions.component-Dx0zd4Nj.mjs.map +1 -0
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/acorex-modules-common-dashboard-shortcut-widget-view.component-C9RGRmuR.mjs +139 -0
- package/fesm2022/acorex-modules-common-dashboard-shortcut-widget-view.component-C9RGRmuR.mjs.map +1 -0
- package/fesm2022/{acorex-modules-common-index-rvP9ISgL.mjs → acorex-modules-common-index-Dt3vRkkx.mjs} +141 -37
- package/fesm2022/acorex-modules-common-index-Dt3vRkkx.mjs.map +1 -0
- package/fesm2022/acorex-modules-common.mjs +168 -30
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +1 -1
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-C36haVZ_.mjs → acorex-modules-document-management-acorex-modules-document-management-CRoewhvP.mjs} +59 -56
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-CRoewhvP.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-C9YP1aFi.mjs → acorex-modules-document-management-create-folder-dialog.component-m7SsCGA1.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-C9YP1aFi.mjs.map → acorex-modules-document-management-create-folder-dialog.component-m7SsCGA1.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-details-view.component-BFMgAxeK.mjs → acorex-modules-document-management-details-view.component-CWvWCgXL.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-details-view.component-BFMgAxeK.mjs.map → acorex-modules-document-management-details-view.component-CWvWCgXL.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-Bo-I7TN5.mjs → acorex-modules-document-management-drive-choose.component-Dh9nJCMs.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-Bo-I7TN5.mjs.map → acorex-modules-document-management-drive-choose.component-Dh9nJCMs.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-CZ-GUtnO.mjs → acorex-modules-document-management-large-icons-view.component-DZ5MHPYz.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-CZ-GUtnO.mjs.map → acorex-modules-document-management-large-icons-view.component-DZ5MHPYz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-Cw5yZ851.mjs → acorex-modules-document-management-large-tiles-view.component-CS_2hXao.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-Cw5yZ851.mjs.map → acorex-modules-document-management-large-tiles-view.component-CS_2hXao.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-list-view.component-BPkaAGjR.mjs → acorex-modules-document-management-list-view.component-L1hUtLp8.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-list-view.component-BPkaAGjR.mjs.map → acorex-modules-document-management-list-view.component-L1hUtLp8.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DEhPxW3b.mjs → acorex-modules-document-management-rename-node-dialog.component-4fkD6VF4.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DEhPxW3b.mjs.map → acorex-modules-document-management-rename-node-dialog.component-4fkD6VF4.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-Cz-sHFPj.mjs → acorex-modules-document-management-small-icons-view.component-CfHVW4AR.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-Cz-sHFPj.mjs.map → acorex-modules-document-management-small-icons-view.component-CfHVW4AR.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-C_SlJ79h.mjs → acorex-modules-document-management-small-tiles-view.component-CJJ4KRcD.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-C_SlJ79h.mjs.map → acorex-modules-document-management-small-tiles-view.component-CJJ4KRcD.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-C3bCqH0S.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-Di2Dkvbh.mjs} +19 -18
- package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-Di2Dkvbh.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-category.entity-B8FoSfDd.mjs → acorex-modules-form-template-management-category.entity-Cv-0gZOh.mjs} +12 -5
- package/fesm2022/acorex-modules-form-template-management-category.entity-Cv-0gZOh.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-setting.provider-2gDLkJ82.mjs → acorex-modules-form-template-management-settings.provider-BZoYtsfh.mjs} +13 -5
- package/fesm2022/acorex-modules-form-template-management-settings.provider-BZoYtsfh.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-CGLJ_4tB.mjs → acorex-modules-form-template-management-template-widget-edit.component-CNFyBxpm.mjs} +5 -5
- package/fesm2022/acorex-modules-form-template-management-template-widget-edit.component-CNFyBxpm.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-template.entity-Cm57FCm7.mjs → acorex-modules-form-template-management-template.entity-DbWv7ar9.mjs} +9 -9
- package/fesm2022/acorex-modules-form-template-management-template.entity-DbWv7ar9.mjs.map +1 -0
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-C8QVMY0f.mjs → acorex-modules-form-template-management-viewer-popup.component-CMrQl-UQ.mjs} +3 -3
- package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-C8QVMY0f.mjs.map → acorex-modules-form-template-management-viewer-popup.component-CMrQl-UQ.mjs.map} +1 -1
- package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
- package/fesm2022/acorex-modules-log-management.mjs +1351 -0
- package/fesm2022/acorex-modules-log-management.mjs.map +1 -0
- package/fesm2022/acorex-modules-notification-management.mjs +22 -21
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-organization-management-branch.entity-fs_iKM4S.mjs +489 -0
- package/fesm2022/acorex-modules-organization-management-branch.entity-fs_iKM4S.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-chart.entity-DnmNyyD2.mjs → acorex-modules-organization-management-chart.entity-UAn44WCP.mjs} +14 -13
- package/fesm2022/acorex-modules-organization-management-chart.entity-UAn44WCP.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-company.entity-BRkEcDNt.mjs → acorex-modules-organization-management-company.entity-D1A1HSkC.mjs} +12 -11
- package/fesm2022/acorex-modules-organization-management-company.entity-D1A1HSkC.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-employee.entity-Cp5TejzT.mjs → acorex-modules-organization-management-department.entity-DI9QpZ1d.mjs} +192 -85
- package/fesm2022/acorex-modules-organization-management-department.entity-DI9QpZ1d.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-division.entity-4Gxc1dGd.mjs +442 -0
- package/fesm2022/acorex-modules-organization-management-division.entity-4Gxc1dGd.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-employee.entity-DSvtxcC3.mjs +601 -0
- package/fesm2022/acorex-modules-organization-management-employee.entity-DSvtxcC3.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-employment-type.entity-Ul10Mdwm.mjs → acorex-modules-organization-management-employment-type.entity-CWYu9tIg.mjs} +21 -25
- package/fesm2022/acorex-modules-organization-management-employment-type.entity-CWYu9tIg.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-BFu7TUGC.mjs → acorex-modules-organization-management-org-chart-configuration.page-DFqOS0So.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-BFu7TUGC.mjs.map → acorex-modules-organization-management-org-chart-configuration.page-DFqOS0So.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-B4ohp4o5.mjs → acorex-modules-organization-management-org-chart-configuration.service-2EZNvjAH.mjs} +2 -2
- package/fesm2022/acorex-modules-organization-management-org-chart-configuration.service-2EZNvjAH.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-BIytyLYP.mjs → acorex-modules-organization-management-org-chart.page-eDTvyQpA.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-BIytyLYP.mjs.map → acorex-modules-organization-management-org-chart.page-eDTvyQpA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-position.entity-BpQbwW-x.mjs → acorex-modules-organization-management-position.entity-DhPT9kzv.mjs} +12 -11
- package/fesm2022/acorex-modules-organization-management-position.entity-DhPT9kzv.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-division.entity-qyDyhl-q.mjs → acorex-modules-organization-management-role.entity-C-AIIaDo.mjs} +31 -39
- package/fesm2022/acorex-modules-organization-management-role.entity-C-AIIaDo.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-setting.keys-CF6Giykz.mjs → acorex-modules-organization-management-settings.keys-B3cgSi_S.mjs} +2 -2
- package/fesm2022/acorex-modules-organization-management-settings.keys-B3cgSi_S.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-setting.provider-BPjFNA5E.mjs → acorex-modules-organization-management-settings.provider-hlbUXugb.mjs} +2 -2
- package/fesm2022/acorex-modules-organization-management-settings.provider-hlbUXugb.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-branch.entity-e5pFx82N.mjs → acorex-modules-organization-management-team.entity-DZqK-yLT.mjs} +71 -60
- package/fesm2022/acorex-modules-organization-management-team.entity-DZqK-yLT.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management.mjs +77 -40
- package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-C-vMSeD0.mjs → acorex-modules-platform-management-acorex-modules-platform-management-pKyqsPS6.mjs} +3772 -1443
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-pKyqsPS6.mjs.map +1 -0
- package/fesm2022/acorex-modules-platform-management-capture-screen.component-DN1Jnp7_.mjs +28 -0
- package/fesm2022/acorex-modules-platform-management-capture-screen.component-DN1Jnp7_.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-list-version.component-EHtlPye1.mjs → acorex-modules-platform-management-list-version.component-SLcO7Tof.mjs} +7 -7
- package/fesm2022/{acorex-modules-platform-management-list-version.component-EHtlPye1.mjs.map → acorex-modules-platform-management-list-version.component-SLcO7Tof.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-setting.provider-Bbd_enhk.mjs → acorex-modules-platform-management-settings.provider-CsrDpQQi.mjs} +34 -18
- package/fesm2022/acorex-modules-platform-management-settings.provider-CsrDpQQi.mjs.map +1 -0
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/acorex-modules-security-management.mjs +1147 -461
- package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-text-template-management-setting.provider-fX0dhWUL.mjs → acorex-modules-text-template-management-settings.provider-fX0dhWUL.mjs} +1 -1
- package/fesm2022/acorex-modules-text-template-management-settings.provider-fX0dhWUL.mjs.map +1 -0
- package/fesm2022/acorex-modules-text-template-management.mjs +2 -2
- package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -1
- package/form-template-management/lib/features/designer/widgets/template/template-widget-designer.component.d.ts +2 -2
- package/form-template-management/lib/features/designer/widgets/template/template-widget-edit.component.d.ts +2 -2
- package/form-template-management/lib/features/designer/widgets/template/template-widget-view.component.d.ts +2 -2
- package/form-template-management/lib/features/designer/widgets/template-designer/template-designer-widget-view.component.d.ts +2 -2
- package/form-template-management/lib/settings.keys.d.ts +6 -0
- package/log-management/README.md +3 -0
- package/log-management/index.d.ts +7 -0
- package/log-management/lib/const.d.ts +20 -0
- package/log-management/lib/entities/axp-log/axp-log.entity.d.ts +3 -0
- package/log-management/lib/entities/axp-log/axp-log.service.d.ts +10 -0
- package/log-management/lib/entities/axp-log/axp-log.types.d.ts +23 -0
- package/log-management/lib/entities/axp-log/index.d.ts +3 -0
- package/log-management/lib/entity.provider.d.ts +10 -0
- package/log-management/lib/log-management.module.d.ts +6 -0
- package/log-management/lib/menu.provider.d.ts +5 -0
- package/log-management/lib/permission.provider.d.ts +4 -0
- package/log-management/lib/search-command.provider.d.ts +4 -0
- package/log-management/lib/settings.keys.d.ts +16 -0
- package/log-management/lib/settings.provider.d.ts +12 -0
- package/notification-management/index.d.ts +1 -1
- package/organization-management/lib/entities/branch/branch.types.d.ts +6 -0
- package/organization-management/lib/entities/department/department.types.d.ts +5 -0
- package/organization-management/lib/entities/division/division.types.d.ts +5 -0
- package/organization-management/lib/entities/employee/employee.types.d.ts +9 -1
- package/organization-management/lib/entities/role/role.types.d.ts +1 -1
- package/organization-management/lib/entities/team/team.types.d.ts +4 -1
- package/organization-management/lib/{setting.keys.d.ts → settings.keys.d.ts} +1 -1
- package/package.json +5 -1
- package/platform-management/index.d.ts +1 -0
- package/platform-management/lib/const.d.ts +24 -0
- package/platform-management/lib/entities/data-source/coulmn-def.widget.d.ts +3 -2
- package/platform-management/lib/entities/index.d.ts +3 -0
- package/platform-management/lib/entities/issue-type/index.d.ts +3 -0
- package/platform-management/lib/entities/issue-type/issue-type.entity.d.ts +3 -0
- package/platform-management/lib/entities/issue-type/issue-type.service.d.ts +10 -0
- package/platform-management/lib/entities/issue-type/issue-type.types.d.ts +6 -0
- package/platform-management/lib/entities/meta-data-definition/meta-data-definition.types.d.ts +3 -1
- package/platform-management/lib/entities/meta-data-definition-category/category.types.d.ts +2 -0
- package/platform-management/lib/entities/my-reported-issues/index.d.ts +3 -0
- package/platform-management/lib/entities/my-reported-issues/my-reported-issues.entity.d.ts +3 -0
- package/platform-management/lib/entities/my-reported-issues/my-reported-issues.service.d.ts +10 -0
- package/platform-management/lib/entities/my-reported-issues/my-reported-issues.types.d.ts +5 -0
- package/platform-management/lib/entities/reported-issues/index.d.ts +3 -0
- package/platform-management/lib/entities/reported-issues/reported-issues.entity.d.ts +3 -0
- package/platform-management/lib/entities/reported-issues/reported-issues.service.d.ts +10 -0
- package/platform-management/lib/entities/reported-issues/reported-issues.types.d.ts +21 -0
- package/platform-management/lib/features/index.d.ts +1 -0
- package/platform-management/lib/features/release-notes/settings.keys.d.ts +3 -0
- package/platform-management/lib/features/release-notes/settings.provider.d.ts +11 -0
- package/platform-management/lib/features/support/capture-screen/capture-screen.types.d.ts +19 -0
- package/platform-management/lib/features/support/capture-screen/components/capture-screen-component/capture-screen.component.d.ts +37 -0
- package/platform-management/lib/features/support/capture-screen/index.d.ts +2 -0
- package/platform-management/lib/features/support/capture-screen/services/capture-screen.service.d.ts +33 -0
- package/platform-management/lib/features/support/index.d.ts +2 -0
- package/platform-management/lib/features/support/report-issue/components/index.d.ts +1 -0
- package/platform-management/lib/features/support/report-issue/components/report-new-issue/report-new-issue.component.d.ts +40 -0
- package/platform-management/lib/features/support/report-issue/index.d.ts +2 -0
- package/platform-management/lib/features/support/report-issue/report-issue.types.d.ts +19 -0
- package/platform-management/lib/features/support/report-issue/services/report-new-issue.viewmodel.d.ts +15 -0
- package/platform-management/lib/features/support/report-issue/workflows/index.d.ts +1 -0
- package/platform-management/lib/features/support/report-issue/workflows/show-report-issue.workflow.d.ts +10 -0
- package/security-management/lib/const.d.ts +6 -0
- package/security-management/lib/entities/device-sessions/device-sessions.entity.d.ts +3 -0
- package/security-management/lib/entities/device-sessions/device-sessions.module.d.ts +6 -0
- package/security-management/lib/entities/device-sessions/device-sessions.service.d.ts +12 -0
- package/security-management/lib/entities/device-sessions/device-sessions.types.d.ts +34 -0
- package/security-management/lib/entities/device-sessions/index.d.ts +4 -0
- package/security-management/lib/entities/index.d.ts +1 -0
- package/security-management/lib/menu.keys.d.ts +2 -1
- package/security-management/lib/security-management.module.d.ts +6 -4
- package/security-management/lib/workflows/terminate-entity.workflow.d.ts +27 -0
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-5o4GqqVA.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-setting.provider-D3A0WUgJ.mjs +0 -271
- package/fesm2022/acorex-modules-auth-setting.provider-D3A0WUgJ.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-YZBKyJFH.mjs.map +0 -1
- package/fesm2022/acorex-modules-common-index-rvP9ISgL.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-C36haVZ_.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-C3bCqH0S.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-category.entity-B8FoSfDd.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-setting.provider-2gDLkJ82.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-template-widget-edit.component-CGLJ_4tB.mjs.map +0 -1
- package/fesm2022/acorex-modules-form-template-management-template.entity-Cm57FCm7.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-branch.entity-e5pFx82N.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-chart.entity-DnmNyyD2.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-company.entity-BRkEcDNt.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-department.entity-ChJXNpXn.mjs +0 -256
- package/fesm2022/acorex-modules-organization-management-department.entity-ChJXNpXn.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-division.entity-qyDyhl-q.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-employee.entity-Cp5TejzT.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-employment-type.entity-Ul10Mdwm.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart-configuration.service-B4ohp4o5.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-position.entity-BpQbwW-x.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-role.entity-B9N4qA_E.mjs +0 -238
- package/fesm2022/acorex-modules-organization-management-role.entity-B9N4qA_E.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-setting.keys-CF6Giykz.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-setting.provider-BPjFNA5E.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-team.entity-7q6Eg74A.mjs +0 -238
- package/fesm2022/acorex-modules-organization-management-team.entity-7q6Eg74A.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-C-vMSeD0.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-setting.provider-Bbd_enhk.mjs.map +0 -1
- package/fesm2022/acorex-modules-text-template-management-setting.provider-fX0dhWUL.mjs.map +0 -1
- /package/auth/lib/{setting.provider.d.ts → settings.provider.d.ts} +0 -0
- /package/common/lib/{setting.provider.d.ts → settings.provider.d.ts} +0 -0
- /package/document-management/lib/{setting.provider.d.ts → settings.provider.d.ts} +0 -0
- /package/form-template-management/lib/{setting.provider.d.ts → settings.provider.d.ts} +0 -0
- /package/notification-management/lib/{setting.keys.d.ts → settings.keys.d.ts} +0 -0
- /package/notification-management/lib/{setting.provider.d.ts → settings.provider.d.ts} +0 -0
- /package/organization-management/lib/{setting.provider.d.ts → settings.provider.d.ts} +0 -0
- /package/platform-management/lib/features/common/regional/{setting.keys.d.ts → settings.keys.d.ts} +0 -0
- /package/platform-management/lib/features/common/regional/{setting.provider.d.ts → settings.provider.d.ts} +0 -0
- /package/text-template-management/lib/{setting.provider.d.ts → settings.provider.d.ts} +0 -0
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"acorex-modules-auth-acorex-modules-auth-5o4GqqVA.mjs","sources":["../../../../libs/modules/auth/src/lib/error-handler.ts","../../../../libs/modules/auth/src/lib/auth.config.ts","../../../../libs/modules/auth/src/lib/auth.routes.ts","../../../../libs/modules/auth/src/lib/menu.provider.ts","../../../../libs/modules/auth/src/lib/pages/account/app-chooser/app-chooser-list.component.ts","../../../../libs/modules/auth/src/lib/pages/account/app-chooser/app-chooser-list.component.html","../../../../libs/modules/auth/src/lib/pages/account/app-chooser/app-chooser-slot.component.ts","../../../../libs/modules/auth/src/lib/pages/account/app-chooser/app-chooser-slot.component.html","../../../../libs/modules/auth/src/lib/pages/account/avatar/avatar.component.ts","../../../../libs/modules/auth/src/lib/pages/account/avatar/avatar.component.html","../../../../libs/modules/auth/src/lib/pages/account/tenant-chooser/tenant-chooser-dropdown.component.ts","../../../../libs/modules/auth/src/lib/pages/account/tenant-chooser/tenant-chooser-dropdown.component.html","../../../../libs/modules/auth/src/lib/pages/account/profile/profile-slot.component.ts","../../../../libs/modules/auth/src/lib/pages/account/profile/profile-slot.component.html","../../../../libs/modules/auth/src/lib/pages/account/user-profile-card/user-profile-card.component.ts","../../../../libs/modules/auth/src/lib/pages/account/user-profile-card/user-profile-card.component.html","../../../../libs/modules/auth/src/lib/pages/account/account.module.ts","../../../../libs/modules/auth/src/lib/auth.module.ts","../../../../libs/modules/auth/src/lib/shared/services/idle.service.ts","../../../../libs/modules/auth/src/acorex-modules-auth.ts"],"sourcesContent":["import { AXPUnauthenticatedError, AXPUnauthorizedError } from '@acorex/platform/auth';\nimport { AXPErrorHandler } from '@acorex/platform/common';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, NgZone, inject, isDevMode } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Injectable()\nexport class AXMAuthErrorHandler implements AXPErrorHandler {\n private router = inject(Router);\n private layoutService = inject(AXPLayoutThemeService);\n\n handleError(error: Error, next: (error: any) => void): void {\n if (error instanceof HttpErrorResponse) {\n // if (error.status == 401) {\n // this.router.navigate(['/auth/login']);\n // }\n // else if (error.status == 404) {\n // this.router.navigate(['/404']);\n // }\n } else if (error instanceof AXPUnauthorizedError) {\n const redirectUrl = error.data?.redirectUrl;\n console.error(error.message);\n this.router.navigate(['/401'], { queryParams: redirectUrl ? { redirectUrl: redirectUrl } : null });\n } else if (error instanceof AXPUnauthenticatedError) {\n console.error(error.message);\n const redirectUrl = error.data?.redirectUrl;\n this.router.navigate(['/auth/login'], { queryParams: redirectUrl ? { redirectUrl: redirectUrl } : null });\n } else {\n if (isDevMode()) {\n next(error); // Pass the error to the next handler\n } else {\n next(error); // maybe we need a error page\n }\n }\n this.layoutService.setNavigationLoading(false);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { AuthConfig } from 'angular-oauth2-oidc';\n\nexport enum AXMAuthenticationTypes {\n UsernamePassword,\n UsernameEmailPassword,\n EmailPassword,\n MobilePassword,\n EmailCode,\n MobileCode,\n}\n\nexport const AXM_AUTH_CONFIG_TOKEN = new InjectionToken<AXMAuthConfigs>('app-module-auth-config', {\n providedIn: 'root',\n factory: () => {\n return AXMDefaultAuthConfigs;\n },\n});\n\nexport interface AXMAuthConfigs {\n type: AXMAuthenticationTypes;\n // oidc_settings?: UserManagerSettings;\n authConfig?: AuthConfig;\n end_url?: string;\n signup?: {\n enable: boolean;\n url?: string;\n };\n signin_google?: boolean;\n signin_apple?: boolean;\n signinPage?: {\n description: string;\n slogan: string;\n };\n idleTimeout?: number;\n}\n\nexport const AXMDefaultAuthConfigs: AXMAuthConfigs = {\n type: AXMAuthenticationTypes.UsernamePassword,\n};\n\nexport function configAuthModule(config: Partial<AXMAuthConfigs> = AXMDefaultAuthConfigs): AXMAuthConfigs {\n return { ...AXMDefaultAuthConfigs, ...config };\n}\n","import { Route } from '@angular/router';\nexport const routes: Route[] = [\n {\n path: 'auth',\n children: [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'login',\n },\n {\n path: '',\n loadComponent: () =>\n import('./shared/layouts/master/master.layout').then((c) => c.AXPAuthMasterLayoutComponent),\n loadChildren: () => import('./pages/login/login.module').then((c) => c.AXPSignInModule),\n },\n {\n path: '',\n loadComponent: () =>\n import('./shared/layouts/master/master.layout').then((c) => c.AXPAuthMasterLayoutComponent),\n loadChildren: () => import('./pages/two-factor/two-factor.module').then((c) => c.AXPTwoFactorModule),\n },\n {\n path: '',\n loadComponent: () =>\n import('./shared/layouts/master/master.layout').then((c) => c.AXPAuthMasterLayoutComponent),\n loadChildren: () => import('./pages/forgot/routes').then((c) => c),\n },\n {\n path: 'account',\n loadComponent: () => import('./shared/layouts/blank/blank.layout').then((c) => c.AXPAuthBlankLayoutComponent),\n loadChildren: () => import('./pages/account/account.module').then((c) => c.AXPAccountModule),\n },\n // {\n // path: '',\n // loadComponent: () =>\n // import('./shared/layouts/master/master.layout').then((c) => c.AXPAuthMasterLayoutComponent),\n // loadChildren: () => import('./register/register.module').then((c) => c.AXPRegisterModule),\n // },\n ],\n },\n];\n","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\n\nexport class AXMSecurityManagmentModuleMenuProvider implements AXPMenuProvider {\n private sessionService = inject(AXPSessionService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n //\n const scope = 'auth';\n context.addItems([\n {\n text: `t('profile.title', {scope: \"${scope}\"})`,\n name: 'user-profile',\n icon: 'fa-light fa-user',\n children: [\n {\n text: `t('profile.edit', {scope: \"${scope}\"})`,\n name: 'edit-profile',\n icon: 'fa-light fa-address-card',\n },\n ],\n },\n ]);\n }\n}\n","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPApplication, AXPSessionService } from '@acorex/platform/auth';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'axp-app-chooser-list',\n templateUrl: 'app-chooser-list.component.html',\n imports: [CommonModule, AXDecoratorModule, AXLoadingModule],\n})\nexport class AXPAppChooserListComponent {\n private router = inject(Router);\n private sessionService = inject(AXPSessionService);\n\n protected selectedApplication: AXPApplication | null = null;\n protected applications$ = this.sessionService.applications$;\n\n async chooseApplication(item: AXPApplication) {\n this.selectedApplication = item;\n await this.sessionService.setApplication(item);\n this.router.navigate([`/${item.name}/home`]);\n }\n}\n","<div class=\" ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\n @for(application of (applications$ | async); track $index){\n <div class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-3 ax-items-start ax-cursor-pointer\"\n (click)=\"chooseApplication(application)\">\n <div class=\"ax-flex ax-flex-1 ax-gap-2 ax-items-center ax-justify-center ax-font-medium\">\n <div\n class=\"ax-w-12 ax-h-12 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-m-auto\">\n <ax-icon class=\"fa-solid fa-computer ax-text-neutral-500 ax-text-lg\"> </ax-icon>\n <!-- TODO: logo instead of application icon -->\n <!-- <axp-logo [source]=\"application.logo\" [attr.alt]=\"application.title\"\n class=\"!ax-flex ax-items-center ax-justify-center !ax-text-sm ax-mx-auto ax-w-10 ax-h-10 ax-bg-neutral-200 ax-rounded-full\"></axp-logo> -->\n </div>\n <span class=\"ax-flex-1 ax-text-start md:ax-text-base ax-text-sm\">{{ application.title }}</span>\n <span class=\"ax-text-gray-500 md:ax-text-sm ax-text-xs\">{{application.editionName}}</span>\n @if(application.name===selectedApplication?.name){\n <ax-loading></ax-loading>\n }@else {\n <ax-icon class=\"fa-solid fa-chevron-right ax-text-neutral-400\"> </ax-icon>\n }\n </div>\n </div>\n }\n</div>","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXPApplication, AXPSessionService } from '@acorex/platform/auth';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { of } from 'rxjs';\nimport { AXPAppChooserListComponent } from './app-chooser-list.component';\n\n@Component({\n templateUrl: './app-chooser-slot.component.html',\n imports: [CommonModule, AXButtonModule, AXPopoverModule, AXDecoratorModule, AXPAppChooserListComponent],\n})\nexport class AXMAppChooserSlotComponent {\n private sessionService = inject(AXPSessionService);\n protected tenant$ = this.sessionService.tenant$;\n\n protected application$ = this.sessionService.application$;\n protected applications$ = of([]);\n\n private router = inject(Router);\n\n async chooseApplication(item: AXPApplication) {\n //await this.sessionService.selectApplication(item.name);\n this.router.navigate([`/${item.name}/home`]);\n }\n}\n","@if(((applications$ | async)?.length ?? 0) > 1) {\n<ax-button color=\"default\" look=\"blank\" #appChooser>\n <ax-icon>\n <i class=\"fa-solid fa-grid-2 ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n</ax-button>\n<ax-popover [target]=\"appChooser\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-lightest ax-border ax-overflow-hidden ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64 ax-p-3\">\n <axp-app-chooser-list></axp-app-chooser-list>\n </div>\n</ax-popover>\n}\n","import { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXHtmlEvent, AXStyleColorType, MXBaseComponent } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPDataProvider } from '@acorex/platform/common';\nimport { Component, inject, input, signal } from '@angular/core';\nimport { first } from 'rxjs';\n\n@Component({\n selector: 'axp-avatar',\n templateUrl: './avatar.component.html',\n imports: [AXDecoratorModule, AXAvatarModule, AXImageModule],\n})\nexport class AXMAvatarComponent extends MXBaseComponent {\n private sessionService = inject(AXPSessionService);\n private dataService = inject(AXPDataProvider, { optional: true });\n\n protected hasPicture = signal(false);\n protected avatarText = signal<string>('');\n protected src!: string;\n\n public size = input<number>(48);\n public color = input<AXStyleColorType>('default');\n public look = input<'twotone' | 'solid'>('twotone');\n\n protected user$ = this.sessionService.user$;\n\n constructor() {\n super();\n this.loadImage();\n this.getAvatarText();\n }\n\n protected onImageError(event: AXHtmlEvent<ErrorEvent>) {\n this.hasPicture.set(false);\n }\n\n protected onImageLoad(event: AXHtmlEvent<Event>) {\n this.hasPicture.set(true);\n }\n\n private async loadImage() {\n try {\n const url = this.sessionService.user?.avatar as string;\n if (url?.toLowerCase().startsWith('http')) {\n this.src = url;\n } else if (this.sessionService.user?.avatar != 'null' && this.dataService) {\n const blob = await this.dataService.viewFile(url, '');\n this.src = URL.createObjectURL(blob);\n } else {\n //this.src = this.mockerService.avatar();\n }\n } catch (error) {\n this.hasPicture.set(false);\n console.error('Failed to load image by ID:', error);\n this.src = '';\n }\n }\n\n protected getAvatarText = () => {\n this.user$.pipe(first()).subscribe((user) => {\n const names = user?.title.split(' ');\n if (names?.length && names?.length > 1) {\n this.avatarText.set(`${names[0][0].toUpperCase()}${names[names.length - 1][0].toUpperCase()}`);\n } else return this.avatarText.set('AC');\n });\n };\n}\n","<ax-avatar #avatar (error)=\"this.src = 'path/to/default-image.jpg'\" [size]=\"size()\" [color]=\"color()\" [look]=\"look()\"\n class=\"ax-cursor-pointer\">\n @if(hasPicture()){\n <ax-image (onError)=\"onImageError($event)\" (onLoad)=\"onImageLoad($event)\" [src]=\"src\"></ax-image>\n }@else{\n <ax-text>\n <small class=\"ax-text-xs ax-font-semibold\">{{ avatarText() }}</small>\n </ax-text>\n }\n</ax-avatar>","import { AXChipsModule } from '@acorex/components/chips';\nimport { AXTagModule } from '@acorex/components/tag';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AsyncPipe, CommonModule, NgIf } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AXButtonModule } from '@acorex/components/button';\n\n@Component({\n selector: 'axp-tenant-chooser-dropdown',\n templateUrl: 'tenant-chooser-dropdown.component.html',\n imports: [AXDecoratorModule, AXChipsModule, AXTagModule, CommonModule, AXButtonModule]\n})\nexport class AXPTenantChooserDropdownComponent {\n private router = inject(Router);\n private sessionService = inject(AXPSessionService);\n protected tenants$ = this.sessionService.tenants$;\n protected tenant = this.sessionService.tenant;\n\n tenantChooser() {\n this.router.navigate(['/auth/account/tenant-chooser']);\n }\n}\n","<!-- <ng-container *ngIf=\"tenants$ | async as tenants\">\n @if(tenants.length>1){\n <div (click)=\"tenantChooser()\"\n class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500 ax-text-xs\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n <ax-icon class=\"fa-regular fa-chevron-down ax-text-neutral-400\"></ax-icon>\n </div>\n }@else {\n <div class=\"ax-flex ax-items-center ax-border ax-rounded-full ax-px-4 ax-py-1 ax-gap-2 ax-cursor-pointer\">\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500\"></ax-icon>\n <p class=\"ax-text-neutral-500 ax-text-sm ax-font-medium\">\n {{ tenant?.title }}\n </p>\n </div>\n }\n</ng-container> -->\n\n<ng-container *ngIf=\"tenants$ | async as tenants\">\n <ax-button [text]=\"tenant?.title ?? ''\" class=\"ax-xs\" look=\"blank\">\n @if(tenants.length > 1){\n <ax-suffix>\n <ax-icon class=\"fa-solid fa-caret-down\"></ax-icon>\n </ax-suffix>\n }\n </ax-button>\n</ng-container>","import { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation, inject } from '@angular/core';\nimport { Router, RouterModule } from '@angular/router';\nimport { AXMAvatarComponent } from '../avatar/avatar.component';\nimport { AXPTenantChooserDropdownComponent } from '../tenant-chooser/tenant-chooser-dropdown.component';\n\n@Component({\n templateUrl: './profile-slot.component.html',\n styleUrl: './profile-slot.component.scss',\n imports: [\n CommonModule,\n RouterModule,\n //\n AXImageModule,\n AXAvatarModule,\n AXPopoverModule,\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXTranslationModule,\n //\n\n AXPTenantChooserDropdownComponent,\n AXMAvatarComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMAuthProfileSlotComponent {\n private router = inject(Router);\n private sessionService = inject(AXPSessionService);\n private themeService = inject(AXPLayoutThemeService);\n\n protected isDarkMode = this.themeService.isDarkMode;\n\n protected user$ = this.sessionService.user$;\n protected tenant$ = this.sessionService.tenant$;\n\n protected isAuthenticated$ = this.sessionService.isAuthenticated$;\n\n protected appName = () => this.sessionService.application?.name;\n\n @ViewChild('profilePopover') profilePopover!: AXPopoverComponent;\n\n editProfile() {\n this.router.navigate([`/${this.appName()}/m/SecurityManagement/e/profile/0/view`]);\n }\n\n async logOut() {\n await this.sessionService.signout();\n }\n\n toggleProfileMenu() {\n this.profilePopover.open();\n }\n\n protected handleSignIn() {\n this.router.navigate(['/auth/login']);\n }\n}\n","@if((isAuthenticated$ | async)) {\n<div class=\"ax-size-fit\">\n <axp-avatar #avatar [size]=\"36\" [color]=\"isDarkMode() ? 'primary' : 'default'\"></axp-avatar>\n <ax-popover [target]=\"avatar\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" #p>\n <div class=\"ax-bg-lightest ax-border ax-border-lightest ax-rounded-md ax-shadow-md ax-w-full ax-min-w-64\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-p-4 ax-border-b\">\n <axp-avatar [size]=\"64\" color=\"primary\"></axp-avatar>\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-mt-2 ax-gap-1\">\n <div class=\"ax-text-base ax-font-bold\">{{ (user$ | async)?.title }}</div>\n <axp-tenant-chooser-dropdown></axp-tenant-chooser-dropdown>\n </div>\n </div>\n <div class=\"axp-profile-slot-menus\">\n <ul>\n <li>\n <a (click)=\"editProfile()\">\n <i class=\"fa-light fa-user\"></i>\n <span>{{ 'profile.edit' | translate : { scope: 'auth' } | async }}</span>\n </a>\n </li>\n </ul>\n <ul>\n <li>\n <a (click)=\"p.close()\" [routerLink]=\"['/', appName(), 'settings', 'user']\">\n <i class=\"fa-light fa-gear\"></i>\n <span>{{ 'profile.settings' | translate : { scope: 'auth' } | async }}</span>\n </a>\n </li>\n </ul>\n <ul>\n <li class=\"ax-text-danger-500\">\n <a (click)=\"logOut()\">\n <i class=\"fa-light fa-arrow-right-from-bracket\"></i>\n <span>{{ 'profile.logout' | translate : { scope: 'auth' } | async }}</span>\n </a>\n </li>\n </ul>\n </div>\n </div>\n </ax-popover>\n</div>\n\n} @else {\n<ax-button color=\"default\" look=\"blank\" text=\"Sign Up / Sign In\" (click)=\"handleSignIn()\">\n <ax-icon>\n <i class=\"fa-solid fa-user ax-text-slate-400 dark:ax-text-slate-200\"></i>\n </ax-icon>\n</ax-button>\n}","import { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXHtmlEvent } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPDataProvider } from '@acorex/platform/common';\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport { Component, ViewChild, inject, signal } from '@angular/core';\nimport { Router, RouterModule } from '@angular/router';\nimport { first } from 'rxjs';\nimport { AXPTenantChooserDropdownComponent } from '../tenant-chooser/tenant-chooser-dropdown.component';\nimport { AXChipsModule } from '@acorex/components/chips';\nimport { AXMAvatarComponent } from '../avatar/avatar.component';\n\n@Component({\n templateUrl: './user-profile-card.component.html',\n imports: [\n RouterModule,\n //\n AXImageModule,\n AXAvatarModule,\n AXPopoverModule,\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXTranslationModule,\n //\n AXPTenantChooserDropdownComponent,\n AsyncPipe,\n AXMAvatarComponent\n ],\n})\nexport class AXMUserProfileCardSlotComponent {\n private router = inject(Router);\n private sessionService = inject(AXPSessionService);\n private dataService = inject(AXPDataProvider, { optional: true });\n\n protected hasPicture = signal(true);\n protected avatarText = signal<string>('');\n\n constructor() {\n this.loadImage();\n this.getAvatarText();\n }\n protected src!: string;\n protected user$ = this.sessionService.user$;\n protected tenant$ = this.sessionService.tenant$;\n\n protected isAuthenticated$ = this.sessionService.isAuthenticated$;\n\n protected appName = () => this.sessionService.application?.name;\n\n @ViewChild('profilePopover') profilePopover!: AXPopoverComponent;\n\n editProfile() {\n this.router.navigate([`/${this.appName()}/m/securityManagement/e/profile/0/view`]);\n }\n\n async logOut() {\n await this.sessionService.signout();\n }\n\n toggleProfileMenu() {\n this.profilePopover.open();\n }\n\n protected handleSignIn() {\n this.router.navigate(['/auth/login']);\n }\n\n protected onImageError(event: AXHtmlEvent<ErrorEvent>) {\n this.hasPicture.set(false);\n }\n\n protected getAvatarText = () => {\n this.user$.pipe(first()).subscribe((user) => {\n const names = user?.title.split(' ');\n if (names?.length && names?.length > 1) {\n this.avatarText.set(`${names[0][0].toUpperCase()}${names[names.length - 1][0].toUpperCase()}`);\n } else return this.avatarText.set('AC');\n });\n };\n\n private async loadImage() {\n try {\n const url = this.sessionService.user?.avatar as string;\n if (url?.toLowerCase().startsWith('http')) {\n this.src = url;\n } else if (this.sessionService.user?.avatar != 'null' && this.dataService) {\n const blob = await this.dataService.viewFile(url, '');\n this.src = URL.createObjectURL(blob);\n } else {\n //this.src = this.mockerService.avatar();\n }\n } catch (error) {\n this.hasPicture.set(false);\n console.error('Failed to load image by ID:', error);\n this.src = '';\n }\n }\n}\n","@if((isAuthenticated$ | async)) {\n<div class=\"ax-p-3 ax-flex ax-gap-1 ax-border-b ax-border-lighter\">\n <axp-avatar [size]=\"48\" color=\"primary\"></axp-avatar>\n <div class=\"ax-flex ax-flex-col ax-gap-1\">\n <ax-title class=\"ax-text-sm ax-font-medium ax-px-3\">{{ (user$ | async)?.title }}</ax-title>\n <axp-tenant-chooser-dropdown />\n </div>\n</div>\n}","import { AXPAuthGuard, AXPSessionService } from '@acorex/platform/auth';\nimport { AXPComponentSlotModule } from '@acorex/platform/common';\nimport { NgModule, inject } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivateFn,\n ROUTES,\n Router,\n RouterModule,\n RouterStateSnapshot,\n Routes,\n} from '@angular/router';\nimport { firstValueFrom } from 'rxjs';\nimport { AXMAppChooserSlotComponent } from './app-chooser/app-chooser-slot.component';\nimport { AXMAuthProfileSlotComponent } from './profile/profile-slot.component';\nimport { AXMUserProfileCardSlotComponent } from './user-profile-card/user-profile-card.component';\n\nconst canActivateTenantChooser: CanActivateFn = async (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n const sessionService = inject(AXPSessionService);\n const router = inject(Router);\n\n const tenants = await firstValueFrom(sessionService.tenants$);\n if (tenants.length == 0) {\n return router.createUrlTree(['/auth/login']);\n }\n if (tenants.length == 1) {\n await sessionService.setTenant(tenants[0]);\n return router.createUrlTree(['/auth/account/app-chooser']);\n }\n return true;\n};\n\nconst canActivateAppChooser: CanActivateFn = async (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n const sessionService = inject(AXPSessionService);\n const router = inject(Router);\n const apps = await firstValueFrom(sessionService.applications$);\n if (apps.length == 0) {\n return router.createUrlTree(['/auth/login']);\n }\n if (apps.length == 1) {\n await sessionService.setApplication(apps[0]);\n return router.createUrlTree([`/${apps[0].name}/home`]);\n }\n return true;\n};\n\nfunction routesFacory() {\n let routes: Routes = [];\n routes = [\n {\n path: 'tenant-chooser',\n loadComponent: () =>\n import('./tenant-chooser/tenant-chooser.component').then((c) => c.AXPAuthTenantChooserComponent),\n canActivate: [AXPAuthGuard, canActivateTenantChooser],\n },\n {\n path: 'app-chooser',\n loadComponent: () => import('./app-chooser/app-chooser.component').then((c) => c.AXPAuthAppChooserComponent),\n canActivate: [AXPAuthGuard, canActivateAppChooser],\n },\n ];\n return routes;\n}\n\n@NgModule({\n declarations: [],\n imports: [\n RouterModule,\n //\n AXPComponentSlotModule.forChild({\n 'side-menu-header': [\n {\n priority: 1,\n name: 'user-card',\n component: AXMUserProfileCardSlotComponent\n }\n ],\n 'header-end': [\n {\n priority: 98,\n name: 'app-choser',\n component: AXMAppChooserSlotComponent,\n },\n {\n priority: 99,\n name: 'profile',\n component: AXMAuthProfileSlotComponent,\n },\n ],\n }),\n ],\n exports: [],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n ],\n})\nexport class AXPAccountModule { }\n","import { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER, AXPCommonModule } from '@acorex/platform/common';\nimport { CommonModule } from '@angular/common';\nimport { NgModule, inject, Injector } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { routes } from './auth.routes';\nimport { AXMAuthErrorHandler } from './error-handler';\nimport { AXMSecurityManagmentModuleMenuProvider } from './menu.provider';\nimport { AXPAccountModule } from './pages/account/account.module';\n\n@NgModule({\n imports: [\n CommonModule,\n AXPCommonModule.forChild({ errorHandlers: [AXMAuthErrorHandler] }),\n RouterModule.forChild(routes),\n AXPAccountModule,\n ],\n providers: [\n AXMAuthErrorHandler,\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMSecurityManagmentModuleMenuProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useFactory: async () => {\n const injector = inject(Injector);\n const provider = (await import('./setting.provider')).AXMSettingProvider;\n return new provider(injector);\n },\n multi: true,\n },\n ],\n})\nexport class AXMAuthModule { }\n","import { Injectable, inject } from '@angular/core';\nimport { Subject, Observable, timer, Subscription } from 'rxjs';\nimport { startWith, switchMap, tap } from 'rxjs/operators';\nimport { AXM_AUTH_CONFIG_TOKEN } from '../../auth.config';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPIdleService {\n private configs = inject(AXM_AUTH_CONFIG_TOKEN);\n private idle$ = new Subject<void>();\n private timeoutDuration = this.configs.idleTimeout ?? 10 * 60 * 1000;\n private userActivity$ = new Subject<void>();\n private idleSubscription: Subscription | null = null;\n\n constructor() {\n this.setupActivityListeners();\n }\n\n get idleState$(): Observable<void> {\n return this.idle$.asObservable();\n }\n\n private setupActivityListeners() {\n const activityEvents = ['mousemove', 'keydown', 'wheel'];\n activityEvents.forEach(event =>\n document.addEventListener(event, () => this.resetTimer())\n );\n }\n\n startWatching() {\n this.stopWatching(); // Stop any existing subscription\n this.idleSubscription = this.userActivity$.pipe(\n startWith(null),\n switchMap(() => timer(this.timeoutDuration)),\n tap(() => this.idle$.next()),\n ).subscribe();\n }\n\n resetTimer() {\n this.userActivity$.next();\n }\n\n stopWatching() {\n if (this.idleSubscription) {\n this.idleSubscription.unsubscribe();\n this.idleSubscription = null;\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i4","i1","i2","i5"],"mappings":"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"}
|
@@ -1,271 +0,0 @@
|
|
1
|
-
import { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
|
2
|
-
import { AXTranslationService } from '@acorex/core/translation';
|
3
|
-
|
4
|
-
class AXMSettingProvider {
|
5
|
-
constructor(injector) {
|
6
|
-
this.injector = injector;
|
7
|
-
this.translateService = this.injector.get(AXTranslationService);
|
8
|
-
}
|
9
|
-
async provide(context) {
|
10
|
-
const trans = async (key) => await this.translateService.translateAsync(`settings.${key}`, { scope: 'auth' });
|
11
|
-
context
|
12
|
-
.addGroup('security-settings', await trans('title'), await trans('description'), 'fa-light fa-lock')
|
13
|
-
// Authentication Section - Tenant Level
|
14
|
-
.addSection('authentication', await trans('authentication.title'), await trans('authentication.description'))
|
15
|
-
.addSetting({
|
16
|
-
key: 'two-factor-auth',
|
17
|
-
title: await trans('authentication.two-factor.title'),
|
18
|
-
scope: 'T',
|
19
|
-
isInherited: true,
|
20
|
-
defaultValue: false,
|
21
|
-
widget: {
|
22
|
-
type: AXPWidgetsCatalog.toggle,
|
23
|
-
},
|
24
|
-
description: await trans('authentication.two-factor.description'),
|
25
|
-
})
|
26
|
-
.addSetting({
|
27
|
-
key: 'password-complexity',
|
28
|
-
title: await trans('authentication.password.title'),
|
29
|
-
scope: 'T',
|
30
|
-
isInherited: true,
|
31
|
-
defaultValue: 'Medium',
|
32
|
-
widget: {
|
33
|
-
type: AXPWidgetsCatalog.select,
|
34
|
-
options: {
|
35
|
-
valueField: 'value',
|
36
|
-
textField: 'text',
|
37
|
-
dataSource: [
|
38
|
-
{
|
39
|
-
text: await trans('authentication.password.options.low'),
|
40
|
-
value: 'Low'
|
41
|
-
},
|
42
|
-
{
|
43
|
-
text: await trans('authentication.password.options.medium'),
|
44
|
-
value: 'Medium'
|
45
|
-
},
|
46
|
-
{
|
47
|
-
text: await trans('authentication.password.options.high'),
|
48
|
-
value: 'High'
|
49
|
-
},
|
50
|
-
],
|
51
|
-
},
|
52
|
-
},
|
53
|
-
description: await trans('authentication.password.description'),
|
54
|
-
})
|
55
|
-
.addSetting({
|
56
|
-
key: 'password-expiry-days',
|
57
|
-
title: await trans('authentication.password-expiry.title'),
|
58
|
-
scope: 'T',
|
59
|
-
isInherited: true,
|
60
|
-
defaultValue: 90,
|
61
|
-
widget: {
|
62
|
-
type: AXPWidgetsCatalog.number,
|
63
|
-
options: {
|
64
|
-
minValue: 30,
|
65
|
-
maxValue: 365,
|
66
|
-
step: 1
|
67
|
-
},
|
68
|
-
},
|
69
|
-
description: await trans('authentication.password-expiry.description'),
|
70
|
-
})
|
71
|
-
.addSetting({
|
72
|
-
key: 'max-login-attempts',
|
73
|
-
title: await trans('authentication.max-attempts.title'),
|
74
|
-
scope: 'T',
|
75
|
-
isInherited: true,
|
76
|
-
defaultValue: 5,
|
77
|
-
widget: {
|
78
|
-
type: AXPWidgetsCatalog.number,
|
79
|
-
options: {
|
80
|
-
minValue: 3,
|
81
|
-
maxValue: 10,
|
82
|
-
step: 1
|
83
|
-
},
|
84
|
-
},
|
85
|
-
description: await trans('authentication.max-attempts.description'),
|
86
|
-
})
|
87
|
-
.addSetting({
|
88
|
-
key: 'lockout-duration',
|
89
|
-
title: await trans('authentication.lockout.title'),
|
90
|
-
scope: 'T',
|
91
|
-
isInherited: true,
|
92
|
-
defaultValue: 15,
|
93
|
-
widget: {
|
94
|
-
type: AXPWidgetsCatalog.number,
|
95
|
-
options: {
|
96
|
-
minValue: 5,
|
97
|
-
maxValue: 60,
|
98
|
-
step: 5
|
99
|
-
},
|
100
|
-
},
|
101
|
-
description: await trans('authentication.lockout.description'),
|
102
|
-
})
|
103
|
-
.endSection()
|
104
|
-
// Session Management - Tenant Level
|
105
|
-
.addSection('session-management', await trans('session.title'), await trans('session.description'))
|
106
|
-
.addSetting({
|
107
|
-
key: 'session-timeout',
|
108
|
-
title: await trans('session.timeout.title'),
|
109
|
-
scope: 'T',
|
110
|
-
isInherited: true,
|
111
|
-
defaultValue: 30,
|
112
|
-
widget: {
|
113
|
-
type: AXPWidgetsCatalog.number,
|
114
|
-
options: {
|
115
|
-
minValue: 5,
|
116
|
-
maxValue: 120,
|
117
|
-
step: 5
|
118
|
-
},
|
119
|
-
},
|
120
|
-
description: await trans('session.timeout.description'),
|
121
|
-
})
|
122
|
-
.addSetting({
|
123
|
-
key: 'concurrent-sessions',
|
124
|
-
title: await trans('session.concurrent.title'),
|
125
|
-
scope: 'T',
|
126
|
-
isInherited: true,
|
127
|
-
defaultValue: 1,
|
128
|
-
widget: {
|
129
|
-
type: AXPWidgetsCatalog.number,
|
130
|
-
options: {
|
131
|
-
minValue: 1,
|
132
|
-
maxValue: 5,
|
133
|
-
step: 1
|
134
|
-
},
|
135
|
-
},
|
136
|
-
description: await trans('session.concurrent.description'),
|
137
|
-
})
|
138
|
-
.addSetting({
|
139
|
-
key: 'remember-me',
|
140
|
-
title: await trans('session.remember.title'),
|
141
|
-
scope: 'T',
|
142
|
-
isInherited: true,
|
143
|
-
defaultValue: true,
|
144
|
-
widget: {
|
145
|
-
type: AXPWidgetsCatalog.toggle,
|
146
|
-
},
|
147
|
-
description: await trans('session.remember.description'),
|
148
|
-
})
|
149
|
-
.endSection()
|
150
|
-
// User Preferences - User Level
|
151
|
-
.addSection('user-preferences', await trans('preferences.title'), await trans('preferences.description'))
|
152
|
-
.addSetting({
|
153
|
-
key: 'enable-2fa',
|
154
|
-
title: await trans('preferences.2fa.title'),
|
155
|
-
scope: 'U',
|
156
|
-
isInherited: true,
|
157
|
-
defaultValue: false,
|
158
|
-
widget: {
|
159
|
-
type: AXPWidgetsCatalog.toggle,
|
160
|
-
options: {
|
161
|
-
visibility: `{{ context.eval('two-factor-auth') }}`
|
162
|
-
}
|
163
|
-
},
|
164
|
-
description: await trans('preferences.2fa.description'),
|
165
|
-
})
|
166
|
-
.addSetting({
|
167
|
-
key: 'preferred-2fa-method',
|
168
|
-
title: await trans('preferences.2fa-method.title'),
|
169
|
-
scope: 'U',
|
170
|
-
isInherited: true,
|
171
|
-
defaultValue: 'email',
|
172
|
-
widget: {
|
173
|
-
type: AXPWidgetsCatalog.select,
|
174
|
-
options: {
|
175
|
-
visibility: `{{ context.eval('enable-2fa') }}`,
|
176
|
-
valueField: 'id',
|
177
|
-
textField: 'title',
|
178
|
-
dataSource: [
|
179
|
-
{
|
180
|
-
id: 'email',
|
181
|
-
title: await trans('preferences.2fa-method.options.email')
|
182
|
-
},
|
183
|
-
{
|
184
|
-
id: 'sms',
|
185
|
-
title: await trans('preferences.2fa-method.options.sms')
|
186
|
-
},
|
187
|
-
{
|
188
|
-
id: 'authenticator',
|
189
|
-
title: await trans('preferences.2fa-method.options.authenticator')
|
190
|
-
}
|
191
|
-
]
|
192
|
-
},
|
193
|
-
},
|
194
|
-
description: await trans('preferences.2fa-method.description'),
|
195
|
-
})
|
196
|
-
.addSetting({
|
197
|
-
key: 'login-notification',
|
198
|
-
title: await trans('preferences.login-notification.title'),
|
199
|
-
scope: 'U',
|
200
|
-
isInherited: true,
|
201
|
-
defaultValue: true,
|
202
|
-
widget: {
|
203
|
-
type: AXPWidgetsCatalog.toggle,
|
204
|
-
},
|
205
|
-
description: await trans('preferences.login-notification.description'),
|
206
|
-
})
|
207
|
-
.addSetting({
|
208
|
-
key: 'trusted-devices',
|
209
|
-
title: await trans('preferences.trusted-devices.title'),
|
210
|
-
scope: 'U',
|
211
|
-
isInherited: true,
|
212
|
-
defaultValue: [],
|
213
|
-
widget: {
|
214
|
-
type: AXPWidgetsCatalog.selectionList,
|
215
|
-
options: {
|
216
|
-
multiple: true,
|
217
|
-
dataSource: [], // Will be populated dynamically with user's devices
|
218
|
-
},
|
219
|
-
},
|
220
|
-
description: await trans('preferences.trusted-devices.description'),
|
221
|
-
})
|
222
|
-
.endSection()
|
223
|
-
// Privacy Settings - User Level
|
224
|
-
.addSection('privacy', await trans('privacy.title'), await trans('privacy.description'))
|
225
|
-
.addSetting({
|
226
|
-
key: 'activity-logging',
|
227
|
-
title: await trans('privacy.activity-logging.title'),
|
228
|
-
scope: 'U',
|
229
|
-
isInherited: true,
|
230
|
-
defaultValue: true,
|
231
|
-
widget: {
|
232
|
-
type: AXPWidgetsCatalog.toggle,
|
233
|
-
},
|
234
|
-
description: await trans('privacy.activity-logging.description'),
|
235
|
-
})
|
236
|
-
.addSetting({
|
237
|
-
key: 'data-sharing',
|
238
|
-
title: await trans('privacy.data-sharing.title'),
|
239
|
-
scope: 'U',
|
240
|
-
isInherited: true,
|
241
|
-
defaultValue: 'minimal',
|
242
|
-
widget: {
|
243
|
-
type: AXPWidgetsCatalog.select,
|
244
|
-
options: {
|
245
|
-
valueField: 'id',
|
246
|
-
textField: 'title',
|
247
|
-
dataSource: [
|
248
|
-
{
|
249
|
-
id: 'minimal',
|
250
|
-
title: await trans('privacy.data-sharing.options.minimal')
|
251
|
-
},
|
252
|
-
{
|
253
|
-
id: 'moderate',
|
254
|
-
title: await trans('privacy.data-sharing.options.moderate')
|
255
|
-
},
|
256
|
-
{
|
257
|
-
id: 'full',
|
258
|
-
title: await trans('privacy.data-sharing.options.full')
|
259
|
-
}
|
260
|
-
]
|
261
|
-
},
|
262
|
-
},
|
263
|
-
description: await trans('privacy.data-sharing.description'),
|
264
|
-
})
|
265
|
-
.endSection()
|
266
|
-
.endGroup();
|
267
|
-
}
|
268
|
-
}
|
269
|
-
|
270
|
-
export { AXMSettingProvider };
|
271
|
-
//# sourceMappingURL=acorex-modules-auth-setting.provider-D3A0WUgJ.mjs.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"acorex-modules-auth-setting.provider-D3A0WUgJ.mjs","sources":["../../../../libs/modules/auth/src/lib/setting.provider.ts"],"sourcesContent":["import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { inject, Injector } from '@angular/core';\n\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n private readonly translateService = this.injector.get(AXTranslationService);\n\n constructor(private injector: Injector) { }\n\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n const trans = async (key: string) => await this.translateService.translateAsync(`settings.${key}`, { scope: 'auth' });\n\n context\n .addGroup(\n 'security-settings',\n await trans('title'),\n await trans('description'),\n 'fa-light fa-lock'\n )\n // Authentication Section - Tenant Level\n .addSection(\n 'authentication',\n await trans('authentication.title'),\n await trans('authentication.description')\n )\n .addSetting({\n key: 'two-factor-auth',\n title: await trans('authentication.two-factor.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: false,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n },\n description: await trans('authentication.two-factor.description'),\n })\n .addSetting({\n key: 'password-complexity',\n title: await trans('authentication.password.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: 'Medium',\n widget: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: [\n {\n text: await trans('authentication.password.options.low'),\n value: 'Low'\n },\n {\n text: await trans('authentication.password.options.medium'),\n value: 'Medium'\n },\n {\n text: await trans('authentication.password.options.high'),\n value: 'High'\n },\n ],\n },\n },\n description: await trans('authentication.password.description'),\n })\n .addSetting({\n key: 'password-expiry-days',\n title: await trans('authentication.password-expiry.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: 90,\n widget: {\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 30,\n maxValue: 365,\n step: 1\n },\n },\n description: await trans('authentication.password-expiry.description'),\n })\n .addSetting({\n key: 'max-login-attempts',\n title: await trans('authentication.max-attempts.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: 5,\n widget: {\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 3,\n maxValue: 10,\n step: 1\n },\n },\n description: await trans('authentication.max-attempts.description'),\n })\n .addSetting({\n key: 'lockout-duration',\n title: await trans('authentication.lockout.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: 15,\n widget: {\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 5,\n maxValue: 60,\n step: 5\n },\n },\n description: await trans('authentication.lockout.description'),\n })\n .endSection()\n\n // Session Management - Tenant Level\n .addSection(\n 'session-management',\n await trans('session.title'),\n await trans('session.description')\n )\n .addSetting({\n key: 'session-timeout',\n title: await trans('session.timeout.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: 30,\n widget: {\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 5,\n maxValue: 120,\n step: 5\n },\n },\n description: await trans('session.timeout.description'),\n })\n .addSetting({\n key: 'concurrent-sessions',\n title: await trans('session.concurrent.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: 1,\n widget: {\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 1,\n maxValue: 5,\n step: 1\n },\n },\n description: await trans('session.concurrent.description'),\n })\n .addSetting({\n key: 'remember-me',\n title: await trans('session.remember.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: true,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n },\n description: await trans('session.remember.description'),\n })\n .endSection()\n\n // User Preferences - User Level\n .addSection(\n 'user-preferences',\n await trans('preferences.title'),\n await trans('preferences.description')\n )\n .addSetting({\n key: 'enable-2fa',\n title: await trans('preferences.2fa.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: false,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n visibility: `{{ context.eval('two-factor-auth') }}`\n }\n },\n description: await trans('preferences.2fa.description'),\n })\n .addSetting({\n key: 'preferred-2fa-method',\n title: await trans('preferences.2fa-method.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: 'email',\n widget: {\n type: AXPWidgetsCatalog.select,\n options: {\n visibility: `{{ context.eval('enable-2fa') }}`,\n valueField: 'id',\n textField: 'title',\n dataSource: [\n {\n id: 'email',\n title: await trans('preferences.2fa-method.options.email')\n },\n {\n id: 'sms',\n title: await trans('preferences.2fa-method.options.sms')\n },\n {\n id: 'authenticator',\n title: await trans('preferences.2fa-method.options.authenticator')\n }\n ]\n },\n },\n description: await trans('preferences.2fa-method.description'),\n })\n .addSetting({\n key: 'login-notification',\n title: await trans('preferences.login-notification.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: true,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n },\n description: await trans('preferences.login-notification.description'),\n })\n .addSetting({\n key: 'trusted-devices',\n title: await trans('preferences.trusted-devices.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: [],\n widget: {\n type: AXPWidgetsCatalog.selectionList,\n options: {\n multiple: true,\n dataSource: [], // Will be populated dynamically with user's devices\n },\n },\n description: await trans('preferences.trusted-devices.description'),\n })\n .endSection()\n\n // Privacy Settings - User Level\n .addSection(\n 'privacy',\n await trans('privacy.title'),\n await trans('privacy.description')\n )\n .addSetting({\n key: 'activity-logging',\n title: await trans('privacy.activity-logging.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: true,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n },\n description: await trans('privacy.activity-logging.description'),\n })\n .addSetting({\n key: 'data-sharing',\n title: await trans('privacy.data-sharing.title'),\n scope: 'U',\n isInherited: true,\n defaultValue: 'minimal',\n widget: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'id',\n textField: 'title',\n dataSource: [\n {\n id: 'minimal',\n title: await trans('privacy.data-sharing.options.minimal')\n },\n {\n id: 'moderate',\n title: await trans('privacy.data-sharing.options.moderate')\n },\n {\n id: 'full',\n title: await trans('privacy.data-sharing.options.full')\n }\n ]\n },\n },\n description: await trans('privacy.data-sharing.description'),\n })\n .endSection()\n .endGroup();\n }\n}\n"],"names":[],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"acorex-modules-auth-tenant-chooser.component-YZBKyJFH.mjs","sources":["../../../../libs/modules/auth/src/lib/pages/account/tenant-chooser/tenant-chooser.component.ts","../../../../libs/modules/auth/src/lib/pages/account/tenant-chooser/tenant-chooser.component.html"],"sourcesContent":["import { Component, OnDestroy, OnInit, ViewEncapsulation, inject } from '@angular/core';\n\nimport { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPSessionService, AXPTenant } from '@acorex/platform/auth';\nimport { AXPLogoComponent, AXP_PLATFORM_CONFIG_TOKEN } from '@acorex/platform/common';\nimport { CommonModule } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { Subscription, first } from 'rxjs';\n\n@Component({\n selector: 'axp-auth-tenant-chooser',\n templateUrl: './tenant-chooser.component.html',\n styleUrls: ['./tenant-chooser.component.scss'],\n imports: [\n CommonModule,\n AXFormModule,\n AXTextBoxModule,\n AXButtonModule,\n AXLabelModule,\n AXCheckBoxModule,\n AXAvatarModule,\n AXImageModule,\n AXDecoratorModule,\n AXPLogoComponent,\n AXLoadingModule,\n AXTranslationModule,\n ],\n encapsulation: ViewEncapsulation.None\n})\nexport class AXPAuthTenantChooserComponent implements OnInit, OnDestroy {\n private router = inject(Router);\n protected platformConfig = inject(AXP_PLATFORM_CONFIG_TOKEN);\n private sessionService = inject(AXPSessionService);\n\n private subscription = new Subscription();\n\n protected user = this.sessionService.user;\n\n protected showAll = false;\n protected selectedTenant: AXPTenant | null = null;\n protected displayedTenants: AXPTenant[] = [];\n protected allTenants!: AXPTenant[];\n\n protected async handleChooseTenant(item: AXPTenant) {\n this.selectedTenant = item;\n await this.sessionService.setTenant(item);\n this.router.navigate(['/auth/account/app-chooser']);\n }\n\n ngOnInit(): void {\n this.sessionService.tenants$\n .pipe(first())\n .subscribe((tenants) => {\n this.displayedTenants = tenants.slice(0, 4);\n this.allTenants = tenants;\n });\n }\n\n showAllTenants() {\n this.showAll = !this.showAll;\n this.displayedTenants = this.showAll ? this.allTenants : this.allTenants.slice(0, 4);\n }\n\n async handleSignout() {\n await this.sessionService.signout();\n this.router.navigate(['/auth/login']);\n }\n\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n}\n","<main\n *translate=\"let t\"\n class=\"ax-w-full ax-space-y-10 ax-h-[100vh] ax-flex ax-flex-col ax-items-center ax-justify-center ax-bg-lightest md:ax-bg-default\"\n>\n <section>\n <axp-logo\n [source]=\"platformConfig.logo?.colored\"\n [attr.alt]=\"platformConfig.title\"\n class=\"ax-w-36 ax-mx-auto ax-text-2xl ax-font-bold\"\n ></axp-logo>\n </section>\n <section class=\"ax-flex ax-justify-center\">\n <div\n class=\"ax-flex ax-gap-2 ax-justify-center ax-text-center ax-flex-col ax-items-center ax-border ax-rounded-lg ax-shadow-lg ax-p-6 md:ax-w-96 ax-w-80\"\n >\n <ax-avatar class=\"ax-rounded-full\" [size]=\"72\">\n @if(user?.avatar){\n <ax-image [src]=\"user?.avatar\"></ax-image>\n }\n </ax-avatar>\n <h2 class=\"md:ax-text-lg ax-font-medium\">{{ t('welcome') | async }}, {{ user?.title }}</h2>\n <p class=\"ax-text-neutral-500 ax-text-sm md:ax-text-base ax-font-medium\">\n {{ t('tenant-chooser.description', { scope: 'auth' }) | async }}\n </p>\n <div class=\"ax-mt-3 ax-w-full ax-overflow-auto ax-max-h-[300px] ax-pe-2\">\n @for(tenant of displayedTenants; track $index){\n <div\n class=\"ax-flex ax-gap-2 ax-justify-between ax-border-b last:ax-border-b-0 ax-py-3 ax-items-center ax-cursor-pointer\"\n (click)=\"handleChooseTenant(tenant)\"\n >\n <div class=\"ax-flex ax-gap-2 ax-items-center ax-font-medium\">\n <div\n class=\"ax-w-12 ax-h-12 ax-flex ax-justify-center ax-items-center ax-rounded-full ax-bg-neutral-100 ax-m-auto\"\n >\n <ax-icon class=\"fa-solid fa-building ax-text-neutral-500 ax-text-lg\"> </ax-icon>\n </div>\n <span class=\"md:ax-text-base ax-text-sm\">{{ tenant.title }}</span>\n </div>\n @if(tenant.name===selectedTenant?.name){\n <ax-loading></ax-loading>\n }@else {\n <ax-icon class=\"fa-solid fa-chevron-right ax-text-neutral-400\"> </ax-icon>\n }\n </div>\n }\n </div>\n @if(allTenants && allTenants.length>4){\n <div class=\"ax-mt-6 ax-w-full ax-flex ax-justify-center\">\n <ax-button\n (onClick)=\"showAllTenants()\"\n class=\"ax-w-full\"\n look=\"outline\"\n [text]=\"showAll ? (t('viewLess') | async) : (t('viewAll') | async)\"\n ></ax-button>\n </div>\n }\n </div>\n </section>\n <section>\n <p class=\"ax-text-neutral-400 ax-text-sm\">\n {{ t('tenant-chooser.footer', { scope: 'auth' }) | async }}\n <a (click)=\"handleSignout()\" class=\"ax-text-primary ax-cursor-pointer hover:ax-underline ax-font-medium\">\n {{ t('backLogin', { scope: 'auth' }) | async }}\n </a>\n </p>\n </section>\n</main>\n"],"names":["i3","i4","i5","i6","i7"],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"acorex-modules-common-index-rvP9ISgL.mjs","sources":["../../../../libs/modules/common/src/lib/features/home-dashboard/widget-wrapper/dashboard-widget-wrapper.ts","../../../../libs/modules/common/src/lib/features/home-dashboard/widget-wrapper/dashboard-widget-wrapper.html","../../../../libs/modules/common/src/lib/features/home-dashboard/dashboard-popups/add-dashboard-popup.ts","../../../../libs/modules/common/src/lib/features/home-dashboard/dashboard-popups/configuration-popup.ts","../../../../libs/modules/common/src/lib/features/home-dashboard/dashboard-popups/dashboard-popup.service.ts","../../../../libs/modules/common/src/lib/features/home-dashboard/setrting.keys.ts","../../../../libs/modules/common/src/lib/features/home-dashboard/dashboard-home/home-dashboard.store.ts","../../../../libs/modules/common/src/lib/features/home-dashboard/dashboard-home/home-dashboard.ts","../../../../libs/modules/common/src/lib/features/home-dashboard/dashboard-home/home-dashboard.html"],"sourcesContent":["import { AXButtonItemComponent, AXButtonModule } from '@acorex/components/button';\nimport { AXItemClickEvent } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\n\n@Component({\n selector: 'axc-dashboard-widget-wrapper',\n templateUrl: './dashboard-widget-wrapper.html',\n styleUrls: ['./dashboard-widget-wrapper.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXButtonModule, AXDecoratorModule, AXDropdownModule, AXTranslationModule, CommonModule],\n standalone: true,\n})\nexport class AXCDashboardWidgetWrapperComponent {\n onDelete = output<void>();\n onConfiguration = output<void>();\n\n hasOptions = input<boolean>(true);\n handleOnItemClick(event: AXItemClickEvent<AXButtonItemComponent>) {\n switch (event.item.data) {\n case 'delete':\n this.onDelete.emit();\n break;\n case 'configuration':\n this.onConfiguration.emit();\n break;\n default:\n break;\n }\n }\n}\n","<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 class=\"ax-sm\" [look]=\"'blank'\">\n <ax-prefix>\n <ax-icon icon=\"fa-light fa-ellipsis-h\"></ax-icon>\n </ax-prefix>\n <ax-dropdown-panel>\n <ng-container *translate=\"let t\">\n <ax-button-item-list (onItemClick)=\"handleOnItemClick($event)\">\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 <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 <ng-content></ng-content>\n</section>\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { Component, model, OnInit } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPDashboardLayout } from '../dashboard-home';\n\ninterface AddDashboardPopupResult extends Partial<AXPDashboardLayout> {\n isCanceled: boolean;\n}\n\n@Component({\n template: `\n <div class=\"ax-grid ax-grid-cols-[auto_18rem] ax-gap-4 ax-justify-center ax-p-4 ax-items-center\">\n <ax-label>Title</ax-label>\n <ax-text-box [(ngModel)]=\"title\" name=\"title\" placeholder=\"Enter dashboard title\"> </ax-text-box>\n\n <ax-label>Description</ax-label>\n <ax-text-box [(ngModel)]=\"description\" name=\"description\" placeholder=\"Enter dashboard description\">\n </ax-text-box>\n </div>\n\n <ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button text=\"Cancel\" look=\"solid\" (onClick)=\"handleClose(true)\"> </ax-button>\n <ax-button text=\"Save\" look=\"solid\" color=\"primary\" [disabled]=\"!isValid\" (onClick)=\"handleClose()\">\n <ax-icon class=\"fa-solid fa-save\"></ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-footer>\n `,\n imports: [FormsModule, AXButtonModule, AXTextBoxModule, AXLabelModule, AXDecoratorModule],\n})\nexport class AXCAddDashboardPopup extends AXBasePageComponent implements OnInit {\n private readonly data: Partial<AXPDashboardLayout>;\n\n protected readonly title = model<string>('');\n protected readonly description = model<string>('');\n\n protected get isValid(): boolean {\n return !!this.title()?.trim();\n }\n\n override ngOnInit(): void {\n this.title.set(this.data?.title || '');\n this.description.set(this.data?.description || '');\n }\n\n protected async handleClose(isCanceled = false): Promise<void> {\n this.close({\n title: this.title()?.trim(),\n description: this.description()?.trim(),\n isCanceled,\n });\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXPWidgetNode } from '@acorex/platform/layout/builder';\nimport { AXPWidgetPropertiesChangedEvent, AXPWidgetPropertyViewerComponent } from '@acorex/platform/layout/designer';\nimport { Component, OnInit, signal } from '@angular/core';\n\ninterface ConfigurationPopupResult {\n isCanceled: boolean;\n widget: AXPWidgetNode | null;\n}\n\n@Component({\n template: `\n @if(widget) {\n <div class=\"ax-px-1\">\n <axp-widget-property-viewer (onChanged)=\"handlePropertyChange($event)\" [widget]=\"widget\">\n </axp-widget-property-viewer>\n </div>\n }\n <ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button text=\"Cancel\" look=\"solid\" (onClick)=\"handleClose(true)\"> </ax-button>\n <ax-button text=\"Save\" look=\"solid\" color=\"primary\" (onClick)=\"handleClose()\">\n <ax-icon class=\"fa-solid fa-save\"></ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-footer>\n `,\n imports: [AXButtonModule, AXDecoratorModule, AXPWidgetPropertyViewerComponent],\n})\nexport class AXCConfigurationPopup extends AXBasePageComponent implements OnInit {\n widget!: AXPWidgetNode;\n protected readonly widgetData = signal<AXPWidgetNode | null>(null);\n\n override ngOnInit(): void {\n this.widgetData.set(this.widget);\n }\n\n protected async handleClose(isCanceled = false): Promise<void> {\n this.close({\n isCanceled,\n widget: this.widgetData(),\n });\n }\n\n protected handlePropertyChange(event: AXPWidgetPropertiesChangedEvent): void {\n this.widgetData.set(event.values);\n }\n}\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPWidgetNode } from '@acorex/platform/layout/builder';\nimport { inject, Injectable } from '@angular/core';\nimport { AXPDashboardLayout } from '../dashboard-home';\nimport { AXCAddDashboardPopup } from './add-dashboard-popup';\nimport { AXCConfigurationPopup } from './configuration-popup';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPDashboardPopupService {\n private readonly popupService = inject(AXPopupService);\n\n async generateDashboardLayout(data: Partial<AXPDashboardLayout>): Promise<AXPDashboardLayout | void> {\n const result = await this.popupService.open(AXCAddDashboardPopup, {\n header: true,\n size: 'fit',\n draggable: true,\n hasBackdrop: true,\n title: 'Dashboard Layout Details',\n data: { data },\n });\n\n if (!result.data) {\n return;\n }\n\n const { isCanceled, ...rest } = result.data;\n if (isCanceled) {\n return;\n }\n\n return rest as AXPDashboardLayout;\n }\n\n async handlePopupConfiguration(widget: AXPWidgetNode): Promise<AXPWidgetNode | void> {\n const result = await this.popupService.open(AXCConfigurationPopup, {\n header: true,\n size: 'sm',\n draggable: true,\n hasBackdrop: true,\n title: 'Widget Configuration',\n data: { widget },\n });\n\n if (!result.data) {\n return;\n }\n\n const { isCanceled, ...rest } = result.data;\n if (isCanceled) {\n return;\n }\n\n return rest.widget as AXPWidgetNode;\n }\n}\n","const path = 'home:dashboard:';\nexport enum AXPHomeDashboardSetting {\n CurrentDashboard = `${path}current-dashboard`,\n}\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXGridLayoutEvent, AXGridLayoutOptions } from '@acorex/components/grid-layout-builder';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSettingService } from '@acorex/platform/common';\nimport { AXPDataGenerator, AXPPlatformScope } from '@acorex/platform/core';\nimport { AXPWidgetGroupEnum, AXPWidgetNode } from '@acorex/platform/layout/builder';\nimport { AXPWidgetPickerService } from '@acorex/platform/layout/designer';\nimport { computed, effect, inject } from '@angular/core';\nimport { patchState, signalStore, withComputed, withMethods, withState } from '@ngrx/signals';\nimport { AXMDashboardService } from '../../../entities/dashboard/dashboard.service';\nimport { AXMCommonDashboardEntityModel } from '../../../entities/dashboard/dashboard.types';\nimport { AXPDashboardPopupService } from '../dashboard-popups/dashboard-popup.service';\nimport { AXPHomeDashboardSetting } from '../setrting.keys';\nimport { AXPDashboardLayout, AXPDashboardWidgetData } from './home-dashboard.type';\n\n// Create the SignalStore\nexport const AXCDashboardStore = signalStore(\n { providedIn: 'root' },\n\n // Initial State Definition\n withState(() => {\n // Define initial empty state\n const state = {\n dashboards: [] as AXPDashboardLayout[],\n currentDashboardId: null as string | null,\n dashboardsOption: { float: true, cellHeight: 75, gap: 5, minRow: 9, column: 12 } as AXGridLayoutOptions,\n isLoading: false,\n };\n\n return state;\n }),\n\n // Computed Properties\n withComputed((state) => ({\n currentDashboard: computed(() => {\n return state.dashboards().find((dashboard) => dashboard.id === state.currentDashboardId()) || null;\n }),\n })),\n\n // Methods for State Management\n withMethods(\n (\n store,\n dashboardPopup = inject(AXPDashboardPopupService),\n dialogService = inject(AXDialogService),\n translationService = inject(AXTranslationService),\n widgetPickerService = inject(AXPWidgetPickerService),\n dashboardService = inject(AXMDashboardService),\n settingService = inject(AXPSettingService)\n ) => {\n // Load dashboards from service - runs on init via effect\n effect(() => {\n loadDashboards();\n });\n\n // Load dashboards from service\n async function loadDashboards(): Promise<void> {\n try {\n patchState(store, { isLoading: true });\n\n // Get dashboards from service using query method\n const result = await dashboardService.query({ skip: 0, take: 100 });\n const dashboardModels = result.items || [];\n\n // Convert dashboard models to AXPDashboardLayout\n const dashboards = dashboardModels.map(modelToDashboardLayout);\n\n // Get current dashboard from settings\n const currentDashboardId = await settingService\n .scope(AXPPlatformScope.User)\n .get(AXPHomeDashboardSetting.CurrentDashboard);\n\n let newCurrentDashboardId = null;\n\n if (dashboards.length > 0) {\n // Check if currentDashboardId exists and is valid\n const dashboardExists = currentDashboardId && dashboards.some((d) => d.id === currentDashboardId);\n\n if (dashboardExists) {\n newCurrentDashboardId = currentDashboardId as string;\n } else {\n // If current dashboard is not valid or not set, use the first one\n newCurrentDashboardId = dashboards[0].id;\n // Save to user settings\n settingService\n .scope(AXPPlatformScope.User)\n .set(AXPHomeDashboardSetting.CurrentDashboard, newCurrentDashboardId);\n }\n }\n\n patchState(store, {\n dashboards,\n isLoading: false,\n currentDashboardId: newCurrentDashboardId,\n });\n } catch (error) {\n console.error('Error loading dashboards:', error);\n patchState(store, { isLoading: false });\n }\n }\n\n // Convert entity model to dashboard layout\n function modelToDashboardLayout(model: AXMCommonDashboardEntityModel): AXPDashboardLayout {\n return {\n id: model.id || '',\n title: model.title,\n description: model.description,\n widget: model.widget || [],\n };\n }\n\n // Convert dashboard layout to entity model\n function dashboardLayoutToModel(layout: AXPDashboardLayout): AXMCommonDashboardEntityModel {\n return {\n id: layout.id,\n name: layout.title,\n title: layout.title,\n description: layout.description || '',\n widget: layout.widget,\n };\n }\n\n return {\n // Set current dashboard\n setCurrentDashboard(dashboardId: string): void {\n patchState(store, { currentDashboardId: dashboardId });\n settingService.scope(AXPPlatformScope.User).set(AXPHomeDashboardSetting.CurrentDashboard, dashboardId);\n },\n\n // Add a new dashboard\n async addDashboard(): Promise<void> {\n try {\n const newDashboard = await dashboardPopup.generateDashboardLayout({});\n if (!newDashboard) return;\n\n newDashboard.id = AXPDataGenerator.uuid();\n newDashboard.widget = [];\n\n // Create dashboard model and save to service\n const dashboardModel = dashboardLayoutToModel(newDashboard);\n await dashboardService.insertOne(dashboardModel);\n\n // Update local state\n const updatedDashboards = [...store.dashboards(), newDashboard];\n\n patchState(store, {\n dashboards: updatedDashboards,\n currentDashboardId: newDashboard.id,\n });\n\n // Save current dashboard to settings\n settingService.scope(AXPPlatformScope.User).set(AXPHomeDashboardSetting.CurrentDashboard, newDashboard.id);\n } catch (error) {\n console.error('Error adding dashboard:', error);\n }\n },\n\n // Add a widget to the current dashboard\n async addWidget(): Promise<void> {\n if (!store.currentDashboardId()) {\n console.warn('No current dashboard selected');\n return;\n }\n\n try {\n const widgets = await widgetPickerService.showPicker({\n groups: [AXPWidgetGroupEnum.DashboardWidget],\n });\n\n //remove meta from widgets\n const filteredWidgets = (widgets as any[]).map(({ __meta__, ...rest }) => rest);\n\n // Step 2: Convert the selected widgets into AXPDashboardWidgetData format\n const convertedWidgets: AXPDashboardWidgetData[] = filteredWidgets.map((widget) => {\n const id = AXPDataGenerator.uuid();\n return {\n config: {\n height: widget?.meta?.dimensions?.height ?? 2,\n width: widget?.meta?.dimensions?.width ?? 2,\n minHeight: widget?.meta?.dimensions?.minHeight,\n minWidth: widget?.meta?.dimensions?.minWidth,\n maxHeight: widget?.meta?.dimensions?.maxHeight,\n maxWidth: widget?.meta?.dimensions?.maxWidth,\n id,\n },\n node: { ...widget, name: id },\n };\n });\n\n // Step 3: Update the dashboards\n const updatedDashboards = store.dashboards().map((dashboard) => {\n if (dashboard.id === store.currentDashboardId()) {\n return {\n ...dashboard,\n widget: [...dashboard.widget, ...convertedWidgets],\n };\n }\n return dashboard;\n });\n\n // Step 4: Save the updated dashboard to the service\n const currentDashboard = updatedDashboards.find((d) => d.id === store.currentDashboardId());\n if (currentDashboard) {\n await dashboardService.updateOne(currentDashboard.id, dashboardLayoutToModel(currentDashboard));\n }\n\n patchState(store, { dashboards: updatedDashboards });\n } catch (error) {\n console.error('Error adding widget:', error);\n }\n },\n\n // Remove a dashboard\n async removeDashboard(id: string): Promise<void> {\n if (!id) {\n console.warn('No dashboard ID provided for removal');\n return;\n }\n\n try {\n const dialogResult = await dialogService.confirm(\n await translationService.translateAsync('workflow.warning'),\n await translationService.translateAsync('workflow.confirm-delete'),\n 'danger',\n 'horizontal'\n );\n\n if (dialogResult.result) {\n // Delete from service\n await dashboardService.deleteOne(id);\n\n // Remove the dashboard from local state\n const updatedDashboards = store.dashboards().filter((dashboard) => dashboard.id !== id);\n\n // Update state and select a new current dashboard if needed\n let newCurrentDashboardId = store.currentDashboardId();\n\n if (id === store.currentDashboardId()) {\n newCurrentDashboardId = updatedDashboards.length > 0 ? updatedDashboards[0].id : null;\n\n // Save to settings if we changed the current dashboard\n if (newCurrentDashboardId) {\n settingService\n .scope(AXPPlatformScope.User)\n .set(AXPHomeDashboardSetting.CurrentDashboard, newCurrentDashboardId);\n }\n }\n\n patchState(store, {\n dashboards: updatedDashboards,\n currentDashboardId: newCurrentDashboardId,\n });\n }\n } catch (error) {\n console.error('Error removing dashboard:', error);\n }\n },\n\n // Remove a widget from a dashboard\n async removeWidget(dashboardId: string, widgetId: string): Promise<void> {\n const currentDashboard = store.dashboards().find((d) => d.id === dashboardId);\n if (!currentDashboard) return;\n\n const updatedDashboard = {\n ...currentDashboard,\n widget: currentDashboard.widget.filter((widget) => widget.config.id !== widgetId),\n };\n\n // Save to service\n await dashboardService.updateOne(dashboardId, dashboardLayoutToModel(updatedDashboard));\n\n // Update local state\n const updatedDashboards = store\n .dashboards()\n .map((dashboard) => (dashboard.id === dashboardId ? updatedDashboard : dashboard));\n\n patchState(store, { dashboards: updatedDashboards });\n },\n\n // Handle configuration changes\n async handleConfigChange(dashboard: AXPDashboardLayout): Promise<void> {\n // Save to service\n await dashboardService.updateOne(dashboard.id, dashboardLayoutToModel(dashboard));\n\n // Update local state\n const updatedDashboards = store.dashboards().map((d) => (d.id === dashboard.id ? dashboard : d));\n\n patchState(store, {\n dashboards: updatedDashboards,\n currentDashboardId: dashboard.id,\n });\n\n // Save current dashboard to settings\n settingService.scope(AXPPlatformScope.User).set(AXPHomeDashboardSetting.CurrentDashboard, dashboard.id);\n },\n\n // Handle grid layout changes\n async onGridChange(event: AXGridLayoutEvent): Promise<void> {\n console.log('onGridChange', event);\n if (!store.currentDashboard()) {\n console.warn('No current dashboard for grid change');\n return;\n }\n\n // Extract nodes from the event and remove the `element` property\n const nodes = event.nodes.map(({ element, ...rest }) => rest);\n\n // Update the current dashboard\n const currentDashboard = store.currentDashboard()!;\n const updatedWidgets = currentDashboard.widget.map((widget) => {\n const updatedNode = nodes.find((node) => node.id === widget.config.id);\n if (updatedNode) {\n return {\n ...widget,\n config: updatedNode,\n };\n }\n return widget;\n });\n\n const updatedDashboard = {\n ...currentDashboard,\n widget: updatedWidgets,\n };\n\n // Save to service\n await dashboardService.updateOne(updatedDashboard.id, dashboardLayoutToModel(updatedDashboard));\n\n // Update the dashboards\n const updatedDashboards = store\n .dashboards()\n .map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));\n\n patchState(store, { dashboards: updatedDashboards });\n },\n\n // Handle widget configuration\n async handlePopupConfiguration(widgetNode: AXPWidgetNode): Promise<void> {\n if (!store.currentDashboard()) {\n console.warn('No current dashboard selected');\n return;\n }\n\n try {\n const updatedNode = await dashboardPopup.handlePopupConfiguration(widgetNode);\n\n if (!updatedNode) {\n return;\n }\n\n // Update the current dashboard's widget with the new configuration\n const currentDashboard = store.currentDashboard()!;\n const updatedWidgets = currentDashboard.widget.map((widget) => {\n if (widget.node?.name === widgetNode.name && widget.node?.path === widgetNode.path) {\n return {\n ...widget,\n node: updatedNode,\n };\n }\n return widget;\n });\n\n const updatedDashboard = {\n ...currentDashboard,\n widget: updatedWidgets,\n };\n\n // Save to service\n await dashboardService.updateOne(updatedDashboard.id, dashboardLayoutToModel(updatedDashboard));\n\n // Update the dashboards state\n const updatedDashboards = store\n .dashboards()\n .map((dashboard) => (dashboard.id === updatedDashboard.id ? updatedDashboard : dashboard));\n\n patchState(store, { dashboards: updatedDashboards });\n } catch (error) {\n console.error('Error handling widget configuration:', error);\n }\n },\n\n // Reload dashboards from service\n async refreshDashboards(): Promise<void> {\n await loadDashboards();\n },\n };\n }\n )\n);\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, inject, OnInit, signal, ViewEncapsulation } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXButtonGroupModule } from '@acorex/components/button-group';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXGridLayoutBuilderModule } from '@acorex/components/grid-layout-builder';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { AXPDesignerService } from '@acorex/platform/layout/designer';\nimport { AXPBasePage, AXPBasePageComponent, AXPPageLayoutComponent } from '@acorex/platform/themes/default';\nimport { AXPLayoutThemeService, AXPThemeLayoutBlockComponent } from '@acorex/platform/themes/shared';\n\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXPActionMenuItem, AXPBreadcrumbItem, AXPExecuteCommand } from '@acorex/platform/core';\nimport { RootConfig } from '../../../const';\nimport { AXCDashboardWidgetWrapperComponent } from '../widget-wrapper/dashboard-widget-wrapper';\nimport { AXCDashboardStore } from './home-dashboard.store';\n\n@Component({\n selector: 'axp-dashboard-home',\n templateUrl: './home-dashboard.html',\n styleUrls: ['./home-dashboard.scss'],\n standalone: true,\n imports: [\n CommonModule,\n AXPLayoutBuilderModule,\n AXButtonModule,\n AXButtonGroupModule,\n AXGridLayoutBuilderModule,\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXDropdownButtonModule,\n AXDropdownModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXBreadcrumbsModule,\n AXCDashboardWidgetWrapperComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXPDesignerService,\n AXCDashboardStore,\n {\n provide: AXPBasePage,\n useExisting: AXPDashboardHomeComponent,\n },\n ],\n})\nexport class AXPDashboardHomeComponent extends AXPBasePageComponent implements OnInit {\n //#region ---------------- Services & Dependencies ----------------\n\n protected readonly rootConfig = RootConfig;\n protected readonly popupService = inject(AXPopupService);\n protected readonly dialogService = inject(AXDialogService);\n protected readonly store = inject(AXCDashboardStore);\n protected readonly router = inject(Router);\n protected readonly activatedRoute = inject(ActivatedRoute);\n protected override layoutService = inject(AXPLayoutThemeService);\n\n //#endregion\n\n //#region ---------------- View Properties ----------------\n\n protected readonly isEdited = signal(false);\n protected readonly context = signal({});\n\n //#endregion\n\n //#region ---------------- Effects ----------------\n\n #loadingEffect = effect(() => {\n const isLoading = false; // Since store doesn't have isLoading, we'll default to false\n this.layoutService.setNavigationLoading(isLoading);\n });\n\n //#endregion\n\n //#region ---------------- Event Handlers ----------------\n\n protected toggleEdit(): void {\n this.isEdited.update((value) => !value);\n }\n\n protected async confirmWidgetDelete(dashboardId: string, widgetId: string): Promise<void> {\n try {\n const dialogResult = await this.dialogService.confirm(\n await this.translateService.translateAsync('workflow.warning'),\n await this.translateService.translateAsync('workflow.confirm-delete'),\n 'danger',\n 'horizontal'\n );\n\n if (dialogResult.result) {\n this.store.removeWidget(dashboardId, widgetId);\n }\n } catch (error) {\n console.error('Error confirming widget deletion:', error);\n }\n }\n\n //#endregion\n\n override getPageTitle(): string {\n return this.store.currentDashboard()?.title || 'Dashboard';\n }\n\n override async getPageDescription(): Promise<string> {\n return this.store.currentDashboard()?.description || '';\n }\n\n protected override getTitleActions(): AXPActionMenuItem[] | Promise<AXPActionMenuItem[]> {\n return [\n ...this.store.dashboards().map((i) => ({\n title: i.title,\n command: { name: i.id, metadata: { isDashboard: true, dashboard: i } },\n icon: i.id === this.store.currentDashboardId() ? 'fa-solid fa-check' : '',\n })),\n ];\n }\n\n override async getPrimaryMenuItems(): Promise<AXPActionMenuItem[]> {\n const scope = this.rootConfig.config.i18n;\n return [\n {\n title: 't(\"add-item\")',\n icon: 'fa-light fa-square-plus',\n color: 'primary',\n items: [\n {\n title: await this.translateService.translateAsync('dashboard', { scope: 'dashboard' }),\n icon: 'fa-light fa-gauge-high',\n break: true,\n command: {\n name: 'new-dashboard',\n },\n },\n {\n title: await this.translateService.translateAsync('widget', { scope: 'dashboard' }),\n icon: 'fa-light fa-window-restore',\n command: {\n name: 'new-widget',\n },\n },\n ],\n },\n ];\n }\n\n override async getSecondaryMenuItems(): Promise<AXPActionMenuItem[]> {\n const scope = this.rootConfig.config.i18n;\n return [\n {\n title: await this.translateService.translateAsync('delete-current-dashboard', { scope: 'dashboard' }),\n icon: 'fa-light fa-trash-can',\n color: 'danger',\n disabled: this.store.dashboards().length <= 1,\n command: {\n name: 'delete',\n },\n },\n ];\n }\n\n override getPageBreadcrumbs(): AXPBreadcrumbItem[] | Promise<AXPBreadcrumbItem[]> {\n return [\n {\n title: this.translateService.translateSync('entity.home'),\n icon: 'fa-solid fa-home ax-text-xs ax-me-2',\n },\n ];\n }\n\n override async execute(command: AXPExecuteCommand): Promise<void> {\n if (command.metadata?.['isDashboard']) {\n this.store.handleConfigChange(command.metadata?.['dashboard']);\n this.recompute();\n } else {\n switch (command.name) {\n case 'new-dashboard':\n await this.store.addDashboard();\n this.recompute();\n break;\n case 'new-widget':\n await this.store.addWidget();\n this.recompute();\n break;\n case 'delete':\n await this.store.removeDashboard(this.store.currentDashboard()?.id!);\n this.recompute();\n break;\n }\n }\n }\n\n //#endregion\n}\n","<axp-page-layout *translate=\"let t\">\n <!-- Content Section -->\n\n <axp-page-content class=\"ax-relative\">\n <ax-grid-layout-container [options]=\"store.dashboardsOption()\" (onChange)=\"store.onGridChange($event)\">\n @for(widget of store.currentDashboard()?.widget; track widget.config.id) {\n <ax-grid-layout-widget [options]=\"widget.config\">\n <axc-dashboard-widget-wrapper\n [hasOptions]=\"widget.node?.options?.['hasOptions'] ?? true\"\n (onDelete)=\"confirmWidgetDelete(store.currentDashboard()?.id!, widget.config.id!)\"\n (onConfiguration)=\"store.handlePopupConfiguration(widget.node!)\"\n >\n @if(widget.node) {\n <axp-widgets-container [context]=\"context()\">\n <ng-container axp-widget-renderer [node]=\"widget.node\" [mode]=\"'view'\"></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 <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-page-content>\n</axp-page-layout>\n"],"names":["i2","i3","i5","i1","i4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgBa,kCAAkC,CAAA;AAR/C,IAAA,WAAA,GAAA;QASE,IAAQ,CAAA,QAAA,GAAG,MAAM,EAAQ;QACzB,IAAe,CAAA,eAAA,GAAG,MAAM,EAAQ;AAEhC,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAU,IAAI,CAAC;AAalC;AAZC,IAAA,iBAAiB,CAAC,KAA8C,EAAA;AAC9D,QAAA,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI;AACrB,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACpB;AACF,YAAA,KAAK,eAAe;AAClB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;gBAC3B;AACF,YAAA;gBACE;;;8GAdK,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlC,kCAAkC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChB/C,g4CAoCA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvBY,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,8IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,WAAA,EAAA,SAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGrF,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAR9C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,mBAGvB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC,CAAC,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,YAAY,CAAC,cACrF,IAAI,EAAA,QAAA,EAAA,g4CAAA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA;;;AEsBZ,MAAO,oBAAqB,SAAQ,mBAAmB,CAAA;AAvB7D,IAAA,WAAA,GAAA;;AA0BqB,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,EAAE,CAAC;AACzB,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE,CAAC;AAkBnD;AAhBC,IAAA,IAAc,OAAO,GAAA;QACnB,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE;;IAGtB,QAAQ,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;;AAG1C,IAAA,MAAM,WAAW,CAAC,UAAU,GAAG,KAAK,EAAA;QAC5C,IAAI,CAAC,KAAK,CAAC;AACT,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE;AAC3B,YAAA,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE;YACvC,UAAU;AACX,SAAA,CAAC;;8GApBO,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAtBrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,aAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;GAmBT,EACS,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,kWAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,cAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAa,kKAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,8IAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAE7E,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAvBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA;oBACD,OAAO,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,CAAC;AAC1F,iBAAA;;;ACHK,MAAO,qBAAsB,SAAQ,mBAAmB,CAAA;AApB9D,IAAA,WAAA,GAAA;;AAsBqB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAuB,IAAI,CAAC;AAgBnE;IAdU,QAAQ,GAAA;QACf,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;;AAGxB,IAAA,MAAM,WAAW,CAAC,UAAU,GAAG,KAAK,EAAA;QAC5C,IAAI,CAAC,KAAK,CAAC;YACT,UAAU;AACV,YAAA,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;AAC1B,SAAA,CAAC;;AAGM,IAAA,oBAAoB,CAAC,KAAsC,EAAA;QACnE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;;8GAhBxB,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAnBtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACS,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,8IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gCAAgC,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAElE,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBApBjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;AAgBT,EAAA,CAAA;AACD,oBAAA,OAAO,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,gCAAgC,CAAC;AAC/E,iBAAA;;;MCvBY,wBAAwB,CAAA;AADrC,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AA6CvD;IA3CC,MAAM,uBAAuB,CAAC,IAAiC,EAAA;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAChE,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,IAAI,EAAE,KAAK;AACX,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,KAAK,EAAE,0BAA0B;YACjC,IAAI,EAAE,EAAE,IAAI,EAAE;AACf,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAChB;;QAGF,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI;QAC3C,IAAI,UAAU,EAAE;YACd;;AAGF,QAAA,OAAO,IAA0B;;IAGnC,MAAM,wBAAwB,CAAC,MAAqB,EAAA;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE;AACjE,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,KAAK,EAAE,sBAAsB;YAC7B,IAAI,EAAE,EAAE,MAAM,EAAE;AACjB,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAChB;;QAGF,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,IAAI;QAC3C,IAAI,UAAU,EAAE;YACd;;QAGF,OAAO,IAAI,CAAC,MAAuB;;8GA5C1B,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cADX,MAAM,EAAA,CAAA,CAAA;;2FACnB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACPlC,MAAM,IAAI,GAAG,iBAAiB;AAC9B,IAAY,uBAEX;AAFD,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,kBAAA,CAAA,GAAA,kCAA6C;AAC/C,CAAC,EAFW,uBAAuB,KAAvB,uBAAuB,GAElC,EAAA,CAAA,CAAA;;ACYD;AACa,MAAA,iBAAiB,GAAG,WAAW,CAC1C,EAAE,UAAU,EAAE,MAAM,EAAE;AAEtB;AACA,SAAS,CAAC,MAAK;;AAEb,IAAA,MAAM,KAAK,GAAG;AACZ,QAAA,UAAU,EAAE,EAA0B;AACtC,QAAA,kBAAkB,EAAE,IAAqB;QACzC,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAyB;AACvG,QAAA,SAAS,EAAE,KAAK;KACjB;AAED,IAAA,OAAO,KAAK;AACd,CAAC,CAAC;AAEF;AACA,YAAY,CAAC,CAAC,KAAK,MAAM;AACvB,IAAA,gBAAgB,EAAE,QAAQ,CAAC,MAAK;QAC9B,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,kBAAkB,EAAE,CAAC,IAAI,IAAI;AACpG,KAAC,CAAC;AACH,CAAA,CAAC,CAAC;AAEH;AACA,WAAW,CACT,CACE,KAAK,EACL,cAAc,GAAG,MAAM,CAAC,wBAAwB,CAAC,EACjD,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,EACvC,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,EACjD,mBAAmB,GAAG,MAAM,CAAC,sBAAsB,CAAC,EACpD,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,CAAC,EAC9C,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,KACxC;;IAEF,MAAM,CAAC,MAAK;AACV,QAAA,cAAc,EAAE;AAClB,KAAC,CAAC;;AAGF,IAAA,eAAe,cAAc,GAAA;AAC3B,QAAA,IAAI;YACF,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;;AAGtC,YAAA,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACnE,YAAA,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;;YAG1C,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,sBAAsB,CAAC;;YAG9D,MAAM,kBAAkB,GAAG,MAAM;AAC9B,iBAAA,KAAK,CAAC,gBAAgB,CAAC,IAAI;AAC3B,iBAAA,GAAG,CAAC,uBAAuB,CAAC,gBAAgB,CAAC;YAEhD,IAAI,qBAAqB,GAAG,IAAI;AAEhC,YAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;;AAEzB,gBAAA,MAAM,eAAe,GAAG,kBAAkB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,kBAAkB,CAAC;gBAEjG,IAAI,eAAe,EAAE;oBACnB,qBAAqB,GAAG,kBAA4B;;qBAC/C;;AAEL,oBAAA,qBAAqB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;;oBAExC;AACG,yBAAA,KAAK,CAAC,gBAAgB,CAAC,IAAI;AAC3B,yBAAA,GAAG,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;;;YAI3E,UAAU,CAAC,KAAK,EAAE;gBAChB,UAAU;AACV,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,kBAAkB,EAAE,qBAAqB;AAC1C,aAAA,CAAC;;QACF,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC;YACjD,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;;;;IAK3C,SAAS,sBAAsB,CAAC,KAAoC,EAAA;QAClE,OAAO;AACL,YAAA,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW,EAAE,KAAK,CAAC,WAAW;AAC9B,YAAA,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;SAC3B;;;IAIH,SAAS,sBAAsB,CAAC,MAA0B,EAAA;QACxD,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM,CAAC,KAAK;YAClB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnB,YAAA,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YACrC,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB;;IAGH,OAAO;;AAEL,QAAA,mBAAmB,CAAC,WAAmB,EAAA;YACrC,UAAU,CAAC,KAAK,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;AACtD,YAAA,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,WAAW,CAAC;SACvG;;AAGD,QAAA,MAAM,YAAY,GAAA;AAChB,YAAA,IAAI;gBACF,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,uBAAuB,CAAC,EAAE,CAAC;AACrE,gBAAA,IAAI,CAAC,YAAY;oBAAE;AAEnB,gBAAA,YAAY,CAAC,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE;AACzC,gBAAA,YAAY,CAAC,MAAM,GAAG,EAAE;;AAGxB,gBAAA,MAAM,cAAc,GAAG,sBAAsB,CAAC,YAAY,CAAC;AAC3D,gBAAA,MAAM,gBAAgB,CAAC,SAAS,CAAC,cAAc,CAAC;;gBAGhD,MAAM,iBAAiB,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,EAAE,YAAY,CAAC;gBAE/D,UAAU,CAAC,KAAK,EAAE;AAChB,oBAAA,UAAU,EAAE,iBAAiB;oBAC7B,kBAAkB,EAAE,YAAY,CAAC,EAAE;AACpC,iBAAA,CAAC;;AAGF,gBAAA,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,YAAY,CAAC,EAAE,CAAC;;YAC1G,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC;;SAElD;;AAGD,QAAA,MAAM,SAAS,GAAA;AACb,YAAA,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE;AAC/B,gBAAA,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC;gBAC7C;;AAGF,YAAA,IAAI;AACF,gBAAA,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC;AACnD,oBAAA,MAAM,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC;AAC7C,iBAAA,CAAC;;AAGF,gBAAA,MAAM,eAAe,GAAI,OAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC;;gBAG/E,MAAM,gBAAgB,GAA6B,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;AAChF,oBAAA,MAAM,EAAE,GAAG,gBAAgB,CAAC,IAAI,EAAE;oBAClC,OAAO;AACL,wBAAA,MAAM,EAAE;4BACN,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;4BAC7C,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;AAC3C,4BAAA,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS;AAC9C,4BAAA,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ;AAC5C,4BAAA,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS;AAC9C,4BAAA,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ;4BAC5C,EAAE;AACH,yBAAA;wBACD,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;qBAC9B;AACH,iBAAC,CAAC;;AAGF,gBAAA,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,KAAI;oBAC7D,IAAI,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,kBAAkB,EAAE,EAAE;wBAC/C,OAAO;AACL,4BAAA,GAAG,SAAS;4BACZ,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC;yBACnD;;AAEH,oBAAA,OAAO,SAAS;AAClB,iBAAC,CAAC;;gBAGF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,kBAAkB,EAAE,CAAC;gBAC3F,IAAI,gBAAgB,EAAE;AACpB,oBAAA,MAAM,gBAAgB,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;;gBAGjG,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;;YACpD,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC;;SAE/C;;QAGD,MAAM,eAAe,CAAC,EAAU,EAAA;YAC9B,IAAI,CAAC,EAAE,EAAE;AACP,gBAAA,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC;gBACpD;;AAGF,YAAA,IAAI;gBACF,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,OAAO,CAC9C,MAAM,kBAAkB,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAC3D,MAAM,kBAAkB,CAAC,cAAc,CAAC,yBAAyB,CAAC,EAClE,QAAQ,EACR,YAAY,CACb;AAED,gBAAA,IAAI,YAAY,CAAC,MAAM,EAAE;;AAEvB,oBAAA,MAAM,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;;oBAGpC,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;;AAGvF,oBAAA,IAAI,qBAAqB,GAAG,KAAK,CAAC,kBAAkB,EAAE;AAEtD,oBAAA,IAAI,EAAE,KAAK,KAAK,CAAC,kBAAkB,EAAE,EAAE;AACrC,wBAAA,qBAAqB,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI;;wBAGrF,IAAI,qBAAqB,EAAE;4BACzB;AACG,iCAAA,KAAK,CAAC,gBAAgB,CAAC,IAAI;AAC3B,iCAAA,GAAG,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;;;oBAI3E,UAAU,CAAC,KAAK,EAAE;AAChB,wBAAA,UAAU,EAAE,iBAAiB;AAC7B,wBAAA,kBAAkB,EAAE,qBAAqB;AAC1C,qBAAA,CAAC;;;YAEJ,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC;;SAEpD;;AAGD,QAAA,MAAM,YAAY,CAAC,WAAmB,EAAE,QAAgB,EAAA;YACtD,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC;AAC7E,YAAA,IAAI,CAAC,gBAAgB;gBAAE;AAEvB,YAAA,MAAM,gBAAgB,GAAG;AACvB,gBAAA,GAAG,gBAAgB;AACnB,gBAAA,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC;aAClF;;YAGD,MAAM,gBAAgB,CAAC,SAAS,CAAC,WAAW,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;;YAGvF,MAAM,iBAAiB,GAAG;AACvB,iBAAA,UAAU;iBACV,GAAG,CAAC,CAAC,SAAS,MAAM,SAAS,CAAC,EAAE,KAAK,WAAW,GAAG,gBAAgB,GAAG,SAAS,CAAC,CAAC;YAEpF,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;SACrD;;QAGD,MAAM,kBAAkB,CAAC,SAA6B,EAAA;;AAEpD,YAAA,MAAM,gBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;;AAGjF,YAAA,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;YAEhG,UAAU,CAAC,KAAK,EAAE;AAChB,gBAAA,UAAU,EAAE,iBAAiB;gBAC7B,kBAAkB,EAAE,SAAS,CAAC,EAAE;AACjC,aAAA,CAAC;;AAGF,YAAA,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE,CAAC;SACxG;;QAGD,MAAM,YAAY,CAAC,KAAwB,EAAA;AACzC,YAAA,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC;AAClC,YAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE;AAC7B,gBAAA,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC;gBACpD;;;YAIF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC;;AAG7D,YAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,EAAG;YAClD,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;gBAC5D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtE,IAAI,WAAW,EAAE;oBACf,OAAO;AACL,wBAAA,GAAG,MAAM;AACT,wBAAA,MAAM,EAAE,WAAW;qBACpB;;AAEH,gBAAA,OAAO,MAAM;AACf,aAAC,CAAC;AAEF,YAAA,MAAM,gBAAgB,GAAG;AACvB,gBAAA,GAAG,gBAAgB;AACnB,gBAAA,MAAM,EAAE,cAAc;aACvB;;AAGD,YAAA,MAAM,gBAAgB,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;;YAG/F,MAAM,iBAAiB,GAAG;AACvB,iBAAA,UAAU;iBACV,GAAG,CAAC,CAAC,SAAS,MAAM,SAAS,CAAC,EAAE,KAAK,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,GAAG,SAAS,CAAC,CAAC;YAE5F,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;SACrD;;QAGD,MAAM,wBAAwB,CAAC,UAAyB,EAAA;AACtD,YAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE;AAC7B,gBAAA,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC;gBAC7C;;AAGF,YAAA,IAAI;gBACF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,wBAAwB,CAAC,UAAU,CAAC;gBAE7E,IAAI,CAAC,WAAW,EAAE;oBAChB;;;AAIF,gBAAA,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,EAAG;gBAClD,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;oBAC5D,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE;wBAClF,OAAO;AACL,4BAAA,GAAG,MAAM;AACT,4BAAA,IAAI,EAAE,WAAW;yBAClB;;AAEH,oBAAA,OAAO,MAAM;AACf,iBAAC,CAAC;AAEF,gBAAA,MAAM,gBAAgB,GAAG;AACvB,oBAAA,GAAG,gBAAgB;AACnB,oBAAA,MAAM,EAAE,cAAc;iBACvB;;AAGD,gBAAA,MAAM,gBAAgB,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;;gBAG/F,MAAM,iBAAiB,GAAG;AACvB,qBAAA,UAAU;qBACV,GAAG,CAAC,CAAC,SAAS,MAAM,SAAS,CAAC,EAAE,KAAK,gBAAgB,CAAC,EAAE,GAAG,gBAAgB,GAAG,SAAS,CAAC,CAAC;gBAE5F,UAAU,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC;;YACpD,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC;;SAE/D;;AAGD,QAAA,MAAM,iBAAiB,GAAA;YACrB,MAAM,cAAc,EAAE;SACvB;KACF;AACH,CAAC,CACF;;AC5UG,MAAO,yBAA0B,SAAQ,oBAAoB,CAAA;AA/BnE,IAAA,WAAA,GAAA;;;QAkCqB,IAAU,CAAA,UAAA,GAAG,UAAU;AACvB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AACvC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACjC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AACvC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,qBAAqB,CAAC;;;AAM7C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC;;;AAMvC,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,MAAK;AAC3B,YAAA,MAAM,SAAS,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,SAAS,CAAC;AACpD,SAAC,CAAC;AA0HH;;;AA7HC,IAAA,cAAc;;;IASJ,UAAU,GAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC;;AAG/B,IAAA,MAAM,mBAAmB,CAAC,WAAmB,EAAE,QAAgB,EAAA;AACvE,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CACnD,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAC9D,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,yBAAyB,CAAC,EACrE,QAAQ,EACR,YAAY,CACb;AAED,YAAA,IAAI,YAAY,CAAC,MAAM,EAAE;gBACvB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC;;;QAEhD,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC;;;;IAMpD,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,KAAK,IAAI,WAAW;;AAGnD,IAAA,MAAM,kBAAkB,GAAA;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,WAAW,IAAI,EAAE;;IAGtC,eAAe,GAAA;QAChC,OAAO;AACL,YAAA,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;gBACrC,KAAK,EAAE,CAAC,CAAC,KAAK;AACd,gBAAA,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE;AACtE,gBAAA,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,GAAG,mBAAmB,GAAG,EAAE;AAC1E,aAAA,CAAC,CAAC;SACJ;;AAGM,IAAA,MAAM,mBAAmB,GAAA;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;QACzC,OAAO;AACL,YAAA;AACE,gBAAA,KAAK,EAAE,eAAe;AACtB,gBAAA,IAAI,EAAE,yBAAyB;AAC/B,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,KAAK,EAAE;AACL,oBAAA;AACE,wBAAA,KAAK,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACtF,wBAAA,IAAI,EAAE,wBAAwB;AAC9B,wBAAA,KAAK,EAAE,IAAI;AACX,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,eAAe;AACtB,yBAAA;AACF,qBAAA;AACD,oBAAA;AACE,wBAAA,KAAK,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACnF,wBAAA,IAAI,EAAE,4BAA4B;AAClC,wBAAA,OAAO,EAAE;AACP,4BAAA,IAAI,EAAE,YAAY;AACnB,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;SACF;;AAGM,IAAA,MAAM,qBAAqB,GAAA;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;QACzC,OAAO;AACL,YAAA;AACE,gBAAA,KAAK,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AACrG,gBAAA,IAAI,EAAE,uBAAuB;AAC7B,gBAAA,KAAK,EAAE,QAAQ;gBACf,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,MAAM,IAAI,CAAC;AAC7C,gBAAA,OAAO,EAAE;AACP,oBAAA,IAAI,EAAE,QAAQ;AACf,iBAAA;AACF,aAAA;SACF;;IAGM,kBAAkB,GAAA;QACzB,OAAO;AACL,YAAA;gBACE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,aAAa,CAAC;AACzD,gBAAA,IAAI,EAAE,qCAAqC;AAC5C,aAAA;SACF;;IAGM,MAAM,OAAO,CAAC,OAA0B,EAAA;QAC/C,IAAI,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC,EAAE;AACrC,YAAA,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;YAC9D,IAAI,CAAC,SAAS,EAAE;;aACX;AACL,YAAA,QAAQ,OAAO,CAAC,IAAI;AAClB,gBAAA,KAAK,eAAe;AAClB,oBAAA,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;oBAC/B,IAAI,CAAC,SAAS,EAAE;oBAChB;AACF,gBAAA,KAAK,YAAY;AACf,oBAAA,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;oBAC5B,IAAI,CAAC,SAAS,EAAE;oBAChB;AACF,gBAAA,KAAK,QAAQ;AACX,oBAAA,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,EAAG,CAAC;oBACpE,IAAI,CAAC,SAAS,EAAE;oBAChB;;;;8GA7IG,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EATzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,SAAA,EAAA;YACT,kBAAkB;YAClB,iBAAiB;AACjB,YAAA;AACE,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,WAAW,EAAE,yBAAyB;AACvC,aAAA;SACF,ECrDH,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,glDAiCA,EDHI,MAAA,EAAA,CAAA,smCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,sBAAsB,EACtB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,EACd,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,yBAAyB,EACzB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,8BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,sBAAsB,4DACtB,4BAA4B,EAAA,QAAA,EAAA,kdAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC5B,sBAAsB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACtB,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,kCAAkC,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAazB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA/BrC,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAGlB,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,sBAAsB;wBACtB,cAAc;wBACd,mBAAmB;wBACnB,yBAAyB;wBACzB,sBAAsB;wBACtB,4BAA4B;wBAC5B,sBAAsB;wBACtB,gBAAgB;wBAChB,iBAAiB;wBACjB,mBAAmB;wBACnB,mBAAmB;wBACnB,kCAAkC;AACnC,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAC1B,SAAA,EAAA;wBACT,kBAAkB;wBAClB,iBAAiB;AACjB,wBAAA;AACE,4BAAA,OAAO,EAAE,WAAW;AACpB,4BAAA,WAAW,EAA2B,yBAAA;AACvC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,glDAAA,EAAA,MAAA,EAAA,CAAA,smCAAA,CAAA,EAAA;;;;;"}
|