@acorex/platform 19.4.15 → 20.0.0-next.0
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/index.d.ts +300 -13
- package/common/index.d.ts +1478 -16
- package/core/index.d.ts +1303 -8
- package/domain/index.d.ts +79 -2
- package/fesm2022/acorex-platform-auth.mjs +25 -19
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/acorex-platform-common.mjs +113 -110
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +180 -59
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +59 -18
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +44 -40
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +412 -111
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +84 -87
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +153 -120
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-filters.mjs +3 -3
- package/fesm2022/acorex-platform-layout-filters.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +108 -210
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +7 -7
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +422 -108
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-create-entity-view.component-BxYe1IlE.mjs +22 -0
- package/fesm2022/acorex-platform-themes-default-create-entity-view.component-BxYe1IlE.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-DKihQPlU.mjs +112 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-DKihQPlU.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-BupuLA5U.mjs → acorex-platform-themes-default-entity-master-list-view.component-PKLs3XdV.mjs} +28 -23
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-PKLs3XdV.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DwDxUQfZ.mjs +105 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-DwDxUQfZ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-Dbf3kR4Z.mjs → acorex-platform-themes-default-entity-master-single-view.component-IcmkHgp5.mjs} +18 -13
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-IcmkHgp5.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-CAfQVBOI.mjs → acorex-platform-themes-default-error-401.component-8QfQ3hNo.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-401.component-8QfQ3hNo.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-404.component-DQ4nWPip.mjs → acorex-platform-themes-default-error-404.component-D9npA9_W.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-404.component-D9npA9_W.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-BQpVnLzt.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-BQpVnLzt.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +76 -54
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-CXiRmniv.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared.mjs +26 -26
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/{acorex-platform-widgets-button-widget-designer.component-rFIoj-24.mjs → acorex-platform-widgets-button-widget-designer.component-BIZkWv8q.mjs} +7 -8
- package/fesm2022/acorex-platform-widgets-button-widget-designer.component-BIZkWv8q.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-column.component-Bq8dCQJb.mjs → acorex-platform-widgets-checkbox-widget-column.component-MjSzOXIJ.mjs} +7 -8
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-MjSzOXIJ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-designer.component-Bld65JIi.mjs → acorex-platform-widgets-checkbox-widget-designer.component-5kuroU6r.mjs} +6 -7
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-5kuroU6r.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-checkbox-widget-view.component-CAGwyk9s.mjs → acorex-platform-widgets-checkbox-widget-view.component-BgrIeNW0.mjs} +7 -8
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-BgrIeNW0.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-color-box-widget-designer.component-B6N5rPk5.mjs → acorex-platform-widgets-color-box-widget-designer.component-BTxAgvMQ.mjs} +7 -8
- package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-BTxAgvMQ.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-contact-widget-filter.component-Bg9CUMnD.mjs → acorex-platform-widgets-contact-widget-filter.component-DCUfKMJ6.mjs} +5 -6
- package/fesm2022/acorex-platform-widgets-contact-widget-filter.component-DCUfKMJ6.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-file-list-popup.component-TNxbcVav.mjs → acorex-platform-widgets-file-list-popup.component-yqqPJMg2.mjs} +7 -7
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-yqqPJMg2.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-page-widget-designer.component-DuKrIkHh.mjs → acorex-platform-widgets-page-widget-designer.component-tITe8tiu.mjs} +6 -8
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-tITe8tiu.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-rich-text-popup.component-CtZlLmEp.mjs → acorex-platform-widgets-rich-text-popup.component-Bk20MsqK.mjs} +7 -7
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-Bk20MsqK.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-tabular-data-edit-popup.component-Dg0d9DbZ.mjs → acorex-platform-widgets-tabular-data-edit-popup.component-2srL34Aq.mjs} +7 -7
- package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-2srL34Aq.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-tabular-data-view-popup.component-CB1YeddQ.mjs → acorex-platform-widgets-tabular-data-view-popup.component-D9654sA3.mjs} +7 -7
- package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-D9654sA3.mjs.map +1 -0
- package/fesm2022/{acorex-platform-widgets-text-block-widget-designer.component-CXNsxV-t.mjs → acorex-platform-widgets-text-block-widget-designer.component-C1VgsL1j.mjs} +6 -7
- package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-C1VgsL1j.mjs.map +1 -0
- package/fesm2022/acorex-platform-widgets.mjs +1130 -1142
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +29 -100
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/fesm2022/acorex-platform.mjs.map +1 -1
- package/index.d.ts +2 -2
- package/layout/builder/index.d.ts +682 -1
- package/layout/components/index.d.ts +436 -4
- package/layout/designer/index.d.ts +460 -4
- package/layout/entity/index.d.ts +769 -1
- package/layout/filters/index.d.ts +34 -1
- package/layout/views/index.d.ts +487 -3
- package/native/index.d.ts +35 -2
- package/package.json +1 -1
- package/runtime/index.d.ts +279 -17
- package/themes/default/index.d.ts +483 -3
- package/themes/shared/index.d.ts +204 -6
- package/widgets/index.d.ts +2138 -4
- package/workflow/index.d.ts +168 -7
- package/auth/lib/application/application.loader.d.ts +0 -8
- package/auth/lib/application/application.types.d.ts +0 -10
- package/auth/lib/auth-registry.service.d.ts +0 -12
- package/auth/lib/auth.guard.d.ts +0 -2
- package/auth/lib/auth.module.d.ts +0 -21
- package/auth/lib/auth.strategy.d.ts +0 -47
- package/auth/lib/errors.types.d.ts +0 -16
- package/auth/lib/feature/feature.directive.d.ts +0 -15
- package/auth/lib/feature/feature.guard.d.ts +0 -2
- package/auth/lib/feature/feature.loader.d.ts +0 -8
- package/auth/lib/feature/feature.types.d.ts +0 -6
- package/auth/lib/feature/index.d.ts +0 -4
- package/auth/lib/permission/index.d.ts +0 -6
- package/auth/lib/permission/permission-definition.builder.d.ts +0 -24
- package/auth/lib/permission/permission-definition.service.d.ts +0 -20
- package/auth/lib/permission/permission.directive.d.ts +0 -15
- package/auth/lib/permission/permission.guard.d.ts +0 -2
- package/auth/lib/permission/permission.loader.d.ts +0 -8
- package/auth/lib/permission/permission.types.d.ts +0 -13
- package/auth/lib/session.service.d.ts +0 -59
- package/auth/lib/session.types.d.ts +0 -24
- package/auth/lib/tenant/tenant.loader.d.ts +0 -8
- package/auth/lib/tenant/tenant.types.d.ts +0 -8
- package/auth/lib/user/user.types.d.ts +0 -6
- package/common/lib/app/app-version.provider.d.ts +0 -10
- package/common/lib/app/application.types.d.ts +0 -323
- package/common/lib/app/index.d.ts +0 -4
- package/common/lib/app/operators.d.ts +0 -23
- package/common/lib/common.module.d.ts +0 -24
- package/common/lib/configs/app.config.d.ts +0 -27
- package/common/lib/configs/config.types.d.ts +0 -5
- package/common/lib/data/data-provider.types.d.ts +0 -16
- package/common/lib/data/filter-middleware.service.d.ts +0 -28
- package/common/lib/data/index.d.ts +0 -3
- package/common/lib/data/operators.service.d.ts +0 -14
- package/common/lib/errors/error-handler-registry.service.d.ts +0 -12
- package/common/lib/errors/error-handler.types.d.ts +0 -3
- package/common/lib/errors/global-error-handler.d.ts +0 -11
- package/common/lib/errors/index.d.ts +0 -3
- package/common/lib/file-storage/file-storage.service.d.ts +0 -13
- package/common/lib/file-storage/file-storage.types.d.ts +0 -160
- package/common/lib/file-storage/index.d.ts +0 -2
- package/common/lib/file-type/file-type.provider.d.ts +0 -14
- package/common/lib/file-type/file-type.types.d.ts +0 -56
- package/common/lib/file-type/index.d.ts +0 -2
- package/common/lib/filters/filters.service.d.ts +0 -8
- package/common/lib/filters/filters.types.d.ts +0 -24
- package/common/lib/filters/index.d.ts +0 -2
- package/common/lib/home-page/home-page-settings.key.d.ts +0 -3
- package/common/lib/home-page/home-page-settings.provider.d.ts +0 -13
- package/common/lib/home-page/home-page.module.d.ts +0 -6
- package/common/lib/home-page/home-page.routes.d.ts +0 -2
- package/common/lib/home-page/home-page.service.d.ts +0 -30
- package/common/lib/home-page/home-page.types.d.ts +0 -9
- package/common/lib/home-page/index.d.ts +0 -4
- package/common/lib/layout/grid-layout/grid-layout.directive.d.ts +0 -15
- package/common/lib/layout/grid-layout/grid-layout.types.d.ts +0 -18
- package/common/lib/layout/grid-layout/index.d.ts +0 -2
- package/common/lib/layout/index.d.ts +0 -5
- package/common/lib/layout/logo/index.d.ts +0 -1
- package/common/lib/layout/logo/logo.component.d.ts +0 -12
- package/common/lib/layout/menu/badge-helper.d.ts +0 -7
- package/common/lib/layout/menu/index.d.ts +0 -6
- package/common/lib/layout/menu/menu.provider.d.ts +0 -22
- package/common/lib/layout/menu/menu.service.d.ts +0 -18
- package/common/lib/layout/menu/menu.types.d.ts +0 -28
- package/common/lib/layout/menu/search-definition.provider.d.ts +0 -4
- package/common/lib/layout/menu/search.provider.d.ts +0 -20
- package/common/lib/layout/sticky.directive.d.ts +0 -29
- package/common/lib/layout/theme/components/slots/footer-text-slot.component.d.ts +0 -6
- package/common/lib/layout/theme/components/slots/index.d.ts +0 -2
- package/common/lib/layout/theme/components/slots/navbar-slot.component.d.ts +0 -8
- package/common/lib/search/index.d.ts +0 -5
- package/common/lib/search/search-definition.builder.d.ts +0 -25
- package/common/lib/search/search-definition.provider.d.ts +0 -19
- package/common/lib/search/search.provider.d.ts +0 -8
- package/common/lib/search/search.service.d.ts +0 -13
- package/common/lib/search/search.types.d.ts +0 -69
- package/common/lib/settings/index.d.ts +0 -5
- package/common/lib/settings/setting-definition.service.d.ts +0 -29
- package/common/lib/settings/setting.builder.d.ts +0 -47
- package/common/lib/settings/settings.provider.d.ts +0 -3
- package/common/lib/settings/settings.service.d.ts +0 -41
- package/common/lib/settings/settings.types.d.ts +0 -55
- package/common/lib/utils/clipboard-service.d.ts +0 -7
- package/common/lib/utils/export-popup.d.ts +0 -20
- package/common/lib/utils/export.service.d.ts +0 -21
- package/common/lib/utils/filter-cleaner.d.ts +0 -2
- package/common/lib/utils/index.d.ts +0 -5
- package/common/lib/utils/regional-util.service.d.ts +0 -15
- package/common/lib/utils/regional.types.d.ts +0 -47
- package/common/lib/workflows/common.workflow.d.ts +0 -53
- package/common/lib/workflows/error-handler.d.ts +0 -8
- package/common/lib/workflows/index.d.ts +0 -3
- package/common/lib/workflows/navigate.workflow.d.ts +0 -13
- package/core/lib/context/context-store.service.d.ts +0 -37
- package/core/lib/data/data-generator.d.ts +0 -27
- package/core/lib/data/datasource-definition-provider.service.d.ts +0 -36
- package/core/lib/data/index.d.ts +0 -3
- package/core/lib/data/value-transformer.d.ts +0 -6
- package/core/lib/directives/content-checker.directive.d.ts +0 -10
- package/core/lib/directives/dbl-click.directive.d.ts +0 -11
- package/core/lib/directives/element-data.directive.d.ts +0 -20
- package/core/lib/directives/grid-layout.directive.d.ts +0 -15
- package/core/lib/directives/index.d.ts +0 -4
- package/core/lib/event-service/event.service.d.ts +0 -43
- package/core/lib/event-service/index.d.ts +0 -1
- package/core/lib/expression-evaluator/expression-evaluator-scope-provider.service.d.ts +0 -23
- package/core/lib/expression-evaluator/expression-evaluator.service.d.ts +0 -16
- package/core/lib/expression-evaluator/index.d.ts +0 -2
- package/core/lib/startup/app-startup.service.d.ts +0 -11
- package/core/lib/startup/app-startup.types.d.ts +0 -6
- package/core/lib/startup/index.d.ts +0 -2
- package/core/lib/types/actions.types.d.ts +0 -282
- package/core/lib/types/core.types.d.ts +0 -32
- package/core/lib/types/data.types.d.ts +0 -16
- package/core/lib/types/element.types.d.ts +0 -6
- package/core/lib/types/file.types.d.ts +0 -12
- package/core/lib/types/index.d.ts +0 -10
- package/core/lib/types/interactive.types.d.ts +0 -67
- package/core/lib/types/layout.types.d.ts +0 -27
- package/core/lib/types/logo.types.d.ts +0 -15
- package/core/lib/types/scope.types.d.ts +0 -10
- package/core/lib/types/validation.types.d.ts +0 -36
- package/core/lib/utils/countdown-timer.d.ts +0 -14
- package/core/lib/utils/data-conditioner.d.ts +0 -5
- package/core/lib/utils/highlighter.d.ts +0 -43
- package/core/lib/utils/index.d.ts +0 -4
- package/core/lib/utils/object-util.d.ts +0 -5
- package/domain/lib/domain.module.d.ts +0 -8
- package/domain/lib/provide-entity-crud-commands.d.ts +0 -4
- package/fesm2022/acorex-platform-themes-default-create-entity-view.component-BHR0N-5J.mjs +0 -22
- package/fesm2022/acorex-platform-themes-default-create-entity-view.component-BHR0N-5J.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-details-view.component-DXwO-Euo.mjs +0 -106
- package/fesm2022/acorex-platform-themes-default-details-view.component-DXwO-Euo.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-pLcvobi-.mjs +0 -112
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-pLcvobi-.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BupuLA5U.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CcCAFGwA.mjs +0 -96
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CcCAFGwA.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Dbf3kR4Z.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-CAfQVBOI.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-DQ4nWPip.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DHFRZS-7.mjs +0 -19
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DHFRZS-7.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-button-widget-designer.component-rFIoj-24.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-column.component-Bq8dCQJb.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-designer.component-Bld65JIi.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-checkbox-widget-view.component-CAGwyk9s.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-color-box-widget-designer.component-B6N5rPk5.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-contact-widget-filter.component-Bg9CUMnD.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-file-list-popup.component-TNxbcVav.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-page-widget-designer.component-DuKrIkHh.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-rich-text-popup.component-CtZlLmEp.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-tabular-data-edit-popup.component-Dg0d9DbZ.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-tabular-data-view-popup.component-CB1YeddQ.mjs.map +0 -1
- package/fesm2022/acorex-platform-widgets-text-block-widget-designer.component-CXNsxV-t.mjs.map +0 -1
- package/layout/builder/lib/builder/builder.module.d.ts +0 -24
- package/layout/builder/lib/builder/builder.service.d.ts +0 -38
- package/layout/builder/lib/builder/context-store.service.d.ts +0 -34
- package/layout/builder/lib/builder/datasource-provider.service.d.ts +0 -26
- package/layout/builder/lib/builder/index.d.ts +0 -16
- package/layout/builder/lib/builder/metadata/index.d.ts +0 -1
- package/layout/builder/lib/builder/metadata/metadata.types.d.ts +0 -7
- package/layout/builder/lib/builder/widget-base.component.d.ts +0 -114
- package/layout/builder/lib/builder/widget-catalog.d.ts +0 -3
- package/layout/builder/lib/builder/widget-categories.d.ts +0 -10
- package/layout/builder/lib/builder/widget-column-renderer.d.ts +0 -38
- package/layout/builder/lib/builder/widget-container.component.d.ts +0 -41
- package/layout/builder/lib/builder/widget-group.types.d.ts +0 -10
- package/layout/builder/lib/builder/widget-map.d.ts +0 -87
- package/layout/builder/lib/builder/widget-placeholder.component.d.ts +0 -5
- package/layout/builder/lib/builder/widget-registery.service.d.ts +0 -16
- package/layout/builder/lib/builder/widget-renderer.directive.d.ts +0 -89
- package/layout/builder/lib/builder/widget-status.types.d.ts +0 -16
- package/layout/builder/lib/builder/widget.types.d.ts +0 -149
- package/layout/components/lib/badge/badge.directive.d.ts +0 -14
- package/layout/components/lib/badge/index.d.ts +0 -3
- package/layout/components/lib/badge/task-badge.service.d.ts +0 -11
- package/layout/components/lib/badge/task-badge.type.d.ts +0 -6
- package/layout/components/lib/blocks/index.d.ts +0 -9
- package/layout/components/lib/blocks/layout-actions.component.d.ts +0 -20
- package/layout/components/lib/blocks/layout-blocks.component.d.ts +0 -8
- package/layout/components/lib/blocks/layout-container.component.d.ts +0 -13
- package/layout/components/lib/blocks/layout-footer.component.d.ts +0 -5
- package/layout/components/lib/blocks/layout-header.component.d.ts +0 -16
- package/layout/components/lib/blocks/layout-list.component.d.ts +0 -13
- package/layout/components/lib/blocks/layout-section.component.d.ts +0 -5
- package/layout/components/lib/blocks/layout-side.component.d.ts +0 -9
- package/layout/components/lib/blocks/layout-tool-bar.component.d.ts +0 -5
- package/layout/components/lib/component-slot/component-slot-registery.service.d.ts +0 -9
- package/layout/components/lib/component-slot/component-slot.directive.d.ts +0 -46
- package/layout/components/lib/component-slot/component-slot.module.d.ts +0 -15
- package/layout/components/lib/component-slot/component-slot.types.d.ts +0 -23
- package/layout/components/lib/component-slot/index.d.ts +0 -4
- package/layout/components/lib/user-avatar/index.d.ts +0 -4
- package/layout/components/lib/user-avatar/user-avatar.component.d.ts +0 -38
- package/layout/components/lib/user-avatar/user-avatar.provider.d.ts +0 -3
- package/layout/components/lib/user-avatar/user-avatar.service.d.ts +0 -42
- package/layout/components/lib/user-avatar/user-avatar.types.d.ts +0 -13
- package/layout/designer/lib/designer/components/add-widget-button/add-widget-button.component.d.ts +0 -9
- package/layout/designer/lib/designer/components/add-widget-button/add-widget-line-button.component.d.ts +0 -8
- package/layout/designer/lib/designer/components/add-widget-button/add-widget-mini-button.component.d.ts +0 -11
- package/layout/designer/lib/designer/components/add-widget-button/index.d.ts +0 -3
- package/layout/designer/lib/designer/components/board/board.component.d.ts +0 -27
- package/layout/designer/lib/designer/components/breadcrumbs/breadcrumbs.component.d.ts +0 -11
- package/layout/designer/lib/designer/components/drawers/data-sources/data-sources.component.d.ts +0 -17
- package/layout/designer/lib/designer/components/drawers/history/history.component.d.ts +0 -7
- package/layout/designer/lib/designer/components/drawers/outline/outline.component.d.ts +0 -18
- package/layout/designer/lib/designer/components/drawers/pages/pages.component.d.ts +0 -7
- package/layout/designer/lib/designer/components/grid-drawer/grid-drawer.component.d.ts +0 -19
- package/layout/designer/lib/designer/components/header-menu/header-menu.component.d.ts +0 -8
- package/layout/designer/lib/designer/components/size-mode/view-size-toolbar.component.d.ts +0 -6
- package/layout/designer/lib/designer/components/widget-picker/widget-picker.component.d.ts +0 -33
- package/layout/designer/lib/designer/components/widget-picker/widget-picker.service.d.ts +0 -12
- package/layout/designer/lib/designer/designer.component.d.ts +0 -15
- package/layout/designer/lib/designer/index.d.ts +0 -10
- package/layout/designer/lib/designer/shared/command.d.ts +0 -70
- package/layout/designer/lib/designer/shared/designer-connector.service.d.ts +0 -12
- package/layout/designer/lib/designer/shared/designer.service.d.ts +0 -145
- package/layout/designer/lib/designer/shared/designer.types.d.ts +0 -50
- package/layout/designer/lib/designer/shared/drawer-content/drawer-content.component.d.ts +0 -8
- package/layout/designer/lib/designer/shared/generic-commands.types.d.ts +0 -10
- package/layout/designer/lib/designer/shared/widget-designer-renderer.directive.d.ts +0 -42
- package/layout/designer/lib/preview/preview-frame.component.d.ts +0 -8
- package/layout/designer/lib/preview/preview-viewer.component.d.ts +0 -25
- package/layout/designer/lib/preview/preview.component.d.ts +0 -23
- package/layout/designer/lib/property-viewer/widget-property-viewer.component.d.ts +0 -57
- package/layout/entity/lib/entity-data-seeder.d.ts +0 -12
- package/layout/entity/lib/entity-detail-list.viewmodel.d.ts +0 -40
- package/layout/entity/lib/entity-master-create.viewmodel.d.ts +0 -59
- package/layout/entity/lib/entity-master-list.viewmodel.d.ts +0 -107
- package/layout/entity/lib/entity-master-single.viewmodel.d.ts +0 -70
- package/layout/entity/lib/entity-master-update.viewmodel.d.ts +0 -39
- package/layout/entity/lib/entity-middleware/entity-middleware.d.ts +0 -12
- package/layout/entity/lib/entity-middleware/entity-modifier.context.d.ts +0 -3
- package/layout/entity/lib/entity-middleware/entity-modifier.types.d.ts +0 -107
- package/layout/entity/lib/entity-middleware/entity-provider.d.ts +0 -3
- package/layout/entity/lib/entity-middleware/index.d.ts +0 -4
- package/layout/entity/lib/entity-registery.service.d.ts +0 -51
- package/layout/entity/lib/entity-storage-service.d.ts +0 -54
- package/layout/entity/lib/entity.config.d.ts +0 -28
- package/layout/entity/lib/entity.module.d.ts +0 -12
- package/layout/entity/lib/entity.service.d.ts +0 -7
- package/layout/entity/lib/entity.types.d.ts +0 -21
- package/layout/entity/lib/entity.viewmodel.d.ts +0 -32
- package/layout/entity/lib/index.d.ts +0 -15
- package/layout/entity/lib/search-definition-command.provider.d.ts +0 -4
- package/layout/entity/lib/search-definition.provider.d.ts +0 -6
- package/layout/entity/lib/widgets/lookup-widget/index.d.ts +0 -4
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.d.ts +0 -10
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +0 -48
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.d.ts +0 -24
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.d.ts +0 -33
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.d.ts +0 -22
- package/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.d.ts +0 -9
- package/layout/entity/lib/widgets/tagable-box/index.d.ts +0 -6
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-column.component.d.ts +0 -11
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-edit.component.d.ts +0 -19
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-filter.component.d.ts +0 -6
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-print.component.d.ts +0 -11
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget-view.component.d.ts +0 -11
- package/layout/entity/lib/widgets/tagable-box/tagable-box-widget.config.d.ts +0 -7
- package/layout/entity/lib/widgets/widget-selector/index.d.ts +0 -3
- package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.d.ts +0 -23
- package/layout/entity/lib/widgets/widget-selector/widget-selector-widget-view.component.d.ts +0 -6
- package/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.d.ts +0 -7
- package/layout/entity/lib/workflows/create-entity.workflow.d.ts +0 -32
- package/layout/entity/lib/workflows/delete-entity.workflow.d.ts +0 -31
- package/layout/entity/lib/workflows/index.d.ts +0 -6
- package/layout/entity/lib/workflows/modify-entity.workflow.d.ts +0 -20
- package/layout/entity/lib/workflows/modify-section.workflow.d.ts +0 -32
- package/layout/entity/lib/workflows/show-details.workflow.d.ts +0 -10
- package/layout/entity/lib/workflows/show-file-uploader-popup.workflow.d.ts +0 -10
- package/layout/entity/lib/workflows/show-list.workflow.d.ts +0 -10
- package/layout/filters/lib/filters.viewmodel.d.ts +0 -31
- package/layout/views/lib/layouts/index.d.ts +0 -2
- package/layout/views/lib/layouts/page/index.d.ts +0 -3
- package/layout/views/lib/layouts/page/page-layout-base.component.d.ts +0 -113
- package/layout/views/lib/layouts/page/page-layout.base.d.ts +0 -22
- package/layout/views/lib/layouts/page/page-layout.component.d.ts +0 -84
- package/layout/views/lib/layouts/popup/index.d.ts +0 -3
- package/layout/views/lib/layouts/popup/popup-layout-base.component.d.ts +0 -98
- package/layout/views/lib/layouts/popup/popup-layout.base.d.ts +0 -14
- package/layout/views/lib/layouts/popup/popup-layout.component.d.ts +0 -76
- package/layout/views/lib/shared/index.d.ts +0 -1
- package/layout/views/lib/shared/layout.types.d.ts +0 -7
- package/layout/views/lib/views/details-view/details-view-route.resolver.d.ts +0 -3
- package/layout/views/lib/views/details-view/details-view.adapter.d.ts +0 -13
- package/layout/views/lib/views/details-view/details-view.viewmodel.d.ts +0 -30
- package/layout/views/lib/views/details-view/index.d.ts +0 -3
- package/layout/views/lib/views/details-view/sample.d.ts +0 -2
- package/layout/views/lib/views/index.d.ts +0 -1
- package/native/lib/native.module.d.ts +0 -6
- package/native/lib/native.service.d.ts +0 -26
- package/runtime/lib/commands/command.extension.token.d.ts +0 -7
- package/runtime/lib/commands/command.interface.d.ts +0 -3
- package/runtime/lib/commands/command.middleware.d.ts +0 -2
- package/runtime/lib/commands/command.registry.d.ts +0 -16
- package/runtime/lib/commands/provide-command-middleware.d.ts +0 -9
- package/runtime/lib/commands/provide-command-setups.d.ts +0 -9
- package/runtime/lib/policy/policy-middleware-provider.d.ts +0 -9
- package/runtime/lib/policy/policy.directive.d.ts +0 -9
- package/runtime/lib/policy/policy.extension.token.d.ts +0 -7
- package/runtime/lib/policy/policy.interface.d.ts +0 -17
- package/runtime/lib/policy/policy.middleware.d.ts +0 -3
- package/runtime/lib/policy/policy.registry.d.ts +0 -19
- package/runtime/lib/policy/policy.service.d.ts +0 -8
- package/runtime/lib/policy/policy.types.d.ts +0 -7
- package/runtime/lib/queries/provide-query-middleware.d.ts +0 -9
- package/runtime/lib/queries/provide-query-setups.d.ts +0 -9
- package/runtime/lib/queries/query.extension.token.d.ts +0 -7
- package/runtime/lib/queries/query.interface.d.ts +0 -3
- package/runtime/lib/queries/query.middleware.d.ts +0 -2
- package/runtime/lib/queries/query.registry.d.ts +0 -15
- package/runtime/lib/runtime.module.d.ts +0 -12
- package/themes/default/lib/default.module.d.ts +0 -8
- package/themes/default/lib/entity-reuse.strategy.d.ts +0 -8
- package/themes/default/lib/layouts/details-view/details-view.component.d.ts +0 -45
- package/themes/default/lib/layouts/entity-layouts/entity-category/entity-category.component.d.ts +0 -29
- package/themes/default/lib/layouts/entity-layouts/entity-detail-list-view/entity-detail-list-view.component.d.ts +0 -90
- package/themes/default/lib/layouts/entity-layouts/entity-master-create-view/entity-master-create-view.component.d.ts +0 -20
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +0 -102
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-columns/list-view-option-columns.component.d.ts +0 -16
- package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/list-view-option-sorting/list-view-option-sorting.component.d.ts +0 -13
- package/themes/default/lib/layouts/entity-layouts/entity-master-modify-view/entity-master-modify-view.component.d.ts +0 -19
- package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +0 -108
- package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/overview/entity-single-overview.component.d.ts +0 -11
- package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/entity-master-toolbar-view.component.d.ts +0 -69
- package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/filters/entity-filter-toolbar.component.d.ts +0 -49
- package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/views/create-view/create-entity-view.component.d.ts +0 -6
- package/themes/default/lib/layouts/entity-layouts/entity-master-toolbar-view/views/entity-view-toolbar.component.d.ts +0 -20
- package/themes/default/lib/layouts/entity-layouts/index.d.ts +0 -1
- package/themes/default/lib/layouts/root-layout/components/footer/footer.component.d.ts +0 -5
- package/themes/default/lib/layouts/root-layout/components/header/header.component.d.ts +0 -83
- package/themes/default/lib/layouts/root-layout/components/horizontal-menu/horizontal-menu.component.d.ts +0 -93
- package/themes/default/lib/layouts/root-layout/components/side-menu/side-menu.component.d.ts +0 -34
- package/themes/default/lib/layouts/root-layout/horizontal/horizontal-layout.component.d.ts +0 -85
- package/themes/default/lib/layouts/root-layout/index.d.ts +0 -6
- package/themes/default/lib/layouts/root-layout/root-layout.component.d.ts +0 -90
- package/themes/default/lib/layouts/root-layout/vertical/vertical-layout.component.d.ts +0 -87
- package/themes/default/lib/pages/errors/error-401/error-401.component.d.ts +0 -10
- package/themes/default/lib/pages/errors/error-404/error-404.component.d.ts +0 -8
- package/themes/default/lib/pages/errors/error-offline/error-offline.component.d.ts +0 -9
- package/themes/shared/lib/palette.provider.d.ts +0 -9
- package/themes/shared/lib/settings.keys.d.ts +0 -12
- package/themes/shared/lib/settings.provider.d.ts +0 -8
- package/themes/shared/lib/shared.module.d.ts +0 -11
- package/themes/shared/lib/slots/theme-slot.component.d.ts +0 -67
- package/themes/shared/lib/theme.service.d.ts +0 -61
- package/themes/shared/lib/theme.types.d.ts +0 -38
- package/themes/shared/lib/widgets/font-size-chooser/font-size-chooser-widget.component.d.ts +0 -10
- package/themes/shared/lib/widgets/font-size-chooser/font-size-chooser-widget.config.d.ts +0 -7
- package/themes/shared/lib/widgets/font-size-chooser/index.d.ts +0 -2
- package/themes/shared/lib/widgets/font-style-chooser/font-style-chooser-widget.component.d.ts +0 -15
- package/themes/shared/lib/widgets/font-style-chooser/font-style-chooser-widget.config.d.ts +0 -7
- package/themes/shared/lib/widgets/font-style-chooser/index.d.ts +0 -2
- package/themes/shared/lib/widgets/menu-orientation-chooser/index.d.ts +0 -2
- package/themes/shared/lib/widgets/menu-orientation-chooser/menu-orientation-chooser-widget.component.d.ts +0 -15
- package/themes/shared/lib/widgets/menu-orientation-chooser/menu-orientation-chooser-widget.config.d.ts +0 -7
- package/themes/shared/lib/widgets/theme-mode-chooser/index.d.ts +0 -2
- package/themes/shared/lib/widgets/theme-mode-chooser/theme-mode-chooser-widget.component.d.ts +0 -16
- package/themes/shared/lib/widgets/theme-mode-chooser/theme-mode-chooser-widget.config.d.ts +0 -7
- package/themes/shared/lib/widgets/theme-palette-chooser/index.d.ts +0 -2
- package/themes/shared/lib/widgets/theme-palette-chooser/theme-palette-chooser-widget.component.d.ts +0 -13
- package/themes/shared/lib/widgets/theme-palette-chooser/theme-palette-chooser-widget.config.d.ts +0 -7
- package/widgets/lib/properties/data-source.props.d.ts +0 -5
- package/widgets/lib/properties/editors.props.d.ts +0 -33
- package/widgets/lib/properties/general.props.d.ts +0 -7
- package/widgets/lib/properties/groups.d.ts +0 -8
- package/widgets/lib/properties/index.d.ts +0 -7
- package/widgets/lib/properties/layout.props.d.ts +0 -20
- package/widgets/lib/properties/table-column.props.d.ts +0 -3
- package/widgets/lib/properties/validation.props.d.ts +0 -10
- package/widgets/lib/shared/multi-language-component/popup/select-language.popup.d.ts +0 -23
- package/widgets/lib/widgets/actions/button/button-widget-designer.component.d.ts +0 -16
- package/widgets/lib/widgets/actions/button/button-widget-view.component.d.ts +0 -17
- package/widgets/lib/widgets/actions/button/button-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/actions/button/index.d.ts +0 -2
- package/widgets/lib/widgets/advance/avatar/avatar-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/avatar/avatar-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/avatar/avatar-widget-edit.component.d.ts +0 -18
- package/widgets/lib/widgets/advance/avatar/avatar-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/avatar/avatar-widget-view.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/avatar/avatar-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/advance/avatar/index.d.ts +0 -6
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-designer.component.d.ts +0 -7
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-edit.component.d.ts +0 -8
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget-view.component.d.ts +0 -7
- package/widgets/lib/widgets/advance/cron-job/cron-job-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/advance/cron-job/index.d.ts +0 -7
- package/widgets/lib/widgets/advance/file-uploader/file-list/file-list.component.d.ts +0 -23
- package/widgets/lib/widgets/advance/file-uploader/file-list-popup/file-list-popup.component.d.ts +0 -17
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-column.component.d.ts +0 -10
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-edit.component.d.ts +0 -17
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget-view.component.d.ts +0 -9
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/advance/file-uploader/file-uploader-widget.service.d.ts +0 -14
- package/widgets/lib/widgets/advance/file-uploader/index.d.ts +0 -6
- package/widgets/lib/widgets/advance/gallery/gallery-widget-edit.component.d.ts +0 -13
- package/widgets/lib/widgets/advance/gallery/gallery-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/gallery/gallery-widget-types.d.ts +0 -10
- package/widgets/lib/widgets/advance/gallery/gallery-widget-view.component.d.ts +0 -15
- package/widgets/lib/widgets/advance/gallery/gallery-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/advance/gallery/index.d.ts +0 -4
- package/widgets/lib/widgets/advance/map/index.d.ts +0 -3
- package/widgets/lib/widgets/advance/map/map-box-widget-edit.component.d.ts +0 -25
- package/widgets/lib/widgets/advance/map/map-box-widget-view.component.d.ts +0 -13
- package/widgets/lib/widgets/advance/map/map-box-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/advance/qrcode/index.d.ts +0 -2
- package/widgets/lib/widgets/advance/qrcode/qrcode-widget-view.component.d.ts +0 -13
- package/widgets/lib/widgets/advance/qrcode/qrcode-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/advance/signature/index.d.ts +0 -6
- package/widgets/lib/widgets/advance/signature/signature-pad-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/signature/signature-pad-widget-edit.component.d.ts +0 -24
- package/widgets/lib/widgets/advance/signature/signature-pad-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/signature/signature-pad-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/advance/signature/signature-pad-widget-view.component.d.ts +0 -8
- package/widgets/lib/widgets/advance/signature/signature-pad-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget-column.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget-designer.component.d.ts +0 -10
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget-edit.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget-view.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/checkbox/checkbox-widget.config.d.ts +0 -12
- package/widgets/lib/widgets/editors/checkbox/index.d.ts +0 -2
- package/widgets/lib/widgets/editors/color/color-box-widget-column.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/color/color-box-widget-designer.component.d.ts +0 -11
- package/widgets/lib/widgets/editors/color/color-box-widget-edit.component.d.ts +0 -11
- package/widgets/lib/widgets/editors/color/color-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/color/color-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/color/color-box-widget-view.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/color/color-box-widget.config.d.ts +0 -14
- package/widgets/lib/widgets/editors/color/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/contact/contact-widget-column.component.d.ts +0 -10
- package/widgets/lib/widgets/editors/contact/contact-widget-edit.component.d.ts +0 -34
- package/widgets/lib/widgets/editors/contact/contact-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/contact/contact-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/contact/contact-widget-view.component.d.ts +0 -19
- package/widgets/lib/widgets/editors/contact/contact-widget.config.d.ts +0 -16
- package/widgets/lib/widgets/editors/contact/contact.type.d.ts +0 -5
- package/widgets/lib/widgets/editors/contact/index.d.ts +0 -5
- package/widgets/lib/widgets/editors/contact/popup-component.d.ts +0 -10
- package/widgets/lib/widgets/editors/date-time/date-time-box-widget-column.component.d.ts +0 -15
- package/widgets/lib/widgets/editors/date-time/date-time-box-widget-edit.component.d.ts +0 -22
- package/widgets/lib/widgets/editors/date-time/date-time-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/date-time/date-time-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/date-time/date-time-box-widget-view.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/date-time/date-time-box-widget.config.d.ts +0 -15
- package/widgets/lib/widgets/editors/date-time/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/email/email-box-widget-column.component.d.ts +0 -16
- package/widgets/lib/widgets/editors/email/email-box-widget-edit.component.d.ts +0 -29
- package/widgets/lib/widgets/editors/email/email-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/email/email-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/email/email-box-widget-view.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/email/email-box-widget.config.d.ts +0 -14
- package/widgets/lib/widgets/editors/email/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/large-text/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/large-text/large-text-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/large-text/large-text-widget-edit.component.d.ts +0 -23
- package/widgets/lib/widgets/editors/large-text/large-text-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/large-text/large-text-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/large-text/large-text-widget-view.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/large-text/large-text-widget.config.d.ts +0 -12
- package/widgets/lib/widgets/editors/link/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/link/link-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/link/link-widget-edit.component.d.ts +0 -35
- package/widgets/lib/widgets/editors/link/link-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/link/link-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/link/link-widget-view.component.d.ts +0 -13
- package/widgets/lib/widgets/editors/link/link-widget.config.d.ts +0 -13
- package/widgets/lib/widgets/editors/meta-data/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-edit.component.d.ts +0 -13
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget-view.component.d.ts +0 -8
- package/widgets/lib/widgets/editors/meta-data/meta-data-widget.config.d.ts +0 -9
- package/widgets/lib/widgets/editors/number/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/number/number-box-widget-column.component.d.ts +0 -8
- package/widgets/lib/widgets/editors/number/number-box-widget-edit.component.d.ts +0 -21
- package/widgets/lib/widgets/editors/number/number-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/number/number-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/number/number-box-widget-view.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/number/number-box-widget.config.d.ts +0 -17
- package/widgets/lib/widgets/editors/number-unit/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-column.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-edit.component.d.ts +0 -24
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget-view.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/number-unit/number-unit-box-widget.config.d.ts +0 -17
- package/widgets/lib/widgets/editors/password/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/password/password-box-widget-column.component.d.ts +0 -10
- package/widgets/lib/widgets/editors/password/password-box-widget-edit.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/password/password-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/password/password-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/password/password-box-widget-view.component.d.ts +0 -14
- package/widgets/lib/widgets/editors/password/password-box-widget.config.d.ts +0 -14
- package/widgets/lib/widgets/editors/phone/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/phone/phone-box-widget-column.component.d.ts +0 -16
- package/widgets/lib/widgets/editors/phone/phone-box-widget-edit.component.d.ts +0 -26
- package/widgets/lib/widgets/editors/phone/phone-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/phone/phone-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/phone/phone-box-widget-view.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/phone/phone-box-widget.config.d.ts +0 -11
- package/widgets/lib/widgets/editors/rich-text/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/rich-text/rich-text-popup.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/rich-text/rich-text-widget-column.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/rich-text/rich-text-widget-edit.component.d.ts +0 -26
- package/widgets/lib/widgets/editors/rich-text/rich-text-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/rich-text/rich-text-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/rich-text/rich-text-widget-view.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/rich-text/rich-text-widget.config.d.ts +0 -12
- package/widgets/lib/widgets/editors/select/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/select/select-box-widget-column.component.d.ts +0 -10
- package/widgets/lib/widgets/editors/select/select-box-widget-edit.component.d.ts +0 -27
- package/widgets/lib/widgets/editors/select/select-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/select/select-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/select/select-box-widget-view.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/select/select-box-widget.config.d.ts +0 -18
- package/widgets/lib/widgets/editors/selection-list/index.d.ts +0 -7
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-column.component.d.ts +0 -14
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-designer.component.d.ts +0 -15
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-edit.component.d.ts +0 -15
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget-view.component.d.ts +0 -11
- package/widgets/lib/widgets/editors/selection-list/selection-list-widget.config.d.ts +0 -15
- package/widgets/lib/widgets/editors/tabular-data/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/tabular-data/table-widget.config.d.ts +0 -14
- package/widgets/lib/widgets/editors/tabular-data/tabular-data-column.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/tabular-data/tabular-data-edit-popup.component.d.ts +0 -26
- package/widgets/lib/widgets/editors/tabular-data/tabular-data-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/tabular-data/tabular-data-view-popup.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-edit.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/tabular-data/tabular-data-widget-view.component.d.ts +0 -11
- package/widgets/lib/widgets/editors/tabular-data/tabular-widget.types.d.ts +0 -9
- package/widgets/lib/widgets/editors/template-box/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/template-box/template-box-widget-column.component.d.ts +0 -10
- package/widgets/lib/widgets/editors/template-box/template-box-widget-edit.component.d.ts +0 -29
- package/widgets/lib/widgets/editors/template-box/template-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/template-box/template-box-widget-print.component.d.ts +0 -10
- package/widgets/lib/widgets/editors/template-box/template-box-widget-view.component.d.ts +0 -11
- package/widgets/lib/widgets/editors/template-box/template-box-widget.config.d.ts +0 -12
- package/widgets/lib/widgets/editors/text/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/text/text-box-widget-column.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/text/text-box-widget-edit.component.d.ts +0 -27
- package/widgets/lib/widgets/editors/text/text-box-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/text/text-box-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/text/text-box-widget-view.component.d.ts +0 -8
- package/widgets/lib/widgets/editors/text/text-box-widget.config.d.ts +0 -15
- package/widgets/lib/widgets/editors/time-duration/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/time-duration/time-duration-widget-column.component.d.ts +0 -15
- package/widgets/lib/widgets/editors/time-duration/time-duration-widget-edit.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/time-duration/time-duration-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/time-duration/time-duration-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/time-duration/time-duration-widget-view.component.d.ts +0 -13
- package/widgets/lib/widgets/editors/time-duration/time-duration-widget.config.d.ts +0 -11
- package/widgets/lib/widgets/editors/toggle/index.d.ts +0 -6
- package/widgets/lib/widgets/editors/toggle/toggle-widget-column.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/toggle/toggle-widget-edit.component.d.ts +0 -12
- package/widgets/lib/widgets/editors/toggle/toggle-widget-filter.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/toggle/toggle-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/editors/toggle/toggle-widget-view.component.d.ts +0 -9
- package/widgets/lib/widgets/editors/toggle/toggle-widget.config.d.ts +0 -14
- package/widgets/lib/widgets/filters/boolean-filter/boolean-filter-widget-edit.component.d.ts +0 -20
- package/widgets/lib/widgets/filters/boolean-filter/boolean-filter-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/filters/boolean-filter/index.d.ts +0 -2
- package/widgets/lib/widgets/filters/date-time-filter/date-time-filter-widget-edit.component.d.ts +0 -19
- package/widgets/lib/widgets/filters/date-time-filter/date-time-filter-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/filters/date-time-filter/index.d.ts +0 -2
- package/widgets/lib/widgets/filters/number-filter/index.d.ts +0 -2
- package/widgets/lib/widgets/filters/number-filter/number-filter-widget-edit.component.d.ts +0 -13
- package/widgets/lib/widgets/filters/number-filter/number-filter-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/filters/operations/operations.component.d.ts +0 -9
- package/widgets/lib/widgets/filters/select-filter/index.d.ts +0 -2
- package/widgets/lib/widgets/filters/select-filter/select-filter-widget-edit.component.d.ts +0 -15
- package/widgets/lib/widgets/filters/select-filter/select-filter-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/filters/string-filter/index.d.ts +0 -2
- package/widgets/lib/widgets/filters/string-filter/string-filter-widget-edit.component.d.ts +0 -13
- package/widgets/lib/widgets/filters/string-filter/string-filter-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/index.d.ts +0 -44
- package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget-designer.component.d.ts +0 -27
- package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget-view.component.d.ts +0 -20
- package/widgets/lib/widgets/layout/advanced-grid/advanced-grid-widget.config.d.ts +0 -9
- package/widgets/lib/widgets/layout/advanced-grid/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-designer.component.d.ts +0 -11
- package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget-view.component.d.ts +0 -15
- package/widgets/lib/widgets/layout/advanced-grid-item/advanced-grid-item-widget.config.d.ts +0 -9
- package/widgets/lib/widgets/layout/advanced-grid-item/index.d.ts +0 -4
- package/widgets/lib/widgets/layout/block/block-widget-designer.component.d.ts +0 -10
- package/widgets/lib/widgets/layout/block/block-widget-view.component.d.ts +0 -10
- package/widgets/lib/widgets/layout/block/block-widget.config.d.ts +0 -23
- package/widgets/lib/widgets/layout/block/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/document/document-widget.config.d.ts +0 -9
- package/widgets/lib/widgets/layout/flex/flex-widget-designer.component.d.ts +0 -10
- package/widgets/lib/widgets/layout/flex/flex-widget-view.component.d.ts +0 -10
- package/widgets/lib/widgets/layout/flex/flex-widget.config.d.ts +0 -28
- package/widgets/lib/widgets/layout/flex/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/form-field/form-field-widget-designer.component.d.ts +0 -8
- package/widgets/lib/widgets/layout/form-field/form-field-widget-view.component.d.ts +0 -8
- package/widgets/lib/widgets/layout/form-field/form-field-widget.config.d.ts +0 -10
- package/widgets/lib/widgets/layout/form-field/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/grid/grid-widget-designer.component.d.ts +0 -24
- package/widgets/lib/widgets/layout/grid/grid-widget-view.component.d.ts +0 -15
- package/widgets/lib/widgets/layout/grid/grid-widget.config.d.ts +0 -10
- package/widgets/lib/widgets/layout/grid/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget-designer.component.d.ts +0 -10
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget-view.component.d.ts +0 -18
- package/widgets/lib/widgets/layout/grid-item/grid-item-widget.config.d.ts +0 -25
- package/widgets/lib/widgets/layout/grid-item/index.d.ts +0 -4
- package/widgets/lib/widgets/layout/grid-row/grid-row-widget-designer.component.d.ts +0 -15
- package/widgets/lib/widgets/layout/grid-row/grid-row-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/layout/grid-row/grid-row-widget-view.component.d.ts +0 -9
- package/widgets/lib/widgets/layout/grid-row/grid-row-widget.config.d.ts +0 -11
- package/widgets/lib/widgets/layout/grid-row/index.d.ts +0 -4
- package/widgets/lib/widgets/layout/page/index.d.ts +0 -2
- package/widgets/lib/widgets/layout/page/page-widget-designer.component.d.ts +0 -20
- package/widgets/lib/widgets/layout/page/page-widget-view.component.d.ts +0 -8
- package/widgets/lib/widgets/layout/page/page-widget.config.d.ts +0 -14
- package/widgets/lib/widgets/layout/panel/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/panel/panel-widget-designer.component.d.ts +0 -15
- package/widgets/lib/widgets/layout/panel/panel-widget-view.component.d.ts +0 -15
- package/widgets/lib/widgets/layout/panel/panel-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/layout/repeater/index.d.ts +0 -5
- package/widgets/lib/widgets/layout/repeater/repeater-widget-designer.component.d.ts +0 -9
- package/widgets/lib/widgets/layout/repeater/repeater-widget-edit.component.d.ts +0 -15
- package/widgets/lib/widgets/layout/repeater/repeater-widget-print.component.d.ts +0 -6
- package/widgets/lib/widgets/layout/repeater/repeater-widget-view.component.d.ts +0 -9
- package/widgets/lib/widgets/layout/repeater/repeater-widget.config.d.ts +0 -12
- package/widgets/lib/widgets/layout/tabset/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/tabset/tabset-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/layout/tabset/tabset-widget-view.component.d.ts +0 -19
- package/widgets/lib/widgets/layout/tabset/tabset-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/layout/tabset/tabset-widget.types.d.ts +0 -2
- package/widgets/lib/widgets/layout/tabset-item/index.d.ts +0 -3
- package/widgets/lib/widgets/layout/tabset-item/tabset-item-widget-designer.component.d.ts +0 -6
- package/widgets/lib/widgets/layout/tabset-item/tabset-item-widget-view.component.d.ts +0 -10
- package/widgets/lib/widgets/layout/tabset-item/tabset-item-widget.config.d.ts +0 -2
- package/widgets/lib/widgets/layout/text-block/index.d.ts +0 -2
- package/widgets/lib/widgets/layout/text-block/text-block-widget-designer.component.d.ts +0 -11
- package/widgets/lib/widgets/layout/text-block/text-block-widget-view.component.d.ts +0 -10
- package/widgets/lib/widgets/layout/text-block/text-block-widget.config.d.ts +0 -10
- package/widgets/lib/widgets/property-editors/advanced-grid-options/advanced-grid-options-widget-editor.component.d.ts +0 -32
- package/widgets/lib/widgets/property-editors/advanced-grid-options/advanced-grid-options-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/property-editors/advanced-grid-options/advanced-grid-options-widget.type.d.ts +0 -6
- package/widgets/lib/widgets/property-editors/advanced-grid-options/index.d.ts +0 -2
- package/widgets/lib/widgets/property-editors/border/border-widget-editor.component.d.ts +0 -35
- package/widgets/lib/widgets/property-editors/border/border-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/property-editors/border/index.d.ts +0 -2
- package/widgets/lib/widgets/property-editors/direction/direction-widget-editor.component.d.ts +0 -12
- package/widgets/lib/widgets/property-editors/direction/direction-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/property-editors/direction/index.d.ts +0 -2
- package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget-editor.component.d.ts +0 -43
- package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/property-editors/flex-options/flex-options-widget.type.d.ts +0 -12
- package/widgets/lib/widgets/property-editors/flex-options/index.d.ts +0 -3
- package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget-editor.component.d.ts +0 -50
- package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/property-editors/grid-options/grid-options-widget.type.d.ts +0 -21
- package/widgets/lib/widgets/property-editors/grid-options/index.d.ts +0 -3
- package/widgets/lib/widgets/property-editors/property-editor-helper.d.ts +0 -98
- package/widgets/lib/widgets/property-editors/property-editor.type.d.ts +0 -40
- package/widgets/lib/widgets/property-editors/spacing/index.d.ts +0 -2
- package/widgets/lib/widgets/property-editors/spacing/spacing-widget-editor.component.d.ts +0 -27
- package/widgets/lib/widgets/property-editors/spacing/spacing-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/base-validation/base-validation.component.d.ts +0 -13
- package/widgets/lib/widgets/validations/base-validation/base-validation.d.ts +0 -9
- package/widgets/lib/widgets/validations/between-validation/between-validation-widget-edit.component.d.ts +0 -19
- package/widgets/lib/widgets/validations/between-validation/between-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/between-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/callback-validation/callback-validation-widget-edit.component.d.ts +0 -17
- package/widgets/lib/widgets/validations/callback-validation/callback-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/callback-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/equal-validation/equal-validation-widget-edit.component.d.ts +0 -17
- package/widgets/lib/widgets/validations/equal-validation/equal-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/equal-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/greater-than-validation/greater-than-validation-widget-edit.component.d.ts +0 -18
- package/widgets/lib/widgets/validations/greater-than-validation/greater-than-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/greater-than-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/less-than-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/less-than-validation/less-than-validation-widget-edit.component.d.ts +0 -18
- package/widgets/lib/widgets/validations/less-than-validation/less-than-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/max-length-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/max-length-validation/max-length-validation-widget-edit.component.d.ts +0 -17
- package/widgets/lib/widgets/validations/max-length-validation/max-length-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/min-length-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/min-length-validation/min-length-validation-widget-edit.component.d.ts +0 -17
- package/widgets/lib/widgets/validations/min-length-validation/min-length-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/regular-expression-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/regular-expression-validation/regular-expression-validation-widget-edit.component.d.ts +0 -17
- package/widgets/lib/widgets/validations/regular-expression-validation/regular-expression-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets/validations/required-validation/index.d.ts +0 -2
- package/widgets/lib/widgets/validations/required-validation/required-validation-widget-edit.component.d.ts +0 -15
- package/widgets/lib/widgets/validations/required-validation/required-validation-widget.config.d.ts +0 -7
- package/widgets/lib/widgets.config.d.ts +0 -7
- package/widgets/lib/widgets.module.d.ts +0 -7
- package/workflow/lib/actions/decide.action.d.ts +0 -7
- package/workflow/lib/actions/start-workflow.action.d.ts +0 -10
- package/workflow/lib/errors.types.d.ts +0 -4
- package/workflow/lib/slots/workflow-action-bar/workflow-action-bar.component.d.ts +0 -37
- package/workflow/lib/task-board.types.d.ts +0 -21
- package/workflow/lib/workflow-evaluator-scope.provider.d.ts +0 -4
- package/workflow/lib/workflow-event-dispatcher.service.d.ts +0 -10
- package/workflow/lib/workflow-registery.service.d.ts +0 -21
- package/workflow/lib/workflow.module.d.ts +0 -26
- package/workflow/lib/workflow.service.d.ts +0 -25
- package/workflow/lib/workflow.types.d.ts +0 -64
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-auth.mjs","sources":["../../../../libs/platform/auth/src/lib/application/application.loader.ts","../../../../libs/platform/auth/src/lib/tenant/tenant.loader.ts","../../../../libs/platform/auth/src/lib/auth-registry.service.ts","../../../../libs/platform/auth/src/lib/feature/feature.loader.ts","../../../../libs/platform/auth/src/lib/feature/feature.directive.ts","../../../../libs/platform/auth/src/lib/errors.types.ts","../../../../libs/platform/auth/src/lib/feature/feature.guard.ts","../../../../libs/platform/auth/src/lib/permission/permission.loader.ts","../../../../libs/platform/auth/src/lib/session.types.ts","../../../../libs/platform/auth/src/lib/session.service.ts","../../../../libs/platform/auth/src/lib/permission/permission.directive.ts","../../../../libs/platform/auth/src/lib/permission/permission.guard.ts","../../../../libs/platform/auth/src/lib/permission/permission-definition.builder.ts","../../../../libs/platform/auth/src/lib/permission/permission-definition.service.ts","../../../../libs/platform/auth/src/lib/auth.guard.ts","../../../../libs/platform/auth/src/lib/auth.module.ts","../../../../libs/platform/auth/src/acorex-platform-auth.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { AXPApplication } from './application.types';\nimport { AXPSessionContext } from '../session.types';\n\nexport interface AXPApplicationLoader {\n getList(context: AXPSessionContext): Observable<AXPApplication[]>;\n}\n\nexport const AXP_APPLICATION_LOADER = new InjectionToken<AXPApplicationLoader>('AXP_APPLICATION_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPApplicationDefaultLoader();\n },\n});\n\nclass AXPApplicationDefaultLoader implements AXPApplicationLoader {\n getList(context: AXPSessionContext): Observable<AXPApplication[]> {\n return of([\n {\n id: '1',\n name: 'default-app',\n title: 'Default Application',\n version: '1.0.0',\n editionName: 'Standard',\n features: [],\n },\n ]);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { AXPTenant } from './tenant.types';\nimport { AXPSessionContext } from '../session.types';\n\nexport interface AXPTenantLoader {\n getList(context: AXPSessionContext): Observable<AXPTenant[]>;\n}\n\nexport const AXP_TENANT_LOADER = new InjectionToken<AXPTenantLoader>('AXP_TENANT_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPTenantDefaultLoader();\n },\n});\n\nclass AXPTenantDefaultLoader implements AXPTenantLoader {\n\n getList(context: AXPSessionContext): Observable<AXPTenant[]> {\n return of([\n {\n id: '1',\n name: 'default-tenant',\n title: 'Default Tenant',\n },\n ]);\n }\n}\n","import { Injectable, Injector } from \"@angular/core\";\nimport { AXPAuthStrategy } from \"./auth.strategy\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPAuthStrategyRegistryService {\n private strategies = new Map<string, AXPAuthStrategy>();\n\n private injector: Injector;\n\n constructor(injector: Injector) {\n this.injector = injector;\n }\n\n register(...plugins: (new () => AXPAuthStrategy)[]) {\n plugins.forEach(t => {\n const childInjector = Injector.create({ providers: [{ provide: t, useClass: t, deps: [] }], parent: this.injector });\n const strategy = childInjector.get(t);\n if (strategy) {\n this.strategies.set(strategy.name, strategy);\n }\n })\n }\n\n get(strategyKey: string): AXPAuthStrategy | undefined {\n return this.strategies.get(strategyKey);\n }\n}","import { InjectionToken } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { AXPFeature } from './feature.types';\nimport { AXPSessionContext } from '../session.types';\n\nexport interface AXPFeatureLoader {\n getList(context: AXPSessionContext): Observable<AXPFeature[]>;\n}\n\nexport const AXP_FEATURE_LOADER = new InjectionToken<AXPFeatureLoader>('AXP_FEATURE_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPFeatureDefaultLoader();\n },\n});\n\nclass AXPFeatureDefaultLoader implements AXPFeatureLoader {\n getList(context: AXPSessionContext): Observable<AXPFeature[]> {\n return of([]);\n }\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef, inject, signal } from '@angular/core';\nimport { Subscription, first } from 'rxjs';\nimport { AXPSessionService } from '../session.service';\n\n@Directive({\n selector: '[feature]',\n standalone: false\n})\nexport class AXPFeatureDirective {\n private hasView = signal(false);\n private subscription!: Subscription;\n private sessionService = inject(AXPSessionService);\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef\n ) { }\n\n @Input()\n public set feature(featureKeys: string | string[] | null) {\n const keys: string[] = !featureKeys ? [] : (Array.isArray(featureKeys) ? featureKeys : [featureKeys]);\n if (keys.length == 0) {\n // If featureKey is null or empty, decide the default behavior here\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n return;\n }\n this.subscription = this.sessionService.features$\n //.pipe(first())\n .subscribe(() => {\n if (this.sessionService.isFeatureEnabled(...keys)) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n }\n } else {\n this.viewContainer.clear();\n this.hasView.set(false);\n }\n });\n }\n\n @Input()\n public set featureElse(elseTemplateRef: TemplateRef<any>) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(elseTemplateRef);\n }\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n}\n","export class AXPUnauthorizedError extends Error {\n constructor(message?: string, public data?: { redirectUrl?: string }) {\n super(message);\n this.name = 'AXPUnauthorizedError';\n }\n}\n\n\nexport class AXPUnauthenticatedError extends Error {\n constructor(message?: string, public data?: { redirectUrl?: string }) {\n super(message);\n this.name = 'AXPUnauthenticatedError';\n }\n}","import { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot, UrlTree } from \"@angular/router\";\nimport { inject } from \"@angular/core\";\nimport { AXPSessionService } from \"../session.service\";\nimport { Observable, first, map } from \"rxjs\";\nimport { AXPUnauthorizedError } from \"../errors.types\";\n\n\nexport const AXPFeatureGuard: CanActivateFn =\n (route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> => {\n const sessionService = inject(AXPSessionService);\n const requiredFeatures = route.data['requiredFeature'] as (string | string[] | null);\n\n return sessionService.features$.pipe(\n map(() => {\n const keys: string[] = !requiredFeatures ? [] : (Array.isArray(requiredFeatures) ? requiredFeatures : [requiredFeatures]);\n const hasFeature = keys.length == 0 || sessionService.isFeatureEnabled(...keys);\n if (!hasFeature) {\n throw new AXPUnauthorizedError(\n `Access Denied. You do not have access to this feature. Required feature(s): ${keys.join(', ')}. Please contact support if you need access.`,\n {\n redirectUrl: state.url\n }\n );\n }\n return true;\n })\n );\n };\n","import { InjectionToken } from \"@angular/core\";\nimport { Observable, of } from \"rxjs\";\nimport { AXPPermission } from \"./permission.types\";\nimport { AXPSessionContext } from \"../session.types\";\n\nexport interface AXPPermissionLoader {\n getList(context: AXPSessionContext): Observable<AXPPermission[]>;\n}\n\nexport const AXP_PERMISSION_LOADER = new InjectionToken<AXPPermissionLoader>('AXP_PERMISSION_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPPermissionDefaultLoader();\n }\n});\n\n\nclass AXPPermissionDefaultLoader implements AXPPermissionLoader {\n getList(context: AXPSessionContext): Observable<AXPPermission[]> {\n return of([])\n }\n}","import { AXPApplication } from \"./application/application.types\";\nimport { AXPTenant } from \"./tenant/tenant.types\";\nimport { AXPUser } from \"./user/user.types\";\n\nexport class AXPSessionContext {\n\n private _user: AXPUser | null = null;\n public get user(): AXPUser | null {\n return this._user;\n }\n\n private _tenant: AXPTenant | null = null;\n public get tenant(): AXPTenant | null {\n return this._tenant;\n }\n\n private _application: AXPApplication | null = null;\n public get application(): AXPApplication | null {\n return this._application;\n }\n\n constructor(context: {\n user: AXPUser | null,\n tenant: AXPTenant | null,\n application: AXPApplication | null,\n }) {\n this._user = context.user;\n this._tenant = context.tenant;\n this._application = context.application;\n }\n}\n\n\nexport enum AXPSessionStatus {\n Authenticated = \"authenticated\",\n Unauthenticated = \"unauthenticated\",\n Unauthorized = \"unauthorized\",\n Authorized = \"authorized\",\n Expired = \"expired\",\n SignedOut = \"signedOut\"\n}","import { AXPBroadcastEventService } from '@acorex/platform/core';\nimport { Injectable, inject } from '@angular/core';\nimport { isEmpty, merge } from 'lodash-es';\nimport { BehaviorSubject, Observable, defaultIfEmpty, firstValueFrom, map, shareReplay } from 'rxjs';\nimport { AXP_APPLICATION_LOADER } from './application/application.loader';\nimport { AXPApplication } from './application/application.types';\nimport { AXPAuthStrategyRegistryService } from './auth-registry.service';\nimport { AXPBaseCredentials, AXPSessionData } from './auth.strategy';\nimport { AXPFeature, AXP_FEATURE_LOADER } from './feature';\nimport { AXP_PERMISSION_LOADER } from './permission/permission.loader';\nimport { AXPPermission } from './permission/permission.types';\nimport { AXPSessionContext, AXPSessionStatus } from './session.types';\nimport { AXP_TENANT_LOADER } from './tenant/tenant.loader';\nimport { AXPTenant } from './tenant/tenant.types';\nimport { AXPUser } from './user/user.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPSessionService {\n private eventService = inject(AXPBroadcastEventService);\n\n private authStrategyRegistry = inject(AXPAuthStrategyRegistryService);\n public static readonly SESSION_KEY = 'AXP_SESSION';\n\n private readonly permissionLoader = inject(AXP_PERMISSION_LOADER);\n private readonly featureLoader = inject(AXP_FEATURE_LOADER);\n private readonly tenantLoader = inject(AXP_TENANT_LOADER);\n private readonly applicationLoader = inject(AXP_APPLICATION_LOADER);\n\n private status = new BehaviorSubject<AXPSessionStatus>(AXPSessionStatus.Unauthenticated);\n public readonly status$ = this.status.asObservable().pipe(shareReplay(1));\n\n private currentUserSubject = new BehaviorSubject<AXPUser | null>(null);\n public readonly user$ = this.currentUserSubject.asObservable().pipe(shareReplay(1));\n public get user(): AXPUser | null {\n const session = this.getSessionData();\n if (session?.user && !this.currentUserSubject.value) {\n this.currentUserSubject.next(session.user);\n }\n return this.currentUserSubject.value;\n }\n\n private currentTenantSubject = new BehaviorSubject<AXPTenant | null>(null);\n public readonly tenant$ = this.currentTenantSubject.asObservable().pipe(shareReplay(1));\n public get tenant(): AXPTenant | null {\n const session = this.getSessionData();\n if (session?.tenant && !this.currentTenantSubject.value) {\n this.currentTenantSubject.next(session.tenant);\n }\n return this.currentTenantSubject.value;\n }\n\n public get tenants$(): Observable<AXPTenant[]> {\n return this.tenantLoader.getList(this.getContext());\n }\n\n private currentApplicationSubject = new BehaviorSubject<AXPApplication | null>(null);\n public readonly application$ = this.currentApplicationSubject.asObservable().pipe(shareReplay(1));\n public get application(): AXPApplication | null {\n const session = this.getSessionData();\n if (session?.application && !this.currentApplicationSubject.value) {\n this.currentApplicationSubject.next(session.application);\n }\n return this.currentApplicationSubject.value;\n }\n\n public get applications$(): Observable<AXPApplication[]> {\n return this.applicationLoader.getList(this.getContext());\n }\n\n private permissionsSubject = new BehaviorSubject<AXPPermission[]>([]);\n public readonly permissions$ = this.permissionsSubject.asObservable().pipe(shareReplay(1), defaultIfEmpty([]));\n public get permissions(): AXPPermission[] {\n return this.permissionsSubject.value ?? [];\n }\n\n private featuresSubject = new BehaviorSubject<AXPFeature[]>([]);\n public readonly features$ = this.featuresSubject.asObservable().pipe(shareReplay(1), defaultIfEmpty([]));\n public get features(): AXPFeature[] {\n return this.featuresSubject.value ?? [];\n }\n\n public readonly isAuthenticated$ = this.status$.pipe(\n map((status) => status === AXPSessionStatus.Authenticated || status === AXPSessionStatus.Authorized),\n shareReplay(1)\n );\n\n public readonly isAuthorized$ = this.status$.pipe(\n map((status) => status === AXPSessionStatus.Authorized),\n shareReplay(1)\n );\n\n public async restoreSession(): Promise<void> {\n const sessionData = this.getSessionData();\n if (sessionData) {\n if (sessionData.user) {\n this.currentUserSubject.next(sessionData.user);\n this.status.next(AXPSessionStatus.Authenticated);\n }\n // if (sessionData.tenant) {\n // this.setTenant(sessionData.tenant);\n // }\n // if (sessionData.application) {\n // this.setApplication(sessionData.application);\n // }\n await this.loadPermissions();\n await this.loadFeatures();\n await this.signInComplete();\n } else {\n this.status.next(AXPSessionStatus.Unauthorized);\n }\n }\n\n async signin(credentials: AXPBaseCredentials): Promise<void> {\n // \n this.clearSession();\n //\n const strategy = this.authStrategyRegistry.get(credentials.strategy);\n if (!strategy) {\n throw new Error(`Authentication strategy '${credentials.strategy}' is not supported`);\n }\n const result = await strategy.signin(credentials);\n if (result.succeed) {\n this.currentUserSubject.next(result.data!.user);\n this.setSession({\n accessToken: result.data!.accessToken,\n refreshToken: result.data!.refreshToken,\n strategy: credentials.strategy,\n user: result.data!.user,\n application: result.data?.application,\n tenant: result.data?.tenant,\n expiresIn: result.data?.expiresIn,\n idToken: result.data?.idToken ?? null,\n });\n this.status.next(AXPSessionStatus.Authenticated);\n if (this.application && this.tenant) await this.signInComplete();\n } else {\n this.status.next(AXPSessionStatus.Unauthenticated);\n throw new Error(`Invalid Username or Password`);\n }\n }\n\n async signout(): Promise<void> {\n const sessionData = this.getSessionData();\n if (sessionData?.strategy) {\n const strategy = this.authStrategyRegistry.get(sessionData?.strategy);\n if (strategy) {\n await strategy.signout();\n }\n }\n //\n const userId = this.user?.id;\n this.clearSession();\n this.status.next(AXPSessionStatus.SignedOut);\n this.eventService.publish(AXPSessionStatus.SignedOut, { id: userId });\n }\n\n async refreshToken(): Promise<any> {\n return new Promise(async (resolve, reject) => {\n const sessionData = this.getSessionData();\n if (!sessionData || !sessionData?.refreshToken) {\n return;\n }\n const strategy = this.authStrategyRegistry.get(sessionData.strategy);\n if (!strategy) {\n reject();\n throw new Error(`Authentication strategy '${sessionData.strategy}' is not found`);\n }\n const result = await strategy.refreshToken(this.getContext());\n if (result.succeed) {\n this.setSession(result.data as AXPSessionData);\n resolve(result.data?.accessToken);\n } else {\n this.clearSession();\n this.status.next(AXPSessionStatus.Expired);\n }\n });\n }\n\n async setTenant(tenant: AXPTenant | null): Promise<void> {\n this.currentTenantSubject.next(tenant);\n if (tenant) {\n this.updateSession({ tenant: tenant });\n await this.refreshToken();\n }\n }\n\n async setApplication(application: AXPApplication | null): Promise<void> {\n this.currentApplicationSubject.next(application);\n if (application) {\n this.updateSession({ application: application });\n await this.refreshToken();\n await this.loadPermissions();\n await this.loadFeatures();\n }\n }\n\n private async loadPermissions(): Promise<void> {\n try {\n const permissions = await firstValueFrom(this.permissionLoader.getList(this.getContext()));\n this.permissionsSubject.next(permissions ?? []);\n } catch (error) {\n console.error('Error loading permissions:', error);\n this.permissionsSubject.next([]);\n }\n }\n\n private async loadFeatures(): Promise<void> {\n try {\n const features = await firstValueFrom(this.featureLoader.getList(this.getContext()));\n this.featuresSubject.next(features ?? []);\n } catch (error) {\n console.error('Error loading features:', error);\n this.featuresSubject.next([]);\n }\n }\n\n async signInComplete() {\n this.status.next(AXPSessionStatus.Authorized);\n }\n\n private setSession(tokens: Partial<AXPSessionData>): void {\n const sessionData: Partial<AXPSessionData> = {\n accessToken: tokens.accessToken,\n refreshToken: tokens.refreshToken,\n strategy: tokens.strategy,\n user: this.user,\n application: tokens.application,\n tenant: tokens.tenant,\n expiresIn: tokens.expiresIn,\n idToken: tokens.idToken,\n };\n this.updateSession(sessionData);\n }\n\n private updateSession(update: Partial<AXPSessionData>) {\n const currentSession = this.getSessionData() ?? {};\n const updatedSession = merge({}, currentSession, update);\n localStorage.setItem(AXPSessionService.SESSION_KEY, JSON.stringify(updatedSession));\n }\n\n public getSessionData(): AXPSessionData | null {\n const sessionDataString = localStorage.getItem(AXPSessionService.SESSION_KEY);\n return sessionDataString ? JSON.parse(sessionDataString) : null;\n }\n\n private clearSession(): void {\n //\n this.currentUserSubject.next(null);\n //\n this.setTenant(null);\n //\n this.setApplication(null);\n //\n this.permissionsSubject.next([]);\n //\n this.featuresSubject.next([]);\n //\n localStorage.removeItem(AXPSessionService.SESSION_KEY);\n }\n\n public authorize(...keys: string[]): boolean {\n return keys.every((k) => isEmpty(k) || this.permissions.indexOf(k) > -1);\n }\n\n public isFeatureEnabled(...keys: string[]): boolean {\n return keys.every((k) => isEmpty(k) || this.features.some((c) => c.name == k && c.value == true));\n }\n\n public getToken(): string | undefined {\n const sessionData = this.getSessionData();\n\n return sessionData?.accessToken;\n }\n\n private checkTokenValidation(): boolean {\n let sessionData = this.getSessionData();\n\n if (sessionData && sessionData?.accessToken && sessionData.expiresIn) {\n const expiresInDate = new Date(sessionData.expiresIn);\n if (expiresInDate > new Date()) {\n // Token is still valid\n return true;\n }\n }\n return false;\n }\n\n private getContext(): AXPSessionContext {\n return new AXPSessionContext({\n user: this.user,\n tenant: this.tenant,\n application: this.application,\n });\n }\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef, inject, signal } from '@angular/core';\nimport { Subscription, first } from 'rxjs';\nimport { AXPSessionService } from '../session.service';\n\n@Directive({\n selector: '[permission]',\n standalone: false\n})\nexport class AXPPermissionDirective {\n private hasView = signal(false);\n private subscription!: Subscription;\n private sessionService = inject(AXPSessionService);\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef\n ) { }\n\n @Input()\n public set permission(permissionKeys: string | string[] | null) {\n const keys: string[] = !permissionKeys ? [] : (Array.isArray(permissionKeys) ? permissionKeys : [permissionKeys]);\n if (keys.length == 0) {\n // If permissionKey is null or empty, decide the default behavior here\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n return;\n }\n this.subscription = this.sessionService.isAuthorized$\n .subscribe((isAuthorized) => {\n if (isAuthorized && this.sessionService.authorize(...keys)) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n }\n } else {\n this.viewContainer.clear();\n this.hasView.set(false);\n }\n });\n }\n\n @Input()\n public set permissionElse(elseTemplateRef: TemplateRef<any>) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(elseTemplateRef);\n }\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from '@angular/router';\nimport { first, map, tap } from 'rxjs';\nimport { AXPUnauthorizedError } from '../errors.types';\nimport { AXPSessionService } from '../session.service';\n\nexport const AXPPermissionGuard: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n\n const sessionService = inject(AXPSessionService);\n\n const permissionKeys = route.data['requiredPermission'] as string | string[] | null;\n\n return sessionService.isAuthorized$.pipe(\n first(),\n map((value) => {\n const keys: string[] = !permissionKeys ? [] : Array.isArray(permissionKeys) ? permissionKeys : [permissionKeys];\n const hasPermission = keys.length == 0 || sessionService.authorize(...keys);\n if (!hasPermission) {\n throw new AXPUnauthorizedError(\n `Access denied. Required permissions: ${keys.join(', ')}. Please contact your administrator if you believe this is an error.`,\n {\n redirectUrl: state.url\n }\n );\n }\n return true;\n })\n );\n};\n","import { AXPPermissionDefinition, AXPPermissionGroupDefinition } from \"./permission.types\";\n\n\nexport class AXPPermissionDefinitionProviderContext {\n private builders: Map<string, AXPPermissionDefinitionGroupBuilder> = new Map();\n\n addGroup(name: string, title: string, description?: string): AXPPermissionDefinitionGroupBuilder {\n const group: AXPPermissionGroupDefinition = {\n name,\n title,\n description,\n permissions: []\n };\n const builder = new AXPPermissionDefinitionGroupBuilder(this, group);\n this.builders.set(name, builder);\n return builder;\n }\n\n getGroupDefinitions(): AXPPermissionGroupDefinition[] {\n return Array.from(this.builders.values()).map(b => b.group);\n }\n\n findGroup(name: string): AXPPermissionDefinitionGroupBuilder | undefined {\n return this.builders.get(name);\n }\n}\n\n\n\nexport class AXPPermissionDefinitionGroupBuilder {\n private context: AXPPermissionDefinitionProviderContext;\n private _group: AXPPermissionGroupDefinition;\n\n public get group(): AXPPermissionGroupDefinition {\n return this._group;\n }\n\n constructor(context: AXPPermissionDefinitionProviderContext, group: AXPPermissionGroupDefinition) {\n this.context = context;\n this._group = group;\n }\n\n addPermission(name: string, title: string, description?: string): AXPPermissionDefinitionBuilder {\n const permission: AXPPermissionDefinition = {\n name,\n title,\n description,\n children: []\n };\n this._group.permissions.push(permission);\n return new AXPPermissionDefinitionBuilder(this, permission);\n }\n\n\n\n\n endGroup(): AXPPermissionDefinitionProviderContext {\n return this.context;\n }\n\n findPermission(path: string): AXPPermissionDefinition | undefined {\n return undefined;\n }\n\n findGroup(name: string): AXPPermissionDefinitionGroupBuilder | undefined {\n return undefined;\n }\n\n}\n\nexport class AXPPermissionDefinitionBuilder {\n private groupBuilder: AXPPermissionDefinitionGroupBuilder;\n private permission: AXPPermissionDefinition;\n\n constructor(groupBuilder: AXPPermissionDefinitionGroupBuilder, permission: AXPPermissionDefinition) {\n this.groupBuilder = groupBuilder;\n this.permission = permission;\n }\n\n addChild(name: string, title: string, description?: string): AXPPermissionDefinitionBuilder {\n const permission: AXPPermissionDefinition = {\n name,\n title,\n description,\n children: []\n };\n this.permission.children.push(permission);\n return this;\n }\n\n\n endPermission(): AXPPermissionDefinitionGroupBuilder {\n return this.groupBuilder;\n }\n}","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { AXPPermissionDefinition, AXPPermissionGroupDefinition } from './permission.types';\nimport { AXPPermissionDefinitionProviderContext } from './permission-definition.builder';\n\n\n\nexport interface AXPPermissionDefinitionProvider {\n define(context: AXPPermissionDefinitionProviderContext): Promise<void>;\n}\n\nexport const AXP_PERMISSION_DEFINITION_PROVIDER = new InjectionToken<AXPPermissionDefinitionProvider[]>('AXP_PERMISSION_DEFINITION_PROVIDER', {\n providedIn: 'root',\n factory: () => {\n return [];\n }\n});\n\n\n@Injectable({ providedIn: 'root' })\nexport class AXPPermissionDefinitionService {\n private providers = inject(AXP_PERMISSION_DEFINITION_PROVIDER, { optional: true });\n private cache: AXPPermissionGroupDefinition[] | null = null;\n\n\n private async load(): Promise<void> {\n if (this.cache) {\n return\n }\n const context = new AXPPermissionDefinitionProviderContext();\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n if (provider instanceof Promise) {\n // If provider is a promise, resolve it\n const resolvedProvider = await provider;\n await resolvedProvider.define(context);\n } else {\n // If provider is a direct instance, use it directly\n await provider.define(context);\n }\n }\n }\n this.cache = context.getGroupDefinitions();\n }\n\n public async reload(): Promise<void> {\n this.cache = null;\n await this.load();\n }\n\n public async getGroups(): Promise<AXPPermissionGroupDefinition[]> {\n await this.load();\n return this.cache ?? [];\n }\n\n public async getPermissions(): Promise<AXPPermissionDefinition[]> {\n await this.load();\n return this.cache?.flatMap(g => g.permissions) ?? [];\n }\n\n public async getGroup(name: string): Promise<AXPPermissionGroupDefinition | null> {\n await this.load();\n return this.cache?.find(g => g.name === name) ?? null;\n }\n\n public async getPermission(name: string): Promise<AXPPermissionDefinition | null> {\n await this.load();\n return this.cache?.find(g => g.permissions.find(p => p.name === name))?.permissions.find(p => p.name === name) ?? null;\n }\n\n}\n","import { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivateFn, RouterStateSnapshot } from '@angular/router';\nimport { first, map } from 'rxjs';\nimport { AXPUnauthenticatedError } from './errors.types';\nimport { AXPSessionService } from './session.service';\n\nexport const AXPAuthGuard: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => {\n const sessionService = inject(AXPSessionService);\n return sessionService.isAuthenticated$.pipe(\n first(),\n map((value) => {\n if (value) {\n return true;\n }\n throw new AXPUnauthenticatedError(\n `Access denied. You are not currently logged in. Please log in to access this page. If you continue to see this message after logging in, please contact support.`,\n {\n redirectUrl: state.url,\n }\n );\n })\n );\n};\n","import { Inject, ModuleWithProviders, NgModule, Optional, inject, provideAppInitializer } from '@angular/core';\nimport { AXPAuthStrategyRegistryService } from './auth-registry.service';\nimport { AXPAuthStrategy } from './auth.strategy';\nimport { AXPFeatureDirective } from './feature';\nimport { AXPPermissionDirective } from './permission/permission.directive';\nimport { AXPSessionService } from './session.service';\n\nexport interface AXPAuthModuleConfigs {\n strategies: (new () => AXPAuthStrategy)[];\n}\n\nexport function initializeAppState(service: AXPSessionService) {\n return async () => {\n try {\n await service.restoreSession();\n } catch (error) {\n console.error(error);\n }\n };\n}\n\n@NgModule({\n imports: [],\n exports: [AXPPermissionDirective, AXPFeatureDirective],\n declarations: [AXPPermissionDirective, AXPFeatureDirective],\n providers: [\n provideAppInitializer(() => {\n const initializerFn = (initializeAppState)(inject(AXPSessionService));\n return initializerFn();\n }),\n ],\n})\nexport class AXPAuthModule {\n static forRoot(configs?: AXPAuthModuleConfigs): ModuleWithProviders<AXPAuthModule> {\n return {\n ngModule: AXPAuthModule,\n providers: [\n ...(configs?.strategies || []),\n {\n provide: 'AXPAuthModuleFactory',\n useFactory: (registry: AXPAuthStrategyRegistryService) => () => {\n registry.register(...(configs?.strategies || []));\n },\n deps: [AXPAuthStrategyRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n static forChild(configs?: AXPAuthModuleConfigs): ModuleWithProviders<AXPAuthModule> {\n return {\n ngModule: AXPAuthModule,\n providers: [\n ...(configs?.strategies || []),\n {\n provide: 'AXPAuthModuleFactory',\n useFactory: (registry: AXPAuthStrategyRegistryService) => () => {\n registry.register(...(configs?.strategies || []));\n },\n deps: [AXPAuthStrategyRegistryService],\n multi: true,\n },\n ],\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPAuthModuleFactory') instances: any[]) {\n instances?.forEach((f) => {\n f();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MASa,sBAAsB,GAAG,IAAI,cAAc,CAAuB,wBAAwB,EAAE;AACvG,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;QACZ,OAAO,IAAI,2BAA2B,EAAE;KACzC;AACF,CAAA;AAED,MAAM,2BAA2B,CAAA;AAC/B,IAAA,OAAO,CAAC,OAA0B,EAAA;AAChC,QAAA,OAAO,EAAE,CAAC;AACR,YAAA;AACE,gBAAA,EAAE,EAAE,GAAG;AACP,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,KAAK,EAAE,qBAAqB;AAC5B,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,WAAW,EAAE,UAAU;AACvB,gBAAA,QAAQ,EAAE,EAAE;AACb,aAAA;AACF,SAAA,CAAC;;AAEL;;MCpBY,iBAAiB,GAAG,IAAI,cAAc,CAAkB,mBAAmB,EAAE;AACxF,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;QACZ,OAAO,IAAI,sBAAsB,EAAE;KACpC;AACF,CAAA;AAED,MAAM,sBAAsB,CAAA;AAE1B,IAAA,OAAO,CAAC,OAA0B,EAAA;AAChC,QAAA,OAAO,EAAE,CAAC;AACR,YAAA;AACE,gBAAA,EAAE,EAAE,GAAG;AACP,gBAAA,IAAI,EAAE,gBAAgB;AACtB,gBAAA,KAAK,EAAE,gBAAgB;AACxB,aAAA;AACF,SAAA,CAAC;;AAEL;;MCrBY,8BAA8B,CAAA;AAKzC,IAAA,WAAA,CAAY,QAAkB,EAAA;AAJtB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,GAAG,EAA2B;AAKrD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;IAG1B,QAAQ,CAAC,GAAG,OAAsC,EAAA;AAChD,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAG;AAClB,YAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpH,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YACrC,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;;AAEhD,SAAC,CAAC;;AAGJ,IAAA,GAAG,CAAC,WAAmB,EAAA;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;;+GApB9B,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cAF7B,MAAM,EAAA,CAAA,CAAA;;4FAEP,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAH1C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCIY,kBAAkB,GAAG,IAAI,cAAc,CAAmB,oBAAoB,EAAE;AAC3F,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;QACZ,OAAO,IAAI,uBAAuB,EAAE;KACrC;AACF,CAAA;AAED,MAAM,uBAAuB,CAAA;AAC3B,IAAA,OAAO,CAAC,OAA0B,EAAA;AAChC,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC;;AAEhB;;MCZY,mBAAmB,CAAA;IAK9B,WACU,CAAA,WAA6B,EAC7B,aAA+B,EAAA;QAD/B,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAa,CAAA,aAAA,GAAb,aAAa;AANf,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;AAEvB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;;IAOlD,IACW,OAAO,CAAC,WAAqC,EAAA;AACtD,QAAA,MAAM,IAAI,GAAa,CAAC,WAAW,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC;AACrG,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;;YAEpB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACvD,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YACtB;;AAEF,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;;aAErC,SAAS,CAAC,MAAK;YACd,IAAI,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,EAAE;AACjD,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;oBACnB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACvD,oBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;;;iBAEnB;AACL,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;;AAE3B,SAAC,CAAC;;IAGN,IACW,WAAW,CAAC,eAAiC,EAAA;AACtD,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACnB,YAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,eAAe,CAAC;;;IAI1D,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;;+GA1CvB,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE;AACf,iBAAA;+GAYY,OAAO,EAAA,CAAA;sBADjB;gBAyBU,WAAW,EAAA,CAAA;sBADrB;;;AC1CG,MAAO,oBAAqB,SAAQ,KAAK,CAAA;IAC3C,WAAY,CAAA,OAAgB,EAAS,IAA+B,EAAA;QAChE,KAAK,CAAC,OAAO,CAAC;QADmB,IAAI,CAAA,IAAA,GAAJ,IAAI;AAErC,QAAA,IAAI,CAAC,IAAI,GAAG,sBAAsB;;AAEzC;AAGK,MAAO,uBAAwB,SAAQ,KAAK,CAAA;IAC9C,WAAY,CAAA,OAAgB,EAAS,IAA+B,EAAA;QAChE,KAAK,CAAC,OAAO,CAAC;QADmB,IAAI,CAAA,IAAA,GAAJ,IAAI;AAErC,QAAA,IAAI,CAAC,IAAI,GAAG,yBAAyB;;AAE5C;;MCNY,eAAe,GAC1B,CAAC,KAA6B,EAAE,KAA0B,KAAmC;AAC3F,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAChD,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAA+B;IAEpF,OAAO,cAAc,CAAC,SAAS,CAAC,IAAI,CAClC,GAAG,CAAC,MAAK;AACP,QAAA,MAAM,IAAI,GAAa,CAAC,gBAAgB,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,CAAC;AACzH,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,cAAc,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;QAC/E,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,oBAAoB,CAC5B,CAA+E,4EAAA,EAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,4CAAA,CAA8C,EAC5I;gBACE,WAAW,EAAE,KAAK,CAAC;AACpB,aAAA,CACF;;AAEH,QAAA,OAAO,IAAI;KACZ,CAAC,CACH;AACH;;MClBW,qBAAqB,GAAG,IAAI,cAAc,CAAsB,uBAAuB,EAAE;AAClG,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;QACV,OAAO,IAAI,0BAA0B,EAAE;;AAE9C,CAAA;AAGD,MAAM,0BAA0B,CAAA;AAC5B,IAAA,OAAO,CAAC,OAA0B,EAAA;AAC9B,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC;;AAEpB;;MCjBY,iBAAiB,CAAA;AAG1B,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;;AAIrB,IAAA,IAAW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,OAAO;;AAIvB,IAAA,IAAW,WAAW,GAAA;QAClB,OAAO,IAAI,CAAC,YAAY;;AAG5B,IAAA,WAAA,CAAY,OAIX,EAAA;QAnBO,IAAK,CAAA,KAAA,GAAmB,IAAI;QAK5B,IAAO,CAAA,OAAA,GAAqB,IAAI;QAKhC,IAAY,CAAA,YAAA,GAA0B,IAAI;AAU9C,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW;;AAE9C;IAGW;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,gBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AAC3B,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,GAO3B,EAAA,CAAA,CAAA;;MCrBY,iBAAiB,CAAA;AAH9B,IAAA,WAAA,GAAA;AAIU,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAE/C,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,8BAA8B,CAAC;AAGpD,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAChD,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAC1C,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACxC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,sBAAsB,CAAC;QAE3D,IAAM,CAAA,MAAA,GAAG,IAAI,eAAe,CAAmB,gBAAgB,CAAC,eAAe,CAAC;AACxE,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAEjE,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,eAAe,CAAiB,IAAI,CAAC;AACtD,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAS3E,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,eAAe,CAAmB,IAAI,CAAC;AAC1D,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAa/E,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,eAAe,CAAwB,IAAI,CAAC;AACpE,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAazF,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,eAAe,CAAkB,EAAE,CAAC;QACrD,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;AAKtG,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAe,EAAE,CAAC;QAC/C,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC;AAKxF,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAClD,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,gBAAgB,CAAC,aAAa,IAAI,MAAM,KAAK,gBAAgB,CAAC,UAAU,CAAC,EACpG,WAAW,CAAC,CAAC,CAAC,CACf;QAEe,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAC/C,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,gBAAgB,CAAC,UAAU,CAAC,EACvD,WAAW,CAAC,CAAC,CAAC,CACf;AA6MF;aAjRwB,IAAW,CAAA,WAAA,GAAG,aAAH,CAAiB;AAYnD,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE;QACrC,IAAI,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE;YACnD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;;AAE5C,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK;;AAKtC,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE;QACrC,IAAI,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE;YACvD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;;AAEhD,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK;;AAGxC,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;;AAKrD,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE;QACrC,IAAI,OAAO,EAAE,WAAW,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE;YACjE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;;AAE1D,QAAA,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK;;AAG7C,IAAA,IAAW,aAAa,GAAA;QACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;;AAK1D,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE;;AAK5C,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE;;AAalC,IAAA,MAAM,cAAc,GAAA;AACzB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;QACzC,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,WAAW,CAAC,IAAI,EAAE;gBACpB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;;;;;;;;AAQlD,YAAA,MAAM,IAAI,CAAC,eAAe,EAAE;AAC5B,YAAA,MAAM,IAAI,CAAC,YAAY,EAAE;AACzB,YAAA,MAAM,IAAI,CAAC,cAAc,EAAE;;aACtB;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;;;IAInD,MAAM,MAAM,CAAC,WAA+B,EAAA;;QAE1C,IAAI,CAAC,YAAY,EAAE;;AAEnB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC;QACpE,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,CAAA,yBAAA,EAA4B,WAAW,CAAC,QAAQ,CAAoB,kBAAA,CAAA,CAAC;;QAEvF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;AACjD,QAAA,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAK,CAAC,IAAI,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC;AACd,gBAAA,WAAW,EAAE,MAAM,CAAC,IAAK,CAAC,WAAW;AACrC,gBAAA,YAAY,EAAE,MAAM,CAAC,IAAK,CAAC,YAAY;gBACvC,QAAQ,EAAE,WAAW,CAAC,QAAQ;AAC9B,gBAAA,IAAI,EAAE,MAAM,CAAC,IAAK,CAAC,IAAI;AACvB,gBAAA,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW;AACrC,gBAAA,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM;AAC3B,gBAAA,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS;AACjC,gBAAA,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI;AACtC,aAAA,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;AAChD,YAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM;AAAE,gBAAA,MAAM,IAAI,CAAC,cAAc,EAAE;;aAC3D;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC;AAClD,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,4BAAA,CAA8B,CAAC;;;AAInD,IAAA,MAAM,OAAO,GAAA;AACX,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;AACzC,QAAA,IAAI,WAAW,EAAE,QAAQ,EAAE;AACzB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC;YACrE,IAAI,QAAQ,EAAE;AACZ,gBAAA,MAAM,QAAQ,CAAC,OAAO,EAAE;;;;AAI5B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE;QAC5B,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;AAC5C,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;;AAGvE,IAAA,MAAM,YAAY,GAAA;QAChB,OAAO,IAAI,OAAO,CAAC,OAAO,OAAO,EAAE,MAAM,KAAI;AAC3C,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;YACzC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE;gBAC9C;;AAEF,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC;YACpE,IAAI,CAAC,QAAQ,EAAE;AACb,gBAAA,MAAM,EAAE;gBACR,MAAM,IAAI,KAAK,CAAC,CAAA,yBAAA,EAA4B,WAAW,CAAC,QAAQ,CAAgB,cAAA,CAAA,CAAC;;AAEnF,YAAA,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AAC7D,YAAA,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,gBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAsB,CAAC;AAC9C,gBAAA,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC;;iBAC5B;gBACL,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;;AAE9C,SAAC,CAAC;;IAGJ,MAAM,SAAS,CAAC,MAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACtC,YAAA,MAAM,IAAI,CAAC,YAAY,EAAE;;;IAI7B,MAAM,cAAc,CAAC,WAAkC,EAAA;AACrD,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,WAAW,CAAC;QAChD,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AAChD,YAAA,MAAM,IAAI,CAAC,YAAY,EAAE;AACzB,YAAA,MAAM,IAAI,CAAC,eAAe,EAAE;AAC5B,YAAA,MAAM,IAAI,CAAC,YAAY,EAAE;;;AAIrB,IAAA,MAAM,eAAe,GAAA;AAC3B,QAAA,IAAI;AACF,YAAA,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1F,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;;QAC/C,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC;AAClD,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;;;AAI5B,IAAA,MAAM,YAAY,GAAA;AACxB,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;;QACzC,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC;AAC/C,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;;;AAIjC,IAAA,MAAM,cAAc,GAAA;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;;AAGvC,IAAA,UAAU,CAAC,MAA+B,EAAA;AAChD,QAAA,MAAM,WAAW,GAA4B;YAC3C,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB;AACD,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;;AAGzB,IAAA,aAAa,CAAC,MAA+B,EAAA;QACnD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE;QAClD,MAAM,cAAc,GAAG,KAAK,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC;AACxD,QAAA,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;;IAG9E,cAAc,GAAA;QACnB,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC;AAC7E,QAAA,OAAO,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,IAAI;;IAGzD,YAAY,GAAA;;AAElB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;;AAElC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;AAEpB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;;AAEzB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;;AAEhC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;;AAE7B,QAAA,YAAY,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC;;IAGjD,SAAS,CAAC,GAAG,IAAc,EAAA;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;;IAGnE,gBAAgB,CAAC,GAAG,IAAc,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;;IAG5F,QAAQ,GAAA;AACb,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;QAEzC,OAAO,WAAW,EAAE,WAAW;;IAGzB,oBAAoB,GAAA;AAC1B,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE;QAEvC,IAAI,WAAW,IAAI,WAAW,EAAE,WAAW,IAAI,WAAW,CAAC,SAAS,EAAE;YACpE,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;AACrD,YAAA,IAAI,aAAa,GAAG,IAAI,IAAI,EAAE,EAAE;;AAE9B,gBAAA,OAAO,IAAI;;;AAGf,QAAA,OAAO,KAAK;;IAGN,UAAU,GAAA;QAChB,OAAO,IAAI,iBAAiB,CAAC;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;AAC9B,SAAA,CAAC;;+GAnRO,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCVY,sBAAsB,CAAA;IAKjC,WACU,CAAA,WAA6B,EAC7B,aAA+B,EAAA;QAD/B,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAa,CAAA,aAAA,GAAb,aAAa;AANf,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;AAEvB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;;IAOlD,IACW,UAAU,CAAC,cAAwC,EAAA;AAC5D,QAAA,MAAM,IAAI,GAAa,CAAC,cAAc,GAAG,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,CAAC,cAAc,CAAC,CAAC;AACjH,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;;YAEpB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACvD,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YACtB;;AAEF,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;AACrC,aAAA,SAAS,CAAC,CAAC,YAAY,KAAI;AAC1B,YAAA,IAAI,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,EAAE;AAC1D,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;oBACnB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACvD,oBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;;;iBAEnB;AACL,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;;AAE3B,SAAC,CAAC;;IAGN,IACW,cAAc,CAAC,eAAiC,EAAA;AACzD,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE;AACnB,YAAA,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,eAAe,CAAC;;;IAI1D,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;;+GAzCvB,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE;AACf,iBAAA;+GAYY,UAAU,EAAA,CAAA;sBADpB;gBAwBU,cAAc,EAAA,CAAA;sBADxB;;;MCnCU,kBAAkB,GAAkB,CAAC,KAA6B,EAAE,KAA0B,KAAI;AAE7G,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAEhD,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAA6B;AAEnF,IAAA,OAAO,cAAc,CAAC,aAAa,CAAC,IAAI,CACtC,KAAK,EAAE,EACP,GAAG,CAAC,CAAC,KAAK,KAAI;QACZ,MAAM,IAAI,GAAa,CAAC,cAAc,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,CAAC,cAAc,CAAC;AAC/G,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAC3E,IAAI,CAAC,aAAa,EAAE;YAClB,MAAM,IAAI,oBAAoB,CAC5B,CAAwC,qCAAA,EAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,oEAAA,CAAsE,EAC7H;gBACE,WAAW,EAAE,KAAK,CAAC;AACpB,aAAA,CACF;;AAEH,QAAA,OAAO,IAAI;KACZ,CAAC,CACH;AACH;;MCzBa,sCAAsC,CAAA;AAAnD,IAAA,WAAA,GAAA;AACY,QAAA,IAAA,CAAA,QAAQ,GAAqD,IAAI,GAAG,EAAE;;AAE9E,IAAA,QAAQ,CAAC,IAAY,EAAE,KAAa,EAAE,WAAoB,EAAA;AACtD,QAAA,MAAM,KAAK,GAAiC;YACxC,IAAI;YACJ,KAAK;YACL,WAAW;AACX,YAAA,WAAW,EAAE;SAChB;QACD,MAAM,OAAO,GAAG,IAAI,mCAAmC,CAAC,IAAI,EAAE,KAAK,CAAC;QACpE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;AAChC,QAAA,OAAO,OAAO;;IAGlB,mBAAmB,GAAA;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;;AAG/D,IAAA,SAAS,CAAC,IAAY,EAAA;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;;AAErC;MAIY,mCAAmC,CAAA;AAI5C,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM;;IAGtB,WAAY,CAAA,OAA+C,EAAE,KAAmC,EAAA;AAC5F,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;;AAGvB,IAAA,aAAa,CAAC,IAAY,EAAE,KAAa,EAAE,WAAoB,EAAA;AAC3D,QAAA,MAAM,UAAU,GAA4B;YACxC,IAAI;YACJ,KAAK;YACL,WAAW;AACX,YAAA,QAAQ,EAAE;SACb;QACD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,QAAA,OAAO,IAAI,8BAA8B,CAAC,IAAI,EAAE,UAAU,CAAC;;IAM/D,QAAQ,GAAA;QACJ,OAAO,IAAI,CAAC,OAAO;;AAGvB,IAAA,cAAc,CAAC,IAAY,EAAA;AACvB,QAAA,OAAO,SAAS;;AAGpB,IAAA,SAAS,CAAC,IAAY,EAAA;AAClB,QAAA,OAAO,SAAS;;AAGvB;MAEY,8BAA8B,CAAA;IAIvC,WAAY,CAAA,YAAiD,EAAE,UAAmC,EAAA;AAC9F,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU;;AAGhC,IAAA,QAAQ,CAAC,IAAY,EAAE,KAAa,EAAE,WAAoB,EAAA;AACtD,QAAA,MAAM,UAAU,GAA4B;YACxC,IAAI;YACJ,KAAK;YACL,WAAW;AACX,YAAA,QAAQ,EAAE;SACb;QACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;AACzC,QAAA,OAAO,IAAI;;IAIf,aAAa,GAAA;QACT,OAAO,IAAI,CAAC,YAAY;;AAE/B;;MCpFY,kCAAkC,GAAG,IAAI,cAAc,CAAoC,oCAAoC,EAAE;AAC5I,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;AACZ,QAAA,OAAO,EAAE;;AAEZ,CAAA;MAIY,8BAA8B,CAAA;AAD3C,IAAA,WAAA,GAAA;QAEU,IAAS,CAAA,SAAA,GAAG,MAAM,CAAC,kCAAkC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC1E,IAAK,CAAA,KAAA,GAA0C,IAAI;AAgD5D;AA7CS,IAAA,MAAM,IAAI,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd;;AAEF,QAAA,MAAM,OAAO,GAAG,IAAI,sCAAsC,EAAE;QAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACjC,YAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AACrC,gBAAA,IAAI,QAAQ,YAAY,OAAO,EAAE;;AAE/B,oBAAA,MAAM,gBAAgB,GAAG,MAAM,QAAQ;AACvC,oBAAA,MAAM,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC;;qBACjC;;AAEL,oBAAA,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;;;;AAIpC,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,mBAAmB,EAAE;;AAGrC,IAAA,MAAM,MAAM,GAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,MAAM,IAAI,CAAC,IAAI,EAAE;;AAGZ,IAAA,MAAM,SAAS,GAAA;AACpB,QAAA,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE;;AAGlB,IAAA,MAAM,cAAc,GAAA;AACzB,QAAA,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;;IAG/C,MAAM,QAAQ,CAAC,IAAY,EAAA;AAChC,QAAA,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,QAAA,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI;;IAGhD,MAAM,aAAa,CAAC,IAAY,EAAA;AACrC,QAAA,MAAM,IAAI,CAAC,IAAI,EAAE;QACjB,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI;;+GA/C7G,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cADjB,MAAM,EAAA,CAAA,CAAA;;4FACnB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCZrB,YAAY,GAAkB,CAAC,KAA6B,EAAE,KAA0B,KAAI;AACvG,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAChD,IAAA,OAAO,cAAc,CAAC,gBAAgB,CAAC,IAAI,CACzC,KAAK,EAAE,EACP,GAAG,CAAC,CAAC,KAAK,KAAI;QACZ,IAAI,KAAK,EAAE;AACT,YAAA,OAAO,IAAI;;AAEb,QAAA,MAAM,IAAI,uBAAuB,CAC/B,CAAA,gKAAA,CAAkK,EAClK;YACE,WAAW,EAAE,KAAK,CAAC,GAAG;AACvB,SAAA,CACF;KACF,CAAC,CACH;AACH;;ACXM,SAAU,kBAAkB,CAAC,OAA0B,EAAA;IAC3D,OAAO,YAAW;AAChB,QAAA,IAAI;AACF,YAAA,MAAM,OAAO,CAAC,cAAc,EAAE;;QAC9B,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;;AAExB,KAAC;AACH;MAaa,aAAa,CAAA;IACxB,OAAO,OAAO,CAAC,OAA8B,EAAA;QAC3C,OAAO;AACL,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC;AAC9B,gBAAA;AACE,oBAAA,OAAO,EAAE,sBAAsB;AAC/B,oBAAA,UAAU,EAAE,CAAC,QAAwC,KAAK,MAAK;AAC7D,wBAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;qBAClD;oBACD,IAAI,EAAE,CAAC,8BAA8B,CAAC;AACtC,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF;;IAGH,OAAO,QAAQ,CAAC,OAA8B,EAAA;QAC5C,OAAO;AACL,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,SAAS,EAAE;AACT,gBAAA,IAAI,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC;AAC9B,gBAAA;AACE,oBAAA,OAAO,EAAE,sBAAsB;AAC/B,oBAAA,UAAU,EAAE,CAAC,QAAwC,KAAK,MAAK;AAC7D,wBAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;qBAClD;oBACD,IAAI,EAAE,CAAC,8BAA8B,CAAC;AACtC,oBAAA,KAAK,EAAE,IAAI;AACZ,iBAAA;AACF,aAAA;SACF;;AAGH;;AAEG;AACH,IAAA,WAAA,CAAwD,SAAgB,EAAA;AACtE,QAAA,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,KAAI;AACvB,YAAA,CAAC,EAAE;AACL,SAAC,CAAC;;AAzCO,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAsCQ,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAtC3C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,iBART,sBAAsB,EAAE,mBAAmB,CADhD,EAAA,OAAA,EAAA,CAAA,sBAAsB,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAS1C,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAPb,SAAA,EAAA;YACT,qBAAqB,CAAC,MAAK;gBACvB,MAAM,aAAa,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBACrE,OAAO,aAAa,EAAE;AACxB,aAAC,CAAC;AACL,SAAA,EAAA,CAAA,CAAA;;4FAEU,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,mBAAmB,CAAC;AACtD,oBAAA,YAAY,EAAE,CAAC,sBAAsB,EAAE,mBAAmB,CAAC;AAC3D,oBAAA,SAAS,EAAE;wBACT,qBAAqB,CAAC,MAAK;4BACvB,MAAM,aAAa,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;4BACrE,OAAO,aAAa,EAAE;AACxB,yBAAC,CAAC;AACL,qBAAA;AACF,iBAAA;;0BAuCc;;0BAAY,MAAM;2BAAC,sBAAsB;;;ACtExD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-auth.mjs","sources":["../tmp-esm2022/auth/lib/application/application.loader.js","../tmp-esm2022/auth/lib/tenant/tenant.loader.js","../tmp-esm2022/auth/lib/auth-registry.service.js","../tmp-esm2022/auth/lib/feature/feature.loader.js","../tmp-esm2022/auth/lib/feature/feature.directive.js","../tmp-esm2022/auth/lib/errors.types.js","../tmp-esm2022/auth/lib/feature/feature.guard.js","../tmp-esm2022/auth/lib/permission/permission.loader.js","../tmp-esm2022/auth/lib/session.types.js","../tmp-esm2022/auth/lib/session.service.js","../tmp-esm2022/auth/lib/permission/permission.directive.js","../tmp-esm2022/auth/lib/permission/permission.guard.js","../tmp-esm2022/auth/lib/permission/permission-definition.builder.js","../tmp-esm2022/auth/lib/permission/permission-definition.service.js","../tmp-esm2022/auth/lib/auth.guard.js","../tmp-esm2022/auth/lib/auth.module.js","../tmp-esm2022/auth/acorex-platform-auth.js"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { of } from 'rxjs';\nexport const AXP_APPLICATION_LOADER = new InjectionToken('AXP_APPLICATION_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPApplicationDefaultLoader();\n },\n});\nclass AXPApplicationDefaultLoader {\n getList(context) {\n return of([\n {\n id: '1',\n name: 'default-app',\n title: 'Default Application',\n version: '1.0.0',\n editionName: 'Standard',\n features: [],\n },\n ]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24ubG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9hdXRoL3NyYy9saWIvYXBwbGljYXRpb24vYXBwbGljYXRpb24ubG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVF0QyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBdUIsd0JBQXdCLEVBQUU7SUFDdkcsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE9BQU8sSUFBSSwyQkFBMkIsRUFBRSxDQUFDO0lBQzNDLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLDJCQUEyQjtJQUMvQixPQUFPLENBQUMsT0FBMEI7UUFDaEMsT0FBTyxFQUFFLENBQUM7WUFDUjtnQkFDRSxFQUFFLEVBQUUsR0FBRztnQkFDUCxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsS0FBSyxFQUFFLHFCQUFxQjtnQkFDNUIsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLFdBQVcsRUFBRSxVQUFVO2dCQUN2QixRQUFRLEVBQUUsRUFBRTthQUNiO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBBcHBsaWNhdGlvbiB9IGZyb20gJy4vYXBwbGljYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQVhQU2Vzc2lvbkNvbnRleHQgfSBmcm9tICcuLi9zZXNzaW9uLnR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBBcHBsaWNhdGlvbkxvYWRlciB7XG4gIGdldExpc3QoY29udGV4dDogQVhQU2Vzc2lvbkNvbnRleHQpOiBPYnNlcnZhYmxlPEFYUEFwcGxpY2F0aW9uW10+O1xufVxuXG5leHBvcnQgY29uc3QgQVhQX0FQUExJQ0FUSU9OX0xPQURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBBcHBsaWNhdGlvbkxvYWRlcj4oJ0FYUF9BUFBMSUNBVElPTl9MT0FERVInLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4ge1xuICAgIHJldHVybiBuZXcgQVhQQXBwbGljYXRpb25EZWZhdWx0TG9hZGVyKCk7XG4gIH0sXG59KTtcblxuY2xhc3MgQVhQQXBwbGljYXRpb25EZWZhdWx0TG9hZGVyIGltcGxlbWVudHMgQVhQQXBwbGljYXRpb25Mb2FkZXIge1xuICBnZXRMaXN0KGNvbnRleHQ6IEFYUFNlc3Npb25Db250ZXh0KTogT2JzZXJ2YWJsZTxBWFBBcHBsaWNhdGlvbltdPiB7XG4gICAgcmV0dXJuIG9mKFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgbmFtZTogJ2RlZmF1bHQtYXBwJyxcbiAgICAgICAgdGl0bGU6ICdEZWZhdWx0IEFwcGxpY2F0aW9uJyxcbiAgICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgICAgZWRpdGlvbk5hbWU6ICdTdGFuZGFyZCcsXG4gICAgICAgIGZlYXR1cmVzOiBbXSxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH1cbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\nimport { of } from 'rxjs';\nexport const AXP_TENANT_LOADER = new InjectionToken('AXP_TENANT_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPTenantDefaultLoader();\n },\n});\nclass AXPTenantDefaultLoader {\n getList(context) {\n return of([\n {\n id: '1',\n name: 'default-tenant',\n title: 'Default Tenant',\n },\n ]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LmxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXV0aC9zcmMvbGliL3RlbmFudC90ZW5hbnQubG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVF0QyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsbUJBQW1CLEVBQUU7SUFDeEYsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE9BQU8sSUFBSSxzQkFBc0IsRUFBRSxDQUFDO0lBQ3RDLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLHNCQUFzQjtJQUUxQixPQUFPLENBQUMsT0FBMEI7UUFDaEMsT0FBTyxFQUFFLENBQUM7WUFDUjtnQkFDRSxFQUFFLEVBQUUsR0FBRztnQkFDUCxJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixLQUFLLEVBQUUsZ0JBQWdCO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBUZW5hbnQgfSBmcm9tICcuL3RlbmFudC50eXBlcyc7XG5pbXBvcnQgeyBBWFBTZXNzaW9uQ29udGV4dCB9IGZyb20gJy4uL3Nlc3Npb24udHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFRlbmFudExvYWRlciB7XG4gIGdldExpc3QoY29udGV4dDogQVhQU2Vzc2lvbkNvbnRleHQpOiBPYnNlcnZhYmxlPEFYUFRlbmFudFtdPjtcbn1cblxuZXhwb3J0IGNvbnN0IEFYUF9URU5BTlRfTE9BREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUFRlbmFudExvYWRlcj4oJ0FYUF9URU5BTlRfTE9BREVSJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHtcbiAgICByZXR1cm4gbmV3IEFYUFRlbmFudERlZmF1bHRMb2FkZXIoKTtcbiAgfSxcbn0pO1xuXG5jbGFzcyBBWFBUZW5hbnREZWZhdWx0TG9hZGVyIGltcGxlbWVudHMgQVhQVGVuYW50TG9hZGVyIHtcblxuICBnZXRMaXN0KGNvbnRleHQ6IEFYUFNlc3Npb25Db250ZXh0KTogT2JzZXJ2YWJsZTxBWFBUZW5hbnRbXT4ge1xuICAgIHJldHVybiBvZihbXG4gICAgICB7XG4gICAgICAgIGlkOiAnMScsXG4gICAgICAgIG5hbWU6ICdkZWZhdWx0LXRlbmFudCcsXG4gICAgICAgIHRpdGxlOiAnRGVmYXVsdCBUZW5hbnQnLFxuICAgICAgfSxcbiAgICBdKTtcbiAgfVxufVxuIl19","import { Injectable, Injector } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class AXPAuthStrategyRegistryService {\n constructor(injector) {\n this.strategies = new Map();\n this.injector = injector;\n }\n register(...plugins) {\n plugins.forEach(t => {\n const childInjector = Injector.create({ providers: [{ provide: t, useClass: t, deps: [] }], parent: this.injector });\n const strategy = childInjector.get(t);\n if (strategy) {\n this.strategies.set(strategy.name, strategy);\n }\n });\n }\n get(strategyKey) {\n return this.strategies.get(strategyKey);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPAuthStrategyRegistryService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPAuthStrategyRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPAuthStrategyRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], ctorParameters: () => [{ type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1yZWdpc3RyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9hdXRoL3NyYy9saWIvYXV0aC1yZWdpc3RyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU1yRCxNQUFNLE9BQU8sOEJBQThCO0lBS3pDLFlBQVksUUFBa0I7UUFKdEIsZUFBVSxHQUFHLElBQUksR0FBRyxFQUEyQixDQUFDO1FBS3RELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBRyxPQUFzQztRQUNoRCxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDckgsTUFBTSxRQUFRLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDL0MsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEdBQUcsQ0FBQyxXQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7OEdBckJVLDhCQUE4QjtrSEFBOUIsOEJBQThCLGNBRjdCLE1BQU07OzJGQUVQLDhCQUE4QjtrQkFIMUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBWFBBdXRoU3RyYXRlZ3kgfSBmcm9tIFwiLi9hdXRoLnN0cmF0ZWd5XCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFYUEF1dGhTdHJhdGVneVJlZ2lzdHJ5U2VydmljZSB7XG4gIHByaXZhdGUgc3RyYXRlZ2llcyA9IG5ldyBNYXA8c3RyaW5nLCBBWFBBdXRoU3RyYXRlZ3k+KCk7XG5cbiAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3I7XG5cbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy5pbmplY3RvciA9IGluamVjdG9yO1xuICB9XG5cbiAgcmVnaXN0ZXIoLi4ucGx1Z2luczogKG5ldyAoKSA9PiBBWFBBdXRoU3RyYXRlZ3kpW10pIHtcbiAgICBwbHVnaW5zLmZvckVhY2godCA9PiB7XG4gICAgICBjb25zdCBjaGlsZEluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHsgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiB0LCB1c2VDbGFzczogdCwgZGVwczogW10gfV0sIHBhcmVudDogdGhpcy5pbmplY3RvciB9KTtcbiAgICAgIGNvbnN0IHN0cmF0ZWd5ID0gY2hpbGRJbmplY3Rvci5nZXQodCk7XG4gICAgICBpZiAoc3RyYXRlZ3kpIHtcbiAgICAgICAgdGhpcy5zdHJhdGVnaWVzLnNldChzdHJhdGVneS5uYW1lLCBzdHJhdGVneSk7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGdldChzdHJhdGVneUtleTogc3RyaW5nKTogQVhQQXV0aFN0cmF0ZWd5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zdHJhdGVnaWVzLmdldChzdHJhdGVneUtleSk7XG4gIH1cbn0iXX0=","import { InjectionToken } from '@angular/core';\nimport { of } from 'rxjs';\nexport const AXP_FEATURE_LOADER = new InjectionToken('AXP_FEATURE_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPFeatureDefaultLoader();\n },\n});\nclass AXPFeatureDefaultLoader {\n getList(context) {\n return of([]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2F1dGgvc3JjL2xpYi9mZWF0dXJlL2ZlYXR1cmUubG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVF0QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsb0JBQW9CLEVBQUU7SUFDM0YsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE9BQU8sSUFBSSx1QkFBdUIsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLHVCQUF1QjtJQUMzQixPQUFPLENBQUMsT0FBMEI7UUFDaEMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBGZWF0dXJlIH0gZnJvbSAnLi9mZWF0dXJlLnR5cGVzJztcbmltcG9ydCB7IEFYUFNlc3Npb25Db250ZXh0IH0gZnJvbSAnLi4vc2Vzc2lvbi50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRmVhdHVyZUxvYWRlciB7XG4gIGdldExpc3QoY29udGV4dDogQVhQU2Vzc2lvbkNvbnRleHQpOiBPYnNlcnZhYmxlPEFYUEZlYXR1cmVbXT47XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfRkVBVFVSRV9MT0FERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQRmVhdHVyZUxvYWRlcj4oJ0FYUF9GRUFUVVJFX0xPQURFUicsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBBWFBGZWF0dXJlRGVmYXVsdExvYWRlcigpO1xuICB9LFxufSk7XG5cbmNsYXNzIEFYUEZlYXR1cmVEZWZhdWx0TG9hZGVyIGltcGxlbWVudHMgQVhQRmVhdHVyZUxvYWRlciB7XG4gIGdldExpc3QoY29udGV4dDogQVhQU2Vzc2lvbkNvbnRleHQpOiBPYnNlcnZhYmxlPEFYUEZlYXR1cmVbXT4ge1xuICAgIHJldHVybiBvZihbXSk7XG4gIH1cbn1cbiJdfQ==","import { Directive, Input, TemplateRef, ViewContainerRef, inject, signal } from '@angular/core';\nimport { AXPSessionService } from '../session.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPFeatureDirective {\n constructor(templateRef, viewContainer) {\n this.templateRef = templateRef;\n this.viewContainer = viewContainer;\n this.hasView = signal(false);\n this.sessionService = inject(AXPSessionService);\n }\n set feature(featureKeys) {\n const keys = !featureKeys ? [] : (Array.isArray(featureKeys) ? featureKeys : [featureKeys]);\n if (keys.length == 0) {\n // If featureKey is null or empty, decide the default behavior here\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n return;\n }\n this.subscription = this.sessionService.features$\n //.pipe(first())\n .subscribe(() => {\n if (this.sessionService.isFeatureEnabled(...keys)) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n }\n }\n else {\n this.viewContainer.clear();\n this.hasView.set(false);\n }\n });\n }\n set featureElse(elseTemplateRef) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(elseTemplateRef);\n }\n }\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPFeatureDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.4\", type: AXPFeatureDirective, isStandalone: false, selector: \"[feature]\", inputs: { feature: \"feature\", featureElse: \"featureElse\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPFeatureDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[feature]',\n standalone: false\n }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { feature: [{\n type: Input\n }], featureElse: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2F1dGgvc3JjL2xpYi9mZWF0dXJlL2ZlYXR1cmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQU12RCxNQUFNLE9BQU8sbUJBQW1CO0lBSzlCLFlBQ1UsV0FBNkIsRUFDN0IsYUFBK0I7UUFEL0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQU5qQyxZQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFLL0MsQ0FBQztJQUVMLElBQ1csT0FBTyxDQUFDLFdBQXFDO1FBQ3RELE1BQU0sSUFBSSxHQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDdEcsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JCLG1FQUFtRTtZQUNuRSxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTO1lBQy9DLGdCQUFnQjthQUNmLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDekIsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFDVyxXQUFXLENBQUMsZUFBaUM7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekQsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzhHQTNDVSxtQkFBbUI7a0dBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLEtBQUs7aUJBQ3BCOytHQVlZLE9BQU87c0JBRGpCLEtBQUs7Z0JBeUJLLFdBQVc7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZmlyc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2Vzc2lvbi5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmVhdHVyZV0nLFxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEFYUEZlYXR1cmVEaXJlY3RpdmUge1xuICBwcml2YXRlIGhhc1ZpZXcgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZSA9IGluamVjdChBWFBTZXNzaW9uU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7IH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZlYXR1cmUoZmVhdHVyZUtleXM6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCkge1xuICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gIWZlYXR1cmVLZXlzID8gW10gOiAoQXJyYXkuaXNBcnJheShmZWF0dXJlS2V5cykgPyBmZWF0dXJlS2V5cyA6IFtmZWF0dXJlS2V5c10pO1xuICAgIGlmIChrZXlzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAvLyBJZiBmZWF0dXJlS2V5IGlzIG51bGwgb3IgZW1wdHksIGRlY2lkZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBoZXJlXG4gICAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xuICAgICAgdGhpcy5oYXNWaWV3LnNldCh0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmZlYXR1cmVzJFxuICAgICAgLy8ucGlwZShmaXJzdCgpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnNlc3Npb25TZXJ2aWNlLmlzRmVhdHVyZUVuYWJsZWQoLi4ua2V5cykpIHtcbiAgICAgICAgICBpZiAoIXRoaXMuaGFzVmlldygpKSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xuICAgICAgICAgICAgdGhpcy5oYXNWaWV3LnNldCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XG4gICAgICAgICAgdGhpcy5oYXNWaWV3LnNldChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmZWF0dXJlRWxzZShlbHNlVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICBpZiAoIXRoaXMuaGFzVmlldygpKSB7XG4gICAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KGVsc2VUZW1wbGF0ZVJlZik7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiJdfQ==","export class AXPUnauthorizedError extends Error {\n constructor(message, data) {\n super(message);\n this.data = data;\n this.name = 'AXPUnauthorizedError';\n }\n}\nexport class AXPUnauthenticatedError extends Error {\n constructor(message, data) {\n super(message);\n this.data = data;\n this.name = 'AXPUnauthenticatedError';\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9hdXRoL3NyYy9saWIvZXJyb3JzLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxLQUFLO0lBQzNDLFlBQVksT0FBZ0IsRUFBUyxJQUErQjtRQUNoRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFEa0IsU0FBSSxHQUFKLElBQUksQ0FBMkI7UUFFaEUsSUFBSSxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQztJQUN2QyxDQUFDO0NBQ0o7QUFHRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsS0FBSztJQUM5QyxZQUFZLE9BQWdCLEVBQVMsSUFBK0I7UUFDaEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRGtCLFNBQUksR0FBSixJQUFJLENBQTJCO1FBRWhFLElBQUksQ0FBQyxJQUFJLEdBQUcseUJBQXlCLENBQUM7SUFDMUMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEFYUFVuYXV0aG9yaXplZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U/OiBzdHJpbmcsIHB1YmxpYyBkYXRhPzogeyByZWRpcmVjdFVybD86IHN0cmluZyB9KSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSAnQVhQVW5hdXRob3JpemVkRXJyb3InO1xuICAgIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgQVhQVW5hdXRoZW50aWNhdGVkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IobWVzc2FnZT86IHN0cmluZywgcHVibGljIGRhdGE/OiB7IHJlZGlyZWN0VXJsPzogc3RyaW5nIH0pIHtcbiAgICAgICAgc3VwZXIobWVzc2FnZSk7XG4gICAgICAgIHRoaXMubmFtZSA9ICdBWFBVbmF1dGhlbnRpY2F0ZWRFcnJvcic7XG4gICAgfVxufSJdfQ==","import { inject } from \"@angular/core\";\nimport { AXPSessionService } from \"../session.service\";\nimport { map } from \"rxjs\";\nimport { AXPUnauthorizedError } from \"../errors.types\";\nexport const AXPFeatureGuard = (route, state) => {\n const sessionService = inject(AXPSessionService);\n const requiredFeatures = route.data['requiredFeature'];\n return sessionService.features$.pipe(map(() => {\n const keys = !requiredFeatures ? [] : (Array.isArray(requiredFeatures) ? requiredFeatures : [requiredFeatures]);\n const hasFeature = keys.length == 0 || sessionService.isFeatureEnabled(...keys);\n if (!hasFeature) {\n throw new AXPUnauthorizedError(`Access Denied. You do not have access to this feature. Required feature(s): ${keys.join(', ')}. Please contact support if you need access.`, {\n redirectUrl: state.url\n });\n }\n return true;\n }));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXV0aC9zcmMvbGliL2ZlYXR1cmUvZmVhdHVyZS5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBcUIsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR3ZELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FDMUIsQ0FBQyxLQUE2QixFQUFFLEtBQTBCLEVBQWlDLEVBQUU7SUFDM0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDakQsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUErQixDQUFDO0lBRXJGLE9BQU8sY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ2xDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7UUFDUCxNQUFNLElBQUksR0FBYSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDMUgsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxvQkFBb0IsQ0FDNUIsK0VBQStFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDhDQUE4QyxFQUM1STtnQkFDRSxXQUFXLEVBQUUsS0FBSyxDQUFDLEdBQUc7YUFDdkIsQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlRm4sIFJvdXRlclN0YXRlU25hcHNob3QsIFVybFRyZWUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2Vzc2lvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmaXJzdCwgbWFwIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEFYUFVuYXV0aG9yaXplZEVycm9yIH0gZnJvbSBcIi4uL2Vycm9ycy50eXBlc1wiO1xuXG5cbmV4cG9ydCBjb25zdCBBWFBGZWF0dXJlR3VhcmQ6IENhbkFjdGl2YXRlRm4gPVxuICAocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4gPT4ge1xuICAgIGNvbnN0IHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgICBjb25zdCByZXF1aXJlZEZlYXR1cmVzID0gcm91dGUuZGF0YVsncmVxdWlyZWRGZWF0dXJlJ10gYXMgKHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCk7XG5cbiAgICByZXR1cm4gc2Vzc2lvblNlcnZpY2UuZmVhdHVyZXMkLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9ICFyZXF1aXJlZEZlYXR1cmVzID8gW10gOiAoQXJyYXkuaXNBcnJheShyZXF1aXJlZEZlYXR1cmVzKSA/IHJlcXVpcmVkRmVhdHVyZXMgOiBbcmVxdWlyZWRGZWF0dXJlc10pO1xuICAgICAgICBjb25zdCBoYXNGZWF0dXJlID0ga2V5cy5sZW5ndGggPT0gMCB8fCBzZXNzaW9uU2VydmljZS5pc0ZlYXR1cmVFbmFibGVkKC4uLmtleXMpO1xuICAgICAgICBpZiAoIWhhc0ZlYXR1cmUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgQVhQVW5hdXRob3JpemVkRXJyb3IoXG4gICAgICAgICAgICBgQWNjZXNzIERlbmllZC4gWW91IGRvIG5vdCBoYXZlIGFjY2VzcyB0byB0aGlzIGZlYXR1cmUuIFJlcXVpcmVkIGZlYXR1cmUocyk6ICR7a2V5cy5qb2luKCcsICcpfS4gUGxlYXNlIGNvbnRhY3Qgc3VwcG9ydCBpZiB5b3UgbmVlZCBhY2Nlc3MuYCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcmVkaXJlY3RVcmw6IHN0YXRlLnVybFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KVxuICAgICk7XG4gIH07XG4iXX0=","import { InjectionToken } from \"@angular/core\";\nimport { of } from \"rxjs\";\nexport const AXP_PERMISSION_LOADER = new InjectionToken('AXP_PERMISSION_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXPPermissionDefaultLoader();\n }\n});\nclass AXPPermissionDefaultLoader {\n getList(context) {\n return of([]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2F1dGgvc3JjL2xpYi9wZXJtaXNzaW9uL3Blcm1pc3Npb24ubG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVF0QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsdUJBQXVCLEVBQUU7SUFDbEcsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNWLE9BQU8sSUFBSSwwQkFBMEIsRUFBRSxDQUFDO0lBQzVDLENBQUM7Q0FDSixDQUFDLENBQUM7QUFHSCxNQUFNLDBCQUEwQjtJQUM1QixPQUFPLENBQUMsT0FBMEI7UUFDOUIsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDakIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgQVhQUGVybWlzc2lvbiB9IGZyb20gXCIuL3Blcm1pc3Npb24udHlwZXNcIjtcbmltcG9ydCB7IEFYUFNlc3Npb25Db250ZXh0IH0gZnJvbSBcIi4uL3Nlc3Npb24udHlwZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBWFBQZXJtaXNzaW9uTG9hZGVyIHtcbiAgICBnZXRMaXN0KGNvbnRleHQ6IEFYUFNlc3Npb25Db250ZXh0KTogT2JzZXJ2YWJsZTxBWFBQZXJtaXNzaW9uW10+O1xufVxuXG5leHBvcnQgY29uc3QgQVhQX1BFUk1JU1NJT05fTE9BREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUFBlcm1pc3Npb25Mb2FkZXI+KCdBWFBfUEVSTUlTU0lPTl9MT0FERVInLCB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBQZXJtaXNzaW9uRGVmYXVsdExvYWRlcigpO1xuICAgIH1cbn0pO1xuXG5cbmNsYXNzIEFYUFBlcm1pc3Npb25EZWZhdWx0TG9hZGVyIGltcGxlbWVudHMgQVhQUGVybWlzc2lvbkxvYWRlciB7XG4gICAgZ2V0TGlzdChjb250ZXh0OiBBWFBTZXNzaW9uQ29udGV4dCk6IE9ic2VydmFibGU8QVhQUGVybWlzc2lvbltdPiB7XG4gICAgICAgIHJldHVybiBvZihbXSlcbiAgICB9XG59Il19","export class AXPSessionContext {\n get user() {\n return this._user;\n }\n get tenant() {\n return this._tenant;\n }\n get application() {\n return this._application;\n }\n constructor(context) {\n this._user = null;\n this._tenant = null;\n this._application = null;\n this._user = context.user;\n this._tenant = context.tenant;\n this._application = context.application;\n }\n}\nexport var AXPSessionStatus;\n(function (AXPSessionStatus) {\n AXPSessionStatus[\"Authenticated\"] = \"authenticated\";\n AXPSessionStatus[\"Unauthenticated\"] = \"unauthenticated\";\n AXPSessionStatus[\"Unauthorized\"] = \"unauthorized\";\n AXPSessionStatus[\"Authorized\"] = \"authorized\";\n AXPSessionStatus[\"Expired\"] = \"expired\";\n AXPSessionStatus[\"SignedOut\"] = \"signedOut\";\n})(AXPSessionStatus || (AXPSessionStatus = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXV0aC9zcmMvbGliL3Nlc3Npb24udHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLGlCQUFpQjtJQUcxQixJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUdELElBQVcsTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBR0QsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsWUFBWSxPQUlYO1FBbkJPLFVBQUssR0FBbUIsSUFBSSxDQUFDO1FBSzdCLFlBQU8sR0FBcUIsSUFBSSxDQUFDO1FBS2pDLGlCQUFZLEdBQTBCLElBQUksQ0FBQztRQVUvQyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUM1QyxDQUFDO0NBQ0o7QUFHRCxNQUFNLENBQU4sSUFBWSxnQkFPWDtBQVBELFdBQVksZ0JBQWdCO0lBQ3hCLG1EQUErQixDQUFBO0lBQy9CLHVEQUFtQyxDQUFBO0lBQ25DLGlEQUE2QixDQUFBO0lBQzdCLDZDQUF5QixDQUFBO0lBQ3pCLHVDQUFtQixDQUFBO0lBQ25CLDJDQUF1QixDQUFBO0FBQzNCLENBQUMsRUFQVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBTzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQQXBwbGljYXRpb24gfSBmcm9tIFwiLi9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbi50eXBlc1wiO1xuaW1wb3J0IHsgQVhQVGVuYW50IH0gZnJvbSBcIi4vdGVuYW50L3RlbmFudC50eXBlc1wiO1xuaW1wb3J0IHsgQVhQVXNlciB9IGZyb20gXCIuL3VzZXIvdXNlci50eXBlc1wiO1xuXG5leHBvcnQgY2xhc3MgQVhQU2Vzc2lvbkNvbnRleHQge1xuXG4gICAgcHJpdmF0ZSBfdXNlcjogQVhQVXNlciB8IG51bGwgPSBudWxsO1xuICAgIHB1YmxpYyBnZXQgdXNlcigpOiBBWFBVc2VyIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl91c2VyO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RlbmFudDogQVhQVGVuYW50IHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGdldCB0ZW5hbnQoKTogQVhQVGVuYW50IHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl90ZW5hbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfYXBwbGljYXRpb246IEFYUEFwcGxpY2F0aW9uIHwgbnVsbCA9IG51bGw7XG4gICAgcHVibGljIGdldCBhcHBsaWNhdGlvbigpOiBBWFBBcHBsaWNhdGlvbiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBwbGljYXRpb247XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoY29udGV4dDoge1xuICAgICAgICB1c2VyOiBBWFBVc2VyIHwgbnVsbCxcbiAgICAgICAgdGVuYW50OiBBWFBUZW5hbnQgfCBudWxsLFxuICAgICAgICBhcHBsaWNhdGlvbjogQVhQQXBwbGljYXRpb24gfCBudWxsLFxuICAgIH0pIHtcbiAgICAgICAgdGhpcy5fdXNlciA9IGNvbnRleHQudXNlcjtcbiAgICAgICAgdGhpcy5fdGVuYW50ID0gY29udGV4dC50ZW5hbnQ7XG4gICAgICAgIHRoaXMuX2FwcGxpY2F0aW9uID0gY29udGV4dC5hcHBsaWNhdGlvbjtcbiAgICB9XG59XG5cblxuZXhwb3J0IGVudW0gQVhQU2Vzc2lvblN0YXR1cyB7XG4gICAgQXV0aGVudGljYXRlZCA9IFwiYXV0aGVudGljYXRlZFwiLFxuICAgIFVuYXV0aGVudGljYXRlZCA9IFwidW5hdXRoZW50aWNhdGVkXCIsXG4gICAgVW5hdXRob3JpemVkID0gXCJ1bmF1dGhvcml6ZWRcIixcbiAgICBBdXRob3JpemVkID0gXCJhdXRob3JpemVkXCIsXG4gICAgRXhwaXJlZCA9IFwiZXhwaXJlZFwiLFxuICAgIFNpZ25lZE91dCA9IFwic2lnbmVkT3V0XCJcbn0iXX0=","import { AXPBroadcastEventService } from '@acorex/platform/core';\nimport { Injectable, inject } from '@angular/core';\nimport { isEmpty, merge } from 'lodash-es';\nimport { BehaviorSubject, defaultIfEmpty, firstValueFrom, map, shareReplay } from 'rxjs';\nimport { AXP_APPLICATION_LOADER } from './application/application.loader';\nimport { AXPAuthStrategyRegistryService } from './auth-registry.service';\nimport { AXP_FEATURE_LOADER } from './feature';\nimport { AXP_PERMISSION_LOADER } from './permission/permission.loader';\nimport { AXPSessionContext, AXPSessionStatus } from './session.types';\nimport { AXP_TENANT_LOADER } from './tenant/tenant.loader';\nimport * as i0 from \"@angular/core\";\nexport class AXPSessionService {\n constructor() {\n this.eventService = inject(AXPBroadcastEventService);\n this.authStrategyRegistry = inject(AXPAuthStrategyRegistryService);\n this.permissionLoader = inject(AXP_PERMISSION_LOADER);\n this.featureLoader = inject(AXP_FEATURE_LOADER);\n this.tenantLoader = inject(AXP_TENANT_LOADER);\n this.applicationLoader = inject(AXP_APPLICATION_LOADER);\n this.status = new BehaviorSubject(AXPSessionStatus.Unauthenticated);\n this.status$ = this.status.asObservable().pipe(shareReplay(1));\n this.currentUserSubject = new BehaviorSubject(null);\n this.user$ = this.currentUserSubject.asObservable().pipe(shareReplay(1));\n this.currentTenantSubject = new BehaviorSubject(null);\n this.tenant$ = this.currentTenantSubject.asObservable().pipe(shareReplay(1));\n this.currentApplicationSubject = new BehaviorSubject(null);\n this.application$ = this.currentApplicationSubject.asObservable().pipe(shareReplay(1));\n this.permissionsSubject = new BehaviorSubject([]);\n this.permissions$ = this.permissionsSubject.asObservable().pipe(shareReplay(1), defaultIfEmpty([]));\n this.featuresSubject = new BehaviorSubject([]);\n this.features$ = this.featuresSubject.asObservable().pipe(shareReplay(1), defaultIfEmpty([]));\n this.isAuthenticated$ = this.status$.pipe(map((status) => status === AXPSessionStatus.Authenticated || status === AXPSessionStatus.Authorized), shareReplay(1));\n this.isAuthorized$ = this.status$.pipe(map((status) => status === AXPSessionStatus.Authorized), shareReplay(1));\n }\n static { this.SESSION_KEY = 'AXP_SESSION'; }\n get user() {\n const session = this.getSessionData();\n if (session?.user && !this.currentUserSubject.value) {\n this.currentUserSubject.next(session.user);\n }\n return this.currentUserSubject.value;\n }\n get tenant() {\n const session = this.getSessionData();\n if (session?.tenant && !this.currentTenantSubject.value) {\n this.currentTenantSubject.next(session.tenant);\n }\n return this.currentTenantSubject.value;\n }\n get tenants$() {\n return this.tenantLoader.getList(this.getContext());\n }\n get application() {\n const session = this.getSessionData();\n if (session?.application && !this.currentApplicationSubject.value) {\n this.currentApplicationSubject.next(session.application);\n }\n return this.currentApplicationSubject.value;\n }\n get applications$() {\n return this.applicationLoader.getList(this.getContext());\n }\n get permissions() {\n return this.permissionsSubject.value ?? [];\n }\n get features() {\n return this.featuresSubject.value ?? [];\n }\n async restoreSession() {\n const sessionData = this.getSessionData();\n if (sessionData) {\n if (sessionData.user) {\n this.currentUserSubject.next(sessionData.user);\n this.status.next(AXPSessionStatus.Authenticated);\n }\n // if (sessionData.tenant) {\n // this.setTenant(sessionData.tenant);\n // }\n // if (sessionData.application) {\n // this.setApplication(sessionData.application);\n // }\n await this.loadPermissions();\n await this.loadFeatures();\n await this.signInComplete();\n }\n else {\n this.status.next(AXPSessionStatus.Unauthorized);\n }\n }\n async signin(credentials) {\n // \n this.clearSession();\n //\n const strategy = this.authStrategyRegistry.get(credentials.strategy);\n if (!strategy) {\n throw new Error(`Authentication strategy '${credentials.strategy}' is not supported`);\n }\n const result = await strategy.signin(credentials);\n if (result.succeed) {\n this.currentUserSubject.next(result.data.user);\n this.setSession({\n accessToken: result.data.accessToken,\n refreshToken: result.data.refreshToken,\n strategy: credentials.strategy,\n user: result.data.user,\n application: result.data?.application,\n tenant: result.data?.tenant,\n expiresIn: result.data?.expiresIn,\n idToken: result.data?.idToken ?? null,\n });\n this.status.next(AXPSessionStatus.Authenticated);\n if (this.application && this.tenant)\n await this.signInComplete();\n }\n else {\n this.status.next(AXPSessionStatus.Unauthenticated);\n throw new Error(`Invalid Username or Password`);\n }\n }\n async signout() {\n const sessionData = this.getSessionData();\n if (sessionData?.strategy) {\n const strategy = this.authStrategyRegistry.get(sessionData?.strategy);\n if (strategy) {\n await strategy.signout();\n }\n }\n //\n const userId = this.user?.id;\n this.clearSession();\n this.status.next(AXPSessionStatus.SignedOut);\n this.eventService.publish(AXPSessionStatus.SignedOut, { id: userId });\n }\n async refreshToken() {\n return new Promise(async (resolve, reject) => {\n const sessionData = this.getSessionData();\n if (!sessionData || !sessionData?.refreshToken) {\n return;\n }\n const strategy = this.authStrategyRegistry.get(sessionData.strategy);\n if (!strategy) {\n reject();\n throw new Error(`Authentication strategy '${sessionData.strategy}' is not found`);\n }\n const result = await strategy.refreshToken(this.getContext());\n if (result.succeed) {\n this.setSession(result.data);\n resolve(result.data?.accessToken);\n }\n else {\n this.clearSession();\n this.status.next(AXPSessionStatus.Expired);\n }\n });\n }\n async setTenant(tenant) {\n this.currentTenantSubject.next(tenant);\n if (tenant) {\n this.updateSession({ tenant: tenant });\n await this.refreshToken();\n }\n }\n async setApplication(application) {\n this.currentApplicationSubject.next(application);\n if (application) {\n this.updateSession({ application: application });\n await this.refreshToken();\n await this.loadPermissions();\n await this.loadFeatures();\n }\n }\n async loadPermissions() {\n try {\n const permissions = await firstValueFrom(this.permissionLoader.getList(this.getContext()));\n this.permissionsSubject.next(permissions ?? []);\n }\n catch (error) {\n console.error('Error loading permissions:', error);\n this.permissionsSubject.next([]);\n }\n }\n async loadFeatures() {\n try {\n const features = await firstValueFrom(this.featureLoader.getList(this.getContext()));\n this.featuresSubject.next(features ?? []);\n }\n catch (error) {\n console.error('Error loading features:', error);\n this.featuresSubject.next([]);\n }\n }\n async signInComplete() {\n this.status.next(AXPSessionStatus.Authorized);\n }\n setSession(tokens) {\n const sessionData = {\n accessToken: tokens.accessToken,\n refreshToken: tokens.refreshToken,\n strategy: tokens.strategy,\n user: this.user,\n application: tokens.application,\n tenant: tokens.tenant,\n expiresIn: tokens.expiresIn,\n idToken: tokens.idToken,\n };\n this.updateSession(sessionData);\n }\n updateSession(update) {\n const currentSession = this.getSessionData() ?? {};\n const updatedSession = merge({}, currentSession, update);\n localStorage.setItem(AXPSessionService.SESSION_KEY, JSON.stringify(updatedSession));\n }\n getSessionData() {\n const sessionDataString = localStorage.getItem(AXPSessionService.SESSION_KEY);\n return sessionDataString ? JSON.parse(sessionDataString) : null;\n }\n clearSession() {\n //\n this.currentUserSubject.next(null);\n //\n this.setTenant(null);\n //\n this.setApplication(null);\n //\n this.permissionsSubject.next([]);\n //\n this.featuresSubject.next([]);\n //\n localStorage.removeItem(AXPSessionService.SESSION_KEY);\n }\n authorize(...keys) {\n return keys.every((k) => isEmpty(k) || this.permissions.indexOf(k) > -1);\n }\n isFeatureEnabled(...keys) {\n return keys.every((k) => isEmpty(k) || this.features.some((c) => c.name == k && c.value == true));\n }\n getToken() {\n const sessionData = this.getSessionData();\n return sessionData?.accessToken;\n }\n checkTokenValidation() {\n let sessionData = this.getSessionData();\n if (sessionData && sessionData?.accessToken && sessionData.expiresIn) {\n const expiresInDate = new Date(sessionData.expiresIn);\n if (expiresInDate > new Date()) {\n // Token is still valid\n return true;\n }\n }\n return false;\n }\n getContext() {\n return new AXPSessionContext({\n user: this.user,\n tenant: this.tenant,\n application: this.application,\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPSessionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPSessionService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPSessionService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9hdXRoL3NyYy9saWIvc2Vzc2lvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsY0FBYyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpFLE9BQU8sRUFBYyxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFPM0QsTUFBTSxPQUFPLGlCQUFpQjtJQUg5QjtRQUlVLGlCQUFZLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFaEQseUJBQW9CLEdBQUcsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFHckQscUJBQWdCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDakQsa0JBQWEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMzQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxp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VSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQQnJvYWRjYXN0RXZlbnRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNFbXB0eSwgbWVyZ2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBkZWZhdWx0SWZFbXB0eSwgZmlyc3RWYWx1ZUZyb20sIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUF9BUFBMSUNBVElPTl9MT0FERVIgfSBmcm9tICcuL2FwcGxpY2F0aW9uL2FwcGxpY2F0aW9uLmxvYWRlcic7XG5pbXBvcnQgeyBBWFBBcHBsaWNhdGlvbiB9IGZyb20gJy4vYXBwbGljYXRpb24vYXBwbGljYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQVhQQXV0aFN0cmF0ZWd5UmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQQmFzZUNyZWRlbnRpYWxzLCBBWFBTZXNzaW9uRGF0YSB9IGZyb20gJy4vYXV0aC5zdHJhdGVneSc7XG5pbXBvcnQgeyBBWFBGZWF0dXJlLCBBWFBfRkVBVFVSRV9MT0FERVIgfSBmcm9tICcuL2ZlYXR1cmUnO1xuaW1wb3J0IHsgQVhQX1BFUk1JU1NJT05fTE9BREVSIH0gZnJvbSAnLi9wZXJtaXNzaW9uL3Blcm1pc3Npb24ubG9hZGVyJztcbmltcG9ydCB7IEFYUFBlcm1pc3Npb24gfSBmcm9tICcuL3Blcm1pc3Npb24vcGVybWlzc2lvbi50eXBlcyc7XG5pbXBvcnQgeyBBWFBTZXNzaW9uQ29udGV4dCwgQVhQU2Vzc2lvblN0YXR1cyB9IGZyb20gJy4vc2Vzc2lvbi50eXBlcyc7XG5pbXBvcnQgeyBBWFBfVEVOQU5UX0xPQURFUiB9IGZyb20gJy4vdGVuYW50L3RlbmFudC5sb2FkZXInO1xuaW1wb3J0IHsgQVhQVGVuYW50IH0gZnJvbSAnLi90ZW5hbnQvdGVuYW50LnR5cGVzJztcbmltcG9ydCB7IEFYUFVzZXIgfSBmcm9tICcuL3VzZXIvdXNlci50eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBTZXNzaW9uU2VydmljZSB7XG4gIHByaXZhdGUgZXZlbnRTZXJ2aWNlID0gaW5qZWN0KEFYUEJyb2FkY2FzdEV2ZW50U2VydmljZSk7XG5cbiAgcHJpdmF0ZSBhdXRoU3RyYXRlZ3lSZWdpc3RyeSA9IGluamVjdChBWFBBdXRoU3RyYXRlZ3lSZWdpc3RyeVNlcnZpY2UpO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNFU1NJT05fS0VZID0gJ0FYUF9TRVNTSU9OJztcblxuICBwcml2YXRlIHJlYWRvbmx5IHBlcm1pc3Npb25Mb2FkZXIgPSBpbmplY3QoQVhQX1BFUk1JU1NJT05fTE9BREVSKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmZWF0dXJlTG9hZGVyID0gaW5qZWN0KEFYUF9GRUFUVVJFX0xPQURFUik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGVuYW50TG9hZGVyID0gaW5qZWN0KEFYUF9URU5BTlRfTE9BREVSKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhcHBsaWNhdGlvbkxvYWRlciA9IGluamVjdChBWFBfQVBQTElDQVRJT05fTE9BREVSKTtcblxuICBwcml2YXRlIHN0YXR1cyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QVhQU2Vzc2lvblN0YXR1cz4oQVhQU2Vzc2lvblN0YXR1cy5VbmF1dGhlbnRpY2F0ZWQpO1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzJCA9IHRoaXMuc3RhdHVzLmFzT2JzZXJ2YWJsZSgpLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHByaXZhdGUgY3VycmVudFVzZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBWFBVc2VyIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSB1c2VyJCA9IHRoaXMuY3VycmVudFVzZXJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoc2hhcmVSZXBsYXkoMSkpO1xuICBwdWJsaWMgZ2V0IHVzZXIoKTogQVhQVXNlciB8IG51bGwge1xuICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLmdldFNlc3Npb25EYXRhKCk7XG4gICAgaWYgKHNlc3Npb24/LnVzZXIgJiYgIXRoaXMuY3VycmVudFVzZXJTdWJqZWN0LnZhbHVlKSB7XG4gICAgICB0aGlzLmN1cnJlbnRVc2VyU3ViamVjdC5uZXh0KHNlc3Npb24udXNlcik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRVc2VyU3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgY3VycmVudFRlbmFudFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFYUFRlbmFudCB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgdGVuYW50JCA9IHRoaXMuY3VycmVudFRlbmFudFN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gIHB1YmxpYyBnZXQgdGVuYW50KCk6IEFYUFRlbmFudCB8IG51bGwge1xuICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLmdldFNlc3Npb25EYXRhKCk7XG4gICAgaWYgKHNlc3Npb24/LnRlbmFudCAmJiAhdGhpcy5jdXJyZW50VGVuYW50U3ViamVjdC52YWx1ZSkge1xuICAgICAgdGhpcy5jdXJyZW50VGVuYW50U3ViamVjdC5uZXh0KHNlc3Npb24udGVuYW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFRlbmFudFN1YmplY3QudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRlbmFudHMkKCk6IE9ic2VydmFibGU8QVhQVGVuYW50W10+IHtcbiAgICByZXR1cm4gdGhpcy50ZW5hbnRMb2FkZXIuZ2V0TGlzdCh0aGlzLmdldENvbnRleHQoKSk7XG4gIH1cblxuICBwcml2YXRlIGN1cnJlbnRBcHBsaWNhdGlvblN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFYUEFwcGxpY2F0aW9uIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBhcHBsaWNhdGlvbiQgPSB0aGlzLmN1cnJlbnRBcHBsaWNhdGlvblN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gIHB1YmxpYyBnZXQgYXBwbGljYXRpb24oKTogQVhQQXBwbGljYXRpb24gfCBudWxsIHtcbiAgICBjb25zdCBzZXNzaW9uID0gdGhpcy5nZXRTZXNzaW9uRGF0YSgpO1xuICAgIGlmIChzZXNzaW9uPy5hcHBsaWNhdGlvbiAmJiAhdGhpcy5jdXJyZW50QXBwbGljYXRpb25TdWJqZWN0LnZhbHVlKSB7XG4gICAgICB0aGlzLmN1cnJlbnRBcHBsaWNhdGlvblN1YmplY3QubmV4dChzZXNzaW9uLmFwcGxpY2F0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEFwcGxpY2F0aW9uU3ViamVjdC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXBwbGljYXRpb25zJCgpOiBPYnNlcnZhYmxlPEFYUEFwcGxpY2F0aW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5hcHBsaWNhdGlvbkxvYWRlci5nZXRMaXN0KHRoaXMuZ2V0Q29udGV4dCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgcGVybWlzc2lvbnNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBWFBQZXJtaXNzaW9uW10+KFtdKTtcbiAgcHVibGljIHJlYWRvbmx5IHBlcm1pc3Npb25zJCA9IHRoaXMucGVybWlzc2lvbnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoc2hhcmVSZXBsYXkoMSksIGRlZmF1bHRJZkVtcHR5KFtdKSk7XG4gIHB1YmxpYyBnZXQgcGVybWlzc2lvbnMoKTogQVhQUGVybWlzc2lvbltdIHtcbiAgICByZXR1cm4gdGhpcy5wZXJtaXNzaW9uc1N1YmplY3QudmFsdWUgPz8gW107XG4gIH1cblxuICBwcml2YXRlIGZlYXR1cmVzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QVhQRmVhdHVyZVtdPihbXSk7XG4gIHB1YmxpYyByZWFkb25seSBmZWF0dXJlcyQgPSB0aGlzLmZlYXR1cmVzU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKHNoYXJlUmVwbGF5KDEpLCBkZWZhdWx0SWZFbXB0eShbXSkpO1xuICBwdWJsaWMgZ2V0IGZlYXR1cmVzKCk6IEFYUEZlYXR1cmVbXSB7XG4gICAgcmV0dXJuIHRoaXMuZmVhdHVyZXNTdWJqZWN0LnZhbHVlID8/IFtdO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IGlzQXV0aGVudGljYXRlZCQgPSB0aGlzLnN0YXR1cyQucGlwZShcbiAgICBtYXAoKHN0YXR1cykgPT4gc3RhdHVzID09PSBBWFBTZXNzaW9uU3RhdHVzLkF1dGhlbnRpY2F0ZWQgfHwgc3RhdHVzID09PSBBWFBTZXNzaW9uU3RhdHVzLkF1dGhvcml6ZWQpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlzQXV0aG9yaXplZCQgPSB0aGlzLnN0YXR1cyQucGlwZShcbiAgICBtYXAoKHN0YXR1cykgPT4gc3RhdHVzID09PSBBWFBTZXNzaW9uU3RhdHVzLkF1dGhvcml6ZWQpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcHVibGljIGFzeW5jIHJlc3RvcmVTZXNzaW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNlc3Npb25EYXRhID0gdGhpcy5nZXRTZXNzaW9uRGF0YSgpO1xuICAgIGlmIChzZXNzaW9uRGF0YSkge1xuICAgICAgaWYgKHNlc3Npb25EYXRhLnVzZXIpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VXNlclN1YmplY3QubmV4dChzZXNzaW9uRGF0YS51c2VyKTtcbiAgICAgICAgdGhpcy5zdGF0dXMubmV4dChBWFBTZXNzaW9uU3RhdHVzLkF1dGhlbnRpY2F0ZWQpO1xuICAgICAgfVxuICAgICAgLy8gaWYgKHNlc3Npb25EYXRhLnRlbmFudCkge1xuICAgICAgLy8gICB0aGlzLnNldFRlbmFudChzZXNzaW9uRGF0YS50ZW5hbnQpO1xuICAgICAgLy8gfVxuICAgICAgLy8gaWYgKHNlc3Npb25EYXRhLmFwcGxpY2F0aW9uKSB7XG4gICAgICAvLyAgIHRoaXMuc2V0QXBwbGljYXRpb24oc2Vzc2lvbkRhdGEuYXBwbGljYXRpb24pO1xuICAgICAgLy8gfVxuICAgICAgYXdhaXQgdGhpcy5sb2FkUGVybWlzc2lvbnMoKTtcbiAgICAgIGF3YWl0IHRoaXMubG9hZEZlYXR1cmVzKCk7XG4gICAgICBhd2FpdCB0aGlzLnNpZ25JbkNvbXBsZXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhdHVzLm5leHQoQVhQU2Vzc2lvblN0YXR1cy5VbmF1dGhvcml6ZWQpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNpZ25pbihjcmVkZW50aWFsczogQVhQQmFzZUNyZWRlbnRpYWxzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gXG4gICAgdGhpcy5jbGVhclNlc3Npb24oKTtcbiAgICAvL1xuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5hdXRoU3RyYXRlZ3lSZWdpc3RyeS5nZXQoY3JlZGVudGlhbHMuc3RyYXRlZ3kpO1xuICAgIGlmICghc3RyYXRlZ3kpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQXV0aGVudGljYXRpb24gc3RyYXRlZ3kgJyR7Y3JlZGVudGlhbHMuc3RyYXRlZ3l9JyBpcyBub3Qgc3VwcG9ydGVkYCk7XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0cmF0ZWd5LnNpZ25pbihjcmVkZW50aWFscyk7XG4gICAgaWYgKHJlc3VsdC5zdWNjZWVkKSB7XG4gICAgICB0aGlzLmN1cnJlbnRVc2VyU3ViamVjdC5uZXh0KHJlc3VsdC5kYXRhIS51c2VyKTtcbiAgICAgIHRoaXMuc2V0U2Vzc2lvbih7XG4gICAgICAgIGFjY2Vzc1Rva2VuOiByZXN1bHQuZGF0YSEuYWNjZXNzVG9rZW4sXG4gICAgICAgIHJlZnJlc2hUb2tlbjogcmVzdWx0LmRhdGEhLnJlZnJlc2hUb2tlbixcbiAgICAgICAgc3RyYXRlZ3k6IGNyZWRlbnRpYWxzLnN0cmF0ZWd5LFxuICAgICAgICB1c2VyOiByZXN1bHQuZGF0YSEudXNlcixcbiAgICAgICAgYXBwbGljYXRpb246IHJlc3VsdC5kYXRhPy5hcHBsaWNhdGlvbixcbiAgICAgICAgdGVuYW50OiByZXN1bHQuZGF0YT8udGVuYW50LFxuICAgICAgICBleHBpcmVzSW46IHJlc3VsdC5kYXRhPy5leHBpcmVzSW4sXG4gICAgICAgIGlkVG9rZW46IHJlc3VsdC5kYXRhPy5pZFRva2VuID8/IG51bGwsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuc3RhdHVzLm5leHQoQVhQU2Vzc2lvblN0YXR1cy5BdXRoZW50aWNhdGVkKTtcbiAgICAgIGlmICh0aGlzLmFwcGxpY2F0aW9uICYmIHRoaXMudGVuYW50KSBhd2FpdCB0aGlzLnNpZ25JbkNvbXBsZXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhdHVzLm5leHQoQVhQU2Vzc2lvblN0YXR1cy5VbmF1dGhlbnRpY2F0ZWQpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIFVzZXJuYW1lIG9yIFBhc3N3b3JkYCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2lnbm91dCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzZXNzaW9uRGF0YSA9IHRoaXMuZ2V0U2Vzc2lvbkRhdGEoKTtcbiAgICBpZiAoc2Vzc2lvbkRhdGE/LnN0cmF0ZWd5KSB7XG4gICAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuYXV0aFN0cmF0ZWd5UmVnaXN0cnkuZ2V0KHNlc3Npb25EYXRhPy5zdHJhdGVneSk7XG4gICAgICBpZiAoc3RyYXRlZ3kpIHtcbiAgICAgICAgYXdhaXQgc3RyYXRlZ3kuc2lnbm91dCgpO1xuICAgICAgfVxuICAgIH1cbiAgICAvL1xuICAgIGNvbnN0IHVzZXJJZCA9IHRoaXMudXNlcj8uaWQ7XG4gICAgdGhpcy5jbGVhclNlc3Npb24oKTtcbiAgICB0aGlzLnN0YXR1cy5uZXh0KEFYUFNlc3Npb25TdGF0dXMuU2lnbmVkT3V0KTtcbiAgICB0aGlzLmV2ZW50U2VydmljZS5wdWJsaXNoKEFYUFNlc3Npb25TdGF0dXMuU2lnbmVkT3V0LCB7IGlkOiB1c2VySWQgfSk7XG4gIH1cblxuICBhc3luYyByZWZyZXNoVG9rZW4oKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3Qgc2Vzc2lvbkRhdGEgPSB0aGlzLmdldFNlc3Npb25EYXRhKCk7XG4gICAgICBpZiAoIXNlc3Npb25EYXRhIHx8ICFzZXNzaW9uRGF0YT8ucmVmcmVzaFRva2VuKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5hdXRoU3RyYXRlZ3lSZWdpc3RyeS5nZXQoc2Vzc2lvbkRhdGEuc3RyYXRlZ3kpO1xuICAgICAgaWYgKCFzdHJhdGVneSkge1xuICAgICAgICByZWplY3QoKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBdXRoZW50aWNhdGlvbiBzdHJhdGVneSAnJHtzZXNzaW9uRGF0YS5zdHJhdGVneX0nIGlzIG5vdCBmb3VuZGApO1xuICAgICAgfVxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc3RyYXRlZ3kucmVmcmVzaFRva2VuKHRoaXMuZ2V0Q29udGV4dCgpKTtcbiAgICAgIGlmIChyZXN1bHQuc3VjY2VlZCkge1xuICAgICAgICB0aGlzLnNldFNlc3Npb24ocmVzdWx0LmRhdGEgYXMgQVhQU2Vzc2lvbkRhdGEpO1xuICAgICAgICByZXNvbHZlKHJlc3VsdC5kYXRhPy5hY2Nlc3NUb2tlbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNsZWFyU2Vzc2lvbigpO1xuICAgICAgICB0aGlzLnN0YXR1cy5uZXh0KEFYUFNlc3Npb25TdGF0dXMuRXhwaXJlZCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzZXRUZW5hbnQodGVuYW50OiBBWFBUZW5hbnQgfCBudWxsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jdXJyZW50VGVuYW50U3ViamVjdC5uZXh0KHRlbmFudCk7XG4gICAgaWYgKHRlbmFudCkge1xuICAgICAgdGhpcy51cGRhdGVTZXNzaW9uKHsgdGVuYW50OiB0ZW5hbnQgfSk7XG4gICAgICBhd2FpdCB0aGlzLnJlZnJlc2hUb2tlbigpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNldEFwcGxpY2F0aW9uKGFwcGxpY2F0aW9uOiBBWFBBcHBsaWNhdGlvbiB8IG51bGwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmN1cnJlbnRBcHBsaWNhdGlvblN1YmplY3QubmV4dChhcHBsaWNhdGlvbik7XG4gICAgaWYgKGFwcGxpY2F0aW9uKSB7XG4gICAgICB0aGlzLnVwZGF0ZVNlc3Npb24oeyBhcHBsaWNhdGlvbjogYXBwbGljYXRpb24gfSk7XG4gICAgICBhd2FpdCB0aGlzLnJlZnJlc2hUb2tlbigpO1xuICAgICAgYXdhaXQgdGhpcy5sb2FkUGVybWlzc2lvbnMoKTtcbiAgICAgIGF3YWl0IHRoaXMubG9hZEZlYXR1cmVzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkUGVybWlzc2lvbnMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5wZXJtaXNzaW9uTG9hZGVyLmdldExpc3QodGhpcy5nZXRDb250ZXh0KCkpKTtcbiAgICAgIHRoaXMucGVybWlzc2lvbnNTdWJqZWN0Lm5leHQocGVybWlzc2lvbnMgPz8gW10pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIHBlcm1pc3Npb25zOicsIGVycm9yKTtcbiAgICAgIHRoaXMucGVybWlzc2lvbnNTdWJqZWN0Lm5leHQoW10pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZEZlYXR1cmVzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBmZWF0dXJlcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuZmVhdHVyZUxvYWRlci5nZXRMaXN0KHRoaXMuZ2V0Q29udGV4dCgpKSk7XG4gICAgICB0aGlzLmZlYXR1cmVzU3ViamVjdC5uZXh0KGZlYXR1cmVzID8/IFtdKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgbG9hZGluZyBmZWF0dXJlczonLCBlcnJvcik7XG4gICAgICB0aGlzLmZlYXR1cmVzU3ViamVjdC5uZXh0KFtdKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBzaWduSW5Db21wbGV0ZSgpIHtcbiAgICB0aGlzLnN0YXR1cy5uZXh0KEFYUFNlc3Npb25TdGF0dXMuQXV0aG9yaXplZCk7XG4gIH1cblxuICBwcml2YXRlIHNldFNlc3Npb24odG9rZW5zOiBQYXJ0aWFsPEFYUFNlc3Npb25EYXRhPik6IHZvaWQge1xuICAgIGNvbnN0IHNlc3Npb25EYXRhOiBQYXJ0aWFsPEFYUFNlc3Npb25EYXRhPiA9IHtcbiAgICAgIGFjY2Vzc1Rva2VuOiB0b2tlbnMuYWNjZXNzVG9rZW4sXG4gICAgICByZWZyZXNoVG9rZW46IHRva2Vucy5yZWZyZXNoVG9rZW4sXG4gICAgICBzdHJhdGVneTogdG9rZW5zLnN0cmF0ZWd5LFxuICAgICAgdXNlcjogdGhpcy51c2VyLFxuICAgICAgYXBwbGljYXRpb246IHRva2Vucy5hcHBsaWNhdGlvbixcbiAgICAgIHRlbmFudDogdG9rZW5zLnRlbmFudCxcbiAgICAgIGV4cGlyZXNJbjogdG9rZW5zLmV4cGlyZXNJbixcbiAgICAgIGlkVG9rZW46IHRva2Vucy5pZFRva2VuLFxuICAgIH07XG4gICAgdGhpcy51cGRhdGVTZXNzaW9uKHNlc3Npb25EYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2Vzc2lvbih1cGRhdGU6IFBhcnRpYWw8QVhQU2Vzc2lvbkRhdGE+KSB7XG4gICAgY29uc3QgY3VycmVudFNlc3Npb24gPSB0aGlzLmdldFNlc3Npb25EYXRhKCkgPz8ge307XG4gICAgY29uc3QgdXBkYXRlZFNlc3Npb24gPSBtZXJnZSh7fSwgY3VycmVudFNlc3Npb24sIHVwZGF0ZSk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oQVhQU2Vzc2lvblNlcnZpY2UuU0VTU0lPTl9LRVksIEpTT04uc3RyaW5naWZ5KHVwZGF0ZWRTZXNzaW9uKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2Vzc2lvbkRhdGEoKTogQVhQU2Vzc2lvbkRhdGEgfCBudWxsIHtcbiAgICBjb25zdCBzZXNzaW9uRGF0YVN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKEFYUFNlc3Npb25TZXJ2aWNlLlNFU1NJT05fS0VZKTtcbiAgICByZXR1cm4gc2Vzc2lvbkRhdGFTdHJpbmcgPyBKU09OLnBhcnNlKHNlc3Npb25EYXRhU3RyaW5nKSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyU2Vzc2lvbigpOiB2b2lkIHtcbiAgICAvL1xuICAgIHRoaXMuY3VycmVudFVzZXJTdWJqZWN0Lm5leHQobnVsbCk7XG4gICAgLy9cbiAgICB0aGlzLnNldFRlbmFudChudWxsKTtcbiAgICAvL1xuICAgIHRoaXMuc2V0QXBwbGljYXRpb24obnVsbCk7XG4gICAgLy9cbiAgICB0aGlzLnBlcm1pc3Npb25zU3ViamVjdC5uZXh0KFtdKTtcbiAgICAvL1xuICAgIHRoaXMuZmVhdHVyZXNTdWJqZWN0Lm5leHQoW10pO1xuICAgIC8vXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oQVhQU2Vzc2lvblNlcnZpY2UuU0VTU0lPTl9LRVkpO1xuICB9XG5cbiAgcHVibGljIGF1dGhvcml6ZSguLi5rZXlzOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBrZXlzLmV2ZXJ5KChrKSA9PiBpc0VtcHR5KGspIHx8IHRoaXMucGVybWlzc2lvbnMuaW5kZXhPZihrKSA+IC0xKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0ZlYXR1cmVFbmFibGVkKC4uLmtleXM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGtleXMuZXZlcnkoKGspID0+IGlzRW1wdHkoaykgfHwgdGhpcy5mZWF0dXJlcy5zb21lKChjKSA9PiBjLm5hbWUgPT0gayAmJiBjLnZhbHVlID09IHRydWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUb2tlbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHNlc3Npb25EYXRhID0gdGhpcy5nZXRTZXNzaW9uRGF0YSgpO1xuXG4gICAgcmV0dXJuIHNlc3Npb25EYXRhPy5hY2Nlc3NUb2tlbjtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tUb2tlblZhbGlkYXRpb24oKTogYm9vbGVhbiB7XG4gICAgbGV0IHNlc3Npb25EYXRhID0gdGhpcy5nZXRTZXNzaW9uRGF0YSgpO1xuXG4gICAgaWYgKHNlc3Npb25EYXRhICYmIHNlc3Npb25EYXRhPy5hY2Nlc3NUb2tlbiAmJiBzZXNzaW9uRGF0YS5leHBpcmVzSW4pIHtcbiAgICAgIGNvbnN0IGV4cGlyZXNJbkRhdGUgPSBuZXcgRGF0ZShzZXNzaW9uRGF0YS5leHBpcmVzSW4pO1xuICAgICAgaWYgKGV4cGlyZXNJbkRhdGUgPiBuZXcgRGF0ZSgpKSB7XG4gICAgICAgIC8vIFRva2VuIGlzIHN0aWxsIHZhbGlkXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldENvbnRleHQoKTogQVhQU2Vzc2lvbkNvbnRleHQge1xuICAgIHJldHVybiBuZXcgQVhQU2Vzc2lvbkNvbnRleHQoe1xuICAgICAgdXNlcjogdGhpcy51c2VyLFxuICAgICAgdGVuYW50OiB0aGlzLnRlbmFudCxcbiAgICAgIGFwcGxpY2F0aW9uOiB0aGlzLmFwcGxpY2F0aW9uLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { Directive, Input, TemplateRef, ViewContainerRef, inject, signal } from '@angular/core';\nimport { AXPSessionService } from '../session.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPPermissionDirective {\n constructor(templateRef, viewContainer) {\n this.templateRef = templateRef;\n this.viewContainer = viewContainer;\n this.hasView = signal(false);\n this.sessionService = inject(AXPSessionService);\n }\n set permission(permissionKeys) {\n const keys = !permissionKeys ? [] : (Array.isArray(permissionKeys) ? permissionKeys : [permissionKeys]);\n if (keys.length == 0) {\n // If permissionKey is null or empty, decide the default behavior here\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n return;\n }\n this.subscription = this.sessionService.isAuthorized$\n .subscribe((isAuthorized) => {\n if (isAuthorized && this.sessionService.authorize(...keys)) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n this.hasView.set(true);\n }\n }\n else {\n this.viewContainer.clear();\n this.hasView.set(false);\n }\n });\n }\n set permissionElse(elseTemplateRef) {\n if (!this.hasView()) {\n this.viewContainer.createEmbeddedView(elseTemplateRef);\n }\n }\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPPermissionDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.4\", type: AXPPermissionDirective, isStandalone: false, selector: \"[permission]\", inputs: { permission: \"permission\", permissionElse: \"permissionElse\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPPermissionDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[permission]',\n standalone: false\n }]\n }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { permission: [{\n type: Input\n }], permissionElse: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2F1dGgvc3JjL2xpYi9wZXJtaXNzaW9uL3Blcm1pc3Npb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQU12RCxNQUFNLE9BQU8sc0JBQXNCO0lBS2pDLFlBQ1UsV0FBNkIsRUFDN0IsYUFBK0I7UUFEL0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQU5qQyxZQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXhCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFLL0MsQ0FBQztJQUVMLElBQ1csVUFBVSxDQUFDLGNBQXdDO1FBQzVELE1BQU0sSUFBSSxHQUFhLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDbEgsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JCLHNFQUFzRTtZQUN0RSxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhO2FBQ2xELFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQzFCLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDeEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pCLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQ1csY0FBYyxDQUFDLGVBQWlDO1FBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs4R0ExQ1Usc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBSmxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxLQUFLO2lCQUNwQjsrR0FZWSxVQUFVO3NCQURwQixLQUFLO2dCQXdCSyxjQUFjO3NCQUR4QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpcnN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3Nlc3Npb24uc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3Blcm1pc3Npb25dJyxcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBBWFBQZXJtaXNzaW9uRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBoYXNWaWV3ID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoQVhQU2Vzc2lvblNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkgeyB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwZXJtaXNzaW9uKHBlcm1pc3Npb25LZXlzOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwpIHtcbiAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9ICFwZXJtaXNzaW9uS2V5cyA/IFtdIDogKEFycmF5LmlzQXJyYXkocGVybWlzc2lvbktleXMpID8gcGVybWlzc2lvbktleXMgOiBbcGVybWlzc2lvbktleXNdKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT0gMCkge1xuICAgICAgLy8gSWYgcGVybWlzc2lvbktleSBpcyBudWxsIG9yIGVtcHR5LCBkZWNpZGUgdGhlIGRlZmF1bHQgYmVoYXZpb3IgaGVyZVxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcbiAgICAgIHRoaXMuaGFzVmlldy5zZXQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5zZXNzaW9uU2VydmljZS5pc0F1dGhvcml6ZWQkXG4gICAgICAuc3Vic2NyaWJlKChpc0F1dGhvcml6ZWQpID0+IHtcbiAgICAgICAgaWYgKGlzQXV0aG9yaXplZCAmJiB0aGlzLnNlc3Npb25TZXJ2aWNlLmF1dGhvcml6ZSguLi5rZXlzKSkge1xuICAgICAgICAgIGlmICghdGhpcy5oYXNWaWV3KCkpIHtcbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XG4gICAgICAgICAgICB0aGlzLmhhc1ZpZXcuc2V0KHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXIuY2xlYXIoKTtcbiAgICAgICAgICB0aGlzLmhhc1ZpZXcuc2V0KGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBlcm1pc3Npb25FbHNlKGVsc2VUZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIGlmICghdGhpcy5oYXNWaWV3KCkpIHtcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcoZWxzZVRlbXBsYXRlUmVmKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19","import { inject } from '@angular/core';\nimport { first, map } from 'rxjs';\nimport { AXPUnauthorizedError } from '../errors.types';\nimport { AXPSessionService } from '../session.service';\nexport const AXPPermissionGuard = (route, state) => {\n const sessionService = inject(AXPSessionService);\n const permissionKeys = route.data['requiredPermission'];\n return sessionService.isAuthorized$.pipe(first(), map((value) => {\n const keys = !permissionKeys ? [] : Array.isArray(permissionKeys) ? permissionKeys : [permissionKeys];\n const hasPermission = keys.length == 0 || sessionService.authorize(...keys);\n if (!hasPermission) {\n throw new AXPUnauthorizedError(`Access denied. Required permissions: ${keys.join(', ')}. Please contact your administrator if you believe this is an error.`, {\n redirectUrl: state.url\n });\n }\n return true;\n }));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXV0aC9zcmMvbGliL3Blcm1pc3Npb24vcGVybWlzc2lvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFPLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFrQixDQUFDLEtBQTZCLEVBQUUsS0FBMEIsRUFBRSxFQUFFO0lBRTdHLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWpELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQTZCLENBQUM7SUFFcEYsT0FBTyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDdEMsS0FBSyxFQUFFLEVBQ1AsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDWixNQUFNLElBQUksR0FBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEgsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuQixNQUFNLElBQUksb0JBQW9CLENBQzVCLHdDQUF3QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxzRUFBc0UsRUFDN0g7Z0JBQ0UsV0FBVyxFQUFFLEtBQUssQ0FBQyxHQUFHO2FBQ3ZCLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlRm4sIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBVbmF1dGhvcml6ZWRFcnJvciB9IGZyb20gJy4uL2Vycm9ycy50eXBlcyc7XG5pbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3Nlc3Npb24uc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBBWFBQZXJtaXNzaW9uR3VhcmQ6IENhbkFjdGl2YXRlRm4gPSAocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSA9PiB7XG5cbiAgY29uc3Qgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoQVhQU2Vzc2lvblNlcnZpY2UpO1xuXG4gIGNvbnN0IHBlcm1pc3Npb25LZXlzID0gcm91dGUuZGF0YVsncmVxdWlyZWRQZXJtaXNzaW9uJ10gYXMgc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsO1xuXG4gIHJldHVybiBzZXNzaW9uU2VydmljZS5pc0F1dGhvcml6ZWQkLnBpcGUoXG4gICAgZmlyc3QoKSxcbiAgICBtYXAoKHZhbHVlKSA9PiB7XG4gICAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9ICFwZXJtaXNzaW9uS2V5cyA/IFtdIDogQXJyYXkuaXNBcnJheShwZXJtaXNzaW9uS2V5cykgPyBwZXJtaXNzaW9uS2V5cyA6IFtwZXJtaXNzaW9uS2V5c107XG4gICAgICBjb25zdCBoYXNQZXJtaXNzaW9uID0ga2V5cy5sZW5ndGggPT0gMCB8fCBzZXNzaW9uU2VydmljZS5hdXRob3JpemUoLi4ua2V5cyk7XG4gICAgICBpZiAoIWhhc1Blcm1pc3Npb24pIHtcbiAgICAgICAgdGhyb3cgbmV3IEFYUFVuYXV0aG9yaXplZEVycm9yKFxuICAgICAgICAgIGBBY2Nlc3MgZGVuaWVkLiBSZXF1aXJlZCBwZXJtaXNzaW9uczogJHtrZXlzLmpvaW4oJywgJyl9LiBQbGVhc2UgY29udGFjdCB5b3VyIGFkbWluaXN0cmF0b3IgaWYgeW91IGJlbGlldmUgdGhpcyBpcyBhbiBlcnJvci5gLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHJlZGlyZWN0VXJsOiBzdGF0ZS51cmxcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KVxuICApO1xufTtcbiJdfQ==","export class AXPPermissionDefinitionProviderContext {\n constructor() {\n this.builders = new Map();\n }\n addGroup(name, title, description) {\n if (this.isGroupDefined(name)) {\n return this.findGroup(name);\n }\n const group = {\n name,\n title,\n description,\n permissions: []\n };\n const builder = new AXPPermissionDefinitionGroupBuilder(this, group);\n this.builders.set(name, builder);\n return builder;\n }\n getGroupDefinitions() {\n return Array.from(this.builders.values()).map(b => b.group);\n }\n findGroup(name) {\n return this.builders.get(name);\n }\n isGroupDefined(name) {\n return this.builders.has(name);\n }\n}\nexport class AXPPermissionDefinitionGroupBuilder {\n get group() {\n return this._group;\n }\n constructor(context, group) {\n this.context = context;\n this._group = group;\n }\n addPermission(name, title, description) {\n const permission = {\n name,\n title,\n description,\n children: []\n };\n this._group.permissions.push(permission);\n return new AXPPermissionDefinitionBuilder(this, permission);\n }\n endGroup() {\n return this.context;\n }\n findPermission(path) {\n return undefined;\n }\n findGroup(name) {\n return undefined;\n }\n}\nexport class AXPPermissionDefinitionBuilder {\n constructor(groupBuilder, permission) {\n this.groupBuilder = groupBuilder;\n this.permission = permission;\n }\n addChild(name, title, description) {\n const permission = {\n name,\n title,\n description,\n children: []\n };\n this.permission.children.push(permission);\n return this;\n }\n endPermission() {\n return this.groupBuilder;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1kZWZpbml0aW9uLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2F1dGgvc3JjL2xpYi9wZXJtaXNzaW9uL3Blcm1pc3Npb24tZGVmaW5pdGlvbi5idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxzQ0FBc0M7SUFBbkQ7UUFDWSxhQUFRLEdBQXFELElBQUksR0FBRyxFQUFFLENBQUM7SUE0Qm5GLENBQUM7SUExQkcsUUFBUSxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsV0FBb0I7UUFDdEQsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBRSxDQUFBO1FBQ2hDLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBaUM7WUFDeEMsSUFBSTtZQUNKLEtBQUs7WUFDTCxXQUFXO1lBQ1gsV0FBVyxFQUFFLEVBQUU7U0FDbEIsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFHLElBQUksbUNBQW1DLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNqQyxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNKO0FBSUQsTUFBTSxPQUFPLG1DQUFtQztJQUk1QyxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELFlBQVksT0FBK0MsRUFBRSxLQUFtQztRQUM1RixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsV0FBb0I7UUFDM0QsTUFBTSxVQUFVLEdBQTRCO1lBQ3hDLElBQUk7WUFDSixLQUFLO1lBQ0wsV0FBVztZQUNYLFFBQVEsRUFBRSxFQUFFO1NBQ2YsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksOEJBQThCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFLRCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBWTtRQUN2QixPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVk7UUFDbEIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUVKO0FBRUQsTUFBTSxPQUFPLDhCQUE4QjtJQUl2QyxZQUFZLFlBQWlELEVBQUUsVUFBbUM7UUFDOUYsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLFdBQW9CO1FBQ3RELE1BQU0sVUFBVSxHQUE0QjtZQUN4QyxJQUFJO1lBQ0osS0FBSztZQUNMLFdBQVc7WUFDWCxRQUFRLEVBQUUsRUFBRTtTQUNmLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUdELGFBQWE7UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQUGVybWlzc2lvbkRlZmluaXRpb24sIEFYUFBlcm1pc3Npb25Hcm91cERlZmluaXRpb24gfSBmcm9tIFwiLi9wZXJtaXNzaW9uLnR5cGVzXCI7XG5cblxuZXhwb3J0IGNsYXNzIEFYUFBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0IHtcbiAgICBwcml2YXRlIGJ1aWxkZXJzOiBNYXA8c3RyaW5nLCBBWFBQZXJtaXNzaW9uRGVmaW5pdGlvbkdyb3VwQnVpbGRlcj4gPSBuZXcgTWFwKCk7XG5cbiAgICBhZGRHcm91cChuYW1lOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uPzogc3RyaW5nKTogQVhQUGVybWlzc2lvbkRlZmluaXRpb25Hcm91cEJ1aWxkZXIge1xuICAgICAgICBpZiAodGhpcy5pc0dyb3VwRGVmaW5lZChuYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmluZEdyb3VwKG5hbWUpIVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGdyb3VwOiBBWFBQZXJtaXNzaW9uR3JvdXBEZWZpbml0aW9uID0ge1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBwZXJtaXNzaW9uczogW11cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBBWFBQZXJtaXNzaW9uRGVmaW5pdGlvbkdyb3VwQnVpbGRlcih0aGlzLCBncm91cCk7XG4gICAgICAgIHRoaXMuYnVpbGRlcnMuc2V0KG5hbWUsIGJ1aWxkZXIpO1xuICAgICAgICByZXR1cm4gYnVpbGRlcjtcbiAgICB9XG5cbiAgICBnZXRHcm91cERlZmluaXRpb25zKCk6IEFYUFBlcm1pc3Npb25Hcm91cERlZmluaXRpb25bXSB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuYnVpbGRlcnMudmFsdWVzKCkpLm1hcChiID0+IGIuZ3JvdXApO1xuICAgIH1cblxuICAgIGZpbmRHcm91cChuYW1lOiBzdHJpbmcpOiBBWFBQZXJtaXNzaW9uRGVmaW5pdGlvbkdyb3VwQnVpbGRlciB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkZXJzLmdldChuYW1lKTtcbiAgICB9XG5cbiAgICBpc0dyb3VwRGVmaW5lZChuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRlcnMuaGFzKG5hbWUpO1xuICAgIH1cbn1cblxuXG5cbmV4cG9ydCBjbGFzcyBBWFBQZXJtaXNzaW9uRGVmaW5pdGlvbkdyb3VwQnVpbGRlciB7XG4gICAgcHJpdmF0ZSBjb250ZXh0OiBBWFBQZXJtaXNzaW9uRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dDtcbiAgICBwcml2YXRlIF9ncm91cDogQVhQUGVybWlzc2lvbkdyb3VwRGVmaW5pdGlvbjtcblxuICAgIHB1YmxpYyBnZXQgZ3JvdXAoKTogQVhQUGVybWlzc2lvbkdyb3VwRGVmaW5pdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncm91cDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihjb250ZXh0OiBBWFBQZXJtaXNzaW9uRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCwgZ3JvdXA6IEFYUFBlcm1pc3Npb25Hcm91cERlZmluaXRpb24pIHtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICAgICAgdGhpcy5fZ3JvdXAgPSBncm91cDtcbiAgICB9XG5cbiAgICBhZGRQZXJtaXNzaW9uKG5hbWU6IHN0cmluZywgdGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcpOiBBWFBQZXJtaXNzaW9uRGVmaW5pdGlvbkJ1aWxkZXIge1xuICAgICAgICBjb25zdCBwZXJtaXNzaW9uOiBBWFBQZXJtaXNzaW9uRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgY2hpbGRyZW46IFtdXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2dyb3VwLnBlcm1pc3Npb25zLnB1c2gocGVybWlzc2lvbik7XG4gICAgICAgIHJldHVybiBuZXcgQVhQUGVybWlzc2lvbkRlZmluaXRpb25CdWlsZGVyKHRoaXMsIHBlcm1pc3Npb24pO1xuICAgIH1cblxuXG5cblxuICAgIGVuZEdyb3VwKCk6IEFYUFBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGV4dDtcbiAgICB9XG5cbiAgICBmaW5kUGVybWlzc2lvbihwYXRoOiBzdHJpbmcpOiBBWFBQZXJtaXNzaW9uRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgZmluZEdyb3VwKG5hbWU6IHN0cmluZyk6IEFYUFBlcm1pc3Npb25EZWZpbml0aW9uR3JvdXBCdWlsZGVyIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIEFYUFBlcm1pc3Npb25EZWZpbml0aW9uQnVpbGRlciB7XG4gICAgcHJpdmF0ZSBncm91cEJ1aWxkZXI6IEFYUFBlcm1pc3Npb25EZWZpbml0aW9uR3JvdXBCdWlsZGVyO1xuICAgIHByaXZhdGUgcGVybWlzc2lvbjogQVhQUGVybWlzc2lvbkRlZmluaXRpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihncm91cEJ1aWxkZXI6IEFYUFBlcm1pc3Npb25EZWZpbml0aW9uR3JvdXBCdWlsZGVyLCBwZXJtaXNzaW9uOiBBWFBQZXJtaXNzaW9uRGVmaW5pdGlvbikge1xuICAgICAgICB0aGlzLmdyb3VwQnVpbGRlciA9IGdyb3VwQnVpbGRlcjtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uID0gcGVybWlzc2lvbjtcbiAgICB9XG5cbiAgICBhZGRDaGlsZChuYW1lOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uPzogc3RyaW5nKTogQVhQUGVybWlzc2lvbkRlZmluaXRpb25CdWlsZGVyIHtcbiAgICAgICAgY29uc3QgcGVybWlzc2lvbjogQVhQUGVybWlzc2lvbkRlZmluaXRpb24gPSB7XG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnBlcm1pc3Npb24uY2hpbGRyZW4ucHVzaChwZXJtaXNzaW9uKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG5cbiAgICBlbmRQZXJtaXNzaW9uKCk6IEFYUFBlcm1pc3Npb25EZWZpbml0aW9uR3JvdXBCdWlsZGVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JvdXBCdWlsZGVyO1xuICAgIH1cbn0iXX0=","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { AXPPermissionDefinitionProviderContext } from './permission-definition.builder';\nimport * as i0 from \"@angular/core\";\nexport const AXP_PERMISSION_DEFINITION_PROVIDER = new InjectionToken('AXP_PERMISSION_DEFINITION_PROVIDER', {\n providedIn: 'root',\n factory: () => {\n return [];\n }\n});\nexport class AXPPermissionDefinitionService {\n constructor() {\n this.providers = inject(AXP_PERMISSION_DEFINITION_PROVIDER, { optional: true });\n this.cache = null;\n }\n async load() {\n if (this.cache) {\n return;\n }\n const context = new AXPPermissionDefinitionProviderContext();\n if (Array.isArray(this.providers)) {\n for (const provider of this.providers) {\n if (provider instanceof Promise) {\n // If provider is a promise, resolve it\n const resolvedProvider = await provider;\n await resolvedProvider.define(context);\n }\n else {\n // If provider is a direct instance, use it directly\n await provider.define(context);\n }\n }\n }\n this.cache = context.getGroupDefinitions();\n }\n async reload() {\n this.cache = null;\n await this.load();\n }\n async getGroups() {\n await this.load();\n return this.cache ?? [];\n }\n async getPermissions() {\n await this.load();\n return this.cache?.flatMap(g => g.permissions) ?? [];\n }\n async getGroup(name) {\n await this.load();\n return this.cache?.find(g => g.name === name) ?? null;\n }\n async getPermission(name) {\n await this.load();\n return this.cache?.find(g => g.permissions.find(p => p.name === name))?.permissions.find(p => p.name === name) ?? null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPPermissionDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPPermissionDefinitionService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPPermissionDefinitionService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi1kZWZpbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2F1dGgvc3JjL2xpYi9wZXJtaXNzaW9uL3Blcm1pc3Npb24tZGVmaW5pdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFRekYsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsSUFBSSxjQUFjLENBQW9DLG9DQUFvQyxFQUFFO0lBQzVJLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDWixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7Q0FDRixDQUFDLENBQUM7QUFJSCxNQUFNLE9BQU8sOEJBQThCO0lBRDNDO1FBRVUsY0FBUyxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLFVBQUssR0FBMEMsSUFBSSxDQUFDO0tBZ0Q3RDtJQTdDUyxLQUFLLENBQUMsSUFBSTtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU07UUFDUixDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxzQ0FBc0MsRUFBRSxDQUFDO1FBQzdELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxRQUFRLFlBQVksT0FBTyxFQUFFLENBQUM7b0JBQ2hDLHVDQUF1QztvQkFDdkMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLFFBQVEsQ0FBQztvQkFDeEMsTUFBTSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7cUJBQU0sQ0FBQztvQkFDTixvREFBb0Q7b0JBQ3BELE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDakMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU07UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjO1FBQ3pCLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFTSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQVk7UUFDaEMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ3hELENBQUM7SUFFTSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQVk7UUFDckMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN6SCxDQUFDOzhHQWhEVSw4QkFBOEI7a0hBQTlCLDhCQUE4QixjQURqQixNQUFNOzsyRkFDbkIsOEJBQThCO2tCQUQxQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFBlcm1pc3Npb25EZWZpbml0aW9uLCBBWFBQZXJtaXNzaW9uR3JvdXBEZWZpbml0aW9uIH0gZnJvbSAnLi9wZXJtaXNzaW9uLnR5cGVzJztcbmltcG9ydCB7IEFYUFBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0IH0gZnJvbSAnLi9wZXJtaXNzaW9uLWRlZmluaXRpb24uYnVpbGRlcic7XG5cblxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXIge1xuICBkZWZpbmUoY29udGV4dDogQVhQUGVybWlzc2lvbkRlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgY29uc3QgQVhQX1BFUk1JU1NJT05fREVGSU5JVElPTl9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBQZXJtaXNzaW9uRGVmaW5pdGlvblByb3ZpZGVyW10+KCdBWFBfUEVSTUlTU0lPTl9ERUZJTklUSU9OX1BST1ZJREVSJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHtcbiAgICByZXR1cm4gW107XG4gIH1cbn0pO1xuXG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQUGVybWlzc2lvbkRlZmluaXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwcm92aWRlcnMgPSBpbmplY3QoQVhQX1BFUk1JU1NJT05fREVGSU5JVElPTl9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBjYWNoZTogQVhQUGVybWlzc2lvbkdyb3VwRGVmaW5pdGlvbltdIHwgbnVsbCA9IG51bGw7XG5cblxuICBwcml2YXRlIGFzeW5jIGxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuY2FjaGUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCBjb250ZXh0ID0gbmV3IEFYUFBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXJDb250ZXh0KCk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5wcm92aWRlcnMpKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICAgIGlmIChwcm92aWRlciBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAvLyBJZiBwcm92aWRlciBpcyBhIHByb21pc2UsIHJlc29sdmUgaXRcbiAgICAgICAgICBjb25zdCByZXNvbHZlZFByb3ZpZGVyID0gYXdhaXQgcHJvdmlkZXI7XG4gICAgICAgICAgYXdhaXQgcmVzb2x2ZWRQcm92aWRlci5kZWZpbmUoY29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSWYgcHJvdmlkZXIgaXMgYSBkaXJlY3QgaW5zdGFuY2UsIHVzZSBpdCBkaXJlY3RseVxuICAgICAgICAgIGF3YWl0IHByb3ZpZGVyLmRlZmluZShjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNhY2hlID0gY29udGV4dC5nZXRHcm91cERlZmluaXRpb25zKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY2FjaGUgPSBudWxsO1xuICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEdyb3VwcygpOiBQcm9taXNlPEFYUFBlcm1pc3Npb25Hcm91cERlZmluaXRpb25bXT4ge1xuICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuICAgIHJldHVybiB0aGlzLmNhY2hlID8/IFtdO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFBlcm1pc3Npb25zKCk6IFByb21pc2U8QVhQUGVybWlzc2lvbkRlZmluaXRpb25bXT4ge1xuICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuICAgIHJldHVybiB0aGlzLmNhY2hlPy5mbGF0TWFwKGcgPT4gZy5wZXJtaXNzaW9ucykgPz8gW107XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0R3JvdXAobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBQZXJtaXNzaW9uR3JvdXBEZWZpbml0aW9uIHwgbnVsbD4ge1xuICAgIGF3YWl0IHRoaXMubG9hZCgpO1xuICAgIHJldHVybiB0aGlzLmNhY2hlPy5maW5kKGcgPT4gZy5uYW1lID09PSBuYW1lKSA/PyBudWxsO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFBlcm1pc3Npb24obmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBQZXJtaXNzaW9uRGVmaW5pdGlvbiB8IG51bGw+IHtcbiAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgICByZXR1cm4gdGhpcy5jYWNoZT8uZmluZChnID0+IGcucGVybWlzc2lvbnMuZmluZChwID0+IHAubmFtZSA9PT0gbmFtZSkpPy5wZXJtaXNzaW9ucy5maW5kKHAgPT4gcC5uYW1lID09PSBuYW1lKSA/PyBudWxsO1xuICB9XG5cbn1cbiJdfQ==","import { inject } from '@angular/core';\nimport { first, map } from 'rxjs';\nimport { AXPUnauthenticatedError } from './errors.types';\nimport { AXPSessionService } from './session.service';\nexport const AXPAuthGuard = (route, state) => {\n const sessionService = inject(AXPSessionService);\n return sessionService.isAuthenticated$.pipe(first(), map((value) => {\n if (value) {\n return true;\n }\n throw new AXPUnauthenticatedError(`Access denied. You are not currently logged in. Please log in to access this page. If you continue to see this message after logging in, please contact support.`, {\n redirectUrl: state.url,\n });\n }));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vYXV0aC9zcmMvbGliL2F1dGguZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV0RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWtCLENBQUMsS0FBNkIsRUFBRSxLQUEwQixFQUFFLEVBQUU7SUFDdkcsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDakQsT0FBTyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUN6QyxLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNaLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLElBQUksdUJBQXVCLENBQy9CLGtLQUFrSyxFQUNsSztZQUNFLFdBQVcsRUFBRSxLQUFLLENBQUMsR0FBRztTQUN2QixDQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZUZuLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpcnN0LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUFVuYXV0aGVudGljYXRlZEVycm9yIH0gZnJvbSAnLi9lcnJvcnMudHlwZXMnO1xuaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBBWFBBdXRoR3VhcmQ6IENhbkFjdGl2YXRlRm4gPSAocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSA9PiB7XG4gIGNvbnN0IHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgcmV0dXJuIHNlc3Npb25TZXJ2aWNlLmlzQXV0aGVudGljYXRlZCQucGlwZShcbiAgICBmaXJzdCgpLFxuICAgIG1hcCgodmFsdWUpID0+IHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBBWFBVbmF1dGhlbnRpY2F0ZWRFcnJvcihcbiAgICAgICAgYEFjY2VzcyBkZW5pZWQuIFlvdSBhcmUgbm90IGN1cnJlbnRseSBsb2dnZWQgaW4uIFBsZWFzZSBsb2cgaW4gdG8gYWNjZXNzIHRoaXMgcGFnZS4gSWYgeW91IGNvbnRpbnVlIHRvIHNlZSB0aGlzIG1lc3NhZ2UgYWZ0ZXIgbG9nZ2luZyBpbiwgcGxlYXNlIGNvbnRhY3Qgc3VwcG9ydC5gLFxuICAgICAgICB7XG4gICAgICAgICAgcmVkaXJlY3RVcmw6IHN0YXRlLnVybCxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KVxuICApO1xufTtcbiJdfQ==","import { Inject, NgModule, Optional, inject, provideAppInitializer } from '@angular/core';\nimport { AXPAuthStrategyRegistryService } from './auth-registry.service';\nimport { AXPFeatureDirective } from './feature';\nimport { AXPPermissionDirective } from './permission/permission.directive';\nimport { AXPSessionService } from './session.service';\nimport * as i0 from \"@angular/core\";\nexport function initializeAppState(service) {\n return async () => {\n try {\n await service.restoreSession();\n }\n catch (error) {\n console.error(error);\n }\n };\n}\nexport class AXPAuthModule {\n static forRoot(configs) {\n return {\n ngModule: AXPAuthModule,\n providers: [\n ...(configs?.strategies || []),\n {\n provide: 'AXPAuthModuleFactory',\n useFactory: (registry) => () => {\n registry.register(...(configs?.strategies || []));\n },\n deps: [AXPAuthStrategyRegistryService],\n multi: true,\n },\n ],\n };\n }\n static forChild(configs) {\n return {\n ngModule: AXPAuthModule,\n providers: [\n ...(configs?.strategies || []),\n {\n provide: 'AXPAuthModuleFactory',\n useFactory: (registry) => () => {\n registry.register(...(configs?.strategies || []));\n },\n deps: [AXPAuthStrategyRegistryService],\n multi: true,\n },\n ],\n };\n }\n /**\n * @ignore\n */\n constructor(instances) {\n instances?.forEach((f) => {\n f();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPAuthModule, deps: [{ token: 'AXPAuthModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPAuthModule, declarations: [AXPPermissionDirective, AXPFeatureDirective], exports: [AXPPermissionDirective, AXPFeatureDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPAuthModule, providers: [\n provideAppInitializer(() => {\n const initializerFn = (initializeAppState)(inject(AXPSessionService));\n return initializerFn();\n }),\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.4\", ngImport: i0, type: AXPAuthModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n exports: [AXPPermissionDirective, AXPFeatureDirective],\n declarations: [AXPPermissionDirective, AXPFeatureDirective],\n providers: [\n provideAppInitializer(() => {\n const initializerFn = (initializeAppState)(inject(AXPSessionService));\n return initializerFn();\n }),\n ],\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['AXPAuthModuleFactory']\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2F1dGgvc3JjL2xpYi9hdXRoLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUF1QixRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBTXRELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUEwQjtJQUMzRCxPQUFPLEtBQUssSUFBSSxFQUFFO1FBQ2hCLElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2pDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQWFELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBOEI7UUFDM0MsT0FBTztZQUNMLFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLFNBQVMsRUFBRTtnQkFDVCxHQUFHLENBQUMsT0FBTyxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUM7Z0JBQzlCO29CQUNFLE9BQU8sRUFBRSxzQkFBc0I7b0JBQy9CLFVBQVUsRUFBRSxDQUFDLFFBQXdDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTt3QkFDN0QsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUNwRCxDQUFDO29CQUNELElBQUksRUFBRSxDQUFDLDhCQUE4QixDQUFDO29CQUN0QyxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQThCO1FBQzVDLE9BQU87WUFDTCxRQUFRLEVBQUUsYUFBYTtZQUN2QixTQUFTLEVBQUU7Z0JBQ1QsR0FBRyxDQUFDLE9BQU8sRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDO2dCQUM5QjtvQkFDRSxPQUFPLEVBQUUsc0JBQXNCO29CQUMvQixVQUFVLEVBQUUsQ0FBQyxRQUF3QyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7d0JBQzdELFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDcEQsQ0FBQztvQkFDRCxJQUFJLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztvQkFDdEMsS0FBSyxFQUFFLElBQUk7aUJBQ1o7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUF3RCxTQUFnQjtRQUN0RSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdkIsQ0FBQyxFQUFFLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBMUNVLGFBQWEsa0JBc0NRLHNCQUFzQjsrR0F0QzNDLGFBQWEsaUJBUlQsc0JBQXNCLEVBQUUsbUJBQW1CLGFBRGhELHNCQUFzQixFQUFFLG1CQUFtQjsrR0FTMUMsYUFBYSxhQVBiO1lBQ1QscUJBQXFCLENBQUMsR0FBRyxFQUFFO2dCQUN2QixNQUFNLGFBQWEsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztnQkFDdEUsT0FBTyxhQUFhLEVBQUUsQ0FBQztZQUN6QixDQUFDLENBQUM7U0FDTDs7MkZBRVUsYUFBYTtrQkFYekIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsRUFBRTtvQkFDWCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxtQkFBbUIsQ0FBQztvQkFDdEQsWUFBWSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsbUJBQW1CLENBQUM7b0JBQzNELFNBQVMsRUFBRTt3QkFDVCxxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7NEJBQ3ZCLE1BQU0sYUFBYSxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDOzRCQUN0RSxPQUFPLGFBQWEsRUFBRSxDQUFDO3dCQUN6QixDQUFDLENBQUM7cUJBQ0w7aUJBQ0Y7OzBCQXVDYyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBpbmplY3QsIHByb3ZpZGVBcHBJbml0aWFsaXplciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQXV0aFN0cmF0ZWd5UmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQQXV0aFN0cmF0ZWd5IH0gZnJvbSAnLi9hdXRoLnN0cmF0ZWd5JztcbmltcG9ydCB7IEFYUEZlYXR1cmVEaXJlY3RpdmUgfSBmcm9tICcuL2ZlYXR1cmUnO1xuaW1wb3J0IHsgQVhQUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJy4vcGVybWlzc2lvbi9wZXJtaXNzaW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4vc2Vzc2lvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBBdXRoTW9kdWxlQ29uZmlncyB7XG4gIHN0cmF0ZWdpZXM6IChuZXcgKCkgPT4gQVhQQXV0aFN0cmF0ZWd5KVtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZUFwcFN0YXRlKHNlcnZpY2U6IEFYUFNlc3Npb25TZXJ2aWNlKSB7XG4gIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHNlcnZpY2UucmVzdG9yZVNlc3Npb24oKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgfVxuICB9O1xufVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW0FYUFBlcm1pc3Npb25EaXJlY3RpdmUsIEFYUEZlYXR1cmVEaXJlY3RpdmVdLFxuICBkZWNsYXJhdGlvbnM6IFtBWFBQZXJtaXNzaW9uRGlyZWN0aXZlLCBBWFBGZWF0dXJlRGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUFwcEluaXRpYWxpemVyKCgpID0+IHtcbiAgICAgICAgY29uc3QgaW5pdGlhbGl6ZXJGbiA9IChpbml0aWFsaXplQXBwU3RhdGUpKGluamVjdChBWFBTZXNzaW9uU2VydmljZSkpO1xuICAgICAgICByZXR1cm4gaW5pdGlhbGl6ZXJGbigpO1xuICAgICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUEF1dGhNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdChjb25maWdzPzogQVhQQXV0aE1vZHVsZUNvbmZpZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYUEF1dGhNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYUEF1dGhNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgLi4uKGNvbmZpZ3M/LnN0cmF0ZWdpZXMgfHwgW10pLFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogJ0FYUEF1dGhNb2R1bGVGYWN0b3J5JyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAocmVnaXN0cnk6IEFYUEF1dGhTdHJhdGVneVJlZ2lzdHJ5U2VydmljZSkgPT4gKCkgPT4ge1xuICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoLi4uKGNvbmZpZ3M/LnN0cmF0ZWdpZXMgfHwgW10pKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlcHM6IFtBWFBBdXRoU3RyYXRlZ3lSZWdpc3RyeVNlcnZpY2VdLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGZvckNoaWxkKGNvbmZpZ3M/OiBBWFBBdXRoTW9kdWxlQ29uZmlncyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QVhQQXV0aE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQVhQQXV0aE1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAuLi4oY29uZmlncz8uc3RyYXRlZ2llcyB8fCBbXSksXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiAnQVhQQXV0aE1vZHVsZUZhY3RvcnknLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IChyZWdpc3RyeTogQVhQQXV0aFN0cmF0ZWd5UmVnaXN0cnlTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlciguLi4oY29uZmlncz8uc3RyYXRlZ2llcyB8fCBbXSkpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogW0FYUEF1dGhTdHJhdGVneVJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdCgnQVhQQXV0aE1vZHVsZUZhY3RvcnknKSBpbnN0YW5jZXM6IGFueVtdKSB7XG4gICAgaW5zdGFuY2VzPy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICBmKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2F1dGgvc3JjL2Fjb3JleC1wbGF0Zm9ybS1hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|