@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,64 +1,64 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { map } from 'rxjs/operators';
|
|
3
|
-
import { ConfigStateService } from './config-state.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./config-state.service";
|
|
6
|
-
export class PermissionService {
|
|
7
|
-
constructor(configState) {
|
|
8
|
-
this.configState = configState;
|
|
9
|
-
}
|
|
10
|
-
getGrantedPolicy$(key) {
|
|
11
|
-
return this.getStream().pipe(map(grantedPolicies => this.isPolicyGranted(key, grantedPolicies)));
|
|
12
|
-
}
|
|
13
|
-
getGrantedPolicy(key) {
|
|
14
|
-
const policies = this.getSnapshot();
|
|
15
|
-
return this.isPolicyGranted(key, policies);
|
|
16
|
-
}
|
|
17
|
-
filterItemsByPolicy(items) {
|
|
18
|
-
const policies = this.getSnapshot();
|
|
19
|
-
return items.filter(item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies));
|
|
20
|
-
}
|
|
21
|
-
filterItemsByPolicy$(items) {
|
|
22
|
-
return this.getStream().pipe(map(policies => items.filter(item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies))));
|
|
23
|
-
}
|
|
24
|
-
isPolicyGranted(key, grantedPolicies) {
|
|
25
|
-
if (!key)
|
|
26
|
-
return true;
|
|
27
|
-
const orRegexp = /\|\|/g;
|
|
28
|
-
const andRegexp = /&&/g;
|
|
29
|
-
// TODO: Allow combination of ANDs & ORs
|
|
30
|
-
if (orRegexp.test(key)) {
|
|
31
|
-
const keys = key.split('||').filter(Boolean);
|
|
32
|
-
if (keys.length < 2)
|
|
33
|
-
return false;
|
|
34
|
-
return keys.some(k => this.getPolicy(k.trim(), grantedPolicies));
|
|
35
|
-
}
|
|
36
|
-
else if (andRegexp.test(key)) {
|
|
37
|
-
const keys = key.split('&&').filter(Boolean);
|
|
38
|
-
if (keys.length < 2)
|
|
39
|
-
return false;
|
|
40
|
-
return keys.every(k => this.getPolicy(k.trim(), grantedPolicies));
|
|
41
|
-
}
|
|
42
|
-
return this.getPolicy(key, grantedPolicies);
|
|
43
|
-
}
|
|
44
|
-
getStream() {
|
|
45
|
-
return this.configState.getAll$().pipe(map(this.mapToPolicies));
|
|
46
|
-
}
|
|
47
|
-
getSnapshot() {
|
|
48
|
-
return this.mapToPolicies(this.configState.getAll());
|
|
49
|
-
}
|
|
50
|
-
mapToPolicies(applicationConfiguration) {
|
|
51
|
-
var _a;
|
|
52
|
-
return ((_a = applicationConfiguration === null || applicationConfiguration === void 0 ? void 0 : applicationConfiguration.auth) === null || _a === void 0 ? void 0 : _a.grantedPolicies) || {};
|
|
53
|
-
}
|
|
54
|
-
getPolicy(key, grantedPolicies) {
|
|
55
|
-
return grantedPolicies[key] || false;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
PermissionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PermissionService, deps: [{ token: i1.ConfigStateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
59
|
-
PermissionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PermissionService, providedIn: 'root' });
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PermissionService, decorators: [{
|
|
61
|
-
type: Injectable,
|
|
62
|
-
args: [{ providedIn: 'root' }]
|
|
63
|
-
}], ctorParameters: function () { return [{ type: i1.ConfigStateService }]; } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import { ConfigStateService } from './config-state.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./config-state.service";
|
|
6
|
+
export class PermissionService {
|
|
7
|
+
constructor(configState) {
|
|
8
|
+
this.configState = configState;
|
|
9
|
+
}
|
|
10
|
+
getGrantedPolicy$(key) {
|
|
11
|
+
return this.getStream().pipe(map(grantedPolicies => this.isPolicyGranted(key, grantedPolicies)));
|
|
12
|
+
}
|
|
13
|
+
getGrantedPolicy(key) {
|
|
14
|
+
const policies = this.getSnapshot();
|
|
15
|
+
return this.isPolicyGranted(key, policies);
|
|
16
|
+
}
|
|
17
|
+
filterItemsByPolicy(items) {
|
|
18
|
+
const policies = this.getSnapshot();
|
|
19
|
+
return items.filter(item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies));
|
|
20
|
+
}
|
|
21
|
+
filterItemsByPolicy$(items) {
|
|
22
|
+
return this.getStream().pipe(map(policies => items.filter(item => !item.requiredPolicy || this.isPolicyGranted(item.requiredPolicy, policies))));
|
|
23
|
+
}
|
|
24
|
+
isPolicyGranted(key, grantedPolicies) {
|
|
25
|
+
if (!key)
|
|
26
|
+
return true;
|
|
27
|
+
const orRegexp = /\|\|/g;
|
|
28
|
+
const andRegexp = /&&/g;
|
|
29
|
+
// TODO: Allow combination of ANDs & ORs
|
|
30
|
+
if (orRegexp.test(key)) {
|
|
31
|
+
const keys = key.split('||').filter(Boolean);
|
|
32
|
+
if (keys.length < 2)
|
|
33
|
+
return false;
|
|
34
|
+
return keys.some(k => this.getPolicy(k.trim(), grantedPolicies));
|
|
35
|
+
}
|
|
36
|
+
else if (andRegexp.test(key)) {
|
|
37
|
+
const keys = key.split('&&').filter(Boolean);
|
|
38
|
+
if (keys.length < 2)
|
|
39
|
+
return false;
|
|
40
|
+
return keys.every(k => this.getPolicy(k.trim(), grantedPolicies));
|
|
41
|
+
}
|
|
42
|
+
return this.getPolicy(key, grantedPolicies);
|
|
43
|
+
}
|
|
44
|
+
getStream() {
|
|
45
|
+
return this.configState.getAll$().pipe(map(this.mapToPolicies));
|
|
46
|
+
}
|
|
47
|
+
getSnapshot() {
|
|
48
|
+
return this.mapToPolicies(this.configState.getAll());
|
|
49
|
+
}
|
|
50
|
+
mapToPolicies(applicationConfiguration) {
|
|
51
|
+
var _a;
|
|
52
|
+
return ((_a = applicationConfiguration === null || applicationConfiguration === void 0 ? void 0 : applicationConfiguration.auth) === null || _a === void 0 ? void 0 : _a.grantedPolicies) || {};
|
|
53
|
+
}
|
|
54
|
+
getPolicy(key, grantedPolicies) {
|
|
55
|
+
return grantedPolicies[key] || false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
PermissionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PermissionService, deps: [{ token: i1.ConfigStateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
59
|
+
PermissionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PermissionService, providedIn: 'root' });
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: PermissionService, decorators: [{
|
|
61
|
+
type: Injectable,
|
|
62
|
+
args: [{ providedIn: 'root' }]
|
|
63
|
+
}], ctorParameters: function () { return [{ type: i1.ConfigStateService }]; } });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3Blcm1pc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBRzVELE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFBc0IsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO0lBQUcsQ0FBQztJQUV6RCxpQkFBaUIsQ0FBQyxHQUFXO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FDMUIsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FDbkUsQ0FBQztJQUNKLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFXO1FBQzFCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxtQkFBbUIsQ0FBMEIsS0FBZTtRQUMxRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUNqQixJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQ3BGLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CLENBQTBCLEtBQWU7UUFDM0QsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDYixLQUFLLENBQUMsTUFBTSxDQUNWLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsQ0FDcEYsQ0FDRixDQUNGLENBQUM7SUFDSixDQUFDO0lBRVMsZUFBZSxDQUFDLEdBQVcsRUFBRSxlQUF3QztRQUM3RSxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXRCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN6QixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFeEIsd0NBQXdDO1FBQ3hDLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN0QixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUU3QyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUVsQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO1NBQ2xFO2FBQU0sSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTdDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBRWxDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7U0FDbkU7UUFFRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFUyxTQUFTO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFUyxXQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVTLGFBQWEsQ0FBQyx3QkFBcUQ7O1FBQzNFLE9BQU8sQ0FBQSxNQUFBLHdCQUF3QixhQUF4Qix3QkFBd0IsdUJBQXhCLHdCQUF3QixDQUFFLElBQUksMENBQUUsZUFBZSxLQUFJLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0lBRVMsU0FBUyxDQUFDLEdBQVcsRUFBRSxlQUF3QztRQUN2RSxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDdkMsQ0FBQzs7K0dBckVVLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBREosTUFBTTs0RkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscy9jb21tb24nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvIH0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9ucy9tb2RlbHMnO1xuaW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWctc3RhdGUuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvblNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSkge31cblxuICBnZXRHcmFudGVkUG9saWN5JChrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdldFN0cmVhbSgpLnBpcGUoXG4gICAgICBtYXAoZ3JhbnRlZFBvbGljaWVzID0+IHRoaXMuaXNQb2xpY3lHcmFudGVkKGtleSwgZ3JhbnRlZFBvbGljaWVzKSksXG4gICAgKTtcbiAgfVxuXG4gIGdldEdyYW50ZWRQb2xpY3koa2V5OiBzdHJpbmcpIHtcbiAgICBjb25zdCBwb2xpY2llcyA9IHRoaXMuZ2V0U25hcHNob3QoKTtcbiAgICByZXR1cm4gdGhpcy5pc1BvbGljeUdyYW50ZWQoa2V5LCBwb2xpY2llcyk7XG4gIH1cblxuICBmaWx0ZXJJdGVtc0J5UG9saWN5PFQgZXh0ZW5kcyBBQlAuSGFzUG9saWN5PihpdGVtczogQXJyYXk8VD4pIHtcbiAgICBjb25zdCBwb2xpY2llcyA9IHRoaXMuZ2V0U25hcHNob3QoKTtcbiAgICByZXR1cm4gaXRlbXMuZmlsdGVyKFxuICAgICAgaXRlbSA9PiAhaXRlbS5yZXF1aXJlZFBvbGljeSB8fCB0aGlzLmlzUG9saWN5R3JhbnRlZChpdGVtLnJlcXVpcmVkUG9saWN5LCBwb2xpY2llcyksXG4gICAgKTtcbiAgfVxuXG4gIGZpbHRlckl0ZW1zQnlQb2xpY3kkPFQgZXh0ZW5kcyBBQlAuSGFzUG9saWN5PihpdGVtczogQXJyYXk8VD4pIHtcbiAgICByZXR1cm4gdGhpcy5nZXRTdHJlYW0oKS5waXBlKFxuICAgICAgbWFwKHBvbGljaWVzID0+XG4gICAgICAgIGl0ZW1zLmZpbHRlcihcbiAgICAgICAgICBpdGVtID0+ICFpdGVtLnJlcXVpcmVkUG9saWN5IHx8IHRoaXMuaXNQb2xpY3lHcmFudGVkKGl0ZW0ucmVxdWlyZWRQb2xpY3ksIHBvbGljaWVzKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc1BvbGljeUdyYW50ZWQoa2V5OiBzdHJpbmcsIGdyYW50ZWRQb2xpY2llczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4pIHtcbiAgICBpZiAoIWtleSkgcmV0dXJuIHRydWU7XG5cbiAgICBjb25zdCBvclJlZ2V4cCA9IC9cXHxcXHwvZztcbiAgICBjb25zdCBhbmRSZWdleHAgPSAvJiYvZztcblxuICAgIC8vIFRPRE86IEFsbG93IGNvbWJpbmF0aW9uIG9mIEFORHMgJiBPUnNcbiAgICBpZiAob3JSZWdleHAudGVzdChrZXkpKSB7XG4gICAgICBjb25zdCBrZXlzID0ga2V5LnNwbGl0KCd8fCcpLmZpbHRlcihCb29sZWFuKTtcblxuICAgICAgaWYgKGtleXMubGVuZ3RoIDwgMikgcmV0dXJuIGZhbHNlO1xuXG4gICAgICByZXR1cm4ga2V5cy5zb21lKGsgPT4gdGhpcy5nZXRQb2xpY3koay50cmltKCksIGdyYW50ZWRQb2xpY2llcykpO1xuICAgIH0gZWxzZSBpZiAoYW5kUmVnZXhwLnRlc3Qoa2V5KSkge1xuICAgICAgY29uc3Qga2V5cyA9IGtleS5zcGxpdCgnJiYnKS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICAgIGlmIChrZXlzLmxlbmd0aCA8IDIpIHJldHVybiBmYWxzZTtcblxuICAgICAgcmV0dXJuIGtleXMuZXZlcnkoayA9PiB0aGlzLmdldFBvbGljeShrLnRyaW0oKSwgZ3JhbnRlZFBvbGljaWVzKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZ2V0UG9saWN5KGtleSwgZ3JhbnRlZFBvbGljaWVzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRTdHJlYW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU3RhdGUuZ2V0QWxsJCgpLnBpcGUobWFwKHRoaXMubWFwVG9Qb2xpY2llcykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFNuYXBzaG90KCkge1xuICAgIHJldHVybiB0aGlzLm1hcFRvUG9saWNpZXModGhpcy5jb25maWdTdGF0ZS5nZXRBbGwoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFwVG9Qb2xpY2llcyhhcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb246IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0bykge1xuICAgIHJldHVybiBhcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb24/LmF1dGg/LmdyYW50ZWRQb2xpY2llcyB8fCB7fTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRQb2xpY3koa2V5OiBzdHJpbmcsIGdyYW50ZWRQb2xpY2llczogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4pIHtcbiAgICByZXR1cm4gZ3JhbnRlZFBvbGljaWVzW2tleV0gfHwgZmFsc2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
import { Injectable, NgZone } from '@angular/core';
|
|
2
|
-
import { Router } from '@angular/router';
|
|
3
|
-
import { map } from 'rxjs/operators';
|
|
4
|
-
import { InternalStore } from '../utils/internal-store-utils';
|
|
5
|
-
import { reloadRoute } from '../utils/route-utils';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/router";
|
|
8
|
-
export class ReplaceableComponentsService {
|
|
9
|
-
constructor(ngZone, router) {
|
|
10
|
-
this.ngZone = ngZone;
|
|
11
|
-
this.router = router;
|
|
12
|
-
this.store = new InternalStore([]);
|
|
13
|
-
}
|
|
14
|
-
get replaceableComponents$() {
|
|
15
|
-
return this.store.sliceState(state => state);
|
|
16
|
-
}
|
|
17
|
-
get replaceableComponents() {
|
|
18
|
-
return this.store.state;
|
|
19
|
-
}
|
|
20
|
-
get onUpdate$() {
|
|
21
|
-
return this.store.sliceUpdate(state => state);
|
|
22
|
-
}
|
|
23
|
-
add(replaceableComponent, reload) {
|
|
24
|
-
const replaceableComponents = [...this.store.state];
|
|
25
|
-
const index = replaceableComponents.findIndex(component => component.key === replaceableComponent.key);
|
|
26
|
-
if (index > -1) {
|
|
27
|
-
replaceableComponents[index] = replaceableComponent;
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
replaceableComponents.push(replaceableComponent);
|
|
31
|
-
}
|
|
32
|
-
this.store.set(replaceableComponents);
|
|
33
|
-
if (reload)
|
|
34
|
-
reloadRoute(this.router, this.ngZone);
|
|
35
|
-
}
|
|
36
|
-
get(replaceableComponentKey) {
|
|
37
|
-
return this.replaceableComponents.find(component => component.key === replaceableComponentKey);
|
|
38
|
-
}
|
|
39
|
-
get$(replaceableComponentKey) {
|
|
40
|
-
return this.replaceableComponents$.pipe(map(components => components.find(component => component.key === replaceableComponentKey)));
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
ReplaceableComponentsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ReplaceableComponentsService, deps: [{ token: i0.NgZone }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
44
|
-
ReplaceableComponentsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ReplaceableComponentsService, providedIn: 'root' });
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ReplaceableComponentsService, decorators: [{
|
|
46
|
-
type: Injectable,
|
|
47
|
-
args: [{ providedIn: 'root' }]
|
|
48
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Router }]; } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable, NgZone } from '@angular/core';
|
|
2
|
+
import { Router } from '@angular/router';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import { InternalStore } from '../utils/internal-store-utils';
|
|
5
|
+
import { reloadRoute } from '../utils/route-utils';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/router";
|
|
8
|
+
export class ReplaceableComponentsService {
|
|
9
|
+
constructor(ngZone, router) {
|
|
10
|
+
this.ngZone = ngZone;
|
|
11
|
+
this.router = router;
|
|
12
|
+
this.store = new InternalStore([]);
|
|
13
|
+
}
|
|
14
|
+
get replaceableComponents$() {
|
|
15
|
+
return this.store.sliceState(state => state);
|
|
16
|
+
}
|
|
17
|
+
get replaceableComponents() {
|
|
18
|
+
return this.store.state;
|
|
19
|
+
}
|
|
20
|
+
get onUpdate$() {
|
|
21
|
+
return this.store.sliceUpdate(state => state);
|
|
22
|
+
}
|
|
23
|
+
add(replaceableComponent, reload) {
|
|
24
|
+
const replaceableComponents = [...this.store.state];
|
|
25
|
+
const index = replaceableComponents.findIndex(component => component.key === replaceableComponent.key);
|
|
26
|
+
if (index > -1) {
|
|
27
|
+
replaceableComponents[index] = replaceableComponent;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
replaceableComponents.push(replaceableComponent);
|
|
31
|
+
}
|
|
32
|
+
this.store.set(replaceableComponents);
|
|
33
|
+
if (reload)
|
|
34
|
+
reloadRoute(this.router, this.ngZone);
|
|
35
|
+
}
|
|
36
|
+
get(replaceableComponentKey) {
|
|
37
|
+
return this.replaceableComponents.find(component => component.key === replaceableComponentKey);
|
|
38
|
+
}
|
|
39
|
+
get$(replaceableComponentKey) {
|
|
40
|
+
return this.replaceableComponents$.pipe(map(components => components.find(component => component.key === replaceableComponentKey)));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
ReplaceableComponentsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ReplaceableComponentsService, deps: [{ token: i0.NgZone }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
44
|
+
ReplaceableComponentsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ReplaceableComponentsService, providedIn: 'root' });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ReplaceableComponentsService, decorators: [{
|
|
46
|
+
type: Injectable,
|
|
47
|
+
args: [{ providedIn: 'root' }]
|
|
48
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Router }]; } });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZWFibGUtY29tcG9uZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3JlcGxhY2VhYmxlLWNvbXBvbmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUduRCxNQUFNLE9BQU8sNEJBQTRCO0lBZXZDLFlBQW9CLE1BQWMsRUFBVSxNQUFjO1FBQXRDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQWRELElBQUksc0JBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFNRCxHQUFHLENBQUMsb0JBQWdFLEVBQUUsTUFBZ0I7UUFDcEYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwRCxNQUFNLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQzNDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsS0FBSyxvQkFBb0IsQ0FBQyxHQUFHLENBQ3hELENBQUM7UUFFRixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtZQUNkLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxHQUFHLG9CQUFvQixDQUFDO1NBQ3JEO2FBQU07WUFDTCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUNsRDtRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFdEMsSUFBSSxNQUFNO1lBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxHQUFHLENBQUMsdUJBQStCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssdUJBQXVCLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsSUFBSSxDQUFDLHVCQUErQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQ3JDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLHVCQUF1QixDQUFDLENBQUMsQ0FDM0YsQ0FBQztJQUNKLENBQUM7OzBIQTdDVSw0QkFBNEI7OEhBQTVCLDRCQUE0QixjQURmLE1BQU07NEZBQ25CLDRCQUE0QjtrQkFEeEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSZXBsYWNlYWJsZUNvbXBvbmVudHMgfSBmcm9tICcuLi9tb2RlbHMvcmVwbGFjZWFibGUtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0b3JlIH0gZnJvbSAnLi4vdXRpbHMvaW50ZXJuYWwtc3RvcmUtdXRpbHMnO1xuaW1wb3J0IHsgcmVsb2FkUm91dGUgfSBmcm9tICcuLi91dGlscy9yb3V0ZS11dGlscyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUmVwbGFjZWFibGVDb21wb25lbnRzU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmU6IEludGVybmFsU3RvcmU8UmVwbGFjZWFibGVDb21wb25lbnRzLlJlcGxhY2VhYmxlQ29tcG9uZW50W10+O1xuXG4gIGdldCByZXBsYWNlYWJsZUNvbXBvbmVudHMkKCk6IE9ic2VydmFibGU8UmVwbGFjZWFibGVDb21wb25lbnRzLlJlcGxhY2VhYmxlQ29tcG9uZW50W10+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVN0YXRlKHN0YXRlID0+IHN0YXRlKTtcbiAgfVxuXG4gIGdldCByZXBsYWNlYWJsZUNvbXBvbmVudHMoKTogUmVwbGFjZWFibGVDb21wb25lbnRzLlJlcGxhY2VhYmxlQ29tcG9uZW50W10ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnN0YXRlO1xuICB9XG5cbiAgZ2V0IG9uVXBkYXRlJCgpOiBPYnNlcnZhYmxlPFJlcGxhY2VhYmxlQ29tcG9uZW50cy5SZXBsYWNlYWJsZUNvbXBvbmVudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VVcGRhdGUoc3RhdGUgPT4gc3RhdGUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgIHRoaXMuc3RvcmUgPSBuZXcgSW50ZXJuYWxTdG9yZShbXSk7XG4gIH1cblxuICBhZGQocmVwbGFjZWFibGVDb21wb25lbnQ6IFJlcGxhY2VhYmxlQ29tcG9uZW50cy5SZXBsYWNlYWJsZUNvbXBvbmVudCwgcmVsb2FkPzogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHJlcGxhY2VhYmxlQ29tcG9uZW50cyA9IFsuLi50aGlzLnN0b3JlLnN0YXRlXTtcblxuICAgIGNvbnN0IGluZGV4ID0gcmVwbGFjZWFibGVDb21wb25lbnRzLmZpbmRJbmRleChcbiAgICAgIGNvbXBvbmVudCA9PiBjb21wb25lbnQua2V5ID09PSByZXBsYWNlYWJsZUNvbXBvbmVudC5rZXksXG4gICAgKTtcblxuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICByZXBsYWNlYWJsZUNvbXBvbmVudHNbaW5kZXhdID0gcmVwbGFjZWFibGVDb21wb25lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcGxhY2VhYmxlQ29tcG9uZW50cy5wdXNoKHJlcGxhY2VhYmxlQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLnN0b3JlLnNldChyZXBsYWNlYWJsZUNvbXBvbmVudHMpO1xuXG4gICAgaWYgKHJlbG9hZCkgcmVsb2FkUm91dGUodGhpcy5yb3V0ZXIsIHRoaXMubmdab25lKTtcbiAgfVxuXG4gIGdldChyZXBsYWNlYWJsZUNvbXBvbmVudEtleTogc3RyaW5nKTogUmVwbGFjZWFibGVDb21wb25lbnRzLlJlcGxhY2VhYmxlQ29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5yZXBsYWNlYWJsZUNvbXBvbmVudHMuZmluZChjb21wb25lbnQgPT4gY29tcG9uZW50LmtleSA9PT0gcmVwbGFjZWFibGVDb21wb25lbnRLZXkpO1xuICB9XG5cbiAgZ2V0JChyZXBsYWNlYWJsZUNvbXBvbmVudEtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVDb21wb25lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5yZXBsYWNlYWJsZUNvbXBvbmVudHMkLnBpcGUoXG4gICAgICBtYXAoY29tcG9uZW50cyA9PiBjb21wb25lbnRzLmZpbmQoY29tcG9uZW50ID0+IGNvbXBvbmVudC5rZXkgPT09IHJlcGxhY2VhYmxlQ29tcG9uZW50S2V5KSksXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { InternalStore } from '../utils/internal-store-utils';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ResourceWaitService {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.store = new InternalStore({ resources: new Set() });
|
|
7
|
-
}
|
|
8
|
-
getLoading() {
|
|
9
|
-
return !!this.store.state.resources.size;
|
|
10
|
-
}
|
|
11
|
-
getLoading$() {
|
|
12
|
-
return this.store.sliceState(({ resources }) => !!resources.size);
|
|
13
|
-
}
|
|
14
|
-
updateLoading$() {
|
|
15
|
-
return this.store.sliceUpdate(({ resources }) => !!resources.size);
|
|
16
|
-
}
|
|
17
|
-
clearLoading() {
|
|
18
|
-
this.store.patch({ resources: new Set() });
|
|
19
|
-
}
|
|
20
|
-
addResource(resource) {
|
|
21
|
-
const resources = this.store.state.resources;
|
|
22
|
-
resources.add(resource);
|
|
23
|
-
this.store.patch({ resources });
|
|
24
|
-
}
|
|
25
|
-
deleteResource(resource) {
|
|
26
|
-
const resources = this.store.state.resources;
|
|
27
|
-
resources.delete(resource);
|
|
28
|
-
this.store.patch({ resources });
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
ResourceWaitService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ResourceWaitService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
|
-
ResourceWaitService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ResourceWaitService, providedIn: 'root' });
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ResourceWaitService, decorators: [{
|
|
34
|
-
type: Injectable,
|
|
35
|
-
args: [{
|
|
36
|
-
providedIn: 'root',
|
|
37
|
-
}]
|
|
38
|
-
}] });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { InternalStore } from '../utils/internal-store-utils';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ResourceWaitService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.store = new InternalStore({ resources: new Set() });
|
|
7
|
+
}
|
|
8
|
+
getLoading() {
|
|
9
|
+
return !!this.store.state.resources.size;
|
|
10
|
+
}
|
|
11
|
+
getLoading$() {
|
|
12
|
+
return this.store.sliceState(({ resources }) => !!resources.size);
|
|
13
|
+
}
|
|
14
|
+
updateLoading$() {
|
|
15
|
+
return this.store.sliceUpdate(({ resources }) => !!resources.size);
|
|
16
|
+
}
|
|
17
|
+
clearLoading() {
|
|
18
|
+
this.store.patch({ resources: new Set() });
|
|
19
|
+
}
|
|
20
|
+
addResource(resource) {
|
|
21
|
+
const resources = this.store.state.resources;
|
|
22
|
+
resources.add(resource);
|
|
23
|
+
this.store.patch({ resources });
|
|
24
|
+
}
|
|
25
|
+
deleteResource(resource) {
|
|
26
|
+
const resources = this.store.state.resources;
|
|
27
|
+
resources.delete(resource);
|
|
28
|
+
this.store.patch({ resources });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
ResourceWaitService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ResourceWaitService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32
|
+
ResourceWaitService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ResourceWaitService, providedIn: 'root' });
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ResourceWaitService, decorators: [{
|
|
34
|
+
type: Injectable,
|
|
35
|
+
args: [{
|
|
36
|
+
providedIn: 'root',
|
|
37
|
+
}]
|
|
38
|
+
}] });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2Utd2FpdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3Jlc291cmNlLXdhaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFTOUQsTUFBTSxPQUFPLG1CQUFtQjtJQUhoQztRQUlVLFVBQUssR0FBRyxJQUFJLGFBQWEsQ0FBb0IsRUFBRSxTQUFTLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7S0E2QmhGO0lBM0JDLFVBQVU7UUFDUixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBZ0I7UUFDMUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQzdDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBZ0I7UUFDN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1FBQzdDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O2lIQTdCVSxtQkFBbUI7cUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0b3JlIH0gZnJvbSAnLi4vdXRpbHMvaW50ZXJuYWwtc3RvcmUtdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlV2FpdFN0YXRlIHtcbiAgcmVzb3VyY2VzOiBTZXQ8c3RyaW5nPjtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlc291cmNlV2FpdFNlcnZpY2Uge1xuICBwcml2YXRlIHN0b3JlID0gbmV3IEludGVybmFsU3RvcmU8UmVzb3VyY2VXYWl0U3RhdGU+KHsgcmVzb3VyY2VzOiBuZXcgU2V0KCkgfSk7XG5cbiAgZ2V0TG9hZGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLnN0b3JlLnN0YXRlLnJlc291cmNlcy5zaXplO1xuICB9XG5cbiAgZ2V0TG9hZGluZyQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc2xpY2VTdGF0ZSgoeyByZXNvdXJjZXMgfSkgPT4gISFyZXNvdXJjZXMuc2l6ZSk7XG4gIH1cblxuICB1cGRhdGVMb2FkaW5nJCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5zbGljZVVwZGF0ZSgoeyByZXNvdXJjZXMgfSkgPT4gISFyZXNvdXJjZXMuc2l6ZSk7XG4gIH1cblxuICBjbGVhckxvYWRpbmcoKSB7XG4gICAgdGhpcy5zdG9yZS5wYXRjaCh7IHJlc291cmNlczogbmV3IFNldCgpIH0pO1xuICB9XG5cbiAgYWRkUmVzb3VyY2UocmVzb3VyY2U6IHN0cmluZykge1xuICAgIGNvbnN0IHJlc291cmNlcyA9IHRoaXMuc3RvcmUuc3RhdGUucmVzb3VyY2VzO1xuICAgIHJlc291cmNlcy5hZGQocmVzb3VyY2UpO1xuICAgIHRoaXMuc3RvcmUucGF0Y2goeyByZXNvdXJjZXMgfSk7XG4gIH1cblxuICBkZWxldGVSZXNvdXJjZShyZXNvdXJjZTogc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzb3VyY2VzID0gdGhpcy5zdG9yZS5zdGF0ZS5yZXNvdXJjZXM7XG4gICAgcmVzb3VyY2VzLmRlbGV0ZShyZXNvdXJjZSk7XG4gICAgdGhpcy5zdG9yZS5wYXRjaCh7IHJlc291cmNlcyB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
import { __rest } from "tslib";
|
|
2
|
-
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
3
|
-
import { Inject, Injectable } from '@angular/core';
|
|
4
|
-
import { throwError } from 'rxjs';
|
|
5
|
-
import { catchError } from 'rxjs/operators';
|
|
6
|
-
import { CORE_OPTIONS } from '../tokens/options.token';
|
|
7
|
-
import { isUndefinedOrEmptyString } from '../utils/common-utils';
|
|
8
|
-
import { EnvironmentService } from './environment.service';
|
|
9
|
-
import { HttpErrorReporterService } from './http-error-reporter.service';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@angular/common/http";
|
|
12
|
-
import * as i2 from "./environment.service";
|
|
13
|
-
import * as i3 from "./http-error-reporter.service";
|
|
14
|
-
export class RestService {
|
|
15
|
-
constructor(options, http, environment, httpErrorReporter) {
|
|
16
|
-
this.options = options;
|
|
17
|
-
this.http = http;
|
|
18
|
-
this.environment = environment;
|
|
19
|
-
this.httpErrorReporter = httpErrorReporter;
|
|
20
|
-
}
|
|
21
|
-
getApiFromStore(apiName) {
|
|
22
|
-
return this.environment.getApiUrl(apiName);
|
|
23
|
-
}
|
|
24
|
-
handleError(err) {
|
|
25
|
-
this.httpErrorReporter.reportError(err);
|
|
26
|
-
return throwError(err);
|
|
27
|
-
}
|
|
28
|
-
request(request, config, api) {
|
|
29
|
-
config = config || {};
|
|
30
|
-
api = api || this.getApiFromStore(config.apiName);
|
|
31
|
-
const { method, params } = request, options = __rest(request, ["method", "params"]);
|
|
32
|
-
const { observe = "body" /* Body */, skipHandleError } = config;
|
|
33
|
-
return this.http
|
|
34
|
-
.request(method, api + request.url, Object.assign(Object.assign({ observe }, (params && {
|
|
35
|
-
params: this.getParams(params, config.httpParamEncoder),
|
|
36
|
-
})), options))
|
|
37
|
-
.pipe(catchError(err => (skipHandleError ? throwError(err) : this.handleError(err))));
|
|
38
|
-
}
|
|
39
|
-
getParams(params, encoder) {
|
|
40
|
-
const httpParams = encoder ? new HttpParams({ encoder }) : new HttpParams();
|
|
41
|
-
return Object.keys(params).reduce((acc, key) => {
|
|
42
|
-
const value = params[key];
|
|
43
|
-
if (isUndefinedOrEmptyString(value))
|
|
44
|
-
return acc;
|
|
45
|
-
if (value === null && !this.options.sendNullsAsQueryParam)
|
|
46
|
-
return acc;
|
|
47
|
-
acc = acc.set(key, value);
|
|
48
|
-
return acc;
|
|
49
|
-
}, httpParams);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
RestService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RestService, deps: [{ token: CORE_OPTIONS }, { token: i1.HttpClient }, { token: i2.EnvironmentService }, { token: i3.HttpErrorReporterService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
53
|
-
RestService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RestService, providedIn: 'root' });
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RestService, decorators: [{
|
|
55
|
-
type: Injectable,
|
|
56
|
-
args: [{
|
|
57
|
-
providedIn: 'root',
|
|
58
|
-
}]
|
|
59
|
-
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
60
|
-
type: Inject,
|
|
61
|
-
args: [CORE_OPTIONS]
|
|
62
|
-
}] }, { type: i1.HttpClient }, { type: i2.EnvironmentService }, { type: i3.HttpErrorReporterService }]; } });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { __rest } from "tslib";
|
|
2
|
+
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
3
|
+
import { Inject, Injectable } from '@angular/core';
|
|
4
|
+
import { throwError } from 'rxjs';
|
|
5
|
+
import { catchError } from 'rxjs/operators';
|
|
6
|
+
import { CORE_OPTIONS } from '../tokens/options.token';
|
|
7
|
+
import { isUndefinedOrEmptyString } from '../utils/common-utils';
|
|
8
|
+
import { EnvironmentService } from './environment.service';
|
|
9
|
+
import { HttpErrorReporterService } from './http-error-reporter.service';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common/http";
|
|
12
|
+
import * as i2 from "./environment.service";
|
|
13
|
+
import * as i3 from "./http-error-reporter.service";
|
|
14
|
+
export class RestService {
|
|
15
|
+
constructor(options, http, environment, httpErrorReporter) {
|
|
16
|
+
this.options = options;
|
|
17
|
+
this.http = http;
|
|
18
|
+
this.environment = environment;
|
|
19
|
+
this.httpErrorReporter = httpErrorReporter;
|
|
20
|
+
}
|
|
21
|
+
getApiFromStore(apiName) {
|
|
22
|
+
return this.environment.getApiUrl(apiName);
|
|
23
|
+
}
|
|
24
|
+
handleError(err) {
|
|
25
|
+
this.httpErrorReporter.reportError(err);
|
|
26
|
+
return throwError(err);
|
|
27
|
+
}
|
|
28
|
+
request(request, config, api) {
|
|
29
|
+
config = config || {};
|
|
30
|
+
api = api || this.getApiFromStore(config.apiName);
|
|
31
|
+
const { method, params } = request, options = __rest(request, ["method", "params"]);
|
|
32
|
+
const { observe = "body" /* Body */, skipHandleError } = config;
|
|
33
|
+
return this.http
|
|
34
|
+
.request(method, api + request.url, Object.assign(Object.assign({ observe }, (params && {
|
|
35
|
+
params: this.getParams(params, config.httpParamEncoder),
|
|
36
|
+
})), options))
|
|
37
|
+
.pipe(catchError(err => (skipHandleError ? throwError(err) : this.handleError(err))));
|
|
38
|
+
}
|
|
39
|
+
getParams(params, encoder) {
|
|
40
|
+
const httpParams = encoder ? new HttpParams({ encoder }) : new HttpParams();
|
|
41
|
+
return Object.keys(params).reduce((acc, key) => {
|
|
42
|
+
const value = params[key];
|
|
43
|
+
if (isUndefinedOrEmptyString(value))
|
|
44
|
+
return acc;
|
|
45
|
+
if (value === null && !this.options.sendNullsAsQueryParam)
|
|
46
|
+
return acc;
|
|
47
|
+
acc = acc.set(key, value);
|
|
48
|
+
return acc;
|
|
49
|
+
}, httpParams);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
RestService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RestService, deps: [{ token: CORE_OPTIONS }, { token: i1.HttpClient }, { token: i2.EnvironmentService }, { token: i3.HttpErrorReporterService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
53
|
+
RestService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RestService, providedIn: 'root' });
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RestService, decorators: [{
|
|
55
|
+
type: Injectable,
|
|
56
|
+
args: [{
|
|
57
|
+
providedIn: 'root',
|
|
58
|
+
}]
|
|
59
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
60
|
+
type: Inject,
|
|
61
|
+
args: [CORE_OPTIONS]
|
|
62
|
+
}] }, { type: i1.HttpClient }, { type: i2.EnvironmentService }, { type: i3.HttpErrorReporterService }]; } });
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3Jlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBc0IsVUFBVSxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFDL0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7OztBQUt6RSxNQUFNLE9BQU8sV0FBVztJQUN0QixZQUNrQyxPQUFpQixFQUN2QyxJQUFnQixFQUNoQixXQUErQixFQUMvQixpQkFBMkM7UUFIckIsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUN2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO0lBQ3BELENBQUM7SUFFTSxlQUFlLENBQUMsT0FBZTtRQUN2QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBUTtRQUNsQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPLENBQ0wsT0FBeUMsRUFDekMsTUFBb0IsRUFDcEIsR0FBWTtRQUVaLE1BQU0sR0FBRyxNQUFNLElBQUssRUFBa0IsQ0FBQztRQUN2QyxHQUFHLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxLQUFpQixPQUFPLEVBQW5CLE9BQU8sVUFBSyxPQUFPLEVBQXhDLG9CQUE4QixDQUFVLENBQUM7UUFDL0MsTUFBTSxFQUFFLE9BQU8sb0JBQW9CLEVBQUUsZUFBZSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRWhFLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixPQUFPLENBQUksTUFBTSxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLDhCQUNyQyxPQUFPLElBQ0osQ0FBQyxNQUFNLElBQUk7WUFDWixNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1NBQ3hELENBQUMsR0FDQyxPQUFPLENBQ0osQ0FBQzthQUNSLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTyxTQUFTLENBQUMsTUFBbUIsRUFBRSxPQUE0QjtRQUNqRSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUM1RSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQzdDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUUxQixJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUNoRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQjtnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUN0RSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDMUIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDakIsQ0FBQzs7eUdBaERVLFdBQVcsa0JBRVosWUFBWTs2R0FGWCxXQUFXLGNBRlYsTUFBTTs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtZXRlckNvZGVjLCBIdHRwUGFyYW1zLCBIdHRwUmVxdWVzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscy9jb21tb24nO1xuaW1wb3J0IHsgUmVzdCB9IGZyb20gJy4uL21vZGVscy9yZXN0JztcbmltcG9ydCB7IENPUkVfT1BUSU9OUyB9IGZyb20gJy4uL3Rva2Vucy9vcHRpb25zLnRva2VuJztcbmltcG9ydCB7IGlzVW5kZWZpbmVkT3JFbXB0eVN0cmluZyB9IGZyb20gJy4uL3V0aWxzL2NvbW1vbi11dGlscyc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuL2Vudmlyb25tZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVwb3J0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9odHRwLWVycm9yLXJlcG9ydGVyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgUmVzdFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KENPUkVfT1BUSU9OUykgcHJvdGVjdGVkIG9wdGlvbnM6IEFCUC5Sb290LFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByb3RlY3RlZCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBodHRwRXJyb3JSZXBvcnRlcjogSHR0cEVycm9yUmVwb3J0ZXJTZXJ2aWNlLFxuICApIHt9XG5cbiAgcHJvdGVjdGVkIGdldEFwaUZyb21TdG9yZShhcGlOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmdldEFwaVVybChhcGlOYW1lKTtcbiAgfVxuXG4gIGhhbmRsZUVycm9yKGVycjogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICB0aGlzLmh0dHBFcnJvclJlcG9ydGVyLnJlcG9ydEVycm9yKGVycik7XG4gICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcbiAgfVxuXG4gIHJlcXVlc3Q8VCwgUj4oXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8VD4gfCBSZXN0LlJlcXVlc3Q8VD4sXG4gICAgY29uZmlnPzogUmVzdC5Db25maWcsXG4gICAgYXBpPzogc3RyaW5nLFxuICApOiBPYnNlcnZhYmxlPFI+IHtcbiAgICBjb25maWcgPSBjb25maWcgfHwgKHt9IGFzIFJlc3QuQ29uZmlnKTtcbiAgICBhcGkgPSBhcGkgfHwgdGhpcy5nZXRBcGlGcm9tU3RvcmUoY29uZmlnLmFwaU5hbWUpO1xuICAgIGNvbnN0IHsgbWV0aG9kLCBwYXJhbXMsIC4uLm9wdGlvbnMgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3QgeyBvYnNlcnZlID0gUmVzdC5PYnNlcnZlLkJvZHksIHNraXBIYW5kbGVFcnJvciB9ID0gY29uZmlnO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnJlcXVlc3Q8Uj4obWV0aG9kLCBhcGkgKyByZXF1ZXN0LnVybCwge1xuICAgICAgICBvYnNlcnZlLFxuICAgICAgICAuLi4ocGFyYW1zICYmIHtcbiAgICAgICAgICBwYXJhbXM6IHRoaXMuZ2V0UGFyYW1zKHBhcmFtcywgY29uZmlnLmh0dHBQYXJhbUVuY29kZXIpLFxuICAgICAgICB9KSxcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIH0gYXMgYW55KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcihlcnIgPT4gKHNraXBIYW5kbGVFcnJvciA/IHRocm93RXJyb3IoZXJyKSA6IHRoaXMuaGFuZGxlRXJyb3IoZXJyKSkpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGFyYW1zKHBhcmFtczogUmVzdC5QYXJhbXMsIGVuY29kZXI/OiBIdHRwUGFyYW1ldGVyQ29kZWMpOiBIdHRwUGFyYW1zIHtcbiAgICBjb25zdCBodHRwUGFyYW1zID0gZW5jb2RlciA/IG5ldyBIdHRwUGFyYW1zKHsgZW5jb2RlciB9KSA6IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHBhcmFtcykucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXNba2V5XTtcblxuICAgICAgaWYgKGlzVW5kZWZpbmVkT3JFbXB0eVN0cmluZyh2YWx1ZSkpIHJldHVybiBhY2M7XG4gICAgICBpZiAodmFsdWUgPT09IG51bGwgJiYgIXRoaXMub3B0aW9ucy5zZW5kTnVsbHNBc1F1ZXJ5UGFyYW0pIHJldHVybiBhY2M7XG4gICAgICBhY2MgPSBhY2Muc2V0KGtleSwgdmFsdWUpO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCBodHRwUGFyYW1zKTtcbiAgfVxufVxuIl19
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, } from '@angular/router';
|
|
3
|
-
import { filter } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/router";
|
|
6
|
-
export const NavigationEvent = {
|
|
7
|
-
Cancel: NavigationCancel,
|
|
8
|
-
End: NavigationEnd,
|
|
9
|
-
Error: NavigationError,
|
|
10
|
-
Start: NavigationStart,
|
|
11
|
-
};
|
|
12
|
-
export class RouterEvents {
|
|
13
|
-
constructor(router) {
|
|
14
|
-
this.router = router;
|
|
15
|
-
}
|
|
16
|
-
getEvents(...eventTypes) {
|
|
17
|
-
const filterRouterEvents = (event) => eventTypes.some(type => event instanceof type);
|
|
18
|
-
return this.router.events.pipe(filter(filterRouterEvents));
|
|
19
|
-
}
|
|
20
|
-
getNavigationEvents(...navigationEventKeys) {
|
|
21
|
-
const filterNavigationEvents = (event) => navigationEventKeys.some(key => event instanceof NavigationEvent[key]);
|
|
22
|
-
return this.router.events.pipe(filter(filterNavigationEvents));
|
|
23
|
-
}
|
|
24
|
-
getAllEvents() {
|
|
25
|
-
return this.router.events;
|
|
26
|
-
}
|
|
27
|
-
getAllNavigationEvents() {
|
|
28
|
-
const keys = Object.keys(NavigationEvent);
|
|
29
|
-
return this.getNavigationEvents(...keys);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
RouterEvents.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RouterEvents, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
-
RouterEvents.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RouterEvents, providedIn: 'root' });
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RouterEvents, decorators: [{
|
|
35
|
-
type: Injectable,
|
|
36
|
-
args: [{ providedIn: 'root' }]
|
|
37
|
-
}], ctorParameters: function () { return [{ type: i1.Router }]; } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { NavigationCancel, NavigationEnd, NavigationError, NavigationStart, Router, } from '@angular/router';
|
|
3
|
+
import { filter } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/router";
|
|
6
|
+
export const NavigationEvent = {
|
|
7
|
+
Cancel: NavigationCancel,
|
|
8
|
+
End: NavigationEnd,
|
|
9
|
+
Error: NavigationError,
|
|
10
|
+
Start: NavigationStart,
|
|
11
|
+
};
|
|
12
|
+
export class RouterEvents {
|
|
13
|
+
constructor(router) {
|
|
14
|
+
this.router = router;
|
|
15
|
+
}
|
|
16
|
+
getEvents(...eventTypes) {
|
|
17
|
+
const filterRouterEvents = (event) => eventTypes.some(type => event instanceof type);
|
|
18
|
+
return this.router.events.pipe(filter(filterRouterEvents));
|
|
19
|
+
}
|
|
20
|
+
getNavigationEvents(...navigationEventKeys) {
|
|
21
|
+
const filterNavigationEvents = (event) => navigationEventKeys.some(key => event instanceof NavigationEvent[key]);
|
|
22
|
+
return this.router.events.pipe(filter(filterNavigationEvents));
|
|
23
|
+
}
|
|
24
|
+
getAllEvents() {
|
|
25
|
+
return this.router.events;
|
|
26
|
+
}
|
|
27
|
+
getAllNavigationEvents() {
|
|
28
|
+
const keys = Object.keys(NavigationEvent);
|
|
29
|
+
return this.getNavigationEvents(...keys);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
RouterEvents.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RouterEvents, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
+
RouterEvents.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RouterEvents, providedIn: 'root' });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RouterEvents, decorators: [{
|
|
35
|
+
type: Injectable,
|
|
36
|
+
args: [{ providedIn: 'root' }]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i1.Router }]; } });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLWV2ZW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL3JvdXRlci1ldmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGVBQWUsRUFDZixlQUFlLEVBQ2YsTUFBTSxHQUVQLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFFeEMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLE1BQU0sRUFBRSxnQkFBZ0I7SUFDeEIsR0FBRyxFQUFFLGFBQWE7SUFDbEIsS0FBSyxFQUFFLGVBQWU7SUFDdEIsS0FBSyxFQUFFLGVBQWU7Q0FDdkIsQ0FBQztBQUdGLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUcsQ0FBQztJQUV0QyxTQUFTLENBQW9DLEdBQUcsVUFBYTtRQUczRCxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBa0IsRUFBZ0MsRUFBRSxDQUM5RSxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLElBQUksQ0FBQyxDQUFDO1FBRWpELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELG1CQUFtQixDQUFnQyxHQUFHLG1CQUFzQjtRQU8xRSxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBa0IsRUFBb0MsRUFBRSxDQUN0RixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFekUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBd0IsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7OzBHQWhDVSxZQUFZOzhHQUFaLFlBQVksY0FEQyxNQUFNOzRGQUNuQixZQUFZO2tCQUR4QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE5hdmlnYXRpb25DYW5jZWwsXG4gIE5hdmlnYXRpb25FbmQsXG4gIE5hdmlnYXRpb25FcnJvcixcbiAgTmF2aWdhdGlvblN0YXJ0LFxuICBSb3V0ZXIsXG4gIFJvdXRlckV2ZW50LFxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY29uc3QgTmF2aWdhdGlvbkV2ZW50ID0ge1xuICBDYW5jZWw6IE5hdmlnYXRpb25DYW5jZWwsXG4gIEVuZDogTmF2aWdhdGlvbkVuZCxcbiAgRXJyb3I6IE5hdmlnYXRpb25FcnJvcixcbiAgU3RhcnQ6IE5hdmlnYXRpb25TdGFydCxcbn07XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUm91dGVyRXZlbnRzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cblxuICBnZXRFdmVudHM8VCBleHRlbmRzIFJvdXRlckV2ZW50Q29uc3RydWN0b3JzPiguLi5ldmVudFR5cGVzOiBUKSB7XG4gICAgdHlwZSBGaWx0ZXJlZFJvdXRlckV2ZW50ID0gVCBleHRlbmRzIFR5cGU8aW5mZXIgQ3Rvcj5bXSA/IEN0b3IgOiBuZXZlcjtcblxuICAgIGNvbnN0IGZpbHRlclJvdXRlckV2ZW50cyA9IChldmVudDogUm91dGVyRXZlbnQpOiBldmVudCBpcyBGaWx0ZXJlZFJvdXRlckV2ZW50ID0+XG4gICAgICBldmVudFR5cGVzLnNvbWUodHlwZSA9PiBldmVudCBpbnN0YW5jZW9mIHR5cGUpO1xuXG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihmaWx0ZXJSb3V0ZXJFdmVudHMpKTtcbiAgfVxuXG4gIGdldE5hdmlnYXRpb25FdmVudHM8VCBleHRlbmRzIE5hdmlnYXRpb25FdmVudEtleXM+KC4uLm5hdmlnYXRpb25FdmVudEtleXM6IFQpIHtcbiAgICB0eXBlIEZpbHRlcmVkTmF2aWdhdGlvbkV2ZW50ID0gVCBleHRlbmRzIChpbmZlciBLZXkpW11cbiAgICAgID8gS2V5IGV4dGVuZHMgTmF2aWdhdGlvbkV2ZW50S2V5XG4gICAgICAgID8gSW5zdGFuY2VUeXBlPE5hdmlnYXRpb25FdmVudFR5cGVbS2V5XT5cbiAgICAgICAgOiBuZXZlclxuICAgICAgOiBuZXZlcjtcblxuICAgIGNvbnN0IGZpbHRlck5hdmlnYXRpb25FdmVudHMgPSAoZXZlbnQ6IFJvdXRlckV2ZW50KTogZXZlbnQgaXMgRmlsdGVyZWROYXZpZ2F0aW9uRXZlbnQgPT5cbiAgICAgIG5hdmlnYXRpb25FdmVudEtleXMuc29tZShrZXkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRXZlbnRba2V5XSk7XG5cbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKGZpbHRlck5hdmlnYXRpb25FdmVudHMpKTtcbiAgfVxuXG4gIGdldEFsbEV2ZW50cygpIHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIuZXZlbnRzO1xuICB9XG5cbiAgZ2V0QWxsTmF2aWdhdGlvbkV2ZW50cygpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoTmF2aWdhdGlvbkV2ZW50KSBhcyBOYXZpZ2F0aW9uRXZlbnRLZXlzO1xuICAgIHJldHVybiB0aGlzLmdldE5hdmlnYXRpb25FdmVudHMoLi4ua2V5cyk7XG4gIH1cbn1cblxudHlwZSBSb3V0ZXJFdmVudENvbnN0cnVjdG9ycyA9IFtUeXBlPFJvdXRlckV2ZW50PiwgLi4uVHlwZTxSb3V0ZXJFdmVudD5bXV07XG5cbnR5cGUgTmF2aWdhdGlvbkV2ZW50S2V5cyA9IFtOYXZpZ2F0aW9uRXZlbnRLZXksIC4uLk5hdmlnYXRpb25FdmVudEtleVtdXTtcblxudHlwZSBOYXZpZ2F0aW9uRXZlbnRUeXBlID0gdHlwZW9mIE5hdmlnYXRpb25FdmVudDtcblxuZXhwb3J0IHR5cGUgTmF2aWdhdGlvbkV2ZW50S2V5ID0ga2V5b2YgTmF2aWdhdGlvbkV2ZW50VHlwZTtcbiJdfQ==
|