@abp/ng.core 8.1.3 → 8.2.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/dynamic-layout.component.mjs +20 -11
- package/esm2022/lib/core.module.mjs +8 -1
- package/esm2022/lib/models/common.mjs +1 -1
- package/esm2022/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.mjs +7 -7
- package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.mjs +5 -5
- package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.mjs +5 -5
- package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.mjs +5 -5
- package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.mjs +1 -1
- package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.mjs +1 -1
- package/esm2022/lib/proxy/volo/abp/http/modeling/models.mjs +1 -1
- package/esm2022/lib/proxy/volo/abp/localization/models.mjs +1 -1
- package/esm2022/lib/services/config-state.service.mjs +4 -6
- package/esm2022/lib/services/index.mjs +2 -1
- package/esm2022/lib/services/local-storage-listener.service.mjs +22 -0
- package/esm2022/lib/services/localization.service.mjs +5 -4
- package/esm2022/lib/services/routes.service.mjs +70 -31
- package/esm2022/lib/tokens/compare-func.token.mjs +11 -11
- package/esm2022/lib/utils/initial-utils.mjs +2 -2
- package/esm2022/testing/lib/core-testing.module.mjs +4 -3
- package/esm2022/testing/lib/pipes/index.mjs +2 -0
- package/esm2022/testing/lib/pipes/localization.pipe.mjs +20 -0
- package/esm2022/testing/public-api.mjs +2 -1
- package/fesm2022/abp-ng.core-testing.mjs +22 -4
- package/fesm2022/abp-ng.core-testing.mjs.map +1 -1
- package/fesm2022/abp-ng.core.mjs +1709 -1638
- package/fesm2022/abp-ng.core.mjs.map +1 -1
- package/lib/components/dynamic-layout.component.d.ts +15 -7
- package/lib/models/common.d.ts +1 -0
- package/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.d.ts +4 -3
- package/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.d.ts +3 -2
- package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.d.ts +3 -2
- package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.d.ts +3 -2
- package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.d.ts +1 -0
- package/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.d.ts +1 -0
- package/lib/services/index.d.ts +1 -0
- package/lib/services/local-storage-listener.service.d.ts +7 -0
- package/lib/services/routes.service.d.ts +5 -2
- package/lib/tokens/compare-func.token.d.ts +1 -1
- package/package.json +2 -2
- package/testing/lib/core-testing.module.d.ts +2 -1
- package/testing/lib/pipes/index.d.ts +1 -0
- package/testing/lib/pipes/localization.pipe.d.ts +8 -0
- package/testing/public-api.d.ts +1 -0
|
@@ -21,4 +21,5 @@ export * from './track-by.service';
|
|
|
21
21
|
export * from './local-storage.service';
|
|
22
22
|
export * from './window.service';
|
|
23
23
|
export * from './internet-connection-service';
|
|
24
|
-
|
|
24
|
+
export * from './local-storage-listener.service';
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbmZpZy1zdGF0ZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250ZW50LXByb2plY3Rpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZG9tLWluc2VydGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9odHRwLWVycm9yLXJlcG9ydGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2h0dHAtd2FpdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9sYXp5LWxvYWQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGlzdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2NhbGl6YXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbXVsdGktdGVuYW5jeS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9wZXJtaXNzaW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcGxhY2VhYmxlLWNvbXBvbmVudHMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcmVzb3VyY2Utd2FpdC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9yZXN0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3JvdXRlci1ldmVudHMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcm91dGVyLXdhaXQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcm91dGVzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb24tc3RhdGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RyYWNrLWJ5LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vd2luZG93LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVybmV0LWNvbm5lY3Rpb24tc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWwtc3RvcmFnZS1saXN0ZW5lci5zZXJ2aWNlJztcclxuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
|
2
|
+
import { Injectable, inject } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class LocalStorageListenerService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.window = inject(DOCUMENT).defaultView;
|
|
7
|
+
this.window.addEventListener('storage', event => {
|
|
8
|
+
if (event.key === 'access_token' && event.newValue === null) {
|
|
9
|
+
this.window.location.reload();
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LocalStorageListenerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
14
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LocalStorageListenerService, providedIn: 'root' }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LocalStorageListenerService, decorators: [{
|
|
17
|
+
type: Injectable,
|
|
18
|
+
args: [{
|
|
19
|
+
providedIn: 'root',
|
|
20
|
+
}]
|
|
21
|
+
}], ctorParameters: () => [] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS1saXN0ZW5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3NlcnZpY2VzL2xvY2FsLXN0b3JhZ2UtbGlzdGVuZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS25ELE1BQU0sT0FBTywyQkFBMkI7SUFHdEM7UUFGbUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFHdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLGNBQWMsSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQVRVLDJCQUEyQjtrSEFBM0IsMkJBQTJCLGNBRjFCLE1BQU07OzJGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZUxpc3RlbmVyU2VydmljZSB7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpbmRvdyA9IGluamVjdChET0NVTUVOVCkuZGVmYXVsdFZpZXc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc3RvcmFnZScsIGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ2FjY2Vzc190b2tlbicgJiYgZXZlbnQubmV3VmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgICB0aGlzLndpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -86,7 +86,7 @@ export class LocalizationService {
|
|
|
86
86
|
listenToSetLanguage() {
|
|
87
87
|
this.sessionState
|
|
88
88
|
.onLanguageChange$()
|
|
89
|
-
.pipe(filter(lang => this.configState.getDeep('localization.currentCulture.cultureName') !== lang), switchMap(lang => this.configState.
|
|
89
|
+
.pipe(filter(lang => this.configState.getDeep('localization.currentCulture.cultureName') !== lang), switchMap(lang => this.configState.refreshLocalization(lang).pipe(map(() => lang))), filter(Boolean), switchMap(lang => from(this.registerLocale(lang).then(() => lang))))
|
|
90
90
|
.subscribe(lang => this._languageChange$.next(lang));
|
|
91
91
|
}
|
|
92
92
|
registerLocale(locale) {
|
|
@@ -136,9 +136,10 @@ export class LocalizationService {
|
|
|
136
136
|
return createLocalizerWithFallback(localization)(resourceNames, keys, defaultValue);
|
|
137
137
|
}
|
|
138
138
|
getLocalization(state, key, ...interpolateParams) {
|
|
139
|
-
if (!key)
|
|
140
|
-
key = '';
|
|
141
139
|
let defaultValue = '';
|
|
140
|
+
if (!key) {
|
|
141
|
+
return defaultValue;
|
|
142
|
+
}
|
|
142
143
|
if (typeof key !== 'string') {
|
|
143
144
|
defaultValue = key.defaultValue;
|
|
144
145
|
key = key.key;
|
|
@@ -214,4 +215,4 @@ function combineLegacyandNewResources(legacy, resource) {
|
|
|
214
215
|
return { ...acc, [key]: value.texts };
|
|
215
216
|
}, legacy);
|
|
216
217
|
}
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU94RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFHOUQsTUFBTSxPQUFPLG1CQUFtQjtJQVU5Qjs7Ozs7T0FLRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFD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RyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFFRCxTQUFTLDRCQUE0QixDQUNuQyxNQUF5QixFQUN6QixRQUFxQjtJQUVyQixNQUFNLGNBQWMsR0FBRyw4QkFBOEIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVoRSxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDakUsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZWdpc3RlckxvY2FsZURhdGEgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgaXNEZXZNb2RlLCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmcm9tLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscy9jb21tb24nO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25XaXRoRGVmYXVsdCB9IGZyb20gJy4uL21vZGVscy9sb2NhbGl6YXRpb24nO1xyXG5pbXBvcnQge1xyXG4gIEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICBBcHBsaWNhdGlvbkxvY2FsaXphdGlvblJlc291cmNlRHRvLFxyXG59IGZyb20gJy4uL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvYXBwbGljYXRpb24tY29uZmlndXJhdGlvbnMvbW9kZWxzJztcclxuaW1wb3J0IHsgbG9jYWxpemF0aW9ucyQgfSBmcm9tICcuLi90b2tlbnMvbG9jYWxpemF0aW9uLnRva2VuJztcclxuaW1wb3J0IHsgQ09SRV9PUFRJT05TIH0gZnJvbSAnLi4vdG9rZW5zL29wdGlvbnMudG9rZW4nO1xyXG5pbXBvcnQgeyBjcmVhdGVMb2NhbGl6ZXIsIGNyZWF0ZUxvY2FsaXplcldpdGhGYWxsYmFjayB9IGZyb20gJy4uL3V0aWxzL2xvY2FsaXphdGlvbi11dGlscyc7XHJcbmltcG9ydCB7IGludGVycG9sYXRlIH0gZnJvbSAnLi4vdXRpbHMvc3RyaW5nLXV0aWxzJztcclxuaW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWctc3RhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TdGF0ZVNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24tc3RhdGUuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBsYXRlc3RMYW5nID0gdGhpcy5zZXNzaW9uU3RhdGUuZ2V0TGFuZ3VhZ2UoKTtcclxuICBwcml2YXRlIF9sYW5ndWFnZUNoYW5nZSQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcblxyXG4gIHByaXZhdGUgdWlMb2NhbGl6YXRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoXHJcbiAgICBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4+KCksXHJcbiAgKTtcclxuXHJcbiAgcHJpdmF0ZSBsb2NhbGl6YXRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3QobmV3IE1hcDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KCkpO1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGN1cnJlbnRseSBzZWxlY3RlZCBsYW5ndWFnZVxyXG4gICAqIEV2ZW4gdGhvdWdoIHRoaXMgbG9va3MgbGlrZSBpdCdzIHJlZHVuZGFudCB0byByZXR1cm4gdGhlIHNhbWUgdmFsdWUgYXMgYGdldExhbmd1YWdlKClgLFxyXG4gICAqIGl0J3MgYWN0dWFsbHkgbm90LiBUaGlzIGNvdWxkIGJlIGludm9rZWQgYW55IHRpbWUsIGFuZCB0aGUgbGF0ZXN0TGFuZyBjb3VsZCBiZSBkaWZmZXJlbnQgZnJvbSB0aGVcclxuICAgKiBzZXNzaW9uU3RhdGUuZ2V0TGFuZ3VhZ2UoKSB2YWx1ZS5cclxuICAgKi9cclxuICBnZXQgY3VycmVudExhbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmxhdGVzdExhbmcgfHwgdGhpcy5zZXNzaW9uU3RhdGUuZ2V0TGFuZ3VhZ2UoKTtcclxuICB9XHJcblxyXG4gIGdldCBjdXJyZW50TGFuZyQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSQoKTtcclxuICB9XHJcblxyXG4gIGdldCBsYW5ndWFnZUNoYW5nZSQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLl9sYW5ndWFnZUNoYW5nZSQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2Vzc2lvblN0YXRlOiBTZXNzaW9uU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBAT3B0aW9uYWwoKVxyXG4gICAgQFNraXBTZWxmKClcclxuICAgIG90aGVySW5zdGFuY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBpZiAob3RoZXJJbnN0YW5jZSkgdGhyb3cgbmV3IEVycm9yKCdMb2NhbGl6YXRpb25TZXJ2aWNlIHNob3VsZCBoYXZlIG9ubHkgb25lIGluc3RhbmNlLicpO1xyXG5cclxuICAgIHRoaXMubGlzdGVuVG9TZXRMYW5ndWFnZSgpO1xyXG4gICAgdGhpcy5pbml0TG9jYWxpemF0aW9uVmFsdWVzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRMb2NhbGl6YXRpb25WYWx1ZXMoKSB7XHJcbiAgICBsb2NhbGl6YXRpb25zJC5zdWJzY3JpYmUodmFsID0+IHRoaXMuYWRkTG9jYWxpemF0aW9uKHZhbCkpO1xyXG5cclxuICAgIGNvbnN0IGxlZ2FjeVJlc291cmNlcyQgPSB0aGlzLmNvbmZpZ1N0YXRlLmdldERlZXAkKCdsb2NhbGl6YXRpb24udmFsdWVzJykgYXMgT2JzZXJ2YWJsZTxcclxuICAgICAgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj5cclxuICAgID47XHJcblxyXG4gICAgY29uc3QgcmVtb3RlTG9jYWxpemF0aW9ucyQgPSB0aGlzLmNvbmZpZ1N0YXRlLmdldERlZXAkKCdsb2NhbGl6YXRpb24ucmVzb3VyY2VzJykgYXMgT2JzZXJ2YWJsZTxcclxuICAgICAgUmVjb3JkPHN0cmluZywgQXBwbGljYXRpb25Mb2NhbGl6YXRpb25SZXNvdXJjZUR0bz5cclxuICAgID47XHJcblxyXG4gICAgY29uc3QgY3VycmVudExhbmd1YWdlJCA9IHRoaXMuc2Vzc2lvblN0YXRlLmdldExhbmd1YWdlJCgpO1xyXG5cclxuICAgIGNvbnN0IHVpTG9jYWxpemF0aW9ucyQgPSBjb21iaW5lTGF0ZXN0KFtjdXJyZW50TGFuZ3VhZ2UkLCB0aGlzLnVpTG9jYWxpemF0aW9ucyRdKS5waXBlKFxyXG4gICAgICBtYXAoKFtjdXJyZW50TGFuZywgbG9jYWxpemF0aW9uc10pID0+IGxvY2FsaXphdGlvbnMuZ2V0KGN1cnJlbnRMYW5nKSksXHJcbiAgICApO1xyXG5cclxuICAgIGNvbWJpbmVMYXRlc3QoW2xlZ2FjeVJlc291cmNlcyQsIHJlbW90ZUxvY2FsaXphdGlvbnMkLCB1aUxvY2FsaXphdGlvbnMkXSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChbbGVnYWN5LCByZXNvdXJjZSwgbG9jYWxdKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXJlc291cmNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IHJlbW90ZSA9IGNvbWJpbmVMZWdhY3lhbmROZXdSZXNvdXJjZXMobGVnYWN5IHx8IHt9LCByZXNvdXJjZSk7XHJcbiAgICAgICAgICBpZiAocmVtb3RlKSB7XHJcbiAgICAgICAgICAgIGlmICghbG9jYWwpIHtcclxuICAgICAgICAgICAgICBsb2NhbCA9IG5ldyBNYXAoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMocmVtb3RlKS5mb3JFYWNoKGVudHJ5ID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCByZXNvdXJjZU5hbWUgPSBlbnRyeVswXTtcclxuICAgICAgICAgICAgICBjb25zdCByZW1vdGVUZXh0cyA9IGVudHJ5WzFdO1xyXG4gICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IGxvY2FsPy5nZXQocmVzb3VyY2VOYW1lKSB8fCB7fTtcclxuICAgICAgICAgICAgICByZXNvdXJjZSA9IHsgLi4ucmVzb3VyY2UsIC4uLnJlbW90ZVRleHRzIH07XHJcblxyXG4gICAgICAgICAgICAgIGxvY2FsPy5zZXQocmVzb3VyY2VOYW1lLCByZXNvdXJjZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHJldHVybiBsb2NhbDtcclxuICAgICAgICB9KSxcclxuICAgICAgICBmaWx0ZXIoQm9vbGVhbilcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLmxvY2FsaXphdGlvbnMkLm5leHQodmFsKSk7XHJcbiAgfVxyXG5cclxuICBhZGRMb2NhbGl6YXRpb24obG9jYWxpemF0aW9ucz86IEFCUC5Mb2NhbGl6YXRpb25bXSkge1xyXG4gICAgaWYgKCFsb2NhbGl6YXRpb25zKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgbG9jYWxpemF0aW9uTWFwID0gdGhpcy51aUxvY2FsaXphdGlvbnMkLnZhbHVlO1xyXG5cclxuICAgIGxvY2FsaXphdGlvbnMuZm9yRWFjaChsb2MgPT4ge1xyXG4gICAgICBjb25zdCBjdWx0dXJlTWFwID1cclxuICAgICAgICBsb2NhbGl6YXRpb25NYXAuZ2V0KGxvYy5jdWx0dXJlKSB8fCBuZXcgTWFwPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKTtcclxuXHJcbiAgICAgIGxvYy5yZXNvdXJjZXMuZm9yRWFjaChyZXMgPT4ge1xyXG4gICAgICAgIGxldCByZXNvdXJjZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IGN1bHR1cmVNYXAuZ2V0KHJlcy5yZXNvdXJjZU5hbWUpIHx8IHt9O1xyXG5cclxuICAgICAgICByZXNvdXJjZSA9IHsgLi4ucmVzb3VyY2UsIC4uLnJlcy50ZXh0cyB9O1xyXG5cclxuICAgICAgICBjdWx0dXJlTWFwLnNldChyZXMucmVzb3VyY2VOYW1lLCByZXNvdXJjZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgbG9jYWxpemF0aW9uTWFwLnNldChsb2MuY3VsdHVyZSwgY3VsdHVyZU1hcCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnVpTG9jYWxpemF0aW9ucyQubmV4dChsb2NhbGl6YXRpb25NYXApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsaXN0ZW5Ub1NldExhbmd1YWdlKCkge1xyXG4gICAgdGhpcy5zZXNzaW9uU3RhdGVcclxuICAgICAgLm9uTGFuZ3VhZ2VDaGFuZ2UkKClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgbGFuZyA9PiB0aGlzLmNvbmZpZ1N0YXRlLmdldERlZXAoJ2xvY2FsaXphdGlvbi5jdXJyZW50Q3VsdHVyZS5jdWx0dXJlTmFtZScpICE9PSBsYW5nLFxyXG4gICAgICAgICksXHJcbiAgICAgICAgc3dpdGNoTWFwKGxhbmcgPT4gdGhpcy5jb25maWdTdGF0ZS5yZWZyZXNoQXBwU3RhdGUoKS5waXBlKG1hcCgoKSA9PiBsYW5nKSkpLFxyXG4gICAgICAgIGZpbHRlcihCb29sZWFuKSxcclxuICAgICAgICBzd2l0Y2hNYXAobGFuZyA9PiBmcm9tKHRoaXMucmVnaXN0ZXJMb2NhbGUobGFuZykudGhlbigoKSA9PiBsYW5nKSkpLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUobGFuZyA9PiB0aGlzLl9sYW5ndWFnZUNoYW5nZSQubmV4dChsYW5nKSk7XHJcbiAgfVxyXG5cclxuICByZWdpc3RlckxvY2FsZShsb2NhbGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgeyByZWdpc3RlckxvY2FsZUZuIH06IEFCUC5Sb290ID0gdGhpcy5pbmplY3Rvci5nZXQoQ09SRV9PUFRJT05TKTtcclxuXHJcbiAgICByZXR1cm4gcmVnaXN0ZXJMb2NhbGVGbihsb2NhbGUpLnRoZW4obW9kdWxlID0+IHtcclxuICAgICAgaWYgKG1vZHVsZT8uZGVmYXVsdCkgcmVnaXN0ZXJMb2NhbGVEYXRhKG1vZHVsZS5kZWZhdWx0KTtcclxuICAgICAgdGhpcy5sYXRlc3RMYW5nID0gbG9jYWxlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgbG9jYWxpemVkIHRleHQgd2l0aCB0aGUgZ2l2ZW4gaW50ZXJwb2xhdGlvbiBwYXJhbWV0ZXJzIGluIGN1cnJlbnQgbGFuZ3VhZ2UuXHJcbiAgICogQHBhcmFtIGtleSBMb2NhbGl6YXRvbiBrZXkgdG8gcmVwbGFjZSB3aXRoIGxvY2FsaXplZCB0ZXh0XHJcbiAgICogQHBhcmFtIGludGVycG9sYXRlUGFyYW1zIFZhbHVlcyB0byBpbnRlcnBvbGF0ZVxyXG4gICAqL1xyXG4gIGdldChrZXk6IHN0cmluZyB8IExvY2FsaXphdGlvbldpdGhEZWZhdWx0LCAuLi5pbnRlcnBvbGF0ZVBhcmFtczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU3RhdGVcclxuICAgICAgLmdldEFsbCQoKVxyXG4gICAgICAucGlwZShtYXAoc3RhdGUgPT4gdGhpcy5nZXRMb2NhbGl6YXRpb24oc3RhdGUsIGtleSwgLi4uaW50ZXJwb2xhdGVQYXJhbXMpKSk7XHJcbiAgfVxyXG5cclxuICBnZXRSZXNvdXJjZShyZXNvdXJjZU5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMubG9jYWxpemF0aW9ucyQudmFsdWUuZ2V0KHJlc291cmNlTmFtZSk7XHJcbiAgfVxyXG5cclxuICBnZXRSZXNvdXJjZSQocmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmxvY2FsaXphdGlvbnMkLnBpcGUobWFwKHJlcyA9PiByZXMuZ2V0KHJlc291cmNlTmFtZSkpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgbG9jYWxpemVkIHRleHQgd2l0aCB0aGUgZ2l2ZW4gaW50ZXJwb2xhdGlvbiBwYXJhbWV0ZXJzIGluIGN1cnJlbnQgbGFuZ3VhZ2UuXHJcbiAgICogQHBhcmFtIGtleSBMb2NhbGl6YXRpb24ga2V5IHRvIHJlcGxhY2Ugd2l0aCBsb2NhbGl6ZWQgdGV4dFxyXG4gICAqIEBwYXJhbSBpbnRlcnBvbGF0ZVBhcmFtcyBWYWx1ZXMgdG8gaW50ZXBvbGF0ZS5cclxuICAgKi9cclxuICBpbnN0YW50KGtleTogc3RyaW5nIHwgTG9jYWxpemF0aW9uV2l0aERlZmF1bHQsIC4uLmludGVycG9sYXRlUGFyYW1zOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRMb2NhbGl6YXRpb24odGhpcy5jb25maWdTdGF0ZS5nZXRBbGwoKSwga2V5LCAuLi5pbnRlcnBvbGF0ZVBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBsb2NhbGl6ZShyZXNvdXJjZU5hbWU6IHN0cmluZywga2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTdGF0ZS5nZXRPbmUkKCdsb2NhbGl6YXRpb24nKS5waXBlKFxyXG4gICAgICBtYXAoY3JlYXRlTG9jYWxpemVyKSxcclxuICAgICAgbWFwKGxvY2FsaXplID0+IGxvY2FsaXplKHJlc291cmNlTmFtZSwga2V5LCBkZWZhdWx0VmFsdWUpKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBsb2NhbGl6ZVN5bmMocmVzb3VyY2VOYW1lOiBzdHJpbmcsIGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgY29uc3QgbG9jYWxpemF0aW9uID0gdGhpcy5jb25maWdTdGF0ZS5nZXRPbmUoJ2xvY2FsaXphdGlvbicpO1xyXG4gICAgcmV0dXJuIGNyZWF0ZUxvY2FsaXplcihsb2NhbGl6YXRpb24pKHJlc291cmNlTmFtZSwga2V5LCBkZWZhdWx0VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgbG9jYWxpemVXaXRoRmFsbGJhY2soXHJcbiAgICByZXNvdXJjZU5hbWVzOiBzdHJpbmdbXSxcclxuICAgIGtleXM6IHN0cmluZ1tdLFxyXG4gICAgZGVmYXVsdFZhbHVlOiBzdHJpbmcsXHJcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1N0YXRlLmdldE9uZSQoJ2xvY2FsaXphdGlvbicpLnBpcGUoXHJcbiAgICAgIG1hcChjcmVhdGVMb2NhbGl6ZXJXaXRoRmFsbGJhY2spLFxyXG4gICAgICBtYXAobG9jYWxpemVXaXRoRmFsbGJhY2sgPT4gbG9jYWxpemVXaXRoRmFsbGJhY2socmVzb3VyY2VOYW1lcywga2V5cywgZGVmYXVsdFZhbHVlKSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbG9jYWxpemVXaXRoRmFsbGJhY2tTeW5jKHJlc291cmNlTmFtZXM6IHN0cmluZ1tdLCBrZXlzOiBzdHJpbmdbXSwgZGVmYXVsdFZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbG9jYWxpemF0aW9uID0gdGhpcy5jb25maWdTdGF0ZS5nZXRPbmUoJ2xvY2FsaXphdGlvbicpO1xyXG4gICAgcmV0dXJuIGNyZWF0ZUxvY2FsaXplcldpdGhGYWxsYmFjayhsb2NhbGl6YXRpb24pKHJlc291cmNlTmFtZXMsIGtleXMsIGRlZmF1bHRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldExvY2FsaXphdGlvbihcclxuICAgIHN0YXRlOiBBcHBsaWNhdGlvbkNvbmZpZ3VyYXRpb25EdG8sXHJcbiAgICBrZXk6IHN0cmluZyB8IExvY2FsaXphdGlvbldpdGhEZWZhdWx0LFxyXG4gICAgLi4uaW50ZXJwb2xhdGVQYXJhbXM6IHN0cmluZ1tdXHJcbiAgKSB7XHJcbiAgICBpZiAoIWtleSkga2V5ID0gJyc7XHJcbiAgICBsZXQgZGVmYXVsdFZhbHVlID0gJyc7XHJcblxyXG4gICAgaWYgKHR5cGVvZiBrZXkgIT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIGRlZmF1bHRWYWx1ZSA9IGtleS5kZWZhdWx0VmFsdWU7XHJcbiAgICAgIGtleSA9IGtleS5rZXk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qga2V5cyA9IGtleS5zcGxpdCgnOjonKSBhcyBzdHJpbmdbXTtcclxuICAgIGNvbnN0IHdhcm4gPSAobWVzc2FnZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkgY29uc29sZS53YXJuKG1lc3NhZ2UpO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoa2V5cy5sZW5ndGggPCAyKSB7XHJcbiAgICAgIHdhcm4oJ1RoZSBsb2NhbGl6YXRpb24gc291cmNlIHNlcGFyYXRvciAoOjopIG5vdCBmb3VuZC4nKTtcclxuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZSB8fCAoa2V5IGFzIHN0cmluZyk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXN0YXRlLmxvY2FsaXphdGlvbikgcmV0dXJuIGRlZmF1bHRWYWx1ZSB8fCBrZXlzWzFdO1xyXG5cclxuICAgIGNvbnN0IHNvdXJjZU5hbWUgPSBrZXlzWzBdIHx8IHN0YXRlLmxvY2FsaXphdGlvbi5kZWZhdWx0UmVzb3VyY2VOYW1lO1xyXG4gICAgY29uc3Qgc291cmNlS2V5ID0ga2V5c1sxXTtcclxuXHJcbiAgICBpZiAoc291cmNlTmFtZSA9PT0gJ18nKSB7XHJcbiAgICAgIHJldHVybiBkZWZhdWx0VmFsdWUgfHwgc291cmNlS2V5O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghc291cmNlTmFtZSkge1xyXG4gICAgICB3YXJuKFxyXG4gICAgICAgICdMb2NhbGl6YXRpb24gc291cmNlIG5hbWUgaXMgbm90IHNwZWNpZmllZCBhbmQgdGhlIGRlZmF1bHRSZXNvdXJjZU5hbWUgd2FzIG5vdCBkZWZpbmVkIScsXHJcbiAgICAgICk7XHJcblxyXG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlIHx8IHNvdXJjZUtleTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzb3VyY2UgPSB0aGlzLmxvY2FsaXphdGlvbnMkLnZhbHVlLmdldChzb3VyY2VOYW1lKTtcclxuICAgIGlmICghc291cmNlKSB7XHJcbiAgICAgIHdhcm4oJ0NvdWxkIG5vdCBmaW5kIGxvY2FsaXphdGlvbiBzb3VyY2U6ICcgKyBzb3VyY2VOYW1lKTtcclxuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZSB8fCBzb3VyY2VLZXk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGxvY2FsaXphdGlvbiA9IHNvdXJjZVtzb3VyY2VLZXldO1xyXG4gICAgaWYgKHR5cGVvZiBsb2NhbGl6YXRpb24gPT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgIHJldHVybiBkZWZhdWx0VmFsdWUgfHwgc291cmNlS2V5O1xyXG4gICAgfVxyXG5cclxuICAgIGludGVycG9sYXRlUGFyYW1zID0gaW50ZXJwb2xhdGVQYXJhbXMuZmlsdGVyKHBhcmFtcyA9PiBwYXJhbXMgIT0gbnVsbCk7XHJcbiAgICBpZiAobG9jYWxpemF0aW9uKSBsb2NhbGl6YXRpb24gPSBpbnRlcnBvbGF0ZShsb2NhbGl6YXRpb24sIGludGVycG9sYXRlUGFyYW1zKTtcclxuXHJcbiAgICBpZiAodHlwZW9mIGxvY2FsaXphdGlvbiAhPT0gJ3N0cmluZycpIGxvY2FsaXphdGlvbiA9ICcnO1xyXG5cclxuICAgIHJldHVybiBsb2NhbGl6YXRpb24gfHwgZGVmYXVsdFZhbHVlIHx8IChrZXkgYXMgc3RyaW5nKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJlY3Vyc2l2ZWx5TWVyZ2VCYXNlUmVzb3VyY2VzKGJhc2VSZXNvdXJjZU5hbWU6IHN0cmluZywgc291cmNlOiBSZXNvdXJjZUR0byk6IEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uUmVzb3VyY2VEdG8ge1xyXG4gIGNvbnN0IGl0ZW0gPSBzb3VyY2VbYmFzZVJlc291cmNlTmFtZV07XHJcblxyXG4gIGlmIChpdGVtLmJhc2VSZXNvdXJjZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9XHJcblxyXG4gIHJldHVybiBpdGVtLmJhc2VSZXNvdXJjZXMucmVkdWNlKChhY2MsIGJhc2VSZXNvdXJjZSkgPT4ge1xyXG4gICAgY29uc3QgYmFzZUl0ZW0gPSByZWN1cnNpdmVseU1lcmdlQmFzZVJlc291cmNlcyhiYXNlUmVzb3VyY2UsIHNvdXJjZSk7XHJcbiAgICBjb25zdCB0ZXh0cyA9IHsgLi4uYmFzZUl0ZW0udGV4dHMsIC4uLml0ZW0udGV4dHMgfTtcclxuICAgIHJldHVybiB7IC4uLmFjYywgdGV4dHMgfTtcclxuICB9LCBpdGVtKTtcclxufVxyXG5cclxuZnVuY3Rpb24gbWVyZ2VSZXNvdXJjZXNXaXRoQmFzZVJlc291cmNlKHJlc291cmNlOiBSZXNvdXJjZUR0byk6IFJlc291cmNlRHRvIHtcclxuICBjb25zdCBlbnRpdGllczogQXJyYXk8W3N0cmluZywgQXBwbGljYXRpb25Mb2NhbGl6YXRpb25SZXNvdXJjZUR0b10+ID0gT2JqZWN0LmtleXMocmVzb3VyY2UpLm1hcChrZXkgPT4ge1xyXG4gICAgY29uc3QgbmV3VmFsdWUgPSByZWN1cnNpdmVseU1lcmdlQmFzZVJlc291cmNlcyhrZXksIHJlc291cmNlKTtcclxuICAgIHJldHVybiBba2V5LCBuZXdWYWx1ZV07XHJcbiAgfSk7XHJcbiAgcmV0dXJuIGVudGl0aWVzLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+ICh7IC4uLmFjYywgW2tleV06IHZhbHVlIH0pLCB7fSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbWJpbmVMZWdhY3lhbmROZXdSZXNvdXJjZXMoXHJcbiAgbGVnYWN5OiBMZWdhY3lMYW5ndWFnZUR0byxcclxuICByZXNvdXJjZTogUmVzb3VyY2VEdG8sXHJcbik6IExlZ2FjeUxhbmd1YWdlRHRvIHtcclxuICBjb25zdCBtZXJnZWRSZXNvdXJjZSA9IG1lcmdlUmVzb3VyY2VzV2l0aEJhc2VSZXNvdXJjZShyZXNvdXJjZSk7XHJcblxyXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhtZXJnZWRSZXNvdXJjZSkucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdmFsdWUudGV4dHMgfTtcclxuICB9LCBsZWdhY3kpO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBMZWdhY3lMYW5ndWFnZUR0byA9IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+O1xyXG5leHBvcnQgdHlwZSBSZXNvdXJjZUR0byA9IFJlY29yZDxzdHJpbmcsIEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uUmVzb3VyY2VEdG8+O1xyXG4iXX0=
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU94RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFHOUQsTUFBTSxPQUFPLG1CQUFtQjtJQVU5Qjs7Ozs7T0FLRztJQUNILElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFD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Q0FBQyxDQUFDO1FBQzlELE9BQU8sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDekIsQ0FBQyxDQUNGLENBQUM7SUFDRixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUVELFNBQVMsNEJBQTRCLENBQ25DLE1BQXlCLEVBQ3pCLFFBQXFCO0lBRXJCLE1BQU0sY0FBYyxHQUFHLDhCQUE4QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRWhFLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUNqRSxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlZ2lzdGVyTG9jYWxlRGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBpc0Rldk1vZGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZyb20sIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi4vbW9kZWxzL2NvbW1vbic7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbldpdGhEZWZhdWx0IH0gZnJvbSAnLi4vbW9kZWxzL2xvY2FsaXphdGlvbic7XHJcbmltcG9ydCB7XHJcbiAgQXBwbGljYXRpb25Db25maWd1cmF0aW9uRHRvLFxyXG4gIEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uUmVzb3VyY2VEdG8sXHJcbn0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9hcHBsaWNhdGlvbi1jb25maWd1cmF0aW9ucy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBsb2NhbGl6YXRpb25zJCB9IGZyb20gJy4uL3Rva2Vucy9sb2NhbGl6YXRpb24udG9rZW4nO1xyXG5pbXBvcnQgeyBDT1JFX09QVElPTlMgfSBmcm9tICcuLi90b2tlbnMvb3B0aW9ucy50b2tlbic7XHJcbmltcG9ydCB7IGNyZWF0ZUxvY2FsaXplciwgY3JlYXRlTG9jYWxpemVyV2l0aEZhbGxiYWNrIH0gZnJvbSAnLi4vdXRpbHMvbG9jYWxpemF0aW9uLXV0aWxzJztcclxuaW1wb3J0IHsgaW50ZXJwb2xhdGUgfSBmcm9tICcuLi91dGlscy9zdHJpbmctdXRpbHMnO1xyXG5pbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2NvbmZpZy1zdGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblN0YXRlU2VydmljZSB9IGZyb20gJy4vc2Vzc2lvbi1zdGF0ZS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGl6YXRpb25TZXJ2aWNlIHtcclxuICBwcml2YXRlIGxhdGVzdExhbmcgPSB0aGlzLnNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSgpO1xyXG4gIHByaXZhdGUgX2xhbmd1YWdlQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuXHJcbiAgcHJpdmF0ZSB1aUxvY2FsaXphdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChcclxuICAgIG5ldyBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pj4oKSxcclxuICApO1xyXG5cclxuICBwcml2YXRlIGxvY2FsaXphdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChuZXcgTWFwPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgY3VycmVudGx5IHNlbGVjdGVkIGxhbmd1YWdlXHJcbiAgICogRXZlbiB0aG91Z2ggdGhpcyBsb29rcyBsaWtlIGl0J3MgcmVkdW5kYW50IHRvIHJldHVybiB0aGUgc2FtZSB2YWx1ZSBhcyBgZ2V0TGFuZ3VhZ2UoKWAsXHJcbiAgICogaXQncyBhY3R1YWxseSBub3QuIFRoaXMgY291bGQgYmUgaW52b2tlZCBhbnkgdGltZSwgYW5kIHRoZSBsYXRlc3RMYW5nIGNvdWxkIGJlIGRpZmZlcmVudCBmcm9tIHRoZVxyXG4gICAqIHNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSgpIHZhbHVlLlxyXG4gICAqL1xyXG4gIGdldCBjdXJyZW50TGFuZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMubGF0ZXN0TGFuZyB8fCB0aGlzLnNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbnRMYW5nJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvblN0YXRlLmdldExhbmd1YWdlJCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxhbmd1YWdlQ2hhbmdlJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xhbmd1YWdlQ2hhbmdlJC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXNzaW9uU3RhdGU6IFNlc3Npb25TdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIEBPcHRpb25hbCgpXHJcbiAgICBAU2tpcFNlbGYoKVxyXG4gICAgb3RoZXJJbnN0YW5jZTogTG9jYWxpemF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuICApIHtcclxuICAgIGlmIChvdGhlckluc3RhbmNlKSB0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsaXphdGlvblNlcnZpY2Ugc2hvdWxkIGhhdmUgb25seSBvbmUgaW5zdGFuY2UuJyk7XHJcblxyXG4gICAgdGhpcy5saXN0ZW5Ub1NldExhbmd1YWdlKCk7XHJcbiAgICB0aGlzLmluaXRMb2NhbGl6YXRpb25WYWx1ZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdExvY2FsaXphdGlvblZhbHVlcygpIHtcclxuICAgIGxvY2FsaXphdGlvbnMkLnN1YnNjcmliZSh2YWwgPT4gdGhpcy5hZGRMb2NhbGl6YXRpb24odmFsKSk7XHJcblxyXG4gICAgY29uc3QgbGVnYWN5UmVzb3VyY2VzJCA9IHRoaXMuY29uZmlnU3RhdGUuZ2V0RGVlcCQoJ2xvY2FsaXphdGlvbi52YWx1ZXMnKSBhcyBPYnNlcnZhYmxlPFxyXG4gICAgICBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PlxyXG4gICAgPjtcclxuXHJcbiAgICBjb25zdCByZW1vdGVMb2NhbGl6YXRpb25zJCA9IHRoaXMuY29uZmlnU3RhdGUuZ2V0RGVlcCQoJ2xvY2FsaXphdGlvbi5yZXNvdXJjZXMnKSBhcyBPYnNlcnZhYmxlPFxyXG4gICAgICBSZWNvcmQ8c3RyaW5nLCBBcHBsaWNhdGlvbkxvY2FsaXphdGlvblJlc291cmNlRHRvPlxyXG4gICAgPjtcclxuXHJcbiAgICBjb25zdCBjdXJyZW50TGFuZ3VhZ2UkID0gdGhpcy5zZXNzaW9uU3RhdGUuZ2V0TGFuZ3VhZ2UkKCk7XHJcblxyXG4gICAgY29uc3QgdWlMb2NhbGl6YXRpb25zJCA9IGNvbWJpbmVMYXRlc3QoW2N1cnJlbnRMYW5ndWFnZSQsIHRoaXMudWlMb2NhbGl6YXRpb25zJF0pLnBpcGUoXHJcbiAgICAgIG1hcCgoW2N1cnJlbnRMYW5nLCBsb2NhbGl6YXRpb25zXSkgPT4gbG9jYWxpemF0aW9ucy5nZXQoY3VycmVudExhbmcpKSxcclxuICAgICk7XHJcblxyXG4gICAgY29tYmluZUxhdGVzdChbbGVnYWN5UmVzb3VyY2VzJCwgcmVtb3RlTG9jYWxpemF0aW9ucyQsIHVpTG9jYWxpemF0aW9ucyRdKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKFtsZWdhY3ksIHJlc291cmNlLCBsb2NhbF0pID0+IHtcclxuICAgICAgICAgIGlmICghcmVzb3VyY2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3QgcmVtb3RlID0gY29tYmluZUxlZ2FjeWFuZE5ld1Jlc291cmNlcyhsZWdhY3kgfHwge30sIHJlc291cmNlKTtcclxuICAgICAgICAgIGlmIChyZW1vdGUpIHtcclxuICAgICAgICAgICAgaWYgKCFsb2NhbCkge1xyXG4gICAgICAgICAgICAgIGxvY2FsID0gbmV3IE1hcCgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhyZW1vdGUpLmZvckVhY2goZW50cnkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IGVudHJ5WzBdO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHJlbW90ZVRleHRzID0gZW50cnlbMV07XHJcbiAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbG9jYWw/LmdldChyZXNvdXJjZU5hbWUpIHx8IHt9O1xyXG4gICAgICAgICAgICAgIHJlc291cmNlID0geyAuLi5yZXNvdXJjZSwgLi4ucmVtb3RlVGV4dHMgfTtcclxuXHJcbiAgICAgICAgICAgICAgbG9jYWw/LnNldChyZXNvdXJjZU5hbWUsIHJlc291cmNlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmV0dXJuIGxvY2FsO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGZpbHRlcihCb29sZWFuKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLmxvY2FsaXphdGlvbnMkLm5leHQodmFsKSk7XHJcbiAgfVxyXG5cclxuICBhZGRMb2NhbGl6YXRpb24obG9jYWxpemF0aW9ucz86IEFCUC5Mb2NhbGl6YXRpb25bXSkge1xyXG4gICAgaWYgKCFsb2NhbGl6YXRpb25zKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgbG9jYWxpemF0aW9uTWFwID0gdGhpcy51aUxvY2FsaXphdGlvbnMkLnZhbHVlO1xyXG5cclxuICAgIGxvY2FsaXphdGlvbnMuZm9yRWFjaChsb2MgPT4ge1xyXG4gICAgICBjb25zdCBjdWx0dXJlTWFwID1cclxuICAgICAgICBsb2NhbGl6YXRpb25NYXAuZ2V0KGxvYy5jdWx0dXJlKSB8fCBuZXcgTWFwPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKTtcclxuXHJcbiAgICAgIGxvYy5yZXNvdXJjZXMuZm9yRWFjaChyZXMgPT4ge1xyXG4gICAgICAgIGxldCByZXNvdXJjZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IGN1bHR1cmVNYXAuZ2V0KHJlcy5yZXNvdXJjZU5hbWUpIHx8IHt9O1xyXG5cclxuICAgICAgICByZXNvdXJjZSA9IHsgLi4ucmVzb3VyY2UsIC4uLnJlcy50ZXh0cyB9O1xyXG5cclxuICAgICAgICBjdWx0dXJlTWFwLnNldChyZXMucmVzb3VyY2VOYW1lLCByZXNvdXJjZSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgbG9jYWxpemF0aW9uTWFwLnNldChsb2MuY3VsdHVyZSwgY3VsdHVyZU1hcCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnVpTG9jYWxpemF0aW9ucyQubmV4dChsb2NhbGl6YXRpb25NYXApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsaXN0ZW5Ub1NldExhbmd1YWdlKCkge1xyXG4gICAgdGhpcy5zZXNzaW9uU3RhdGVcclxuICAgICAgLm9uTGFuZ3VhZ2VDaGFuZ2UkKClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgbGFuZyA9PiB0aGlzLmNvbmZpZ1N0YXRlLmdldERlZXAoJ2xvY2FsaXphdGlvbi5jdXJyZW50Q3VsdHVyZS5jdWx0dXJlTmFtZScpICE9PSBsYW5nLFxyXG4gICAgICAgICksXHJcbiAgICAgICAgc3dpdGNoTWFwKGxhbmcgPT4gdGhpcy5jb25maWdTdGF0ZS5yZWZyZXNoTG9jYWxpemF0aW9uKGxhbmcpLnBpcGUobWFwKCgpID0+IGxhbmcpKSksXHJcbiAgICAgICAgZmlsdGVyKEJvb2xlYW4pLFxyXG4gICAgICAgIHN3aXRjaE1hcChsYW5nID0+IGZyb20odGhpcy5yZWdpc3RlckxvY2FsZShsYW5nKS50aGVuKCgpID0+IGxhbmcpKSksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShsYW5nID0+IHRoaXMuX2xhbmd1YWdlQ2hhbmdlJC5uZXh0KGxhbmcpKTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyTG9jYWxlKGxvY2FsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7IHJlZ2lzdGVyTG9jYWxlRm4gfTogQUJQLlJvb3QgPSB0aGlzLmluamVjdG9yLmdldChDT1JFX09QVElPTlMpO1xyXG5cclxuICAgIHJldHVybiByZWdpc3RlckxvY2FsZUZuKGxvY2FsZSkudGhlbihtb2R1bGUgPT4ge1xyXG4gICAgICBpZiAobW9kdWxlPy5kZWZhdWx0KSByZWdpc3RlckxvY2FsZURhdGEobW9kdWxlLmRlZmF1bHQpO1xyXG4gICAgICB0aGlzLmxhdGVzdExhbmcgPSBsb2NhbGU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSBsb2NhbGl6ZWQgdGV4dCB3aXRoIHRoZSBnaXZlbiBpbnRlcnBvbGF0aW9uIHBhcmFtZXRlcnMgaW4gY3VycmVudCBsYW5ndWFnZS5cclxuICAgKiBAcGFyYW0ga2V5IExvY2FsaXphdG9uIGtleSB0byByZXBsYWNlIHdpdGggbG9jYWxpemVkIHRleHRcclxuICAgKiBAcGFyYW0gaW50ZXJwb2xhdGVQYXJhbXMgVmFsdWVzIHRvIGludGVycG9sYXRlXHJcbiAgICovXHJcbiAgZ2V0KGtleTogc3RyaW5nIHwgTG9jYWxpemF0aW9uV2l0aERlZmF1bHQsIC4uLmludGVycG9sYXRlUGFyYW1zOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTdGF0ZVxyXG4gICAgICAuZ2V0QWxsJCgpXHJcbiAgICAgIC5waXBlKG1hcChzdGF0ZSA9PiB0aGlzLmdldExvY2FsaXphdGlvbihzdGF0ZSwga2V5LCAuLi5pbnRlcnBvbGF0ZVBhcmFtcykpKTtcclxuICB9XHJcblxyXG4gIGdldFJlc291cmNlKHJlc291cmNlTmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25zJC52YWx1ZS5nZXQocmVzb3VyY2VOYW1lKTtcclxuICB9XHJcblxyXG4gIGdldFJlc291cmNlJChyZXNvdXJjZU5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMubG9jYWxpemF0aW9ucyQucGlwZShtYXAocmVzID0+IHJlcy5nZXQocmVzb3VyY2VOYW1lKSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBsb2NhbGl6ZWQgdGV4dCB3aXRoIHRoZSBnaXZlbiBpbnRlcnBvbGF0aW9uIHBhcmFtZXRlcnMgaW4gY3VycmVudCBsYW5ndWFnZS5cclxuICAgKiBAcGFyYW0ga2V5IExvY2FsaXphdGlvbiBrZXkgdG8gcmVwbGFjZSB3aXRoIGxvY2FsaXplZCB0ZXh0XHJcbiAgICogQHBhcmFtIGludGVycG9sYXRlUGFyYW1zIFZhbHVlcyB0byBpbnRlcG9sYXRlLlxyXG4gICAqL1xyXG4gIGluc3RhbnQoa2V5OiBzdHJpbmcgfCBMb2NhbGl6YXRpb25XaXRoRGVmYXVsdCwgLi4uaW50ZXJwb2xhdGVQYXJhbXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmdldExvY2FsaXphdGlvbih0aGlzLmNvbmZpZ1N0YXRlLmdldEFsbCgpLCBrZXksIC4uLmludGVycG9sYXRlUGFyYW1zKTtcclxuICB9XHJcblxyXG4gIGxvY2FsaXplKHJlc291cmNlTmFtZTogc3RyaW5nLCBrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1N0YXRlLmdldE9uZSQoJ2xvY2FsaXphdGlvbicpLnBpcGUoXHJcbiAgICAgIG1hcChjcmVhdGVMb2NhbGl6ZXIpLFxyXG4gICAgICBtYXAobG9jYWxpemUgPT4gbG9jYWxpemUocmVzb3VyY2VOYW1lLCBrZXksIGRlZmF1bHRWYWx1ZSkpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxvY2FsaXplU3luYyhyZXNvdXJjZU5hbWU6IHN0cmluZywga2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBjb25zdCBsb2NhbGl6YXRpb24gPSB0aGlzLmNvbmZpZ1N0YXRlLmdldE9uZSgnbG9jYWxpemF0aW9uJyk7XHJcbiAgICByZXR1cm4gY3JlYXRlTG9jYWxpemVyKGxvY2FsaXphdGlvbikocmVzb3VyY2VOYW1lLCBrZXksIGRlZmF1bHRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBsb2NhbGl6ZVdpdGhGYWxsYmFjayhcclxuICAgIHJlc291cmNlTmFtZXM6IHN0cmluZ1tdLFxyXG4gICAga2V5czogc3RyaW5nW10sXHJcbiAgICBkZWZhdWx0VmFsdWU6IHN0cmluZyxcclxuICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU3RhdGUuZ2V0T25lJCgnbG9jYWxpemF0aW9uJykucGlwZShcclxuICAgICAgbWFwKGNyZWF0ZUxvY2FsaXplcldpdGhGYWxsYmFjayksXHJcbiAgICAgIG1hcChsb2NhbGl6ZVdpdGhGYWxsYmFjayA9PiBsb2NhbGl6ZVdpdGhGYWxsYmFjayhyZXNvdXJjZU5hbWVzLCBrZXlzLCBkZWZhdWx0VmFsdWUpKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBsb2NhbGl6ZVdpdGhGYWxsYmFja1N5bmMocmVzb3VyY2VOYW1lczogc3RyaW5nW10sIGtleXM6IHN0cmluZ1tdLCBkZWZhdWx0VmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBsb2NhbGl6YXRpb24gPSB0aGlzLmNvbmZpZ1N0YXRlLmdldE9uZSgnbG9jYWxpemF0aW9uJyk7XHJcbiAgICByZXR1cm4gY3JlYXRlTG9jYWxpemVyV2l0aEZhbGxiYWNrKGxvY2FsaXphdGlvbikocmVzb3VyY2VOYW1lcywga2V5cywgZGVmYXVsdFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TG9jYWxpemF0aW9uKFxyXG4gICAgc3RhdGU6IEFwcGxpY2F0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICAgIGtleTogc3RyaW5nIHwgTG9jYWxpemF0aW9uV2l0aERlZmF1bHQsXHJcbiAgICAuLi5pbnRlcnBvbGF0ZVBhcmFtczogc3RyaW5nW11cclxuICApIHtcclxuICAgIGxldCBkZWZhdWx0VmFsdWUgPSAnJztcclxuXHJcbiAgICBpZiAoIWtleSkge1xyXG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2Yga2V5ICE9PSAnc3RyaW5nJykge1xyXG4gICAgICBkZWZhdWx0VmFsdWUgPSBrZXkuZGVmYXVsdFZhbHVlO1xyXG4gICAgICBrZXkgPSBrZXkua2V5O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoJzo6JykgYXMgc3RyaW5nW107XHJcbiAgICBjb25zdCB3YXJuID0gKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xyXG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIGNvbnNvbGUud2FybihtZXNzYWdlKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYgKGtleXMubGVuZ3RoIDwgMikge1xyXG4gICAgICB3YXJuKCdUaGUgbG9jYWxpemF0aW9uIHNvdXJjZSBzZXBhcmF0b3IgKDo6KSBub3QgZm91bmQuJyk7XHJcbiAgICAgIHJldHVybiBkZWZhdWx0VmFsdWUgfHwgKGtleSBhcyBzdHJpbmcpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFzdGF0ZS5sb2NhbGl6YXRpb24pIHJldHVybiBkZWZhdWx0VmFsdWUgfHwga2V5c1sxXTtcclxuXHJcbiAgICBjb25zdCBzb3VyY2VOYW1lID0ga2V5c1swXSB8fCBzdGF0ZS5sb2NhbGl6YXRpb24uZGVmYXVsdFJlc291cmNlTmFtZTtcclxuICAgIGNvbnN0IHNvdXJjZUtleSA9IGtleXNbMV07XHJcblxyXG4gICAgaWYgKHNvdXJjZU5hbWUgPT09ICdfJykge1xyXG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlIHx8IHNvdXJjZUtleTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXNvdXJjZU5hbWUpIHtcclxuICAgICAgd2FybihcclxuICAgICAgICAnTG9jYWxpemF0aW9uIHNvdXJjZSBuYW1lIGlzIG5vdCBzcGVjaWZpZWQgYW5kIHRoZSBkZWZhdWx0UmVzb3VyY2VOYW1lIHdhcyBub3QgZGVmaW5lZCEnLFxyXG4gICAgICApO1xyXG5cclxuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZSB8fCBzb3VyY2VLZXk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc291cmNlID0gdGhpcy5sb2NhbGl6YXRpb25zJC52YWx1ZS5nZXQoc291cmNlTmFtZSk7XHJcbiAgICBpZiAoIXNvdXJjZSkge1xyXG4gICAgICB3YXJuKCdDb3VsZCBub3QgZmluZCBsb2NhbGl6YXRpb24gc291cmNlOiAnICsgc291cmNlTmFtZSk7XHJcbiAgICAgIHJldHVybiBkZWZhdWx0VmFsdWUgfHwgc291cmNlS2V5O1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBsb2NhbGl6YXRpb24gPSBzb3VyY2Vbc291cmNlS2V5XTtcclxuICAgIGlmICh0eXBlb2YgbG9jYWxpemF0aW9uID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlIHx8IHNvdXJjZUtleTtcclxuICAgIH1cclxuXHJcbiAgICBpbnRlcnBvbGF0ZVBhcmFtcyA9IGludGVycG9sYXRlUGFyYW1zLmZpbHRlcihwYXJhbXMgPT4gcGFyYW1zICE9IG51bGwpO1xyXG4gICAgaWYgKGxvY2FsaXphdGlvbikgbG9jYWxpemF0aW9uID0gaW50ZXJwb2xhdGUobG9jYWxpemF0aW9uLCBpbnRlcnBvbGF0ZVBhcmFtcyk7XHJcblxyXG4gICAgaWYgKHR5cGVvZiBsb2NhbGl6YXRpb24gIT09ICdzdHJpbmcnKSBsb2NhbGl6YXRpb24gPSAnJztcclxuXHJcbiAgICByZXR1cm4gbG9jYWxpemF0aW9uIHx8IGRlZmF1bHRWYWx1ZSB8fCAoa2V5IGFzIHN0cmluZyk7XHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiByZWN1cnNpdmVseU1lcmdlQmFzZVJlc291cmNlcyhcclxuICBiYXNlUmVzb3VyY2VOYW1lOiBzdHJpbmcsXHJcbiAgc291cmNlOiBSZXNvdXJjZUR0byxcclxuKTogQXBwbGljYXRpb25Mb2NhbGl6YXRpb25SZXNvdXJjZUR0byB7XHJcbiAgY29uc3QgaXRlbSA9IHNvdXJjZVtiYXNlUmVzb3VyY2VOYW1lXTtcclxuXHJcbiAgaWYgKGl0ZW0uYmFzZVJlc291cmNlcy5sZW5ndGggPT09IDApIHtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGl0ZW0uYmFzZVJlc291cmNlcy5yZWR1Y2UoKGFjYywgYmFzZVJlc291cmNlKSA9PiB7XHJcbiAgICBjb25zdCBiYXNlSXRlbSA9IHJlY3Vyc2l2ZWx5TWVyZ2VCYXNlUmVzb3VyY2VzKGJhc2VSZXNvdXJjZSwgc291cmNlKTtcclxuICAgIGNvbnN0IHRleHRzID0geyAuLi5iYXNlSXRlbS50ZXh0cywgLi4uaXRlbS50ZXh0cyB9O1xyXG4gICAgcmV0dXJuIHsgLi4uYWNjLCB0ZXh0cyB9O1xyXG4gIH0sIGl0ZW0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBtZXJnZVJlc291cmNlc1dpdGhCYXNlUmVzb3VyY2UocmVzb3VyY2U6IFJlc291cmNlRHRvKTogUmVzb3VyY2VEdG8ge1xyXG4gIGNvbnN0IGVudGl0aWVzOiBBcnJheTxbc3RyaW5nLCBBcHBsaWNhdGlvbkxvY2FsaXphdGlvblJlc291cmNlRHRvXT4gPSBPYmplY3Qua2V5cyhyZXNvdXJjZSkubWFwKFxyXG4gICAga2V5ID0+IHtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSByZWN1cnNpdmVseU1lcmdlQmFzZVJlc291cmNlcyhrZXksIHJlc291cmNlKTtcclxuICAgICAgcmV0dXJuIFtrZXksIG5ld1ZhbHVlXTtcclxuICAgIH0sXHJcbiAgKTtcclxuICByZXR1cm4gZW50aXRpZXMucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4gKHsgLi4uYWNjLCBba2V5XTogdmFsdWUgfSksIHt9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gY29tYmluZUxlZ2FjeWFuZE5ld1Jlc291cmNlcyhcclxuICBsZWdhY3k6IExlZ2FjeUxhbmd1YWdlRHRvLFxyXG4gIHJlc291cmNlOiBSZXNvdXJjZUR0byxcclxuKTogTGVnYWN5TGFuZ3VhZ2VEdG8ge1xyXG4gIGNvbnN0IG1lcmdlZFJlc291cmNlID0gbWVyZ2VSZXNvdXJjZXNXaXRoQmFzZVJlc291cmNlKHJlc291cmNlKTtcclxuXHJcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG1lcmdlZFJlc291cmNlKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICByZXR1cm4geyAuLi5hY2MsIFtrZXldOiB2YWx1ZS50ZXh0cyB9O1xyXG4gIH0sIGxlZ2FjeSk7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIExlZ2FjeUxhbmd1YWdlRHRvID0gUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj47XHJcbmV4cG9ydCB0eXBlIFJlc291cmNlRHRvID0gUmVjb3JkPHN0cmluZywgQXBwbGljYXRpb25Mb2NhbGl6YXRpb25SZXNvdXJjZUR0bz47XHJcbiJdfQ==
|
|
@@ -13,6 +13,7 @@ export class AbstractTreeService {
|
|
|
13
13
|
this._flat$ = new BehaviorSubject([]);
|
|
14
14
|
this._tree$ = new BehaviorSubject([]);
|
|
15
15
|
this._visible$ = new BehaviorSubject([]);
|
|
16
|
+
this.shouldSingularizeRoutes = true;
|
|
16
17
|
}
|
|
17
18
|
get flat() {
|
|
18
19
|
return this._flat$.value;
|
|
@@ -32,55 +33,69 @@ export class AbstractTreeService {
|
|
|
32
33
|
get visible$() {
|
|
33
34
|
return this._visible$.asObservable();
|
|
34
35
|
}
|
|
35
|
-
createTree(items) {
|
|
36
|
-
return createTreeFromList(items, item => item[this.id], item => item[this.parentId], item => BaseTreeNode.create(item));
|
|
37
|
-
}
|
|
38
|
-
createGroupedTree(list) {
|
|
39
|
-
const map = createGroupMap(list, this.othersGroup);
|
|
40
|
-
if (!map) {
|
|
41
|
-
return undefined;
|
|
42
|
-
}
|
|
43
|
-
return Array.from(map, ([key, items]) => ({ group: key, items }));
|
|
44
|
-
}
|
|
45
36
|
filterWith(setOrMap) {
|
|
46
37
|
return this._flat$.value.filter(item => !setOrMap.has(item[this.id]));
|
|
47
38
|
}
|
|
48
39
|
findItemsToRemove(set) {
|
|
49
40
|
return this._flat$.value.reduce((acc, item) => {
|
|
50
|
-
if (!acc.has(item[this.parentId]))
|
|
41
|
+
if (!acc.has(item[this.parentId])) {
|
|
51
42
|
return acc;
|
|
43
|
+
}
|
|
52
44
|
const childSet = new Set([item[this.id]]);
|
|
53
45
|
const children = this.findItemsToRemove(childSet);
|
|
54
46
|
return new Set([...acc, ...children]);
|
|
55
47
|
}, set);
|
|
56
48
|
}
|
|
57
|
-
publish(flatItems
|
|
49
|
+
publish(flatItems) {
|
|
58
50
|
this._flat$.next(flatItems);
|
|
59
51
|
this._tree$.next(this.createTree(flatItems));
|
|
60
|
-
this._visible$.next(this.createTree(
|
|
52
|
+
this._visible$.next(this.createTree(flatItems.filter(item => !this.hide(item))));
|
|
61
53
|
return flatItems;
|
|
62
54
|
}
|
|
55
|
+
createTree(items) {
|
|
56
|
+
return createTreeFromList(items, item => item[this.id], item => item[this.parentId], item => BaseTreeNode.create(item));
|
|
57
|
+
}
|
|
58
|
+
createGroupedTree(list) {
|
|
59
|
+
const map = createGroupMap(list, this.othersGroup);
|
|
60
|
+
if (!map) {
|
|
61
|
+
return undefined;
|
|
62
|
+
}
|
|
63
|
+
return Array.from(map, ([key, items]) => ({ group: key, items }));
|
|
64
|
+
}
|
|
63
65
|
add(items) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
let flatItems = [];
|
|
67
|
+
if (!this.shouldSingularizeRoutes) {
|
|
68
|
+
flatItems = [...this.flat, ...items];
|
|
69
|
+
}
|
|
70
|
+
if (this.shouldSingularizeRoutes) {
|
|
71
|
+
const map = new Map();
|
|
72
|
+
items.forEach(item => map.set(item[this.id], item));
|
|
73
|
+
flatItems = this.filterWith(map);
|
|
74
|
+
map.forEach(pushValueTo(flatItems));
|
|
75
|
+
}
|
|
68
76
|
flatItems.sort(this.sort);
|
|
69
|
-
|
|
70
|
-
return this.publish(flatItems, visibleItems);
|
|
77
|
+
return this.publish(flatItems);
|
|
71
78
|
}
|
|
72
79
|
find(predicate, tree = this.tree) {
|
|
73
|
-
return tree.reduce((acc, node) =>
|
|
80
|
+
return tree.reduce((acc, node) => {
|
|
81
|
+
if (acc) {
|
|
82
|
+
return acc;
|
|
83
|
+
}
|
|
84
|
+
if (predicate(node)) {
|
|
85
|
+
return node;
|
|
86
|
+
}
|
|
87
|
+
return this.find(predicate, node.children);
|
|
88
|
+
}, null);
|
|
74
89
|
}
|
|
75
90
|
patch(identifier, props) {
|
|
76
91
|
const flatItems = this._flat$.value;
|
|
77
92
|
const index = flatItems.findIndex(item => item[this.id] === identifier);
|
|
78
|
-
if (index < 0)
|
|
93
|
+
if (index < 0) {
|
|
79
94
|
return false;
|
|
95
|
+
}
|
|
80
96
|
flatItems[index] = { ...flatItems[index], ...props };
|
|
81
97
|
flatItems.sort(this.sort);
|
|
82
|
-
|
|
83
|
-
return this.publish(flatItems, visibleItems);
|
|
98
|
+
return this.publish(flatItems);
|
|
84
99
|
}
|
|
85
100
|
refresh() {
|
|
86
101
|
return this.add([]);
|
|
@@ -90,16 +105,40 @@ export class AbstractTreeService {
|
|
|
90
105
|
identifiers.forEach(id => set.add(id));
|
|
91
106
|
const setToRemove = this.findItemsToRemove(set);
|
|
92
107
|
const flatItems = this.filterWith(setToRemove);
|
|
93
|
-
|
|
94
|
-
|
|
108
|
+
return this.publish(flatItems);
|
|
109
|
+
}
|
|
110
|
+
removeByParam(params) {
|
|
111
|
+
if (!params) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
const keys = Object.keys(params);
|
|
115
|
+
if (keys.length === 0) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
const excludedList = this.flat.filter(item => keys.every(key => item[key] === params[key]));
|
|
119
|
+
if (!excludedList?.length) {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
for (const item of excludedList) {
|
|
123
|
+
this.removeByParam({ [this.parentId]: item[this.id] });
|
|
124
|
+
}
|
|
125
|
+
const flatItems = this.flat.filter(item => !excludedList.includes(item));
|
|
126
|
+
return this.publish(flatItems);
|
|
95
127
|
}
|
|
96
128
|
search(params, tree = this.tree) {
|
|
97
129
|
const searchKeys = Object.keys(params);
|
|
98
|
-
return tree.reduce((acc, node) =>
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
130
|
+
return tree.reduce((acc, node) => {
|
|
131
|
+
if (acc) {
|
|
132
|
+
return acc;
|
|
133
|
+
}
|
|
134
|
+
if (searchKeys.every(key => node[key] === params[key])) {
|
|
135
|
+
return node;
|
|
136
|
+
}
|
|
137
|
+
return this.search(params, node.children);
|
|
138
|
+
}, null);
|
|
139
|
+
}
|
|
140
|
+
setSingularizeStatus(singularize = true) {
|
|
141
|
+
this.shouldSingularizeRoutes = singularize;
|
|
103
142
|
}
|
|
104
143
|
}
|
|
105
144
|
export class AbstractNavTreeService extends AbstractTreeService {
|
|
@@ -158,4 +197,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
158
197
|
type: Injectable,
|
|
159
198
|
args: [{ providedIn: 'root' }]
|
|
160
199
|
}] });
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvcm91dGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBNEIsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFDTCxZQUFZLEVBQ1osa0JBQWtCLEVBR2xCLGNBQWMsR0FDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUVqRSx3REFBd0Q7QUFDeEQsTUFBTSxPQUFnQixtQkFBbUI7SUFBekM7UUFNVSxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQU0sRUFBRSxDQUFDLENBQUM7UUFDdEMsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFnQixFQUFFLENBQUMsQ0FBQztRQUNoRCxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBK0g3RCxDQUFDO0lBM0hDLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04s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QUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFEM0MsVUFBVTs7QUErQ1gsTUFBTSxPQUFPLGFBQWMsU0FBUSxzQkFBaUM7SUFDMUQsY0FBYyxDQUFDLElBQXlCO1FBQzlDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN2QixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQzdELEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUNoRCxDQUFDO0lBQ0osQ0FBQzs4R0FkVSxhQUFhO2tIQUFiLGFBQWEsY0FEQSxNQUFNOzsyRkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBtYXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi4vbW9kZWxzL2NvbW1vbic7XHJcbmltcG9ydCB7IE9USEVSU19HUk9VUCB9IGZyb20gJy4uL3Rva2Vucyc7XHJcbmltcG9ydCB7IHB1c2hWYWx1ZVRvIH0gZnJvbSAnLi4vdXRpbHMvYXJyYXktdXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gIEJhc2VUcmVlTm9kZSxcclxuICBjcmVhdGVUcmVlRnJvbUxpc3QsXHJcbiAgVHJlZU5vZGUsXHJcbiAgUm91dGVHcm91cCxcclxuICBjcmVhdGVHcm91cE1hcCxcclxufSBmcm9tICcuLi91dGlscy90cmVlLXV0aWxzJztcclxuaW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWctc3RhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTT1JUX0NPTVBBUkVfRlVOQyB9IGZyb20gJy4uL3Rva2Vucy9jb21wYXJlLWZ1bmMudG9rZW4nO1xyXG5cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHJlZVNlcnZpY2U8VCBleHRlbmRzIHsgW2tleTogc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sXTogYW55IH0+IHtcclxuICBhYnN0cmFjdCBpZDogc3RyaW5nO1xyXG4gIGFic3RyYWN0IHBhcmVudElkOiBzdHJpbmc7XHJcbiAgYWJzdHJhY3QgaGlkZTogKGl0ZW06IFQpID0+IGJvb2xlYW47XHJcbiAgYWJzdHJhY3Qgc29ydDogKGE6IFQsIGI6IFQpID0+IG51bWJlcjtcclxuXHJcbiAgcHJpdmF0ZSBfZmxhdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRbXT4oW10pO1xyXG4gIHByaXZhdGUgX3RyZWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUcmVlTm9kZTxUPltdPihbXSk7XHJcbiAgcHJpdmF0ZSBfdmlzaWJsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRyZWVOb2RlPFQ+W10+KFtdKTtcclxuXHJcbiAgcHJvdGVjdGVkIG90aGVyc0dyb3VwOiBzdHJpbmc7XHJcblxyXG4gIGdldCBmbGF0KCk6IFRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmxhdCQudmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgZmxhdCQoKTogT2JzZXJ2YWJsZTxUW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9mbGF0JC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIGdldCB0cmVlKCk6IFRyZWVOb2RlPFQ+W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyZWUkLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRyZWUkKCk6IE9ic2VydmFibGU8VHJlZU5vZGU8VD5bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyZWUkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZpc2libGUoKTogVHJlZU5vZGU8VD5bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZSQudmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgdmlzaWJsZSQoKTogT2JzZXJ2YWJsZTxUcmVlTm9kZTxUPltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZSQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY3JlYXRlVHJlZShpdGVtczogVFtdKTogVHJlZU5vZGU8VD5bXSB7XHJcbiAgICByZXR1cm4gY3JlYXRlVHJlZUZyb21MaXN0PFQsIFRyZWVOb2RlPFQ+PihcclxuICAgICAgaXRlbXMsXHJcbiAgICAgIGl0ZW0gPT4gaXRlbVt0aGlzLmlkXSxcclxuICAgICAgaXRlbSA9PiBpdGVtW3RoaXMucGFyZW50SWRdLFxyXG4gICAgICBpdGVtID0+IEJhc2VUcmVlTm9kZS5jcmVhdGUoaXRlbSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNyZWF0ZUdyb3VwZWRUcmVlKGxpc3Q6IFRyZWVOb2RlPFQ+W10pOiBSb3V0ZUdyb3VwPFQ+W10gfCB1bmRlZmluZWQge1xyXG4gICAgY29uc3QgbWFwID0gY3JlYXRlR3JvdXBNYXA8VD4obGlzdCwgdGhpcy5vdGhlcnNHcm91cCk7XHJcbiAgICBpZiAoIW1hcCkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBBcnJheS5mcm9tKG1hcCwgKFtrZXksIGl0ZW1zXSkgPT4gKHsgZ3JvdXA6IGtleSwgaXRlbXMgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJXaXRoKHNldE9yTWFwOiBTZXQ8c3RyaW5nPiB8IE1hcDxzdHJpbmcsIFQ+KTogVFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9mbGF0JC52YWx1ZS5maWx0ZXIoaXRlbSA9PiAhc2V0T3JNYXAuaGFzKGl0ZW1bdGhpcy5pZF0pKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZEl0ZW1zVG9SZW1vdmUoc2V0OiBTZXQ8c3RyaW5nPik6IFNldDxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLl9mbGF0JC52YWx1ZS5yZWR1Y2UoKGFjYywgaXRlbSkgPT4ge1xyXG4gICAgICBpZiAoIWFjYy5oYXMoaXRlbVt0aGlzLnBhcmVudElkXSkpIHJldHVybiBhY2M7XHJcbiAgICAgIGNvbnN0IGNoaWxkU2V0ID0gbmV3IFNldChbaXRlbVt0aGlzLmlkXV0pO1xyXG4gICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuZmluZEl0ZW1zVG9SZW1vdmUoY2hpbGRTZXQpO1xyXG4gICAgICByZXR1cm4gbmV3IFNldChbLi4uYWNjLCAuLi5jaGlsZHJlbl0pO1xyXG4gICAgfSwgc2V0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHVibGlzaChmbGF0SXRlbXM6IFRbXSwgdmlzaWJsZUl0ZW1zOiBUW10pOiBUW10ge1xyXG4gICAgdGhpcy5fZmxhdCQubmV4dChmbGF0SXRlbXMpO1xyXG4gICAgdGhpcy5fdHJlZSQubmV4dCh0aGlzLmNyZWF0ZVRyZWUoZmxhdEl0ZW1zKSk7XHJcbiAgICB0aGlzLl92aXNpYmxlJC5uZXh0KHRoaXMuY3JlYXRlVHJlZSh2aXNpYmxlSXRlbXMpKTtcclxuICAgIHJldHVybiBmbGF0SXRlbXM7XHJcbiAgfVxyXG5cclxuICBhZGQoaXRlbXM6IFRbXSk6IFRbXSB7XHJcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPHN0cmluZywgVD4oKTtcclxuICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiBtYXAuc2V0KGl0ZW1bdGhpcy5pZF0sIGl0ZW0pKTtcclxuXHJcbiAgICBjb25zdCBmbGF0SXRlbXMgPSB0aGlzLmZpbHRlcldpdGgobWFwKTtcclxuICAgIG1hcC5mb3JFYWNoKHB1c2hWYWx1ZVRvKGZsYXRJdGVtcykpO1xyXG5cclxuICAgIGZsYXRJdGVtcy5zb3J0KHRoaXMuc29ydCk7XHJcbiAgICBjb25zdCB2aXNpYmxlSXRlbXMgPSBmbGF0SXRlbXMuZmlsdGVyKGl0ZW0gPT4gIXRoaXMuaGlkZShpdGVtKSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucHVibGlzaChmbGF0SXRlbXMsIHZpc2libGVJdGVtcyk7XHJcbiAgfVxyXG5cclxuICBmaW5kKHByZWRpY2F0ZTogKGl0ZW06IFRyZWVOb2RlPFQ+KSA9PiBib29sZWFuLCB0cmVlID0gdGhpcy50cmVlKTogVHJlZU5vZGU8VD4gfCBudWxsIHtcclxuICAgIHJldHVybiB0cmVlLnJlZHVjZTxUcmVlTm9kZTxUPiB8IG51bGw+KFxyXG4gICAgICAoYWNjLCBub2RlKSA9PiAoYWNjID8gYWNjIDogcHJlZGljYXRlKG5vZGUpID8gbm9kZSA6IHRoaXMuZmluZChwcmVkaWNhdGUsIG5vZGUuY2hpbGRyZW4pKSxcclxuICAgICAgbnVsbCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwYXRjaChpZGVudGlmaWVyOiBzdHJpbmcsIHByb3BzOiBQYXJ0aWFsPFQ+KTogVFtdIHwgZmFsc2Uge1xyXG4gICAgY29uc3QgZmxhdEl0ZW1zID0gdGhpcy5fZmxhdCQudmFsdWU7XHJcbiAgICBjb25zdCBpbmRleCA9IGZsYXRJdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtW3RoaXMuaWRdID09PSBpZGVudGlmaWVyKTtcclxuICAgIGlmIChpbmRleCA8IDApIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBmbGF0SXRlbXNbaW5kZXhdID0geyAuLi5mbGF0SXRlbXNbaW5kZXhdLCAuLi5wcm9wcyB9O1xyXG5cclxuICAgIGZsYXRJdGVtcy5zb3J0KHRoaXMuc29ydCk7XHJcbiAgICBjb25zdCB2aXNpYmxlSXRlbXMgPSBmbGF0SXRlbXMuZmlsdGVyKGl0ZW0gPT4gIXRoaXMuaGlkZShpdGVtKSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucHVibGlzaChmbGF0SXRlbXMsIHZpc2libGVJdGVtcyk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCk6IFRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGQoW10pO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKGlkZW50aWZpZXJzOiBzdHJpbmdbXSk6IFRbXSB7XHJcbiAgICBjb25zdCBzZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICAgIGlkZW50aWZpZXJzLmZvckVhY2goaWQgPT4gc2V0LmFkZChpZCkpO1xyXG5cclxuICAgIGNvbnN0IHNldFRvUmVtb3ZlID0gdGhpcy5maW5kSXRlbXNUb1JlbW92ZShzZXQpO1xyXG4gICAgY29uc3QgZmxhdEl0ZW1zID0gdGhpcy5maWx0ZXJXaXRoKHNldFRvUmVtb3ZlKTtcclxuICAgIGNvbnN0IHZpc2libGVJdGVtcyA9IGZsYXRJdGVtcy5maWx0ZXIoaXRlbSA9PiAhdGhpcy5oaWRlKGl0ZW0pKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wdWJsaXNoKGZsYXRJdGVtcywgdmlzaWJsZUl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaChwYXJhbXM6IFBhcnRpYWw8VD4sIHRyZWUgPSB0aGlzLnRyZWUpOiBUcmVlTm9kZTxUPiB8IG51bGwge1xyXG4gICAgY29uc3Qgc2VhcmNoS2V5cyA9IE9iamVjdC5rZXlzKHBhcmFtcykgYXMgQXJyYXk8a2V5b2YgUGFydGlhbDxUPj47XHJcblxyXG4gICAgcmV0dXJuIHRyZWUucmVkdWNlPFRyZWVOb2RlPFQ+IHwgbnVsbD4oXHJcbiAgICAgIChhY2MsIG5vZGUpID0+XHJcbiAgICAgICAgYWNjXHJcbiAgICAgICAgICA/IGFjY1xyXG4gICAgICAgICAgOiBzZWFyY2hLZXlzLmV2ZXJ5KGtleSA9PiBub2RlW2tleV0gPT09IHBhcmFtc1trZXldKVxyXG4gICAgICAgICAgPyBub2RlXHJcbiAgICAgICAgICA6IHRoaXMuc2VhcmNoKHBhcmFtcywgbm9kZS5jaGlsZHJlbiksXHJcbiAgICAgIG51bGwsXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3ROYXZUcmVlU2VydmljZTxUIGV4dGVuZHMgQUJQLk5hdj5cclxuICBleHRlbmRzIEFic3RyYWN0VHJlZVNlcnZpY2U8VD5cclxuICBpbXBsZW1lbnRzIE9uRGVzdHJveVxyXG57XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZTtcclxuICBwcml2YXRlIGNvbXBhcmVGdW5jO1xyXG4gIHJlYWRvbmx5IGlkID0gJ25hbWUnO1xyXG4gIHJlYWRvbmx5IHBhcmVudElkID0gJ3BhcmVudE5hbWUnO1xyXG4gIHJlYWRvbmx5IGhpZGUgPSAoaXRlbTogVCkgPT4gaXRlbS5pbnZpc2libGUgfHwgIXRoaXMuaXNHcmFudGVkKGl0ZW0pO1xyXG4gIHJlYWRvbmx5IHNvcnQgPSAoYTogVCwgYjogVCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcGFyZUZ1bmMoYSxiKVxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBjb25zdCBjb25maWdTdGF0ZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KENvbmZpZ1N0YXRlU2VydmljZSk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGNvbmZpZ1N0YXRlXHJcbiAgICAgIC5jcmVhdGVPblVwZGF0ZVN0cmVhbShzdGF0ZSA9PiBzdGF0ZSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlZnJlc2goKSk7XHJcbiAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFBlcm1pc3Npb25TZXJ2aWNlKTtcclxuICAgIHRoaXMub3RoZXJzR3JvdXAgPSBpbmplY3Rvci5nZXQoT1RIRVJTX0dST1VQKTtcclxuICAgIHRoaXMuY29tcGFyZUZ1bmMgPSBpbmplY3Rvci5nZXQoU09SVF9DT01QQVJFX0ZVTkMpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGlzR3JhbnRlZCh7IHJlcXVpcmVkUG9saWN5IH06IFQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmdldEdyYW50ZWRQb2xpY3kocmVxdWlyZWRQb2xpY3kpO1xyXG4gIH1cclxuXHJcbiAgaGFzQ2hpbGRyZW4oaWRlbnRpZmllcjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBub2RlID0gdGhpcy5maW5kKGl0ZW0gPT4gaXRlbVt0aGlzLmlkXSA9PT0gaWRlbnRpZmllcik7XHJcbiAgICByZXR1cm4gQm9vbGVhbihub2RlPy5jaGlsZHJlbj8ubGVuZ3RoKTtcclxuICB9XHJcblxyXG4gIGhhc0ludmlzaWJsZUNoaWxkKGlkZW50aWZpZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZmluZChpdGVtID0+IGl0ZW1bdGhpcy5pZF0gPT09IGlkZW50aWZpZXIpO1xyXG4gICAgcmV0dXJuIG5vZGU/LmNoaWxkcmVuPy5zb21lKGNoaWxkID0+IGNoaWxkLmludmlzaWJsZSkgfHwgZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXNTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3ROYXZUcmVlU2VydmljZTxBQlAuUm91dGU+IHtcclxuICBwcml2YXRlIGhhc1BhdGhPckNoaWxkKGl0ZW06IFRyZWVOb2RlPEFCUC5Sb3V0ZT4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBCb29sZWFuKGl0ZW0ucGF0aCkgfHwgdGhpcy5oYXNDaGlsZHJlbihpdGVtLm5hbWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdyb3VwZWRWaXNpYmxlKCk6IFJvdXRlR3JvdXA8QUJQLlJvdXRlPltdIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUdyb3VwZWRUcmVlKHRoaXMudmlzaWJsZS5maWx0ZXIoaXRlbSA9PiB0aGlzLmhhc1BhdGhPckNoaWxkKGl0ZW0pKSk7XHJcbiAgfVxyXG5cclxuICBnZXQgZ3JvdXBlZFZpc2libGUkKCk6IE9ic2VydmFibGU8Um91dGVHcm91cDxBQlAuUm91dGU+W10gfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiB0aGlzLnZpc2libGUkLnBpcGUoXHJcbiAgICAgIG1hcChpdGVtcyA9PiBpdGVtcy5maWx0ZXIoaXRlbSA9PiB0aGlzLmhhc1BhdGhPckNoaWxkKGl0ZW0pKSksXHJcbiAgICAgIG1hcCh2aXNpYmxlID0+IHRoaXMuY3JlYXRlR3JvdXBlZFRyZWUodmlzaWJsZSkpLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
200
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvc2VydmljZXMvcm91dGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBNEIsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFDTCxZQUFZLEVBQ1osa0JBQWtCLEVBR2xCLGNBQWMsR0FDZixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUVqRSx3REFBd0Q7QUFDeEQsTUFBTSxPQUFnQixtQkFBbUI7SUFBekM7UUFNVSxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQU0sRUFBRSxDQUFDLENBQUM7UUFDdEMsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFnQixFQUFFLENBQUMsQ0FBQztRQUNoRCxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBR2pELDRCQUF1QixHQUFHLElBQUksQ0FBQztJQXdLM0MsQ0FBQztJQXRLQyxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFD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QUFDO0lBQ2xDLENBQUM7OEdBMUNtQixzQkFBc0I7a0hBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFEM0MsVUFBVTs7QUErQ1gsTUFBTSxPQUFPLGFBQWMsU0FBUSxzQkFBaUM7SUFDMUQsY0FBYyxDQUFDLElBQXlCO1FBQzlDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN2QixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQzdELEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUNoRCxDQUFDO0lBQ0osQ0FBQzs4R0FkVSxhQUFhO2tIQUFiLGFBQWEsY0FEQSxNQUFNOzsyRkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBtYXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQUJQIH0gZnJvbSAnLi4vbW9kZWxzL2NvbW1vbic7XHJcbmltcG9ydCB7IE9USEVSU19HUk9VUCB9IGZyb20gJy4uL3Rva2Vucyc7XHJcbmltcG9ydCB7IHB1c2hWYWx1ZVRvIH0gZnJvbSAnLi4vdXRpbHMvYXJyYXktdXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gIEJhc2VUcmVlTm9kZSxcclxuICBjcmVhdGVUcmVlRnJvbUxpc3QsXHJcbiAgVHJlZU5vZGUsXHJcbiAgUm91dGVHcm91cCxcclxuICBjcmVhdGVHcm91cE1hcCxcclxufSBmcm9tICcuLi91dGlscy90cmVlLXV0aWxzJztcclxuaW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWctc3RhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9wZXJtaXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTT1JUX0NPTVBBUkVfRlVOQyB9IGZyb20gJy4uL3Rva2Vucy9jb21wYXJlLWZ1bmMudG9rZW4nO1xyXG5cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHJlZVNlcnZpY2U8VCBleHRlbmRzIHsgW2tleTogc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sXTogYW55IH0+IHtcclxuICBhYnN0cmFjdCBpZDogc3RyaW5nO1xyXG4gIGFic3RyYWN0IHBhcmVudElkOiBzdHJpbmc7XHJcbiAgYWJzdHJhY3QgaGlkZTogKGl0ZW06IFQpID0+IGJvb2xlYW47XHJcbiAgYWJzdHJhY3Qgc29ydDogKGE6IFQsIGI6IFQpID0+IG51bWJlcjtcclxuXHJcbiAgcHJpdmF0ZSBfZmxhdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRbXT4oW10pO1xyXG4gIHByaXZhdGUgX3RyZWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUcmVlTm9kZTxUPltdPihbXSk7XHJcbiAgcHJpdmF0ZSBfdmlzaWJsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRyZWVOb2RlPFQ+W10+KFtdKTtcclxuXHJcbiAgcHJvdGVjdGVkIG90aGVyc0dyb3VwOiBzdHJpbmc7XHJcbiAgcHJvdGVjdGVkIHNob3VsZFNpbmd1bGFyaXplUm91dGVzID0gdHJ1ZTtcclxuXHJcbiAgZ2V0IGZsYXQoKTogVFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9mbGF0JC52YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCBmbGF0JCgpOiBPYnNlcnZhYmxlPFRbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZsYXQkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRyZWUoKTogVHJlZU5vZGU8VD5bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJlZSQudmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgdHJlZSQoKTogT2JzZXJ2YWJsZTxUcmVlTm9kZTxUPltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHJlZSQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmlzaWJsZSgpOiBUcmVlTm9kZTxUPltdIHtcclxuICAgIHJldHVybiB0aGlzLl92aXNpYmxlJC52YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldCB2aXNpYmxlJCgpOiBPYnNlcnZhYmxlPFRyZWVOb2RlPFQ+W10+IHtcclxuICAgIHJldHVybiB0aGlzLl92aXNpYmxlJC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsdGVyV2l0aChzZXRPck1hcDogU2V0PHN0cmluZz4gfCBNYXA8c3RyaW5nLCBUPik6IFRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmxhdCQudmFsdWUuZmlsdGVyKGl0ZW0gPT4gIXNldE9yTWFwLmhhcyhpdGVtW3RoaXMuaWRdKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRJdGVtc1RvUmVtb3ZlKHNldDogU2V0PHN0cmluZz4pOiBTZXQ8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmxhdCQudmFsdWUucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcclxuICAgICAgaWYgKCFhY2MuaGFzKGl0ZW1bdGhpcy5wYXJlbnRJZF0pKSB7XHJcbiAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgY2hpbGRTZXQgPSBuZXcgU2V0KFtpdGVtW3RoaXMuaWRdXSk7XHJcbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5maW5kSXRlbXNUb1JlbW92ZShjaGlsZFNldCk7XHJcbiAgICAgIHJldHVybiBuZXcgU2V0KFsuLi5hY2MsIC4uLmNoaWxkcmVuXSk7XHJcbiAgICB9LCBzZXQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwdWJsaXNoKGZsYXRJdGVtczogVFtdKTogVFtdIHtcclxuICAgIHRoaXMuX2ZsYXQkLm5leHQoZmxhdEl0ZW1zKTtcclxuICAgIHRoaXMuX3RyZWUkLm5leHQodGhpcy5jcmVhdGVUcmVlKGZsYXRJdGVtcykpO1xyXG4gICAgdGhpcy5fdmlzaWJsZSQubmV4dCh0aGlzLmNyZWF0ZVRyZWUoZmxhdEl0ZW1zLmZpbHRlcihpdGVtID0+ICF0aGlzLmhpZGUoaXRlbSkpKSk7XHJcbiAgICByZXR1cm4gZmxhdEl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNyZWF0ZVRyZWUoaXRlbXM6IFRbXSk6IFRyZWVOb2RlPFQ+W10ge1xyXG4gICAgcmV0dXJuIGNyZWF0ZVRyZWVGcm9tTGlzdDxULCBUcmVlTm9kZTxUPj4oXHJcbiAgICAgIGl0ZW1zLFxyXG4gICAgICBpdGVtID0+IGl0ZW1bdGhpcy5pZF0sXHJcbiAgICAgIGl0ZW0gPT4gaXRlbVt0aGlzLnBhcmVudElkXSxcclxuICAgICAgaXRlbSA9PiBCYXNlVHJlZU5vZGUuY3JlYXRlKGl0ZW0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjcmVhdGVHcm91cGVkVHJlZShsaXN0OiBUcmVlTm9kZTxUPltdKTogUm91dGVHcm91cDxUPltdIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IG1hcCA9IGNyZWF0ZUdyb3VwTWFwPFQ+KGxpc3QsIHRoaXMub3RoZXJzR3JvdXApO1xyXG4gICAgaWYgKCFtYXApIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbShtYXAsIChba2V5LCBpdGVtc10pID0+ICh7IGdyb3VwOiBrZXksIGl0ZW1zIH0pKTtcclxuICB9XHJcblxyXG4gIGFkZChpdGVtczogVFtdKTogVFtdIHtcclxuICAgIGxldCBmbGF0SXRlbXM6IFRbXSA9IFtdO1xyXG5cclxuICAgIGlmICghdGhpcy5zaG91bGRTaW5ndWxhcml6ZVJvdXRlcykge1xyXG4gICAgICBmbGF0SXRlbXMgPSBbLi4udGhpcy5mbGF0LCAuLi5pdGVtc107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuc2hvdWxkU2luZ3VsYXJpemVSb3V0ZXMpIHtcclxuICAgICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIFQ+KCk7XHJcbiAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiBtYXAuc2V0KGl0ZW1bdGhpcy5pZF0sIGl0ZW0pKTtcclxuICAgICAgZmxhdEl0ZW1zID0gdGhpcy5maWx0ZXJXaXRoKG1hcCk7XHJcbiAgICAgIG1hcC5mb3JFYWNoKHB1c2hWYWx1ZVRvKGZsYXRJdGVtcykpO1xyXG4gICAgfVxyXG5cclxuICAgIGZsYXRJdGVtcy5zb3J0KHRoaXMuc29ydCk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucHVibGlzaChmbGF0SXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgZmluZChwcmVkaWNhdGU6IChpdGVtOiBUcmVlTm9kZTxUPikgPT4gYm9vbGVhbiwgdHJlZSA9IHRoaXMudHJlZSk6IFRyZWVOb2RlPFQ+IHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdHJlZS5yZWR1Y2U8VHJlZU5vZGU8VD4gfCBudWxsPigoYWNjLCBub2RlKSA9PiB7XHJcbiAgICAgIGlmIChhY2MpIHtcclxuICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAocHJlZGljYXRlKG5vZGUpKSB7XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB0aGlzLmZpbmQocHJlZGljYXRlLCBub2RlLmNoaWxkcmVuKTtcclxuICAgIH0sIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgcGF0Y2goaWRlbnRpZmllcjogc3RyaW5nLCBwcm9wczogUGFydGlhbDxUPik6IFRbXSB8IGZhbHNlIHtcclxuICAgIGNvbnN0IGZsYXRJdGVtcyA9IHRoaXMuX2ZsYXQkLnZhbHVlO1xyXG4gICAgY29uc3QgaW5kZXggPSBmbGF0SXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbVt0aGlzLmlkXSA9PT0gaWRlbnRpZmllcik7XHJcbiAgICBpZiAoaW5kZXggPCAwKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBmbGF0SXRlbXNbaW5kZXhdID0geyAuLi5mbGF0SXRlbXNbaW5kZXhdLCAuLi5wcm9wcyB9O1xyXG5cclxuICAgIGZsYXRJdGVtcy5zb3J0KHRoaXMuc29ydCk7XHJcbiAgICByZXR1cm4gdGhpcy5wdWJsaXNoKGZsYXRJdGVtcyk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCk6IFRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGQoW10pO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKGlkZW50aWZpZXJzOiBzdHJpbmdbXSk6IFRbXSB7XHJcbiAgICBjb25zdCBzZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuICAgIGlkZW50aWZpZXJzLmZvckVhY2goaWQgPT4gc2V0LmFkZChpZCkpO1xyXG5cclxuICAgIGNvbnN0IHNldFRvUmVtb3ZlID0gdGhpcy5maW5kSXRlbXNUb1JlbW92ZShzZXQpO1xyXG4gICAgY29uc3QgZmxhdEl0ZW1zID0gdGhpcy5maWx0ZXJXaXRoKHNldFRvUmVtb3ZlKTtcclxuICAgIHJldHVybiB0aGlzLnB1Ymxpc2goZmxhdEl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUJ5UGFyYW0ocGFyYW1zOiBQYXJ0aWFsPFQ+KTogVFtdIHwgbnVsbCB7XHJcbiAgICBpZiAoIXBhcmFtcykge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocGFyYW1zKSBhcyBBcnJheTxrZXlvZiBQYXJ0aWFsPFQ+PjtcclxuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBleGNsdWRlZExpc3QgPSB0aGlzLmZsYXQuZmlsdGVyKGl0ZW0gPT4ga2V5cy5ldmVyeShrZXkgPT4gaXRlbVtrZXldID09PSBwYXJhbXNba2V5XSkpO1xyXG4gICAgaWYgKCFleGNsdWRlZExpc3Q/Lmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZXhjbHVkZWRMaXN0KSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlQnlQYXJhbSh7IFt0aGlzLnBhcmVudElkXTogaXRlbVt0aGlzLmlkXSB9IGFzIFBhcnRpYWw8VD4pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZsYXRJdGVtcyA9IHRoaXMuZmxhdC5maWx0ZXIoaXRlbSA9PiAhZXhjbHVkZWRMaXN0LmluY2x1ZGVzKGl0ZW0pKTtcclxuICAgIHJldHVybiB0aGlzLnB1Ymxpc2goZmxhdEl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaChwYXJhbXM6IFBhcnRpYWw8VD4sIHRyZWUgPSB0aGlzLnRyZWUpOiBUcmVlTm9kZTxUPiB8IG51bGwge1xyXG4gICAgY29uc3Qgc2VhcmNoS2V5cyA9IE9iamVjdC5rZXlzKHBhcmFtcykgYXMgQXJyYXk8a2V5b2YgUGFydGlhbDxUPj47XHJcblxyXG4gICAgcmV0dXJuIHRyZWUucmVkdWNlPFRyZWVOb2RlPFQ+IHwgbnVsbD4oKGFjYywgbm9kZSkgPT4ge1xyXG4gICAgICBpZiAoYWNjKSB7XHJcbiAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHNlYXJjaEtleXMuZXZlcnkoa2V5ID0+IG5vZGVba2V5XSA9PT0gcGFyYW1zW2tleV0pKSB7XHJcbiAgICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB0aGlzLnNlYXJjaChwYXJhbXMsIG5vZGUuY2hpbGRyZW4pO1xyXG4gICAgfSwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBzZXRTaW5ndWxhcml6ZVN0YXR1cyhzaW5ndWxhcml6ZSA9IHRydWUpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvdWxkU2luZ3VsYXJpemVSb3V0ZXMgPSBzaW5ndWxhcml6ZTtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TmF2VHJlZVNlcnZpY2U8VCBleHRlbmRzIEFCUC5OYXY+XHJcbiAgZXh0ZW5kcyBBYnN0cmFjdFRyZWVTZXJ2aWNlPFQ+XHJcbiAgaW1wbGVtZW50cyBPbkRlc3Ryb3lcclxue1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2U7XHJcbiAgcHJpdmF0ZSBjb21wYXJlRnVuYztcclxuICByZWFkb25seSBpZCA9ICduYW1lJztcclxuICByZWFkb25seSBwYXJlbnRJZCA9ICdwYXJlbnROYW1lJztcclxuICByZWFkb25seSBoaWRlID0gKGl0ZW06IFQpID0+IGl0ZW0uaW52aXNpYmxlIHx8ICF0aGlzLmlzR3JhbnRlZChpdGVtKTtcclxuICByZWFkb25seSBzb3J0ID0gKGE6IFQsIGI6IFQpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBhcmVGdW5jKGEsIGIpO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBjb25zdCBjb25maWdTdGF0ZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KENvbmZpZ1N0YXRlU2VydmljZSk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGNvbmZpZ1N0YXRlXHJcbiAgICAgIC5jcmVhdGVPblVwZGF0ZVN0cmVhbShzdGF0ZSA9PiBzdGF0ZSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlZnJlc2goKSk7XHJcbiAgICB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFBlcm1pc3Npb25TZXJ2aWNlKTtcclxuICAgIHRoaXMub3RoZXJzR3JvdXAgPSBpbmplY3Rvci5nZXQoT1RIRVJTX0dST1VQKTtcclxuICAgIHRoaXMuY29tcGFyZUZ1bmMgPSBpbmplY3Rvci5nZXQoU09SVF9DT01QQVJFX0ZVTkMpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGlzR3JhbnRlZCh7IHJlcXVpcmVkUG9saWN5IH06IFQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnBlcm1pc3Npb25TZXJ2aWNlLmdldEdyYW50ZWRQb2xpY3kocmVxdWlyZWRQb2xpY3kpO1xyXG4gIH1cclxuXHJcbiAgaGFzQ2hpbGRyZW4oaWRlbnRpZmllcjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBub2RlID0gdGhpcy5maW5kKGl0ZW0gPT4gaXRlbVt0aGlzLmlkXSA9PT0gaWRlbnRpZmllcik7XHJcbiAgICByZXR1cm4gQm9vbGVhbihub2RlPy5jaGlsZHJlbj8ubGVuZ3RoKTtcclxuICB9XHJcblxyXG4gIGhhc0ludmlzaWJsZUNoaWxkKGlkZW50aWZpZXI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZmluZChpdGVtID0+IGl0ZW1bdGhpcy5pZF0gPT09IGlkZW50aWZpZXIpO1xyXG4gICAgcmV0dXJuIG5vZGU/LmNoaWxkcmVuPy5zb21lKGNoaWxkID0+IGNoaWxkLmludmlzaWJsZSkgfHwgZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBSb3V0ZXNTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3ROYXZUcmVlU2VydmljZTxBQlAuUm91dGU+IHtcclxuICBwcml2YXRlIGhhc1BhdGhPckNoaWxkKGl0ZW06IFRyZWVOb2RlPEFCUC5Sb3V0ZT4pOiBib29sZWFuIHtcclxuICAgIHJldHVybiBCb29sZWFuKGl0ZW0ucGF0aCkgfHwgdGhpcy5oYXNDaGlsZHJlbihpdGVtLm5hbWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdyb3VwZWRWaXNpYmxlKCk6IFJvdXRlR3JvdXA8QUJQLlJvdXRlPltdIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUdyb3VwZWRUcmVlKHRoaXMudmlzaWJsZS5maWx0ZXIoaXRlbSA9PiB0aGlzLmhhc1BhdGhPckNoaWxkKGl0ZW0pKSk7XHJcbiAgfVxyXG5cclxuICBnZXQgZ3JvdXBlZFZpc2libGUkKCk6IE9ic2VydmFibGU8Um91dGVHcm91cDxBQlAuUm91dGU+W10gfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiB0aGlzLnZpc2libGUkLnBpcGUoXHJcbiAgICAgIG1hcChpdGVtcyA9PiBpdGVtcy5maWx0ZXIoaXRlbSA9PiB0aGlzLmhhc1BhdGhPckNoaWxkKGl0ZW0pKSksXHJcbiAgICAgIG1hcCh2aXNpYmxlID0+IHRoaXMuY3JlYXRlR3JvdXBlZFRyZWUodmlzaWJsZSkpLFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -4,28 +4,28 @@ export const SORT_COMPARE_FUNC = new InjectionToken('SORT_COMPARE_FUNC');
|
|
|
4
4
|
export function compareFuncFactory() {
|
|
5
5
|
const localizationService = inject(LocalizationService);
|
|
6
6
|
const fn = (a, b) => {
|
|
7
|
-
const aName = localizationService.instant(a.name);
|
|
8
|
-
const bName = localizationService.instant(b.name);
|
|
9
7
|
const aNumber = a.order;
|
|
10
8
|
const bNumber = b.order;
|
|
11
|
-
if (!Number.isInteger(aNumber))
|
|
12
|
-
return 1;
|
|
13
|
-
if (!Number.isInteger(bNumber))
|
|
14
|
-
return -1;
|
|
15
9
|
if (aNumber > bNumber)
|
|
16
10
|
return 1;
|
|
17
11
|
if (aNumber < bNumber)
|
|
18
12
|
return -1;
|
|
19
|
-
if (aName > bName)
|
|
20
|
-
return 1;
|
|
21
|
-
if (aName < bName)
|
|
22
|
-
return -1;
|
|
23
13
|
if (a.id > b.id)
|
|
24
14
|
return 1;
|
|
25
15
|
if (a.id < b.id)
|
|
26
16
|
return -1;
|
|
17
|
+
if (!Number.isInteger(aNumber))
|
|
18
|
+
return 1;
|
|
19
|
+
if (!Number.isInteger(bNumber))
|
|
20
|
+
return -1;
|
|
21
|
+
const aName = localizationService.instant(a.name);
|
|
22
|
+
const bName = localizationService.instant(b.name);
|
|
23
|
+
if (aName > bName)
|
|
24
|
+
return 1;
|
|
25
|
+
if (aName < bName)
|
|
26
|
+
return -1;
|
|
27
27
|
return 0;
|
|
28
28
|
};
|
|
29
29
|
return fn;
|
|
30
30
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS1mdW5jLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Rva2Vucy9jb21wYXJlLWZ1bmMudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUNqRCxtQkFBbUIsQ0FDcEIsQ0FBQztBQUVGLE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN4RCxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQWUsRUFBRSxDQUFlLEVBQUUsRUFBRTtRQUM5QyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFFeEIsSUFBSSxPQUFPLEdBQUcsT0FBTztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLElBQUksT0FBTyxHQUFHLE9BQU87WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUUxQyxNQUFNLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEQsSUFBSSxLQUFLLEdBQUcsS0FBSztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxHQUFHLEtBQUs7WUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRTdCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQyxDQUFDO0lBRUYsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgdHlwZSB7IFNvcnRhYmxlSXRlbSB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcblxyXG5leHBvcnQgY29uc3QgU09SVF9DT01QQVJFX0ZVTkMgPSBuZXcgSW5qZWN0aW9uVG9rZW48KGE6IFNvcnRhYmxlSXRlbSwgYjogU29ydGFibGVJdGVtKSA9PiBudW1iZXI+KFxyXG4gICdTT1JUX0NPTVBBUkVfRlVOQycsXHJcbik7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZUZ1bmNGYWN0b3J5KCkge1xyXG4gIGNvbnN0IGxvY2FsaXphdGlvblNlcnZpY2UgPSBpbmplY3QoTG9jYWxpemF0aW9uU2VydmljZSk7XHJcbiAgY29uc3QgZm4gPSAoYTogU29ydGFibGVJdGVtLCBiOiBTb3J0YWJsZUl0ZW0pID0+IHtcclxuICAgIGNvbnN0IGFOdW1iZXIgPSBhLm9yZGVyO1xyXG4gICAgY29uc3QgYk51bWJlciA9IGIub3JkZXI7XHJcblxyXG4gICAgaWYgKGFOdW1iZXIgPiBiTnVtYmVyKSByZXR1cm4gMTtcclxuICAgIGlmIChhTnVtYmVyIDwgYk51bWJlcikgcmV0dXJuIC0xO1xyXG5cclxuICAgIGlmIChhLmlkID4gYi5pZCkgcmV0dXJuIDE7XHJcbiAgICBpZiAoYS5pZCA8IGIuaWQpIHJldHVybiAtMTtcclxuXHJcbiAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoYU51bWJlcikpIHJldHVybiAxO1xyXG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKGJOdW1iZXIpKSByZXR1cm4gLTE7XHJcblxyXG4gICAgY29uc3QgYU5hbWUgPSBsb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYS5uYW1lKTtcclxuICAgIGNvbnN0IGJOYW1lID0gbG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGIubmFtZSk7XHJcblxyXG4gICAgaWYgKGFOYW1lID4gYk5hbWUpIHJldHVybiAxO1xyXG4gICAgaWYgKGFOYW1lIDwgYk5hbWUpIHJldHVybiAtMTtcclxuXHJcbiAgICByZXR1cm4gMDtcclxuICB9O1xyXG5cclxuICByZXR1cm4gZm47XHJcbn1cclxuIl19
|
|
@@ -23,7 +23,7 @@ export function getInitialData(injector) {
|
|
|
23
23
|
const checkAuthenticationState = injector.get(CHECK_AUTHENTICATION_STATE_FN_KEY, noop, {
|
|
24
24
|
optional: true,
|
|
25
25
|
});
|
|
26
|
-
if (authService) {
|
|
26
|
+
if (!options.skipInitAuthService && authService) {
|
|
27
27
|
await authService.init();
|
|
28
28
|
}
|
|
29
29
|
if (options.skipGetAppConfiguration)
|
|
@@ -57,4 +57,4 @@ export function localeInitializer(injector) {
|
|
|
57
57
|
};
|
|
58
58
|
return fn;
|
|
59
59
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9pbml0aWFsLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxNQUFNLFVBQVUsY0FBYyxDQUFDLFFBQWtCO0lBQy9DLE1BQU0sRUFBRSxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQ3BCLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzVELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FB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dCI6WyJpbXBvcnQgeyByZWdpc3RlckxvY2FsZURhdGEgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3RGbGFncywgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4uL21vZGVscy9jb21tb24nO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL21vZGVscy9lbnZpcm9ubWVudCc7XHJcbmltcG9ydCB7IEN1cnJlbnRUZW5hbnREdG8gfSBmcm9tICcuLi9wcm94eS92b2xvL2FicC9hc3AtbmV0LWNvcmUvbXZjL211bHRpLXRlbmFuY3kvbW9kZWxzJztcclxuaW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29uZmlnLXN0YXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblN0YXRlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Nlc3Npb24tc3RhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IENPUkVfT1BUSU9OUyB9IGZyb20gJy4uL3Rva2Vucy9vcHRpb25zLnRva2VuJztcclxuaW1wb3J0IHsgQVBQX0lOSVRfRVJST1JfSEFORExFUlMgfSBmcm9tICcuLi90b2tlbnMvYXBwLWNvbmZpZy50b2tlbic7XHJcbmltcG9ydCB7IGdldFJlbW90ZUVudiB9IGZyb20gJy4vZW52aXJvbm1lbnQtdXRpbHMnO1xyXG5pbXBvcnQgeyBwYXJzZVRlbmFudEZyb21VcmwgfSBmcm9tICcuL211bHRpLXRlbmFuY3ktdXRpbHMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2Fic3RyYWN0cyc7XHJcbmltcG9ydCB7IENIRUNLX0FVVEhFTlRJQ0FUSU9OX1NUQVRFX0ZOX0tFWSB9IGZyb20gJy4uL3Rva2Vucy9jaGVjay1hdXRoZW50aWNhdGlvbi1zdGF0ZSc7XHJcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuL2NvbW1vbi11dGlscyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5pdGlhbERhdGEoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgY29uc3QgZm4gPSBhc3luYyAoKSA9PiB7XHJcbiAgICBjb25zdCBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRTZXJ2aWNlKTtcclxuICAgIGNvbnN0IGNvbmZpZ1N0YXRlID0gaW5qZWN0b3IuZ2V0KENvbmZpZ1N0YXRlU2VydmljZSk7XHJcbiAgICBjb25zdCBvcHRpb25zID0gaW5qZWN0b3IuZ2V0KENPUkVfT1BUSU9OUykgYXMgQUJQLlJvb3Q7XHJcblxyXG4gICAgZW52aXJvbm1lbnRTZXJ2aWNlLnNldFN0YXRlKG9wdGlvbnMuZW52aXJvbm1lbnQgYXMgRW52aXJvbm1lbnQpO1xyXG4gICAgYXdhaXQgZ2V0UmVtb3RlRW52KGluamVjdG9yLCBvcHRpb25zLmVudmlyb25tZW50KTtcclxuICAgIGF3YWl0IHBhcnNlVGVuYW50RnJvbVVybChpbmplY3Rvcik7XHJcbiAgICBjb25zdCBhdXRoU2VydmljZSA9IGluamVjdG9yLmdldChBdXRoU2VydmljZSwgdW5kZWZpbmVkLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xyXG4gICAgY29uc3QgY2hlY2tBdXRoZW50aWNhdGlvblN0YXRlID0gaW5qZWN0b3IuZ2V0KENIRUNLX0FVVEhFTlRJQ0FUSU9OX1NUQVRFX0ZOX0tFWSwgbm9vcCwge1xyXG4gICAgICBvcHRpb25hbDogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgaWYgKCFvcHRpb25zLnNraXBJbml0QXV0aFNlcnZpY2UgJiYgYXV0aFNlcnZpY2UpIHtcclxuICAgICAgYXdhaXQgYXV0aFNlcnZpY2UuaW5pdCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKG9wdGlvbnMuc2tpcEdldEFwcENvbmZpZ3VyYXRpb24pIHJldHVybjtcclxuXHJcbiAgICBjb25zdCByZXN1bHQkID0gY29uZmlnU3RhdGUucmVmcmVzaEFwcFN0YXRlKCkucGlwZShcclxuICAgICAgdGFwKCgpID0+IGNoZWNrQXV0aGVudGljYXRpb25TdGF0ZShpbmplY3RvcikpLFxyXG4gICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRUZW5hbnQgPSBjb25maWdTdGF0ZS5nZXRPbmUoJ2N1cnJlbnRUZW5hbnQnKSBhcyBDdXJyZW50VGVuYW50RHRvO1xyXG4gICAgICAgIGluamVjdG9yLmdldChTZXNzaW9uU3RhdGVTZXJ2aWNlKS5zZXRUZW5hbnQoY3VycmVudFRlbmFudCk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcclxuICAgICAgICBjb25zdCBhcHBJbml0RXJyb3JIYW5kbGVycyA9IGluamVjdG9yLmdldChBUFBfSU5JVF9FUlJPUl9IQU5ETEVSUywgbnVsbCk7XHJcbiAgICAgICAgaWYgKGFwcEluaXRFcnJvckhhbmRsZXJzICYmIGFwcEluaXRFcnJvckhhbmRsZXJzLmxlbmd0aCkge1xyXG4gICAgICAgICAgYXBwSW5pdEVycm9ySGFuZGxlcnMuZm9yRWFjaChmdW5jID0+IGZ1bmMoZXJyb3IpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gICAgYXdhaXQgbGFzdFZhbHVlRnJvbShyZXN1bHQkKTtcclxuICB9O1xyXG5cclxuICByZXR1cm4gZm47XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2NhbGVJbml0aWFsaXplcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICBjb25zdCBmbiA9ICgpID0+IHtcclxuICAgIGNvbnN0IHNlc3Npb25TdGF0ZSA9IGluamVjdG9yLmdldChTZXNzaW9uU3RhdGVTZXJ2aWNlKTtcclxuICAgIGNvbnN0IHsgcmVnaXN0ZXJMb2NhbGVGbiB9OiBBQlAuUm9vdCA9IGluamVjdG9yLmdldChDT1JFX09QVElPTlMpO1xyXG5cclxuICAgIGNvbnN0IGxhbmcgPSBzZXNzaW9uU3RhdGUuZ2V0TGFuZ3VhZ2UoKSB8fCAnZW4nO1xyXG5cclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHJlZ2lzdGVyTG9jYWxlRm4obGFuZykudGhlbihtb2R1bGUgPT4ge1xyXG4gICAgICAgIGlmIChtb2R1bGU/LmRlZmF1bHQpIHJlZ2lzdGVyTG9jYWxlRGF0YShtb2R1bGUuZGVmYXVsdCk7XHJcblxyXG4gICAgICAgIHJldHVybiByZXNvbHZlKCdyZXNvbHZlZCcpO1xyXG4gICAgICB9LCByZWplY3QpO1xyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGZuO1xyXG59XHJcbiJdfQ==
|
|
@@ -6,6 +6,7 @@ import { provideRoutes } from '@angular/router';
|
|
|
6
6
|
import { RouterTestingModule } from '@angular/router/testing';
|
|
7
7
|
import { MockPermissionService } from './services/mock-permission.service';
|
|
8
8
|
import { MockRestService } from './services/mock-rest.service';
|
|
9
|
+
import { LocalizationPipe } from './pipes';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
/**
|
|
11
12
|
* CoreTestingModule is the module that will be used in tests
|
|
@@ -62,14 +63,14 @@ export class CoreTestingModule {
|
|
|
62
63
|
};
|
|
63
64
|
}
|
|
64
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CoreTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
65
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: CoreTestingModule, imports: [NoopAnimationsModule, RouterTestingModule, BaseCoreModule], exports: [RouterTestingModule, BaseCoreModule] }); }
|
|
66
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: CoreTestingModule, imports: [NoopAnimationsModule, RouterTestingModule, BaseCoreModule, LocalizationPipe], exports: [RouterTestingModule, BaseCoreModule] }); }
|
|
66
67
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CoreTestingModule, imports: [NoopAnimationsModule, RouterTestingModule, BaseCoreModule, RouterTestingModule, BaseCoreModule] }); }
|
|
67
68
|
}
|
|
68
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CoreTestingModule, decorators: [{
|
|
69
70
|
type: NgModule,
|
|
70
71
|
args: [{
|
|
71
72
|
exports: [RouterTestingModule, BaseCoreModule],
|
|
72
|
-
imports: [NoopAnimationsModule, RouterTestingModule, BaseCoreModule],
|
|
73
|
+
imports: [NoopAnimationsModule, RouterTestingModule, BaseCoreModule, LocalizationPipe],
|
|
73
74
|
}]
|
|
74
75
|
}] });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10ZXN0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvdGVzdGluZy9zcmMvbGliL2NvcmUtdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLHdCQUF3QixFQUN4QixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxtQ0FBbUMsRUFDbkMsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixpQkFBaUIsR0FDbEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUUzQzs7O0dBR0c7QUFLSCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLE1BQU0sQ0FBQyxVQUFVLENBQ2YsRUFBRSxRQUFRLEdBQUcsR0FBRyxFQUFFLHFCQUFxQixHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLEdBQUcsT0FBTyxLQUFLLEVBQWM7UUFFdkYsT0FBTztZQUNMLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO2dCQUM5QztvQkFDRSxPQUFPLEVBQUUsY0FBYztvQkFDdkIsUUFBUSxFQUFFO3dCQUNSLHVCQUF1QixFQUFFLElBQUk7d0JBQzdCLEdBQUcsT0FBTztxQkFDWDtpQkFDRjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsWUFBWTtvQkFDckIsVUFBVSxFQUFFLGtCQUFrQjtvQkFDOUIsSUFBSSxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUN2QjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsd0JBQXdCO29CQUNqQyxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQztnQkFDRDtvQkFDRSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixRQUFRLEVBQUUscUJBQXFCO2lCQUNoQztnQkFDRDtvQkFDRSxPQUFPLEVBQUUsV0FBVztvQkFDcEIsUUFBUSxFQUFFLGVBQWU7aUJBQzFCO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxZQUFZO29CQUNyQixRQUFRLEVBQUUsQ0FBQztpQkFDWjtnQkFDRDtvQkFDRSxPQUFPLEVBQUUsbUNBQW1DO29CQUM1QyxRQUFRLEVBQUUsS0FBSztpQkFDaEI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLFlBQVk7b0JBQ3JCLFFBQVEsRUFBRSxvQkFBb0I7aUJBQy9CO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFVBQVUsRUFBRSxrQkFBa0I7aUJBQy9CO2dCQUNELGFBQWEsQ0FBQyxNQUFNLENBQUM7YUFDdEI7U0FDRixDQUFDO0lBQ0osQ0FBQzs4R0FuRFUsaUJBQWlCOytHQUFqQixpQkFBaUIsWUFGbEIsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixhQUQzRSxtQkFBbUIsRUFBRSxjQUFjOytHQUdsQyxpQkFBaUIsWUFGbEIsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUR6RCxtQkFBbUIsRUFBRSxjQUFjOzsyRkFHbEMsaUJBQWlCO2tCQUo3QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLGNBQWMsQ0FBQztvQkFDOUMsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDO2lCQUN2RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQUJQLFxyXG4gIEJhc2VDb3JlTW9kdWxlLFxyXG4gIGNvcmVPcHRpb25zRmFjdG9yeSxcclxuICBDT1JFX09QVElPTlMsXHJcbiAgTElTVF9RVUVSWV9ERUJPVU5DRV9USU1FLFxyXG4gIExPQURFUl9ERUxBWSxcclxuICBQZXJtaXNzaW9uU2VydmljZSxcclxuICBSZXN0U2VydmljZSxcclxuICBJTkNVREVfTE9DQUxJWkFUSU9OX1JFU09VUkNFU19UT0tFTixcclxuICBPVEhFUlNfR1JPVVAsXHJcbiAgY29tcGFyZUZ1bmNGYWN0b3J5LFxyXG4gIFNPUlRfQ09NUEFSRV9GVU5DLFxyXG59IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IEFQUF9CQVNFX0hSRUYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOb29wQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IHByb3ZpZGVSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBSb3V0ZXJUZXN0aW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyL3Rlc3RpbmcnO1xyXG5pbXBvcnQgeyBNb2NrUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21vY2stcGVybWlzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9ja1Jlc3RTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9tb2NrLXJlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblBpcGUgfSBmcm9tICcuL3BpcGVzJztcclxuXHJcbi8qKlxyXG4gKiBDb3JlVGVzdGluZ01vZHVsZSBpcyB0aGUgbW9kdWxlIHRoYXQgd2lsbCBiZSB1c2VkIGluIHRlc3RzXHJcbiAqIGFuZCBpdCBwcm92aWRlcyBtb2NrIGFsdGVybmF0aXZlc1xyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBleHBvcnRzOiBbUm91dGVyVGVzdGluZ01vZHVsZSwgQmFzZUNvcmVNb2R1bGVdLFxyXG4gIGltcG9ydHM6IFtOb29wQW5pbWF0aW9uc01vZHVsZSwgUm91dGVyVGVzdGluZ01vZHVsZSwgQmFzZUNvcmVNb2R1bGUsIExvY2FsaXphdGlvblBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVRlc3RpbmdNb2R1bGUge1xyXG4gIHN0YXRpYyB3aXRoQ29uZmlnKFxyXG4gICAgeyBiYXNlSHJlZiA9ICcvJywgbGlzdFF1ZXJ5RGVib3VuY2VUaW1lID0gMCwgcm91dGVzID0gW10sIC4uLm9wdGlvbnMgfSA9IHt9IGFzIEFCUC5UZXN0LFxyXG4gICk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Q29yZVRlc3RpbmdNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBDb3JlVGVzdGluZ01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBBUFBfQkFTRV9IUkVGLCB1c2VWYWx1ZTogYmFzZUhyZWYgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiAnQ09SRV9PUFRJT05TJyxcclxuICAgICAgICAgIHVzZVZhbHVlOiB7XHJcbiAgICAgICAgICAgIHNraXBHZXRBcHBDb25maWd1cmF0aW9uOiB0cnVlLFxyXG4gICAgICAgICAgICAuLi5vcHRpb25zLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IENPUkVfT1BUSU9OUyxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGNvcmVPcHRpb25zRmFjdG9yeSxcclxuICAgICAgICAgIGRlcHM6IFsnQ09SRV9PUFRJT05TJ10sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBMSVNUX1FVRVJZX0RFQk9VTkNFX1RJTUUsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogbGlzdFF1ZXJ5RGVib3VuY2VUaW1lLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogUGVybWlzc2lvblNlcnZpY2UsXHJcbiAgICAgICAgICB1c2VDbGFzczogTW9ja1Blcm1pc3Npb25TZXJ2aWNlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogUmVzdFNlcnZpY2UsXHJcbiAgICAgICAgICB1c2VDbGFzczogTW9ja1Jlc3RTZXJ2aWNlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogTE9BREVSX0RFTEFZLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IDAsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBJTkNVREVfTE9DQUxJWkFUSU9OX1JFU09VUkNFU19UT0tFTixcclxuICAgICAgICAgIHVzZVZhbHVlOiBmYWxzZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IE9USEVSU19HUk9VUCxcclxuICAgICAgICAgIHVzZVZhbHVlOiAnQWJwVWk6Ok90aGVyc0dyb3VwJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IFNPUlRfQ09NUEFSRV9GVU5DLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogY29tcGFyZUZ1bmNGYWN0b3J5LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgcHJvdmlkZVJvdXRlcyhyb3V0ZXMpLFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './localization.pipe';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3Rlc3Rpbmcvc3JjL2xpYi9waXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sb2NhbGl6YXRpb24ucGlwZSc7XHJcbiJdfQ==
|