@abp/ng.core 5.0.1 → 5.0.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 +3 -3
- package/abp-ng.core.d.ts +5 -5
- package/bundles/abp-ng.core-locale.umd.js +361 -361
- package/bundles/abp-ng.core-locale.umd.js.map +1 -1
- package/bundles/abp-ng.core-testing.umd.js +442 -442
- package/bundles/abp-ng.core-testing.umd.js.map +1 -1
- package/bundles/abp-ng.core.umd.js +4873 -4868
- package/bundles/abp-ng.core.umd.js.map +1 -1
- package/esm2015/abp-ng.core.js +4 -4
- package/esm2015/lib/abstracts/index.js +2 -2
- package/esm2015/lib/abstracts/ng-model.component.js +59 -59
- package/esm2015/lib/components/dynamic-layout.component.js +89 -89
- package/esm2015/lib/components/index.js +4 -4
- package/esm2015/lib/components/replaceable-route-container.component.js +42 -42
- package/esm2015/lib/components/router-outlet.component.js +15 -15
- package/esm2015/lib/constants/different-locales.js +337 -337
- package/esm2015/lib/constants/index.js +2 -2
- package/esm2015/lib/core.module.js +281 -281
- package/esm2015/lib/directives/autofocus.directive.js +30 -30
- package/esm2015/lib/directives/debounce.directive.js +36 -36
- package/esm2015/lib/directives/for.directive.js +151 -151
- package/esm2015/lib/directives/form-submit.directive.js +69 -69
- package/esm2015/lib/directives/index.js +9 -9
- package/esm2015/lib/directives/init.directive.js +21 -21
- package/esm2015/lib/directives/permission.directive.js +48 -48
- package/esm2015/lib/directives/replaceable-template.directive.js +121 -121
- package/esm2015/lib/directives/stop-propagation.directive.js +32 -32
- package/esm2015/lib/enums/common.js +2 -2
- package/esm2015/lib/enums/index.js +2 -2
- package/esm2015/lib/guards/auth.guard.js +29 -29
- package/esm2015/lib/guards/index.js +3 -3
- package/esm2015/lib/guards/permission.guard.js +44 -44
- package/esm2015/lib/handlers/oauth-configuration.handler.js +37 -37
- package/esm2015/lib/handlers/routes.handler.js +47 -47
- package/esm2015/lib/interceptors/api.interceptor.js +54 -54
- package/esm2015/lib/interceptors/index.js +2 -2
- package/esm2015/lib/localization.module.js +16 -16
- package/esm2015/lib/models/auth.js +2 -2
- package/esm2015/lib/models/common.js +2 -2
- package/esm2015/lib/models/dtos.js +119 -119
- package/esm2015/lib/models/environment.js +2 -2
- package/esm2015/lib/models/index.js +10 -10
- package/esm2015/lib/models/localization.js +2 -2
- package/esm2015/lib/models/replaceable-components.js +2 -2
- package/esm2015/lib/models/rest.js +2 -2
- package/esm2015/lib/models/session.js +2 -2
- package/esm2015/lib/models/utility.js +2 -2
- package/esm2015/lib/pipes/index.js +3 -3
- package/esm2015/lib/pipes/localization.pipe.js +33 -33
- package/esm2015/lib/pipes/sort.pipe.js +49 -49
- package/esm2015/lib/providers/cookie-language.provider.js +22 -22
- package/esm2015/lib/providers/locale.provider.js +22 -22
- package/esm2015/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.js +29 -29
- package/esm2015/lib/proxy/pages/abp/multi-tenancy/index.js +2 -2
- package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.js +24 -24
- package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.js +2 -2
- package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.js +25 -25
- package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.js +5 -5
- package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.js +2 -2
- package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.js +2 -2
- package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.js +3 -3
- package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.js +2 -2
- package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.js +2 -2
- package/esm2015/lib/proxy/volo/abp/http/modeling/index.js +2 -2
- package/esm2015/lib/proxy/volo/abp/http/modeling/models.js +3 -3
- package/esm2015/lib/proxy/volo/abp/localization/index.js +2 -2
- package/esm2015/lib/proxy/volo/abp/localization/models.js +2 -2
- package/esm2015/lib/proxy/volo/abp/models.js +2 -2
- package/esm2015/lib/services/auth.service.js +47 -47
- package/esm2015/lib/services/config-state.service.js +130 -130
- package/esm2015/lib/services/content-projection.service.js +17 -17
- package/esm2015/lib/services/dom-insertion.service.js +32 -32
- package/esm2015/lib/services/environment.service.js +35 -35
- package/esm2015/lib/services/http-error-reporter.service.js +29 -29
- package/esm2015/lib/services/http-wait.service.js +72 -72
- package/esm2015/lib/services/index.js +22 -22
- package/esm2015/lib/services/lazy-load.service.js +38 -38
- package/esm2015/lib/services/list.service.js +103 -103
- package/esm2015/lib/services/localization.service.js +182 -182
- package/esm2015/lib/services/multi-tenancy.service.js +48 -48
- package/esm2015/lib/services/permission.service.js +64 -64
- package/esm2015/lib/services/replaceable-components.service.js +49 -49
- package/esm2015/lib/services/resource-wait.service.js +39 -39
- package/esm2015/lib/services/rest.service.js +63 -63
- package/esm2015/lib/services/router-events.service.js +38 -38
- package/esm2015/lib/services/router-wait.service.js +51 -51
- package/esm2015/lib/services/routes.service.js +147 -147
- package/esm2015/lib/services/session-state.service.js +76 -76
- package/esm2015/lib/services/subscription.service.js +41 -41
- package/esm2015/lib/services/track-by.service.js +21 -21
- package/esm2015/lib/strategies/auth-flow.strategy.js +202 -202
- package/esm2015/lib/strategies/container.strategy.js +38 -38
- package/esm2015/lib/strategies/content-security.strategy.js +28 -28
- package/esm2015/lib/strategies/content.strategy.js +48 -48
- package/esm2015/lib/strategies/context.strategy.js +37 -37
- package/esm2015/lib/strategies/cross-origin.strategy.js +26 -26
- package/esm2015/lib/strategies/dom.strategy.js +27 -27
- package/esm2015/lib/strategies/index.js +9 -9
- package/esm2015/lib/strategies/loading.strategy.js +58 -58
- package/esm2015/lib/strategies/projection.strategy.js +80 -80
- package/esm2015/lib/tokens/app-config.token.js +3 -3
- package/esm2015/lib/tokens/cookie-language-key.token.js +5 -5
- package/esm2015/lib/tokens/index.js +9 -9
- package/esm2015/lib/tokens/list.token.js +3 -3
- package/esm2015/lib/tokens/localization.token.js +10 -10
- package/esm2015/lib/tokens/lodaer-delay.token.js +3 -3
- package/esm2015/lib/tokens/manage-profile.token.js +12 -12
- package/esm2015/lib/tokens/options.token.js +8 -8
- package/esm2015/lib/tokens/tenant-key.token.js +3 -3
- package/esm2015/lib/utils/array-utils.js +7 -7
- package/esm2015/lib/utils/auth-utils.js +42 -42
- package/esm2015/lib/utils/common-utils.js +29 -29
- package/esm2015/lib/utils/date-extensions.js +6 -6
- package/esm2015/lib/utils/date-utils.js +13 -13
- package/esm2015/lib/utils/environment-utils.js +36 -36
- package/esm2015/lib/utils/factory-utils.js +24 -24
- package/esm2015/lib/utils/file-utils.js +14 -14
- package/esm2015/lib/utils/form-utils.js +12 -12
- package/esm2015/lib/utils/generator-utils.js +34 -34
- package/esm2015/lib/utils/http-utils.js +19 -19
- package/esm2015/lib/utils/index.js +21 -21
- package/esm2015/lib/utils/initial-utils.js +64 -64
- package/esm2015/lib/utils/internal-store-utils.js +36 -36
- package/esm2015/lib/utils/lazy-load-utils.js +40 -40
- package/esm2015/lib/utils/localization-utils.js +50 -50
- package/esm2015/lib/utils/multi-tenancy-utils.js +83 -83
- package/esm2015/lib/utils/number-utils.js +4 -4
- package/esm2015/lib/utils/object-utils.js +37 -37
- package/esm2015/lib/utils/route-utils.js +27 -27
- package/esm2015/lib/utils/string-utils.js +25 -21
- package/esm2015/lib/utils/tree-utils.js +54 -54
- package/esm2015/lib/validators/age.validator.js +14 -14
- package/esm2015/lib/validators/credit-card.validator.js +21 -21
- package/esm2015/lib/validators/index.js +23 -23
- package/esm2015/lib/validators/range.validator.js +15 -15
- package/esm2015/lib/validators/required.validator.js +13 -13
- package/esm2015/lib/validators/string-length.validator.js +15 -15
- package/esm2015/lib/validators/url.validator.js +16 -16
- package/esm2015/locale/abp-ng.core-locale.js +4 -4
- package/esm2015/locale/public-api.js +2 -2
- package/esm2015/locale/utils/register-locale.js +43 -43
- package/esm2015/public-api.js +26 -26
- package/esm2015/testing/abp-ng.core-testing.js +4 -4
- package/esm2015/testing/lib/core-testing.module.js +62 -62
- package/esm2015/testing/lib/services/index.js +3 -3
- package/esm2015/testing/lib/services/mock-permission.service.js +35 -35
- package/esm2015/testing/lib/services/mock-rest.service.js +30 -30
- package/esm2015/testing/lib/utils/clear-page.util.js +10 -10
- package/esm2015/testing/lib/utils/index.js +3 -3
- package/esm2015/testing/lib/utils/wait.util.js +5 -5
- package/esm2015/testing/public-api.js +4 -4
- package/fesm2015/abp-ng.core-locale.js +40 -40
- package/fesm2015/abp-ng.core-locale.js.map +1 -1
- package/fesm2015/abp-ng.core-testing.js +113 -113
- package/fesm2015/abp-ng.core-testing.js.map +1 -1
- package/fesm2015/abp-ng.core.js +3979 -3975
- package/fesm2015/abp-ng.core.js.map +1 -1
- package/lib/abstracts/index.d.ts +1 -1
- package/lib/abstracts/ng-model.component.d.ts +25 -25
- package/lib/components/dynamic-layout.component.d.ts +27 -27
- 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 +56 -56
- 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 +19 -19
- package/lib/directives/index.d.ts +8 -8
- package/lib/directives/init.directive.d.ts +10 -10
- package/lib/directives/permission.directive.d.ts +18 -18
- package/lib/directives/replaceable-template.directive.d.ts +30 -30
- 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/auth.guard.d.ts +13 -13
- package/lib/guards/index.d.ts +2 -2
- package/lib/guards/permission.guard.d.ts +16 -16
- package/lib/handlers/oauth-configuration.handler.d.ts +13 -13
- package/lib/handlers/routes.handler.d.ts +11 -11
- package/lib/interceptors/api.interceptor.d.ts +16 -16
- package/lib/interceptors/index.d.ts +1 -1
- package/lib/localization.module.d.ts +7 -7
- package/lib/models/auth.d.ts +6 -6
- package/lib/models/common.d.ts +77 -77
- package/lib/models/dtos.d.ts +95 -95
- package/lib/models/environment.d.ts +35 -35
- 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 +35 -35
- package/lib/models/session.d.ts +7 -7
- package/lib/models/utility.d.ts +14 -14
- package/lib/pipes/index.d.ts +2 -2
- package/lib/pipes/localization.pipe.d.ts +12 -12
- package/lib/pipes/sort.pipe.d.ts +9 -9
- package/lib/providers/cookie-language.provider.d.ts +3 -3
- 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/index.d.ts +4 -4
- package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.d.ts +85 -85
- 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 +70 -70
- package/lib/proxy/volo/abp/localization/index.d.ts +1 -1
- package/lib/proxy/volo/abp/localization/models.d.ts +6 -6
- package/lib/proxy/volo/abp/models.d.ts +4 -4
- package/lib/services/auth.service.d.ts +17 -17
- package/lib/services/config-state.service.d.ts +339 -339
- 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 +96 -96
- 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/localization.service.d.ts +47 -47
- 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 +20 -20
- 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 +50 -50
- package/lib/services/session-state.service.d.ts +25 -25
- package/lib/services/subscription.service.d.ts +17 -17
- package/lib/services/track-by.service.d.ts +11 -11
- package/lib/strategies/auth-flow.strategy.d.ts +367 -367
- 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/cookie-language-key.token.d.ts +2 -2
- package/lib/tokens/index.d.ts +8 -8
- 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/tenant-key.token.d.ts +2 -2
- package/lib/utils/array-utils.d.ts +1 -1
- package/lib/utils/auth-utils.d.ts +162 -162
- package/lib/utils/common-utils.d.ts +9 -9
- 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 +9 -9
- 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 +159 -159
- 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 +1 -1
- package/lib/utils/route-utils.d.ts +8 -8
- package/lib/utils/string-utils.d.ts +3 -2
- package/lib/utils/tree-utils.d.ts +19 -19
- 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 +22 -22
- 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/url.validator.d.ts +5 -5
- package/locale/abp-ng.core-locale.d.ts +5 -5
- package/locale/public-api.d.ts +1 -1
- package/locale/utils/register-locale.d.ts +13 -13
- package/package.json +2 -2
- package/public-api.d.ts +24 -24
- package/testing/abp-ng.core-testing.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 +13 -13
- 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
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
import compare from 'just-compare';
|
|
2
|
-
import { BehaviorSubject, Subject } from 'rxjs';
|
|
3
|
-
import { distinctUntilChanged, filter, map } from 'rxjs/operators';
|
|
4
|
-
import { deepMerge } from './object-utils';
|
|
5
|
-
export class InternalStore {
|
|
6
|
-
constructor(initialState) {
|
|
7
|
-
this.initialState = initialState;
|
|
8
|
-
this.state$ = new BehaviorSubject(this.initialState);
|
|
9
|
-
this.update$ = new Subject();
|
|
10
|
-
this.sliceState = (selector, compareFn = compare) => this.state$.pipe(map(selector), distinctUntilChanged(compareFn));
|
|
11
|
-
this.sliceUpdate = (selector, filterFn = (x) => x !== undefined) => this.update$.pipe(map(selector), filter(filterFn));
|
|
12
|
-
}
|
|
13
|
-
get state() {
|
|
14
|
-
return this.state$.value;
|
|
15
|
-
}
|
|
16
|
-
patch(state) {
|
|
17
|
-
let patchedState = state;
|
|
18
|
-
if (typeof state === 'object' && !Array.isArray(state)) {
|
|
19
|
-
patchedState = Object.assign(Object.assign({}, this.state), state);
|
|
20
|
-
}
|
|
21
|
-
this.state$.next(patchedState);
|
|
22
|
-
this.update$.next(patchedState);
|
|
23
|
-
}
|
|
24
|
-
deepPatch(state) {
|
|
25
|
-
this.state$.next(deepMerge(this.state, state));
|
|
26
|
-
this.update$.next(state);
|
|
27
|
-
}
|
|
28
|
-
set(state) {
|
|
29
|
-
this.state$.next(state);
|
|
30
|
-
this.update$.next(state);
|
|
31
|
-
}
|
|
32
|
-
reset() {
|
|
33
|
-
this.set(this.initialState);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import compare from 'just-compare';
|
|
2
|
+
import { BehaviorSubject, Subject } from 'rxjs';
|
|
3
|
+
import { distinctUntilChanged, filter, map } from 'rxjs/operators';
|
|
4
|
+
import { deepMerge } from './object-utils';
|
|
5
|
+
export class InternalStore {
|
|
6
|
+
constructor(initialState) {
|
|
7
|
+
this.initialState = initialState;
|
|
8
|
+
this.state$ = new BehaviorSubject(this.initialState);
|
|
9
|
+
this.update$ = new Subject();
|
|
10
|
+
this.sliceState = (selector, compareFn = compare) => this.state$.pipe(map(selector), distinctUntilChanged(compareFn));
|
|
11
|
+
this.sliceUpdate = (selector, filterFn = (x) => x !== undefined) => this.update$.pipe(map(selector), filter(filterFn));
|
|
12
|
+
}
|
|
13
|
+
get state() {
|
|
14
|
+
return this.state$.value;
|
|
15
|
+
}
|
|
16
|
+
patch(state) {
|
|
17
|
+
let patchedState = state;
|
|
18
|
+
if (typeof state === 'object' && !Array.isArray(state)) {
|
|
19
|
+
patchedState = Object.assign(Object.assign({}, this.state), state);
|
|
20
|
+
}
|
|
21
|
+
this.state$.next(patchedState);
|
|
22
|
+
this.update$.next(patchedState);
|
|
23
|
+
}
|
|
24
|
+
deepPatch(state) {
|
|
25
|
+
this.state$.next(deepMerge(this.state, state));
|
|
26
|
+
this.update$.next(state);
|
|
27
|
+
}
|
|
28
|
+
set(state) {
|
|
29
|
+
this.state$.next(state);
|
|
30
|
+
this.update$.next(state);
|
|
31
|
+
}
|
|
32
|
+
reset() {
|
|
33
|
+
this.set(this.initialState);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtc3RvcmUtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdXRpbHMvaW50ZXJuYWwtc3RvcmUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sT0FBTyxhQUFhO0lBbUJ4QixZQUFvQixZQUFtQjtRQUFuQixpQkFBWSxHQUFaLFlBQVksQ0FBTztRQWxCL0IsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFRLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV2RCxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQXNCLENBQUM7UUFNcEQsZUFBVSxHQUFHLENBQ1gsUUFBaUMsRUFDakMsWUFBK0MsT0FBTyxFQUN0RCxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFdEUsZ0JBQVcsR0FBRyxDQUNaLFFBQThDLEVBQzlDLFdBQVcsQ0FBQyxDQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLEVBQ3hDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFZCxDQUFDO0lBZDNDLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQWNELEtBQUssQ0FBQyxLQUFxQjtRQUN6QixJQUFJLFlBQVksR0FBRyxLQUFjLENBQUM7UUFFbEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RELFlBQVksbUNBQVEsSUFBSSxDQUFDLEtBQUssR0FBSyxLQUFLLENBQUUsQ0FBQztTQUM1QztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQWtDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQXlCO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxLQUFZO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBMkIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbXBhcmUgZnJvbSAnanVzdC1jb21wYXJlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRGVlcFBhcnRpYWwgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgZGVlcE1lcmdlIH0gZnJvbSAnLi9vYmplY3QtdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxTdG9yZTxTdGF0ZT4ge1xuICBwcml2YXRlIHN0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3RhdGU+KHRoaXMuaW5pdGlhbFN0YXRlKTtcblxuICBwcml2YXRlIHVwZGF0ZSQgPSBuZXcgU3ViamVjdDxEZWVwUGFydGlhbDxTdGF0ZT4+KCk7XG5cbiAgZ2V0IHN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlJC52YWx1ZTtcbiAgfVxuXG4gIHNsaWNlU3RhdGUgPSA8U2xpY2U+KFxuICAgIHNlbGVjdG9yOiAoc3RhdGU6IFN0YXRlKSA9PiBTbGljZSxcbiAgICBjb21wYXJlRm46IChzMTogU2xpY2UsIHMyOiBTbGljZSkgPT4gYm9vbGVhbiA9IGNvbXBhcmUsXG4gICkgPT4gdGhpcy5zdGF0ZSQucGlwZShtYXAoc2VsZWN0b3IpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZChjb21wYXJlRm4pKTtcblxuICBzbGljZVVwZGF0ZSA9IDxTbGljZT4oXG4gICAgc2VsZWN0b3I6IChzdGF0ZTogRGVlcFBhcnRpYWw8U3RhdGU+KSA9PiBTbGljZSxcbiAgICBmaWx0ZXJGbiA9ICh4OiBTbGljZSkgPT4geCAhPT0gdW5kZWZpbmVkLFxuICApID0+IHRoaXMudXBkYXRlJC5waXBlKG1hcChzZWxlY3RvciksIGZpbHRlcihmaWx0ZXJGbikpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5pdGlhbFN0YXRlOiBTdGF0ZSkge31cblxuICBwYXRjaChzdGF0ZTogUGFydGlhbDxTdGF0ZT4pIHtcbiAgICBsZXQgcGF0Y2hlZFN0YXRlID0gc3RhdGUgYXMgU3RhdGU7XG5cbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShzdGF0ZSkpIHtcbiAgICAgIHBhdGNoZWRTdGF0ZSA9IHsgLi4udGhpcy5zdGF0ZSwgLi4uc3RhdGUgfTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlJC5uZXh0KHBhdGNoZWRTdGF0ZSk7XG4gICAgdGhpcy51cGRhdGUkLm5leHQocGF0Y2hlZFN0YXRlIGFzIERlZXBQYXJ0aWFsPFN0YXRlPik7XG4gIH1cblxuICBkZWVwUGF0Y2goc3RhdGU6IERlZXBQYXJ0aWFsPFN0YXRlPikge1xuICAgIHRoaXMuc3RhdGUkLm5leHQoZGVlcE1lcmdlKHRoaXMuc3RhdGUsIHN0YXRlKSk7XG4gICAgdGhpcy51cGRhdGUkLm5leHQoc3RhdGUpO1xuICB9XG5cbiAgc2V0KHN0YXRlOiBTdGF0ZSkge1xuICAgIHRoaXMuc3RhdGUkLm5leHQoc3RhdGUpO1xuICAgIHRoaXMudXBkYXRlJC5uZXh0KHN0YXRlIGFzIERlZXBQYXJ0aWFsPFN0YXRlPik7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLnNldCh0aGlzLmluaXRpYWxTdGF0ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import { CROSS_ORIGIN_STRATEGY } from '../strategies/cross-origin.strategy';
|
|
3
|
-
import { DOM_STRATEGY } from '../strategies/dom.strategy';
|
|
4
|
-
export function fromLazyLoad(element, domStrategy = DOM_STRATEGY.AppendToHead(), crossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous()) {
|
|
5
|
-
crossOriginStrategy.setCrossOrigin(element);
|
|
6
|
-
domStrategy.insertElement(element);
|
|
7
|
-
return new Observable((observer) => {
|
|
8
|
-
element.onload = (event) => {
|
|
9
|
-
clearCallbacks(element);
|
|
10
|
-
observer.next(event);
|
|
11
|
-
observer.complete();
|
|
12
|
-
};
|
|
13
|
-
const handleError = createErrorHandler(observer, element);
|
|
14
|
-
element.onerror = handleError;
|
|
15
|
-
element.onabort = handleError;
|
|
16
|
-
element.onemptied = handleError;
|
|
17
|
-
element.onstalled = handleError;
|
|
18
|
-
element.onsuspend = handleError;
|
|
19
|
-
return () => {
|
|
20
|
-
clearCallbacks(element);
|
|
21
|
-
observer.complete();
|
|
22
|
-
};
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
function createErrorHandler(observer, element) {
|
|
26
|
-
return function (event) {
|
|
27
|
-
clearCallbacks(element);
|
|
28
|
-
element.parentNode.removeChild(element);
|
|
29
|
-
observer.error(event);
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
function clearCallbacks(element) {
|
|
33
|
-
element.onload = null;
|
|
34
|
-
element.onerror = null;
|
|
35
|
-
element.onabort = null;
|
|
36
|
-
element.onemptied = null;
|
|
37
|
-
element.onstalled = null;
|
|
38
|
-
element.onsuspend = null;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { CROSS_ORIGIN_STRATEGY } from '../strategies/cross-origin.strategy';
|
|
3
|
+
import { DOM_STRATEGY } from '../strategies/dom.strategy';
|
|
4
|
+
export function fromLazyLoad(element, domStrategy = DOM_STRATEGY.AppendToHead(), crossOriginStrategy = CROSS_ORIGIN_STRATEGY.Anonymous()) {
|
|
5
|
+
crossOriginStrategy.setCrossOrigin(element);
|
|
6
|
+
domStrategy.insertElement(element);
|
|
7
|
+
return new Observable((observer) => {
|
|
8
|
+
element.onload = (event) => {
|
|
9
|
+
clearCallbacks(element);
|
|
10
|
+
observer.next(event);
|
|
11
|
+
observer.complete();
|
|
12
|
+
};
|
|
13
|
+
const handleError = createErrorHandler(observer, element);
|
|
14
|
+
element.onerror = handleError;
|
|
15
|
+
element.onabort = handleError;
|
|
16
|
+
element.onemptied = handleError;
|
|
17
|
+
element.onstalled = handleError;
|
|
18
|
+
element.onsuspend = handleError;
|
|
19
|
+
return () => {
|
|
20
|
+
clearCallbacks(element);
|
|
21
|
+
observer.complete();
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function createErrorHandler(observer, element) {
|
|
26
|
+
return function (event) {
|
|
27
|
+
clearCallbacks(element);
|
|
28
|
+
element.parentNode.removeChild(element);
|
|
29
|
+
observer.error(event);
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function clearCallbacks(element) {
|
|
33
|
+
element.onload = null;
|
|
34
|
+
element.onerror = null;
|
|
35
|
+
element.onabort = null;
|
|
36
|
+
element.onemptied = null;
|
|
37
|
+
element.onstalled = null;
|
|
38
|
+
element.onsuspend = null;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2xhenktbG9hZC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRyxPQUFPLEVBQWUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdkUsTUFBTSxVQUFVLFlBQVksQ0FDMUIsT0FBNEMsRUFDNUMsY0FBMkIsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUN0RCxzQkFBMkMscUJBQXFCLENBQUMsU0FBUyxFQUFFO0lBRTVFLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRW5DLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFxQixFQUFFLEVBQUU7UUFDOUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQVEsRUFBRSxFQUFFO1lBQzVCLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFMUQsT0FBTyxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUM7UUFDOUIsT0FBTyxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUM7UUFDOUIsT0FBTyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFFaEMsT0FBTyxHQUFHLEVBQUU7WUFDVixjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsUUFBeUIsRUFBRSxPQUFvQjtJQUN6RSxPQUFPLFVBQVUsS0FBcUI7UUFDcEMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsY0FBYyxDQUFDLE9BQW9CO0lBQzFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ3Jvc3NPcmlnaW5TdHJhdGVneSwgQ1JPU1NfT1JJR0lOX1NUUkFURUdZIH0gZnJvbSAnLi4vc3RyYXRlZ2llcy9jcm9zcy1vcmlnaW4uc3RyYXRlZ3knO1xuaW1wb3J0IHsgRG9tU3RyYXRlZ3ksIERPTV9TVFJBVEVHWSB9IGZyb20gJy4uL3N0cmF0ZWdpZXMvZG9tLnN0cmF0ZWd5JztcblxuZXhwb3J0IGZ1bmN0aW9uIGZyb21MYXp5TG9hZDxUIGV4dGVuZHMgRXZlbnQ+KFxuICBlbGVtZW50OiBIVE1MU2NyaXB0RWxlbWVudCB8IEhUTUxMaW5rRWxlbWVudCxcbiAgZG9tU3RyYXRlZ3k6IERvbVN0cmF0ZWd5ID0gRE9NX1NUUkFURUdZLkFwcGVuZFRvSGVhZCgpLFxuICBjcm9zc09yaWdpblN0cmF0ZWd5OiBDcm9zc09yaWdpblN0cmF0ZWd5ID0gQ1JPU1NfT1JJR0lOX1NUUkFURUdZLkFub255bW91cygpLFxuKTogT2JzZXJ2YWJsZTxUPiB7XG4gIGNyb3NzT3JpZ2luU3RyYXRlZ3kuc2V0Q3Jvc3NPcmlnaW4oZWxlbWVudCk7XG4gIGRvbVN0cmF0ZWd5Lmluc2VydEVsZW1lbnQoZWxlbWVudCk7XG5cbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8VD4pID0+IHtcbiAgICBlbGVtZW50Lm9ubG9hZCA9IChldmVudDogVCkgPT4ge1xuICAgICAgY2xlYXJDYWxsYmFja3MoZWxlbWVudCk7XG4gICAgICBvYnNlcnZlci5uZXh0KGV2ZW50KTtcbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUVycm9yID0gY3JlYXRlRXJyb3JIYW5kbGVyKG9ic2VydmVyLCBlbGVtZW50KTtcblxuICAgIGVsZW1lbnQub25lcnJvciA9IGhhbmRsZUVycm9yO1xuICAgIGVsZW1lbnQub25hYm9ydCA9IGhhbmRsZUVycm9yO1xuICAgIGVsZW1lbnQub25lbXB0aWVkID0gaGFuZGxlRXJyb3I7XG4gICAgZWxlbWVudC5vbnN0YWxsZWQgPSBoYW5kbGVFcnJvcjtcbiAgICBlbGVtZW50Lm9uc3VzcGVuZCA9IGhhbmRsZUVycm9yO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNsZWFyQ2FsbGJhY2tzKGVsZW1lbnQpO1xuICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICB9O1xuICB9KTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlRXJyb3JIYW5kbGVyKG9ic2VydmVyOiBPYnNlcnZlcjxFdmVudD4sIGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoZXZlbnQ6IEV2ZW50IHwgc3RyaW5nKSB7XG4gICAgY2xlYXJDYWxsYmFja3MoZWxlbWVudCk7XG4gICAgZWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW1lbnQpO1xuICAgIG9ic2VydmVyLmVycm9yKGV2ZW50KTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2xlYXJDYWxsYmFja3MoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgZWxlbWVudC5vbmxvYWQgPSBudWxsO1xuICBlbGVtZW50Lm9uZXJyb3IgPSBudWxsO1xuICBlbGVtZW50Lm9uYWJvcnQgPSBudWxsO1xuICBlbGVtZW50Lm9uZW1wdGllZCA9IG51bGw7XG4gIGVsZW1lbnQub25zdGFsbGVkID0gbnVsbDtcbiAgZWxlbWVudC5vbnN1c3BlbmQgPSBudWxsO1xufVxuIl19
|
|
@@ -1,50 +1,50 @@
|
|
|
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
|
-
var _a;
|
|
10
|
-
if (resourceName === '_')
|
|
11
|
-
return key;
|
|
12
|
-
const resource = (_a = localization === null || localization === void 0 ? void 0 : localization.values) === null || _a === void 0 ? void 0 : _a[resourceName];
|
|
13
|
-
if (!resource)
|
|
14
|
-
return defaultValue;
|
|
15
|
-
return resource[key] || defaultValue;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
export function createLocalizerWithFallback(localization) {
|
|
19
|
-
const findLocalization = createLocalizationFinder(localization);
|
|
20
|
-
return (resourceNames, keys, defaultValue) => {
|
|
21
|
-
const { localized } = findLocalization(resourceNames, keys);
|
|
22
|
-
return localized || defaultValue;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
export function createLocalizationPipeKeyGenerator(localization) {
|
|
26
|
-
const findLocalization = createLocalizationFinder(localization);
|
|
27
|
-
return (resourceNames, keys, defaultKey) => {
|
|
28
|
-
const { resourceName, key } = findLocalization(resourceNames, keys);
|
|
29
|
-
return !resourceName ? defaultKey : resourceName === '_' ? key : `${resourceName}::${key}`;
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
function createLocalizationFinder(localization) {
|
|
33
|
-
const localize = createLocalizer(localization);
|
|
34
|
-
return (resourceNames, keys) => {
|
|
35
|
-
resourceNames = resourceNames.concat(localization.defaultResourceName || '').filter(Boolean);
|
|
36
|
-
const resourceCount = resourceNames.length;
|
|
37
|
-
const keyCount = keys.length;
|
|
38
|
-
for (let i = 0; i < resourceCount; i++) {
|
|
39
|
-
const resourceName = resourceNames[i];
|
|
40
|
-
for (let j = 0; j < keyCount; j++) {
|
|
41
|
-
const key = keys[j];
|
|
42
|
-
const localized = localize(resourceName, key, null);
|
|
43
|
-
if (localized)
|
|
44
|
-
return { resourceName, key, localized };
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return { resourceName: undefined, key: undefined, localized: undefined };
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
+
var _a;
|
|
10
|
+
if (resourceName === '_')
|
|
11
|
+
return key;
|
|
12
|
+
const resource = (_a = localization === null || localization === void 0 ? void 0 : localization.values) === null || _a === void 0 ? void 0 : _a[resourceName];
|
|
13
|
+
if (!resource)
|
|
14
|
+
return defaultValue;
|
|
15
|
+
return resource[key] || defaultValue;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function createLocalizerWithFallback(localization) {
|
|
19
|
+
const findLocalization = createLocalizationFinder(localization);
|
|
20
|
+
return (resourceNames, keys, defaultValue) => {
|
|
21
|
+
const { localized } = findLocalization(resourceNames, keys);
|
|
22
|
+
return localized || defaultValue;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function createLocalizationPipeKeyGenerator(localization) {
|
|
26
|
+
const findLocalization = createLocalizationFinder(localization);
|
|
27
|
+
return (resourceNames, keys, defaultKey) => {
|
|
28
|
+
const { resourceName, key } = findLocalization(resourceNames, keys);
|
|
29
|
+
return !resourceName ? defaultKey : resourceName === '_' ? key : `${resourceName}::${key}`;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function createLocalizationFinder(localization) {
|
|
33
|
+
const localize = createLocalizer(localization);
|
|
34
|
+
return (resourceNames, keys) => {
|
|
35
|
+
resourceNames = resourceNames.concat(localization.defaultResourceName || '').filter(Boolean);
|
|
36
|
+
const resourceCount = resourceNames.length;
|
|
37
|
+
const keyCount = keys.length;
|
|
38
|
+
for (let i = 0; i < resourceCount; i++) {
|
|
39
|
+
const resourceName = resourceNames[i];
|
|
40
|
+
for (let j = 0; j < keyCount; j++) {
|
|
41
|
+
const key = keys[j];
|
|
42
|
+
const localized = localize(resourceName, key, null);
|
|
43
|
+
if (localized)
|
|
44
|
+
return { resourceName, key, localized };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return { resourceName: undefined, key: undefined, localized: undefined };
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2xvY2FsaXphdGlvbi11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxpRUFBaUU7QUFDakUsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQWM7SUFDL0MsT0FBTyxzR0FBc0csQ0FBQyxJQUFJLENBQ2hILE1BQU0sQ0FDUDtRQUNDLENBQUMsQ0FBQyxLQUFLO1FBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFlBQXFEO0lBQ25GLE9BQU8sQ0FBQyxZQUFvQixFQUFFLEdBQVcsRUFBRSxZQUFvQixFQUFFLEVBQUU7O1FBQ2pFLElBQUksWUFBWSxLQUFLLEdBQUc7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUVyQyxNQUFNLFFBQVEsR0FBRyxNQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxNQUFNLDBDQUFHLFlBQVksQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxZQUFZLENBQUM7UUFFbkMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksWUFBWSxDQUFDO0lBQ3ZDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsWUFBcUQ7SUFDL0YsTUFBTSxnQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUVoRSxPQUFPLENBQUMsYUFBdUIsRUFBRSxJQUFjLEVBQUUsWUFBb0IsRUFBRSxFQUFFO1FBQ3ZFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUQsT0FBTyxTQUFTLElBQUksWUFBWSxDQUFDO0lBQ25DLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsa0NBQWtDLENBQ2hELFlBQXFEO0lBRXJELE1BQU0sZ0JBQWdCLEdBQUcsd0JBQXdCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFaEUsT0FBTyxDQUFDLGFBQXVCLEVBQUUsSUFBYyxFQUFFLFVBQThCLEVBQUUsRUFBRTtRQUNqRixNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxHQUFHLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDN0YsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsWUFBcUQ7SUFDckYsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRS9DLE9BQU8sQ0FBQyxhQUF1QixFQUFFLElBQWMsRUFBRSxFQUFFO1FBQ2pELGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFN0YsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUMzQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRTdCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXRDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3BELElBQUksU0FBUztvQkFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQzthQUN4RDtTQUNGO1FBRUQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDM0UsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byB9IGZyb20gJy4uL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbnMvbW9kZWxzJztcblxuLy8gVGhpcyB3aWxsIG5vdCBiZSBuZWNlc3Nhcnkgd2hlbiBvbmx5IEFuZ3VrYXIgOS4xKyBpcyBzdXBwb3J0ZWRcbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVEaXJlY3Rpb24obG9jYWxlOiBzdHJpbmcpOiAnbHRyJyB8ICdydGwnIHtcbiAgcmV0dXJuIC9eKGFyKC1bQS1aXXsyfSk/fGNrYigtSVIpP3xmYSgtQUYpP3xoZXxrc3xscmMoLUlRKT98bXpufHBhLUFyYWJ8cHMoLVBLKT98c2R8dWd8dXIoLUlOKT98dXotQXJhYnx5aSkkLy50ZXN0KFxuICAgIGxvY2FsZSxcbiAgKVxuICAgID8gJ3J0bCdcbiAgICA6ICdsdHInO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTG9jYWxpemVyKGxvY2FsaXphdGlvbjogQXBwbGljYXRpb25Mb2NhbGl6YXRpb25Db25maWd1cmF0aW9uRHRvKSB7XG4gIHJldHVybiAocmVzb3VyY2VOYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IHN0cmluZykgPT4ge1xuICAgIGlmIChyZXNvdXJjZU5hbWUgPT09ICdfJykgcmV0dXJuIGtleTtcblxuICAgIGNvbnN0IHJlc291cmNlID0gbG9jYWxpemF0aW9uPy52YWx1ZXM/LltyZXNvdXJjZU5hbWVdO1xuXG4gICAgaWYgKCFyZXNvdXJjZSkgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcblxuICAgIHJldHVybiByZXNvdXJjZVtrZXldIHx8IGRlZmF1bHRWYWx1ZTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUxvY2FsaXplcldpdGhGYWxsYmFjayhsb2NhbGl6YXRpb246IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0bykge1xuICBjb25zdCBmaW5kTG9jYWxpemF0aW9uID0gY3JlYXRlTG9jYWxpemF0aW9uRmluZGVyKGxvY2FsaXphdGlvbik7XG5cbiAgcmV0dXJuIChyZXNvdXJjZU5hbWVzOiBzdHJpbmdbXSwga2V5czogc3RyaW5nW10sIGRlZmF1bHRWYWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgeyBsb2NhbGl6ZWQgfSA9IGZpbmRMb2NhbGl6YXRpb24ocmVzb3VyY2VOYW1lcywga2V5cyk7XG4gICAgcmV0dXJuIGxvY2FsaXplZCB8fCBkZWZhdWx0VmFsdWU7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb2NhbGl6YXRpb25QaXBlS2V5R2VuZXJhdG9yKFxuICBsb2NhbGl6YXRpb246IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byxcbikge1xuICBjb25zdCBmaW5kTG9jYWxpemF0aW9uID0gY3JlYXRlTG9jYWxpemF0aW9uRmluZGVyKGxvY2FsaXphdGlvbik7XG5cbiAgcmV0dXJuIChyZXNvdXJjZU5hbWVzOiBzdHJpbmdbXSwga2V5czogc3RyaW5nW10sIGRlZmF1bHRLZXk6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuICAgIGNvbnN0IHsgcmVzb3VyY2VOYW1lLCBrZXkgfSA9IGZpbmRMb2NhbGl6YXRpb24ocmVzb3VyY2VOYW1lcywga2V5cyk7XG4gICAgcmV0dXJuICFyZXNvdXJjZU5hbWUgPyBkZWZhdWx0S2V5IDogcmVzb3VyY2VOYW1lID09PSAnXycgPyBrZXkgOiBgJHtyZXNvdXJjZU5hbWV9Ojoke2tleX1gO1xuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVMb2NhbGl6YXRpb25GaW5kZXIobG9jYWxpemF0aW9uOiBBcHBsaWNhdGlvbkxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb25EdG8pIHtcbiAgY29uc3QgbG9jYWxpemUgPSBjcmVhdGVMb2NhbGl6ZXIobG9jYWxpemF0aW9uKTtcblxuICByZXR1cm4gKHJlc291cmNlTmFtZXM6IHN0cmluZ1tdLCBrZXlzOiBzdHJpbmdbXSkgPT4ge1xuICAgIHJlc291cmNlTmFtZXMgPSByZXNvdXJjZU5hbWVzLmNvbmNhdChsb2NhbGl6YXRpb24uZGVmYXVsdFJlc291cmNlTmFtZSB8fCAnJykuZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgY29uc3QgcmVzb3VyY2VDb3VudCA9IHJlc291cmNlTmFtZXMubGVuZ3RoO1xuICAgIGNvbnN0IGtleUNvdW50ID0ga2V5cy5sZW5ndGg7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc291cmNlQ291bnQ7IGkrKykge1xuICAgICAgY29uc3QgcmVzb3VyY2VOYW1lID0gcmVzb3VyY2VOYW1lc1tpXTtcblxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBrZXlDb3VudDsgaisrKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGtleXNbal07XG4gICAgICAgIGNvbnN0IGxvY2FsaXplZCA9IGxvY2FsaXplKHJlc291cmNlTmFtZSwga2V5LCBudWxsKTtcbiAgICAgICAgaWYgKGxvY2FsaXplZCkgcmV0dXJuIHsgcmVzb3VyY2VOYW1lLCBrZXksIGxvY2FsaXplZCB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IHJlc291cmNlTmFtZTogdW5kZWZpbmVkLCBrZXk6IHVuZGVmaW5lZCwgbG9jYWxpemVkOiB1bmRlZmluZWQgfTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import clone from 'just-clone';
|
|
3
|
-
import { tap } from 'rxjs/operators';
|
|
4
|
-
import { EnvironmentService } from '../services/environment.service';
|
|
5
|
-
import { MultiTenancyService } from '../services/multi-tenancy.service';
|
|
6
|
-
import { createTokenParser } from './string-utils';
|
|
7
|
-
const tenancyPlaceholder = '{0}';
|
|
8
|
-
function getCurrentTenancyName(appBaseUrl) {
|
|
9
|
-
var _a;
|
|
10
|
-
if (appBaseUrl.charAt(appBaseUrl.length - 1) !== '/')
|
|
11
|
-
appBaseUrl += '/';
|
|
12
|
-
const parseTokens = createTokenParser(appBaseUrl);
|
|
13
|
-
const token = tenancyPlaceholder.replace(/[}{]/g, '');
|
|
14
|
-
return (_a = parseTokens(window.location.href)[token]) === null || _a === void 0 ? void 0 : _a[0];
|
|
15
|
-
}
|
|
16
|
-
function getCurrentTenancyNameFromUrl(tenantKey) {
|
|
17
|
-
const urlParams = new URLSearchParams(window.location.search);
|
|
18
|
-
return urlParams.get(tenantKey);
|
|
19
|
-
}
|
|
20
|
-
export function parseTenantFromUrl(injector) {
|
|
21
|
-
var _a, _b;
|
|
22
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const environmentService = injector.get(EnvironmentService);
|
|
24
|
-
const multiTenancyService = injector.get(MultiTenancyService);
|
|
25
|
-
const baseUrl = ((_b = (_a = environmentService.getEnvironment()) === null || _a === void 0 ? void 0 : _a.application) === null || _b === void 0 ? void 0 : _b.baseUrl) || '';
|
|
26
|
-
const tenancyName = getCurrentTenancyName(baseUrl);
|
|
27
|
-
const hideTenantBox = () => {
|
|
28
|
-
multiTenancyService.isTenantBoxVisible = false;
|
|
29
|
-
};
|
|
30
|
-
const setDomainTenant = (tenant) => {
|
|
31
|
-
multiTenancyService.domainTenant = {
|
|
32
|
-
id: tenant.tenantId,
|
|
33
|
-
name: tenant.name,
|
|
34
|
-
isAvailable: true,
|
|
35
|
-
};
|
|
36
|
-
};
|
|
37
|
-
const setEnvironmentWithDomainTenant = (tenant) => {
|
|
38
|
-
hideTenantBox();
|
|
39
|
-
setDomainTenant(tenant);
|
|
40
|
-
};
|
|
41
|
-
if (tenancyName) {
|
|
42
|
-
/**
|
|
43
|
-
* We have to replace tenant name within the urls from environment,
|
|
44
|
-
* because the code below will make a http request to find information about the domain tenant.
|
|
45
|
-
* Before this request takes place, we need to replace placeholders aka "{0}".
|
|
46
|
-
*/
|
|
47
|
-
replaceTenantNameWithinEnvironment(injector, tenancyName);
|
|
48
|
-
return multiTenancyService
|
|
49
|
-
.setTenantByName(tenancyName)
|
|
50
|
-
.pipe(tap(setEnvironmentWithDomainTenant))
|
|
51
|
-
.toPromise();
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
/**
|
|
55
|
-
* If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.
|
|
56
|
-
*/
|
|
57
|
-
replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');
|
|
58
|
-
const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(multiTenancyService.tenantKey);
|
|
59
|
-
if (tenantIdFromQueryParams) {
|
|
60
|
-
return multiTenancyService.setTenantById(tenantIdFromQueryParams).toPromise();
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return Promise.resolve();
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
function replaceTenantNameWithinEnvironment(injector, tenancyName, placeholder = tenancyPlaceholder) {
|
|
67
|
-
const environmentService = injector.get(EnvironmentService);
|
|
68
|
-
const environment = clone(environmentService.getEnvironment());
|
|
69
|
-
if (environment.application.baseUrl) {
|
|
70
|
-
environment.application.baseUrl = environment.application.baseUrl.replace(placeholder, tenancyName);
|
|
71
|
-
}
|
|
72
|
-
if (environment.oAuthConfig.redirectUri) {
|
|
73
|
-
environment.oAuthConfig.redirectUri = environment.oAuthConfig.redirectUri.replace(placeholder, tenancyName);
|
|
74
|
-
}
|
|
75
|
-
environment.oAuthConfig.issuer = environment.oAuthConfig.issuer.replace(placeholder, tenancyName);
|
|
76
|
-
Object.keys(environment.apis).forEach(api => {
|
|
77
|
-
Object.keys(environment.apis[api]).forEach(key => {
|
|
78
|
-
environment.apis[api][key] = environment.apis[api][key].replace(placeholder, tenancyName);
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
return environmentService.setState(environment);
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import clone from 'just-clone';
|
|
3
|
+
import { tap } from 'rxjs/operators';
|
|
4
|
+
import { EnvironmentService } from '../services/environment.service';
|
|
5
|
+
import { MultiTenancyService } from '../services/multi-tenancy.service';
|
|
6
|
+
import { createTokenParser } from './string-utils';
|
|
7
|
+
const tenancyPlaceholder = '{0}';
|
|
8
|
+
function getCurrentTenancyName(appBaseUrl) {
|
|
9
|
+
var _a;
|
|
10
|
+
if (appBaseUrl.charAt(appBaseUrl.length - 1) !== '/')
|
|
11
|
+
appBaseUrl += '/';
|
|
12
|
+
const parseTokens = createTokenParser(appBaseUrl);
|
|
13
|
+
const token = tenancyPlaceholder.replace(/[}{]/g, '');
|
|
14
|
+
return (_a = parseTokens(window.location.href)[token]) === null || _a === void 0 ? void 0 : _a[0];
|
|
15
|
+
}
|
|
16
|
+
function getCurrentTenancyNameFromUrl(tenantKey) {
|
|
17
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
18
|
+
return urlParams.get(tenantKey);
|
|
19
|
+
}
|
|
20
|
+
export function parseTenantFromUrl(injector) {
|
|
21
|
+
var _a, _b;
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const environmentService = injector.get(EnvironmentService);
|
|
24
|
+
const multiTenancyService = injector.get(MultiTenancyService);
|
|
25
|
+
const baseUrl = ((_b = (_a = environmentService.getEnvironment()) === null || _a === void 0 ? void 0 : _a.application) === null || _b === void 0 ? void 0 : _b.baseUrl) || '';
|
|
26
|
+
const tenancyName = getCurrentTenancyName(baseUrl);
|
|
27
|
+
const hideTenantBox = () => {
|
|
28
|
+
multiTenancyService.isTenantBoxVisible = false;
|
|
29
|
+
};
|
|
30
|
+
const setDomainTenant = (tenant) => {
|
|
31
|
+
multiTenancyService.domainTenant = {
|
|
32
|
+
id: tenant.tenantId,
|
|
33
|
+
name: tenant.name,
|
|
34
|
+
isAvailable: true,
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
const setEnvironmentWithDomainTenant = (tenant) => {
|
|
38
|
+
hideTenantBox();
|
|
39
|
+
setDomainTenant(tenant);
|
|
40
|
+
};
|
|
41
|
+
if (tenancyName) {
|
|
42
|
+
/**
|
|
43
|
+
* We have to replace tenant name within the urls from environment,
|
|
44
|
+
* because the code below will make a http request to find information about the domain tenant.
|
|
45
|
+
* Before this request takes place, we need to replace placeholders aka "{0}".
|
|
46
|
+
*/
|
|
47
|
+
replaceTenantNameWithinEnvironment(injector, tenancyName);
|
|
48
|
+
return multiTenancyService
|
|
49
|
+
.setTenantByName(tenancyName)
|
|
50
|
+
.pipe(tap(setEnvironmentWithDomainTenant))
|
|
51
|
+
.toPromise();
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
/**
|
|
55
|
+
* If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.
|
|
56
|
+
*/
|
|
57
|
+
replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');
|
|
58
|
+
const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(multiTenancyService.tenantKey);
|
|
59
|
+
if (tenantIdFromQueryParams) {
|
|
60
|
+
return multiTenancyService.setTenantById(tenantIdFromQueryParams).toPromise();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return Promise.resolve();
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
function replaceTenantNameWithinEnvironment(injector, tenancyName, placeholder = tenancyPlaceholder) {
|
|
67
|
+
const environmentService = injector.get(EnvironmentService);
|
|
68
|
+
const environment = clone(environmentService.getEnvironment());
|
|
69
|
+
if (environment.application.baseUrl) {
|
|
70
|
+
environment.application.baseUrl = environment.application.baseUrl.replace(placeholder, tenancyName);
|
|
71
|
+
}
|
|
72
|
+
if (environment.oAuthConfig.redirectUri) {
|
|
73
|
+
environment.oAuthConfig.redirectUri = environment.oAuthConfig.redirectUri.replace(placeholder, tenancyName);
|
|
74
|
+
}
|
|
75
|
+
environment.oAuthConfig.issuer = environment.oAuthConfig.issuer.replace(placeholder, tenancyName);
|
|
76
|
+
Object.keys(environment.apis).forEach(api => {
|
|
77
|
+
Object.keys(environment.apis[api]).forEach(key => {
|
|
78
|
+
environment.apis[api][key] = environment.apis[api][key].replace(placeholder, tenancyName);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
return environmentService.setState(environment);
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktdGVuYW5jeS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9tdWx0aS10ZW5hbmN5LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFFL0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRW5ELE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0FBRWpDLFNBQVMscUJBQXFCLENBQUMsVUFBa0I7O0lBQy9DLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUc7UUFBRSxVQUFVLElBQUksR0FBRyxDQUFDO0lBRXhFLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sS0FBSyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEQsT0FBTyxNQUFBLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQywwQ0FBRyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsU0FBUyw0QkFBNEIsQ0FBQyxTQUFpQjtJQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlELE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQsTUFBTSxVQUFnQixrQkFBa0IsQ0FBQyxRQUFrQjs7O1FBQ3pELE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzVELE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTlELE1BQU0sT0FBTyxHQUFHLENBQUEsTUFBQSxNQUFBLGtCQUFrQixDQUFDLGNBQWMsRUFBRSwwQ0FBRSxXQUFXLDBDQUFFLE9BQU8sS0FBSSxFQUFFLENBQUM7UUFDaEYsTUFBTSxXQUFXLEdBQUcscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkQsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFO1lBQ3pCLG1CQUFtQixDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNqRCxDQUFDLENBQUM7UUFFRixNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQTJCLEVBQUUsRUFBRTtZQUN0RCxtQkFBbUIsQ0FBQyxZQUFZLEdBQUc7Z0JBQ2pDLEVBQUUsRUFBRSxNQUFNLENBQUMsUUFBUTtnQkFDbkIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO2dCQUNqQixXQUFXLEVBQUUsSUFBSTthQUNsQixDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBRUYsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLE1BQTJCLEVBQUUsRUFBRTtZQUNyRSxhQUFhLEVBQUUsQ0FBQztZQUNoQixlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDO1FBRUYsSUFBSSxXQUFXLEVBQUU7WUFDZjs7OztlQUlHO1lBQ0gsa0NBQWtDLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzFELE9BQU8sbUJBQW1CO2lCQUN2QixlQUFlLENBQUMsV0FBVyxDQUFDO2lCQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7aUJBQ3pDLFNBQVMsRUFBRSxDQUFDO1NBQ2hCO2FBQU07WUFDTDs7ZUFFRztZQUNILGtDQUFrQyxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFFM0UsTUFBTSx1QkFBdUIsR0FBRyw0QkFBNEIsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1RixJQUFJLHVCQUF1QixFQUFFO2dCQUMzQixPQUFPLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQy9FO1NBQ0Y7UUFFRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQzs7Q0FDMUI7QUFFRCxTQUFTLGtDQUFrQyxDQUN6QyxRQUFrQixFQUNsQixXQUFtQixFQUNuQixXQUFXLEdBQUcsa0JBQWtCO0lBRWhDLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRTVELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsQ0FBZ0IsQ0FBQztJQUU5RSxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFO1FBQ25DLFdBQVcsQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDdkUsV0FBVyxFQUNYLFdBQVcsQ0FDWixDQUFDO0tBQ0g7SUFFRCxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO1FBQ3ZDLFdBQVcsQ0FBQyxXQUFXLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FDL0UsV0FBVyxFQUNYLFdBQVcsQ0FDWixDQUFDO0tBQ0g7SUFFRCxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRWxHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0MsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDNUYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sa0JBQWtCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnO1xuXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL21vZGVscy9lbnZpcm9ubWVudCc7XG5cbmltcG9ydCB7IEZpbmRUZW5hbnRSZXN1bHREdG8gfSBmcm9tICcuLi9wcm94eS92b2xvL2FicC9hc3AtbmV0LWNvcmUvbXZjL211bHRpLXRlbmFuY3kvbW9kZWxzJztcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgTXVsdGlUZW5hbmN5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL211bHRpLXRlbmFuY3kuc2VydmljZSc7XG5pbXBvcnQgeyBjcmVhdGVUb2tlblBhcnNlciB9IGZyb20gJy4vc3RyaW5nLXV0aWxzJztcblxuY29uc3QgdGVuYW5jeVBsYWNlaG9sZGVyID0gJ3swfSc7XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRUZW5hbmN5TmFtZShhcHBCYXNlVXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoYXBwQmFzZVVybC5jaGFyQXQoYXBwQmFzZVVybC5sZW5ndGggLSAxKSAhPT0gJy8nKSBhcHBCYXNlVXJsICs9ICcvJztcblxuICBjb25zdCBwYXJzZVRva2VucyA9IGNyZWF0ZVRva2VuUGFyc2VyKGFwcEJhc2VVcmwpO1xuICBjb25zdCB0b2tlbiA9IHRlbmFuY3lQbGFjZWhvbGRlci5yZXBsYWNlKC9bfXtdL2csICcnKTtcbiAgcmV0dXJuIHBhcnNlVG9rZW5zKHdpbmRvdy5sb2NhdGlvbi5ocmVmKVt0b2tlbl0/LlswXTtcbn1cblxuZnVuY3Rpb24gZ2V0Q3VycmVudFRlbmFuY3lOYW1lRnJvbVVybCh0ZW5hbnRLZXk6IHN0cmluZykge1xuICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICByZXR1cm4gdXJsUGFyYW1zLmdldCh0ZW5hbnRLZXkpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VUZW5hbnRGcm9tVXJsKGluamVjdG9yOiBJbmplY3Rvcikge1xuICBjb25zdCBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRTZXJ2aWNlKTtcbiAgY29uc3QgbXVsdGlUZW5hbmN5U2VydmljZSA9IGluamVjdG9yLmdldChNdWx0aVRlbmFuY3lTZXJ2aWNlKTtcblxuICBjb25zdCBiYXNlVXJsID0gZW52aXJvbm1lbnRTZXJ2aWNlLmdldEVudmlyb25tZW50KCk/LmFwcGxpY2F0aW9uPy5iYXNlVXJsIHx8ICcnO1xuICBjb25zdCB0ZW5hbmN5TmFtZSA9IGdldEN1cnJlbnRUZW5hbmN5TmFtZShiYXNlVXJsKTtcblxuICBjb25zdCBoaWRlVGVuYW50Qm94ID0gKCkgPT4ge1xuICAgIG11bHRpVGVuYW5jeVNlcnZpY2UuaXNUZW5hbnRCb3hWaXNpYmxlID0gZmFsc2U7XG4gIH07XG5cbiAgY29uc3Qgc2V0RG9tYWluVGVuYW50ID0gKHRlbmFudDogRmluZFRlbmFudFJlc3VsdER0bykgPT4ge1xuICAgIG11bHRpVGVuYW5jeVNlcnZpY2UuZG9tYWluVGVuYW50ID0ge1xuICAgICAgaWQ6IHRlbmFudC50ZW5hbnRJZCxcbiAgICAgIG5hbWU6IHRlbmFudC5uYW1lLFxuICAgICAgaXNBdmFpbGFibGU6IHRydWUsXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCBzZXRFbnZpcm9ubWVudFdpdGhEb21haW5UZW5hbnQgPSAodGVuYW50OiBGaW5kVGVuYW50UmVzdWx0RHRvKSA9PiB7XG4gICAgaGlkZVRlbmFudEJveCgpO1xuICAgIHNldERvbWFpblRlbmFudCh0ZW5hbnQpO1xuICB9O1xuXG4gIGlmICh0ZW5hbmN5TmFtZSkge1xuICAgIC8qKlxuICAgICAqIFdlIGhhdmUgdG8gcmVwbGFjZSB0ZW5hbnQgbmFtZSB3aXRoaW4gdGhlIHVybHMgZnJvbSBlbnZpcm9ubWVudCxcbiAgICAgKiBiZWNhdXNlIHRoZSBjb2RlIGJlbG93IHdpbGwgbWFrZSBhIGh0dHAgcmVxdWVzdCB0byBmaW5kIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkb21haW4gdGVuYW50LlxuICAgICAqIEJlZm9yZSB0aGlzIHJlcXVlc3QgdGFrZXMgcGxhY2UsIHdlIG5lZWQgdG8gcmVwbGFjZSBwbGFjZWhvbGRlcnMgYWthIFwiezB9XCIuXG4gICAgICovXG4gICAgcmVwbGFjZVRlbmFudE5hbWVXaXRoaW5FbnZpcm9ubWVudChpbmplY3RvciwgdGVuYW5jeU5hbWUpO1xuICAgIHJldHVybiBtdWx0aVRlbmFuY3lTZXJ2aWNlXG4gICAgICAuc2V0VGVuYW50QnlOYW1lKHRlbmFuY3lOYW1lKVxuICAgICAgLnBpcGUodGFwKHNldEVudmlyb25tZW50V2l0aERvbWFpblRlbmFudCkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH0gZWxzZSB7XG4gICAgLyoqXG4gICAgICogSWYgdGhlcmUgaXMgbm8gdGVuYW50LCB3ZSBzdGlsbCBoYXZlIHRvIGNsZWFuIHVwIHswfS4gZnJvbSBiYXNlVXJsIHRvIGF2b2lkIGluY29ycmVjdCBodHRwIHJlcXVlc3RzLlxuICAgICAqL1xuICAgIHJlcGxhY2VUZW5hbnROYW1lV2l0aGluRW52aXJvbm1lbnQoaW5qZWN0b3IsICcnLCB0ZW5hbmN5UGxhY2Vob2xkZXIgKyAnLicpO1xuXG4gICAgY29uc3QgdGVuYW50SWRGcm9tUXVlcnlQYXJhbXMgPSBnZXRDdXJyZW50VGVuYW5jeU5hbWVGcm9tVXJsKG11bHRpVGVuYW5jeVNlcnZpY2UudGVuYW50S2V5KTtcbiAgICBpZiAodGVuYW50SWRGcm9tUXVlcnlQYXJhbXMpIHtcbiAgICAgIHJldHVybiBtdWx0aVRlbmFuY3lTZXJ2aWNlLnNldFRlbmFudEJ5SWQodGVuYW50SWRGcm9tUXVlcnlQYXJhbXMpLnRvUHJvbWlzZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZVRlbmFudE5hbWVXaXRoaW5FbnZpcm9ubWVudChcbiAgaW5qZWN0b3I6IEluamVjdG9yLFxuICB0ZW5hbmN5TmFtZTogc3RyaW5nLFxuICBwbGFjZWhvbGRlciA9IHRlbmFuY3lQbGFjZWhvbGRlcixcbikge1xuICBjb25zdCBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRTZXJ2aWNlKTtcblxuICBjb25zdCBlbnZpcm9ubWVudCA9IGNsb25lKGVudmlyb25tZW50U2VydmljZS5nZXRFbnZpcm9ubWVudCgpKSBhcyBFbnZpcm9ubWVudDtcblxuICBpZiAoZW52aXJvbm1lbnQuYXBwbGljYXRpb24uYmFzZVVybCkge1xuICAgIGVudmlyb25tZW50LmFwcGxpY2F0aW9uLmJhc2VVcmwgPSBlbnZpcm9ubWVudC5hcHBsaWNhdGlvbi5iYXNlVXJsLnJlcGxhY2UoXG4gICAgICBwbGFjZWhvbGRlcixcbiAgICAgIHRlbmFuY3lOYW1lLFxuICAgICk7XG4gIH1cblxuICBpZiAoZW52aXJvbm1lbnQub0F1dGhDb25maWcucmVkaXJlY3RVcmkpIHtcbiAgICBlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5yZWRpcmVjdFVyaSA9IGVudmlyb25tZW50Lm9BdXRoQ29uZmlnLnJlZGlyZWN0VXJpLnJlcGxhY2UoXG4gICAgICBwbGFjZWhvbGRlcixcbiAgICAgIHRlbmFuY3lOYW1lLFxuICAgICk7XG4gIH1cblxuICBlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5pc3N1ZXIgPSBlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5pc3N1ZXIucmVwbGFjZShwbGFjZWhvbGRlciwgdGVuYW5jeU5hbWUpO1xuXG4gIE9iamVjdC5rZXlzKGVudmlyb25tZW50LmFwaXMpLmZvckVhY2goYXBpID0+IHtcbiAgICBPYmplY3Qua2V5cyhlbnZpcm9ubWVudC5hcGlzW2FwaV0pLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGVudmlyb25tZW50LmFwaXNbYXBpXVtrZXldID0gZW52aXJvbm1lbnQuYXBpc1thcGldW2tleV0ucmVwbGFjZShwbGFjZWhvbGRlciwgdGVuYW5jeU5hbWUpO1xuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gZW52aXJvbm1lbnRTZXJ2aWNlLnNldFN0YXRlKGVudmlyb25tZW50KTtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function isNumber(value) {
|
|
2
|
-
return value == Number(value);
|
|
3
|
-
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export function isNumber(value) {
|
|
2
|
+
return value == Number(value);
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL251bWJlci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQXNCO0lBQzdDLE9BQU8sS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcbiAgcmV0dXJuIHZhbHVlID09IE51bWJlcih2YWx1ZSk7XG59XG4iXX0=
|
|
@@ -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
|
-
}
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL29iamVjdC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLE9BQU8sRUFDUCxNQUFNLEVBQ04saUJBQWlCLEVBQ2pCLFFBQVEsRUFDUiwwQkFBMEIsR0FDM0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixNQUFNLFVBQVUsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNO0lBQ3RDLElBQUksMEJBQTBCLENBQUMsTUFBTSxDQUFDLElBQUksMEJBQTBCLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDNUUsT0FBTyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDN0M7U0FBTSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ2pFLE9BQU8sRUFBRSxDQUFDO0tBQ1g7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztLQUN6QztBQUNILENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxNQUFNO0lBQzFDLE1BQU0sZ0JBQWdCLEdBQ3BCLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUN6QixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSwyQkFBMkI7UUFDeEQsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNmLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxxQkFBcUI7UUFDeEMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ2pCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLDZCQUE2QjtRQUNsRCxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ2QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsb0JBQW9CO0lBRXRDOzs7T0FHRztJQUNILElBQUksZ0JBQWdCLEVBQUU7UUFDcEIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0tBQ3pDO0lBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUM5RCxPQUFPLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDNUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM3RCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZXhpc3RzLFxuICBpc0FycmF5LFxuICBpc05vZGUsXG4gIGlzTnVsbE9yVW5kZWZpbmVkLFxuICBpc09iamVjdCxcbiAgaXNPYmplY3RBbmROb3RBcnJheU5vdE5vZGUsXG59IGZyb20gJy4vY29tbW9uLXV0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZXBNZXJnZSh0YXJnZXQsIHNvdXJjZSkge1xuICBpZiAoaXNPYmplY3RBbmROb3RBcnJheU5vdE5vZGUodGFyZ2V0KSAmJiBpc09iamVjdEFuZE5vdEFycmF5Tm90Tm9kZShzb3VyY2UpKSB7XG4gICAgcmV0dXJuIGRlZXBNZXJnZVJlY3Vyc2l2ZWx5KHRhcmdldCwgc291cmNlKTtcbiAgfSBlbHNlIGlmIChpc051bGxPclVuZGVmaW5lZCh0YXJnZXQpICYmIGlzTnVsbE9yVW5kZWZpbmVkKHNvdXJjZSkpIHtcbiAgICByZXR1cm4ge307XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGV4aXN0cyhzb3VyY2UpID8gc291cmNlIDogdGFyZ2V0O1xuICB9XG59XG5cbmZ1bmN0aW9uIGRlZXBNZXJnZVJlY3Vyc2l2ZWx5KHRhcmdldCwgc291cmNlKSB7XG4gIGNvbnN0IHNob3VsZE5vdFJlY3Vyc2UgPVxuICAgIGlzTnVsbE9yVW5kZWZpbmVkKHRhcmdldCkgfHxcbiAgICBpc051bGxPclVuZGVmaW5lZChzb3VyY2UpIHx8IC8vIGF0IGxlYXN0IG9uZSBub3QgZGVmaW5lZFxuICAgIGlzQXJyYXkodGFyZ2V0KSB8fFxuICAgIGlzQXJyYXkoc291cmNlKSB8fCAvLyBhdCBsZWFzdCBvbmUgYXJyYXlcbiAgICAhaXNPYmplY3QodGFyZ2V0KSB8fFxuICAgICFpc09iamVjdChzb3VyY2UpIHx8IC8vIGF0IGxlYXN0IG9uZSBub3QgYW4gb2JqZWN0XG4gICAgaXNOb2RlKHRhcmdldCkgfHxcbiAgICBpc05vZGUoc291cmNlKTsgLy8gYXQgbGVhc3Qgb25lIG5vZGVcblxuICAvKipcbiAgICogaWYgd2Ugd2lsbCBub3QgcmVjdXJzZSBhbnkgZnVydGhlcixcbiAgICogd2Ugd2lsbCBwcmlvcml0aXplIHNvdXJjZSBpZiBpdCBpcyBhIGRlZmluZWQgdmFsdWUuXG4gICAqL1xuICBpZiAoc2hvdWxkTm90UmVjdXJzZSkge1xuICAgIHJldHVybiBleGlzdHMoc291cmNlKSA/IHNvdXJjZSA6IHRhcmdldDtcbiAgfVxuXG4gIGNvbnN0IGtleXNPZlRhcmdldCA9IE9iamVjdC5rZXlzKHRhcmdldCk7XG4gIGNvbnN0IGtleXNPZlNvdXJjZSA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIGNvbnN0IHVuaXF1ZUtleXMgPSBuZXcgU2V0KGtleXNPZlRhcmdldC5jb25jYXQoa2V5c09mU291cmNlKSk7XG4gIHJldHVybiBbLi4udW5pcXVlS2V5c10ucmVkdWNlKChyZXRWYWwsIGtleSkgPT4ge1xuICAgIHJldFZhbFtrZXldID0gZGVlcE1lcmdlUmVjdXJzaXZlbHkodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICByZXR1cm4gcmV0VmFsO1xuICB9LCB7fSk7XG59XG4iXX0=
|