@abp/ng.core 7.2.2 → 7.3.0-rc.2
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/README.md +129 -2
- 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/caps-lock.directive.mjs +42 -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/esm2022/lib/directives/index.mjs +11 -0
- 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/show-password.directive.mjs +26 -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 +4262 -4188
- 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/caps-lock.directive.d.ts +10 -0
- 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 +10 -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/show-password.directive.d.ts +8 -0
- 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 +26 -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/index.mjs +0 -9
- 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,70 +1,70 @@
|
|
|
1
|
-
import { isArray } from './common-utils';
|
|
2
|
-
/* eslint-disable @typescript-eslint/ban-types */
|
|
3
|
-
export class BaseTreeNode {
|
|
4
|
-
constructor(props) {
|
|
5
|
-
this.children = [];
|
|
6
|
-
this.isLeaf = true;
|
|
7
|
-
Object.assign(this, props);
|
|
8
|
-
}
|
|
9
|
-
static create(props) {
|
|
10
|
-
return new BaseTreeNode(props);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
export function createTreeFromList(list, keySelector, parentKeySelector, valueMapper) {
|
|
14
|
-
const map = createMapFromList(list, keySelector, valueMapper);
|
|
15
|
-
const tree = [];
|
|
16
|
-
list.forEach(row => {
|
|
17
|
-
const id = keySelector(row);
|
|
18
|
-
const parentId = parentKeySelector(row);
|
|
19
|
-
const node = map.get(id);
|
|
20
|
-
if (!node)
|
|
21
|
-
return;
|
|
22
|
-
if (parentId) {
|
|
23
|
-
const parent = map.get(parentId);
|
|
24
|
-
if (!parent)
|
|
25
|
-
return;
|
|
26
|
-
parent.children.push(node);
|
|
27
|
-
parent.isLeaf = false;
|
|
28
|
-
node.parent = parent;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
tree.push(node);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
return tree;
|
|
35
|
-
}
|
|
36
|
-
export function createMapFromList(list, keySelector, valueMapper) {
|
|
37
|
-
const map = new Map();
|
|
38
|
-
list.forEach(row => map.set(keySelector(row), valueMapper(row)));
|
|
39
|
-
return map;
|
|
40
|
-
}
|
|
41
|
-
export function createTreeNodeFilterCreator(key, mapperFn) {
|
|
42
|
-
return (search) => {
|
|
43
|
-
const regex = new RegExp('.*' + search + '.*', 'i');
|
|
44
|
-
return function collectNodes(nodes, matches = []) {
|
|
45
|
-
for (const node of nodes) {
|
|
46
|
-
if (regex.test(mapperFn(node[key])))
|
|
47
|
-
matches.push(node);
|
|
48
|
-
if (node.children.length)
|
|
49
|
-
collectNodes(node.children, matches);
|
|
50
|
-
}
|
|
51
|
-
return matches;
|
|
52
|
-
};
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
export function createGroupMap(list, othersGroupKey) {
|
|
56
|
-
if (!isArray(list) || !list.some(node => Boolean(node.group)))
|
|
57
|
-
return undefined;
|
|
58
|
-
const mapGroup = new Map();
|
|
59
|
-
for (const node of list) {
|
|
60
|
-
const group = node?.group || othersGroupKey;
|
|
61
|
-
if (typeof group !== 'string') {
|
|
62
|
-
throw new Error(`Invalid group: ${group}`);
|
|
63
|
-
}
|
|
64
|
-
const items = mapGroup.get(group) || [];
|
|
65
|
-
items.push(node);
|
|
66
|
-
mapGroup.set(group, items);
|
|
67
|
-
}
|
|
68
|
-
return mapGroup;
|
|
69
|
-
}
|
|
1
|
+
import { isArray } from './common-utils';
|
|
2
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
3
|
+
export class BaseTreeNode {
|
|
4
|
+
constructor(props) {
|
|
5
|
+
this.children = [];
|
|
6
|
+
this.isLeaf = true;
|
|
7
|
+
Object.assign(this, props);
|
|
8
|
+
}
|
|
9
|
+
static create(props) {
|
|
10
|
+
return new BaseTreeNode(props);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export function createTreeFromList(list, keySelector, parentKeySelector, valueMapper) {
|
|
14
|
+
const map = createMapFromList(list, keySelector, valueMapper);
|
|
15
|
+
const tree = [];
|
|
16
|
+
list.forEach(row => {
|
|
17
|
+
const id = keySelector(row);
|
|
18
|
+
const parentId = parentKeySelector(row);
|
|
19
|
+
const node = map.get(id);
|
|
20
|
+
if (!node)
|
|
21
|
+
return;
|
|
22
|
+
if (parentId) {
|
|
23
|
+
const parent = map.get(parentId);
|
|
24
|
+
if (!parent)
|
|
25
|
+
return;
|
|
26
|
+
parent.children.push(node);
|
|
27
|
+
parent.isLeaf = false;
|
|
28
|
+
node.parent = parent;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
tree.push(node);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return tree;
|
|
35
|
+
}
|
|
36
|
+
export function createMapFromList(list, keySelector, valueMapper) {
|
|
37
|
+
const map = new Map();
|
|
38
|
+
list.forEach(row => map.set(keySelector(row), valueMapper(row)));
|
|
39
|
+
return map;
|
|
40
|
+
}
|
|
41
|
+
export function createTreeNodeFilterCreator(key, mapperFn) {
|
|
42
|
+
return (search) => {
|
|
43
|
+
const regex = new RegExp('.*' + search + '.*', 'i');
|
|
44
|
+
return function collectNodes(nodes, matches = []) {
|
|
45
|
+
for (const node of nodes) {
|
|
46
|
+
if (regex.test(mapperFn(node[key])))
|
|
47
|
+
matches.push(node);
|
|
48
|
+
if (node.children.length)
|
|
49
|
+
collectNodes(node.children, matches);
|
|
50
|
+
}
|
|
51
|
+
return matches;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export function createGroupMap(list, othersGroupKey) {
|
|
56
|
+
if (!isArray(list) || !list.some(node => Boolean(node.group)))
|
|
57
|
+
return undefined;
|
|
58
|
+
const mapGroup = new Map();
|
|
59
|
+
for (const node of list) {
|
|
60
|
+
const group = node?.group || othersGroupKey;
|
|
61
|
+
if (typeof group !== 'string') {
|
|
62
|
+
throw new Error(`Invalid group: ${group}`);
|
|
63
|
+
}
|
|
64
|
+
const items = mapGroup.get(group) || [];
|
|
65
|
+
items.push(node);
|
|
66
|
+
mapGroup.set(group, items);
|
|
67
|
+
}
|
|
68
|
+
return mapGroup;
|
|
69
|
+
}
|
|
70
70
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy90cmVlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxpREFBaUQ7QUFDakQsTUFBTSxPQUFPLFlBQVk7SUFLdkIsWUFBWSxLQUFRO1FBSnBCLGFBQVEsR0FBa0IsRUFBRSxDQUFDO1FBQzdCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFJWixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBbUIsS0FBUTtRQUN0QyxPQUFPLElBQUksWUFBWSxDQUFJLEtBQUssQ0FBZ0IsQ0FBQztJQUNuRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLElBQVMsRUFDVCxXQUFpQyxFQUNqQyxpQkFBcUMsRUFDckMsV0FBMkI7SUFFM0IsTUFBTSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM5RCxNQUFNLElBQUksR0FBdUMsRUFBRSxDQUFDO0lBRXBELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDakIsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRWxCLElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ25CLE1BQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLE1BQWMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQVksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQy9CO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLElBQVMsRUFDVCxXQUFpQyxFQUNqQyxXQUEyQjtJQUkzQixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBYyxDQUFDO0lBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FDekMsR0FBWSxFQUNaLFFBQWdDO0lBRWhDLE9BQU8sQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVwRCxPQUFPLFNBQVMsWUFBWSxDQUFDLEtBQW9CLEVBQUUsVUFBeUIsRUFBRTtZQUM1RSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtnQkFDeEIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUV4RCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtvQkFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUNoRTtZQUVELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUM1QixJQUFtQixFQUNuQixjQUFzQjtJQUV0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUVoRixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUVsRCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksRUFBRTtRQUN2QixNQUFNLEtBQUssR0FBRyxJQUFJLEVBQUUsS0FBSyxJQUFJLGNBQWMsQ0FBQztRQUM1QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztLQUM1QjtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi9jb21tb24tdXRpbHMnO1xyXG5cclxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlcyAqL1xyXG5leHBvcnQgY2xhc3MgQmFzZVRyZWVOb2RlPFQgZXh0ZW5kcyBvYmplY3Q+IHtcclxuICBjaGlsZHJlbjogVHJlZU5vZGU8VD5bXSA9IFtdO1xyXG4gIGlzTGVhZiA9IHRydWU7XHJcbiAgcGFyZW50PzogVHJlZU5vZGU8VD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBUKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHByb3BzKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGU8VCBleHRlbmRzIG9iamVjdD4ocHJvcHM6IFQpIHtcclxuICAgIHJldHVybiBuZXcgQmFzZVRyZWVOb2RlPFQ+KHByb3BzKSBhcyBUcmVlTm9kZTxUPjtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmVlRnJvbUxpc3Q8VCBleHRlbmRzIG9iamVjdCwgUj4oXHJcbiAgbGlzdDogVFtdLFxyXG4gIGtleVNlbGVjdG9yOiAoaXRlbTogVCkgPT4gTm9kZUtleSxcclxuICBwYXJlbnRLZXlTZWxlY3RvcjogdHlwZW9mIGtleVNlbGVjdG9yLFxyXG4gIHZhbHVlTWFwcGVyOiAoaXRlbTogVCkgPT4gUixcclxuKSB7XHJcbiAgY29uc3QgbWFwID0gY3JlYXRlTWFwRnJvbUxpc3QobGlzdCwga2V5U2VsZWN0b3IsIHZhbHVlTWFwcGVyKTtcclxuICBjb25zdCB0cmVlOiBOb2RlVmFsdWU8VCwgdHlwZW9mIHZhbHVlTWFwcGVyPltdID0gW107XHJcblxyXG4gIGxpc3QuZm9yRWFjaChyb3cgPT4ge1xyXG4gICAgY29uc3QgaWQgPSBrZXlTZWxlY3Rvcihyb3cpO1xyXG4gICAgY29uc3QgcGFyZW50SWQgPSBwYXJlbnRLZXlTZWxlY3Rvcihyb3cpO1xyXG4gICAgY29uc3Qgbm9kZSA9IG1hcC5nZXQoaWQpO1xyXG5cclxuICAgIGlmICghbm9kZSkgcmV0dXJuO1xyXG5cclxuICAgIGlmIChwYXJlbnRJZCkge1xyXG4gICAgICBjb25zdCBwYXJlbnQgPSBtYXAuZ2V0KHBhcmVudElkKTtcclxuICAgICAgaWYgKCFwYXJlbnQpIHJldHVybjtcclxuICAgICAgKHBhcmVudCBhcyBhbnkpLmNoaWxkcmVuLnB1c2gobm9kZSk7XHJcbiAgICAgIChwYXJlbnQgYXMgYW55KS5pc0xlYWYgPSBmYWxzZTtcclxuICAgICAgKG5vZGUgYXMgYW55KS5wYXJlbnQgPSBwYXJlbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cmVlLnB1c2gobm9kZSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiB0cmVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWFwRnJvbUxpc3Q8VCBleHRlbmRzIG9iamVjdCwgUj4oXHJcbiAgbGlzdDogVFtdLFxyXG4gIGtleVNlbGVjdG9yOiAoaXRlbTogVCkgPT4gTm9kZUtleSxcclxuICB2YWx1ZU1hcHBlcjogKGl0ZW06IFQpID0+IFIsXHJcbikge1xyXG4gIHR5cGUgS2V5ID0gUmV0dXJuVHlwZTx0eXBlb2Yga2V5U2VsZWN0b3I+O1xyXG4gIHR5cGUgVmFsdWUgPSBOb2RlVmFsdWU8VCwgdHlwZW9mIHZhbHVlTWFwcGVyPjtcclxuICBjb25zdCBtYXAgPSBuZXcgTWFwPEtleSwgVmFsdWU+KCk7XHJcbiAgbGlzdC5mb3JFYWNoKHJvdyA9PiBtYXAuc2V0KGtleVNlbGVjdG9yKHJvdyksIHZhbHVlTWFwcGVyKHJvdykpKTtcclxuICByZXR1cm4gbWFwO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJlZU5vZGVGaWx0ZXJDcmVhdG9yPFQgZXh0ZW5kcyBvYmplY3Q+KFxyXG4gIGtleToga2V5b2YgVCxcclxuICBtYXBwZXJGbjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyxcclxuKSB7XHJcbiAgcmV0dXJuIChzZWFyY2g6IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCcuKicgKyBzZWFyY2ggKyAnLionLCAnaScpO1xyXG5cclxuICAgIHJldHVybiBmdW5jdGlvbiBjb2xsZWN0Tm9kZXMobm9kZXM6IFRyZWVOb2RlPFQ+W10sIG1hdGNoZXM6IFRyZWVOb2RlPFQ+W10gPSBbXSkge1xyXG4gICAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcclxuICAgICAgICBpZiAocmVnZXgudGVzdChtYXBwZXJGbihub2RlW2tleV0pKSkgbWF0Y2hlcy5wdXNoKG5vZGUpO1xyXG5cclxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGgpIGNvbGxlY3ROb2Rlcyhub2RlLmNoaWxkcmVuLCBtYXRjaGVzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG1hdGNoZXM7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVHcm91cE1hcDxUIGV4dGVuZHMgeyBncm91cD86IHN0cmluZyB9PihcclxuICBsaXN0OiBUcmVlTm9kZTxUPltdLFxyXG4gIG90aGVyc0dyb3VwS2V5OiBzdHJpbmcsXHJcbikge1xyXG4gIGlmICghaXNBcnJheShsaXN0KSB8fCAhbGlzdC5zb21lKG5vZGUgPT4gQm9vbGVhbihub2RlLmdyb3VwKSkpIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0IG1hcEdyb3VwID0gbmV3IE1hcDxzdHJpbmcsIFRyZWVOb2RlPFQ+W10+KCk7XHJcblxyXG4gIGZvciAoY29uc3Qgbm9kZSBvZiBsaXN0KSB7XHJcbiAgICBjb25zdCBncm91cCA9IG5vZGU/Lmdyb3VwIHx8IG90aGVyc0dyb3VwS2V5O1xyXG4gICAgaWYgKHR5cGVvZiBncm91cCAhPT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGdyb3VwOiAke2dyb3VwfWApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGl0ZW1zID0gbWFwR3JvdXAuZ2V0KGdyb3VwKSB8fCBbXTtcclxuICAgIGl0ZW1zLnB1c2gobm9kZSk7XHJcbiAgICBtYXBHcm91cC5zZXQoZ3JvdXAsIGl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBtYXBHcm91cDtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVHJlZU5vZGU8VCBleHRlbmRzIG9iamVjdD4gPSB7XHJcbiAgW0sgaW4ga2V5b2YgVF06IFRbS107XHJcbn0gJiB7XHJcbiAgY2hpbGRyZW46IFRyZWVOb2RlPFQ+W107XHJcbiAgaXNMZWFmOiBib29sZWFuO1xyXG4gIHBhcmVudD86IFRyZWVOb2RlPFQ+O1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgUm91dGVHcm91cDxUIGV4dGVuZHMgb2JqZWN0PiA9IHtcclxuICByZWFkb25seSBncm91cDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IGl0ZW1zOiBUcmVlTm9kZTxUPltdO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgTm9kZUtleSA9IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbCB8IHVuZGVmaW5lZCB8IG51bGw7XHJcblxyXG5leHBvcnQgdHlwZSBOb2RlVmFsdWU8VCBleHRlbmRzIG9iamVjdCwgRiBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IGFueT4gPSBGIGV4dGVuZHMgdW5kZWZpbmVkXHJcbiAgPyBUcmVlTm9kZTxUPlxyXG4gIDogUmV0dXJuVHlwZTxGPjtcclxuIl19
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export function validateMinAge({ age = 18 } = {}) {
|
|
2
|
-
return (control) => {
|
|
3
|
-
if (['', null, undefined].indexOf(control.value) > -1)
|
|
4
|
-
return null;
|
|
5
|
-
return isValidMinAge(control.value, age) ? null : { minAge: { age } };
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
function isValidMinAge(value, minAge) {
|
|
9
|
-
const date = new Date();
|
|
10
|
-
date.setFullYear(date.getFullYear() - minAge);
|
|
11
|
-
date.setHours(23, 59, 59, 999);
|
|
12
|
-
return Number(new Date(value)) <= date.valueOf();
|
|
13
|
-
}
|
|
1
|
+
export function validateMinAge({ age = 18 } = {}) {
|
|
2
|
+
return (control) => {
|
|
3
|
+
if (['', null, undefined].indexOf(control.value) > -1)
|
|
4
|
+
return null;
|
|
5
|
+
return isValidMinAge(control.value, age) ? null : { minAge: { age } };
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
function isValidMinAge(value, minAge) {
|
|
9
|
+
const date = new Date();
|
|
10
|
+
date.setFullYear(date.getFullYear() - minAge);
|
|
11
|
+
date.setHours(23, 59, 59, 999);
|
|
12
|
+
return Number(new Date(value)) <= date.valueOf();
|
|
13
|
+
}
|
|
14
14
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi92YWxpZGF0b3JzL2FnZS52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsTUFBTSxVQUFVLGNBQWMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEtBQW9CLEVBQUU7SUFDN0QsT0FBTyxDQUFDLE9BQXdCLEVBQXNCLEVBQUU7UUFDdEQsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVuRSxPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUN4RSxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsS0FBc0IsRUFBRSxNQUFjO0lBQzNELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUUvQixPQUFPLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWluQWdlRXJyb3Ige1xyXG4gIG1pbkFnZToge1xyXG4gICAgYWdlOiBudW1iZXI7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNaW5BZ2VPcHRpb25zIHtcclxuICBhZ2U/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU1pbkFnZSh7IGFnZSA9IDE4IH06IE1pbkFnZU9wdGlvbnMgPSB7fSk6IFZhbGlkYXRvckZuIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IE1pbkFnZUVycm9yIHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoWycnLCBudWxsLCB1bmRlZmluZWRdLmluZGV4T2YoY29udHJvbC52YWx1ZSkgPiAtMSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgcmV0dXJuIGlzVmFsaWRNaW5BZ2UoY29udHJvbC52YWx1ZSwgYWdlKSA/IG51bGwgOiB7IG1pbkFnZTogeyBhZ2UgfSB9O1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVmFsaWRNaW5BZ2UodmFsdWU6IHN0cmluZyB8IG51bWJlciwgbWluQWdlOiBudW1iZXIpIHtcclxuICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcclxuICBkYXRlLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSAtIG1pbkFnZSk7XHJcbiAgZGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xyXG5cclxuICByZXR1cm4gTnVtYmVyKG5ldyBEYXRlKHZhbHVlKSkgPD0gZGF0ZS52YWx1ZU9mKCk7XHJcbn1cclxuIl19
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
export function validateCreditCard() {
|
|
2
|
-
return (control) => {
|
|
3
|
-
if (['', null, undefined].indexOf(control.value) > -1)
|
|
4
|
-
return null;
|
|
5
|
-
return isValidCreditCard(String(control.value)) ? null : { creditCard: true };
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
function isValidCreditCard(value) {
|
|
9
|
-
value = value.replace(/[ -]/g, '');
|
|
10
|
-
if (!/^[0-9]{13,19}$/.test(value))
|
|
11
|
-
return false;
|
|
12
|
-
let checksum = 0;
|
|
13
|
-
let multiplier = 1;
|
|
14
|
-
for (let i = value.length; i > 0; i--) {
|
|
15
|
-
const digit = Number(value[i - 1]) * multiplier;
|
|
16
|
-
checksum += (digit % 10) + ~~(digit / 10);
|
|
17
|
-
multiplier = (multiplier * 2) % 3;
|
|
18
|
-
}
|
|
19
|
-
return checksum % 10 === 0;
|
|
20
|
-
}
|
|
1
|
+
export function validateCreditCard() {
|
|
2
|
+
return (control) => {
|
|
3
|
+
if (['', null, undefined].indexOf(control.value) > -1)
|
|
4
|
+
return null;
|
|
5
|
+
return isValidCreditCard(String(control.value)) ? null : { creditCard: true };
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
function isValidCreditCard(value) {
|
|
9
|
+
value = value.replace(/[ -]/g, '');
|
|
10
|
+
if (!/^[0-9]{13,19}$/.test(value))
|
|
11
|
+
return false;
|
|
12
|
+
let checksum = 0;
|
|
13
|
+
let multiplier = 1;
|
|
14
|
+
for (let i = value.length; i > 0; i--) {
|
|
15
|
+
const digit = Number(value[i - 1]) * multiplier;
|
|
16
|
+
checksum += (digit % 10) + ~~(digit / 10);
|
|
17
|
+
multiplier = (multiplier * 2) % 3;
|
|
18
|
+
}
|
|
19
|
+
return checksum % 10 === 0;
|
|
20
|
+
}
|
|
21
21
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGl0LWNhcmQudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvY3JlZGl0LWNhcmQudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsT0FBTyxDQUFDLE9BQXdCLEVBQTBCLEVBQUU7UUFDMUQsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVuRSxPQUFPLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNoRixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxLQUFhO0lBQ3RDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRWhELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNqQixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDckMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDaEQsUUFBUSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztRQUUxQyxVQUFVLEdBQUcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ25DO0lBRUQsT0FBTyxRQUFRLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlZGl0Q2FyZEVycm9yIHtcclxuICBjcmVkaXRDYXJkOiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVDcmVkaXRDYXJkKCk6IFZhbGlkYXRvckZuIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IENyZWRpdENhcmRFcnJvciB8IG51bGwgPT4ge1xyXG4gICAgaWYgKFsnJywgbnVsbCwgdW5kZWZpbmVkXS5pbmRleE9mKGNvbnRyb2wudmFsdWUpID4gLTEpIHJldHVybiBudWxsO1xyXG5cclxuICAgIHJldHVybiBpc1ZhbGlkQ3JlZGl0Q2FyZChTdHJpbmcoY29udHJvbC52YWx1ZSkpID8gbnVsbCA6IHsgY3JlZGl0Q2FyZDogdHJ1ZSB9O1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVmFsaWRDcmVkaXRDYXJkKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1sgLV0vZywgJycpO1xyXG5cclxuICBpZiAoIS9eWzAtOV17MTMsMTl9JC8udGVzdCh2YWx1ZSkpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgbGV0IGNoZWNrc3VtID0gMDtcclxuICBsZXQgbXVsdGlwbGllciA9IDE7XHJcblxyXG4gIGZvciAobGV0IGkgPSB2YWx1ZS5sZW5ndGg7IGkgPiAwOyBpLS0pIHtcclxuICAgIGNvbnN0IGRpZ2l0ID0gTnVtYmVyKHZhbHVlW2kgLSAxXSkgKiBtdWx0aXBsaWVyO1xyXG4gICAgY2hlY2tzdW0gKz0gKGRpZ2l0ICUgMTApICsgfn4oZGlnaXQgLyAxMCk7XHJcblxyXG4gICAgbXVsdGlwbGllciA9IChtdWx0aXBsaWVyICogMikgJSAzO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNoZWNrc3VtICUgMTAgPT09IDA7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Validators } from '@angular/forms';
|
|
2
|
+
import { validateMinAge } from './age.validator';
|
|
3
|
+
import { validateCreditCard } from './credit-card.validator';
|
|
4
|
+
import { validateRange } from './range.validator';
|
|
5
|
+
import { validateRequired } from './required.validator';
|
|
6
|
+
import { validateStringLength } from './string-length.validator';
|
|
7
|
+
import { validateUniqueCharacter } from './unique-character.validator';
|
|
8
|
+
import { validateUrl } from './url.validator';
|
|
9
|
+
import { validateUsername } from './username.validator';
|
|
10
|
+
export { validateUniqueCharacter } from './unique-character.validator';
|
|
11
|
+
export * from './age.validator';
|
|
12
|
+
export * from './credit-card.validator';
|
|
13
|
+
export * from './range.validator';
|
|
14
|
+
export * from './required.validator';
|
|
15
|
+
export * from './string-length.validator';
|
|
16
|
+
export * from './url.validator';
|
|
17
|
+
export * from './unique-character.validator';
|
|
18
|
+
export const AbpValidators = {
|
|
19
|
+
creditCard: validateCreditCard,
|
|
20
|
+
emailAddress: () => Validators.email,
|
|
21
|
+
minAge: validateMinAge,
|
|
22
|
+
range: validateRange,
|
|
23
|
+
required: validateRequired,
|
|
24
|
+
stringLength: validateStringLength,
|
|
25
|
+
url: validateUrl,
|
|
26
|
+
username: validateUsername,
|
|
27
|
+
uniqueCharacter: validateUniqueCharacter,
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdkUsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsVUFBVSxFQUFFLGtCQUFrQjtJQUM5QixZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUs7SUFDcEMsTUFBTSxFQUFFLGNBQWM7SUFDdEIsS0FBSyxFQUFFLGFBQWE7SUFDcEIsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQixZQUFZLEVBQUUsb0JBQW9CO0lBQ2xDLEdBQUcsRUFBRSxXQUFXO0lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsZUFBZSxFQUFFLHVCQUF1QjtDQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgdmFsaWRhdGVNaW5BZ2UgfSBmcm9tICcuL2FnZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyB2YWxpZGF0ZUNyZWRpdENhcmQgfSBmcm9tICcuL2NyZWRpdC1jYXJkLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlUmFuZ2UgfSBmcm9tICcuL3JhbmdlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlUmVxdWlyZWQgfSBmcm9tICcuL3JlcXVpcmVkLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlU3RyaW5nTGVuZ3RoIH0gZnJvbSAnLi9zdHJpbmctbGVuZ3RoLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlVW5pcXVlQ2hhcmFjdGVyIH0gZnJvbSAnLi91bmlxdWUtY2hhcmFjdGVyLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlVXJsIH0gZnJvbSAnLi91cmwudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgdmFsaWRhdGVVc2VybmFtZSB9IGZyb20gJy4vdXNlcm5hbWUudmFsaWRhdG9yJztcclxuZXhwb3J0IHsgdmFsaWRhdGVVbmlxdWVDaGFyYWN0ZXIgfSBmcm9tICcuL3VuaXF1ZS1jaGFyYWN0ZXIudmFsaWRhdG9yJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vYWdlLnZhbGlkYXRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY3JlZGl0LWNhcmQudmFsaWRhdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9yYW5nZS52YWxpZGF0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcXVpcmVkLnZhbGlkYXRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3RyaW5nLWxlbmd0aC52YWxpZGF0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL3VybC52YWxpZGF0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL3VuaXF1ZS1jaGFyYWN0ZXIudmFsaWRhdG9yJztcclxuZXhwb3J0IGNvbnN0IEFicFZhbGlkYXRvcnMgPSB7XHJcbiAgY3JlZGl0Q2FyZDogdmFsaWRhdGVDcmVkaXRDYXJkLFxyXG4gIGVtYWlsQWRkcmVzczogKCkgPT4gVmFsaWRhdG9ycy5lbWFpbCxcclxuICBtaW5BZ2U6IHZhbGlkYXRlTWluQWdlLFxyXG4gIHJhbmdlOiB2YWxpZGF0ZVJhbmdlLFxyXG4gIHJlcXVpcmVkOiB2YWxpZGF0ZVJlcXVpcmVkLFxyXG4gIHN0cmluZ0xlbmd0aDogdmFsaWRhdGVTdHJpbmdMZW5ndGgsXHJcbiAgdXJsOiB2YWxpZGF0ZVVybCxcclxuICB1c2VybmFtZTogdmFsaWRhdGVVc2VybmFtZSxcclxuICB1bmlxdWVDaGFyYWN0ZXI6IHZhbGlkYXRlVW5pcXVlQ2hhcmFjdGVyLFxyXG59O1xyXG4iXX0=
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export function validateRange({ maximum = Infinity, minimum = 0 } = {}) {
|
|
2
|
-
return (control) => {
|
|
3
|
-
if (['', null, undefined].indexOf(control.value) > -1)
|
|
4
|
-
return null;
|
|
5
|
-
const value = Number(control.value);
|
|
6
|
-
return getMinError(value, minimum, maximum) || getMaxError(value, maximum, minimum);
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
function getMaxError(value, max, min) {
|
|
10
|
-
return value > max ? { range: { max, min } } : null;
|
|
11
|
-
}
|
|
12
|
-
function getMinError(value, min, max) {
|
|
13
|
-
return value < min ? { range: { min, max } } : null;
|
|
14
|
-
}
|
|
1
|
+
export function validateRange({ maximum = Infinity, minimum = 0 } = {}) {
|
|
2
|
+
return (control) => {
|
|
3
|
+
if (['', null, undefined].indexOf(control.value) > -1)
|
|
4
|
+
return null;
|
|
5
|
+
const value = Number(control.value);
|
|
6
|
+
return getMinError(value, minimum, maximum) || getMaxError(value, maximum, minimum);
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
function getMaxError(value, max, min) {
|
|
10
|
+
return value > max ? { range: { max, min } } : null;
|
|
11
|
+
}
|
|
12
|
+
function getMinError(value, min, max) {
|
|
13
|
+
return value < min ? { range: { min, max } } : null;
|
|
14
|
+
}
|
|
15
15
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvcmFuZ2UudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLE1BQU0sVUFBVSxhQUFhLENBQUMsRUFBRSxPQUFPLEdBQUcsUUFBUSxFQUFFLE9BQU8sR0FBRyxDQUFDLEtBQW1CLEVBQUU7SUFDbEYsT0FBTyxDQUFDLE9BQXdCLEVBQXFCLEVBQUU7UUFDckQsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVuRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEYsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQWEsRUFBRSxHQUFXLEVBQUUsR0FBVztJQUMxRCxPQUFPLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN0RCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsS0FBYSxFQUFFLEdBQVcsRUFBRSxHQUFXO0lBQzFELE9BQU8sS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSYW5nZUVycm9yIHtcclxuICByYW5nZToge1xyXG4gICAgbWF4OiBudW1iZXI7XHJcbiAgICBtaW46IG51bWJlcjtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlT3B0aW9ucyB7XHJcbiAgbWF4aW11bT86IG51bWJlcjtcclxuICBtaW5pbXVtPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVSYW5nZSh7IG1heGltdW0gPSBJbmZpbml0eSwgbWluaW11bSA9IDAgfTogUmFuZ2VPcHRpb25zID0ge30pOiBWYWxpZGF0b3JGbiB7XHJcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBSYW5nZUVycm9yIHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoWycnLCBudWxsLCB1bmRlZmluZWRdLmluZGV4T2YoY29udHJvbC52YWx1ZSkgPiAtMSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgY29uc3QgdmFsdWUgPSBOdW1iZXIoY29udHJvbC52YWx1ZSk7XHJcbiAgICByZXR1cm4gZ2V0TWluRXJyb3IodmFsdWUsIG1pbmltdW0sIG1heGltdW0pIHx8IGdldE1heEVycm9yKHZhbHVlLCBtYXhpbXVtLCBtaW5pbXVtKTtcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRNYXhFcnJvcih2YWx1ZTogbnVtYmVyLCBtYXg6IG51bWJlciwgbWluOiBudW1iZXIpOiBSYW5nZUVycm9yIHwgbnVsbCB7XHJcbiAgcmV0dXJuIHZhbHVlID4gbWF4ID8geyByYW5nZTogeyBtYXgsIG1pbiB9IH0gOiBudWxsO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRNaW5FcnJvcih2YWx1ZTogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBSYW5nZUVycm9yIHwgbnVsbCB7XHJcbiAgcmV0dXJuIHZhbHVlIDwgbWluID8geyByYW5nZTogeyBtaW4sIG1heCB9IH0gOiBudWxsO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export function validateRequired({ allowEmptyStrings } = {}) {
|
|
2
|
-
// note: please do not remove name of the function, it is used in function compare with type 'RequiredError'
|
|
3
|
-
const required = (control) => {
|
|
4
|
-
return isValidRequired(control.value, allowEmptyStrings) ? null : { required: true };
|
|
5
|
-
};
|
|
6
|
-
return required;
|
|
7
|
-
}
|
|
8
|
-
function isValidRequired(value, allowEmptyStrings) {
|
|
9
|
-
if (value || value === 0 || value === false)
|
|
10
|
-
return true;
|
|
11
|
-
if (allowEmptyStrings && value === '')
|
|
12
|
-
return true;
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
1
|
+
export function validateRequired({ allowEmptyStrings } = {}) {
|
|
2
|
+
// note: please do not remove name of the function, it is used in function compare with type 'RequiredError'
|
|
3
|
+
const required = (control) => {
|
|
4
|
+
return isValidRequired(control.value, allowEmptyStrings) ? null : { required: true };
|
|
5
|
+
};
|
|
6
|
+
return required;
|
|
7
|
+
}
|
|
8
|
+
function isValidRequired(value, allowEmptyStrings) {
|
|
9
|
+
if (value || value === 0 || value === false)
|
|
10
|
+
return true;
|
|
11
|
+
if (allowEmptyStrings && value === '')
|
|
12
|
+
return true;
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
15
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvcmVxdWlyZWQudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxFQUFFLGlCQUFpQixLQUFzQixFQUFFO0lBQzFFLDRHQUE0RztJQUM1RyxNQUFNLFFBQVEsR0FBRyxDQUFDLE9BQXdCLEVBQXdCLEVBQUU7UUFDbEUsT0FBTyxlQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3ZGLENBQUMsQ0FBQztJQUNGLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxLQUFVLEVBQUUsaUJBQXNDO0lBQ3pFLElBQUksS0FBSyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLEtBQUs7UUFBRSxPQUFPLElBQUksQ0FBQztJQUV6RCxJQUFJLGlCQUFpQixJQUFJLEtBQUssS0FBSyxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFbkQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWlyZWRFcnJvciB7XHJcbiAgcmVxdWlyZWQ6IHRydWU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWlyZWRPcHRpb25zIHtcclxuICBhbGxvd0VtcHR5U3RyaW5ncz86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVJlcXVpcmVkKHsgYWxsb3dFbXB0eVN0cmluZ3MgfTogUmVxdWlyZWRPcHRpb25zID0ge30pOiBWYWxpZGF0b3JGbiB7XHJcbiAgLy8gbm90ZTogcGxlYXNlIGRvIG5vdCByZW1vdmUgbmFtZSBvZiB0aGUgZnVuY3Rpb24sIGl0IGlzIHVzZWQgaW4gZnVuY3Rpb24gY29tcGFyZSB3aXRoIHR5cGUgJ1JlcXVpcmVkRXJyb3InXHJcbiAgY29uc3QgcmVxdWlyZWQgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogUmVxdWlyZWRFcnJvciB8IG51bGwgPT4ge1xyXG4gICAgcmV0dXJuIGlzVmFsaWRSZXF1aXJlZChjb250cm9sLnZhbHVlLCBhbGxvd0VtcHR5U3RyaW5ncykgPyBudWxsIDogeyByZXF1aXJlZDogdHJ1ZSB9O1xyXG4gIH07XHJcbiAgcmV0dXJuIHJlcXVpcmVkO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1ZhbGlkUmVxdWlyZWQodmFsdWU6IGFueSwgYWxsb3dFbXB0eVN0cmluZ3M6IGJvb2xlYW4gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuICBpZiAodmFsdWUgfHwgdmFsdWUgPT09IDAgfHwgdmFsdWUgPT09IGZhbHNlKSByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgaWYgKGFsbG93RW1wdHlTdHJpbmdzICYmIHZhbHVlID09PSAnJykgcmV0dXJuIHRydWU7XHJcblxyXG4gIHJldHVybiBmYWxzZTtcclxufVxyXG4iXX0=
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export function validateStringLength({ maximumLength = Infinity, minimumLength = 0, } = {}) {
|
|
2
|
-
return (control) => {
|
|
3
|
-
if (['', null, undefined].indexOf(control.value) > -1)
|
|
4
|
-
return null;
|
|
5
|
-
const value = String(control.value);
|
|
6
|
-
return getMinLengthError(value, minimumLength) || getMaxLengthError(value, maximumLength);
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
function getMaxLengthError(value, requiredLength) {
|
|
10
|
-
return value.length > requiredLength ? { maxlength: { requiredLength } } : null;
|
|
11
|
-
}
|
|
12
|
-
function getMinLengthError(value, requiredLength) {
|
|
13
|
-
return value.length < requiredLength ? { minlength: { requiredLength } } : null;
|
|
14
|
-
}
|
|
1
|
+
export function validateStringLength({ maximumLength = Infinity, minimumLength = 0, } = {}) {
|
|
2
|
+
return (control) => {
|
|
3
|
+
if (['', null, undefined].indexOf(control.value) > -1)
|
|
4
|
+
return null;
|
|
5
|
+
const value = String(control.value);
|
|
6
|
+
return getMinLengthError(value, minimumLength) || getMaxLengthError(value, maximumLength);
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
function getMaxLengthError(value, requiredLength) {
|
|
10
|
+
return value.length > requiredLength ? { maxlength: { requiredLength } } : null;
|
|
11
|
+
}
|
|
12
|
+
function getMinLengthError(value, requiredLength) {
|
|
13
|
+
return value.length < requiredLength ? { minlength: { requiredLength } } : null;
|
|
14
|
+
}
|
|
15
15
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWxlbmd0aC52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy9zdHJpbmctbGVuZ3RoLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEVBQ25DLGFBQWEsR0FBRyxRQUFRLEVBQ3hCLGFBQWEsR0FBRyxDQUFDLE1BQ00sRUFBRTtJQUN6QixPQUFPLENBQUMsT0FBd0IsRUFBNEIsRUFBRTtRQUM1RCxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRW5FLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEMsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxjQUFzQjtJQUM5RCxPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNsRixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsY0FBc0I7SUFDOUQsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ0xlbmd0aEVycm9yIHtcclxuICBtYXhsZW5ndGg/OiB7XHJcbiAgICByZXF1aXJlZExlbmd0aDogbnVtYmVyO1xyXG4gIH07XHJcbiAgbWlubGVuZ3RoPzoge1xyXG4gICAgcmVxdWlyZWRMZW5ndGg6IG51bWJlcjtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ0xlbmd0aE9wdGlvbnMge1xyXG4gIG1heGltdW1MZW5ndGg/OiBudW1iZXI7XHJcbiAgbWluaW11bUxlbmd0aD86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU3RyaW5nTGVuZ3RoKHtcclxuICBtYXhpbXVtTGVuZ3RoID0gSW5maW5pdHksXHJcbiAgbWluaW11bUxlbmd0aCA9IDAsXHJcbn06IFN0cmluZ0xlbmd0aE9wdGlvbnMgPSB7fSk6IFZhbGlkYXRvckZuIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFN0cmluZ0xlbmd0aEVycm9yIHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoWycnLCBudWxsLCB1bmRlZmluZWRdLmluZGV4T2YoY29udHJvbC52YWx1ZSkgPiAtMSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgY29uc3QgdmFsdWUgPSBTdHJpbmcoY29udHJvbC52YWx1ZSk7XHJcblxyXG4gICAgcmV0dXJuIGdldE1pbkxlbmd0aEVycm9yKHZhbHVlLCBtaW5pbXVtTGVuZ3RoKSB8fCBnZXRNYXhMZW5ndGhFcnJvcih2YWx1ZSwgbWF4aW11bUxlbmd0aCk7XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWF4TGVuZ3RoRXJyb3IodmFsdWU6IHN0cmluZywgcmVxdWlyZWRMZW5ndGg6IG51bWJlcik6IFN0cmluZ0xlbmd0aEVycm9yIHwgbnVsbCB7XHJcbiAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+IHJlcXVpcmVkTGVuZ3RoID8geyBtYXhsZW5ndGg6IHsgcmVxdWlyZWRMZW5ndGggfSB9IDogbnVsbDtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWluTGVuZ3RoRXJyb3IodmFsdWU6IHN0cmluZywgcmVxdWlyZWRMZW5ndGg6IG51bWJlcik6IFN0cmluZ0xlbmd0aEVycm9yIHwgbnVsbCB7XHJcbiAgcmV0dXJuIHZhbHVlLmxlbmd0aCA8IHJlcXVpcmVkTGVuZ3RoID8geyBtaW5sZW5ndGg6IHsgcmVxdWlyZWRMZW5ndGggfSB9IDogbnVsbDtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { isNullOrEmpty } from '../utils';
|
|
2
|
+
export function validateUniqueCharacter() {
|
|
3
|
+
return (control) => {
|
|
4
|
+
if (isNullOrEmpty(control.value))
|
|
5
|
+
return null;
|
|
6
|
+
return isUnqiueCharacter(control.value) ? null : { uniqueCharacter: true };
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
function isUnqiueCharacter(value) {
|
|
10
|
+
const set = new Set(value.split(''));
|
|
11
|
+
return set.size == value.length;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pcXVlLWNoYXJhY3Rlci52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy91bmlxdWUtY2hhcmFjdGVyLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBTXpDLE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsT0FBTyxDQUFDLE9BQXdCLEVBQStCLEVBQUU7UUFDL0QsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTlDLE9BQU8saUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzdFLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQWE7SUFDdEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQVMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sR0FBRyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBpc051bGxPckVtcHR5IH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVbmlxdWVDaGFyYWN0ZXJFcnJvciB7XHJcbiAgdW5pcXVlQ2hhcmFjdGVyOiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVVbmlxdWVDaGFyYWN0ZXIoKTogVmFsaWRhdG9yRm4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVW5pcXVlQ2hhcmFjdGVyRXJyb3IgfCBudWxsID0+IHtcclxuICAgIGlmIChpc051bGxPckVtcHR5KGNvbnRyb2wudmFsdWUpKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICByZXR1cm4gaXNVbnFpdWVDaGFyYWN0ZXIoY29udHJvbC52YWx1ZSkgPyBudWxsIDogeyB1bmlxdWVDaGFyYWN0ZXI6IHRydWUgfTtcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1VucWl1ZUNoYXJhY3Rlcih2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgY29uc3Qgc2V0ID0gbmV3IFNldDxzdHJpbmc+KHZhbHVlLnNwbGl0KCcnKSk7XHJcblxyXG4gIHJldHVybiBzZXQuc2l6ZSA9PSB2YWx1ZS5sZW5ndGg7XHJcbn1cclxuIl19
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { isNullOrEmpty } from '../utils';
|
|
2
|
-
export function validateUrl() {
|
|
3
|
-
return (control) => {
|
|
4
|
-
if (isNullOrEmpty(control.value))
|
|
5
|
-
return null;
|
|
6
|
-
return isValidUrl(control.value) ? null : { url: true };
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
function isValidUrl(value) {
|
|
10
|
-
if (/^http(s)?:\/\/[^/]/.test(value) || /^ftp:\/\/[^/]/.test(value)) {
|
|
11
|
-
const a = document.createElement('a');
|
|
12
|
-
a.href = value;
|
|
13
|
-
return !!a.host;
|
|
14
|
-
}
|
|
15
|
-
return false;
|
|
16
|
-
}
|
|
1
|
+
import { isNullOrEmpty } from '../utils';
|
|
2
|
+
export function validateUrl() {
|
|
3
|
+
return (control) => {
|
|
4
|
+
if (isNullOrEmpty(control.value))
|
|
5
|
+
return null;
|
|
6
|
+
return isValidUrl(control.value) ? null : { url: true };
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
function isValidUrl(value) {
|
|
10
|
+
if (/^http(s)?:\/\/[^/]/.test(value) || /^ftp:\/\/[^/]/.test(value)) {
|
|
11
|
+
const a = document.createElement('a');
|
|
12
|
+
a.href = value;
|
|
13
|
+
return !!a.host;
|
|
14
|
+
}
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
17
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi92YWxpZGF0b3JzL3VybC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU16QyxNQUFNLFVBQVUsV0FBVztJQUN6QixPQUFPLENBQUMsT0FBd0IsRUFBbUIsRUFBRTtRQUNuRCxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFOUMsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFhO0lBQy9CLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDbkUsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNmLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7S0FDakI7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBpc051bGxPckVtcHR5IH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcmxFcnJvciB7XHJcbiAgdXJsOiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVVcmwoKTogVmFsaWRhdG9yRm4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVXJsRXJyb3IgfCBudWxsID0+IHtcclxuICAgIGlmIChpc051bGxPckVtcHR5KGNvbnRyb2wudmFsdWUpKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICByZXR1cm4gaXNWYWxpZFVybChjb250cm9sLnZhbHVlKSA/IG51bGwgOiB7IHVybDogdHJ1ZSB9O1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVmFsaWRVcmwodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIGlmICgvXmh0dHAocyk/OlxcL1xcL1teL10vLnRlc3QodmFsdWUpIHx8IC9eZnRwOlxcL1xcL1teL10vLnRlc3QodmFsdWUpKSB7XHJcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgYS5ocmVmID0gdmFsdWU7XHJcbiAgICByZXR1cm4gISFhLmhvc3Q7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmFsc2U7XHJcbn1cclxuIl19
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { isNullOrEmpty } from '../utils';
|
|
2
|
-
const onlyLetterAndNumberRegex = /^[a-zA-Z0-9]+$/;
|
|
3
|
-
export function validateUsername({ pattern = /.*/ } = { pattern: onlyLetterAndNumberRegex }) {
|
|
4
|
-
return (control) => {
|
|
5
|
-
const isValid = isValidUserName(control.value, pattern);
|
|
6
|
-
return isValid ? null : { usernamePattern: { actualValue: control.value } };
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
function isValidUserName(value, pattern) {
|
|
10
|
-
if (isNullOrEmpty(value))
|
|
11
|
-
return true;
|
|
12
|
-
return pattern.test(value);
|
|
13
|
-
}
|
|
1
|
+
import { isNullOrEmpty } from '../utils';
|
|
2
|
+
const onlyLetterAndNumberRegex = /^[a-zA-Z0-9]+$/;
|
|
3
|
+
export function validateUsername({ pattern = /.*/ } = { pattern: onlyLetterAndNumberRegex }) {
|
|
4
|
+
return (control) => {
|
|
5
|
+
const isValid = isValidUserName(control.value, pattern);
|
|
6
|
+
return isValid ? null : { usernamePattern: { actualValue: control.value } };
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
function isValidUserName(value, pattern) {
|
|
10
|
+
if (isNullOrEmpty(value))
|
|
11
|
+
return true;
|
|
12
|
+
return pattern.test(value);
|
|
13
|
+
}
|
|
14
14
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcm5hbWUudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvdXNlcm5hbWUudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFZekMsTUFBTSx3QkFBd0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUVsRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEVBQUUsT0FBTyxHQUFHLElBQUksS0FBc0IsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUU7SUFFM0UsT0FBTyxDQUFDLE9BQXdCLEVBQStCLEVBQUU7UUFDL0QsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDOUUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLEtBQVUsRUFBRSxPQUFlO0lBQ2xELElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRXRDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgaXNOdWxsT3JFbXB0eSB9IGZyb20gJy4uL3V0aWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlcm5hbWVQYXR0ZXJuRXJyb3Ige1xyXG4gIHVzZXJuYW1lUGF0dGVybjoge1xyXG4gICAgYWN0dWFsVmFsdWU6IHN0cmluZztcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJuYW1lT3B0aW9ucyB7XHJcbiAgcGF0dGVybj86IFJlZ0V4cDtcclxufVxyXG5cclxuY29uc3Qgb25seUxldHRlckFuZE51bWJlclJlZ2V4ID0gL15bYS16QS1aMC05XSskLztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVVzZXJuYW1lKFxyXG4gIHsgcGF0dGVybiA9IC8uKi8gfTogVXNlcm5hbWVPcHRpb25zID0geyBwYXR0ZXJuOiBvbmx5TGV0dGVyQW5kTnVtYmVyUmVnZXggfSxcclxuKTogVmFsaWRhdG9yRm4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVXNlcm5hbWVQYXR0ZXJuRXJyb3IgfCBudWxsID0+IHtcclxuICAgIGNvbnN0IGlzVmFsaWQgPSBpc1ZhbGlkVXNlck5hbWUoY29udHJvbC52YWx1ZSwgcGF0dGVybik7XHJcbiAgICByZXR1cm4gaXNWYWxpZCA/IG51bGwgOiB7IHVzZXJuYW1lUGF0dGVybjogeyBhY3R1YWxWYWx1ZTogY29udHJvbC52YWx1ZSB9IH07XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNWYWxpZFVzZXJOYW1lKHZhbHVlOiBhbnksIHBhdHRlcm46IFJlZ0V4cCk6IGJvb2xlYW4ge1xyXG4gIGlmIChpc051bGxPckVtcHR5KHZhbHVlKSkgcmV0dXJuIHRydWU7XHJcblxyXG4gIHJldHVybiBwYXR0ZXJuLnRlc3QodmFsdWUpO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmNvcmUtbG9jYWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9sb2NhbGUvc3JjL2FicC1uZy5jb3JlLWxvY2FsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './utils/register-locale';
|
|
1
|
+
export * from './utils/register-locale';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvbG9jYWxlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3V0aWxzL3JlZ2lzdGVyLWxvY2FsZSc7XHJcbiJdfQ==
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import { differentLocales } from '@abp/ng.core';
|
|
2
|
-
import { isDevMode } from '@angular/core';
|
|
3
|
-
let localeMap = {};
|
|
4
|
-
export function registerLocale({ cultureNameLocaleFileMap = {}, errorHandlerFn = defaultLocalErrorHandlerFn, } = {}) {
|
|
5
|
-
return (locale) => {
|
|
6
|
-
localeMap = { ...differentLocales, ...cultureNameLocaleFileMap };
|
|
7
|
-
const localePath = `/locales/${localeMap[locale] || locale}`;
|
|
8
|
-
return new Promise((resolve, reject) => {
|
|
9
|
-
return import(
|
|
10
|
-
/* webpackMode: "lazy-once" */
|
|
11
|
-
/* webpackChunkName: "locales"*/
|
|
12
|
-
/* webpackInclude: /[/\\](ar|cs|en|en-GB|es|de|fi|fr|hi|hu|is|it|pt|tr|ru|ro|sk|sl|zh-Hans|zh-Hant)\.(mjs|js)$/ */
|
|
13
|
-
/* webpackExclude: /[/\\]global|extra/ */
|
|
14
|
-
`@angular/common${localePath}`)
|
|
15
|
-
.then(val => {
|
|
16
|
-
let module = val;
|
|
17
|
-
while (module.default) {
|
|
18
|
-
module = module.default;
|
|
19
|
-
}
|
|
20
|
-
resolve({ default: module });
|
|
21
|
-
})
|
|
22
|
-
.catch(error => {
|
|
23
|
-
errorHandlerFn({
|
|
24
|
-
resolve,
|
|
25
|
-
reject,
|
|
26
|
-
error,
|
|
27
|
-
locale,
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
const extraLocales = {};
|
|
34
|
-
export function storeLocaleData(data, localeId) {
|
|
35
|
-
extraLocales[localeId] = data;
|
|
36
|
-
}
|
|
37
|
-
export async function defaultLocalErrorHandlerFn({ locale, resolve }) {
|
|
38
|
-
if (extraLocales[locale]) {
|
|
39
|
-
resolve({ default: extraLocales[localeMap[locale] || locale] });
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
if (isDevMode()) {
|
|
43
|
-
console.error(`Cannot find the ${locale} locale file. You can check how can add new culture at https://docs.abp.io/en/abp/latest/UI/Angular/Localization#adding-a-new-culture`);
|
|
44
|
-
}
|
|
45
|
-
resolve();
|
|
46
|
-
}
|
|
1
|
+
import { differentLocales } from '@abp/ng.core';
|
|
2
|
+
import { isDevMode } from '@angular/core';
|
|
3
|
+
let localeMap = {};
|
|
4
|
+
export function registerLocale({ cultureNameLocaleFileMap = {}, errorHandlerFn = defaultLocalErrorHandlerFn, } = {}) {
|
|
5
|
+
return (locale) => {
|
|
6
|
+
localeMap = { ...differentLocales, ...cultureNameLocaleFileMap };
|
|
7
|
+
const localePath = `/locales/${localeMap[locale] || locale}`;
|
|
8
|
+
return new Promise((resolve, reject) => {
|
|
9
|
+
return import(
|
|
10
|
+
/* webpackMode: "lazy-once" */
|
|
11
|
+
/* webpackChunkName: "locales"*/
|
|
12
|
+
/* webpackInclude: /[/\\](ar|cs|en|en-GB|es|de|fi|fr|hi|hu|is|it|pt|tr|ru|ro|sk|sl|zh-Hans|zh-Hant)\.(mjs|js)$/ */
|
|
13
|
+
/* webpackExclude: /[/\\]global|extra/ */
|
|
14
|
+
`@angular/common${localePath}`)
|
|
15
|
+
.then(val => {
|
|
16
|
+
let module = val;
|
|
17
|
+
while (module.default) {
|
|
18
|
+
module = module.default;
|
|
19
|
+
}
|
|
20
|
+
resolve({ default: module });
|
|
21
|
+
})
|
|
22
|
+
.catch(error => {
|
|
23
|
+
errorHandlerFn({
|
|
24
|
+
resolve,
|
|
25
|
+
reject,
|
|
26
|
+
error,
|
|
27
|
+
locale,
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const extraLocales = {};
|
|
34
|
+
export function storeLocaleData(data, localeId) {
|
|
35
|
+
extraLocales[localeId] = data;
|
|
36
|
+
}
|
|
37
|
+
export async function defaultLocalErrorHandlerFn({ locale, resolve }) {
|
|
38
|
+
if (extraLocales[locale]) {
|
|
39
|
+
resolve({ default: extraLocales[localeMap[locale] || locale] });
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (isDevMode()) {
|
|
43
|
+
console.error(`Cannot find the ${locale} locale file. You can check how can add new culture at https://docs.abp.io/en/abp/latest/UI/Angular/Localization#adding-a-new-culture`);
|
|
44
|
+
}
|
|
45
|
+
resolve();
|
|
46
|
+
}
|
|
47
47
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItbG9jYWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9sb2NhbGUvc3JjL3V0aWxzL3JlZ2lzdGVyLWxvY2FsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVMxQyxJQUFJLFNBQVMsR0FBRyxFQUErQixDQUFDO0FBT2hELE1BQU0sVUFBVSxjQUFjLENBQzVCLEVBQ0Usd0JBQXdCLEdBQUcsRUFBRSxFQUM3QixjQUFjLEdBQUcsMEJBQTBCLE1BQ3pDLEVBQXdCO0lBRTVCLE9BQU8sQ0FBQyxNQUFjLEVBQWdCLEVBQUU7UUFDdEMsU0FBUyxHQUFHLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxHQUFHLHdCQUF3QixFQUFFLENBQUM7UUFDakUsTUFBTSxVQUFVLEdBQUcsWUFBWSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7UUFDN0QsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxPQUFPLE1BQU07WUFDWCw4QkFBOEI7WUFDOUIsZ0NBQWdDO1lBQ2hDLGtIQUFrSDtZQUNsSCx5Q0FBeUM7WUFDekMsa0JBQWtCLFVBQVUsRUFBRSxDQUMvQjtpQkFDRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDO2dCQUNqQixPQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUU7b0JBQ3JCLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO2lCQUN6QjtnQkFDRCxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNiLGNBQWMsQ0FBQztvQkFDYixPQUFPO29CQUNQLE1BQU07b0JBQ04sS0FBSztvQkFDTCxNQUFNO2lCQUNQLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxZQUFZLEdBQUcsRUFBNEIsQ0FBQztBQUNsRCxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQVMsRUFBRSxRQUFnQjtJQUN6RCxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDBCQUEwQixDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBMEI7SUFDMUYsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDeEIsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLE9BQU87S0FDUjtJQUVELElBQUksU0FBUyxFQUFFLEVBQUU7UUFDZixPQUFPLENBQUMsS0FBSyxDQUNYLG1CQUFtQixNQUFNLHVJQUF1SSxDQUNqSyxDQUFDO0tBQ0g7SUFFRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaWZmZXJlbnRMb2NhbGVzIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsZUVycm9ySGFuZGxlckRhdGEge1xyXG4gIHJlc29sdmU6IGFueTtcclxuICByZWplY3Q6IGFueTtcclxuICBlcnJvcjogYW55O1xyXG4gIGxvY2FsZTogc3RyaW5nO1xyXG59XHJcblxyXG5sZXQgbG9jYWxlTWFwID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJMb2NhbGVEYXRhIHtcclxuICBjdWx0dXJlTmFtZUxvY2FsZUZpbGVNYXA/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xyXG4gIGVycm9ySGFuZGxlckZuPzogKGRhdGE6IExvY2FsZUVycm9ySGFuZGxlckRhdGEpID0+IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyTG9jYWxlKFxyXG4gIHtcclxuICAgIGN1bHR1cmVOYW1lTG9jYWxlRmlsZU1hcCA9IHt9LFxyXG4gICAgZXJyb3JIYW5kbGVyRm4gPSBkZWZhdWx0TG9jYWxFcnJvckhhbmRsZXJGbixcclxuICB9ID0ge30gYXMgUmVnaXN0ZXJMb2NhbGVEYXRhLFxyXG4pIHtcclxuICByZXR1cm4gKGxvY2FsZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcclxuICAgIGxvY2FsZU1hcCA9IHsgLi4uZGlmZmVyZW50TG9jYWxlcywgLi4uY3VsdHVyZU5hbWVMb2NhbGVGaWxlTWFwIH07XHJcbiAgICBjb25zdCBsb2NhbGVQYXRoID0gYC9sb2NhbGVzLyR7bG9jYWxlTWFwW2xvY2FsZV0gfHwgbG9jYWxlfWA7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICByZXR1cm4gaW1wb3J0KFxyXG4gICAgICAgIC8qIHdlYnBhY2tNb2RlOiBcImxhenktb25jZVwiICovXHJcbiAgICAgICAgLyogd2VicGFja0NodW5rTmFtZTogXCJsb2NhbGVzXCIqL1xyXG4gICAgICAgIC8qIHdlYnBhY2tJbmNsdWRlOiAvWy9cXFxcXShhcnxjc3xlbnxlbi1HQnxlc3xkZXxmaXxmcnxoaXxodXxpc3xpdHxwdHx0cnxydXxyb3xza3xzbHx6aC1IYW5zfHpoLUhhbnQpXFwuKG1qc3xqcykkLyAqL1xyXG4gICAgICAgIC8qIHdlYnBhY2tFeGNsdWRlOiAvWy9cXFxcXWdsb2JhbHxleHRyYS8gKi9cclxuICAgICAgICBgQGFuZ3VsYXIvY29tbW9uJHtsb2NhbGVQYXRofWBcclxuICAgICAgKVxyXG4gICAgICAgIC50aGVuKHZhbCA9PiB7XHJcbiAgICAgICAgICBsZXQgbW9kdWxlID0gdmFsO1xyXG4gICAgICAgICAgd2hpbGUgKG1vZHVsZS5kZWZhdWx0KSB7XHJcbiAgICAgICAgICAgIG1vZHVsZSA9IG1vZHVsZS5kZWZhdWx0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVzb2x2ZSh7IGRlZmF1bHQ6IG1vZHVsZSB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XHJcbiAgICAgICAgICBlcnJvckhhbmRsZXJGbih7XHJcbiAgICAgICAgICAgIHJlc29sdmUsXHJcbiAgICAgICAgICAgIHJlamVjdCxcclxuICAgICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgICAgIGxvY2FsZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfTtcclxufVxyXG5cclxuY29uc3QgZXh0cmFMb2NhbGVzID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxuZXhwb3J0IGZ1bmN0aW9uIHN0b3JlTG9jYWxlRGF0YShkYXRhOiBhbnksIGxvY2FsZUlkOiBzdHJpbmcpIHtcclxuICBleHRyYUxvY2FsZXNbbG9jYWxlSWRdID0gZGF0YTtcclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlZmF1bHRMb2NhbEVycm9ySGFuZGxlckZuKHsgbG9jYWxlLCByZXNvbHZlIH06IExvY2FsZUVycm9ySGFuZGxlckRhdGEpIHtcclxuICBpZiAoZXh0cmFMb2NhbGVzW2xvY2FsZV0pIHtcclxuICAgIHJlc29sdmUoeyBkZWZhdWx0OiBleHRyYUxvY2FsZXNbbG9jYWxlTWFwW2xvY2FsZV0gfHwgbG9jYWxlXSB9KTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgY29uc29sZS5lcnJvcihcclxuICAgICAgYENhbm5vdCBmaW5kIHRoZSAke2xvY2FsZX0gbG9jYWxlIGZpbGUuIFlvdSBjYW4gY2hlY2sgaG93IGNhbiBhZGQgbmV3IGN1bHR1cmUgYXQgaHR0cHM6Ly9kb2NzLmFicC5pby9lbi9hYnAvbGF0ZXN0L1VJL0FuZ3VsYXIvTG9jYWxpemF0aW9uI2FkZGluZy1hLW5ldy1jdWx0dXJlYCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXNvbHZlKCk7XHJcbn1cclxuIl19
|