@abp/ng.core 5.0.1 → 5.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2015/abp-ng.core.js → esm2020/abp-ng.core.mjs} +0 -0
- package/{esm2015/lib/abstracts/index.js → esm2020/lib/abstracts/index.mjs} +0 -0
- package/{esm2015/lib/abstracts/ng-model.component.js → esm2020/lib/abstracts/ng-model.component.mjs} +4 -4
- package/esm2020/lib/components/dynamic-layout.component.mjs +88 -0
- package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +0 -0
- package/{esm2015/lib/components/replaceable-route-container.component.js → esm2020/lib/components/replaceable-route-container.component.mjs} +4 -4
- package/{esm2015/lib/components/router-outlet.component.js → esm2020/lib/components/router-outlet.component.mjs} +4 -4
- package/{esm2015/lib/constants/different-locales.js → esm2020/lib/constants/different-locales.mjs} +0 -0
- package/{esm2015/lib/constants/index.js → esm2020/lib/constants/index.mjs} +0 -0
- package/esm2020/lib/core.module.mjs +281 -0
- package/{esm2015/lib/directives/autofocus.directive.js → esm2020/lib/directives/autofocus.directive.mjs} +4 -4
- package/{esm2015/lib/directives/debounce.directive.js → esm2020/lib/directives/debounce.directive.mjs} +4 -4
- package/{esm2015/lib/directives/for.directive.js → esm2020/lib/directives/for.directive.mjs} +4 -4
- package/{esm2015/lib/directives/form-submit.directive.js → esm2020/lib/directives/form-submit.directive.mjs} +4 -4
- package/{esm2015/lib/directives/index.js → esm2020/lib/directives/index.mjs} +0 -0
- package/{esm2015/lib/directives/init.directive.js → esm2020/lib/directives/init.directive.mjs} +4 -4
- package/{esm2015/lib/directives/permission.directive.js → esm2020/lib/directives/permission.directive.mjs} +4 -4
- package/esm2020/lib/directives/replaceable-template.directive.mjs +126 -0
- package/{esm2015/lib/directives/stop-propagation.directive.js → esm2020/lib/directives/stop-propagation.directive.mjs} +4 -4
- package/{esm2015/lib/enums/common.js → esm2020/lib/enums/common.mjs} +0 -0
- package/{esm2015/lib/enums/index.js → esm2020/lib/enums/index.mjs} +0 -0
- package/{esm2015/lib/guards/auth.guard.js → esm2020/lib/guards/auth.guard.mjs} +4 -4
- package/{esm2015/lib/guards/index.js → esm2020/lib/guards/index.mjs} +0 -0
- package/{esm2015/lib/guards/permission.guard.js → esm2020/lib/guards/permission.guard.mjs} +5 -5
- package/{esm2015/lib/handlers/oauth-configuration.handler.js → esm2020/lib/handlers/oauth-configuration.handler.mjs} +4 -4
- package/esm2020/lib/handlers/routes.handler.mjs +49 -0
- package/esm2020/lib/interceptors/api.interceptor.mjs +54 -0
- package/{esm2015/lib/interceptors/index.js → esm2020/lib/interceptors/index.mjs} +0 -0
- package/{esm2015/lib/localization.module.js → esm2020/lib/localization.module.mjs} +5 -5
- package/{esm2015/lib/models/auth.js → esm2020/lib/models/auth.mjs} +0 -0
- package/{esm2015/lib/models/common.js → esm2020/lib/models/common.mjs} +0 -0
- package/{esm2015/lib/models/dtos.js → esm2020/lib/models/dtos.mjs} +0 -0
- package/{esm2015/lib/models/environment.js → esm2020/lib/models/environment.mjs} +0 -0
- package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +0 -0
- package/{esm2015/lib/models/localization.js → esm2020/lib/models/localization.mjs} +0 -0
- package/{esm2015/lib/models/replaceable-components.js → esm2020/lib/models/replaceable-components.mjs} +0 -0
- package/{esm2015/lib/models/rest.js → esm2020/lib/models/rest.mjs} +0 -0
- package/{esm2015/lib/models/session.js → esm2020/lib/models/session.mjs} +0 -0
- package/{esm2015/lib/models/utility.js → esm2020/lib/models/utility.mjs} +0 -0
- package/{esm2015/lib/pipes/index.js → esm2020/lib/pipes/index.mjs} +2 -1
- package/{esm2015/lib/pipes/localization.pipe.js → esm2020/lib/pipes/localization.pipe.mjs} +5 -5
- package/{esm2015/lib/pipes/sort.pipe.js → esm2020/lib/pipes/sort.pipe.mjs} +5 -5
- package/esm2020/lib/pipes/to-injector.pipe.mjs +29 -0
- package/{esm2015/lib/providers/cookie-language.provider.js → esm2020/lib/providers/cookie-language.provider.mjs} +0 -0
- package/{esm2015/lib/providers/locale.provider.js → esm2020/lib/providers/locale.provider.mjs} +0 -0
- package/{esm2015/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.js → esm2020/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.mjs} +4 -4
- package/{esm2015/lib/proxy/pages/abp/multi-tenancy/index.js → esm2020/lib/proxy/pages/abp/multi-tenancy/index.mjs} +0 -0
- package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.mjs} +4 -4
- package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.mjs} +0 -0
- package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.mjs} +4 -4
- package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.mjs} +0 -0
- package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.mjs} +0 -0
- package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.mjs} +0 -0
- package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.mjs} +0 -0
- package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.mjs} +0 -0
- package/{esm2015/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.js → esm2020/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.mjs} +0 -0
- package/{esm2015/lib/proxy/volo/abp/http/modeling/index.js → esm2020/lib/proxy/volo/abp/http/modeling/index.mjs} +0 -0
- package/{esm2015/lib/proxy/volo/abp/http/modeling/models.js → esm2020/lib/proxy/volo/abp/http/modeling/models.mjs} +0 -0
- package/{esm2015/lib/proxy/volo/abp/localization/index.js → esm2020/lib/proxy/volo/abp/localization/index.mjs} +0 -0
- package/{esm2015/lib/proxy/volo/abp/localization/models.js → esm2020/lib/proxy/volo/abp/localization/models.mjs} +0 -0
- package/{esm2015/lib/proxy/volo/abp/models.js → esm2020/lib/proxy/volo/abp/models.mjs} +0 -0
- package/esm2020/lib/services/auth.service.mjs +44 -0
- package/{esm2015/lib/services/config-state.service.js → esm2020/lib/services/config-state.service.mjs} +13 -16
- package/{esm2015/lib/services/content-projection.service.js → esm2020/lib/services/content-projection.service.mjs} +4 -4
- package/{esm2015/lib/services/dom-insertion.service.js → esm2020/lib/services/dom-insertion.service.mjs} +4 -4
- package/{esm2015/lib/services/environment.service.js → esm2020/lib/services/environment.service.mjs} +4 -4
- package/{esm2015/lib/services/http-error-reporter.service.js → esm2020/lib/services/http-error-reporter.service.mjs} +4 -4
- package/{esm2015/lib/services/http-wait.service.js → esm2020/lib/services/http-wait.service.mjs} +4 -4
- package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +0 -0
- package/{esm2015/lib/services/lazy-load.service.js → esm2020/lib/services/lazy-load.service.mjs} +4 -4
- package/{esm2015/lib/services/list.service.js → esm2020/lib/services/list.service.mjs} +4 -4
- package/esm2020/lib/services/localization.service.mjs +182 -0
- package/{esm2015/lib/services/multi-tenancy.service.js → esm2020/lib/services/multi-tenancy.service.mjs} +4 -4
- package/{esm2015/lib/services/permission.service.js → esm2020/lib/services/permission.service.mjs} +5 -6
- package/{esm2015/lib/services/replaceable-components.service.js → esm2020/lib/services/replaceable-components.service.mjs} +4 -4
- package/{esm2015/lib/services/resource-wait.service.js → esm2020/lib/services/resource-wait.service.mjs} +4 -4
- package/esm2020/lib/services/rest.service.mjs +66 -0
- package/{esm2015/lib/services/router-events.service.js → esm2020/lib/services/router-events.service.mjs} +4 -4
- package/{esm2015/lib/services/router-wait.service.js → esm2020/lib/services/router-wait.service.mjs} +4 -4
- package/esm2020/lib/services/routes.service.mjs +145 -0
- package/{esm2015/lib/services/session-state.service.js → esm2020/lib/services/session-state.service.mjs} +5 -5
- package/{esm2015/lib/services/subscription.service.js → esm2020/lib/services/subscription.service.mjs} +4 -4
- package/{esm2015/lib/services/track-by.service.js → esm2020/lib/services/track-by.service.mjs} +4 -4
- package/esm2020/lib/strategies/auth-flow.strategy.mjs +190 -0
- package/{esm2015/lib/strategies/container.strategy.js → esm2020/lib/strategies/container.strategy.mjs} +0 -0
- package/{esm2015/lib/strategies/content-security.strategy.js → esm2020/lib/strategies/content-security.strategy.mjs} +0 -0
- package/{esm2015/lib/strategies/content.strategy.js → esm2020/lib/strategies/content.strategy.mjs} +0 -0
- package/{esm2015/lib/strategies/context.strategy.js → esm2020/lib/strategies/context.strategy.mjs} +0 -0
- package/{esm2015/lib/strategies/cross-origin.strategy.js → esm2020/lib/strategies/cross-origin.strategy.mjs} +0 -0
- package/{esm2015/lib/strategies/dom.strategy.js → esm2020/lib/strategies/dom.strategy.mjs} +0 -0
- package/{esm2015/lib/strategies/index.js → esm2020/lib/strategies/index.mjs} +0 -0
- package/{esm2015/lib/strategies/loading.strategy.js → esm2020/lib/strategies/loading.strategy.mjs} +0 -0
- package/{esm2015/lib/strategies/projection.strategy.js → esm2020/lib/strategies/projection.strategy.mjs} +0 -0
- package/{esm2015/lib/tokens/app-config.token.js → esm2020/lib/tokens/app-config.token.mjs} +0 -0
- package/{esm2015/lib/tokens/cookie-language-key.token.js → esm2020/lib/tokens/cookie-language-key.token.mjs} +0 -0
- package/{esm2015/lib/tokens/index.js → esm2020/lib/tokens/index.mjs} +0 -0
- package/{esm2015/lib/tokens/list.token.js → esm2020/lib/tokens/list.token.mjs} +0 -0
- package/{esm2015/lib/tokens/localization.token.js → esm2020/lib/tokens/localization.token.mjs} +0 -0
- package/{esm2015/lib/tokens/lodaer-delay.token.js → esm2020/lib/tokens/lodaer-delay.token.mjs} +0 -0
- package/{esm2015/lib/tokens/manage-profile.token.js → esm2020/lib/tokens/manage-profile.token.mjs} +0 -0
- package/esm2020/lib/tokens/options.token.mjs +8 -0
- package/{esm2015/lib/tokens/tenant-key.token.js → esm2020/lib/tokens/tenant-key.token.mjs} +0 -0
- package/esm2020/lib/utils/array-utils.mjs +7 -0
- package/{esm2015/lib/utils/auth-utils.js → esm2020/lib/utils/auth-utils.mjs} +0 -0
- package/{esm2015/lib/utils/common-utils.js → esm2020/lib/utils/common-utils.mjs} +0 -0
- package/{esm2015/lib/utils/date-extensions.js → esm2020/lib/utils/date-extensions.mjs} +0 -0
- package/{esm2015/lib/utils/date-utils.js → esm2020/lib/utils/date-utils.mjs} +0 -0
- package/{esm2015/lib/utils/environment-utils.js → esm2020/lib/utils/environment-utils.mjs} +0 -0
- package/{esm2015/lib/utils/factory-utils.js → esm2020/lib/utils/factory-utils.mjs} +0 -0
- package/{esm2015/lib/utils/file-utils.js → esm2020/lib/utils/file-utils.mjs} +0 -0
- package/{esm2015/lib/utils/form-utils.js → esm2020/lib/utils/form-utils.mjs} +0 -0
- package/{esm2015/lib/utils/generator-utils.js → esm2020/lib/utils/generator-utils.mjs} +0 -0
- package/{esm2015/lib/utils/http-utils.js → esm2020/lib/utils/http-utils.mjs} +0 -0
- package/{esm2015/lib/utils/index.js → esm2020/lib/utils/index.mjs} +0 -0
- package/esm2020/lib/utils/initial-utils.mjs +63 -0
- package/esm2020/lib/utils/internal-store-utils.mjs +36 -0
- package/{esm2015/lib/utils/lazy-load-utils.js → esm2020/lib/utils/lazy-load-utils.mjs} +0 -0
- package/esm2020/lib/utils/localization-utils.mjs +49 -0
- package/esm2020/lib/utils/multi-tenancy-utils.mjs +78 -0
- package/{esm2015/lib/utils/number-utils.js → esm2020/lib/utils/number-utils.mjs} +0 -0
- package/{esm2015/lib/utils/object-utils.js → esm2020/lib/utils/object-utils.mjs} +0 -0
- package/esm2020/lib/utils/route-utils.mjs +26 -0
- package/esm2020/lib/utils/string-utils.mjs +25 -0
- package/{esm2015/lib/utils/tree-utils.js → esm2020/lib/utils/tree-utils.mjs} +1 -1
- package/{esm2015/lib/validators/age.validator.js → esm2020/lib/validators/age.validator.mjs} +0 -0
- package/{esm2015/lib/validators/credit-card.validator.js → esm2020/lib/validators/credit-card.validator.mjs} +0 -0
- package/{esm2015/lib/validators/index.js → esm2020/lib/validators/index.mjs} +0 -0
- package/{esm2015/lib/validators/range.validator.js → esm2020/lib/validators/range.validator.mjs} +0 -0
- package/{esm2015/lib/validators/required.validator.js → esm2020/lib/validators/required.validator.mjs} +0 -0
- package/{esm2015/lib/validators/string-length.validator.js → esm2020/lib/validators/string-length.validator.mjs} +0 -0
- package/{esm2015/lib/validators/url.validator.js → esm2020/lib/validators/url.validator.mjs} +0 -0
- package/{esm2015/locale/abp-ng.core-locale.js → esm2020/locale/abp-ng.core-locale.mjs} +0 -0
- package/{esm2015/locale/public-api.js → esm2020/locale/public-api.mjs} +0 -0
- package/esm2020/locale/utils/register-locale.mjs +47 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/{esm2015/testing/abp-ng.core-testing.js → esm2020/testing/abp-ng.core-testing.mjs} +0 -0
- package/esm2020/testing/lib/core-testing.module.mjs +63 -0
- package/{esm2015/testing/lib/services/index.js → esm2020/testing/lib/services/index.mjs} +0 -0
- package/{esm2015/testing/lib/services/mock-permission.service.js → esm2020/testing/lib/services/mock-permission.service.mjs} +4 -4
- package/{esm2015/testing/lib/services/mock-rest.service.js → esm2020/testing/lib/services/mock-rest.service.mjs} +4 -4
- package/{esm2015/testing/lib/utils/clear-page.util.js → esm2020/testing/lib/utils/clear-page.util.mjs} +0 -0
- package/{esm2015/testing/lib/utils/index.js → esm2020/testing/lib/utils/index.mjs} +0 -0
- package/{esm2015/testing/lib/utils/wait.util.js → esm2020/testing/lib/utils/wait.util.mjs} +0 -0
- package/{esm2015/testing/public-api.js → esm2020/testing/public-api.mjs} +0 -0
- package/fesm2015/{abp-ng.core-locale.js → abp-ng.core-locale.mjs} +11 -4
- package/fesm2015/abp-ng.core-locale.mjs.map +1 -0
- package/fesm2015/{abp-ng.core-testing.js → abp-ng.core-testing.mjs} +18 -16
- package/fesm2015/abp-ng.core-testing.mjs.map +1 -0
- package/fesm2015/{abp-ng.core.js → abp-ng.core.mjs} +812 -768
- package/fesm2015/abp-ng.core.mjs.map +1 -0
- package/fesm2020/abp-ng.core-locale.mjs +54 -0
- package/fesm2020/abp-ng.core-locale.mjs.map +1 -0
- package/fesm2020/abp-ng.core-testing.mjs +140 -0
- package/fesm2020/abp-ng.core-testing.mjs.map +1 -0
- package/fesm2020/abp-ng.core.mjs +4211 -0
- package/fesm2020/abp-ng.core.mjs.map +1 -0
- package/lib/core.module.d.ts +9 -8
- package/lib/pipes/index.d.ts +1 -0
- package/lib/pipes/to-injector.pipe.d.ts +10 -0
- package/lib/services/environment.service.d.ts +1 -0
- package/lib/services/list.service.d.ts +1 -1
- package/lib/services/subscription.service.d.ts +2 -2
- package/lib/utils/array-utils.d.ts +1 -1
- package/lib/utils/string-utils.d.ts +1 -0
- package/lib/utils/tree-utils.d.ts +2 -2
- package/locale/package.json +5 -5
- package/package.json +37 -8
- package/src/lib/proxy/README.md +17 -0
- package/testing/package.json +5 -5
- package/bundles/abp-ng.core-locale.umd.js +0 -381
- package/bundles/abp-ng.core-locale.umd.js.map +0 -1
- package/bundles/abp-ng.core-testing.umd.js +0 -494
- package/bundles/abp-ng.core-testing.umd.js.map +0 -1
- package/bundles/abp-ng.core.umd.js +0 -5277
- package/bundles/abp-ng.core.umd.js.map +0 -1
- package/esm2015/lib/components/dynamic-layout.component.js +0 -89
- package/esm2015/lib/core.module.js +0 -281
- package/esm2015/lib/directives/replaceable-template.directive.js +0 -121
- package/esm2015/lib/handlers/routes.handler.js +0 -47
- package/esm2015/lib/interceptors/api.interceptor.js +0 -54
- package/esm2015/lib/services/auth.service.js +0 -47
- package/esm2015/lib/services/localization.service.js +0 -182
- package/esm2015/lib/services/rest.service.js +0 -63
- package/esm2015/lib/services/routes.service.js +0 -147
- package/esm2015/lib/strategies/auth-flow.strategy.js +0 -202
- package/esm2015/lib/tokens/options.token.js +0 -8
- package/esm2015/lib/utils/array-utils.js +0 -7
- package/esm2015/lib/utils/initial-utils.js +0 -64
- package/esm2015/lib/utils/internal-store-utils.js +0 -36
- package/esm2015/lib/utils/localization-utils.js +0 -50
- package/esm2015/lib/utils/multi-tenancy-utils.js +0 -83
- package/esm2015/lib/utils/route-utils.js +0 -27
- package/esm2015/lib/utils/string-utils.js +0 -21
- package/esm2015/locale/utils/register-locale.js +0 -43
- package/esm2015/testing/lib/core-testing.module.js +0 -62
- package/fesm2015/abp-ng.core-locale.js.map +0 -1
- package/fesm2015/abp-ng.core-testing.js.map +0 -1
- package/fesm2015/abp-ng.core.js.map +0 -1
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { Component, Injector, isDevMode, Optional, SkipSelf } from '@angular/core';
|
|
2
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
|
-
import { LocalizationService } from '../services/localization.service';
|
|
4
|
-
import { ReplaceableComponentsService } from '../services/replaceable-components.service';
|
|
5
|
-
import { RouterEvents } from '../services/router-events.service';
|
|
6
|
-
import { RoutesService } from '../services/routes.service';
|
|
7
|
-
import { SubscriptionService } from '../services/subscription.service';
|
|
8
|
-
import { findRoute, getRoutePath } from '../utils/route-utils';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "../services/localization.service";
|
|
11
|
-
import * as i2 from "../services/replaceable-components.service";
|
|
12
|
-
import * as i3 from "../services/subscription.service";
|
|
13
|
-
import * as i4 from "../services/router-events.service";
|
|
14
|
-
import * as i5 from "@angular/common";
|
|
15
|
-
export class DynamicLayoutComponent {
|
|
16
|
-
constructor(injector, localizationService, replaceableComponents, subscription, routerEvents, dynamicLayoutComponent) {
|
|
17
|
-
this.localizationService = localizationService;
|
|
18
|
-
this.replaceableComponents = replaceableComponents;
|
|
19
|
-
this.subscription = subscription;
|
|
20
|
-
this.routerEvents = routerEvents;
|
|
21
|
-
// TODO: Consider a shared enum (eThemeSharedComponents) for known layouts
|
|
22
|
-
this.layouts = new Map([
|
|
23
|
-
['application', 'Theme.ApplicationLayoutComponent'],
|
|
24
|
-
['account', 'Theme.AccountLayoutComponent'],
|
|
25
|
-
['empty', 'Theme.EmptyLayoutComponent'],
|
|
26
|
-
]);
|
|
27
|
-
this.isLayoutVisible = true;
|
|
28
|
-
if (dynamicLayoutComponent) {
|
|
29
|
-
if (isDevMode)
|
|
30
|
-
console.warn('DynamicLayoutComponent must be used only in AppComponent.');
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
this.route = injector.get(ActivatedRoute);
|
|
34
|
-
this.router = injector.get(Router);
|
|
35
|
-
this.routes = injector.get(RoutesService);
|
|
36
|
-
this.checkLayoutOnNavigationEnd();
|
|
37
|
-
this.listenToLanguageChange();
|
|
38
|
-
}
|
|
39
|
-
checkLayoutOnNavigationEnd() {
|
|
40
|
-
const navigationEnd$ = this.routerEvents.getNavigationEvents('End');
|
|
41
|
-
this.subscription.addOne(navigationEnd$, () => this.getLayout());
|
|
42
|
-
}
|
|
43
|
-
getLayout() {
|
|
44
|
-
var _a;
|
|
45
|
-
let expectedLayout = (this.route.snapshot.data || {}).layout;
|
|
46
|
-
if (!expectedLayout) {
|
|
47
|
-
let node = findRoute(this.routes, getRoutePath(this.router));
|
|
48
|
-
node = { parent: node };
|
|
49
|
-
while (node.parent) {
|
|
50
|
-
node = node.parent;
|
|
51
|
-
if (node.layout) {
|
|
52
|
-
expectedLayout = node.layout;
|
|
53
|
-
break;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
if (!expectedLayout)
|
|
58
|
-
expectedLayout = "empty" /* empty */;
|
|
59
|
-
if (this.layoutKey === expectedLayout)
|
|
60
|
-
return;
|
|
61
|
-
const key = this.layouts.get(expectedLayout);
|
|
62
|
-
this.layout = (_a = this.getComponent(key)) === null || _a === void 0 ? void 0 : _a.component;
|
|
63
|
-
this.layoutKey = expectedLayout;
|
|
64
|
-
}
|
|
65
|
-
listenToLanguageChange() {
|
|
66
|
-
this.subscription.addOne(this.localizationService.languageChange$, () => {
|
|
67
|
-
this.isLayoutVisible = false;
|
|
68
|
-
setTimeout(() => (this.isLayoutVisible = true), 0);
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
getComponent(key) {
|
|
72
|
-
return this.replaceableComponents.get(key);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
DynamicLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicLayoutComponent, deps: [{ token: i0.Injector }, { token: i1.LocalizationService }, { token: i2.ReplaceableComponentsService }, { token: i3.SubscriptionService }, { token: i4.RouterEvents }, { token: DynamicLayoutComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
76
|
-
DynamicLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DynamicLayoutComponent, selector: "abp-dynamic-layout", providers: [SubscriptionService], ngImport: i0, template: ` <ng-container *ngIf="isLayoutVisible" [ngComponentOutlet]="layout"></ng-container> `, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModuleFactory"] }] });
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DynamicLayoutComponent, decorators: [{
|
|
78
|
-
type: Component,
|
|
79
|
-
args: [{
|
|
80
|
-
selector: 'abp-dynamic-layout',
|
|
81
|
-
template: ` <ng-container *ngIf="isLayoutVisible" [ngComponentOutlet]="layout"></ng-container> `,
|
|
82
|
-
providers: [SubscriptionService],
|
|
83
|
-
}]
|
|
84
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.LocalizationService }, { type: i2.ReplaceableComponentsService }, { type: i3.SubscriptionService }, { type: i4.RouterEvents }, { type: DynamicLayoutComponent, decorators: [{
|
|
85
|
-
type: Optional
|
|
86
|
-
}, {
|
|
87
|
-
type: SkipSelf
|
|
88
|
-
}] }]; } });
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBUS9ELE1BQU0sT0FBTyxzQkFBc0I7SUFpQmpDLFlBQ0UsUUFBa0IsRUFDVixtQkFBd0MsRUFDeEMscUJBQW1ELEVBQ25ELFlBQWlDLEVBQ2pDLFlBQTBCLEVBQ1Ysc0JBQThDO1FBSjlELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUE4QjtRQUNuRCxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFsQnBDLDBFQUEwRTtRQUNqRSxZQUFPLEdBQUcsSUFBSSxHQUFHLENBQUM7WUFDekIsQ0FBQyxhQUFhLEVBQUUsa0NBQWtDLENBQUM7WUFDbkQs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LFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxzRkFBc0Y7b0JBQ2hHLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUNqQzsyTkF3Qm1ELHNCQUFzQjswQkFBckUsUUFBUTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIGlzRGV2TW9kZSwgT3B0aW9uYWwsIFNraXBTZWxmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBlTGF5b3V0VHlwZSB9IGZyb20gJy4uL2VudW1zL2NvbW1vbic7XHJcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFJlcGxhY2VhYmxlQ29tcG9uZW50cyB9IGZyb20gJy4uL21vZGVscy9yZXBsYWNlYWJsZS1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVwbGFjZWFibGVDb21wb25lbnRzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3JlcGxhY2VhYmxlLWNvbXBvbmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlckV2ZW50cyB9IGZyb20gJy4uL3NlcnZpY2VzL3JvdXRlci1ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yb3V0ZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zdWJzY3JpcHRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IGZpbmRSb3V0ZSwgZ2V0Um91dGVQYXRoIH0gZnJvbSAnLi4vdXRpbHMvcm91dGUtdXRpbHMnO1xyXG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJy4uL3V0aWxzL3RyZWUtdXRpbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtZHluYW1pYy1sYXlvdXQnLFxyXG4gIHRlbXBsYXRlOiBgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xheW91dFZpc2libGVcIiBbbmdDb21wb25lbnRPdXRsZXRdPVwibGF5b3V0XCI+PC9uZy1jb250YWluZXI+IGAsXHJcbiAgcHJvdmlkZXJzOiBbU3Vic2NyaXB0aW9uU2VydmljZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljTGF5b3V0Q29tcG9uZW50IHtcclxuICBsYXlvdXQ6IFR5cGU8YW55PjtcclxuICBsYXlvdXRLZXk6IGVMYXlvdXRUeXBlO1xyXG5cclxuICAvLyBUT0RPOiBDb25zaWRlciBhIHNoYXJlZCBlbnVtIChlVGhlbWVTaGFyZWRDb21wb25lbnRzKSBmb3Iga25vd24gbGF5b3V0c1xyXG4gIHJlYWRvbmx5IGxheW91dHMgPSBuZXcgTWFwKFtcclxuICAgIFsnYXBwbGljYXRpb24nLCAnVGhlbWUuQXBwbGljYXRpb25MYXlvdXRDb21wb25lbnQnXSxcclxuICAgIFsnYWNjb3VudCcsICdUaGVtZS5BY2NvdW50TGF5b3V0Q29tcG9uZW50J10sXHJcbiAgICBbJ2VtcHR5JywgJ1RoZW1lLkVtcHR5TGF5b3V0Q29tcG9uZW50J10sXHJcbiAgXSk7XHJcblxyXG4gIGlzTGF5b3V0VmlzaWJsZSA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgcm91dGVyOiBSb3V0ZXI7XHJcbiAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGU7XHJcbiAgcHJpdmF0ZSByb3V0ZXM6IFJvdXRlc1NlcnZpY2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBsb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZXBsYWNlYWJsZUNvbXBvbmVudHM6IFJlcGxhY2VhYmxlQ29tcG9uZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyRXZlbnRzOiBSb3V0ZXJFdmVudHMsXHJcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBkeW5hbWljTGF5b3V0Q29tcG9uZW50OiBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxyXG4gICkge1xyXG4gICAgaWYgKGR5bmFtaWNMYXlvdXRDb21wb25lbnQpIHtcclxuICAgICAgaWYgKGlzRGV2TW9kZSkgY29uc29sZS53YXJuKCdEeW5hbWljTGF5b3V0Q29tcG9uZW50IG11c3QgYmUgdXNlZCBvbmx5IGluIEFwcENvbXBvbmVudC4nKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yb3V0ZSA9IGluamVjdG9yLmdldChBY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgICB0aGlzLnJvdXRlciA9IGluamVjdG9yLmdldChSb3V0ZXIpO1xyXG4gICAgdGhpcy5yb3V0ZXMgPSBpbmplY3Rvci5nZXQoUm91dGVzU2VydmljZSk7XHJcblxyXG4gICAgdGhpcy5jaGVja0xheW91dE9uTmF2aWdhdGlvbkVuZCgpO1xyXG4gICAgdGhpcy5saXN0ZW5Ub0xhbmd1YWdlQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrTGF5b3V0T25OYXZpZ2F0aW9uRW5kKCkge1xyXG4gICAgY29uc3QgbmF2aWdhdGlvbkVuZCQgPSB0aGlzLnJvdXRlckV2ZW50cy5nZXROYXZpZ2F0aW9uRXZlbnRzKCdFbmQnKTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZE9uZShuYXZpZ2F0aW9uRW5kJCwgKCkgPT4gdGhpcy5nZXRMYXlvdXQoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldExheW91dCgpIHtcclxuICAgIGxldCBleHBlY3RlZExheW91dCA9ICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEgfHwge30pLmxheW91dDtcclxuXHJcbiAgICBpZiAoIWV4cGVjdGVkTGF5b3V0KSB7XHJcbiAgICAgIGxldCBub2RlID0gZmluZFJvdXRlKHRoaXMucm91dGVzLCBnZXRSb3V0ZVBhdGgodGhpcy5yb3V0ZXIpKTtcclxuICAgICAgbm9kZSA9IHsgcGFyZW50OiBub2RlIH0gYXMgVHJlZU5vZGU8QUJQLlJvdXRlPjtcclxuXHJcbiAgICAgIHdoaWxlIChub2RlLnBhcmVudCkge1xyXG4gICAgICAgIG5vZGUgPSBub2RlLnBhcmVudDtcclxuXHJcbiAgICAgICAgaWYgKG5vZGUubGF5b3V0KSB7XHJcbiAgICAgICAgICBleHBlY3RlZExheW91dCA9IG5vZGUubGF5b3V0O1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFleHBlY3RlZExheW91dCkgZXhwZWN0ZWRMYXlvdXQgPSBlTGF5b3V0VHlwZS5lbXB0eTtcclxuXHJcbiAgICBpZiAodGhpcy5sYXlvdXRLZXkgPT09IGV4cGVjdGVkTGF5b3V0KSByZXR1cm47XHJcblxyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5sYXlvdXRzLmdldChleHBlY3RlZExheW91dCk7XHJcbiAgICB0aGlzLmxheW91dCA9IHRoaXMuZ2V0Q29tcG9uZW50KGtleSk/LmNvbXBvbmVudDtcclxuICAgIHRoaXMubGF5b3V0S2V5ID0gZXhwZWN0ZWRMYXlvdXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxpc3RlblRvTGFuZ3VhZ2VDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGRPbmUodGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmxhbmd1YWdlQ2hhbmdlJCwgKCkgPT4ge1xyXG4gICAgICB0aGlzLmlzTGF5b3V0VmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLmlzTGF5b3V0VmlzaWJsZSA9IHRydWUpLCAwKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDb21wb25lbnQoa2V5OiBzdHJpbmcpOiBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVDb21wb25lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMucmVwbGFjZWFibGVDb21wb25lbnRzLmdldChrZXkpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,281 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { HttpClientModule, HttpClientXsrfModule, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
3
|
-
import { APP_INITIALIZER, Injector, NgModule } from '@angular/core';
|
|
4
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
|
-
import { RouterModule } from '@angular/router';
|
|
6
|
-
import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc';
|
|
7
|
-
import { AbstractNgModelComponent } from './abstracts/ng-model.component';
|
|
8
|
-
import { DynamicLayoutComponent } from './components/dynamic-layout.component';
|
|
9
|
-
import { ReplaceableRouteContainerComponent } from './components/replaceable-route-container.component';
|
|
10
|
-
import { RouterOutletComponent } from './components/router-outlet.component';
|
|
11
|
-
import { AutofocusDirective } from './directives/autofocus.directive';
|
|
12
|
-
import { InputEventDebounceDirective } from './directives/debounce.directive';
|
|
13
|
-
import { ForDirective } from './directives/for.directive';
|
|
14
|
-
import { FormSubmitDirective } from './directives/form-submit.directive';
|
|
15
|
-
import { InitDirective } from './directives/init.directive';
|
|
16
|
-
import { PermissionDirective } from './directives/permission.directive';
|
|
17
|
-
import { ReplaceableTemplateDirective } from './directives/replaceable-template.directive';
|
|
18
|
-
import { StopPropagationDirective } from './directives/stop-propagation.directive';
|
|
19
|
-
import { OAuthConfigurationHandler } from './handlers/oauth-configuration.handler';
|
|
20
|
-
import { RoutesHandler } from './handlers/routes.handler';
|
|
21
|
-
import { ApiInterceptor } from './interceptors/api.interceptor';
|
|
22
|
-
import { LocalizationModule } from './localization.module';
|
|
23
|
-
import { LocalizationPipe } from './pipes/localization.pipe';
|
|
24
|
-
import { SortPipe } from './pipes/sort.pipe';
|
|
25
|
-
import { CookieLanguageProvider } from './providers/cookie-language.provider';
|
|
26
|
-
import { LocaleProvider } from './providers/locale.provider';
|
|
27
|
-
import { LocalizationService } from './services/localization.service';
|
|
28
|
-
import { oAuthStorage } from './strategies/auth-flow.strategy';
|
|
29
|
-
import { localizationContributor, LOCALIZATIONS } from './tokens/localization.token';
|
|
30
|
-
import { coreOptionsFactory, CORE_OPTIONS } from './tokens/options.token';
|
|
31
|
-
import { TENANT_KEY } from './tokens/tenant-key.token';
|
|
32
|
-
import { noop } from './utils/common-utils';
|
|
33
|
-
import './utils/date-extensions';
|
|
34
|
-
import { getInitialData, localeInitializer } from './utils/initial-utils';
|
|
35
|
-
import * as i0 from "@angular/core";
|
|
36
|
-
import * as i1 from "angular-oauth2-oidc";
|
|
37
|
-
import * as i2 from "@angular/common/http";
|
|
38
|
-
export function storageFactory() {
|
|
39
|
-
return oAuthStorage;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* BaseCoreModule is the module that holds
|
|
43
|
-
* all imports, declarations, exports, and entryComponents
|
|
44
|
-
* but not the providers.
|
|
45
|
-
* This module will be imported and exported by all others.
|
|
46
|
-
*/
|
|
47
|
-
export class BaseCoreModule {
|
|
48
|
-
}
|
|
49
|
-
BaseCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
50
|
-
BaseCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseCoreModule, declarations: [AbstractNgModelComponent,
|
|
51
|
-
AutofocusDirective,
|
|
52
|
-
DynamicLayoutComponent,
|
|
53
|
-
ForDirective,
|
|
54
|
-
FormSubmitDirective,
|
|
55
|
-
InitDirective,
|
|
56
|
-
InputEventDebounceDirective,
|
|
57
|
-
PermissionDirective,
|
|
58
|
-
ReplaceableRouteContainerComponent,
|
|
59
|
-
ReplaceableTemplateDirective,
|
|
60
|
-
RouterOutletComponent,
|
|
61
|
-
SortPipe,
|
|
62
|
-
StopPropagationDirective], imports: [OAuthModule,
|
|
63
|
-
CommonModule,
|
|
64
|
-
HttpClientModule,
|
|
65
|
-
FormsModule,
|
|
66
|
-
ReactiveFormsModule,
|
|
67
|
-
RouterModule,
|
|
68
|
-
LocalizationModule], exports: [CommonModule,
|
|
69
|
-
HttpClientModule,
|
|
70
|
-
FormsModule,
|
|
71
|
-
ReactiveFormsModule,
|
|
72
|
-
RouterModule,
|
|
73
|
-
LocalizationModule,
|
|
74
|
-
AbstractNgModelComponent,
|
|
75
|
-
AutofocusDirective,
|
|
76
|
-
DynamicLayoutComponent,
|
|
77
|
-
ForDirective,
|
|
78
|
-
FormSubmitDirective,
|
|
79
|
-
InitDirective,
|
|
80
|
-
InputEventDebounceDirective,
|
|
81
|
-
PermissionDirective,
|
|
82
|
-
ReplaceableRouteContainerComponent,
|
|
83
|
-
ReplaceableTemplateDirective,
|
|
84
|
-
RouterOutletComponent,
|
|
85
|
-
SortPipe,
|
|
86
|
-
StopPropagationDirective] });
|
|
87
|
-
BaseCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseCoreModule, providers: [LocalizationPipe], imports: [[
|
|
88
|
-
OAuthModule,
|
|
89
|
-
CommonModule,
|
|
90
|
-
HttpClientModule,
|
|
91
|
-
FormsModule,
|
|
92
|
-
ReactiveFormsModule,
|
|
93
|
-
RouterModule,
|
|
94
|
-
LocalizationModule,
|
|
95
|
-
], CommonModule,
|
|
96
|
-
HttpClientModule,
|
|
97
|
-
FormsModule,
|
|
98
|
-
ReactiveFormsModule,
|
|
99
|
-
RouterModule,
|
|
100
|
-
LocalizationModule] });
|
|
101
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseCoreModule, decorators: [{
|
|
102
|
-
type: NgModule,
|
|
103
|
-
args: [{
|
|
104
|
-
exports: [
|
|
105
|
-
CommonModule,
|
|
106
|
-
HttpClientModule,
|
|
107
|
-
FormsModule,
|
|
108
|
-
ReactiveFormsModule,
|
|
109
|
-
RouterModule,
|
|
110
|
-
LocalizationModule,
|
|
111
|
-
AbstractNgModelComponent,
|
|
112
|
-
AutofocusDirective,
|
|
113
|
-
DynamicLayoutComponent,
|
|
114
|
-
ForDirective,
|
|
115
|
-
FormSubmitDirective,
|
|
116
|
-
InitDirective,
|
|
117
|
-
InputEventDebounceDirective,
|
|
118
|
-
PermissionDirective,
|
|
119
|
-
ReplaceableRouteContainerComponent,
|
|
120
|
-
ReplaceableTemplateDirective,
|
|
121
|
-
RouterOutletComponent,
|
|
122
|
-
SortPipe,
|
|
123
|
-
StopPropagationDirective,
|
|
124
|
-
],
|
|
125
|
-
imports: [
|
|
126
|
-
OAuthModule,
|
|
127
|
-
CommonModule,
|
|
128
|
-
HttpClientModule,
|
|
129
|
-
FormsModule,
|
|
130
|
-
ReactiveFormsModule,
|
|
131
|
-
RouterModule,
|
|
132
|
-
LocalizationModule,
|
|
133
|
-
],
|
|
134
|
-
declarations: [
|
|
135
|
-
AbstractNgModelComponent,
|
|
136
|
-
AutofocusDirective,
|
|
137
|
-
DynamicLayoutComponent,
|
|
138
|
-
ForDirective,
|
|
139
|
-
FormSubmitDirective,
|
|
140
|
-
InitDirective,
|
|
141
|
-
InputEventDebounceDirective,
|
|
142
|
-
PermissionDirective,
|
|
143
|
-
ReplaceableRouteContainerComponent,
|
|
144
|
-
ReplaceableTemplateDirective,
|
|
145
|
-
RouterOutletComponent,
|
|
146
|
-
SortPipe,
|
|
147
|
-
StopPropagationDirective,
|
|
148
|
-
],
|
|
149
|
-
providers: [LocalizationPipe],
|
|
150
|
-
entryComponents: [
|
|
151
|
-
RouterOutletComponent,
|
|
152
|
-
DynamicLayoutComponent,
|
|
153
|
-
ReplaceableRouteContainerComponent,
|
|
154
|
-
],
|
|
155
|
-
}]
|
|
156
|
-
}] });
|
|
157
|
-
/**
|
|
158
|
-
* RootCoreModule is the module that will be used at root level
|
|
159
|
-
* and it introduces imports useful at root level (e.g. NGXS)
|
|
160
|
-
*/
|
|
161
|
-
export class RootCoreModule {
|
|
162
|
-
}
|
|
163
|
-
RootCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RootCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
164
|
-
RootCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RootCoreModule, imports: [BaseCoreModule, LocalizationModule, i1.OAuthModule, i2.HttpClientXsrfModule], exports: [BaseCoreModule, LocalizationModule] });
|
|
165
|
-
RootCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RootCoreModule, imports: [[
|
|
166
|
-
BaseCoreModule,
|
|
167
|
-
LocalizationModule,
|
|
168
|
-
OAuthModule.forRoot(),
|
|
169
|
-
HttpClientXsrfModule.withOptions({
|
|
170
|
-
cookieName: 'XSRF-TOKEN',
|
|
171
|
-
headerName: 'RequestVerificationToken',
|
|
172
|
-
}),
|
|
173
|
-
], BaseCoreModule, LocalizationModule] });
|
|
174
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RootCoreModule, decorators: [{
|
|
175
|
-
type: NgModule,
|
|
176
|
-
args: [{
|
|
177
|
-
exports: [BaseCoreModule, LocalizationModule],
|
|
178
|
-
imports: [
|
|
179
|
-
BaseCoreModule,
|
|
180
|
-
LocalizationModule,
|
|
181
|
-
OAuthModule.forRoot(),
|
|
182
|
-
HttpClientXsrfModule.withOptions({
|
|
183
|
-
cookieName: 'XSRF-TOKEN',
|
|
184
|
-
headerName: 'RequestVerificationToken',
|
|
185
|
-
}),
|
|
186
|
-
],
|
|
187
|
-
}]
|
|
188
|
-
}] });
|
|
189
|
-
/**
|
|
190
|
-
* CoreModule is the module that is publicly available
|
|
191
|
-
*/
|
|
192
|
-
export class CoreModule {
|
|
193
|
-
static forRoot(options = {}) {
|
|
194
|
-
return {
|
|
195
|
-
ngModule: RootCoreModule,
|
|
196
|
-
providers: [
|
|
197
|
-
LocaleProvider,
|
|
198
|
-
CookieLanguageProvider,
|
|
199
|
-
{
|
|
200
|
-
provide: 'CORE_OPTIONS',
|
|
201
|
-
useValue: options,
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
provide: CORE_OPTIONS,
|
|
205
|
-
useFactory: coreOptionsFactory,
|
|
206
|
-
deps: ['CORE_OPTIONS'],
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
provide: HTTP_INTERCEPTORS,
|
|
210
|
-
useExisting: ApiInterceptor,
|
|
211
|
-
multi: true,
|
|
212
|
-
},
|
|
213
|
-
{
|
|
214
|
-
provide: APP_INITIALIZER,
|
|
215
|
-
multi: true,
|
|
216
|
-
deps: [OAuthConfigurationHandler],
|
|
217
|
-
useFactory: noop,
|
|
218
|
-
},
|
|
219
|
-
{
|
|
220
|
-
provide: APP_INITIALIZER,
|
|
221
|
-
multi: true,
|
|
222
|
-
deps: [Injector],
|
|
223
|
-
useFactory: getInitialData,
|
|
224
|
-
},
|
|
225
|
-
{
|
|
226
|
-
provide: APP_INITIALIZER,
|
|
227
|
-
multi: true,
|
|
228
|
-
deps: [Injector],
|
|
229
|
-
useFactory: localeInitializer,
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
provide: APP_INITIALIZER,
|
|
233
|
-
multi: true,
|
|
234
|
-
deps: [LocalizationService],
|
|
235
|
-
useFactory: noop,
|
|
236
|
-
},
|
|
237
|
-
{
|
|
238
|
-
provide: APP_INITIALIZER,
|
|
239
|
-
multi: true,
|
|
240
|
-
deps: [RoutesHandler],
|
|
241
|
-
useFactory: noop,
|
|
242
|
-
},
|
|
243
|
-
{ provide: OAuthStorage, useFactory: storageFactory },
|
|
244
|
-
{ provide: TENANT_KEY, useValue: options.tenantKey || '__tenant' },
|
|
245
|
-
{
|
|
246
|
-
provide: LOCALIZATIONS,
|
|
247
|
-
multi: true,
|
|
248
|
-
useValue: localizationContributor(options.localizations),
|
|
249
|
-
deps: [LocalizationService],
|
|
250
|
-
},
|
|
251
|
-
],
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
static forChild(options = {}) {
|
|
255
|
-
return {
|
|
256
|
-
ngModule: RootCoreModule,
|
|
257
|
-
providers: [
|
|
258
|
-
{
|
|
259
|
-
provide: LOCALIZATIONS,
|
|
260
|
-
multi: true,
|
|
261
|
-
useValue: localizationContributor(options.localizations),
|
|
262
|
-
deps: [LocalizationService],
|
|
263
|
-
},
|
|
264
|
-
],
|
|
265
|
-
};
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
CoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
269
|
-
CoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: CoreModule, imports: [BaseCoreModule], exports: [BaseCoreModule] });
|
|
270
|
-
CoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: CoreModule, imports: [[BaseCoreModule], BaseCoreModule] });
|
|
271
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: CoreModule, decorators: [{
|
|
272
|
-
type: NgModule,
|
|
273
|
-
args: [{
|
|
274
|
-
exports: [BaseCoreModule],
|
|
275
|
-
imports: [BaseCoreModule],
|
|
276
|
-
}]
|
|
277
|
-
}] });
|
|
278
|
-
export function ngxsStoragePluginSerialize(data) {
|
|
279
|
-
return data;
|
|
280
|
-
}
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0s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QyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlLCBIdHRwQ2xpZW50WHNyZk1vZHVsZSwgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgSW5qZWN0b3IsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPQXV0aE1vZHVsZSwgT0F1dGhTdG9yYWdlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XHJcbmltcG9ydCB7IEFic3RyYWN0TmdNb2RlbENvbXBvbmVudCB9IGZyb20gJy4vYWJzdHJhY3RzL25nLW1vZGVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IER5bmFtaWNMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVwbGFjZWFibGVSb3V0ZUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXBsYWNlYWJsZS1yb3V0ZS1jb250YWluZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUm91dGVyT3V0bGV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JvdXRlci1vdXRsZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXV0b2ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbnB1dEV2ZW50RGVib3VuY2VEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGVib3VuY2UuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRm9yRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Zvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGb3JtU3VibWl0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Zvcm0tc3VibWl0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEluaXREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvaW5pdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Blcm1pc3Npb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZXBsYWNlYWJsZS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvc3RvcC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBPQXV0aENvbmZpZ3VyYXRpb25IYW5kbGVyIH0gZnJvbSAnLi9oYW5kbGVycy9vYXV0aC1jb25maWd1cmF0aW9uLmhhbmRsZXInO1xyXG5pbXBvcnQgeyBSb3V0ZXNIYW5kbGVyIH0gZnJvbSAnLi9oYW5kbGVycy9yb3V0ZXMuaGFuZGxlcic7XHJcbmltcG9ydCB7IEFwaUludGVyY2VwdG9yIH0gZnJvbSAnLi9pbnRlcmNlcHRvcnMvYXBpLmludGVyY2VwdG9yJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uTW9kdWxlIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24ubW9kdWxlJztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi9tb2RlbHMvY29tbW9uJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uUGlwZSB9IGZyb20gJy4vcGlwZXMvbG9jYWxpemF0aW9uLnBpcGUnO1xyXG5pbXBvcnQgeyBTb3J0UGlwZSB9IGZyb20gJy4vcGlwZXMvc29ydC5waXBlJztcclxuaW1wb3J0IHsgQ29va2llTGFuZ3VhZ2VQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL2Nvb2tpZS1sYW5ndWFnZS5wcm92aWRlcic7XHJcbmltcG9ydCB7IExvY2FsZVByb3ZpZGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvbG9jYWxlLnByb3ZpZGVyJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBvQXV0aFN0b3JhZ2UgfSBmcm9tICcuL3N0cmF0ZWdpZXMvYXV0aC1mbG93LnN0cmF0ZWd5JztcclxuaW1wb3J0IHsgbG9jYWxpemF0aW9uQ29udHJpYnV0b3IsIExPQ0FMSVpBVElPTlMgfSBmcm9tICcuL3Rva2Vucy9sb2NhbGl6YXRpb24udG9rZW4nO1xyXG5pbXBvcnQgeyBjb3JlT3B0aW9uc0ZhY3RvcnksIENPUkVfT1BUSU9OUyB9IGZyb20gJy4vdG9rZW5zL29wdGlvbnMudG9rZW4nO1xyXG5pbXBvcnQgeyBURU5BTlRfS0VZIH0gZnJvbSAnLi90b2tlbnMvdGVuYW50LWtleS50b2tlbic7XHJcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL3V0aWxzL2NvbW1vbi11dGlscyc7XHJcbmltcG9ydCAnLi91dGlscy9kYXRlLWV4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBnZXRJbml0aWFsRGF0YSwgbG9jYWxlSW5pdGlhbGl6ZXIgfSBmcm9tICcuL3V0aWxzL2luaXRpYWwtdXRpbHMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHN0b3JhZ2VGYWN0b3J5KCk6IE9BdXRoU3RvcmFnZSB7XHJcbiAgcmV0dXJuIG9BdXRoU3RvcmFnZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEJhc2VDb3JlTW9kdWxlIGlzIHRoZSBtb2R1bGUgdGhhdCBob2xkc1xyXG4gKiBhbGwgaW1wb3J0cywgZGVjbGFyYXRpb25zLCBleHBvcnRzLCBhbmQgZW50cnlDb21wb25lbnRzXHJcbiAqIGJ1dCBub3QgdGhlIHByb3ZpZGVycy5cclxuICogVGhpcyBtb2R1bGUgd2lsbCBiZSBpbXBvcnRlZCBhbmQgZXhwb3J0ZWQgYnkgYWxsIG90aGVycy5cclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgZXhwb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICAgIEFic3RyYWN0TmdNb2RlbENvbXBvbmVudCxcclxuICAgIEF1dG9mb2N1c0RpcmVjdGl2ZSxcclxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnQsXHJcbiAgICBGb3JEaXJlY3RpdmUsXHJcbiAgICBGb3JtU3VibWl0RGlyZWN0aXZlLFxyXG4gICAgSW5pdERpcmVjdGl2ZSxcclxuICAgIElucHV0RXZlbnREZWJvdW5jZURpcmVjdGl2ZSxcclxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgICBSZXBsYWNlYWJsZVJvdXRlQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICAgIFJvdXRlck91dGxldENvbXBvbmVudCxcclxuICAgIFNvcnRQaXBlLFxyXG4gICAgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgT0F1dGhNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBIdHRwQ2xpZW50TW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgTG9jYWxpemF0aW9uTW9kdWxlLFxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBBYnN0cmFjdE5nTW9kZWxDb21wb25lbnQsXHJcbiAgICBBdXRvZm9jdXNEaXJlY3RpdmUsXHJcbiAgICBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgRm9yRGlyZWN0aXZlLFxyXG4gICAgRm9ybVN1Ym1pdERpcmVjdGl2ZSxcclxuICAgIEluaXREaXJlY3RpdmUsXHJcbiAgICBJbnB1dEV2ZW50RGVib3VuY2VEaXJlY3RpdmUsXHJcbiAgICBQZXJtaXNzaW9uRGlyZWN0aXZlLFxyXG4gICAgUmVwbGFjZWFibGVSb3V0ZUNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFJlcGxhY2VhYmxlVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBSb3V0ZXJPdXRsZXRDb21wb25lbnQsXHJcbiAgICBTb3J0UGlwZSxcclxuICAgIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW0xvY2FsaXphdGlvblBpcGVdLFxyXG4gIGVudHJ5Q29tcG9uZW50czogW1xyXG4gICAgUm91dGVyT3V0bGV0Q29tcG9uZW50LFxyXG4gICAgRHluYW1pY0xheW91dENvbXBvbmVudCxcclxuICAgIFJlcGxhY2VhYmxlUm91dGVDb250YWluZXJDb21wb25lbnQsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VDb3JlTW9kdWxlIHt9XHJcblxyXG4vKipcclxuICogUm9vdENvcmVNb2R1bGUgaXMgdGhlIG1vZHVsZSB0aGF0IHdpbGwgYmUgdXNlZCBhdCByb290IGxldmVsXHJcbiAqIGFuZCBpdCBpbnRyb2R1Y2VzIGltcG9ydHMgdXNlZnVsIGF0IHJvb3QgbGV2ZWwgKGUuZy4gTkdYUylcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgZXhwb3J0czogW0Jhc2VDb3JlTW9kdWxlLCBMb2NhbGl6YXRpb25Nb2R1bGVdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEJhc2VDb3JlTW9kdWxlLFxyXG4gICAgTG9jYWxpemF0aW9uTW9kdWxlLFxyXG4gICAgT0F1dGhNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgSHR0cENsaWVudFhzcmZNb2R1bGUud2l0aE9wdGlvbnMoe1xyXG4gICAgICBjb29raWVOYW1lOiAnWFNSRi1UT0tFTicsXHJcbiAgICAgIGhlYWRlck5hbWU6ICdSZXF1ZXN0VmVyaWZpY2F0aW9uVG9rZW4nLFxyXG4gICAgfSksXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJvb3RDb3JlTW9kdWxlIHt9XHJcblxyXG4vKipcclxuICogQ29yZU1vZHVsZSBpcyB0aGUgbW9kdWxlIHRoYXQgaXMgcHVibGljbHkgYXZhaWxhYmxlXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtCYXNlQ29yZU1vZHVsZV0sXHJcbiAgaW1wb3J0czogW0Jhc2VDb3JlTW9kdWxlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KG9wdGlvbnMgPSB7fSBhcyBBQlAuUm9vdCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Um9vdENvcmVNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBSb290Q29yZU1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgTG9jYWxlUHJvdmlkZXIsXHJcbiAgICAgICAgQ29va2llTGFuZ3VhZ2VQcm92aWRlcixcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiAnQ09SRV9PUFRJT05TJyxcclxuICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQ09SRV9PUFRJT05TLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogY29yZU9wdGlvbnNGYWN0b3J5LFxyXG4gICAgICAgICAgZGVwczogWydDT1JFX09QVElPTlMnXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxyXG4gICAgICAgICAgdXNlRXhpc3Rpbmc6IEFwaUludGVyY2VwdG9yLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIGRlcHM6IFtPQXV0aENvbmZpZ3VyYXRpb25IYW5kbGVyXSxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IG5vb3AsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIGRlcHM6IFtJbmplY3Rvcl0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBnZXRJbml0aWFsRGF0YSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgZGVwczogW0luamVjdG9yXSxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGxvY2FsZUluaXRpYWxpemVyLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICBkZXBzOiBbTG9jYWxpemF0aW9uU2VydmljZV0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBub29wLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICBkZXBzOiBbUm91dGVzSGFuZGxlcl0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBub29wLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBPQXV0aFN0b3JhZ2UsIHVzZUZhY3Rvcnk6IHN0b3JhZ2VGYWN0b3J5IH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBURU5BTlRfS0VZLCB1c2VWYWx1ZTogb3B0aW9ucy50ZW5hbnRLZXkgfHwgJ19fdGVuYW50JyB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IExPQ0FMSVpBVElPTlMsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIHVzZVZhbHVlOiBsb2NhbGl6YXRpb25Db250cmlidXRvcihvcHRpb25zLmxvY2FsaXphdGlvbnMpLFxyXG4gICAgICAgICAgZGVwczogW0xvY2FsaXphdGlvblNlcnZpY2VdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZvckNoaWxkKG9wdGlvbnMgPSB7fSBhcyBBQlAuQ2hpbGQpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFJvb3RDb3JlTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogUm9vdENvcmVNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IExPQ0FMSVpBVElPTlMsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIHVzZVZhbHVlOiBsb2NhbGl6YXRpb25Db250cmlidXRvcihvcHRpb25zLmxvY2FsaXphdGlvbnMpLFxyXG4gICAgICAgICAgZGVwczogW0xvY2FsaXphdGlvblNlcnZpY2VdLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG5neHNTdG9yYWdlUGx1Z2luU2VyaWFsaXplKGRhdGEpIHtcclxuICByZXR1cm4gZGF0YTtcclxufVxyXG4iXX0=
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { ComponentFactoryResolver, Directive, Injector, Input, TemplateRef, ViewContainerRef, } from '@angular/core';
|
|
2
|
-
import compare from 'just-compare';
|
|
3
|
-
import { filter } from 'rxjs/operators';
|
|
4
|
-
import { ReplaceableComponentsService } from '../services/replaceable-components.service';
|
|
5
|
-
import { SubscriptionService } from '../services/subscription.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../services/replaceable-components.service";
|
|
8
|
-
import * as i2 from "../services/subscription.service";
|
|
9
|
-
export class ReplaceableTemplateDirective {
|
|
10
|
-
constructor(injector, templateRef, cfRes, vcRef, replaceableComponents, subscription) {
|
|
11
|
-
this.injector = injector;
|
|
12
|
-
this.templateRef = templateRef;
|
|
13
|
-
this.cfRes = cfRes;
|
|
14
|
-
this.vcRef = vcRef;
|
|
15
|
-
this.replaceableComponents = replaceableComponents;
|
|
16
|
-
this.subscription = subscription;
|
|
17
|
-
this.providedData = {
|
|
18
|
-
inputs: {},
|
|
19
|
-
outputs: {},
|
|
20
|
-
};
|
|
21
|
-
this.context = {};
|
|
22
|
-
this.defaultComponentSubscriptions = {};
|
|
23
|
-
this.initialized = false;
|
|
24
|
-
this.context = {
|
|
25
|
-
initTemplate: (ref) => {
|
|
26
|
-
this.resetDefaultComponent();
|
|
27
|
-
this.defaultComponentRef = ref;
|
|
28
|
-
this.setDefaultComponentInputs();
|
|
29
|
-
},
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
ngOnInit() {
|
|
33
|
-
const component$ = this.replaceableComponents
|
|
34
|
-
.get$(this.data.componentKey)
|
|
35
|
-
.pipe(filter((res = {}) => !this.initialized || !compare(res.component, this.externalComponent)));
|
|
36
|
-
this.subscription.addOne(component$, (res = {}) => {
|
|
37
|
-
this.vcRef.clear();
|
|
38
|
-
this.externalComponent = res.component;
|
|
39
|
-
if (this.defaultComponentRef) {
|
|
40
|
-
this.resetDefaultComponent();
|
|
41
|
-
}
|
|
42
|
-
if (res.component) {
|
|
43
|
-
this.setProvidedData();
|
|
44
|
-
const customInjector = Injector.create({
|
|
45
|
-
providers: [{ provide: 'REPLACEABLE_DATA', useValue: this.providedData }],
|
|
46
|
-
parent: this.injector,
|
|
47
|
-
});
|
|
48
|
-
this.vcRef.createComponent(this.cfRes.resolveComponentFactory(res.component), 0, customInjector);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
this.vcRef.createEmbeddedView(this.templateRef, this.context);
|
|
52
|
-
}
|
|
53
|
-
this.initialized = true;
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
ngOnChanges(changes) {
|
|
57
|
-
var _a, _b;
|
|
58
|
-
if (((_b = (_a = changes === null || changes === void 0 ? void 0 : changes.data) === null || _a === void 0 ? void 0 : _a.currentValue) === null || _b === void 0 ? void 0 : _b.inputs) && this.defaultComponentRef) {
|
|
59
|
-
this.setDefaultComponentInputs();
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
setDefaultComponentInputs() {
|
|
63
|
-
if (!this.defaultComponentRef || (!this.data.inputs && !this.data.outputs))
|
|
64
|
-
return;
|
|
65
|
-
if (this.data.inputs) {
|
|
66
|
-
for (const key in this.data.inputs) {
|
|
67
|
-
if (Object.prototype.hasOwnProperty.call(this.data.inputs, key)) {
|
|
68
|
-
if (!compare(this.defaultComponentRef[key], this.data.inputs[key].value)) {
|
|
69
|
-
this.defaultComponentRef[key] = this.data.inputs[key].value;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
if (this.data.outputs) {
|
|
75
|
-
for (const key in this.data.outputs) {
|
|
76
|
-
if (Object.prototype.hasOwnProperty.call(this.data.outputs, key)) {
|
|
77
|
-
if (!this.defaultComponentSubscriptions[key]) {
|
|
78
|
-
this.defaultComponentSubscriptions[key] = this.defaultComponentRef[key].subscribe((value) => {
|
|
79
|
-
var _a;
|
|
80
|
-
(_a = this.data.outputs) === null || _a === void 0 ? void 0 : _a[key](value);
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
setProvidedData() {
|
|
88
|
-
this.providedData = Object.assign(Object.assign({ outputs: {} }, this.data), { inputs: {} });
|
|
89
|
-
if (!this.data.inputs)
|
|
90
|
-
return;
|
|
91
|
-
Object.defineProperties(this.providedData.inputs, Object.assign({}, Object.keys(this.data.inputs).reduce((acc, key) => {
|
|
92
|
-
var _a;
|
|
93
|
-
return (Object.assign(Object.assign({}, acc), { [key]: Object.assign({ enumerable: true, configurable: true, get: () => { var _a; return (_a = this.data.inputs[key]) === null || _a === void 0 ? void 0 : _a.value; } }, (((_a = this.data.inputs[key]) === null || _a === void 0 ? void 0 : _a.twoWay) && {
|
|
94
|
-
set: (newValue) => {
|
|
95
|
-
this.data.inputs[key].value = newValue;
|
|
96
|
-
this.data.outputs[`${key}Change`](newValue);
|
|
97
|
-
},
|
|
98
|
-
})) }));
|
|
99
|
-
}, {})));
|
|
100
|
-
}
|
|
101
|
-
resetDefaultComponent() {
|
|
102
|
-
Object.keys(this.defaultComponentSubscriptions).forEach(key => {
|
|
103
|
-
this.defaultComponentSubscriptions[key].unsubscribe();
|
|
104
|
-
});
|
|
105
|
-
this.defaultComponentSubscriptions = {};
|
|
106
|
-
this.defaultComponentRef = null;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
ReplaceableTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ReplaceableTemplateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: i1.ReplaceableComponentsService }, { token: i2.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
110
|
-
ReplaceableTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: ReplaceableTemplateDirective, selector: "[abpReplaceableTemplate]", inputs: { data: ["abpReplaceableTemplate", "data"] }, providers: [SubscriptionService], usesOnChanges: true, ngImport: i0 });
|
|
111
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ReplaceableTemplateDirective, decorators: [{
|
|
112
|
-
type: Directive,
|
|
113
|
-
args: [{
|
|
114
|
-
selector: '[abpReplaceableTemplate]',
|
|
115
|
-
providers: [SubscriptionService],
|
|
116
|
-
}]
|
|
117
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: i1.ReplaceableComponentsService }, { type: i2.SubscriptionService }]; }, propDecorators: { data: [{
|
|
118
|
-
type: Input,
|
|
119
|
-
args: ['abpReplaceableTemplate']
|
|
120
|
-
}] } });
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZWFibGUtdGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvcmVwbGFjZWFibGUtdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsU0FBUyxFQUNULFFBQVEsRUFDUixLQUFLLEVBSUwsV0FBVyxFQUVYLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFFbkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7O0FBTXZFLE1BQU0sT0FBTyw0QkFBNEI7SUFtQnZDLFlBQ1UsUUFBa0IsRUFDbEIsV0FBNkIsRUFDN0IsS0FBK0IsRUFDL0IsS0FBdUIsRUFDdkIscUJBQW1ELEVBQ25ELFlBQWlDO1FBTGpDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLFVBQUssR0FBTCxLQUFLLENBQTBCO1FBQy9CLFVBQUssR0FBTCxLQUFLLENBQWtCO1FBQ3ZCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBOEI7UUFDbkQsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBckIzQyxpQkFBWSxHQUFHO1lBQ2IsTUFBTSxFQUFFLEVBQUU7WUFDVixPQUFPLEVBQUUsRUFBRTtTQUMrQyxDQUFDO1FBRTdELFlBQU8sR0FBRyxFQUFTLENBQUM7UUFNcEIsa0NBQTZCLEdBQUcsRUFBa0MsQ0FBQztRQUVuRSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQVVsQixJQUFJLENBQUMsT0FBTyxH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QVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUNqQzs0UUFHQyxJQUFJO3NCQURILEtBQUs7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBUeXBlLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBjb21wYXJlIGZyb20gJ2p1c3QtY29tcGFyZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscy9jb21tb24nO1xyXG5pbXBvcnQgeyBSZXBsYWNlYWJsZUNvbXBvbmVudHMgfSBmcm9tICcuLi9tb2RlbHMvcmVwbGFjZWFibGUtY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IFJlcGxhY2VhYmxlQ29tcG9uZW50c1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZXBsYWNlYWJsZS1jb21wb25lbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYWJwUmVwbGFjZWFibGVUZW1wbGF0ZV0nLFxyXG4gIHByb3ZpZGVyczogW1N1YnNjcmlwdGlvblNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoJ2FicFJlcGxhY2VhYmxlVGVtcGxhdGUnKVxyXG4gIGRhdGE6IFJlcGxhY2VhYmxlQ29tcG9uZW50cy5SZXBsYWNlYWJsZVRlbXBsYXRlRGlyZWN0aXZlSW5wdXQ8YW55LCBhbnk+O1xyXG5cclxuICBwcm92aWRlZERhdGEgPSB7XHJcbiAgICBpbnB1dHM6IHt9LFxyXG4gICAgb3V0cHV0czoge30sXHJcbiAgfSBhcyBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVUZW1wbGF0ZURhdGE8YW55LCBhbnk+O1xyXG5cclxuICBjb250ZXh0ID0ge30gYXMgYW55O1xyXG5cclxuICBleHRlcm5hbENvbXBvbmVudCE6IFR5cGU8YW55PjtcclxuXHJcbiAgZGVmYXVsdENvbXBvbmVudFJlZjogYW55O1xyXG5cclxuICBkZWZhdWx0Q29tcG9uZW50U3Vic2NyaXB0aW9ucyA9IHt9IGFzIEFCUC5EaWN0aW9uYXJ5PFN1YnNjcmlwdGlvbj47XHJcblxyXG4gIGluaXRpYWxpemVkID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxyXG4gICAgcHJpdmF0ZSBjZlJlczogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSB2Y1JlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgcmVwbGFjZWFibGVDb21wb25lbnRzOiBSZXBsYWNlYWJsZUNvbXBvbmVudHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmNvbnRleHQgPSB7XHJcbiAgICAgIGluaXRUZW1wbGF0ZTogKHJlZjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZXNldERlZmF1bHRDb21wb25lbnQoKTtcclxuICAgICAgICB0aGlzLmRlZmF1bHRDb21wb25lbnRSZWYgPSByZWY7XHJcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0Q29tcG9uZW50SW5wdXRzKCk7XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCBjb21wb25lbnQkID0gdGhpcy5yZXBsYWNlYWJsZUNvbXBvbmVudHNcclxuICAgICAgLmdldCQodGhpcy5kYXRhLmNvbXBvbmVudEtleSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgKHJlcyA9IHt9IGFzIFJlcGxhY2VhYmxlQ29tcG9uZW50cy5SZXBsYWNlYWJsZUNvbXBvbmVudCkgPT5cclxuICAgICAgICAgICAgIXRoaXMuaW5pdGlhbGl6ZWQgfHwgIWNvbXBhcmUocmVzLmNvbXBvbmVudCwgdGhpcy5leHRlcm5hbENvbXBvbmVudCksXHJcbiAgICAgICAgKSxcclxuICAgICAgKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGRPbmUoXHJcbiAgICAgIGNvbXBvbmVudCQsXHJcbiAgICAgIChyZXMgPSB7fSBhcyBSZXBsYWNlYWJsZUNvbXBvbmVudHMuUmVwbGFjZWFibGVDb21wb25lbnQpID0+IHtcclxuICAgICAgICB0aGlzLnZjUmVmLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy5leHRlcm5hbENvbXBvbmVudCA9IHJlcy5jb21wb25lbnQ7XHJcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdENvbXBvbmVudFJlZikge1xyXG4gICAgICAgICAgdGhpcy5yZXNldERlZmF1bHRDb21wb25lbnQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZXMuY29tcG9uZW50KSB7XHJcbiAgICAgICAgICB0aGlzLnNldFByb3ZpZGVkRGF0YSgpO1xyXG4gICAgICAgICAgY29uc3QgY3VzdG9tSW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG4gICAgICAgICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6ICdSRVBMQUNFQUJMRV9EQVRBJywgdXNlVmFsdWU6IHRoaXMucHJvdmlkZWREYXRhIH1dLFxyXG4gICAgICAgICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudmNSZWYuY3JlYXRlQ29tcG9uZW50KFxyXG4gICAgICAgICAgICB0aGlzLmNmUmVzLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHJlcy5jb21wb25lbnQpLFxyXG4gICAgICAgICAgICAwLFxyXG4gICAgICAgICAgICBjdXN0b21JbmplY3RvcixcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudmNSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYsIHRoaXMuY29udGV4dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcz8uZGF0YT8uY3VycmVudFZhbHVlPy5pbnB1dHMgJiYgdGhpcy5kZWZhdWx0Q29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuc2V0RGVmYXVsdENvbXBvbmVudElucHV0cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdENvbXBvbmVudElucHV0cygpIHtcclxuICAgIGlmICghdGhpcy5kZWZhdWx0Q29tcG9uZW50UmVmIHx8ICghdGhpcy5kYXRhLmlucHV0cyAmJiAhdGhpcy5kYXRhLm91dHB1dHMpKSByZXR1cm47XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5pbnB1dHMpIHtcclxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5kYXRhLmlucHV0cykge1xyXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5kYXRhLmlucHV0cywga2V5KSkge1xyXG4gICAgICAgICAgaWYgKCFjb21wYXJlKHRoaXMuZGVmYXVsdENvbXBvbmVudFJlZltrZXldLCB0aGlzLmRhdGEuaW5wdXRzW2tleV0udmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvbXBvbmVudFJlZltrZXldID0gdGhpcy5kYXRhLmlucHV0c1trZXldLnZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRhdGEub3V0cHV0cykge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmRhdGEub3V0cHV0cykge1xyXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5kYXRhLm91dHB1dHMsIGtleSkpIHtcclxuICAgICAgICAgIGlmICghdGhpcy5kZWZhdWx0Q29tcG9uZW50U3Vic2NyaXB0aW9uc1trZXldKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvbXBvbmVudFN1YnNjcmlwdGlvbnNba2V5XSA9IHRoaXMuZGVmYXVsdENvbXBvbmVudFJlZltrZXldLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhLm91dHB1dHM/LltrZXldKHZhbHVlKTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UHJvdmlkZWREYXRhKCkge1xyXG4gICAgdGhpcy5wcm92aWRlZERhdGEgPSB7IG91dHB1dHM6IHt9LCAuLi50aGlzLmRhdGEsIGlucHV0czoge30gfTtcclxuXHJcbiAgICBpZiAoIXRoaXMuZGF0YS5pbnB1dHMpIHJldHVybjtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMucHJvdmlkZWREYXRhLmlucHV0cywge1xyXG4gICAgICAuLi5PYmplY3Qua2V5cyh0aGlzLmRhdGEuaW5wdXRzKS5yZWR1Y2UoXHJcbiAgICAgICAgKGFjYywga2V5KSA9PiAoe1xyXG4gICAgICAgICAgLi4uYWNjLFxyXG4gICAgICAgICAgW2tleV06IHtcclxuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBnZXQ6ICgpID0+IHRoaXMuZGF0YS5pbnB1dHNba2V5XT8udmFsdWUsXHJcbiAgICAgICAgICAgIC4uLih0aGlzLmRhdGEuaW5wdXRzW2tleV0/LnR3b1dheSAmJiB7XHJcbiAgICAgICAgICAgICAgc2V0OiAobmV3VmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhLmlucHV0c1trZXldLnZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEub3V0cHV0c1tgJHtrZXl9Q2hhbmdlYF0obmV3VmFsdWUpO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KSxcclxuICAgICAgICB7fSxcclxuICAgICAgKSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVzZXREZWZhdWx0Q29tcG9uZW50KCkge1xyXG4gICAgT2JqZWN0LmtleXModGhpcy5kZWZhdWx0Q29tcG9uZW50U3Vic2NyaXB0aW9ucykuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb21wb25lbnRTdWJzY3JpcHRpb25zW2tleV0udW5zdWJzY3JpYmUoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kZWZhdWx0Q29tcG9uZW50U3Vic2NyaXB0aW9ucyA9IHt9IGFzIEFCUC5EaWN0aW9uYXJ5PFN1YnNjcmlwdGlvbj47XHJcbiAgICB0aGlzLmRlZmF1bHRDb21wb25lbnRSZWYgPSBudWxsO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { __rest } from "tslib";
|
|
2
|
-
import { Injectable, Optional } from '@angular/core';
|
|
3
|
-
import { Router } from '@angular/router';
|
|
4
|
-
import { RoutesService } from '../services/routes.service';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../services/routes.service";
|
|
7
|
-
import * as i2 from "@angular/router";
|
|
8
|
-
export class RoutesHandler {
|
|
9
|
-
constructor(routes, router) {
|
|
10
|
-
this.routes = routes;
|
|
11
|
-
this.router = router;
|
|
12
|
-
this.addRoutes();
|
|
13
|
-
}
|
|
14
|
-
addRoutes() {
|
|
15
|
-
var _a, _b;
|
|
16
|
-
(_b = (_a = this.router) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.forEach(({ path = '', data }) => {
|
|
17
|
-
if (!(data === null || data === void 0 ? void 0 : data.routes))
|
|
18
|
-
return;
|
|
19
|
-
if (Array.isArray(data.routes)) {
|
|
20
|
-
this.routes.add(data.routes);
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
const routes = flatRoutes([Object.assign({ path }, data.routes)], { path: '' });
|
|
24
|
-
this.routes.add(routes);
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
RoutesHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RoutesHandler, deps: [{ token: i1.RoutesService }, { token: i2.Router, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
29
|
-
RoutesHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RoutesHandler, providedIn: 'root' });
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RoutesHandler, decorators: [{
|
|
31
|
-
type: Injectable,
|
|
32
|
-
args: [{
|
|
33
|
-
providedIn: 'root',
|
|
34
|
-
}]
|
|
35
|
-
}], ctorParameters: function () { return [{ type: i1.RoutesService }, { type: i2.Router, decorators: [{
|
|
36
|
-
type: Optional
|
|
37
|
-
}] }]; } });
|
|
38
|
-
function flatRoutes(routes, parent) {
|
|
39
|
-
if (!routes)
|
|
40
|
-
return [];
|
|
41
|
-
return routes.reduce((acc, route) => {
|
|
42
|
-
const _a = Object.assign(Object.assign({}, route), { parentName: parent.name, path: (parent.path + '/' + route.path).replace(/\/\//g, '/') }), { children } = _a, current = __rest(_a, ["children"]);
|
|
43
|
-
acc.push(current, ...flatRoutes(children, current));
|
|
44
|
-
return acc;
|
|
45
|
-
}, []);
|
|
46
|
-
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvaGFuZGxlcnMvcm91dGVzLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFLM0QsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFBb0IsTUFBcUIsRUFBc0IsTUFBYztRQUF6RCxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQXNCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDM0UsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxTQUFTOztRQUNQLE1BQUEsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxNQUFNLDBDQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO1lBQ25ELElBQUksQ0FBQyxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxNQUFNLENBQUE7Z0JBQUUsT0FBTztZQUUxQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzdCLE9BQU87YUFDUjtZQUVELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxpQkFBRyxJQUFJLElBQUssSUFBSSxDQUFDLE1BQU0sRUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzsyR0FqQlUsYUFBYTsrR0FBYixhQUFhLGNBRlosTUFBTTs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBRTZDLFFBQVE7O0FBbUJ0RCxTQUFTLFVBQVUsQ0FBQyxNQUFrQixFQUFFLE1BQVc7SUFDakQsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUV2QixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDbEMsTUFBTSxxQ0FDRCxLQUFLLEtBQ1IsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQ3ZCLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxHQUM3RCxFQUpLLEVBQUUsUUFBUSxPQUlmLEVBSm9CLE9BQU8sY0FBdEIsWUFBd0IsQ0FJN0IsQ0FBQztRQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXBELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFJvdXRlc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yb3V0ZXMuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUm91dGVzSGFuZGxlciB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXM6IFJvdXRlc1NlcnZpY2UsIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgIHRoaXMuYWRkUm91dGVzKCk7XHJcbiAgfVxyXG5cclxuICBhZGRSb3V0ZXMoKSB7XHJcbiAgICB0aGlzLnJvdXRlcj8uY29uZmlnPy5mb3JFYWNoKCh7IHBhdGggPSAnJywgZGF0YSB9KSA9PiB7XHJcbiAgICAgIGlmICghZGF0YT8ucm91dGVzKSByZXR1cm47XHJcblxyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhLnJvdXRlcykpIHtcclxuICAgICAgICB0aGlzLnJvdXRlcy5hZGQoZGF0YS5yb3V0ZXMpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgcm91dGVzID0gZmxhdFJvdXRlcyhbeyBwYXRoLCAuLi5kYXRhLnJvdXRlcyB9XSwgeyBwYXRoOiAnJyB9KTtcclxuICAgICAgdGhpcy5yb3V0ZXMuYWRkKHJvdXRlcyk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZsYXRSb3V0ZXMocm91dGVzOiBSb3V0ZURlZltdLCBwYXJlbnQ6IGFueSkge1xyXG4gIGlmICghcm91dGVzKSByZXR1cm4gW107XHJcblxyXG4gIHJldHVybiByb3V0ZXMucmVkdWNlKChhY2MsIHJvdXRlKSA9PiB7XHJcbiAgICBjb25zdCB7IGNoaWxkcmVuLCAuLi5jdXJyZW50IH0gPSB7XHJcbiAgICAgIC4uLnJvdXRlLFxyXG4gICAgICBwYXJlbnROYW1lOiBwYXJlbnQubmFtZSxcclxuICAgICAgcGF0aDogKHBhcmVudC5wYXRoICsgJy8nICsgcm91dGUucGF0aCkucmVwbGFjZSgvXFwvXFwvL2csICcvJyksXHJcbiAgICB9O1xyXG5cclxuICAgIGFjYy5wdXNoKGN1cnJlbnQsIC4uLmZsYXRSb3V0ZXMoY2hpbGRyZW4sIGN1cnJlbnQpKTtcclxuXHJcbiAgICByZXR1cm4gYWNjO1xyXG4gIH0sIFtdKTtcclxufVxyXG5cclxudHlwZSBSb3V0ZURlZiA9IEFCUC5Sb3V0ZSAmIHsgY2hpbGRyZW46IFJvdXRlRGVmW10gfTtcclxuIl19
|