@abp/ng.core 7.2.1 → 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,182 @@
|
|
|
1
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { map, switchMap, take, tap } from 'rxjs/operators';
|
|
4
|
+
import { AbpApplicationConfigurationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service';
|
|
5
|
+
import { AbpApplicationLocalizationService } from '../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service';
|
|
6
|
+
import { INCUDE_LOCALIZATION_RESOURCES_TOKEN } from '../tokens/include-localization-resources.token';
|
|
7
|
+
import { InternalStore } from '../utils/internal-store-utils';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service";
|
|
10
|
+
import * as i2 from "../proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service";
|
|
11
|
+
class ConfigStateService {
|
|
12
|
+
setState(config) {
|
|
13
|
+
this.store.set(config);
|
|
14
|
+
}
|
|
15
|
+
get createOnUpdateStream() {
|
|
16
|
+
return this.store.sliceUpdate;
|
|
17
|
+
}
|
|
18
|
+
constructor(abpConfigService, abpApplicationLocalizationService, includeLocalizationResources) {
|
|
19
|
+
this.abpConfigService = abpConfigService;
|
|
20
|
+
this.abpApplicationLocalizationService = abpApplicationLocalizationService;
|
|
21
|
+
this.includeLocalizationResources = includeLocalizationResources;
|
|
22
|
+
this.updateSubject = new Subject();
|
|
23
|
+
this.store = new InternalStore({});
|
|
24
|
+
this.initUpdateStream();
|
|
25
|
+
}
|
|
26
|
+
initUpdateStream() {
|
|
27
|
+
this.updateSubject
|
|
28
|
+
.pipe(switchMap(() => this.abpConfigService.get({
|
|
29
|
+
includeLocalizationResources: !!this.includeLocalizationResources,
|
|
30
|
+
})))
|
|
31
|
+
.pipe(switchMap(appState => this.getLocalizationAndCombineWithAppState(appState)))
|
|
32
|
+
.subscribe(res => this.store.set(res));
|
|
33
|
+
}
|
|
34
|
+
getLocalizationAndCombineWithAppState(appState) {
|
|
35
|
+
if (!appState.localization.currentCulture.cultureName) {
|
|
36
|
+
throw new Error('culture name should defined');
|
|
37
|
+
}
|
|
38
|
+
return this.getlocalizationResource(appState.localization.currentCulture.cultureName).pipe(map(result => ({ ...appState, localization: { ...appState.localization, ...result } })));
|
|
39
|
+
}
|
|
40
|
+
getlocalizationResource(cultureName) {
|
|
41
|
+
return this.abpApplicationLocalizationService.get({
|
|
42
|
+
cultureName: cultureName,
|
|
43
|
+
onlyDynamics: false,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
refreshAppState() {
|
|
47
|
+
this.updateSubject.next();
|
|
48
|
+
return this.createOnUpdateStream(state => state).pipe(take(1));
|
|
49
|
+
}
|
|
50
|
+
refreshLocalization(lang) {
|
|
51
|
+
if (this.includeLocalizationResources) {
|
|
52
|
+
return this.refreshAppState().pipe(map(() => null));
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return this.getlocalizationResource(lang)
|
|
56
|
+
.pipe(tap(result => this.store.patch({ localization: { ...this.store.state.localization, ...result } })))
|
|
57
|
+
.pipe(map(() => null));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
getOne$(key) {
|
|
61
|
+
return this.store.sliceState(state => state[key]);
|
|
62
|
+
}
|
|
63
|
+
getOne(key) {
|
|
64
|
+
return this.store.state[key];
|
|
65
|
+
}
|
|
66
|
+
getAll$() {
|
|
67
|
+
return this.store.sliceState(state => state);
|
|
68
|
+
}
|
|
69
|
+
getAll() {
|
|
70
|
+
return this.store.state;
|
|
71
|
+
}
|
|
72
|
+
getDeep$(keys) {
|
|
73
|
+
keys = splitKeys(keys);
|
|
74
|
+
return this.store
|
|
75
|
+
.sliceState(state => state)
|
|
76
|
+
.pipe(map(state => {
|
|
77
|
+
return keys.reduce((acc, val) => {
|
|
78
|
+
if (acc) {
|
|
79
|
+
return acc[val];
|
|
80
|
+
}
|
|
81
|
+
return undefined;
|
|
82
|
+
}, state);
|
|
83
|
+
}));
|
|
84
|
+
}
|
|
85
|
+
getDeep(keys) {
|
|
86
|
+
keys = splitKeys(keys);
|
|
87
|
+
return keys.reduce((acc, val) => {
|
|
88
|
+
if (acc) {
|
|
89
|
+
return acc[val];
|
|
90
|
+
}
|
|
91
|
+
return undefined;
|
|
92
|
+
}, this.store.state);
|
|
93
|
+
}
|
|
94
|
+
getFeature(key) {
|
|
95
|
+
return this.store.state.features?.values?.[key];
|
|
96
|
+
}
|
|
97
|
+
getFeature$(key) {
|
|
98
|
+
return this.store.sliceState(state => state.features?.values?.[key]);
|
|
99
|
+
}
|
|
100
|
+
getFeatures(keys) {
|
|
101
|
+
const { features } = this.store.state;
|
|
102
|
+
if (!features)
|
|
103
|
+
return;
|
|
104
|
+
return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {});
|
|
105
|
+
}
|
|
106
|
+
getFeatures$(keys) {
|
|
107
|
+
return this.store.sliceState(({ features }) => {
|
|
108
|
+
if (!features?.values)
|
|
109
|
+
return;
|
|
110
|
+
return keys.reduce((acc, key) => ({ ...acc, [key]: features.values[key] }), {});
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
getSetting(key) {
|
|
114
|
+
return this.store.state.setting?.values?.[key];
|
|
115
|
+
}
|
|
116
|
+
getSetting$(key) {
|
|
117
|
+
return this.store.sliceState(state => state.setting?.values?.[key]);
|
|
118
|
+
}
|
|
119
|
+
getSettings(keyword) {
|
|
120
|
+
const settings = this.store.state.setting?.values || {};
|
|
121
|
+
if (!keyword)
|
|
122
|
+
return settings;
|
|
123
|
+
const keysFound = Object.keys(settings).filter(key => key.indexOf(keyword) > -1);
|
|
124
|
+
return keysFound.reduce((acc, key) => {
|
|
125
|
+
acc[key] = settings[key];
|
|
126
|
+
return acc;
|
|
127
|
+
}, {});
|
|
128
|
+
}
|
|
129
|
+
getSettings$(keyword) {
|
|
130
|
+
return this.store
|
|
131
|
+
.sliceState(state => state.setting?.values)
|
|
132
|
+
.pipe(map((settings = {}) => {
|
|
133
|
+
if (!keyword)
|
|
134
|
+
return settings;
|
|
135
|
+
const keysFound = Object.keys(settings).filter(key => key.indexOf(keyword) > -1);
|
|
136
|
+
return keysFound.reduce((acc, key) => {
|
|
137
|
+
acc[key] = settings[key];
|
|
138
|
+
return acc;
|
|
139
|
+
}, {});
|
|
140
|
+
}));
|
|
141
|
+
}
|
|
142
|
+
getGlobalFeatures() {
|
|
143
|
+
return this.store.state.globalFeatures;
|
|
144
|
+
}
|
|
145
|
+
getGlobalFeatures$() {
|
|
146
|
+
return this.store.sliceState(state => state.globalFeatures);
|
|
147
|
+
}
|
|
148
|
+
isGlobalFeatureEnabled(key, globalFeatures) {
|
|
149
|
+
const features = globalFeatures.enabledFeatures || [];
|
|
150
|
+
return features.some(f => key === f);
|
|
151
|
+
}
|
|
152
|
+
getGlobalFeatureIsEnabled(key) {
|
|
153
|
+
return this.isGlobalFeatureEnabled(key, this.store.state.globalFeatures);
|
|
154
|
+
}
|
|
155
|
+
getGlobalFeatureIsEnabled$(key) {
|
|
156
|
+
return this.store.sliceState(state => this.isGlobalFeatureEnabled(key, state.globalFeatures));
|
|
157
|
+
}
|
|
158
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ConfigStateService, deps: [{ token: i1.AbpApplicationConfigurationService }, { token: i2.AbpApplicationLocalizationService }, { token: INCUDE_LOCALIZATION_RESOURCES_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
159
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ConfigStateService, providedIn: 'root' }); }
|
|
160
|
+
}
|
|
161
|
+
export { ConfigStateService };
|
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ConfigStateService, decorators: [{
|
|
163
|
+
type: Injectable,
|
|
164
|
+
args: [{
|
|
165
|
+
providedIn: 'root',
|
|
166
|
+
}]
|
|
167
|
+
}], ctorParameters: function () { return [{ type: i1.AbpApplicationConfigurationService }, { type: i2.AbpApplicationLocalizationService }, { type: undefined, decorators: [{
|
|
168
|
+
type: Optional
|
|
169
|
+
}, {
|
|
170
|
+
type: Inject,
|
|
171
|
+
args: [INCUDE_LOCALIZATION_RESOURCES_TOKEN]
|
|
172
|
+
}] }]; } });
|
|
173
|
+
function splitKeys(keys) {
|
|
174
|
+
if (typeof keys === 'string') {
|
|
175
|
+
keys = keys.split('.');
|
|
176
|
+
}
|
|
177
|
+
if (!Array.isArray(keys)) {
|
|
178
|
+
throw new Error('The argument must be a dot string or an string array.');
|
|
179
|
+
}
|
|
180
|
+
return keys;
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvY29uZmlnLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHFHQUFxRyxDQUFDO0FBQ3pKLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLG9HQUFvRyxDQUFDO0FBS3ZKLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUU5RCxNQUdhLGtCQUFrQjtJQUk3QixRQUFRLENBQUMsTUFBbUM7UUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFDaEMsQ0FBQztJQUNELFlBQ1UsZ0JBQW9ELEVBQ3BELGlDQUFvRSxFQUczRCw0QkFBNEM7UUFKckQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQztRQUNwRCxzQ0FBaUMsR0FBakMsaUNBQWlDLENBQW1DO1FBRzNELGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBZ0I7UUFmdkQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzNCLFVBQUssR0FBRyxJQUFJLGFBQWEs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a0JBQWtCLGNBRmpCLE1BQU07O1NBRVAsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFlSSxRQUFROzswQkFDUixNQUFNOzJCQUFDLG1DQUFtQzs7QUE0TC9DLFNBQVMsU0FBUyxDQUFDLElBQXVCO0lBQ3hDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3hCO0lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0tBQzFFO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFicEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9wcm94eS92b2xvL2FicC9hc3AtbmV0LWNvcmUvbXZjL2FwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb25zL2FicC1hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBYnBBcHBsaWNhdGlvbkxvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9wcm94eS92b2xvL2FicC9hc3AtbmV0LWNvcmUvbXZjL2FwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb25zL2FicC1hcHBsaWNhdGlvbi1sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvLFxyXG4gIEFwcGxpY2F0aW9uR2xvYmFsRmVhdHVyZUNvbmZpZ3VyYXRpb25EdG8sXHJcbn0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9ucy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJTkNVREVfTE9DQUxJWkFUSU9OX1JFU09VUkNFU19UT0tFTiB9IGZyb20gJy4uL3Rva2Vucy9pbmNsdWRlLWxvY2FsaXphdGlvbi1yZXNvdXJjZXMudG9rZW4nO1xyXG5pbXBvcnQgeyBJbnRlcm5hbFN0b3JlIH0gZnJvbSAnLi4vdXRpbHMvaW50ZXJuYWwtc3RvcmUtdXRpbHMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpZ1N0YXRlU2VydmljZSB7XHJcbiAgcHJpdmF0ZSB1cGRhdGVTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IHN0b3JlID0gbmV3IEludGVybmFsU3RvcmUoe30gYXMgQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvKTtcclxuXHJcbiAgc2V0U3RhdGUoY29uZmlnOiBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25EdG8pIHtcclxuICAgIHRoaXMuc3RvcmUuc2V0KGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBnZXQgY3JlYXRlT25VcGRhdGVTdHJlYW0oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVVwZGF0ZTtcclxuICB9XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGFicENvbmZpZ1NlcnZpY2U6IEFicEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFicEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uU2VydmljZTogQWJwQXBwbGljYXRpb25Mb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKClcclxuICAgIEBJbmplY3QoSU5DVURFX0xPQ0FMSVpBVElPTl9SRVNPVVJDRVNfVE9LRU4pXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXM6IGJvb2xlYW4gfCBudWxsLFxyXG4gICkge1xyXG4gICAgdGhpcy5pbml0VXBkYXRlU3RyZWFtKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRVcGRhdGVTdHJlYW0oKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN1YmplY3RcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XHJcbiAgICAgICAgICB0aGlzLmFicENvbmZpZ1NlcnZpY2UuZ2V0KHtcclxuICAgICAgICAgICAgaW5jbHVkZUxvY2FsaXphdGlvblJlc291cmNlczogISF0aGlzLmluY2x1ZGVMb2NhbGl6YXRpb25SZXNvdXJjZXMsXHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICApLFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKHN3aXRjaE1hcChhcHBTdGF0ZSA9PiB0aGlzLmdldExvY2FsaXphdGlvbkFuZENvbWJpbmVXaXRoQXBwU3RhdGUoYXBwU3RhdGUpKSlcclxuICAgICAgLnN1YnNjcmliZShyZXMgPT4gdGhpcy5zdG9yZS5zZXQocmVzKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldExvY2FsaXphdGlvbkFuZENvbWJpbmVXaXRoQXBwU3RhdGUoXHJcbiAgICBhcHBTdGF0ZTogQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvLFxyXG4gICk6IE9ic2VydmFibGU8QXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvPiB7XHJcbiAgICBpZiAoIWFwcFN0YXRlLmxvY2FsaXphdGlvbi5jdXJyZW50Q3VsdHVyZS5jdWx0dXJlTmFtZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2N1bHR1cmUgbmFtZSBzaG91bGQgZGVmaW5lZCcpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZ2V0bG9jYWxpemF0aW9uUmVzb3VyY2UoYXBwU3RhdGUubG9jYWxpemF0aW9uLmN1cnJlbnRDdWx0dXJlLmN1bHR1cmVOYW1lKS5waXBlKFxyXG4gICAgICBtYXAocmVzdWx0ID0+ICh7IC4uLmFwcFN0YXRlLCBsb2NhbGl6YXRpb246IHsgLi4uYXBwU3RhdGUubG9jYWxpemF0aW9uLCAuLi5yZXN1bHQgfSB9KSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRsb2NhbGl6YXRpb25SZXNvdXJjZShjdWx0dXJlTmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hYnBBcHBsaWNhdGlvbkxvY2FsaXphdGlvblNlcnZpY2UuZ2V0KHtcclxuICAgICAgY3VsdHVyZU5hbWU6IGN1bHR1cmVOYW1lLFxyXG4gICAgICBvbmx5RHluYW1pY3M6IGZhbHNlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoQXBwU3RhdGUoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVN1YmplY3QubmV4dCgpO1xyXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25VcGRhdGVTdHJlYW0oc3RhdGUgPT4gc3RhdGUpLnBpcGUodGFrZSgxKSk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoTG9jYWxpemF0aW9uKGxhbmc6IHN0cmluZyk6IE9ic2VydmFibGU8bnVsbD4ge1xyXG4gICAgaWYgKHRoaXMuaW5jbHVkZUxvY2FsaXphdGlvblJlc291cmNlcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5yZWZyZXNoQXBwU3RhdGUoKS5waXBlKG1hcCgoKSA9PiBudWxsKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRsb2NhbGl6YXRpb25SZXNvdXJjZShsYW5nKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgdGFwKHJlc3VsdCA9PlxyXG4gICAgICAgICAgICB0aGlzLnN0b3JlLnBhdGNoKHsgbG9jYWxpemF0aW9uOiB7IC4uLnRoaXMuc3RvcmUuc3RhdGUubG9jYWxpemF0aW9uLCAuLi5yZXN1bHQgfSB9KSxcclxuICAgICAgICAgICksXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5waXBlKG1hcCgoKSA9PiBudWxsKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRPbmUkPEsgZXh0ZW5kcyBrZXlvZiBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25EdG8+KGtleTogSykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZVtrZXldKTtcclxuICB9XHJcblxyXG4gIGdldE9uZTxLIGV4dGVuZHMga2V5b2YgQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvPihrZXk6IEspIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnN0YXRlW2tleV07XHJcbiAgfVxyXG5cclxuICBnZXRBbGwkKCk6IE9ic2VydmFibGU8QXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlKTtcclxuICB9XHJcblxyXG4gIGdldEFsbCgpOiBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25EdG8ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGU7XHJcbiAgfVxyXG5cclxuICBnZXREZWVwJChrZXlzOiBzdHJpbmdbXSB8IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBrZXlzID0gc3BsaXRLZXlzKGtleXMpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnN0b3JlXHJcbiAgICAgIC5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoc3RhdGUgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChrZXlzIGFzIHN0cmluZ1tdKS5yZWR1Y2UoKGFjYzogYW55LCB2YWwpID0+IHtcclxuICAgICAgICAgICAgaWYgKGFjYykge1xyXG4gICAgICAgICAgICAgIHJldHVybiBhY2NbdmFsXTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICAgIH0sIHN0YXRlKTtcclxuICAgICAgICB9KSxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGdldERlZXAoa2V5czogc3RyaW5nW10gfCBzdHJpbmcpOiBhbnkge1xyXG4gICAga2V5cyA9IHNwbGl0S2V5cyhrZXlzKTtcclxuXHJcbiAgICByZXR1cm4gKGtleXMgYXMgc3RyaW5nW10pLnJlZHVjZSgoYWNjOiBhbnksIHZhbCkgPT4ge1xyXG4gICAgICBpZiAoYWNjKSB7XHJcbiAgICAgICAgcmV0dXJuIGFjY1t2YWxdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfSwgdGhpcy5zdG9yZS5zdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRGZWF0dXJlKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zdGF0ZS5mZWF0dXJlcz8udmFsdWVzPy5ba2V5XTtcclxuICB9XHJcblxyXG4gIGdldEZlYXR1cmUkKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlLmZlYXR1cmVzPy52YWx1ZXM/LltrZXldKTtcclxuICB9XHJcblxyXG4gIGdldEZlYXR1cmVzKGtleXM6IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCB7IGZlYXR1cmVzIH0gPSB0aGlzLnN0b3JlLnN0YXRlO1xyXG4gICAgaWYgKCFmZWF0dXJlcykgcmV0dXJuO1xyXG5cclxuICAgIHJldHVybiBrZXlzLnJlZHVjZSgoYWNjLCBrZXkpID0+ICh7IC4uLmFjYywgW2tleV06IGZlYXR1cmVzLnZhbHVlc1trZXldIH0pLCB7fSk7XHJcbiAgfVxyXG5cclxuICBnZXRGZWF0dXJlcyQoa2V5czogc3RyaW5nW10pOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoKHsgZmVhdHVyZXMgfSkgPT4ge1xyXG4gICAgICBpZiAoIWZlYXR1cmVzPy52YWx1ZXMpIHJldHVybjtcclxuXHJcbiAgICAgIHJldHVybiBrZXlzLnJlZHVjZSgoYWNjLCBrZXkpID0+ICh7IC4uLmFjYywgW2tleV06IGZlYXR1cmVzLnZhbHVlc1trZXldIH0pLCB7fSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFNldHRpbmcoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnN0YXRlLnNldHRpbmc/LnZhbHVlcz8uW2tleV07XHJcbiAgfVxyXG5cclxuICBnZXRTZXR0aW5nJChrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZS5zZXR0aW5nPy52YWx1ZXM/LltrZXldKTtcclxuICB9XHJcblxyXG4gIGdldFNldHRpbmdzKGtleXdvcmQ/OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHNldHRpbmdzID0gdGhpcy5zdG9yZS5zdGF0ZS5zZXR0aW5nPy52YWx1ZXMgfHwge307XHJcblxyXG4gICAgaWYgKCFrZXl3b3JkKSByZXR1cm4gc2V0dGluZ3M7XHJcblxyXG4gICAgY29uc3Qga2V5c0ZvdW5kID0gT2JqZWN0LmtleXMoc2V0dGluZ3MpLmZpbHRlcihrZXkgPT4ga2V5LmluZGV4T2Yoa2V5d29yZCkgPiAtMSk7XHJcblxyXG4gICAgcmV0dXJuIGtleXNGb3VuZC5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XHJcbiAgICAgIGFjY1trZXldID0gc2V0dGluZ3Nba2V5XTtcclxuICAgICAgcmV0dXJuIGFjYztcclxuICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2V0dGluZ3MkKGtleXdvcmQ/OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlXHJcbiAgICAgIC5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlLnNldHRpbmc/LnZhbHVlcylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChzZXR0aW5ncyA9IHt9KSA9PiB7XHJcbiAgICAgICAgICBpZiAoIWtleXdvcmQpIHJldHVybiBzZXR0aW5ncztcclxuXHJcbiAgICAgICAgICBjb25zdCBrZXlzRm91bmQgPSBPYmplY3Qua2V5cyhzZXR0aW5ncykuZmlsdGVyKGtleSA9PiBrZXkuaW5kZXhPZihrZXl3b3JkKSA+IC0xKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4ga2V5c0ZvdW5kLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcclxuICAgICAgICAgICAgYWNjW2tleV0gPSBzZXR0aW5nc1trZXldO1xyXG4gICAgICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICAgICAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPik7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRHbG9iYWxGZWF0dXJlcygpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnN0YXRlLmdsb2JhbEZlYXR1cmVzO1xyXG4gIH1cclxuXHJcbiAgZ2V0R2xvYmFsRmVhdHVyZXMkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZS5nbG9iYWxGZWF0dXJlcyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzR2xvYmFsRmVhdHVyZUVuYWJsZWQoXHJcbiAgICBrZXk6IHN0cmluZyxcclxuICAgIGdsb2JhbEZlYXR1cmVzOiBBcHBsaWNhdGlvbkdsb2JhbEZlYXR1cmVDb25maWd1cmF0aW9uRHRvLFxyXG4gICkge1xyXG4gICAgY29uc3QgZmVhdHVyZXMgPSBnbG9iYWxGZWF0dXJlcy5lbmFibGVkRmVhdHVyZXMgfHwgW107XHJcbiAgICByZXR1cm4gZmVhdHVyZXMuc29tZShmID0+IGtleSA9PT0gZik7XHJcbiAgfVxyXG5cclxuICBnZXRHbG9iYWxGZWF0dXJlSXNFbmFibGVkKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0dsb2JhbEZlYXR1cmVFbmFibGVkKGtleSwgdGhpcy5zdG9yZS5zdGF0ZS5nbG9iYWxGZWF0dXJlcyk7XHJcbiAgfVxyXG5cclxuICBnZXRHbG9iYWxGZWF0dXJlSXNFbmFibGVkJChrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiB0aGlzLmlzR2xvYmFsRmVhdHVyZUVuYWJsZWQoa2V5LCBzdGF0ZS5nbG9iYWxGZWF0dXJlcykpO1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gc3BsaXRLZXlzKGtleXM6IHN0cmluZ1tdIHwgc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gIGlmICh0eXBlb2Yga2V5cyA9PT0gJ3N0cmluZycpIHtcclxuICAgIGtleXMgPSBrZXlzLnNwbGl0KCcuJyk7XHJcbiAgfVxyXG5cclxuICBpZiAoIUFycmF5LmlzQXJyYXkoa2V5cykpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcignVGhlIGFyZ3VtZW50IG11c3QgYmUgYSBkb3Qgc3RyaW5nIG9yIGFuIHN0cmluZyBhcnJheS4nKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBrZXlzO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Injectable, Injector } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
class ContentProjectionService {
|
|
4
|
+
constructor(injector) {
|
|
5
|
+
this.injector = injector;
|
|
6
|
+
}
|
|
7
|
+
projectContent(projectionStrategy, injector = this.injector) {
|
|
8
|
+
return projectionStrategy.injectContent(injector);
|
|
9
|
+
}
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ContentProjectionService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ContentProjectionService, providedIn: 'root' }); }
|
|
12
|
+
}
|
|
13
|
+
export { ContentProjectionService };
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ContentProjectionService, decorators: [{
|
|
15
|
+
type: Injectable,
|
|
16
|
+
args: [{ providedIn: 'root' }]
|
|
17
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wcm9qZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvY29udGVudC1wcm9qZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQXFCLE1BQU0sZUFBZSxDQUFDOztBQUd4RSxNQUNhLHdCQUF3QjtJQUNuQyxZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcsQ0FBQztJQUUxQyxjQUFjLENBQ1osa0JBQXlDLEVBQ3pDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUTtRQUV4QixPQUFPLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwRCxDQUFDOzhHQVJVLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRFgsTUFBTTs7U0FDbkIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIFRlbXBsYXRlUmVmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFByb2plY3Rpb25TdHJhdGVneSB9IGZyb20gJy4uL3N0cmF0ZWdpZXMvcHJvamVjdGlvbi5zdHJhdGVneSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQ29udGVudFByb2plY3Rpb25TZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge31cclxuXHJcbiAgcHJvamVjdENvbnRlbnQ8VCBleHRlbmRzIFR5cGU8YW55PiB8IFRlbXBsYXRlUmVmPGFueT4+KFxyXG4gICAgcHJvamVjdGlvblN0cmF0ZWd5OiBQcm9qZWN0aW9uU3RyYXRlZ3k8VD4sXHJcbiAgICBpbmplY3RvciA9IHRoaXMuaW5qZWN0b3IsXHJcbiAgKSB7XHJcbiAgICByZXR1cm4gcHJvamVjdGlvblN0cmF0ZWd5LmluamVjdENvbnRlbnQoaW5qZWN0b3IpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { generateHash } from '../utils';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
class DomInsertionService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.inserted = new Set();
|
|
7
|
+
}
|
|
8
|
+
insertContent(contentStrategy) {
|
|
9
|
+
const hash = generateHash(contentStrategy.content);
|
|
10
|
+
if (this.inserted.has(hash))
|
|
11
|
+
return;
|
|
12
|
+
const element = contentStrategy.insertElement();
|
|
13
|
+
this.inserted.add(hash);
|
|
14
|
+
return element;
|
|
15
|
+
}
|
|
16
|
+
removeContent(element) {
|
|
17
|
+
if (element.textContent) {
|
|
18
|
+
const hash = generateHash(element.textContent);
|
|
19
|
+
this.inserted.delete(hash);
|
|
20
|
+
element.parentNode?.removeChild(element);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
has(content) {
|
|
24
|
+
const hash = generateHash(content);
|
|
25
|
+
return this.inserted.has(hash);
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: DomInsertionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: DomInsertionService, providedIn: 'root' }); }
|
|
29
|
+
}
|
|
30
|
+
export { DomInsertionService };
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: DomInsertionService, decorators: [{
|
|
32
|
+
type: Injectable,
|
|
33
|
+
args: [{ providedIn: 'root' }]
|
|
34
|
+
}] });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLWluc2VydGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2RvbS1pbnNlcnRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRXhDLE1BQ2EsbUJBQW1CO0lBRGhDO1FBRW1CLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0tBNEIvQztJQTFCQyxhQUFhLENBQ1gsZUFBbUM7UUFFbkMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU87UUFFcEMsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBNkM7UUFDekQsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsT0FBTyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBRUQsR0FBRyxDQUFDLE9BQWU7UUFDakIsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5DLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQzs4R0E1QlUsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FETixNQUFNOztTQUNuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRlbnRTdHJhdGVneSB9IGZyb20gJy4uL3N0cmF0ZWdpZXMvY29udGVudC5zdHJhdGVneSc7XHJcbmltcG9ydCB7IGdlbmVyYXRlSGFzaCB9IGZyb20gJy4uL3V0aWxzJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBEb21JbnNlcnRpb25TZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGluc2VydGVkID0gbmV3IFNldDxudW1iZXI+KCk7XHJcblxyXG4gIGluc2VydENvbnRlbnQ8VCBleHRlbmRzIEhUTUxTY3JpcHRFbGVtZW50IHwgSFRNTFN0eWxlRWxlbWVudD4oXHJcbiAgICBjb250ZW50U3RyYXRlZ3k6IENvbnRlbnRTdHJhdGVneTxUPixcclxuICApOiBUIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IGhhc2ggPSBnZW5lcmF0ZUhhc2goY29udGVudFN0cmF0ZWd5LmNvbnRlbnQpO1xyXG5cclxuICAgIGlmICh0aGlzLmluc2VydGVkLmhhcyhoYXNoKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGVsZW1lbnQgPSBjb250ZW50U3RyYXRlZ3kuaW5zZXJ0RWxlbWVudCgpO1xyXG4gICAgdGhpcy5pbnNlcnRlZC5hZGQoaGFzaCk7XHJcblxyXG4gICAgcmV0dXJuIGVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICByZW1vdmVDb250ZW50KGVsZW1lbnQ6IEhUTUxTY3JpcHRFbGVtZW50IHwgSFRNTFN0eWxlRWxlbWVudCkge1xyXG4gICAgaWYgKGVsZW1lbnQudGV4dENvbnRlbnQpIHtcclxuICAgICAgY29uc3QgaGFzaCA9IGdlbmVyYXRlSGFzaChlbGVtZW50LnRleHRDb250ZW50KTtcclxuICAgICAgdGhpcy5pbnNlcnRlZC5kZWxldGUoaGFzaCk7XHJcbiAgICAgIGVsZW1lbnQucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYXMoY29udGVudDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBoYXNoID0gZ2VuZXJhdGVIYXNoKGNvbnRlbnQpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmluc2VydGVkLmhhcyhoYXNoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import { InternalStore } from '../utils/internal-store-utils';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
const mapToApiUrl = (key) => (apis) => ((key && apis[key]) || apis.default).url || apis.default.url;
|
|
6
|
+
const mapToIssuer = (issuer) => {
|
|
7
|
+
if (!issuer) {
|
|
8
|
+
return issuer;
|
|
9
|
+
}
|
|
10
|
+
return issuer.endsWith('/') ? issuer : issuer + '/';
|
|
11
|
+
};
|
|
12
|
+
class EnvironmentService {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.store = new InternalStore({});
|
|
15
|
+
}
|
|
16
|
+
get createOnUpdateStream() {
|
|
17
|
+
return this.store.sliceUpdate;
|
|
18
|
+
}
|
|
19
|
+
getEnvironment$() {
|
|
20
|
+
return this.store.sliceState(state => state);
|
|
21
|
+
}
|
|
22
|
+
getEnvironment() {
|
|
23
|
+
return this.store.state;
|
|
24
|
+
}
|
|
25
|
+
getApiUrl(key) {
|
|
26
|
+
return mapToApiUrl(key)(this.store.state?.apis);
|
|
27
|
+
}
|
|
28
|
+
getApiUrl$(key) {
|
|
29
|
+
return this.store.sliceState(state => state.apis).pipe(map(mapToApiUrl(key)));
|
|
30
|
+
}
|
|
31
|
+
setState(environment) {
|
|
32
|
+
this.store.set(environment);
|
|
33
|
+
}
|
|
34
|
+
getIssuer() {
|
|
35
|
+
const issuer = this.store.state?.oAuthConfig?.issuer;
|
|
36
|
+
return mapToIssuer(issuer);
|
|
37
|
+
}
|
|
38
|
+
getIssuer$() {
|
|
39
|
+
return this.store.sliceState(state => state?.oAuthConfig?.issuer).pipe(map(mapToIssuer));
|
|
40
|
+
}
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: EnvironmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
42
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: EnvironmentService, providedIn: 'root' }); }
|
|
43
|
+
}
|
|
44
|
+
export { EnvironmentService };
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: EnvironmentService, decorators: [{
|
|
46
|
+
type: Injectable,
|
|
47
|
+
args: [{ providedIn: 'root' }]
|
|
48
|
+
}] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFOUQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQVUsRUFBRSxFQUFFLENBQzlELENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztBQUUvRCxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQTBCLEVBQUUsRUFBRTtJQUNqRCxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1gsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUNELE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO0FBQ3RELENBQUMsQ0FBQztBQUVGLE1BQ2Esa0JBQWtCO0lBRC9CO1FBRW1CLFVBQUssR0FBRyxJQUFJLGFBQWEsQ0FBQyxFQUFpQixDQUFDLENBQUM7S0FtQy9EO0lBakNDLElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBdUI7UUFDL0IsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxRQUFRLENBQUMsV0FBd0I7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDO1FBRXJELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7OEdBbkNVLGtCQUFrQjtrSEFBbEIsa0JBQWtCLGNBREwsTUFBTTs7U0FDbkIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQXBpcywgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9tb2RlbHMvZW52aXJvbm1lbnQnO1xyXG5pbXBvcnQgeyBJbnRlcm5hbFN0b3JlIH0gZnJvbSAnLi4vdXRpbHMvaW50ZXJuYWwtc3RvcmUtdXRpbHMnO1xyXG5cclxuY29uc3QgbWFwVG9BcGlVcmwgPSAoa2V5OiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IChhcGlzOiBBcGlzKSA9PlxyXG4gICgoa2V5ICYmIGFwaXNba2V5XSkgfHwgYXBpcy5kZWZhdWx0KS51cmwgfHwgYXBpcy5kZWZhdWx0LnVybDtcclxuXHJcbmNvbnN0IG1hcFRvSXNzdWVyID0gKGlzc3Vlcjogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgaWYgKCFpc3N1ZXIpIHtcclxuICAgIHJldHVybiBpc3N1ZXI7XHJcbiAgfVxyXG4gIHJldHVybiBpc3N1ZXIuZW5kc1dpdGgoJy8nKSA/IGlzc3VlciA6IGlzc3VlciArICcvJztcclxufTtcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBFbnZpcm9ubWVudFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBuZXcgSW50ZXJuYWxTdG9yZSh7fSBhcyBFbnZpcm9ubWVudCk7XHJcblxyXG4gIGdldCBjcmVhdGVPblVwZGF0ZVN0cmVhbSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlVXBkYXRlO1xyXG4gIH1cclxuXHJcbiAgZ2V0RW52aXJvbm1lbnQkKCk6IE9ic2VydmFibGU8RW52aXJvbm1lbnQ+IHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLnNsaWNlU3RhdGUoc3RhdGUgPT4gc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RW52aXJvbm1lbnQoKTogRW52aXJvbm1lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGU7XHJcbiAgfVxyXG5cclxuICBnZXRBcGlVcmwoa2V5OiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIHJldHVybiBtYXBUb0FwaVVybChrZXkpKHRoaXMuc3RvcmUuc3RhdGU/LmFwaXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QXBpVXJsJChrZXk6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZS5hcGlzKS5waXBlKG1hcChtYXBUb0FwaVVybChrZXkpKSk7XHJcbiAgfVxyXG5cclxuICBzZXRTdGF0ZShlbnZpcm9ubWVudDogRW52aXJvbm1lbnQpIHtcclxuICAgIHRoaXMuc3RvcmUuc2V0KGVudmlyb25tZW50KTtcclxuICB9XHJcblxyXG4gIGdldElzc3VlcigpIHtcclxuICAgIGNvbnN0IGlzc3VlciA9IHRoaXMuc3RvcmUuc3RhdGU/Lm9BdXRoQ29uZmlnPy5pc3N1ZXI7XHJcblxyXG4gICAgcmV0dXJuIG1hcFRvSXNzdWVyKGlzc3Vlcik7XHJcbiAgfVxyXG5cclxuICBnZXRJc3N1ZXIkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZShzdGF0ZSA9PiBzdGF0ZT8ub0F1dGhDb25maWc/Lmlzc3VlcikucGlwZShtYXAobWFwVG9Jc3N1ZXIpKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
class HttpErrorReporterService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this._reporter$ = new Subject();
|
|
7
|
+
this._errors$ = new BehaviorSubject([]);
|
|
8
|
+
this.reportError = (error) => {
|
|
9
|
+
this._reporter$.next(error);
|
|
10
|
+
this._errors$.next([...this.errors, error]);
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
get reporter$() {
|
|
14
|
+
return this._reporter$.asObservable();
|
|
15
|
+
}
|
|
16
|
+
get errors$() {
|
|
17
|
+
return this._errors$.asObservable();
|
|
18
|
+
}
|
|
19
|
+
get errors() {
|
|
20
|
+
return this._errors$.value;
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: HttpErrorReporterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
23
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: HttpErrorReporterService, providedIn: 'root' }); }
|
|
24
|
+
}
|
|
25
|
+
export { HttpErrorReporterService };
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: HttpErrorReporterService, decorators: [{
|
|
27
|
+
type: Injectable,
|
|
28
|
+
args: [{ providedIn: 'root' }]
|
|
29
|
+
}] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1yZXBvcnRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAtZXJyb3ItcmVwb3J0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUVoRCxNQUNhLHdCQUF3QjtJQURyQztRQUVVLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztRQUM5QyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBY2hFLGdCQUFXLEdBQUcsQ0FBQyxLQUF3QixFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUM7S0FDSDtJQWhCQyxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUM3QixDQUFDOzhHQWRVLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRFgsTUFBTTs7U0FDbkIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgSHR0cEVycm9yUmVwb3J0ZXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIF9yZXBvcnRlciQgPSBuZXcgU3ViamVjdDxIdHRwRXJyb3JSZXNwb25zZT4oKTtcclxuICBwcml2YXRlIF9lcnJvcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIdHRwRXJyb3JSZXNwb25zZVtdPihbXSk7XHJcblxyXG4gIGdldCByZXBvcnRlciQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVwb3J0ZXIkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVycm9ycyQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXJyb3JzJC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGdldCBlcnJvcnMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXJyb3JzJC52YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlcG9ydEVycm9yID0gKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xyXG4gICAgdGhpcy5fcmVwb3J0ZXIkLm5leHQoZXJyb3IpO1xyXG4gICAgdGhpcy5fZXJyb3JzJC5uZXh0KFsuLi50aGlzLmVycm9ycywgZXJyb3JdKTtcclxuICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Injectable, Injector } from '@angular/core';
|
|
2
|
+
import { InternalStore } from '../utils/internal-store-utils';
|
|
3
|
+
import { getPathName } from '../utils/http-utils';
|
|
4
|
+
import { map, mapTo, switchMap, takeUntil, tap } from 'rxjs/operators';
|
|
5
|
+
import { of, Subject, timer } from 'rxjs';
|
|
6
|
+
import { LOADER_DELAY } from '../tokens/lodaer-delay.token';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
class HttpWaitService {
|
|
9
|
+
constructor(injector) {
|
|
10
|
+
this.store = new InternalStore({
|
|
11
|
+
requests: [],
|
|
12
|
+
filteredRequests: [],
|
|
13
|
+
});
|
|
14
|
+
this.destroy$ = new Subject();
|
|
15
|
+
this.delay = injector.get(LOADER_DELAY, 500);
|
|
16
|
+
}
|
|
17
|
+
getLoading() {
|
|
18
|
+
return !!this.applyFilter(this.store.state.requests).length;
|
|
19
|
+
}
|
|
20
|
+
getLoading$() {
|
|
21
|
+
return this.store
|
|
22
|
+
.sliceState(({ requests }) => requests)
|
|
23
|
+
.pipe(map(requests => !!this.applyFilter(requests).length), switchMap(condition => condition
|
|
24
|
+
? this.delay === 0
|
|
25
|
+
? of(true)
|
|
26
|
+
: timer(this.delay).pipe(mapTo(true), takeUntil(this.destroy$))
|
|
27
|
+
: of(false)), tap(() => this.destroy$.next()));
|
|
28
|
+
}
|
|
29
|
+
updateLoading$() {
|
|
30
|
+
return this.store.sliceUpdate(({ requests }) => !!this.applyFilter(requests).length);
|
|
31
|
+
}
|
|
32
|
+
clearLoading() {
|
|
33
|
+
this.store.patch({ requests: [] });
|
|
34
|
+
}
|
|
35
|
+
addRequest(request) {
|
|
36
|
+
this.store.patch({ requests: [...this.store.state.requests, request] });
|
|
37
|
+
}
|
|
38
|
+
deleteRequest(request) {
|
|
39
|
+
const requests = this.store.state.requests.filter(r => r !== request);
|
|
40
|
+
this.store.patch({ requests });
|
|
41
|
+
}
|
|
42
|
+
addFilter(request) {
|
|
43
|
+
const requests = Array.isArray(request) ? request : [request];
|
|
44
|
+
const filteredRequests = [
|
|
45
|
+
...this.store.state.filteredRequests.filter(f => !requests.some(r => this.isSameRequest(f, r))),
|
|
46
|
+
...requests,
|
|
47
|
+
];
|
|
48
|
+
this.store.patch({ filteredRequests });
|
|
49
|
+
}
|
|
50
|
+
removeFilter(request) {
|
|
51
|
+
const requests = Array.isArray(request) ? request : [request];
|
|
52
|
+
const filteredRequests = this.store.state.filteredRequests.filter(f => !requests.some(r => this.isSameRequest(f, r)));
|
|
53
|
+
this.store.patch({ filteredRequests });
|
|
54
|
+
}
|
|
55
|
+
applyFilter(requests) {
|
|
56
|
+
if (!requests) {
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
const { filteredRequests } = this.store.state;
|
|
60
|
+
return requests.filter(({ method, url }) => !filteredRequests.find(filteredRequest => this.isSameRequest(filteredRequest, { method, endpoint: getPathName(url) })));
|
|
61
|
+
}
|
|
62
|
+
isSameRequest(filteredRequest, request) {
|
|
63
|
+
const { method, endpoint } = filteredRequest;
|
|
64
|
+
return endpoint === request.endpoint && method === request.method;
|
|
65
|
+
}
|
|
66
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: HttpWaitService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
67
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: HttpWaitService, providedIn: 'root' }); }
|
|
68
|
+
}
|
|
69
|
+
export { HttpWaitService };
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: HttpWaitService, decorators: [{
|
|
71
|
+
type: Injectable,
|
|
72
|
+
args: [{
|
|
73
|
+
providedIn: 'root',
|
|
74
|
+
}]
|
|
75
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC13YWl0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvaHR0cC13YWl0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBVTVELE1BR2EsZUFBZTtJQVMxQixZQUFZLFFBQWtCO1FBUnBCLFVBQUssR0FBRyxJQUFJLGFBQWEsQ0FBZ0I7WUFDakQsUUFBUSxFQUFFLEVBQUU7WUFDWixnQkFBZ0IsRUFBRSxFQUFFO1NBQ3JCLENBQUMsQ0FBQztRQUdLLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBR3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM5RCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLEtBQUs7YUFDZCxVQUFVLENBQUMsQ0FB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Q0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUNuRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLFdBQVcsQ0FBQyxRQUF3QztRQUMxRCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzlDLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FDcEIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQ2xCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUM1RSxDQUNKLENBQUM7SUFDSixDQUFDO0lBRU8sYUFBYSxDQUFDLGVBQWdDLEVBQUUsT0FBd0I7UUFDOUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxlQUFlLENBQUM7UUFDN0MsT0FBTyxRQUFRLEtBQUssT0FBTyxDQUFDLFFBQVEsSUFBSSxNQUFNLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUNwRSxDQUFDOzhHQXJGVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxNQUFNOztTQUVQLGVBQWU7MkZBQWYsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW50ZXJuYWxTdG9yZSB9IGZyb20gJy4uL3V0aWxzL2ludGVybmFsLXN0b3JlLXV0aWxzJztcclxuaW1wb3J0IHsgZ2V0UGF0aE5hbWUgfSBmcm9tICcuLi91dGlscy9odHRwLXV0aWxzJztcclxuaW1wb3J0IHsgbWFwLCBtYXBUbywgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgb2YsIFN1YmplY3QsIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExPQURFUl9ERUxBWSB9IGZyb20gJy4uL3Rva2Vucy9sb2RhZXItZGVsYXkudG9rZW4nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIdHRwV2FpdFN0YXRlIHtcclxuICByZXF1ZXN0czogSHR0cFJlcXVlc3Q8YW55PltdO1xyXG4gIGZpbHRlcmVkUmVxdWVzdHM6IEFycmF5PEh0dHBSZXF1ZXN0SW5mbz47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBIdHRwUmVxdWVzdEluZm8ge1xyXG4gIG1ldGhvZDogc3RyaW5nO1xyXG4gIGVuZHBvaW50OiBzdHJpbmc7XHJcbn1cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEh0dHBXYWl0U2VydmljZSB7XHJcbiAgcHJvdGVjdGVkIHN0b3JlID0gbmV3IEludGVybmFsU3RvcmU8SHR0cFdhaXRTdGF0ZT4oe1xyXG4gICAgcmVxdWVzdHM6IFtdLFxyXG4gICAgZmlsdGVyZWRSZXF1ZXN0czogW10sXHJcbiAgfSk7XHJcblxyXG4gIHByaXZhdGUgZGVsYXk6IG51bWJlcjtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLmRlbGF5ID0gaW5qZWN0b3IuZ2V0KExPQURFUl9ERUxBWSwgNTAwKTtcclxuICB9XHJcblxyXG4gIGdldExvYWRpbmcoKSB7XHJcbiAgICByZXR1cm4gISF0aGlzLmFwcGx5RmlsdGVyKHRoaXMuc3RvcmUuc3RhdGUucmVxdWVzdHMpLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIGdldExvYWRpbmckKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmVcclxuICAgICAgLnNsaWNlU3RhdGUoKHsgcmVxdWVzdHMgfSkgPT4gcmVxdWVzdHMpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcChyZXF1ZXN0cyA9PiAhIXRoaXMuYXBwbHlGaWx0ZXIocmVxdWVzdHMpLmxlbmd0aCksXHJcbiAgICAgICAgc3dpdGNoTWFwKGNvbmRpdGlvbiA9PlxyXG4gICAgICAgICAgY29uZGl0aW9uXHJcbiAgICAgICAgICAgID8gdGhpcy5kZWxheSA9PT0gMFxyXG4gICAgICAgICAgICAgID8gb2YodHJ1ZSlcclxuICAgICAgICAgICAgICA6IHRpbWVyKHRoaXMuZGVsYXkpLnBpcGUobWFwVG8odHJ1ZSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgOiBvZihmYWxzZSksXHJcbiAgICAgICAgKSxcclxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5kZXN0cm95JC5uZXh0KCkpLFxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTG9hZGluZyQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVVwZGF0ZSgoeyByZXF1ZXN0cyB9KSA9PiAhIXRoaXMuYXBwbHlGaWx0ZXIocmVxdWVzdHMpLmxlbmd0aCk7XHJcbiAgfVxyXG5cclxuICBjbGVhckxvYWRpbmcoKSB7XHJcbiAgICB0aGlzLnN0b3JlLnBhdGNoKHsgcmVxdWVzdHM6IFtdIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkUmVxdWVzdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+KSB7XHJcbiAgICB0aGlzLnN0b3JlLnBhdGNoKHsgcmVxdWVzdHM6IFsuLi50aGlzLnN0b3JlLnN0YXRlLnJlcXVlc3RzLCByZXF1ZXN0XSB9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVJlcXVlc3QocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55Pikge1xyXG4gICAgY29uc3QgcmVxdWVzdHMgPSB0aGlzLnN0b3JlLnN0YXRlLnJlcXVlc3RzLmZpbHRlcihyID0+IHIgIT09IHJlcXVlc3QpO1xyXG4gICAgdGhpcy5zdG9yZS5wYXRjaCh7IHJlcXVlc3RzIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkRmlsdGVyKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0SW5mbyB8IEh0dHBSZXF1ZXN0SW5mb1tdKSB7XHJcbiAgICBjb25zdCByZXF1ZXN0cyA9IEFycmF5LmlzQXJyYXkocmVxdWVzdCkgPyByZXF1ZXN0IDogW3JlcXVlc3RdO1xyXG4gICAgY29uc3QgZmlsdGVyZWRSZXF1ZXN0cyA9IFtcclxuICAgICAgLi4udGhpcy5zdG9yZS5zdGF0ZS5maWx0ZXJlZFJlcXVlc3RzLmZpbHRlcihcclxuICAgICAgICBmID0+ICFyZXF1ZXN0cy5zb21lKHIgPT4gdGhpcy5pc1NhbWVSZXF1ZXN0KGYsIHIpKSxcclxuICAgICAgKSxcclxuICAgICAgLi4ucmVxdWVzdHMsXHJcbiAgICBdO1xyXG4gICAgdGhpcy5zdG9yZS5wYXRjaCh7IGZpbHRlcmVkUmVxdWVzdHMgfSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVGaWx0ZXIocmVxdWVzdDogSHR0cFJlcXVlc3RJbmZvIHwgSHR0cFJlcXVlc3RJbmZvW10pIHtcclxuICAgIGNvbnN0IHJlcXVlc3RzID0gQXJyYXkuaXNBcnJheShyZXF1ZXN0KSA/IHJlcXVlc3QgOiBbcmVxdWVzdF07XHJcbiAgICBjb25zdCBmaWx0ZXJlZFJlcXVlc3RzID0gdGhpcy5zdG9yZS5zdGF0ZS5maWx0ZXJlZFJlcXVlc3RzLmZpbHRlcihcclxuICAgICAgZiA9PiAhcmVxdWVzdHMuc29tZShyID0+IHRoaXMuaXNTYW1lUmVxdWVzdChmLCByKSksXHJcbiAgICApO1xyXG4gICAgdGhpcy5zdG9yZS5wYXRjaCh7IGZpbHRlcmVkUmVxdWVzdHMgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5RmlsdGVyKHJlcXVlc3RzOiBIdHRwUmVxdWVzdDxhbnk+W10gfCB1bmRlZmluZWQpIHtcclxuICAgIGlmICghcmVxdWVzdHMpIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBmaWx0ZXJlZFJlcXVlc3RzIH0gPSB0aGlzLnN0b3JlLnN0YXRlO1xyXG4gICAgcmV0dXJuIHJlcXVlc3RzLmZpbHRlcihcclxuICAgICAgKHsgbWV0aG9kLCB1cmwgfSkgPT5cclxuICAgICAgICAhZmlsdGVyZWRSZXF1ZXN0cy5maW5kKGZpbHRlcmVkUmVxdWVzdCA9PlxyXG4gICAgICAgICAgdGhpcy5pc1NhbWVSZXF1ZXN0KGZpbHRlcmVkUmVxdWVzdCwgeyBtZXRob2QsIGVuZHBvaW50OiBnZXRQYXRoTmFtZSh1cmwpIH0pLFxyXG4gICAgICAgICksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1NhbWVSZXF1ZXN0KGZpbHRlcmVkUmVxdWVzdDogSHR0cFJlcXVlc3RJbmZvLCByZXF1ZXN0OiBIdHRwUmVxdWVzdEluZm8pIHtcclxuICAgIGNvbnN0IHsgbWV0aG9kLCBlbmRwb2ludCB9ID0gZmlsdGVyZWRSZXF1ZXN0O1xyXG4gICAgcmV0dXJuIGVuZHBvaW50ID09PSByZXF1ZXN0LmVuZHBvaW50ICYmIG1ldGhvZCA9PT0gcmVxdWVzdC5tZXRob2Q7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
export * from './config-state.service';
|
|
2
|
-
export * from './content-projection.service';
|
|
3
|
-
export * from './dom-insertion.service';
|
|
4
|
-
export * from './environment.service';
|
|
5
|
-
export * from './http-error-reporter.service';
|
|
6
|
-
export * from './http-wait.service';
|
|
7
|
-
export * from './lazy-load.service';
|
|
8
|
-
export * from './list.service';
|
|
9
|
-
export * from './localization.service';
|
|
10
|
-
export * from './multi-tenancy.service';
|
|
11
|
-
export * from './permission.service';
|
|
12
|
-
export * from './replaceable-components.service';
|
|
13
|
-
export * from './resource-wait.service';
|
|
14
|
-
export * from './rest.service';
|
|
15
|
-
export * from './router-events.service';
|
|
16
|
-
export * from './router-wait.service';
|
|
17
|
-
export * from './routes.service';
|
|
18
|
-
export * from './session-state.service';
|
|
19
|
-
export * from './subscription.service';
|
|
20
|
-
export * from './track-by.service';
|
|
21
|
-
export * from './local-storage.service';
|
|
1
|
+
export * from './config-state.service';
|
|
2
|
+
export * from './content-projection.service';
|
|
3
|
+
export * from './dom-insertion.service';
|
|
4
|
+
export * from './environment.service';
|
|
5
|
+
export * from './http-error-reporter.service';
|
|
6
|
+
export * from './http-wait.service';
|
|
7
|
+
export * from './lazy-load.service';
|
|
8
|
+
export * from './list.service';
|
|
9
|
+
export * from './localization.service';
|
|
10
|
+
export * from './multi-tenancy.service';
|
|
11
|
+
export * from './permission.service';
|
|
12
|
+
export * from './replaceable-components.service';
|
|
13
|
+
export * from './resource-wait.service';
|
|
14
|
+
export * from './rest.service';
|
|
15
|
+
export * from './router-events.service';
|
|
16
|
+
export * from './router-wait.service';
|
|
17
|
+
export * from './routes.service';
|
|
18
|
+
export * from './session-state.service';
|
|
19
|
+
export * from './subscription.service';
|
|
20
|
+
export * from './track-by.service';
|
|
21
|
+
export * from './local-storage.service';
|
|
22
22
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbmZpZy1zdGF0ZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250ZW50LXByb2plY3Rpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZG9tLWluc2VydGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9odHRwLWVycm9yLXJlcG9ydGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2h0dHAtd2FpdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9sYXp5LWxvYWQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGlzdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbXVsdGktdGVuYW5jeS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcGxhY2VhYmxlLWNvbXBvbmVudHMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVzb3VyY2Utd2FpdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXN0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JvdXRlci1ldmVudHMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcm91dGVyLXdhaXQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcm91dGVzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24tc3RhdGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RyYWNrLWJ5LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { concat, of, pipe, throwError } from 'rxjs';
|
|
3
|
+
import { delay, retryWhen, shareReplay, take, tap } from 'rxjs/operators';
|
|
4
|
+
import { ResourceWaitService } from './resource-wait.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./resource-wait.service";
|
|
7
|
+
class LazyLoadService {
|
|
8
|
+
constructor(resourceWaitService) {
|
|
9
|
+
this.resourceWaitService = resourceWaitService;
|
|
10
|
+
this.loaded = new Map();
|
|
11
|
+
}
|
|
12
|
+
load(strategy, retryTimes, retryDelay) {
|
|
13
|
+
if (this.loaded.has(strategy.path))
|
|
14
|
+
return of(new CustomEvent('load'));
|
|
15
|
+
this.resourceWaitService.addResource(strategy.path);
|
|
16
|
+
const delayOperator = retryDelay ? pipe(delay(retryDelay)) : pipe();
|
|
17
|
+
const takeOp = retryTimes ? pipe(take(retryTimes)) : pipe();
|
|
18
|
+
return strategy.createStream().pipe(retryWhen(error$ => concat(error$.pipe(delayOperator, takeOp), throwError(() => new CustomEvent('error')))), tap(() => {
|
|
19
|
+
this.loaded.set(strategy.path, strategy.element);
|
|
20
|
+
this.resourceWaitService.deleteResource(strategy.path);
|
|
21
|
+
}), delay(100), shareReplay({ bufferSize: 1, refCount: true }));
|
|
22
|
+
}
|
|
23
|
+
remove(path) {
|
|
24
|
+
const element = this.loaded.get(path);
|
|
25
|
+
if (!element)
|
|
26
|
+
return false;
|
|
27
|
+
element.parentNode?.removeChild(element);
|
|
28
|
+
this.loaded.delete(path);
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LazyLoadService, deps: [{ token: i1.ResourceWaitService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LazyLoadService, providedIn: 'root' }); }
|
|
33
|
+
}
|
|
34
|
+
export { LazyLoadService };
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LazyLoadService, decorators: [{
|
|
36
|
+
type: Injectable,
|
|
37
|
+
args: [{
|
|
38
|
+
providedIn: 'root',
|
|
39
|
+
}]
|
|
40
|
+
}], ctorParameters: function () { return [{ type: i1.ResourceWaitService }]; } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvbGF6eS1sb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUU5RCxNQUdhLGVBQWU7SUFHMUIsWUFBb0IsbUJBQXdDO1FBQXhDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFGbkQsV0FBTSxHQUFHLElBQUksR0FBRyxFQUFzRCxDQUFDO0lBRWpCLENBQUM7SUFFaEUsSUFBSSxDQUFDLFFBQXlCLEVBQUUsVUFBbUIsRUFBRSxVQUFtQjtRQUN0RSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwRSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUQsT0FBTyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUNqQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDakIsTUFBTSxDQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxFQUNsQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDM0MsQ0FDRixFQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RCxDQUFDLENBQUMsRUFDRixLQUFLLENBQUMsR0FBRyxDQUFDLEVBQ1YsV0FBVyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDL0MsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWTtRQUNqQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBRTNCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs4R0FsQ1UsZUFBZTtrSEFBZixlQUFlLGNBRmQsTUFBTTs7U0FFUCxlQUFlOzJGQUFmLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBjb25jYXQsIE9ic2VydmFibGUsIG9mLCBwaXBlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlbGF5LCByZXRyeVdoZW4sIHNoYXJlUmVwbGF5LCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IExvYWRpbmdTdHJhdGVneSB9IGZyb20gJy4uL3N0cmF0ZWdpZXMnO1xyXG5pbXBvcnQgeyBSZXNvdXJjZVdhaXRTZXJ2aWNlIH0gZnJvbSAnLi9yZXNvdXJjZS13YWl0LnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIExhenlMb2FkU2VydmljZSB7XHJcbiAgcmVhZG9ubHkgbG9hZGVkID0gbmV3IE1hcDxzdHJpbmcsIEhUTUxTY3JpcHRFbGVtZW50IHwgSFRNTExpbmtFbGVtZW50IHwgbnVsbD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXNvdXJjZVdhaXRTZXJ2aWNlOiBSZXNvdXJjZVdhaXRTZXJ2aWNlKSB7fVxyXG5cclxuICBsb2FkKHN0cmF0ZWd5OiBMb2FkaW5nU3RyYXRlZ3ksIHJldHJ5VGltZXM/OiBudW1iZXIsIHJldHJ5RGVsYXk/OiBudW1iZXIpOiBPYnNlcnZhYmxlPEV2ZW50PiB7XHJcbiAgICBpZiAodGhpcy5sb2FkZWQuaGFzKHN0cmF0ZWd5LnBhdGgpKSByZXR1cm4gb2YobmV3IEN1c3RvbUV2ZW50KCdsb2FkJykpO1xyXG4gICAgdGhpcy5yZXNvdXJjZVdhaXRTZXJ2aWNlLmFkZFJlc291cmNlKHN0cmF0ZWd5LnBhdGgpO1xyXG4gICAgY29uc3QgZGVsYXlPcGVyYXRvciA9IHJldHJ5RGVsYXkgPyBwaXBlKGRlbGF5KHJldHJ5RGVsYXkpKSA6IHBpcGUoKTtcclxuICAgIGNvbnN0IHRha2VPcCA9IHJldHJ5VGltZXMgPyBwaXBlKHRha2UocmV0cnlUaW1lcykpIDogcGlwZSgpO1xyXG4gICAgcmV0dXJuIHN0cmF0ZWd5LmNyZWF0ZVN0cmVhbSgpLnBpcGUoXHJcbiAgICAgIHJldHJ5V2hlbihlcnJvciQgPT5cclxuICAgICAgICBjb25jYXQoXHJcbiAgICAgICAgICBlcnJvciQucGlwZShkZWxheU9wZXJhdG9yLCB0YWtlT3ApLFxyXG4gICAgICAgICAgdGhyb3dFcnJvcigoKSA9PiBuZXcgQ3VzdG9tRXZlbnQoJ2Vycm9yJykpLFxyXG4gICAgICAgICksXHJcbiAgICAgICksXHJcbiAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkZWQuc2V0KHN0cmF0ZWd5LnBhdGgsIHN0cmF0ZWd5LmVsZW1lbnQpO1xyXG4gICAgICAgIHRoaXMucmVzb3VyY2VXYWl0U2VydmljZS5kZWxldGVSZXNvdXJjZShzdHJhdGVneS5wYXRoKTtcclxuICAgICAgfSksXHJcbiAgICAgIGRlbGF5KDEwMCksXHJcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMubG9hZGVkLmdldChwYXRoKTtcclxuXHJcbiAgICBpZiAoIWVsZW1lbnQpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBlbGVtZW50LnBhcmVudE5vZGU/LnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xyXG4gICAgdGhpcy5sb2FkZWQuZGVsZXRlKHBhdGgpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|