@abp/ng.core 7.2.2 → 7.3.0-rc.1
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/{esm2020 → esm2022}/abp-ng.core.mjs +4 -4
- package/esm2022/lib/abstracts/abstract-guard.mjs +2 -0
- package/{esm2020 → esm2022}/lib/abstracts/auth-response.model.mjs +1 -1
- package/esm2022/lib/abstracts/auth.guard.mjs +18 -0
- package/esm2022/lib/abstracts/auth.service.mjs +46 -0
- package/esm2022/lib/abstracts/index.mjs +6 -0
- package/esm2022/lib/abstracts/ng-model.component.mjs +60 -0
- package/esm2022/lib/clients/http.client.mjs +29 -0
- package/{esm2020 → esm2022}/lib/clients/index.mjs +1 -1
- package/esm2022/lib/components/dynamic-layout.component.mjs +101 -0
- package/{esm2020 → esm2022}/lib/components/index.mjs +3 -3
- package/esm2022/lib/components/replaceable-route-container.component.mjs +43 -0
- package/esm2022/lib/components/router-outlet.component.mjs +16 -0
- package/{esm2020 → esm2022}/lib/constants/different-locales.mjs +336 -336
- package/{esm2020 → esm2022}/lib/constants/index.mjs +1 -1
- package/esm2022/lib/core.module.mjs +285 -0
- package/esm2022/lib/directives/autofocus.directive.mjs +31 -0
- package/esm2022/lib/directives/debounce.directive.mjs +37 -0
- package/esm2022/lib/directives/for.directive.mjs +160 -0
- package/esm2022/lib/directives/form-submit.directive.mjs +78 -0
- package/{esm2020 → esm2022}/lib/directives/index.mjs +8 -8
- package/esm2022/lib/directives/init.directive.mjs +22 -0
- package/esm2022/lib/directives/permission.directive.mjs +75 -0
- package/esm2022/lib/directives/replaceable-template.directive.mjs +133 -0
- package/esm2022/lib/directives/stop-propagation.directive.mjs +33 -0
- package/{esm2020 → esm2022}/lib/enums/common.mjs +1 -1
- package/{esm2020 → esm2022}/lib/enums/index.mjs +1 -1
- package/{esm2020 → esm2022}/lib/guards/index.mjs +1 -1
- package/esm2022/lib/guards/permission.guard.mjs +41 -0
- package/esm2022/lib/handlers/routes.handler.mjs +52 -0
- package/esm2022/lib/interceptors/api.interceptor.mjs +28 -0
- package/{esm2020 → esm2022}/lib/interceptors/index.mjs +1 -1
- package/esm2022/lib/localization.module.mjs +17 -0
- package/{esm2020 → esm2022}/lib/models/auth.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/common.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/dtos.mjs +134 -134
- package/{esm2020 → esm2022}/lib/models/environment.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/index.mjs +9 -9
- package/{esm2020 → esm2022}/lib/models/localization.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/replaceable-components.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/rest.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/session.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/utility.mjs +1 -1
- package/{esm2020 → esm2022}/lib/pipes/index.mjs +7 -7
- package/esm2022/lib/pipes/localization.pipe.mjs +34 -0
- package/esm2022/lib/pipes/safe-html.pipe.mjs +24 -0
- package/esm2022/lib/pipes/short-date-time.pipe.mjs +35 -0
- package/esm2022/lib/pipes/short-date.pipe.mjs +35 -0
- package/esm2022/lib/pipes/short-time.pipe.mjs +35 -0
- package/esm2022/lib/pipes/sort.pipe.mjs +50 -0
- package/esm2022/lib/pipes/to-injector.pipe.mjs +30 -0
- package/{esm2020 → esm2022}/lib/providers/cookie-language.provider.mjs +21 -21
- package/{esm2020 → esm2022}/lib/providers/include-localization-resources.provider.mjs +5 -5
- package/{esm2020 → esm2022}/lib/providers/locale.provider.mjs +25 -25
- package/esm2022/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.mjs +28 -0
- package/{esm2020 → esm2022}/lib/proxy/pages/abp/multi-tenancy/index.mjs +1 -1
- package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.mjs +25 -0
- package/{esm2020 → esm2022}/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.mjs +1 -1
- package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.mjs +25 -0
- package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.mjs +25 -0
- package/{esm2020 → esm2022}/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.mjs +5 -5
- package/{esm2020 → esm2022}/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.mjs +1 -1
- package/{esm2020 → esm2022}/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.mjs +1 -1
- package/{esm2020 → esm2022}/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.mjs +1 -1
- package/{esm2020 → esm2022}/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.mjs +1 -1
- package/{esm2020 → esm2022}/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.mjs +1 -1
- package/{esm2020 → esm2022}/lib/proxy/volo/abp/http/modeling/index.mjs +1 -1
- package/{esm2020 → esm2022}/lib/proxy/volo/abp/http/modeling/models.mjs +1 -1
- package/{esm2020 → esm2022}/lib/proxy/volo/abp/localization/index.mjs +1 -1
- package/{esm2020 → esm2022}/lib/proxy/volo/abp/localization/models.mjs +1 -1
- package/{esm2020 → esm2022}/lib/proxy/volo/abp/models.mjs +1 -1
- package/esm2022/lib/services/config-state.service.mjs +182 -0
- package/esm2022/lib/services/content-projection.service.mjs +18 -0
- package/esm2022/lib/services/dom-insertion.service.mjs +35 -0
- package/esm2022/lib/services/environment.service.mjs +49 -0
- package/esm2022/lib/services/http-error-reporter.service.mjs +30 -0
- package/esm2022/lib/services/http-wait.service.mjs +76 -0
- package/{esm2020 → esm2022}/lib/services/index.mjs +21 -21
- package/esm2022/lib/services/lazy-load.service.mjs +41 -0
- package/esm2022/lib/services/list.service.mjs +103 -0
- package/esm2022/lib/services/local-storage.service.mjs +33 -0
- package/esm2022/lib/services/localization.service.mjs +218 -0
- package/esm2022/lib/services/multi-tenancy.service.mjs +49 -0
- package/esm2022/lib/services/permission.service.mjs +64 -0
- package/esm2022/lib/services/replaceable-components.service.mjs +50 -0
- package/esm2022/lib/services/resource-wait.service.mjs +40 -0
- package/esm2022/lib/services/rest.service.mjs +79 -0
- package/esm2022/lib/services/router-events.service.mjs +39 -0
- package/esm2022/lib/services/router-wait.service.mjs +52 -0
- package/esm2022/lib/services/routes.service.mjs +165 -0
- package/esm2022/lib/services/session-state.service.mjs +81 -0
- package/esm2022/lib/services/subscription.service.mjs +44 -0
- package/esm2022/lib/services/track-by.service.mjs +22 -0
- package/{esm2020 → esm2022}/lib/strategies/container.strategy.mjs +37 -37
- package/{esm2020 → esm2022}/lib/strategies/content-security.strategy.mjs +29 -29
- package/{esm2020 → esm2022}/lib/strategies/content.strategy.mjs +51 -51
- package/{esm2020 → esm2022}/lib/strategies/context.strategy.mjs +36 -36
- package/{esm2020 → esm2022}/lib/strategies/cross-origin.strategy.mjs +27 -27
- package/{esm2020 → esm2022}/lib/strategies/dom.strategy.mjs +26 -26
- package/{esm2020 → esm2022}/lib/strategies/index.mjs +8 -8
- package/{esm2020 → esm2022}/lib/strategies/loading.strategy.mjs +57 -57
- package/{esm2020 → esm2022}/lib/strategies/projection.strategy.mjs +79 -79
- package/{esm2020 → esm2022}/lib/tokens/app-config.token.mjs +2 -2
- package/{esm2020 → esm2022}/lib/tokens/check-authentication-state.mjs +2 -2
- package/{esm2020 → esm2022}/lib/tokens/cookie-language-key.token.mjs +4 -4
- package/{esm2020 → esm2022}/lib/tokens/http-context.token.mjs +2 -2
- package/{esm2020 → esm2022}/lib/tokens/include-localization-resources.token.mjs +2 -2
- package/{esm2020 → esm2022}/lib/tokens/index.mjs +15 -15
- package/{esm2020 → esm2022}/lib/tokens/list.token.mjs +2 -2
- package/{esm2020 → esm2022}/lib/tokens/localization.token.mjs +9 -9
- package/{esm2020 → esm2022}/lib/tokens/lodaer-delay.token.mjs +2 -2
- package/{esm2020 → esm2022}/lib/tokens/manage-profile.token.mjs +2 -2
- package/{esm2020 → esm2022}/lib/tokens/options.token.mjs +7 -7
- package/{esm2020 → esm2022}/lib/tokens/others-group.token.mjs +2 -2
- package/{esm2020 → esm2022}/lib/tokens/pipe-to-login.token.mjs +2 -2
- package/{esm2020 → esm2022}/lib/tokens/queue.token.mjs +2 -2
- package/{esm2020 → esm2022}/lib/tokens/set-token-response-to-storage.token.mjs +5 -5
- package/{esm2020 → esm2022}/lib/tokens/tenant-key.token.mjs +2 -2
- package/{esm2020 → esm2022}/lib/utils/array-utils.mjs +6 -6
- package/{esm2020 → esm2022}/lib/utils/common-utils.mjs +34 -34
- package/{esm2020 → esm2022}/lib/utils/date-extensions.mjs +5 -5
- package/{esm2020 → esm2022}/lib/utils/date-utils.mjs +12 -12
- package/{esm2020 → esm2022}/lib/utils/environment-utils.mjs +35 -35
- package/{esm2020 → esm2022}/lib/utils/factory-utils.mjs +24 -24
- package/{esm2020 → esm2022}/lib/utils/file-utils.mjs +13 -13
- package/{esm2020 → esm2022}/lib/utils/form-utils.mjs +11 -11
- package/{esm2020 → esm2022}/lib/utils/generator-utils.mjs +33 -33
- package/{esm2020 → esm2022}/lib/utils/http-utils.mjs +18 -18
- package/{esm2020 → esm2022}/lib/utils/index.mjs +20 -20
- package/{esm2020 → esm2022}/lib/utils/initial-utils.mjs +59 -59
- package/esm2022/lib/utils/internal-store-utils.mjs +37 -0
- package/{esm2020 → esm2022}/lib/utils/lazy-load-utils.mjs +39 -39
- package/{esm2020 → esm2022}/lib/utils/localization-utils.mjs +48 -48
- package/{esm2020 → esm2022}/lib/utils/multi-tenancy-utils.mjs +80 -80
- package/{esm2020 → esm2022}/lib/utils/number-utils.mjs +3 -3
- package/{esm2020 → esm2022}/lib/utils/object-utils.mjs +36 -36
- package/{esm2020 → esm2022}/lib/utils/queue.mjs +40 -40
- package/{esm2020 → esm2022}/lib/utils/route-utils.mjs +25 -25
- package/{esm2020 → esm2022}/lib/utils/string-utils.mjs +29 -29
- package/{esm2020 → esm2022}/lib/utils/tree-utils.mjs +69 -69
- package/{esm2020 → esm2022}/lib/validators/age.validator.mjs +13 -13
- package/{esm2020 → esm2022}/lib/validators/credit-card.validator.mjs +20 -20
- package/esm2022/lib/validators/index.mjs +29 -0
- package/{esm2020 → esm2022}/lib/validators/range.validator.mjs +14 -14
- package/{esm2020 → esm2022}/lib/validators/required.validator.mjs +14 -14
- package/{esm2020 → esm2022}/lib/validators/string-length.validator.mjs +14 -14
- package/esm2022/lib/validators/unique-character.validator.mjs +13 -0
- package/{esm2020 → esm2022}/lib/validators/url.validator.mjs +16 -16
- package/{esm2020 → esm2022}/lib/validators/username.validator.mjs +13 -13
- package/{esm2020 → esm2022}/locale/abp-ng.core-locale.mjs +4 -4
- package/{esm2020 → esm2022}/locale/public-api.mjs +1 -1
- package/{esm2020 → esm2022}/locale/utils/register-locale.mjs +46 -46
- package/{esm2020 → esm2022}/public-api.mjs +26 -26
- package/{esm2020 → esm2022}/testing/abp-ng.core-testing.mjs +4 -4
- package/esm2022/testing/lib/core-testing.module.mjs +68 -0
- package/{esm2020 → esm2022}/testing/lib/services/index.mjs +2 -2
- package/esm2022/testing/lib/services/mock-permission.service.mjs +36 -0
- package/esm2022/testing/lib/services/mock-rest.service.mjs +32 -0
- package/{esm2020 → esm2022}/testing/lib/utils/clear-page.util.mjs +9 -9
- package/{esm2020 → esm2022}/testing/lib/utils/index.mjs +2 -2
- package/{esm2020 → esm2022}/testing/lib/utils/wait.util.mjs +4 -4
- package/{esm2020 → esm2022}/testing/public-api.mjs +3 -3
- package/{fesm2020 → fesm2022}/abp-ng.core-locale.mjs +45 -45
- package/{fesm2020 → fesm2022}/abp-ng.core-testing.mjs +120 -120
- package/{fesm2020 → fesm2022}/abp-ng.core-testing.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/abp-ng.core.mjs +4199 -4187
- package/fesm2022/abp-ng.core.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/abstracts/abstract-guard.d.ts +5 -0
- package/lib/abstracts/auth-response.model.d.ts +10 -10
- package/lib/abstracts/auth.guard.d.ts +9 -10
- package/lib/abstracts/auth.service.d.ts +30 -30
- package/lib/abstracts/index.d.ts +5 -4
- package/lib/abstracts/ng-model.component.d.ts +25 -25
- package/lib/clients/http.client.d.ts +11 -11
- package/lib/clients/index.d.ts +1 -1
- package/lib/components/dynamic-layout.component.d.ts +28 -28
- package/lib/components/index.d.ts +3 -3
- package/lib/components/replaceable-route-container.component.d.ts +17 -17
- package/lib/components/router-outlet.component.d.ts +5 -5
- package/lib/constants/different-locales.d.ts +334 -334
- package/lib/constants/index.d.ts +1 -1
- package/lib/core.module.d.ts +57 -57
- package/lib/directives/autofocus.directive.d.ts +12 -12
- package/lib/directives/debounce.directive.d.ts +13 -13
- package/lib/directives/for.directive.d.ts +36 -36
- package/lib/directives/form-submit.directive.d.ts +23 -23
- package/lib/directives/index.d.ts +8 -8
- package/lib/directives/init.directive.d.ts +10 -10
- package/lib/directives/permission.directive.d.ts +24 -24
- package/lib/directives/replaceable-template.directive.d.ts +29 -29
- package/lib/directives/stop-propagation.directive.d.ts +12 -12
- package/lib/enums/common.d.ts +5 -5
- package/lib/enums/index.d.ts +1 -1
- package/lib/guards/index.d.ts +1 -1
- package/lib/guards/permission.guard.d.ts +16 -16
- package/lib/handlers/routes.handler.d.ts +11 -11
- package/lib/interceptors/api.interceptor.d.ts +14 -14
- package/lib/interceptors/index.d.ts +1 -1
- package/lib/localization.module.d.ts +7 -7
- package/lib/models/auth.d.ts +14 -14
- package/lib/models/common.d.ts +79 -79
- package/lib/models/dtos.d.ts +107 -107
- package/lib/models/environment.d.ts +38 -38
- package/lib/models/index.d.ts +9 -9
- package/lib/models/localization.d.ts +5 -5
- package/lib/models/replaceable-components.d.ts +45 -45
- package/lib/models/rest.d.ts +36 -36
- package/lib/models/session.d.ts +7 -7
- package/lib/models/utility.d.ts +14 -14
- package/lib/pipes/index.d.ts +7 -7
- package/lib/pipes/localization.pipe.d.ts +12 -12
- package/lib/pipes/safe-html.pipe.d.ts +9 -9
- package/lib/pipes/short-date-time.pipe.d.ts +12 -12
- package/lib/pipes/short-date.pipe.d.ts +12 -12
- package/lib/pipes/short-time.pipe.d.ts +12 -12
- package/lib/pipes/sort.pipe.d.ts +9 -9
- package/lib/pipes/to-injector.pipe.d.ts +10 -10
- package/lib/providers/cookie-language.provider.d.ts +3 -3
- package/lib/providers/include-localization-resources.provider.d.ts +2 -2
- package/lib/providers/locale.provider.d.ts +9 -9
- package/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.d.ts +12 -12
- package/lib/proxy/pages/abp/multi-tenancy/index.d.ts +1 -1
- package/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.d.ts +11 -11
- package/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.d.ts +1 -1
- package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.d.ts +11 -11
- package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.d.ts +11 -11
- package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.d.ts +5 -5
- package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.d.ts +106 -106
- package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.d.ts +1 -1
- package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.d.ts +71 -71
- package/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.d.ts +1 -1
- package/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.d.ts +14 -14
- package/lib/proxy/volo/abp/http/modeling/index.d.ts +1 -1
- package/lib/proxy/volo/abp/http/modeling/models.d.ts +88 -88
- package/lib/proxy/volo/abp/localization/index.d.ts +1 -1
- package/lib/proxy/volo/abp/localization/models.d.ts +7 -7
- package/lib/proxy/volo/abp/models.d.ts +4 -4
- package/lib/services/config-state.service.d.ts +379 -378
- package/lib/services/content-projection.service.d.ts +10 -10
- package/lib/services/dom-insertion.service.d.ts +10 -10
- package/lib/services/environment.service.d.ts +103 -103
- package/lib/services/http-error-reporter.service.d.ts +12 -12
- package/lib/services/http-wait.service.d.ts +30 -30
- package/lib/services/index.d.ts +21 -21
- package/lib/services/lazy-load.service.d.ts +13 -13
- package/lib/services/list.service.d.ts +39 -39
- package/lib/services/local-storage.service.d.ts +13 -13
- package/lib/services/localization.service.d.ts +54 -54
- package/lib/services/multi-tenancy.service.d.ts +22 -22
- package/lib/services/permission.service.d.ts +19 -19
- package/lib/services/replaceable-components.service.d.ts +19 -19
- package/lib/services/resource-wait.service.d.ts +15 -15
- package/lib/services/rest.service.d.ts +24 -24
- package/lib/services/router-events.service.d.ts +29 -29
- package/lib/services/router-wait.service.d.ts +20 -20
- package/lib/services/routes.service.d.ts +57 -57
- package/lib/services/session-state.service.d.ts +27 -27
- package/lib/services/subscription.service.d.ts +17 -17
- package/lib/services/track-by.service.d.ts +11 -11
- package/lib/strategies/container.strategy.d.ts +22 -22
- package/lib/strategies/content-security.strategy.d.ts +17 -17
- package/lib/strategies/content.strategy.d.ts +26 -26
- package/lib/strategies/context.strategy.d.ts +23 -23
- package/lib/strategies/cross-origin.strategy.d.ts +14 -14
- package/lib/strategies/dom.strategy.d.ts +13 -13
- package/lib/strategies/index.d.ts +8 -8
- package/lib/strategies/loading.strategy.d.ts +28 -28
- package/lib/strategies/projection.strategy.d.ts +39 -39
- package/lib/tokens/app-config.token.d.ts +3 -3
- package/lib/tokens/check-authentication-state.d.ts +3 -3
- package/lib/tokens/cookie-language-key.token.d.ts +2 -2
- package/lib/tokens/http-context.token.d.ts +2 -2
- package/lib/tokens/include-localization-resources.token.d.ts +2 -2
- package/lib/tokens/index.d.ts +15 -15
- package/lib/tokens/list.token.d.ts +2 -2
- package/lib/tokens/localization.token.d.ts +6 -6
- package/lib/tokens/lodaer-delay.token.d.ts +2 -2
- package/lib/tokens/manage-profile.token.d.ts +2 -2
- package/lib/tokens/options.token.d.ts +4 -4
- package/lib/tokens/others-group.token.d.ts +2 -2
- package/lib/tokens/pipe-to-login.token.d.ts +3 -3
- package/lib/tokens/queue.token.d.ts +3 -3
- package/lib/tokens/set-token-response-to-storage.token.d.ts +6 -6
- package/lib/tokens/tenant-key.token.d.ts +2 -2
- package/lib/utils/array-utils.d.ts +1 -1
- package/lib/utils/common-utils.d.ts +11 -11
- package/lib/utils/date-extensions.d.ts +6 -6
- package/lib/utils/date-utils.d.ts +4 -4
- package/lib/utils/environment-utils.d.ts +3 -3
- package/lib/utils/factory-utils.d.ts +11 -11
- package/lib/utils/file-utils.d.ts +1 -1
- package/lib/utils/form-utils.d.ts +2 -2
- package/lib/utils/generator-utils.d.ts +3 -3
- package/lib/utils/http-utils.d.ts +8 -8
- package/lib/utils/index.d.ts +20 -20
- package/lib/utils/initial-utils.d.ts +3 -3
- package/lib/utils/internal-store-utils.d.ts +14 -14
- package/lib/utils/lazy-load-utils.d.ts +4 -4
- package/lib/utils/localization-utils.d.ts +5 -5
- package/lib/utils/multi-tenancy-utils.d.ts +3 -3
- package/lib/utils/number-utils.d.ts +1 -1
- package/lib/utils/object-utils.d.ts +2 -2
- package/lib/utils/queue.d.ts +14 -14
- package/lib/utils/route-utils.d.ts +8 -8
- package/lib/utils/string-utils.d.ts +3 -3
- package/lib/utils/tree-utils.d.ts +26 -26
- package/lib/validators/age.validator.d.ts +10 -10
- package/lib/validators/credit-card.validator.d.ts +5 -5
- package/lib/validators/index.d.ts +28 -24
- package/lib/validators/range.validator.d.ts +12 -12
- package/lib/validators/required.validator.d.ts +8 -8
- package/lib/validators/string-length.validator.d.ts +14 -14
- package/lib/validators/unique-character.validator.d.ts +5 -0
- package/lib/validators/url.validator.d.ts +5 -5
- package/lib/validators/username.validator.d.ts +10 -10
- package/locale/index.d.ts +5 -5
- package/locale/public-api.d.ts +1 -1
- package/locale/utils/register-locale.d.ts +13 -13
- package/package.json +12 -22
- package/public-api.d.ts +25 -25
- package/testing/index.d.ts +5 -5
- package/testing/lib/core-testing.module.d.ts +16 -16
- package/testing/lib/services/index.d.ts +2 -2
- package/testing/lib/services/mock-permission.service.d.ts +10 -10
- package/testing/lib/services/mock-rest.service.d.ts +14 -14
- package/testing/lib/utils/clear-page.util.d.ts +2 -2
- package/testing/lib/utils/index.d.ts +2 -2
- package/testing/lib/utils/wait.util.d.ts +2 -2
- package/testing/public-api.d.ts +3 -3
- package/esm2020/lib/abstracts/auth.guard.mjs +0 -17
- package/esm2020/lib/abstracts/auth.service.mjs +0 -45
- package/esm2020/lib/abstracts/index.mjs +0 -5
- package/esm2020/lib/abstracts/ng-model.component.mjs +0 -59
- package/esm2020/lib/clients/http.client.mjs +0 -34
- package/esm2020/lib/components/dynamic-layout.component.mjs +0 -100
- package/esm2020/lib/components/replaceable-route-container.component.mjs +0 -42
- package/esm2020/lib/components/router-outlet.component.mjs +0 -15
- package/esm2020/lib/core.module.mjs +0 -282
- package/esm2020/lib/directives/autofocus.directive.mjs +0 -30
- package/esm2020/lib/directives/debounce.directive.mjs +0 -36
- package/esm2020/lib/directives/for.directive.mjs +0 -159
- package/esm2020/lib/directives/form-submit.directive.mjs +0 -77
- package/esm2020/lib/directives/init.directive.mjs +0 -21
- package/esm2020/lib/directives/permission.directive.mjs +0 -74
- package/esm2020/lib/directives/replaceable-template.directive.mjs +0 -132
- package/esm2020/lib/directives/stop-propagation.directive.mjs +0 -32
- package/esm2020/lib/guards/permission.guard.mjs +0 -44
- package/esm2020/lib/handlers/routes.handler.mjs +0 -51
- package/esm2020/lib/interceptors/api.interceptor.mjs +0 -27
- package/esm2020/lib/localization.module.mjs +0 -16
- package/esm2020/lib/pipes/localization.pipe.mjs +0 -33
- package/esm2020/lib/pipes/safe-html.pipe.mjs +0 -23
- package/esm2020/lib/pipes/short-date-time.pipe.mjs +0 -34
- package/esm2020/lib/pipes/short-date.pipe.mjs +0 -34
- package/esm2020/lib/pipes/short-time.pipe.mjs +0 -34
- package/esm2020/lib/pipes/sort.pipe.mjs +0 -49
- package/esm2020/lib/pipes/to-injector.pipe.mjs +0 -29
- package/esm2020/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.mjs +0 -27
- package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.mjs +0 -24
- package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.mjs +0 -24
- package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.mjs +0 -24
- package/esm2020/lib/services/config-state.service.mjs +0 -178
- package/esm2020/lib/services/content-projection.service.mjs +0 -17
- package/esm2020/lib/services/dom-insertion.service.mjs +0 -34
- package/esm2020/lib/services/environment.service.mjs +0 -48
- package/esm2020/lib/services/http-error-reporter.service.mjs +0 -29
- package/esm2020/lib/services/http-wait.service.mjs +0 -75
- package/esm2020/lib/services/lazy-load.service.mjs +0 -40
- package/esm2020/lib/services/list.service.mjs +0 -102
- package/esm2020/lib/services/local-storage.service.mjs +0 -32
- package/esm2020/lib/services/localization.service.mjs +0 -217
- package/esm2020/lib/services/multi-tenancy.service.mjs +0 -48
- package/esm2020/lib/services/permission.service.mjs +0 -63
- package/esm2020/lib/services/replaceable-components.service.mjs +0 -49
- package/esm2020/lib/services/resource-wait.service.mjs +0 -39
- package/esm2020/lib/services/rest.service.mjs +0 -78
- package/esm2020/lib/services/router-events.service.mjs +0 -38
- package/esm2020/lib/services/router-wait.service.mjs +0 -51
- package/esm2020/lib/services/routes.service.mjs +0 -163
- package/esm2020/lib/services/session-state.service.mjs +0 -80
- package/esm2020/lib/services/subscription.service.mjs +0 -43
- package/esm2020/lib/services/track-by.service.mjs +0 -21
- package/esm2020/lib/utils/internal-store-utils.mjs +0 -37
- package/esm2020/lib/validators/index.mjs +0 -25
- package/esm2020/testing/lib/core-testing.module.mjs +0 -67
- package/esm2020/testing/lib/services/mock-permission.service.mjs +0 -35
- package/esm2020/testing/lib/services/mock-rest.service.mjs +0 -31
- package/fesm2015/abp-ng.core-locale.mjs +0 -57
- package/fesm2015/abp-ng.core-locale.mjs.map +0 -1
- package/fesm2015/abp-ng.core-testing.mjs +0 -146
- package/fesm2015/abp-ng.core-testing.mjs.map +0 -1
- package/fesm2015/abp-ng.core.mjs +0 -4460
- package/fesm2015/abp-ng.core.mjs.map +0 -1
- package/fesm2020/abp-ng.core.mjs.map +0 -1
- package/src/lib/proxy/README.md +0 -17
- /package/{fesm2020 → fesm2022}/abp-ng.core-locale.mjs.map +0 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, Input, Output, Self, } from '@angular/core';
|
|
2
|
+
import { FormGroupDirective } from '@angular/forms';
|
|
3
|
+
import { fromEvent } from 'rxjs';
|
|
4
|
+
import { debounceTime, filter } from 'rxjs/operators';
|
|
5
|
+
import { SubscriptionService } from '../services/subscription.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/forms";
|
|
8
|
+
import * as i2 from "../services/subscription.service";
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated FormSubmitDirective will be removed in V7.0.0. Use `ngSubmit` instead.
|
|
11
|
+
*/
|
|
12
|
+
class FormSubmitDirective {
|
|
13
|
+
constructor(formGroupDirective, host, cdRef, subscription) {
|
|
14
|
+
this.formGroupDirective = formGroupDirective;
|
|
15
|
+
this.host = host;
|
|
16
|
+
this.cdRef = cdRef;
|
|
17
|
+
this.subscription = subscription;
|
|
18
|
+
this.debounce = 200;
|
|
19
|
+
this.markAsDirtyWhenSubmit = true;
|
|
20
|
+
this.ngSubmit = new EventEmitter();
|
|
21
|
+
this.executedNgSubmit = false;
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
this.subscription.addOne(this.formGroupDirective.ngSubmit, () => {
|
|
25
|
+
if (this.markAsDirtyWhenSubmit) {
|
|
26
|
+
this.markAsDirty();
|
|
27
|
+
}
|
|
28
|
+
this.executedNgSubmit = true;
|
|
29
|
+
});
|
|
30
|
+
const keyup$ = fromEvent(this.host.nativeElement, 'keyup').pipe(debounceTime(this.debounce), filter(event => !(event.target instanceof HTMLTextAreaElement)), filter(event => event && event.key === 'Enter'));
|
|
31
|
+
this.subscription.addOne(keyup$, () => {
|
|
32
|
+
if (!this.executedNgSubmit) {
|
|
33
|
+
this.host.nativeElement.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));
|
|
34
|
+
}
|
|
35
|
+
this.executedNgSubmit = false;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
markAsDirty() {
|
|
39
|
+
const { form } = this.formGroupDirective;
|
|
40
|
+
setDirty(form.controls);
|
|
41
|
+
form.markAsDirty();
|
|
42
|
+
this.cdRef.detectChanges();
|
|
43
|
+
}
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FormSubmitDirective, deps: [{ token: i1.FormGroupDirective, self: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
45
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: { debounce: "debounce", notValidateOnSubmit: "notValidateOnSubmit", markAsDirtyWhenSubmit: "markAsDirtyWhenSubmit" }, outputs: { ngSubmit: "ngSubmit" }, providers: [SubscriptionService], ngImport: i0 }); }
|
|
46
|
+
}
|
|
47
|
+
export { FormSubmitDirective };
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FormSubmitDirective, decorators: [{
|
|
49
|
+
type: Directive,
|
|
50
|
+
args: [{
|
|
51
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
52
|
+
selector: 'form[ngSubmit][formGroup]',
|
|
53
|
+
providers: [SubscriptionService],
|
|
54
|
+
}]
|
|
55
|
+
}], ctorParameters: function () { return [{ type: i1.FormGroupDirective, decorators: [{
|
|
56
|
+
type: Self
|
|
57
|
+
}] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.SubscriptionService }]; }, propDecorators: { debounce: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], notValidateOnSubmit: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], markAsDirtyWhenSubmit: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], ngSubmit: [{
|
|
64
|
+
type: Output
|
|
65
|
+
}] } });
|
|
66
|
+
function setDirty(controls) {
|
|
67
|
+
if (Array.isArray(controls)) {
|
|
68
|
+
controls.forEach(group => {
|
|
69
|
+
setDirty(group.controls);
|
|
70
|
+
});
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
Object.keys(controls).forEach(key => {
|
|
74
|
+
controls[key].markAsDirty();
|
|
75
|
+
controls[key].updateValueAndValidity();
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdWJtaXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZm9ybS1zdWJtaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUF3QyxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQUd2RTs7R0FFRztBQUNILE1BS2EsbUJBQW1CO0lBZTlCLFlBQ2tCLGtCQUFzQyxFQUM5QyxJQUFpQyxFQUNqQyxLQUF3QixFQUN4QixZQUFpQztRQUh6Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQzlDLFNBQUksR0FBSixJQUFJLENBQTZCO1FBQ2pDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQWpCM0MsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQU9mLDBCQUFxQixHQUFHLElBQUksQ0FBQztRQUVWLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWpELHFCQUFnQixHQUFHLEtBQUssQ0FBQztJQU90QixDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1lBQzlELElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO2dCQUM5QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDcEI7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFnQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQTRCLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUMzRixZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUMzQixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sWUFBWSxtQkFBbUIsQ0FBQyxDQUFDLEVBQy9ELE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQyxDQUNoRCxDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQ25DLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQ3pELENBQUM7YUFDSDtZQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFFekMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFpRCxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5CLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0F2RFUsbUJBQW1CO2tHQUFuQixtQkFBbUIscU5BRm5CLENBQUMsbUJBQW1CLENBQUM7O1NBRXJCLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUwvQixTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ2pDOzswQkFpQkksSUFBSTt1SUFkUCxRQUFRO3NCQURQLEtBQUs7Z0JBS04sbUJBQW1CO3NCQURsQixLQUFLO2dCQUlOLHFCQUFxQjtzQkFEcEIsS0FBSztnQkFHYSxRQUFRO3NCQUExQixNQUFNOztBQStDVCxTQUFTLFFBQVEsQ0FBQyxRQUFrQjtJQUNsQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDM0IsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QixRQUFRLENBQUMsS0FBSyxDQUFDLFFBQWlELENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU87S0FDUjtJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ2xDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM1QixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUN6QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNlbGYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cERpcmVjdGl2ZSwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zdWJzY3JpcHRpb24uc2VydmljZSc7XHJcblxyXG50eXBlIENvbnRyb2xzID0geyBba2V5OiBzdHJpbmddOiBVbnR5cGVkRm9ybUNvbnRyb2wgfSB8IFVudHlwZWRGb3JtR3JvdXBbXTtcclxuLyoqXHJcbiAqIEBkZXByZWNhdGVkIEZvcm1TdWJtaXREaXJlY3RpdmUgd2lsbCBiZSByZW1vdmVkIGluIFY3LjAuMC4gVXNlIGBuZ1N1Ym1pdGAgaW5zdGVhZC5cclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdmb3JtW25nU3VibWl0XVtmb3JtR3JvdXBdJyxcclxuICBwcm92aWRlcnM6IFtTdWJzY3JpcHRpb25TZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1TdWJtaXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgZGVib3VuY2UgPSAyMDA7XHJcblxyXG4gIC8vIFRPRE86IFJlbW92ZSB1bnVzZWQgaW5wdXRcclxuICBASW5wdXQoKVxyXG4gIG5vdFZhbGlkYXRlT25TdWJtaXQ/OiBzdHJpbmcgfCBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1hcmtBc0RpcnR5V2hlblN1Ym1pdCA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKSByZWFkb25seSBuZ1N1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgZXhlY3V0ZWROZ1N1Ym1pdCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBTZWxmKCkgcHJpdmF0ZSBmb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgIHByaXZhdGUgaG9zdDogRWxlbWVudFJlZjxIVE1MRm9ybUVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkT25lKHRoaXMuZm9ybUdyb3VwRGlyZWN0aXZlLm5nU3VibWl0LCAoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLm1hcmtBc0RpcnR5V2hlblN1Ym1pdCkge1xyXG4gICAgICAgIHRoaXMubWFya0FzRGlydHkoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5leGVjdXRlZE5nU3VibWl0ID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGtleXVwJCA9IGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLmhvc3QubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCwgJ2tleXVwJykucGlwZShcclxuICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2UpLFxyXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gIShldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50KSksXHJcbiAgICAgIGZpbHRlcihldmVudCA9PiBldmVudCAmJiBldmVudC5rZXkgPT09ICdFbnRlcicpLFxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGRPbmUoa2V5dXAkLCAoKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5leGVjdXRlZE5nU3VibWl0KSB7XHJcbiAgICAgICAgdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChcclxuICAgICAgICAgIG5ldyBFdmVudCgnc3VibWl0JywgeyBidWJibGVzOiB0cnVlLCBjYW5jZWxhYmxlOiB0cnVlIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZXhlY3V0ZWROZ1N1Ym1pdCA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBtYXJrQXNEaXJ0eSgpIHtcclxuICAgIGNvbnN0IHsgZm9ybSB9ID0gdGhpcy5mb3JtR3JvdXBEaXJlY3RpdmU7XHJcblxyXG4gICAgc2V0RGlydHkoZm9ybS5jb250cm9scyBhcyB7IFtrZXk6IHN0cmluZ106IFVudHlwZWRGb3JtQ29udHJvbCB9KTtcclxuICAgIGZvcm0ubWFya0FzRGlydHkoKTtcclxuXHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldERpcnR5KGNvbnRyb2xzOiBDb250cm9scykge1xyXG4gIGlmIChBcnJheS5pc0FycmF5KGNvbnRyb2xzKSkge1xyXG4gICAgY29udHJvbHMuZm9yRWFjaChncm91cCA9PiB7XHJcbiAgICAgIHNldERpcnR5KGdyb3VwLmNvbnRyb2xzIGFzIHsgW2tleTogc3RyaW5nXTogVW50eXBlZEZvcm1Db250cm9sIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBPYmplY3Qua2V5cyhjb250cm9scykuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgY29udHJvbHNba2V5XS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgY29udHJvbHNba2V5XS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfSk7XHJcbn1cclxuIl19
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export * from './autofocus.directive';
|
|
2
|
-
export * from './debounce.directive';
|
|
3
|
-
export * from './for.directive';
|
|
4
|
-
export * from './form-submit.directive';
|
|
5
|
-
export * from './init.directive';
|
|
6
|
-
export * from './permission.directive';
|
|
7
|
-
export * from './replaceable-template.directive';
|
|
8
|
-
export * from './stop-propagation.directive';
|
|
1
|
+
export * from './autofocus.directive';
|
|
2
|
+
export * from './debounce.directive';
|
|
3
|
+
export * from './for.directive';
|
|
4
|
+
export * from './form-submit.directive';
|
|
5
|
+
export * from './init.directive';
|
|
6
|
+
export * from './permission.directive';
|
|
7
|
+
export * from './replaceable-template.directive';
|
|
8
|
+
export * from './stop-propagation.directive';
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RlYm91bmNlLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZm9yLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZm9ybS1zdWJtaXQuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbml0LmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGVybWlzc2lvbi5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcGxhY2VhYmxlLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3RvcC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUnO1xyXG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Directive, Output, EventEmitter, ElementRef } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
class InitDirective {
|
|
4
|
+
constructor(elRef) {
|
|
5
|
+
this.elRef = elRef;
|
|
6
|
+
this.init = new EventEmitter();
|
|
7
|
+
}
|
|
8
|
+
ngAfterViewInit() {
|
|
9
|
+
this.init.emit(this.elRef);
|
|
10
|
+
}
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: InitDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: InitDirective, selector: "[abpInit]", outputs: { init: "abpInit" }, ngImport: i0 }); }
|
|
13
|
+
}
|
|
14
|
+
export { InitDirective };
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: InitDirective, decorators: [{
|
|
16
|
+
type: Directive,
|
|
17
|
+
args: [{ selector: '[abpInit]' }]
|
|
18
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { init: [{
|
|
19
|
+
type: Output,
|
|
20
|
+
args: ['abpInit']
|
|
21
|
+
}] } });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9pbml0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFFM0YsTUFDYSxhQUFhO0lBR3hCLFlBQW9CLEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFGVCxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7SUFFL0IsQ0FBQztJQUV6QyxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7OEdBUFUsYUFBYTtrR0FBYixhQUFhOztTQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFEekIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7aUdBRU4sSUFBSTtzQkFBL0IsTUFBTTt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2FicEluaXRdJyB9KVxyXG5leHBvcnQgY2xhc3MgSW5pdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIEBPdXRwdXQoJ2FicEluaXQnKSByZWFkb25seSBpbml0ID0gbmV3IEV2ZW50RW1pdHRlcjxFbGVtZW50UmVmPGFueT4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYpIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdC5lbWl0KHRoaXMuZWxSZWYpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { ChangeDetectorRef, Directive, Inject, Input, Optional, TemplateRef, ViewContainerRef, } from '@angular/core';
|
|
2
|
+
import { ReplaySubject } from 'rxjs';
|
|
3
|
+
import { distinctUntilChanged, take } from 'rxjs/operators';
|
|
4
|
+
import { PermissionService } from '../services/permission.service';
|
|
5
|
+
import { QUEUE_MANAGER } from '../tokens/queue.token';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../services/permission.service";
|
|
8
|
+
class PermissionDirective {
|
|
9
|
+
constructor(templateRef, vcRef, permissionService, cdRef, queue) {
|
|
10
|
+
this.templateRef = templateRef;
|
|
11
|
+
this.vcRef = vcRef;
|
|
12
|
+
this.permissionService = permissionService;
|
|
13
|
+
this.cdRef = cdRef;
|
|
14
|
+
this.queue = queue;
|
|
15
|
+
this.runChangeDetection = true;
|
|
16
|
+
this.cdrSubject = new ReplaySubject();
|
|
17
|
+
this.rendered = false;
|
|
18
|
+
}
|
|
19
|
+
check() {
|
|
20
|
+
if (this.subscription) {
|
|
21
|
+
this.subscription.unsubscribe();
|
|
22
|
+
}
|
|
23
|
+
this.subscription = this.permissionService
|
|
24
|
+
.getGrantedPolicy$(this.condition || '')
|
|
25
|
+
.pipe(distinctUntilChanged())
|
|
26
|
+
.subscribe(isGranted => {
|
|
27
|
+
this.vcRef.clear();
|
|
28
|
+
if (isGranted)
|
|
29
|
+
this.vcRef.createEmbeddedView(this.templateRef);
|
|
30
|
+
if (this.runChangeDetection) {
|
|
31
|
+
if (!this.rendered) {
|
|
32
|
+
this.cdrSubject.next();
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
this.cdRef.detectChanges();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.cdRef.markForCheck();
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
ngOnDestroy() {
|
|
44
|
+
if (this.subscription)
|
|
45
|
+
this.subscription.unsubscribe();
|
|
46
|
+
}
|
|
47
|
+
ngOnChanges() {
|
|
48
|
+
this.check();
|
|
49
|
+
}
|
|
50
|
+
ngAfterViewInit() {
|
|
51
|
+
this.cdrSubject.pipe(take(1)).subscribe(() => this.queue.add(() => this.cdRef.detectChanges()));
|
|
52
|
+
this.rendered = true;
|
|
53
|
+
}
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: PermissionDirective, deps: [{ token: i0.TemplateRef, optional: true }, { token: i0.ViewContainerRef }, { token: i1.PermissionService }, { token: i0.ChangeDetectorRef }, { token: QUEUE_MANAGER }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
55
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: PermissionDirective, selector: "[abpPermission]", inputs: { condition: ["abpPermission", "condition"], runChangeDetection: ["abpPermissionRunChangeDetection", "runChangeDetection"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
56
|
+
}
|
|
57
|
+
export { PermissionDirective };
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: PermissionDirective, decorators: [{
|
|
59
|
+
type: Directive,
|
|
60
|
+
args: [{
|
|
61
|
+
selector: '[abpPermission]',
|
|
62
|
+
}]
|
|
63
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef, decorators: [{
|
|
64
|
+
type: Optional
|
|
65
|
+
}] }, { type: i0.ViewContainerRef }, { type: i1.PermissionService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
|
|
66
|
+
type: Inject,
|
|
67
|
+
args: [QUEUE_MANAGER]
|
|
68
|
+
}] }]; }, propDecorators: { condition: [{
|
|
69
|
+
type: Input,
|
|
70
|
+
args: ['abpPermission']
|
|
71
|
+
}], runChangeDetection: [{
|
|
72
|
+
type: Input,
|
|
73
|
+
args: ['abpPermissionRunChangeDetection']
|
|
74
|
+
}] } });
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9wZXJtaXNzaW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixXQUFXLEVBQ1gsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQUd0RCxNQUdhLG1CQUFtQjtJQVc5QixZQUNzQixXQUE2QixFQUN6QyxLQUF1QixFQUN2QixpQkFBb0MsRUFDcEMsS0FBd0IsRUFDRixLQUFtQjtRQUo3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDekMsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFDdkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUNGLFVBQUssR0FBTCxLQUFLLENBQWM7UUFiVCx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFJcEUsZUFBVSxHQUFHLElBQUksYUFBYSxFQUFRLENBQUM7UUFFdkMsYUFBUSxHQUFHLEtBQUssQ0FBQztJQVFkLENBQUM7SUFFSSxLQUFLO1FBQ1gsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDakM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUI7YUFDdkMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7YUFDdkMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDNUIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsSUFBSSxTQUFTO2dCQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9ELElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDeEI7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztpQkFDNUI7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQzNCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVk7WUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQzs4R0FyRFUsbUJBQW1CLCtKQWdCcEIsYUFBYTtrR0FoQlosbUJBQW1COztTQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1Qjs7MEJBYUksUUFBUTs7MEJBSVIsTUFBTTsyQkFBQyxhQUFhOzRDQWZDLFNBQVM7c0JBQWhDLEtBQUs7dUJBQUMsZUFBZTtnQkFFb0Isa0JBQWtCO3NCQUEzRCxLQUFLO3VCQUFDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBEaXJlY3RpdmUsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3B0aW9uYWwsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Blcm1pc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFFVRVVFX01BTkFHRVIgfSBmcm9tICcuLi90b2tlbnMvcXVldWUudG9rZW4nO1xyXG5pbXBvcnQgeyBRdWV1ZU1hbmFnZXIgfSBmcm9tICcuLi91dGlscy9xdWV1ZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thYnBQZXJtaXNzaW9uXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgnYWJwUGVybWlzc2lvbicpIGNvbmRpdGlvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICBASW5wdXQoJ2FicFBlcm1pc3Npb25SdW5DaGFuZ2VEZXRlY3Rpb24nKSBydW5DaGFuZ2VEZXRlY3Rpb24gPSB0cnVlO1xyXG5cclxuICBzdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNkclN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigpO1xyXG5cclxuICByZW5kZXJlZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgICBwcml2YXRlIHZjUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEBJbmplY3QoUVVFVUVfTUFOQUdFUikgcHVibGljIHF1ZXVlOiBRdWV1ZU1hbmFnZXIsXHJcbiAgKSB7fVxyXG5cclxuICBwcml2YXRlIGNoZWNrKCkge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlXHJcbiAgICAgIC5nZXRHcmFudGVkUG9saWN5JCh0aGlzLmNvbmRpdGlvbiB8fCAnJylcclxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcclxuICAgICAgLnN1YnNjcmliZShpc0dyYW50ZWQgPT4ge1xyXG4gICAgICAgIHRoaXMudmNSZWYuY2xlYXIoKTtcclxuICAgICAgICBpZiAoaXNHcmFudGVkKSB0aGlzLnZjUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmKTtcclxuICAgICAgICBpZiAodGhpcy5ydW5DaGFuZ2VEZXRlY3Rpb24pIHtcclxuICAgICAgICAgIGlmICghdGhpcy5yZW5kZXJlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmNkclN1YmplY3QubmV4dCgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmNkclN1YmplY3QucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5xdWV1ZS5hZGQoKCkgPT4gdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCkpKTtcclxuICAgIHRoaXMucmVuZGVyZWQgPSB0cnVlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Directive, Injector, Input, TemplateRef, ViewContainerRef, } from '@angular/core';
|
|
2
|
+
import compare from 'just-compare';
|
|
3
|
+
import { filter } from 'rxjs/operators';
|
|
4
|
+
import { ReplaceableComponentsService } from '../services/replaceable-components.service';
|
|
5
|
+
import { SubscriptionService } from '../services/subscription.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../services/replaceable-components.service";
|
|
8
|
+
import * as i2 from "../services/subscription.service";
|
|
9
|
+
class ReplaceableTemplateDirective {
|
|
10
|
+
constructor(injector, templateRef, vcRef, replaceableComponents, subscription) {
|
|
11
|
+
this.injector = injector;
|
|
12
|
+
this.templateRef = templateRef;
|
|
13
|
+
this.vcRef = vcRef;
|
|
14
|
+
this.replaceableComponents = replaceableComponents;
|
|
15
|
+
this.subscription = subscription;
|
|
16
|
+
this.providedData = {
|
|
17
|
+
inputs: {},
|
|
18
|
+
outputs: {},
|
|
19
|
+
};
|
|
20
|
+
this.context = {};
|
|
21
|
+
this.defaultComponentSubscriptions = {};
|
|
22
|
+
this.initialized = false;
|
|
23
|
+
this.context = {
|
|
24
|
+
initTemplate: (ref) => {
|
|
25
|
+
this.resetDefaultComponent();
|
|
26
|
+
this.defaultComponentRef = ref;
|
|
27
|
+
this.setDefaultComponentInputs();
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
ngOnInit() {
|
|
32
|
+
const component$ = this.replaceableComponents
|
|
33
|
+
.get$(this.data.componentKey)
|
|
34
|
+
.pipe(filter((res = {}) => !this.initialized || !compare(res.component, this.externalComponent)));
|
|
35
|
+
this.subscription.addOne(component$, (res = {}) => {
|
|
36
|
+
this.vcRef.clear();
|
|
37
|
+
this.externalComponent = res.component;
|
|
38
|
+
if (this.defaultComponentRef) {
|
|
39
|
+
this.resetDefaultComponent();
|
|
40
|
+
}
|
|
41
|
+
if (res.component) {
|
|
42
|
+
this.setProvidedData();
|
|
43
|
+
const customInjector = Injector.create({
|
|
44
|
+
providers: [{ provide: 'REPLACEABLE_DATA', useValue: this.providedData }],
|
|
45
|
+
parent: this.injector,
|
|
46
|
+
});
|
|
47
|
+
const ref = this.vcRef.createComponent(res.component, {
|
|
48
|
+
index: 0,
|
|
49
|
+
injector: customInjector,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.vcRef.createEmbeddedView(this.templateRef, this.context);
|
|
54
|
+
}
|
|
55
|
+
this.initialized = true;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
ngOnChanges(changes) {
|
|
59
|
+
if (changes?.data?.currentValue?.inputs && this.defaultComponentRef) {
|
|
60
|
+
this.setDefaultComponentInputs();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
setDefaultComponentInputs() {
|
|
64
|
+
if (!this.defaultComponentRef || (!this.data.inputs && !this.data.outputs))
|
|
65
|
+
return;
|
|
66
|
+
if (this.data.inputs) {
|
|
67
|
+
for (const key in this.data.inputs) {
|
|
68
|
+
if (Object.prototype.hasOwnProperty.call(this.data.inputs, key)) {
|
|
69
|
+
if (!compare(this.defaultComponentRef[key], this.data.inputs[key].value)) {
|
|
70
|
+
this.defaultComponentRef[key] = this.data.inputs[key].value;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (this.data.outputs) {
|
|
76
|
+
for (const key in this.data.outputs) {
|
|
77
|
+
if (Object.prototype.hasOwnProperty.call(this.data.outputs, key)) {
|
|
78
|
+
if (!this.defaultComponentSubscriptions[key]) {
|
|
79
|
+
this.defaultComponentSubscriptions[key] = this.defaultComponentRef[key].subscribe((value) => {
|
|
80
|
+
this.data.outputs?.[key](value);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
setProvidedData() {
|
|
88
|
+
this.providedData = { outputs: {}, ...this.data, inputs: {} };
|
|
89
|
+
if (!this.data.inputs)
|
|
90
|
+
return;
|
|
91
|
+
Object.defineProperties(this.providedData.inputs, {
|
|
92
|
+
...Object.keys(this.data.inputs).reduce((acc, key) => ({
|
|
93
|
+
...acc,
|
|
94
|
+
[key]: {
|
|
95
|
+
enumerable: true,
|
|
96
|
+
configurable: true,
|
|
97
|
+
get: () => this.data.inputs?.[key]?.value,
|
|
98
|
+
...(this.data.inputs?.[key]?.twoWay && {
|
|
99
|
+
set: (newValue) => {
|
|
100
|
+
if (this.data.inputs?.[key]) {
|
|
101
|
+
this.data.inputs[key].value = newValue;
|
|
102
|
+
}
|
|
103
|
+
if (this.data.outputs?.[`${key}Change`]) {
|
|
104
|
+
this.data.outputs[`${key}Change`](newValue);
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
}),
|
|
108
|
+
},
|
|
109
|
+
}), {}),
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
resetDefaultComponent() {
|
|
113
|
+
Object.keys(this.defaultComponentSubscriptions).forEach(key => {
|
|
114
|
+
this.defaultComponentSubscriptions[key].unsubscribe();
|
|
115
|
+
});
|
|
116
|
+
this.defaultComponentSubscriptions = {};
|
|
117
|
+
this.defaultComponentRef = null;
|
|
118
|
+
}
|
|
119
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ReplaceableTemplateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.ReplaceableComponentsService }, { token: i2.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
120
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: { data: ["abpReplaceableTemplate", "data"] }, providers: [SubscriptionService], usesOnChanges: true, ngImport: i0 }); }
|
|
121
|
+
}
|
|
122
|
+
export { ReplaceableTemplateDirective };
|
|
123
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ReplaceableTemplateDirective, decorators: [{
|
|
124
|
+
type: Directive,
|
|
125
|
+
args: [{
|
|
126
|
+
selector: '[abpReplaceableTemplate]',
|
|
127
|
+
providers: [SubscriptionService],
|
|
128
|
+
}]
|
|
129
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.ReplaceableComponentsService }, { type: i2.SubscriptionService }]; }, propDecorators: { data: [{
|
|
130
|
+
type: Input,
|
|
131
|
+
args: ['abpReplaceableTemplate']
|
|
132
|
+
}] } });
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZWFibGUtdGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvcmVwbGFjZWFibGUtdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLEtBQUssRUFJTCxXQUFXLEVBRVgsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUVuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFFdkUsTUFJYSw0QkFBNEI7SUFtQnZDLFlBQ1UsUUFBa0IsRUFDbEIsV0FBNkIsRUFDN0IsS0FBdUIsRUFDdkIscUJBQW1ELEVBQ25ELFlBQWlDO1FBSmpDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBOEI7UUFDbkQsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBcEIzQyxpQkFBWSxHQUFHO1lBQ2IsTUFBTSxFQUFFLEVBQUU7WUFDVixPQUFPLEVBQUUsRUFBRTtTQUMrQyxDQUFDO1FBRTdELFlBQU8sR0FBRyxFQUFTLENBQUM7UUFNcEIsa0NBQTZCLEdBQUcsRUFBa0MsQ0FBQztRQUVuRSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQVNsQixJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsWUFBWSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxx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QUE0QjtrR0FBNUIsNEJBQTRCLHlHQUY1QixDQUFDLG1CQUFtQixDQUFDOztTQUVyQiw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFKeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDakM7cU9BR0MsSUFBSTtzQkFESCxLQUFLO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBUeXBlLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBjb21wYXJlIGZyb20gJ2p1c3QtY29tcGFyZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscy9jb21tb24nO1xyXG5pbXBvcnQgeyBSZXBsYWNlYWJsZUNvbXBvbmVudHMgfSBmcm9tICcuLi9tb2RlbHMvcmVwbGFjZWFibGUtY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IFJlcGxhY2VhYmxlQ29tcG9uZW50c1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZXBsYWNlYWJsZS1jb21wb25lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYWJwUmVwbGFjZWFibGVUZW1wbGF0ZV0nLFxyXG4gIHByb3ZpZGVyczogW1N1YnNjcmlwdGlvblNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoJ2FicFJlcGxhY2VhYmxlVGVtcGxhdGUnKVxyXG4gIGRhdGEhOiBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZUlucHV0PGFueSwgYW55PjtcclxuXHJcbiAgcHJvdmlkZWREYXRhID0ge1xyXG4gICAgaW5wdXRzOiB7fSxcclxuICAgIG91dHB1dHM6IHt9LFxyXG4gIH0gYXMgUmVwbGFjZWFibGVDb21wb25lbnRzLlJlcGxhY2VhYmxlVGVtcGxhdGVEYXRhPGFueSwgYW55PjtcclxuXHJcbiAgY29udGV4dCA9IHt9IGFzIGFueTtcclxuXHJcbiAgZXh0ZXJuYWxDb21wb25lbnQhOiBUeXBlPGFueT47XHJcblxyXG4gIGRlZmF1bHRDb21wb25lbnRSZWY6IGFueTtcclxuXHJcbiAgZGVmYXVsdENvbXBvbmVudFN1YnNjcmlwdGlvbnMgPSB7fSBhcyBBQlAuRGljdGlvbmFyeTxTdWJzY3JpcHRpb24+O1xyXG5cclxuICBpbml0aWFsaXplZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIHJlcGxhY2VhYmxlQ29tcG9uZW50czogUmVwbGFjZWFibGVDb21wb25lbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb25TZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5jb250ZXh0ID0ge1xyXG4gICAgICBpbml0VGVtcGxhdGU6IChyZWY6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMucmVzZXREZWZhdWx0Q29tcG9uZW50KCk7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0Q29tcG9uZW50UmVmID0gcmVmO1xyXG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdENvbXBvbmVudElucHV0cygpO1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgY29tcG9uZW50JCA9IHRoaXMucmVwbGFjZWFibGVDb21wb25lbnRzXHJcbiAgICAgIC5nZXQkKHRoaXMuZGF0YS5jb21wb25lbnRLZXkpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlcihcclxuICAgICAgICAgIChyZXMgPSB7fSBhcyBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVDb21wb25lbnQpID0+XHJcbiAgICAgICAgICAgICF0aGlzLmluaXRpYWxpemVkIHx8ICFjb21wYXJlKHJlcy5jb21wb25lbnQsIHRoaXMuZXh0ZXJuYWxDb21wb25lbnQpLFxyXG4gICAgICAgICksXHJcbiAgICAgICk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkT25lKFxyXG4gICAgICBjb21wb25lbnQkLFxyXG4gICAgICAocmVzID0ge30gYXMgUmVwbGFjZWFibGVDb21wb25lbnRzLlJlcGxhY2VhYmxlQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgICAgdGhpcy52Y1JlZi5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMuZXh0ZXJuYWxDb21wb25lbnQgPSByZXMuY29tcG9uZW50O1xyXG4gICAgICAgIGlmICh0aGlzLmRlZmF1bHRDb21wb25lbnRSZWYpIHtcclxuICAgICAgICAgIHRoaXMucmVzZXREZWZhdWx0Q29tcG9uZW50KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVzLmNvbXBvbmVudCkge1xyXG4gICAgICAgICAgdGhpcy5zZXRQcm92aWRlZERhdGEoKTtcclxuICAgICAgICAgIGNvbnN0IGN1c3RvbUluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiAnUkVQTEFDRUFCTEVfREFUQScsIHVzZVZhbHVlOiB0aGlzLnByb3ZpZGVkRGF0YSB9XSxcclxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBjb25zdCByZWYgPSB0aGlzLnZjUmVmLmNyZWF0ZUNvbXBvbmVudChyZXMuY29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIGluZGV4OiAwLFxyXG4gICAgICAgICAgICBpbmplY3RvcjogY3VzdG9tSW5qZWN0b3IsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy52Y1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy5jb250ZXh0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzPy5kYXRhPy5jdXJyZW50VmFsdWU/LmlucHV0cyAmJiB0aGlzLmRlZmF1bHRDb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5zZXREZWZhdWx0Q29tcG9uZW50SW5wdXRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0Q29tcG9uZW50SW5wdXRzKCkge1xyXG4gICAgaWYgKCF0aGlzLmRlZmF1bHRDb21wb25lbnRSZWYgfHwgKCF0aGlzLmRhdGEuaW5wdXRzICYmICF0aGlzLmRhdGEub3V0cHV0cykpIHJldHVybjtcclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLmlucHV0cykge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmRhdGEuaW5wdXRzKSB7XHJcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmRhdGEuaW5wdXRzLCBrZXkpKSB7XHJcbiAgICAgICAgICBpZiAoIWNvbXBhcmUodGhpcy5kZWZhdWx0Q29tcG9uZW50UmVmW2tleV0sIHRoaXMuZGF0YS5pbnB1dHNba2V5XS52YWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29tcG9uZW50UmVmW2tleV0gPSB0aGlzLmRhdGEuaW5wdXRzW2tleV0udmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5vdXRwdXRzKSB7XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZGF0YS5vdXRwdXRzKSB7XHJcbiAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmRhdGEub3V0cHV0cywga2V5KSkge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmRlZmF1bHRDb21wb25lbnRTdWJzY3JpcHRpb25zW2tleV0pIHtcclxuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29tcG9uZW50U3Vic2NyaXB0aW9uc1trZXldID0gdGhpcy5kZWZhdWx0Q29tcG9uZW50UmVmW2tleV0uc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEub3V0cHV0cz8uW2tleV0odmFsdWUpO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQcm92aWRlZERhdGEoKSB7XHJcbiAgICB0aGlzLnByb3ZpZGVkRGF0YSA9IHsgb3V0cHV0czoge30sIC4uLnRoaXMuZGF0YSwgaW5wdXRzOiB7fSB9O1xyXG5cclxuICAgIGlmICghdGhpcy5kYXRhLmlucHV0cykgcmV0dXJuO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcy5wcm92aWRlZERhdGEuaW5wdXRzLCB7XHJcbiAgICAgIC4uLk9iamVjdC5rZXlzKHRoaXMuZGF0YS5pbnB1dHMpLnJlZHVjZShcclxuICAgICAgICAoYWNjLCBrZXkpID0+ICh7XHJcbiAgICAgICAgICAuLi5hY2MsXHJcbiAgICAgICAgICBba2V5XToge1xyXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGdldDogKCkgPT4gdGhpcy5kYXRhLmlucHV0cz8uW2tleV0/LnZhbHVlLFxyXG4gICAgICAgICAgICAuLi4odGhpcy5kYXRhLmlucHV0cz8uW2tleV0/LnR3b1dheSAmJiB7XHJcbiAgICAgICAgICAgICAgc2V0OiAobmV3VmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5pbnB1dHM/LltrZXldKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5pbnB1dHNba2V5XS52YWx1ZSA9IG5ld1ZhbHVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YS5vdXRwdXRzPy5bYCR7a2V5fUNoYW5nZWBdKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5vdXRwdXRzW2Ake2tleX1DaGFuZ2VgXShuZXdWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHt9LFxyXG4gICAgICApLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZXNldERlZmF1bHRDb21wb25lbnQoKSB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmRlZmF1bHRDb21wb25lbnRTdWJzY3JpcHRpb25zKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbXBvbmVudFN1YnNjcmlwdGlvbnNba2V5XS51bnN1YnNjcmliZSgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRlZmF1bHRDb21wb25lbnRTdWJzY3JpcHRpb25zID0ge30gYXMgQUJQLkRpY3Rpb25hcnk8U3Vic2NyaXB0aW9uPjtcclxuICAgIHRoaXMuZGVmYXVsdENvbXBvbmVudFJlZiA9IG51bGw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Directive, ElementRef, EventEmitter, Output } from '@angular/core';
|
|
2
|
+
import { fromEvent } from 'rxjs';
|
|
3
|
+
import { SubscriptionService } from '../services/subscription.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../services/subscription.service";
|
|
6
|
+
class StopPropagationDirective {
|
|
7
|
+
constructor(el, subscription) {
|
|
8
|
+
this.el = el;
|
|
9
|
+
this.subscription = subscription;
|
|
10
|
+
this.stopPropEvent = new EventEmitter();
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
this.subscription.addOne(fromEvent(this.el.nativeElement, 'click'), event => {
|
|
14
|
+
event.stopPropagation();
|
|
15
|
+
this.stopPropEvent.emit(event);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: StopPropagationDirective, deps: [{ token: i0.ElementRef }, { token: i1.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
19
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: StopPropagationDirective, selector: "[click.stop]", outputs: { stopPropEvent: "click.stop" }, providers: [SubscriptionService], ngImport: i0 }); }
|
|
20
|
+
}
|
|
21
|
+
export { StopPropagationDirective };
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: StopPropagationDirective, decorators: [{
|
|
23
|
+
type: Directive,
|
|
24
|
+
args: [{
|
|
25
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
26
|
+
selector: '[click.stop]',
|
|
27
|
+
providers: [SubscriptionService],
|
|
28
|
+
}]
|
|
29
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SubscriptionService }]; }, propDecorators: { stopPropEvent: [{
|
|
30
|
+
type: Output,
|
|
31
|
+
args: ['click.stop']
|
|
32
|
+
}] } });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9zdG9wLXByb3BhZ2F0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQUV2RSxNQUthLHdCQUF3QjtJQUduQyxZQUFvQixFQUFjLEVBQVUsWUFBaUM7UUFBekQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUY5QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFFRSxDQUFDO0lBRWpGLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQWEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDdEYsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FWVSx3QkFBd0I7a0dBQXhCLHdCQUF3QixpRkFGeEIsQ0FBQyxtQkFBbUIsQ0FBQzs7U0FFckIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBTHBDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ2pDO21JQUVnQyxhQUFhO3NCQUEzQyxNQUFNO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zdWJzY3JpcHRpb24uc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnW2NsaWNrLnN0b3BdJyxcclxuICBwcm92aWRlcnM6IFtTdWJzY3JpcHRpb25TZXJ2aWNlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQE91dHB1dCgnY2xpY2suc3RvcCcpIHJlYWRvbmx5IHN0b3BQcm9wRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb25TZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZE9uZShmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnY2xpY2snKSwgZXZlbnQgPT4ge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgdGhpcy5zdG9wUHJvcEV2ZW50LmVtaXQoZXZlbnQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2VudW1zL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gZUxheW91dFR5cGUge1xyXG4gIGFjY291bnQgPSAnYWNjb3VudCcsXHJcbiAgYXBwbGljYXRpb24gPSAnYXBwbGljYXRpb24nLFxyXG4gIGVtcHR5ID0gJ2VtcHR5JyxcclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './common';
|
|
1
|
+
export * from './common';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbW1vbic7XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './permission.guard';
|
|
1
|
+
export * from './permission.guard';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvZ3VhcmRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Blcm1pc3Npb24uZ3VhcmQnO1xyXG4iXX0=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { of } from 'rxjs';
|
|
4
|
+
import { tap } from 'rxjs/operators';
|
|
5
|
+
import { OAuthService } from 'angular-oauth2-oidc';
|
|
6
|
+
import { findRoute, getRoutePath } from '../utils/route-utils';
|
|
7
|
+
import { RoutesService, PermissionService, HttpErrorReporterService } from '../services';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
class PermissionGuard {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.router = inject(Router);
|
|
12
|
+
this.routesService = inject(RoutesService);
|
|
13
|
+
this.oAuthService = inject(OAuthService);
|
|
14
|
+
this.permissionService = inject(PermissionService);
|
|
15
|
+
this.httpErrorReporter = inject(HttpErrorReporterService);
|
|
16
|
+
}
|
|
17
|
+
canActivate(route, state) {
|
|
18
|
+
let { requiredPolicy } = route.data || {};
|
|
19
|
+
if (!requiredPolicy) {
|
|
20
|
+
const routeFound = findRoute(this.routesService, getRoutePath(this.router, state.url));
|
|
21
|
+
requiredPolicy = routeFound?.requiredPolicy;
|
|
22
|
+
}
|
|
23
|
+
if (!requiredPolicy)
|
|
24
|
+
return of(true);
|
|
25
|
+
return this.permissionService.getGrantedPolicy$(requiredPolicy).pipe(tap(access => {
|
|
26
|
+
if (!access && this.oAuthService.hasValidAccessToken()) {
|
|
27
|
+
this.httpErrorReporter.reportError({ status: 403 });
|
|
28
|
+
}
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: PermissionGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: PermissionGuard, providedIn: 'root' }); }
|
|
33
|
+
}
|
|
34
|
+
export { PermissionGuard };
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: PermissionGuard, decorators: [{
|
|
36
|
+
type: Injectable,
|
|
37
|
+
args: [{
|
|
38
|
+
providedIn: 'root',
|
|
39
|
+
}]
|
|
40
|
+
}] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9ndWFyZHMvcGVybWlzc2lvbi5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQTBCLE1BQU0sRUFBdUIsTUFBTSxpQkFBaUIsQ0FBQztBQUd0RixPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUV6RixNQUdhLGVBQWU7SUFINUI7UUFJcUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0QyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5QyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQW9CekU7SUFsQkMsV0FBVyxDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDbkUsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDbkIsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdkYsY0FBYyxHQUFHLFVBQVUsRUFBRSxjQUFjLENBQUM7U0FDN0M7UUFFRCxJQUFJLENBQUMsY0FBYztZQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FDbEUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLEVBQUU7Z0JBQ3RELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUF1QixDQUFDLENBQUM7YUFDMUU7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs4R0F4QlUsZUFBZTtrSEFBZixlQUFlLGNBRmQsTUFBTTs7U0FFUCxlQUFlOzJGQUFmLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XHJcblxyXG5pbXBvcnQgeyBJQWJwR3VhcmQgfSBmcm9tICcuLi9hYnN0cmFjdHMnO1xyXG5pbXBvcnQgeyBmaW5kUm91dGUsIGdldFJvdXRlUGF0aCB9IGZyb20gJy4uL3V0aWxzL3JvdXRlLXV0aWxzJztcclxuaW1wb3J0IHsgUm91dGVzU2VydmljZSwgUGVybWlzc2lvblNlcnZpY2UsIEh0dHBFcnJvclJlcG9ydGVyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9uR3VhcmQgaW1wbGVtZW50cyBJQWJwR3VhcmQge1xyXG4gIHByb3RlY3RlZCByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVzU2VydmljZSA9IGluamVjdChSb3V0ZXNTZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb0F1dGhTZXJ2aWNlID0gaW5qZWN0KE9BdXRoU2VydmljZSk7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0KFBlcm1pc3Npb25TZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaHR0cEVycm9yUmVwb3J0ZXIgPSBpbmplY3QoSHR0cEVycm9yUmVwb3J0ZXJTZXJ2aWNlKTtcclxuXHJcbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICBsZXQgeyByZXF1aXJlZFBvbGljeSB9ID0gcm91dGUuZGF0YSB8fCB7fTtcclxuXHJcbiAgICBpZiAoIXJlcXVpcmVkUG9saWN5KSB7XHJcbiAgICAgIGNvbnN0IHJvdXRlRm91bmQgPSBmaW5kUm91dGUodGhpcy5yb3V0ZXNTZXJ2aWNlLCBnZXRSb3V0ZVBhdGgodGhpcy5yb3V0ZXIsIHN0YXRlLnVybCkpO1xyXG4gICAgICByZXF1aXJlZFBvbGljeSA9IHJvdXRlRm91bmQ/LnJlcXVpcmVkUG9saWN5O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghcmVxdWlyZWRQb2xpY3kpIHJldHVybiBvZih0cnVlKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wZXJtaXNzaW9uU2VydmljZS5nZXRHcmFudGVkUG9saWN5JChyZXF1aXJlZFBvbGljeSkucGlwZShcclxuICAgICAgdGFwKGFjY2VzcyA9PiB7XHJcbiAgICAgICAgaWYgKCFhY2Nlc3MgJiYgdGhpcy5vQXV0aFNlcnZpY2UuaGFzVmFsaWRBY2Nlc3NUb2tlbigpKSB7XHJcbiAgICAgICAgICB0aGlzLmh0dHBFcnJvclJlcG9ydGVyLnJlcG9ydEVycm9yKHsgc3RhdHVzOiA0MDMgfSBhcyBIdHRwRXJyb3JSZXNwb25zZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Injectable, Optional } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { RoutesService } from '../services/routes.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../services/routes.service";
|
|
6
|
+
import * as i2 from "@angular/router";
|
|
7
|
+
class RoutesHandler {
|
|
8
|
+
constructor(routes, router) {
|
|
9
|
+
this.routes = routes;
|
|
10
|
+
this.router = router;
|
|
11
|
+
this.addRoutes();
|
|
12
|
+
}
|
|
13
|
+
addRoutes() {
|
|
14
|
+
this.router?.config?.forEach(({ path = '', data }) => {
|
|
15
|
+
const routes = data?.routes;
|
|
16
|
+
if (!routes)
|
|
17
|
+
return;
|
|
18
|
+
if (Array.isArray(routes)) {
|
|
19
|
+
this.routes.add(routes);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
const routesFlatten = flatRoutes([{ path, ...routes }], { path: '' });
|
|
23
|
+
this.routes.add(routesFlatten);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: RoutesHandler, deps: [{ token: i1.RoutesService }, { token: i2.Router, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: RoutesHandler, providedIn: 'root' }); }
|
|
29
|
+
}
|
|
30
|
+
export { RoutesHandler };
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: RoutesHandler, decorators: [{
|
|
32
|
+
type: Injectable,
|
|
33
|
+
args: [{
|
|
34
|
+
providedIn: 'root',
|
|
35
|
+
}]
|
|
36
|
+
}], ctorParameters: function () { return [{ type: i1.RoutesService }, { type: i2.Router, decorators: [{
|
|
37
|
+
type: Optional
|
|
38
|
+
}] }]; } });
|
|
39
|
+
function flatRoutes(routes, parent) {
|
|
40
|
+
if (!routes)
|
|
41
|
+
return [];
|
|
42
|
+
return routes.reduce((acc, route) => {
|
|
43
|
+
const { children, ...current } = {
|
|
44
|
+
...route,
|
|
45
|
+
parentName: parent.name,
|
|
46
|
+
path: (parent.path + '/' + route.path).replace(/\/\//g, '/'),
|
|
47
|
+
};
|
|
48
|
+
acc.push(current, ...flatRoutes(children, current));
|
|
49
|
+
return acc;
|
|
50
|
+
}, []);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaGFuZGxlcnMvcm91dGVzLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFTLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUUzRCxNQUdhLGFBQWE7SUFDeEIsWUFBb0IsTUFBcUIsRUFBc0IsTUFBYztRQUF6RCxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQXNCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDM0UsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxTQUFTO1FBQ04sSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFzQixFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQWEsRUFBRSxFQUFFO1lBQy9FLE1BQU0sTUFBTSxHQUFHLElBQUksRUFBRSxNQUFNLENBQUM7WUFDNUIsSUFBSSxDQUFDLE1BQU07Z0JBQUUsT0FBTztZQUVwQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNMLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN0RSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNoQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FqQlUsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7U0FFUCxhQUFhOzJGQUFiLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFFNkMsUUFBUTs7QUFtQnRELFNBQVMsVUFBVSxDQUFDLE1BQWtCLEVBQUUsTUFBVztJQUNqRCxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sRUFBRSxDQUFDO0lBRXZCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNsQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUc7WUFDL0IsR0FBRyxLQUFLO1lBQ1IsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ3ZCLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztTQUM3RCxDQUFDO1FBRUYsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFcEQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQUUsRUFBaUIsQ0FBQyxDQUFDO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgUm91dGVzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3JvdXRlcy5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXNIYW5kbGVyIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlczogUm91dGVzU2VydmljZSwgQE9wdGlvbmFsKCkgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgdGhpcy5hZGRSb3V0ZXMoKTtcclxuICB9XHJcblxyXG4gIGFkZFJvdXRlcygpIHtcclxuICAgICh0aGlzLnJvdXRlcj8uY29uZmlnIGFzIFJvdXRlRGF0YVtdKT8uZm9yRWFjaCgoeyBwYXRoID0gJycsIGRhdGEgfTogUm91dGVEYXRhKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJvdXRlcyA9IGRhdGE/LnJvdXRlcztcclxuICAgICAgaWYgKCFyb3V0ZXMpIHJldHVybjtcclxuXHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJvdXRlcykpIHtcclxuICAgICAgICB0aGlzLnJvdXRlcy5hZGQocm91dGVzKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCByb3V0ZXNGbGF0dGVuID0gZmxhdFJvdXRlcyhbeyBwYXRoLCAuLi5yb3V0ZXMgfV0sIHsgcGF0aDogJycgfSk7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXMuYWRkKHJvdXRlc0ZsYXR0ZW4pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZsYXRSb3V0ZXMocm91dGVzOiBSb3V0ZURlZltdLCBwYXJlbnQ6IGFueSkge1xyXG4gIGlmICghcm91dGVzKSByZXR1cm4gW107XHJcblxyXG4gIHJldHVybiByb3V0ZXMucmVkdWNlKChhY2MsIHJvdXRlKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCAuLi5jdXJyZW50IH0gPSB7XHJcbiAgICAgIC4uLnJvdXRlLFxyXG4gICAgICBwYXJlbnROYW1lOiBwYXJlbnQubmFtZSxcclxuICAgICAgcGF0aDogKHBhcmVudC5wYXRoICsgJy8nICsgcm91dGUucGF0aCkucmVwbGFjZSgvXFwvXFwvL2csICcvJyksXHJcbiAgICB9O1xyXG5cclxuICAgIGFjYy5wdXNoKGN1cnJlbnQsIC4uLmZsYXRSb3V0ZXMoY2hpbGRyZW4sIGN1cnJlbnQpKTtcclxuXHJcbiAgICByZXR1cm4gYWNjO1xyXG4gIH0sIFtdIGFzIEFCUC5Sb3V0ZVtdKTtcclxufVxyXG5cclxudHlwZSBSb3V0ZURlZiA9IEFCUC5Sb3V0ZSAmIHsgY2hpbGRyZW46IFJvdXRlRGVmW10gfTtcclxudHlwZSBSb3V0ZURhdGEgPSBSb3V0ZSAmIHsgZGF0YTogeyByb3V0ZXM6IFJvdXRlRGVmIHwgQXJyYXk8Um91dGVEZWY+IH0gfTtcclxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { finalize } from 'rxjs/operators';
|
|
4
|
+
import { HttpWaitService } from '../services';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../services";
|
|
7
|
+
class ApiInterceptor {
|
|
8
|
+
constructor(httpWaitService) {
|
|
9
|
+
this.httpWaitService = httpWaitService;
|
|
10
|
+
}
|
|
11
|
+
getAdditionalHeaders(existingHeaders) {
|
|
12
|
+
return existingHeaders || new HttpHeaders();
|
|
13
|
+
}
|
|
14
|
+
intercept(request, next) {
|
|
15
|
+
this.httpWaitService.addRequest(request);
|
|
16
|
+
return next.handle(request).pipe(finalize(() => this.httpWaitService.deleteRequest(request)));
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ApiInterceptor, deps: [{ token: i1.HttpWaitService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ApiInterceptor, providedIn: 'root' }); }
|
|
20
|
+
}
|
|
21
|
+
export { ApiInterceptor };
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ApiInterceptor, decorators: [{
|
|
23
|
+
type: Injectable,
|
|
24
|
+
args: [{
|
|
25
|
+
providedIn: 'root',
|
|
26
|
+
}]
|
|
27
|
+
}], ctorParameters: function () { return [{ type: i1.HttpWaitService }]; } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2ludGVyY2VwdG9ycy9hcGkuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLFdBQVcsRUFBZ0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFFOUMsTUFHYSxjQUFjO0lBQ3pCLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUFHLENBQUM7SUFFeEQsb0JBQW9CLENBQUMsZUFBNkI7UUFDaEQsT0FBTyxlQUFlLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQXlCLEVBQUUsSUFBaUI7UUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7OEdBVlUsY0FBYztrSEFBZCxjQUFjLGNBRmIsTUFBTTs7U0FFUCxjQUFjOzJGQUFkLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhhbmRsZXIsIEh0dHBIZWFkZXJzLCBIdHRwSW50ZXJjZXB0b3IsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBIdHRwV2FpdFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBpSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBJQXBpSW50ZXJjZXB0b3Ige1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cFdhaXRTZXJ2aWNlOiBIdHRwV2FpdFNlcnZpY2UpIHt9XHJcblxyXG4gIGdldEFkZGl0aW9uYWxIZWFkZXJzKGV4aXN0aW5nSGVhZGVycz86IEh0dHBIZWFkZXJzKSB7XHJcbiAgICByZXR1cm4gZXhpc3RpbmdIZWFkZXJzIHx8IG5ldyBIdHRwSGVhZGVycygpO1xyXG4gIH1cclxuXHJcbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKSB7XHJcbiAgICB0aGlzLmh0dHBXYWl0U2VydmljZS5hZGRSZXF1ZXN0KHJlcXVlc3QpO1xyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcXVlc3QpLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5odHRwV2FpdFNlcnZpY2UuZGVsZXRlUmVxdWVzdChyZXF1ZXN0KSkpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQXBpSW50ZXJjZXB0b3IgZXh0ZW5kcyBIdHRwSW50ZXJjZXB0b3Ige1xyXG4gIGdldEFkZGl0aW9uYWxIZWFkZXJzKGV4aXN0aW5nSGVhZGVycz86IEh0dHBIZWFkZXJzKTogSHR0cEhlYWRlcnM7XHJcbn1cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './api.interceptor';
|
|
1
|
+
export * from './api.interceptor';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaW50ZXJjZXB0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwaS5pbnRlcmNlcHRvcic7XHJcbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { LocalizationPipe } from './pipes/localization.pipe';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
class LocalizationModule {
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LocalizationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: LocalizationModule, declarations: [LocalizationPipe], exports: [LocalizationPipe] }); }
|
|
7
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LocalizationModule }); }
|
|
8
|
+
}
|
|
9
|
+
export { LocalizationModule };
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LocalizationModule, decorators: [{
|
|
11
|
+
type: NgModule,
|
|
12
|
+
args: [{
|
|
13
|
+
exports: [LocalizationPipe],
|
|
14
|
+
declarations: [LocalizationPipe],
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9sb2NhbGl6YXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRTdELE1BSWEsa0JBQWtCOzhHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQixpQkFGZCxnQkFBZ0IsYUFEckIsZ0JBQWdCOytHQUdmLGtCQUFrQjs7U0FBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBSjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLFlBQVksRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblBpcGUgfSBmcm9tICcuL3BpcGVzL2xvY2FsaXphdGlvbi5waXBlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZXhwb3J0czogW0xvY2FsaXphdGlvblBpcGVdLFxyXG4gIGRlY2xhcmF0aW9uczogW0xvY2FsaXphdGlvblBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uTW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9tb2RlbHMvYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVW5hcnlGdW5jdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMb2dpblBhcmFtcyB7XHJcbiAgdXNlcm5hbWU6IHN0cmluZztcclxuICBwYXNzd29yZDogc3RyaW5nO1xyXG4gIHJlbWVtYmVyTWU/OiBib29sZWFuO1xyXG4gIHJlZGlyZWN0VXJsPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQaXBlVG9Mb2dpbkZuID0gKFxyXG4gIHBhcmFtczogUGljazxMb2dpblBhcmFtcywgJ3JlZGlyZWN0VXJsJyB8ICdyZW1lbWJlck1lJz4sXHJcbiAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4pID0+IFVuYXJ5RnVuY3Rpb248YW55LCBhbnk+O1xyXG4vKipcclxuICogQGRlcHJlY2F0ZWQgVGhlIGludGVyZmFjZSBzaG91bGQgbm90IGJlIHVzZWQgYW55bW9yZS4gXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBTZXRUb2tlblJlc3BvbnNlVG9TdG9yYWdlRm48VCA9IGFueT4gPSAodG9rZW5SZXM6IFQpID0+IHZvaWQ7XHJcbmV4cG9ydCB0eXBlIENoZWNrQXV0aGVudGljYXRpb25TdGF0ZUZuID0gKGluamVjdG9yOiBJbmplY3RvcikgPT4gdm9pZDtcclxuIl19
|