@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
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
// This will not be necessary when only Angukar 9.1+ is supported
|
|
2
|
-
export function getLocaleDirection(locale) {
|
|
3
|
-
return /^(ar(-[A-Z]{2})?|ckb(-IR)?|fa(-AF)?|he|ks|lrc(-IQ)?|mzn|pa-Arab|ps(-PK)?|sd|ug|ur(-IN)?|uz-Arab|yi)$/.test(locale)
|
|
4
|
-
? 'rtl'
|
|
5
|
-
: 'ltr';
|
|
6
|
-
}
|
|
7
|
-
export function createLocalizer(localization) {
|
|
8
|
-
return (resourceName, key, defaultValue) => {
|
|
9
|
-
if (resourceName === '_')
|
|
10
|
-
return key;
|
|
11
|
-
const resource = localization?.values?.[resourceName];
|
|
12
|
-
if (!resource)
|
|
13
|
-
return defaultValue;
|
|
14
|
-
return resource[key] || defaultValue;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
export function createLocalizerWithFallback(localization) {
|
|
18
|
-
const findLocalization = createLocalizationFinder(localization);
|
|
19
|
-
return (resourceNames, keys, defaultValue) => {
|
|
20
|
-
const { localized } = findLocalization(resourceNames, keys);
|
|
21
|
-
return localized || defaultValue;
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
export function createLocalizationPipeKeyGenerator(localization) {
|
|
25
|
-
const findLocalization = createLocalizationFinder(localization);
|
|
26
|
-
return (resourceNames, keys, defaultKey) => {
|
|
27
|
-
const { resourceName, key } = findLocalization(resourceNames, keys);
|
|
28
|
-
return !resourceName ? defaultKey : resourceName === '_' ? key : `${resourceName}::${key}`;
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
function createLocalizationFinder(localization) {
|
|
32
|
-
const localize = createLocalizer(localization);
|
|
33
|
-
return (resourceNames, keys) => {
|
|
34
|
-
resourceNames = resourceNames.concat(localization.defaultResourceName || '').filter(Boolean);
|
|
35
|
-
const resourceCount = resourceNames.length;
|
|
36
|
-
const keyCount = keys.length;
|
|
37
|
-
for (let i = 0; i < resourceCount; i++) {
|
|
38
|
-
const resourceName = resourceNames[i];
|
|
39
|
-
for (let j = 0; j < keyCount; j++) {
|
|
40
|
-
const key = keys[j];
|
|
41
|
-
const localized = localize(resourceName, key, null);
|
|
42
|
-
if (localized)
|
|
43
|
-
return { resourceName, key, localized };
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return { resourceName: undefined, key: undefined, localized: undefined };
|
|
47
|
-
};
|
|
48
|
-
}
|
|
1
|
+
// This will not be necessary when only Angukar 9.1+ is supported
|
|
2
|
+
export function getLocaleDirection(locale) {
|
|
3
|
+
return /^(ar(-[A-Z]{2})?|ckb(-IR)?|fa(-AF)?|he|ks|lrc(-IQ)?|mzn|pa-Arab|ps(-PK)?|sd|ug|ur(-IN)?|uz-Arab|yi)$/.test(locale)
|
|
4
|
+
? 'rtl'
|
|
5
|
+
: 'ltr';
|
|
6
|
+
}
|
|
7
|
+
export function createLocalizer(localization) {
|
|
8
|
+
return (resourceName, key, defaultValue) => {
|
|
9
|
+
if (resourceName === '_')
|
|
10
|
+
return key;
|
|
11
|
+
const resource = localization?.values?.[resourceName];
|
|
12
|
+
if (!resource)
|
|
13
|
+
return defaultValue;
|
|
14
|
+
return resource[key] || defaultValue;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function createLocalizerWithFallback(localization) {
|
|
18
|
+
const findLocalization = createLocalizationFinder(localization);
|
|
19
|
+
return (resourceNames, keys, defaultValue) => {
|
|
20
|
+
const { localized } = findLocalization(resourceNames, keys);
|
|
21
|
+
return localized || defaultValue;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function createLocalizationPipeKeyGenerator(localization) {
|
|
25
|
+
const findLocalization = createLocalizationFinder(localization);
|
|
26
|
+
return (resourceNames, keys, defaultKey) => {
|
|
27
|
+
const { resourceName, key } = findLocalization(resourceNames, keys);
|
|
28
|
+
return !resourceName ? defaultKey : resourceName === '_' ? key : `${resourceName}::${key}`;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function createLocalizationFinder(localization) {
|
|
32
|
+
const localize = createLocalizer(localization);
|
|
33
|
+
return (resourceNames, keys) => {
|
|
34
|
+
resourceNames = resourceNames.concat(localization.defaultResourceName || '').filter(Boolean);
|
|
35
|
+
const resourceCount = resourceNames.length;
|
|
36
|
+
const keyCount = keys.length;
|
|
37
|
+
for (let i = 0; i < resourceCount; i++) {
|
|
38
|
+
const resourceName = resourceNames[i];
|
|
39
|
+
for (let j = 0; j < keyCount; j++) {
|
|
40
|
+
const key = keys[j];
|
|
41
|
+
const localized = localize(resourceName, key, null);
|
|
42
|
+
if (localized)
|
|
43
|
+
return { resourceName, key, localized };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return { resourceName: undefined, key: undefined, localized: undefined };
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
49
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2xvY2FsaXphdGlvbi11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxpRUFBaUU7QUFDakUsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQWM7SUFDL0MsT0FBTyxzR0FBc0csQ0FBQyxJQUFJLENBQ2hILE1BQU0sQ0FDUDtRQUNDLENBQUMsQ0FBQyxLQUFLO1FBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFlBQXFEO0lBQ25GLE9BQU8sQ0FBQyxZQUFvQixFQUFFLEdBQVcsRUFBRSxZQUEyQixFQUFFLEVBQUU7UUFDeEUsSUFBSSxZQUFZLEtBQUssR0FBRztZQUFFLE9BQU8sR0FBRyxDQUFDO1FBRXJDLE1BQU0sUUFBUSxHQUFHLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sWUFBWSxDQUFDO1FBRW5DLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksQ0FBQztJQUN2QyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQixDQUFDLFlBQXFEO0lBQy9GLE1BQU0sZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFaEUsT0FBTyxDQUFDLGFBQXVCLEVBQUUsSUFBYyxFQUFFLFlBQW9CLEVBQUUsRUFBRTtRQUN2RSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVELE9BQU8sU0FBUyxJQUFJLFlBQVksQ0FBQztJQUNuQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGtDQUFrQyxDQUNoRCxZQUFxRDtJQUVyRCxNQUFNLGdCQUFnQixHQUFHLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRWhFLE9BQU8sQ0FBQyxhQUF1QixFQUFFLElBQWMsRUFBRSxVQUE4QixFQUFFLEVBQUU7UUFDakYsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQzdGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLFlBQXFEO0lBQ3JGLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUUvQyxPQUFPLENBQUMsYUFBdUIsRUFBRSxJQUFjLEVBQUUsRUFBRTtRQUNqRCxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTdGLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUU3QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3RDLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV0QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNqQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLFNBQVM7b0JBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUM7YUFDeEQ7U0FDRjtRQUVELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQzNFLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvbkxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb25EdG8gfSBmcm9tICcuLi9wcm94eS92b2xvL2FicC9hc3AtbmV0LWNvcmUvbXZjL2FwcGxpY2F0aW9uLWNvbmZpZ3VyYXRpb25zL21vZGVscyc7XHJcblxyXG4vLyBUaGlzIHdpbGwgbm90IGJlIG5lY2Vzc2FyeSB3aGVuIG9ubHkgQW5ndWthciA5LjErIGlzIHN1cHBvcnRlZFxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxlRGlyZWN0aW9uKGxvY2FsZTogc3RyaW5nKTogJ2x0cicgfCAncnRsJyB7XHJcbiAgcmV0dXJuIC9eKGFyKC1bQS1aXXsyfSk/fGNrYigtSVIpP3xmYSgtQUYpP3xoZXxrc3xscmMoLUlRKT98bXpufHBhLUFyYWJ8cHMoLVBLKT98c2R8dWd8dXIoLUlOKT98dXotQXJhYnx5aSkkLy50ZXN0KFxyXG4gICAgbG9jYWxlLFxyXG4gIClcclxuICAgID8gJ3J0bCdcclxuICAgIDogJ2x0cic7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2NhbGl6ZXIobG9jYWxpemF0aW9uOiBBcHBsaWNhdGlvbkxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb25EdG8pIHtcclxuICByZXR1cm4gKHJlc291cmNlTmFtZTogc3RyaW5nLCBrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBzdHJpbmcgfCBudWxsKSA9PiB7XHJcbiAgICBpZiAocmVzb3VyY2VOYW1lID09PSAnXycpIHJldHVybiBrZXk7XHJcblxyXG4gICAgY29uc3QgcmVzb3VyY2UgPSBsb2NhbGl6YXRpb24/LnZhbHVlcz8uW3Jlc291cmNlTmFtZV07XHJcblxyXG4gICAgaWYgKCFyZXNvdXJjZSkgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxuXHJcbiAgICByZXR1cm4gcmVzb3VyY2Vba2V5XSB8fCBkZWZhdWx0VmFsdWU7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxvY2FsaXplcldpdGhGYWxsYmFjayhsb2NhbGl6YXRpb246IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0bykge1xyXG4gIGNvbnN0IGZpbmRMb2NhbGl6YXRpb24gPSBjcmVhdGVMb2NhbGl6YXRpb25GaW5kZXIobG9jYWxpemF0aW9uKTtcclxuXHJcbiAgcmV0dXJuIChyZXNvdXJjZU5hbWVzOiBzdHJpbmdbXSwga2V5czogc3RyaW5nW10sIGRlZmF1bHRWYWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCB7IGxvY2FsaXplZCB9ID0gZmluZExvY2FsaXphdGlvbihyZXNvdXJjZU5hbWVzLCBrZXlzKTtcclxuICAgIHJldHVybiBsb2NhbGl6ZWQgfHwgZGVmYXVsdFZhbHVlO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2NhbGl6YXRpb25QaXBlS2V5R2VuZXJhdG9yKFxyXG4gIGxvY2FsaXphdGlvbjogQXBwbGljYXRpb25Mb2NhbGl6YXRpb25Db25maWd1cmF0aW9uRHRvLFxyXG4pIHtcclxuICBjb25zdCBmaW5kTG9jYWxpemF0aW9uID0gY3JlYXRlTG9jYWxpemF0aW9uRmluZGVyKGxvY2FsaXphdGlvbik7XHJcblxyXG4gIHJldHVybiAocmVzb3VyY2VOYW1lczogc3RyaW5nW10sIGtleXM6IHN0cmluZ1tdLCBkZWZhdWx0S2V5OiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcclxuICAgIGNvbnN0IHsgcmVzb3VyY2VOYW1lLCBrZXkgfSA9IGZpbmRMb2NhbGl6YXRpb24ocmVzb3VyY2VOYW1lcywga2V5cyk7XHJcbiAgICByZXR1cm4gIXJlc291cmNlTmFtZSA/IGRlZmF1bHRLZXkgOiByZXNvdXJjZU5hbWUgPT09ICdfJyA/IGtleSA6IGAke3Jlc291cmNlTmFtZX06OiR7a2V5fWA7XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlTG9jYWxpemF0aW9uRmluZGVyKGxvY2FsaXphdGlvbjogQXBwbGljYXRpb25Mb2NhbGl6YXRpb25Db25maWd1cmF0aW9uRHRvKSB7XHJcbiAgY29uc3QgbG9jYWxpemUgPSBjcmVhdGVMb2NhbGl6ZXIobG9jYWxpemF0aW9uKTtcclxuXHJcbiAgcmV0dXJuIChyZXNvdXJjZU5hbWVzOiBzdHJpbmdbXSwga2V5czogc3RyaW5nW10pID0+IHtcclxuICAgIHJlc291cmNlTmFtZXMgPSByZXNvdXJjZU5hbWVzLmNvbmNhdChsb2NhbGl6YXRpb24uZGVmYXVsdFJlc291cmNlTmFtZSB8fCAnJykuZmlsdGVyKEJvb2xlYW4pO1xyXG5cclxuICAgIGNvbnN0IHJlc291cmNlQ291bnQgPSByZXNvdXJjZU5hbWVzLmxlbmd0aDtcclxuICAgIGNvbnN0IGtleUNvdW50ID0ga2V5cy5sZW5ndGg7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNvdXJjZUNvdW50OyBpKyspIHtcclxuICAgICAgY29uc3QgcmVzb3VyY2VOYW1lID0gcmVzb3VyY2VOYW1lc1tpXTtcclxuXHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwga2V5Q291bnQ7IGorKykge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IGtleXNbal07XHJcbiAgICAgICAgY29uc3QgbG9jYWxpemVkID0gbG9jYWxpemUocmVzb3VyY2VOYW1lLCBrZXksIG51bGwpO1xyXG4gICAgICAgIGlmIChsb2NhbGl6ZWQpIHJldHVybiB7IHJlc291cmNlTmFtZSwga2V5LCBsb2NhbGl6ZWQgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7IHJlc291cmNlTmFtZTogdW5kZWZpbmVkLCBrZXk6IHVuZGVmaW5lZCwgbG9jYWxpemVkOiB1bmRlZmluZWQgfTtcclxuICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
import clone from 'just-clone';
|
|
2
|
-
import { tap } from 'rxjs/operators';
|
|
3
|
-
import { EnvironmentService } from '../services/environment.service';
|
|
4
|
-
import { MultiTenancyService } from '../services/multi-tenancy.service';
|
|
5
|
-
import { createTokenParser } from './string-utils';
|
|
6
|
-
const tenancyPlaceholder = '{0}';
|
|
7
|
-
function getCurrentTenancyName(appBaseUrl) {
|
|
8
|
-
if (appBaseUrl.charAt(appBaseUrl.length - 1) !== '/')
|
|
9
|
-
appBaseUrl += '/';
|
|
10
|
-
const parseTokens = createTokenParser(appBaseUrl);
|
|
11
|
-
const token = tenancyPlaceholder.replace(/[}{]/g, '');
|
|
12
|
-
return parseTokens(window.location.href)[token]?.[0];
|
|
13
|
-
}
|
|
14
|
-
function getCurrentTenancyNameFromUrl(tenantKey) {
|
|
15
|
-
const urlParams = new URLSearchParams(window.location.search);
|
|
16
|
-
return urlParams.get(tenantKey);
|
|
17
|
-
}
|
|
18
|
-
export async function parseTenantFromUrl(injector) {
|
|
19
|
-
const environmentService = injector.get(EnvironmentService);
|
|
20
|
-
const multiTenancyService = injector.get(MultiTenancyService);
|
|
21
|
-
const baseUrl = environmentService.getEnvironment()?.application?.baseUrl || '';
|
|
22
|
-
const tenancyName = getCurrentTenancyName(baseUrl);
|
|
23
|
-
const hideTenantBox = () => {
|
|
24
|
-
multiTenancyService.isTenantBoxVisible = false;
|
|
25
|
-
};
|
|
26
|
-
const setDomainTenant = (tenant) => {
|
|
27
|
-
multiTenancyService.domainTenant = {
|
|
28
|
-
id: tenant.tenantId,
|
|
29
|
-
name: tenant.name,
|
|
30
|
-
isAvailable: true,
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
const setEnvironmentWithDomainTenant = (tenant) => {
|
|
34
|
-
hideTenantBox();
|
|
35
|
-
setDomainTenant(tenant);
|
|
36
|
-
};
|
|
37
|
-
if (tenancyName) {
|
|
38
|
-
/**
|
|
39
|
-
* We have to replace tenant name within the urls from environment,
|
|
40
|
-
* because the code below will make a http request to find information about the domain tenant.
|
|
41
|
-
* Before this request takes place, we need to replace placeholders aka "{0}".
|
|
42
|
-
*/
|
|
43
|
-
replaceTenantNameWithinEnvironment(injector, tenancyName);
|
|
44
|
-
return multiTenancyService
|
|
45
|
-
.setTenantByName(tenancyName)
|
|
46
|
-
.pipe(tap(setEnvironmentWithDomainTenant))
|
|
47
|
-
.toPromise();
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
/**
|
|
51
|
-
* If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.
|
|
52
|
-
*/
|
|
53
|
-
replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');
|
|
54
|
-
const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(multiTenancyService.tenantKey);
|
|
55
|
-
if (tenantIdFromQueryParams) {
|
|
56
|
-
return multiTenancyService.setTenantById(tenantIdFromQueryParams).toPromise();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return Promise.resolve();
|
|
60
|
-
}
|
|
61
|
-
function replaceTenantNameWithinEnvironment(injector, tenancyName, placeholder = tenancyPlaceholder) {
|
|
62
|
-
const environmentService = injector.get(EnvironmentService);
|
|
63
|
-
const environment = clone(environmentService.getEnvironment());
|
|
64
|
-
if (environment.application.baseUrl) {
|
|
65
|
-
environment.application.baseUrl = environment.application.baseUrl.replace(placeholder, tenancyName);
|
|
66
|
-
}
|
|
67
|
-
if (environment.oAuthConfig?.redirectUri) {
|
|
68
|
-
environment.oAuthConfig.redirectUri = environment.oAuthConfig.redirectUri.replace(placeholder, tenancyName);
|
|
69
|
-
}
|
|
70
|
-
if (!environment.oAuthConfig) {
|
|
71
|
-
environment.oAuthConfig = {};
|
|
72
|
-
}
|
|
73
|
-
environment.oAuthConfig.issuer = (environment.oAuthConfig.issuer || '').replace(placeholder, tenancyName);
|
|
74
|
-
Object.keys(environment.apis).forEach(api => {
|
|
75
|
-
Object.keys(environment.apis[api]).forEach(key => {
|
|
76
|
-
environment.apis[api][key] = (environment.apis[api][key] || '').replace(placeholder, tenancyName);
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
return environmentService.setState(environment);
|
|
80
|
-
}
|
|
1
|
+
import clone from 'just-clone';
|
|
2
|
+
import { tap } from 'rxjs/operators';
|
|
3
|
+
import { EnvironmentService } from '../services/environment.service';
|
|
4
|
+
import { MultiTenancyService } from '../services/multi-tenancy.service';
|
|
5
|
+
import { createTokenParser } from './string-utils';
|
|
6
|
+
const tenancyPlaceholder = '{0}';
|
|
7
|
+
function getCurrentTenancyName(appBaseUrl) {
|
|
8
|
+
if (appBaseUrl.charAt(appBaseUrl.length - 1) !== '/')
|
|
9
|
+
appBaseUrl += '/';
|
|
10
|
+
const parseTokens = createTokenParser(appBaseUrl);
|
|
11
|
+
const token = tenancyPlaceholder.replace(/[}{]/g, '');
|
|
12
|
+
return parseTokens(window.location.href)[token]?.[0];
|
|
13
|
+
}
|
|
14
|
+
function getCurrentTenancyNameFromUrl(tenantKey) {
|
|
15
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
16
|
+
return urlParams.get(tenantKey);
|
|
17
|
+
}
|
|
18
|
+
export async function parseTenantFromUrl(injector) {
|
|
19
|
+
const environmentService = injector.get(EnvironmentService);
|
|
20
|
+
const multiTenancyService = injector.get(MultiTenancyService);
|
|
21
|
+
const baseUrl = environmentService.getEnvironment()?.application?.baseUrl || '';
|
|
22
|
+
const tenancyName = getCurrentTenancyName(baseUrl);
|
|
23
|
+
const hideTenantBox = () => {
|
|
24
|
+
multiTenancyService.isTenantBoxVisible = false;
|
|
25
|
+
};
|
|
26
|
+
const setDomainTenant = (tenant) => {
|
|
27
|
+
multiTenancyService.domainTenant = {
|
|
28
|
+
id: tenant.tenantId,
|
|
29
|
+
name: tenant.name,
|
|
30
|
+
isAvailable: true,
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
const setEnvironmentWithDomainTenant = (tenant) => {
|
|
34
|
+
hideTenantBox();
|
|
35
|
+
setDomainTenant(tenant);
|
|
36
|
+
};
|
|
37
|
+
if (tenancyName) {
|
|
38
|
+
/**
|
|
39
|
+
* We have to replace tenant name within the urls from environment,
|
|
40
|
+
* because the code below will make a http request to find information about the domain tenant.
|
|
41
|
+
* Before this request takes place, we need to replace placeholders aka "{0}".
|
|
42
|
+
*/
|
|
43
|
+
replaceTenantNameWithinEnvironment(injector, tenancyName);
|
|
44
|
+
return multiTenancyService
|
|
45
|
+
.setTenantByName(tenancyName)
|
|
46
|
+
.pipe(tap(setEnvironmentWithDomainTenant))
|
|
47
|
+
.toPromise();
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
/**
|
|
51
|
+
* If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.
|
|
52
|
+
*/
|
|
53
|
+
replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');
|
|
54
|
+
const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(multiTenancyService.tenantKey);
|
|
55
|
+
if (tenantIdFromQueryParams) {
|
|
56
|
+
return multiTenancyService.setTenantById(tenantIdFromQueryParams).toPromise();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return Promise.resolve();
|
|
60
|
+
}
|
|
61
|
+
function replaceTenantNameWithinEnvironment(injector, tenancyName, placeholder = tenancyPlaceholder) {
|
|
62
|
+
const environmentService = injector.get(EnvironmentService);
|
|
63
|
+
const environment = clone(environmentService.getEnvironment());
|
|
64
|
+
if (environment.application.baseUrl) {
|
|
65
|
+
environment.application.baseUrl = environment.application.baseUrl.replace(placeholder, tenancyName);
|
|
66
|
+
}
|
|
67
|
+
if (environment.oAuthConfig?.redirectUri) {
|
|
68
|
+
environment.oAuthConfig.redirectUri = environment.oAuthConfig.redirectUri.replace(placeholder, tenancyName);
|
|
69
|
+
}
|
|
70
|
+
if (!environment.oAuthConfig) {
|
|
71
|
+
environment.oAuthConfig = {};
|
|
72
|
+
}
|
|
73
|
+
environment.oAuthConfig.issuer = (environment.oAuthConfig.issuer || '').replace(placeholder, tenancyName);
|
|
74
|
+
Object.keys(environment.apis).forEach(api => {
|
|
75
|
+
Object.keys(environment.apis[api]).forEach(key => {
|
|
76
|
+
environment.apis[api][key] = (environment.apis[api][key] || '').replace(placeholder, tenancyName);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
return environmentService.setState(environment);
|
|
80
|
+
}
|
|
81
81
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktdGVuYW5jeS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9tdWx0aS10ZW5hbmN5LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUUvQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUM7QUFFakMsU0FBUyxxQkFBcUIsQ0FBQyxVQUFrQjtJQUMvQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHO1FBQUUsVUFBVSxJQUFJLEdBQUcsQ0FBQztJQUV4RSxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRCxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsU0FBUyw0QkFBNEIsQ0FBQyxTQUFpQjtJQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlELE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxRQUFrQjtJQUN6RCxNQUFNLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUM1RCxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUU5RCxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsRUFBRSxXQUFXLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUNoRixNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVuRCxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUU7UUFDekIsbUJBQW1CLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQ2pELENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLENBQUMsTUFBMkIsRUFBRSxFQUFFO1FBQ3RELG1CQUFtQixDQUFDLFlBQVksR0FBRztZQUNqQyxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDbkIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixNQUFNLDhCQUE4QixHQUFHLENBQUMsTUFBMkIsRUFBRSxFQUFFO1FBQ3JFLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUM7SUFFRixJQUFJLFdBQVcsRUFBRTtRQUNmOzs7O1dBSUc7UUFDSCxrQ0FBa0MsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDMUQsT0FBTyxtQkFBbUI7YUFDdkIsZUFBZSxDQUFDLFdBQVcsQ0FBQzthQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7YUFDekMsU0FBUyxFQUFFLENBQUM7S0FDaEI7U0FBTTtRQUNMOztXQUVHO1FBQ0gsa0NBQWtDLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUUzRSxNQUFNLHVCQUF1QixHQUFHLDRCQUE0QixDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVGLElBQUksdUJBQXVCLEVBQUU7WUFDM0IsT0FBTyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUMvRTtLQUNGO0lBRUQsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDM0IsQ0FBQztBQUVELFNBQVMsa0NBQWtDLENBQ3pDLFFBQWtCLEVBQ2xCLFdBQW1CLEVBQ25CLFdBQVcsR0FBRyxrQkFBa0I7SUFFaEMsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFNUQsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxDQUFnQixDQUFDO0lBRTlFLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUU7UUFDbkMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUN2RSxXQUFXLEVBQ1gsV0FBVyxDQUNaLENBQUM7S0FDSDtJQUVELElBQUksV0FBVyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUU7UUFDeEMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUMvRSxXQUFXLEVBQ1gsV0FBVyxDQUNaLENBQUM7S0FDSDtJQUVELElBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO1FBQzNCLFdBQVcsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0tBQzlCO0lBQ0QsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRTFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0MsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwRyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJztcclxuXHJcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9tb2RlbHMvZW52aXJvbm1lbnQnO1xyXG5cclxuaW1wb3J0IHsgRmluZFRlbmFudFJlc3VsdER0byB9IGZyb20gJy4uL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvbXVsdGktdGVuYW5jeS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlUZW5hbmN5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL211bHRpLXRlbmFuY3kuc2VydmljZSc7XHJcbmltcG9ydCB7IGNyZWF0ZVRva2VuUGFyc2VyIH0gZnJvbSAnLi9zdHJpbmctdXRpbHMnO1xyXG5cclxuY29uc3QgdGVuYW5jeVBsYWNlaG9sZGVyID0gJ3swfSc7XHJcblxyXG5mdW5jdGlvbiBnZXRDdXJyZW50VGVuYW5jeU5hbWUoYXBwQmFzZVVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICBpZiAoYXBwQmFzZVVybC5jaGFyQXQoYXBwQmFzZVVybC5sZW5ndGggLSAxKSAhPT0gJy8nKSBhcHBCYXNlVXJsICs9ICcvJztcclxuXHJcbiAgY29uc3QgcGFyc2VUb2tlbnMgPSBjcmVhdGVUb2tlblBhcnNlcihhcHBCYXNlVXJsKTtcclxuICBjb25zdCB0b2tlbiA9IHRlbmFuY3lQbGFjZWhvbGRlci5yZXBsYWNlKC9bfXtdL2csICcnKTtcclxuICByZXR1cm4gcGFyc2VUb2tlbnMod2luZG93LmxvY2F0aW9uLmhyZWYpW3Rva2VuXT8uWzBdO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDdXJyZW50VGVuYW5jeU5hbWVGcm9tVXJsKHRlbmFudEtleTogc3RyaW5nKSB7XHJcbiAgY29uc3QgdXJsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcclxuICByZXR1cm4gdXJsUGFyYW1zLmdldCh0ZW5hbnRLZXkpO1xyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VUZW5hbnRGcm9tVXJsKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gIGNvbnN0IGVudmlyb25tZW50U2VydmljZSA9IGluamVjdG9yLmdldChFbnZpcm9ubWVudFNlcnZpY2UpO1xyXG4gIGNvbnN0IG11bHRpVGVuYW5jeVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoTXVsdGlUZW5hbmN5U2VydmljZSk7XHJcblxyXG4gIGNvbnN0IGJhc2VVcmwgPSBlbnZpcm9ubWVudFNlcnZpY2UuZ2V0RW52aXJvbm1lbnQoKT8uYXBwbGljYXRpb24/LmJhc2VVcmwgfHwgJyc7XHJcbiAgY29uc3QgdGVuYW5jeU5hbWUgPSBnZXRDdXJyZW50VGVuYW5jeU5hbWUoYmFzZVVybCk7XHJcblxyXG4gIGNvbnN0IGhpZGVUZW5hbnRCb3ggPSAoKSA9PiB7XHJcbiAgICBtdWx0aVRlbmFuY3lTZXJ2aWNlLmlzVGVuYW50Qm94VmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IHNldERvbWFpblRlbmFudCA9ICh0ZW5hbnQ6IEZpbmRUZW5hbnRSZXN1bHREdG8pID0+IHtcclxuICAgIG11bHRpVGVuYW5jeVNlcnZpY2UuZG9tYWluVGVuYW50ID0ge1xyXG4gICAgICBpZDogdGVuYW50LnRlbmFudElkLFxyXG4gICAgICBuYW1lOiB0ZW5hbnQubmFtZSxcclxuICAgICAgaXNBdmFpbGFibGU6IHRydWUsXHJcbiAgICB9O1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IHNldEVudmlyb25tZW50V2l0aERvbWFpblRlbmFudCA9ICh0ZW5hbnQ6IEZpbmRUZW5hbnRSZXN1bHREdG8pID0+IHtcclxuICAgIGhpZGVUZW5hbnRCb3goKTtcclxuICAgIHNldERvbWFpblRlbmFudCh0ZW5hbnQpO1xyXG4gIH07XHJcblxyXG4gIGlmICh0ZW5hbmN5TmFtZSkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBXZSBoYXZlIHRvIHJlcGxhY2UgdGVuYW50IG5hbWUgd2l0aGluIHRoZSB1cmxzIGZyb20gZW52aXJvbm1lbnQsXHJcbiAgICAgKiBiZWNhdXNlIHRoZSBjb2RlIGJlbG93IHdpbGwgbWFrZSBhIGh0dHAgcmVxdWVzdCB0byBmaW5kIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkb21haW4gdGVuYW50LlxyXG4gICAgICogQmVmb3JlIHRoaXMgcmVxdWVzdCB0YWtlcyBwbGFjZSwgd2UgbmVlZCB0byByZXBsYWNlIHBsYWNlaG9sZGVycyBha2EgXCJ7MH1cIi5cclxuICAgICAqL1xyXG4gICAgcmVwbGFjZVRlbmFudE5hbWVXaXRoaW5FbnZpcm9ubWVudChpbmplY3RvciwgdGVuYW5jeU5hbWUpO1xyXG4gICAgcmV0dXJuIG11bHRpVGVuYW5jeVNlcnZpY2VcclxuICAgICAgLnNldFRlbmFudEJ5TmFtZSh0ZW5hbmN5TmFtZSlcclxuICAgICAgLnBpcGUodGFwKHNldEVudmlyb25tZW50V2l0aERvbWFpblRlbmFudCkpXHJcbiAgICAgIC50b1Byb21pc2UoKTtcclxuICB9IGVsc2Uge1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB0aGVyZSBpcyBubyB0ZW5hbnQsIHdlIHN0aWxsIGhhdmUgdG8gY2xlYW4gdXAgezB9LiBmcm9tIGJhc2VVcmwgdG8gYXZvaWQgaW5jb3JyZWN0IGh0dHAgcmVxdWVzdHMuXHJcbiAgICAgKi9cclxuICAgIHJlcGxhY2VUZW5hbnROYW1lV2l0aGluRW52aXJvbm1lbnQoaW5qZWN0b3IsICcnLCB0ZW5hbmN5UGxhY2Vob2xkZXIgKyAnLicpO1xyXG5cclxuICAgIGNvbnN0IHRlbmFudElkRnJvbVF1ZXJ5UGFyYW1zID0gZ2V0Q3VycmVudFRlbmFuY3lOYW1lRnJvbVVybChtdWx0aVRlbmFuY3lTZXJ2aWNlLnRlbmFudEtleSk7XHJcbiAgICBpZiAodGVuYW50SWRGcm9tUXVlcnlQYXJhbXMpIHtcclxuICAgICAgcmV0dXJuIG11bHRpVGVuYW5jeVNlcnZpY2Uuc2V0VGVuYW50QnlJZCh0ZW5hbnRJZEZyb21RdWVyeVBhcmFtcykudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJlcGxhY2VUZW5hbnROYW1lV2l0aGluRW52aXJvbm1lbnQoXHJcbiAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gIHRlbmFuY3lOYW1lOiBzdHJpbmcsXHJcbiAgcGxhY2Vob2xkZXIgPSB0ZW5hbmN5UGxhY2Vob2xkZXIsXHJcbikge1xyXG4gIGNvbnN0IGVudmlyb25tZW50U2VydmljZSA9IGluamVjdG9yLmdldChFbnZpcm9ubWVudFNlcnZpY2UpO1xyXG5cclxuICBjb25zdCBlbnZpcm9ubWVudCA9IGNsb25lKGVudmlyb25tZW50U2VydmljZS5nZXRFbnZpcm9ubWVudCgpKSBhcyBFbnZpcm9ubWVudDtcclxuXHJcbiAgaWYgKGVudmlyb25tZW50LmFwcGxpY2F0aW9uLmJhc2VVcmwpIHtcclxuICAgIGVudmlyb25tZW50LmFwcGxpY2F0aW9uLmJhc2VVcmwgPSBlbnZpcm9ubWVudC5hcHBsaWNhdGlvbi5iYXNlVXJsLnJlcGxhY2UoXHJcbiAgICAgIHBsYWNlaG9sZGVyLFxyXG4gICAgICB0ZW5hbmN5TmFtZSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpZiAoZW52aXJvbm1lbnQub0F1dGhDb25maWc/LnJlZGlyZWN0VXJpKSB7XHJcbiAgICBlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5yZWRpcmVjdFVyaSA9IGVudmlyb25tZW50Lm9BdXRoQ29uZmlnLnJlZGlyZWN0VXJpLnJlcGxhY2UoXHJcbiAgICAgIHBsYWNlaG9sZGVyLFxyXG4gICAgICB0ZW5hbmN5TmFtZSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpZighZW52aXJvbm1lbnQub0F1dGhDb25maWcpIHtcclxuICAgIGVudmlyb25tZW50Lm9BdXRoQ29uZmlnID0ge307XHJcbiAgfVxyXG4gIGVudmlyb25tZW50Lm9BdXRoQ29uZmlnLmlzc3VlciA9IChlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5pc3N1ZXIgfHwgJycpLnJlcGxhY2UocGxhY2Vob2xkZXIsIHRlbmFuY3lOYW1lKTtcclxuXHJcbiAgT2JqZWN0LmtleXMoZW52aXJvbm1lbnQuYXBpcykuZm9yRWFjaChhcGkgPT4ge1xyXG4gICAgT2JqZWN0LmtleXMoZW52aXJvbm1lbnQuYXBpc1thcGldKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIGVudmlyb25tZW50LmFwaXNbYXBpXVtrZXldID0gKGVudmlyb25tZW50LmFwaXNbYXBpXVtrZXldIHx8ICcnKS5yZXBsYWNlKHBsYWNlaG9sZGVyLCB0ZW5hbmN5TmFtZSk7XHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGVudmlyb25tZW50U2VydmljZS5zZXRTdGF0ZShlbnZpcm9ubWVudCk7XHJcbn1cclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function isNumber(value) {
|
|
2
|
-
return value == Number(value);
|
|
3
|
-
}
|
|
1
|
+
export function isNumber(value) {
|
|
2
|
+
return value == Number(value);
|
|
3
|
+
}
|
|
4
4
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL251bWJlci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQXNCO0lBQzdDLE9BQU8sS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcclxuICByZXR1cm4gdmFsdWUgPT0gTnVtYmVyKHZhbHVlKTtcclxufVxyXG4iXX0=
|
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import { exists, isArray, isNode, isNullOrUndefined, isObject, isObjectAndNotArrayNotNode, } from './common-utils';
|
|
2
|
-
export function deepMerge(target, source) {
|
|
3
|
-
if (isObjectAndNotArrayNotNode(target) && isObjectAndNotArrayNotNode(source)) {
|
|
4
|
-
return deepMergeRecursively(target, source);
|
|
5
|
-
}
|
|
6
|
-
else if (isNullOrUndefined(target) && isNullOrUndefined(source)) {
|
|
7
|
-
return {};
|
|
8
|
-
}
|
|
9
|
-
else {
|
|
10
|
-
return exists(source) ? source : target;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
function deepMergeRecursively(target, source) {
|
|
14
|
-
const shouldNotRecurse = isNullOrUndefined(target) ||
|
|
15
|
-
isNullOrUndefined(source) || // at least one not defined
|
|
16
|
-
isArray(target) ||
|
|
17
|
-
isArray(source) || // at least one array
|
|
18
|
-
!isObject(target) ||
|
|
19
|
-
!isObject(source) || // at least one not an object
|
|
20
|
-
isNode(target) ||
|
|
21
|
-
isNode(source); // at least one node
|
|
22
|
-
/**
|
|
23
|
-
* if we will not recurse any further,
|
|
24
|
-
* we will prioritize source if it is a defined value.
|
|
25
|
-
*/
|
|
26
|
-
if (shouldNotRecurse) {
|
|
27
|
-
return exists(source) ? source : target;
|
|
28
|
-
}
|
|
29
|
-
const keysOfTarget = Object.keys(target);
|
|
30
|
-
const keysOfSource = Object.keys(source);
|
|
31
|
-
const uniqueKeys = new Set(keysOfTarget.concat(keysOfSource));
|
|
32
|
-
return [...uniqueKeys].reduce((retVal, key) => {
|
|
33
|
-
retVal[key] = deepMergeRecursively(target[key], source[key]);
|
|
34
|
-
return retVal;
|
|
35
|
-
}, {});
|
|
36
|
-
}
|
|
1
|
+
import { exists, isArray, isNode, isNullOrUndefined, isObject, isObjectAndNotArrayNotNode, } from './common-utils';
|
|
2
|
+
export function deepMerge(target, source) {
|
|
3
|
+
if (isObjectAndNotArrayNotNode(target) && isObjectAndNotArrayNotNode(source)) {
|
|
4
|
+
return deepMergeRecursively(target, source);
|
|
5
|
+
}
|
|
6
|
+
else if (isNullOrUndefined(target) && isNullOrUndefined(source)) {
|
|
7
|
+
return {};
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
return exists(source) ? source : target;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function deepMergeRecursively(target, source) {
|
|
14
|
+
const shouldNotRecurse = isNullOrUndefined(target) ||
|
|
15
|
+
isNullOrUndefined(source) || // at least one not defined
|
|
16
|
+
isArray(target) ||
|
|
17
|
+
isArray(source) || // at least one array
|
|
18
|
+
!isObject(target) ||
|
|
19
|
+
!isObject(source) || // at least one not an object
|
|
20
|
+
isNode(target) ||
|
|
21
|
+
isNode(source); // at least one node
|
|
22
|
+
/**
|
|
23
|
+
* if we will not recurse any further,
|
|
24
|
+
* we will prioritize source if it is a defined value.
|
|
25
|
+
*/
|
|
26
|
+
if (shouldNotRecurse) {
|
|
27
|
+
return exists(source) ? source : target;
|
|
28
|
+
}
|
|
29
|
+
const keysOfTarget = Object.keys(target);
|
|
30
|
+
const keysOfSource = Object.keys(source);
|
|
31
|
+
const uniqueKeys = new Set(keysOfTarget.concat(keysOfSource));
|
|
32
|
+
return [...uniqueKeys].reduce((retVal, key) => {
|
|
33
|
+
retVal[key] = deepMergeRecursively(target[key], source[key]);
|
|
34
|
+
return retVal;
|
|
35
|
+
}, {});
|
|
36
|
+
}
|
|
37
37
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL29iamVjdC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLE9BQU8sRUFDUCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFFBQVEsRUFDUiwwQkFBMEIsR0FDM0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixNQUFNLFVBQVUsU0FBUyxDQUN2QixNQUEwQixFQUMxQixNQUEwQjtJQUUxQixJQUFJLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxJQUFJLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQzVFLE9BQU8sb0JBQW9CLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0tBQzdDO1NBQU0sSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNqRSxPQUFPLEVBQU8sQ0FBQztLQUNoQjtTQUFNO1FBQ0wsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFFLE1BQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0tBQ2hEO0FBQ0gsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQzNCLE1BQTBCLEVBQzFCLE1BQTBCO0lBRTFCLE1BQU0sZ0JBQWdCLEdBQ3BCLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUN6QixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSwyQkFBMkI7UUFDeEQsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNmLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxxQkFBcUI7UUFDeEMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ2pCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLDZCQUE2QjtRQUNsRCxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ2QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsb0JBQW9CO0lBRXRDOzs7T0FHRztJQUNILElBQUksZ0JBQWdCLEVBQUU7UUFDcEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFFLE1BQVksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0tBQ2hEO0lBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFnQyxDQUFDLENBQUM7SUFDbkUsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFnQyxDQUFDLENBQUM7SUFDbkUsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQzlELE9BQU8sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUMzQyxNQUFjLENBQUMsR0FBRyxDQUFDLEdBQUcsb0JBQW9CLENBQ3hDLE1BQWlDLENBQUMsR0FBRyxDQUFDLEVBQ3RDLE1BQWlDLENBQUMsR0FBRyxDQUFDLENBQ3hDLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLEVBQUUsRUFBTyxDQUFDLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBleGlzdHMsXHJcbiAgaXNBcnJheSxcclxuICBpc05vZGUsXHJcbiAgaXNOdWxsT3JVbmRlZmluZWQsXHJcbiAgaXNPYmplY3QsXHJcbiAgaXNPYmplY3RBbmROb3RBcnJheU5vdE5vZGUsXHJcbn0gZnJvbSAnLi9jb21tb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBEZWVwUGFydGlhbCB9IGZyb20gJy4uL21vZGVscyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZGVlcE1lcmdlPFQ+KFxyXG4gIHRhcmdldDogRGVlcFBhcnRpYWw8VD4gfCBULFxyXG4gIHNvdXJjZTogRGVlcFBhcnRpYWw8VD4gfCBULFxyXG4pOiBEZWVwUGFydGlhbDxUPiB8IFQge1xyXG4gIGlmIChpc09iamVjdEFuZE5vdEFycmF5Tm90Tm9kZSh0YXJnZXQpICYmIGlzT2JqZWN0QW5kTm90QXJyYXlOb3ROb2RlKHNvdXJjZSkpIHtcclxuICAgIHJldHVybiBkZWVwTWVyZ2VSZWN1cnNpdmVseSh0YXJnZXQsIHNvdXJjZSk7XHJcbiAgfSBlbHNlIGlmIChpc051bGxPclVuZGVmaW5lZCh0YXJnZXQpICYmIGlzTnVsbE9yVW5kZWZpbmVkKHNvdXJjZSkpIHtcclxuICAgIHJldHVybiB7fSBhcyBUO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZXhpc3RzKHNvdXJjZSkgPyAoc291cmNlIGFzIFQpIDogdGFyZ2V0O1xyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gZGVlcE1lcmdlUmVjdXJzaXZlbHk8VD4oXHJcbiAgdGFyZ2V0OiBEZWVwUGFydGlhbDxUPiB8IFQsXHJcbiAgc291cmNlOiBEZWVwUGFydGlhbDxUPiB8IFQsXHJcbik6IERlZXBQYXJ0aWFsPFQ+IHwgVCB7XHJcbiAgY29uc3Qgc2hvdWxkTm90UmVjdXJzZSA9XHJcbiAgICBpc051bGxPclVuZGVmaW5lZCh0YXJnZXQpIHx8XHJcbiAgICBpc051bGxPclVuZGVmaW5lZChzb3VyY2UpIHx8IC8vIGF0IGxlYXN0IG9uZSBub3QgZGVmaW5lZFxyXG4gICAgaXNBcnJheSh0YXJnZXQpIHx8XHJcbiAgICBpc0FycmF5KHNvdXJjZSkgfHwgLy8gYXQgbGVhc3Qgb25lIGFycmF5XHJcbiAgICAhaXNPYmplY3QodGFyZ2V0KSB8fFxyXG4gICAgIWlzT2JqZWN0KHNvdXJjZSkgfHwgLy8gYXQgbGVhc3Qgb25lIG5vdCBhbiBvYmplY3RcclxuICAgIGlzTm9kZSh0YXJnZXQpIHx8XHJcbiAgICBpc05vZGUoc291cmNlKTsgLy8gYXQgbGVhc3Qgb25lIG5vZGVcclxuXHJcbiAgLyoqXHJcbiAgICogaWYgd2Ugd2lsbCBub3QgcmVjdXJzZSBhbnkgZnVydGhlcixcclxuICAgKiB3ZSB3aWxsIHByaW9yaXRpemUgc291cmNlIGlmIGl0IGlzIGEgZGVmaW5lZCB2YWx1ZS5cclxuICAgKi9cclxuICBpZiAoc2hvdWxkTm90UmVjdXJzZSkge1xyXG4gICAgcmV0dXJuIGV4aXN0cyhzb3VyY2UpID8gKHNvdXJjZSBhcyBUKSA6IHRhcmdldDtcclxuICB9XHJcblxyXG4gIGNvbnN0IGtleXNPZlRhcmdldCA9IE9iamVjdC5rZXlzKHRhcmdldCBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9KTtcclxuICBjb25zdCBrZXlzT2ZTb3VyY2UgPSBPYmplY3Qua2V5cyhzb3VyY2UgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSk7XHJcbiAgY29uc3QgdW5pcXVlS2V5cyA9IG5ldyBTZXQoa2V5c09mVGFyZ2V0LmNvbmNhdChrZXlzT2ZTb3VyY2UpKTtcclxuICByZXR1cm4gWy4uLnVuaXF1ZUtleXNdLnJlZHVjZSgocmV0VmFsLCBrZXkpID0+IHtcclxuICAgIChyZXRWYWwgYXMgYW55KVtrZXldID0gZGVlcE1lcmdlUmVjdXJzaXZlbHkoXHJcbiAgICAgICh0YXJnZXQgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSlba2V5XSxcclxuICAgICAgKHNvdXJjZSBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9KVtrZXldLFxyXG4gICAgKTtcclxuICAgIHJldHVybiByZXRWYWw7XHJcbiAgfSwge30gYXMgVCk7XHJcbn1cclxuIl19
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
export class DefaultQueueManager {
|
|
2
|
-
constructor() {
|
|
3
|
-
this.queue = [];
|
|
4
|
-
this.isRunning = false;
|
|
5
|
-
this.stack = 0;
|
|
6
|
-
this.interval = 0;
|
|
7
|
-
this.stackSize = 100;
|
|
8
|
-
}
|
|
9
|
-
init(interval, stackSize) {
|
|
10
|
-
this.interval = interval;
|
|
11
|
-
this.stackSize = stackSize;
|
|
12
|
-
}
|
|
13
|
-
add(fn) {
|
|
14
|
-
this.queue.push(fn);
|
|
15
|
-
this.run();
|
|
16
|
-
}
|
|
17
|
-
run() {
|
|
18
|
-
if (this.isRunning)
|
|
19
|
-
return;
|
|
20
|
-
this.stack++;
|
|
21
|
-
this.isRunning = true;
|
|
22
|
-
const fn = this.queue.shift();
|
|
23
|
-
if (!fn) {
|
|
24
|
-
this.isRunning = false;
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
fn();
|
|
28
|
-
if (this.stack > this.stackSize) {
|
|
29
|
-
setTimeout(() => {
|
|
30
|
-
this.isRunning = false;
|
|
31
|
-
this.run();
|
|
32
|
-
this.stack = 0;
|
|
33
|
-
}, this.interval);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
this.isRunning = false;
|
|
37
|
-
this.run();
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
1
|
+
export class DefaultQueueManager {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.queue = [];
|
|
4
|
+
this.isRunning = false;
|
|
5
|
+
this.stack = 0;
|
|
6
|
+
this.interval = 0;
|
|
7
|
+
this.stackSize = 100;
|
|
8
|
+
}
|
|
9
|
+
init(interval, stackSize) {
|
|
10
|
+
this.interval = interval;
|
|
11
|
+
this.stackSize = stackSize;
|
|
12
|
+
}
|
|
13
|
+
add(fn) {
|
|
14
|
+
this.queue.push(fn);
|
|
15
|
+
this.run();
|
|
16
|
+
}
|
|
17
|
+
run() {
|
|
18
|
+
if (this.isRunning)
|
|
19
|
+
return;
|
|
20
|
+
this.stack++;
|
|
21
|
+
this.isRunning = true;
|
|
22
|
+
const fn = this.queue.shift();
|
|
23
|
+
if (!fn) {
|
|
24
|
+
this.isRunning = false;
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
fn();
|
|
28
|
+
if (this.stack > this.stackSize) {
|
|
29
|
+
setTimeout(() => {
|
|
30
|
+
this.isRunning = false;
|
|
31
|
+
this.run();
|
|
32
|
+
this.stack = 0;
|
|
33
|
+
}, this.interval);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this.isRunning = false;
|
|
37
|
+
this.run();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
41
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdXRpbHMvcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLG1CQUFtQjtJQUFoQztRQUNVLFVBQUssR0FBc0IsRUFBRSxDQUFDO1FBQzlCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixjQUFTLEdBQUcsR0FBRyxDQUFDO0lBcUMxQixDQUFDO0lBbkNRLElBQUksQ0FBQyxRQUFnQixFQUFFLFNBQWlCO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFTSxHQUFHLENBQUMsRUFBYztRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDYixDQUFDO0lBRU8sR0FBRztRQUNULElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQzNCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUViLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNQLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLE9BQU87U0FDUjtRQUVELEVBQUUsRUFBRSxDQUFDO1FBQ0wsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDL0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbkI7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUNaO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBRdWV1ZU1hbmFnZXIge1xyXG4gIGFkZChmbjogKCkgPT4gdm9pZCk6IHZvaWQ7XHJcbiAgaW5pdChpbnRlcnZhbDogbnVtYmVyLCBzdGFja1NpemU6IG51bWJlcik6IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0UXVldWVNYW5hZ2VyIGltcGxlbWVudHMgUXVldWVNYW5hZ2VyIHtcclxuICBwcml2YXRlIHF1ZXVlOiBBcnJheTwoKSA9PiB2b2lkPiA9IFtdO1xyXG4gIHByaXZhdGUgaXNSdW5uaW5nID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBzdGFjayA9IDA7XHJcbiAgcHJpdmF0ZSBpbnRlcnZhbCA9IDA7XHJcbiAgcHJpdmF0ZSBzdGFja1NpemUgPSAxMDA7XHJcblxyXG4gIHB1YmxpYyBpbml0KGludGVydmFsOiBudW1iZXIsIHN0YWNrU2l6ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmludGVydmFsID0gaW50ZXJ2YWw7XHJcbiAgICB0aGlzLnN0YWNrU2l6ZSA9IHN0YWNrU2l6ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGQoZm46ICgpID0+IHZvaWQpIHtcclxuICAgIHRoaXMucXVldWUucHVzaChmbik7XHJcbiAgICB0aGlzLnJ1bigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBydW4oKSB7XHJcbiAgICBpZiAodGhpcy5pc1J1bm5pbmcpIHJldHVybjtcclxuICAgIHRoaXMuc3RhY2srKztcclxuXHJcbiAgICB0aGlzLmlzUnVubmluZyA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgZm4gPSB0aGlzLnF1ZXVlLnNoaWZ0KCk7XHJcblxyXG4gICAgaWYgKCFmbikge1xyXG4gICAgICB0aGlzLmlzUnVubmluZyA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm4oKTtcclxuICAgIGlmICh0aGlzLnN0YWNrID4gdGhpcy5zdGFja1NpemUpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnJ1bigpO1xyXG4gICAgICAgIHRoaXMuc3RhY2sgPSAwO1xyXG4gICAgICB9LCB0aGlzLmludGVydmFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNSdW5uaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMucnVuKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { PRIMARY_OUTLET } from "@angular/router";
|
|
2
|
-
import { noop } from './common-utils';
|
|
3
|
-
export function findRoute(routesService, path) {
|
|
4
|
-
const node = routesService.find(route => route.path === path);
|
|
5
|
-
return node || path === '/'
|
|
6
|
-
? node
|
|
7
|
-
: findRoute(routesService, path.split('/').slice(0, -1).join('/') || '/');
|
|
8
|
-
}
|
|
9
|
-
export function getRoutePath(router, url = router.url) {
|
|
10
|
-
const emptyGroup = { segments: [] };
|
|
11
|
-
const primaryGroup = router.parseUrl(url).root.children[PRIMARY_OUTLET];
|
|
12
|
-
return '/' + (primaryGroup || emptyGroup).segments.map(({ path }) => path).join('/');
|
|
13
|
-
}
|
|
14
|
-
export function reloadRoute(router, ngZone) {
|
|
15
|
-
const { shouldReuseRoute } = router.routeReuseStrategy;
|
|
16
|
-
const setRouteReuse = (reuse) => {
|
|
17
|
-
router.routeReuseStrategy.shouldReuseRoute = reuse;
|
|
18
|
-
};
|
|
19
|
-
setRouteReuse(() => false);
|
|
20
|
-
router.navigated = false;
|
|
21
|
-
ngZone.run(async () => {
|
|
22
|
-
await router.navigateByUrl(router.url).catch(noop);
|
|
23
|
-
setRouteReuse(shouldReuseRoute);
|
|
24
|
-
});
|
|
25
|
-
}
|
|
1
|
+
import { PRIMARY_OUTLET } from "@angular/router";
|
|
2
|
+
import { noop } from './common-utils';
|
|
3
|
+
export function findRoute(routesService, path) {
|
|
4
|
+
const node = routesService.find(route => route.path === path);
|
|
5
|
+
return node || path === '/'
|
|
6
|
+
? node
|
|
7
|
+
: findRoute(routesService, path.split('/').slice(0, -1).join('/') || '/');
|
|
8
|
+
}
|
|
9
|
+
export function getRoutePath(router, url = router.url) {
|
|
10
|
+
const emptyGroup = { segments: [] };
|
|
11
|
+
const primaryGroup = router.parseUrl(url).root.children[PRIMARY_OUTLET];
|
|
12
|
+
return '/' + (primaryGroup || emptyGroup).segments.map(({ path }) => path).join('/');
|
|
13
|
+
}
|
|
14
|
+
export function reloadRoute(router, ngZone) {
|
|
15
|
+
const { shouldReuseRoute } = router.routeReuseStrategy;
|
|
16
|
+
const setRouteReuse = (reuse) => {
|
|
17
|
+
router.routeReuseStrategy.shouldReuseRoute = reuse;
|
|
18
|
+
};
|
|
19
|
+
setRouteReuse(() => false);
|
|
20
|
+
router.navigated = false;
|
|
21
|
+
ngZone.run(async () => {
|
|
22
|
+
await router.navigateByUrl(router.url).catch(noop);
|
|
23
|
+
setRouteReuse(shouldReuseRoute);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
26
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdXRpbHMvcm91dGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBdUMsTUFBTSxpQkFBaUIsQ0FBQztBQUd0RixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEMsTUFBTSxVQUFVLFNBQVMsQ0FBQyxhQUE0QixFQUFFLElBQVk7SUFDbEUsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7SUFFOUQsT0FBTyxJQUFJLElBQUksSUFBSSxLQUFLLEdBQUc7UUFDekIsQ0FBQyxDQUFDLElBQUk7UUFDTixDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBYyxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRztJQUMzRCxNQUFNLFVBQVUsR0FBRyxFQUFFLFFBQVEsRUFBRSxFQUFrQixFQUFxQixDQUFDO0lBQ3ZFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV4RSxPQUFPLEdBQUcsR0FBRyxDQUFDLFlBQVksSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZGLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQ3hELE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztJQUN2RCxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQThCLEVBQUUsRUFBRTtRQUN2RCxNQUFNLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ3JELENBQUMsQ0FBQztJQUVGLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixNQUFNLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUV6QixNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ3BCLE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQUklNQVJZX09VVExFVCwgUm91dGVyLCBVcmxTZWdtZW50LCBVcmxTZWdtZW50R3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscy9jb21tb24nO1xyXG5pbXBvcnQgeyBSb3V0ZXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcm91dGVzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi9jb21tb24tdXRpbHMnO1xyXG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJy4vdHJlZS11dGlscyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZmluZFJvdXRlKHJvdXRlc1NlcnZpY2U6IFJvdXRlc1NlcnZpY2UsIHBhdGg6IHN0cmluZyk6IFRyZWVOb2RlPEFCUC5Sb3V0ZT4gfCBudWxsIHtcclxuICBjb25zdCBub2RlID0gcm91dGVzU2VydmljZS5maW5kKHJvdXRlID0+IHJvdXRlLnBhdGggPT09IHBhdGgpO1xyXG5cclxuICByZXR1cm4gbm9kZSB8fCBwYXRoID09PSAnLydcclxuICAgID8gbm9kZVxyXG4gICAgOiBmaW5kUm91dGUocm91dGVzU2VydmljZSwgcGF0aC5zcGxpdCgnLycpLnNsaWNlKDAsIC0xKS5qb2luKCcvJykgfHwgJy8nKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlUGF0aChyb3V0ZXI6IFJvdXRlciwgdXJsID0gcm91dGVyLnVybCkge1xyXG4gIGNvbnN0IGVtcHR5R3JvdXAgPSB7IHNlZ21lbnRzOiBbXSBhcyBVcmxTZWdtZW50W10gfSBhcyBVcmxTZWdtZW50R3JvdXA7XHJcbiAgY29uc3QgcHJpbWFyeUdyb3VwID0gcm91dGVyLnBhcnNlVXJsKHVybCkucm9vdC5jaGlsZHJlbltQUklNQVJZX09VVExFVF07XHJcblxyXG4gIHJldHVybiAnLycgKyAocHJpbWFyeUdyb3VwIHx8IGVtcHR5R3JvdXApLnNlZ21lbnRzLm1hcCgoeyBwYXRoIH0pID0+IHBhdGgpLmpvaW4oJy8nKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbG9hZFJvdXRlKHJvdXRlcjogUm91dGVyLCBuZ1pvbmU6IE5nWm9uZSkge1xyXG4gIGNvbnN0IHsgc2hvdWxkUmV1c2VSb3V0ZSB9ID0gcm91dGVyLnJvdXRlUmV1c2VTdHJhdGVneTtcclxuICBjb25zdCBzZXRSb3V0ZVJldXNlID0gKHJldXNlOiB0eXBlb2Ygc2hvdWxkUmV1c2VSb3V0ZSkgPT4ge1xyXG4gICAgcm91dGVyLnJvdXRlUmV1c2VTdHJhdGVneS5zaG91bGRSZXVzZVJvdXRlID0gcmV1c2U7XHJcbiAgfTtcclxuXHJcbiAgc2V0Um91dGVSZXVzZSgoKSA9PiBmYWxzZSk7XHJcbiAgcm91dGVyLm5hdmlnYXRlZCA9IGZhbHNlO1xyXG5cclxuICBuZ1pvbmUucnVuKGFzeW5jICgpID0+IHtcclxuICAgIGF3YWl0IHJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHJvdXRlci51cmwpLmNhdGNoKG5vb3ApO1xyXG4gICAgc2V0Um91dGVSZXVzZShzaG91bGRSZXVzZVJvdXRlKTtcclxuICB9KTtcclxufVxyXG4iXX0=
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
export function createTokenParser(format) {
|
|
2
|
-
return (str) => {
|
|
3
|
-
const tokens = [];
|
|
4
|
-
const regex = format.replace(/\./g, '\\.').replace(/\{\s?([0-9a-zA-Z]+)\s?\}/g, (_, token) => {
|
|
5
|
-
tokens.push(token);
|
|
6
|
-
return '(.+)';
|
|
7
|
-
});
|
|
8
|
-
const matches = (str.match(regex) || []).slice(1);
|
|
9
|
-
return matches.reduce((acc, v, i) => {
|
|
10
|
-
const key = tokens[i];
|
|
11
|
-
acc[key] = [...(acc[key] || []), v].filter(Boolean);
|
|
12
|
-
return acc;
|
|
13
|
-
}, {});
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
export function interpolate(text, params) {
|
|
17
|
-
return text
|
|
18
|
-
.replace(/(['"]?\{\s*(\d+)\s*\}['"]?)/g, (_, match, digit) => params[digit] ?? match)
|
|
19
|
-
.replace(/\s+/g, ' ');
|
|
20
|
-
}
|
|
21
|
-
export function escapeHtmlChars(value) {
|
|
22
|
-
return value && typeof value === 'string'
|
|
23
|
-
? value
|
|
24
|
-
.replace(/&/g, '&')
|
|
25
|
-
.replace(/</g, '<')
|
|
26
|
-
.replace(/>/g, '>')
|
|
27
|
-
.replace(/"/g, '"')
|
|
28
|
-
: value;
|
|
29
|
-
}
|
|
1
|
+
export function createTokenParser(format) {
|
|
2
|
+
return (str) => {
|
|
3
|
+
const tokens = [];
|
|
4
|
+
const regex = format.replace(/\./g, '\\.').replace(/\{\s?([0-9a-zA-Z]+)\s?\}/g, (_, token) => {
|
|
5
|
+
tokens.push(token);
|
|
6
|
+
return '(.+)';
|
|
7
|
+
});
|
|
8
|
+
const matches = (str.match(regex) || []).slice(1);
|
|
9
|
+
return matches.reduce((acc, v, i) => {
|
|
10
|
+
const key = tokens[i];
|
|
11
|
+
acc[key] = [...(acc[key] || []), v].filter(Boolean);
|
|
12
|
+
return acc;
|
|
13
|
+
}, {});
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function interpolate(text, params) {
|
|
17
|
+
return text
|
|
18
|
+
.replace(/(['"]?\{\s*(\d+)\s*\}['"]?)/g, (_, match, digit) => params[digit] ?? match)
|
|
19
|
+
.replace(/\s+/g, ' ');
|
|
20
|
+
}
|
|
21
|
+
export function escapeHtmlChars(value) {
|
|
22
|
+
return value && typeof value === 'string'
|
|
23
|
+
? value
|
|
24
|
+
.replace(/&/g, '&')
|
|
25
|
+
.replace(/</g, '<')
|
|
26
|
+
.replace(/>/g, '>')
|
|
27
|
+
.replace(/"/g, '"')
|
|
28
|
+
: value;
|
|
29
|
+
}
|
|
30
30
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL3N0cmluZy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBYztJQUM5QyxPQUFPLENBQUMsR0FBVyxFQUFFLEVBQUU7UUFDckIsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMzRixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUE4QixDQUFDLENBQUM7SUFDckMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWSxFQUFFLE1BQWdCO0lBQ3hELE9BQU8sSUFBSTtTQUNSLE9BQU8sQ0FBQyw4QkFBOEIsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDO1NBQ3BGLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBVTtJQUN4QyxPQUFPLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQ3ZDLENBQUMsQ0FBQyxLQUFLO2FBQ0YsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7YUFDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7YUFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7YUFDckIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7UUFDNUIsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY3JlYXRlVG9rZW5QYXJzZXIoZm9ybWF0OiBzdHJpbmcpIHtcclxuICByZXR1cm4gKHN0cjogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCB0b2tlbnM6IHN0cmluZ1tdID0gW107XHJcbiAgICBjb25zdCByZWdleCA9IGZvcm1hdC5yZXBsYWNlKC9cXC4vZywgJ1xcXFwuJykucmVwbGFjZSgvXFx7XFxzPyhbMC05YS16QS1aXSspXFxzP1xcfS9nLCAoXywgdG9rZW4pID0+IHtcclxuICAgICAgdG9rZW5zLnB1c2godG9rZW4pO1xyXG4gICAgICByZXR1cm4gJyguKyknO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgbWF0Y2hlcyA9IChzdHIubWF0Y2gocmVnZXgpIHx8IFtdKS5zbGljZSgxKTtcclxuXHJcbiAgICByZXR1cm4gbWF0Y2hlcy5yZWR1Y2UoKGFjYywgdiwgaSkgPT4ge1xyXG4gICAgICBjb25zdCBrZXkgPSB0b2tlbnNbaV07XHJcbiAgICAgIGFjY1trZXldID0gWy4uLihhY2Nba2V5XSB8fCBbXSksIHZdLmZpbHRlcihCb29sZWFuKTtcclxuICAgICAgcmV0dXJuIGFjYztcclxuICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPik7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGludGVycG9sYXRlKHRleHQ6IHN0cmluZywgcGFyYW1zOiBzdHJpbmdbXSkge1xyXG4gIHJldHVybiB0ZXh0XHJcbiAgICAucmVwbGFjZSgvKFsnXCJdP1xce1xccyooXFxkKylcXHMqXFx9WydcIl0/KS9nLCAoXywgbWF0Y2gsIGRpZ2l0KSA9PiBwYXJhbXNbZGlnaXRdID8/IG1hdGNoKVxyXG4gICAgLnJlcGxhY2UoL1xccysvZywgJyAnKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZUh0bWxDaGFycyh2YWx1ZTogYW55KSB7XHJcbiAgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcclxuICAgID8gdmFsdWVcclxuICAgICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxyXG4gICAgICAgIC5yZXBsYWNlKC88L2csICcmbHQ7JylcclxuICAgICAgICAucmVwbGFjZSgvPi9nLCAnJmd0OycpXHJcbiAgICAgICAgLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKVxyXG4gICAgOiB2YWx1ZTtcclxufVxyXG4iXX0=
|