@snabcentr/client-core 2.63.0 → 2.64.0
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/catalog/tokens/sc-count-first-discounted-products.mjs +5 -3
- package/esm2022/guards/catalog-seo.guard.mjs +71 -0
- package/esm2022/guards/index.mjs +2 -1
- package/esm2022/guards/sc-id-or-slug.guard.mjs +3 -3
- package/esm2022/httpInterceptors/tokens/sc-guest-endpoints.mjs +5 -3
- package/esm2022/httpInterceptors/tokens/sc-guest-parameter-name.mjs +5 -3
- package/esm2022/pagination/services/sc-pagination.service.mjs +3 -3
- package/esm2022/pipes/sc-id-or-slug.pipe.mjs +2 -2
- package/esm2022/providers/index.mjs +2 -4
- package/esm2022/providers/sc-category.providers.mjs +40 -0
- package/esm2022/providers/ssr.providers.mjs +7 -4
- package/esm2022/services/sc-seo.service.mjs +28 -2
- package/esm2022/tokens/index.mjs +7 -3
- package/esm2022/tokens/notification-options.mjs +5 -3
- package/esm2022/tokens/sc-api-keys.mjs +1 -1
- package/esm2022/tokens/sc-cache-lifetime.mjs +1 -1
- package/esm2022/tokens/sc-company-info.mjs +6 -0
- package/esm2022/tokens/sc-configurator-components.mjs +1 -1
- package/esm2022/tokens/sc-configurator-settings.mjs +1 -1
- package/esm2022/tokens/sc-date-format.mjs +3 -3
- package/esm2022/tokens/sc-default-page-meta.mjs +7 -3
- package/esm2022/tokens/sc-error-handler.mjs +6 -0
- package/esm2022/tokens/sc-feedback-api.mjs +3 -3
- package/esm2022/tokens/sc-id-or-slug-in-route.mjs +8 -0
- package/esm2022/tokens/sc-linear-values-token.mjs +5 -3
- package/esm2022/tokens/sc-product-pagination-options.mjs +22 -0
- package/esm2022/tokens/sc-release.mjs +1 -1
- package/esm2022/tokens/sc-update-interval.mjs +1 -1
- package/esm2022/tokens/sc-urls.mjs +1 -1
- package/esm2022/user/tokens/sc-user-providers.mjs +7 -6
- package/esm2022/warehouse/services/sc-warehouse.service.mjs +2 -2
- package/fesm2022/snabcentr-client-core.mjs +543 -394
- package/fesm2022/snabcentr-client-core.mjs.map +1 -1
- package/guards/catalog-seo.guard.d.ts +14 -0
- package/guards/index.d.ts +1 -0
- package/httpInterceptors/tokens/sc-guest-endpoints.d.ts +2 -1
- package/httpInterceptors/tokens/sc-guest-parameter-name.d.ts +2 -1
- package/package.json +1 -1
- package/pagination/services/sc-pagination.service.d.ts +4 -2
- package/providers/index.d.ts +1 -3
- package/providers/sc-category.providers.d.ts +11 -0
- package/services/sc-seo.service.d.ts +14 -0
- package/tokens/index.d.ts +6 -2
- package/tokens/notification-options.d.ts +2 -1
- package/tokens/sc-api-keys.d.ts +1 -1
- package/tokens/sc-cache-lifetime.d.ts +1 -1
- package/tokens/sc-configurator-components.d.ts +2 -1
- package/tokens/sc-configurator-settings.d.ts +1 -1
- package/tokens/sc-default-page-meta.d.ts +7 -2
- package/tokens/sc-error-handler.d.ts +11 -0
- package/{providers → tokens}/sc-id-or-slug-in-route.d.ts +1 -1
- package/tokens/sc-linear-values-token.d.ts +2 -1
- package/tokens/sc-release.d.ts +1 -1
- package/tokens/sc-update-interval.d.ts +1 -1
- package/tokens/sc-urls.d.ts +1 -1
- package/esm2022/providers/sc-company-info.mjs +0 -6
- package/esm2022/providers/sc-id-or-slug-in-route.mjs +0 -6
- package/esm2022/providers/sc-product-pagination-options.mjs +0 -19
- /package/{providers → tokens}/sc-company-info.d.ts +0 -0
- /package/{providers → tokens}/sc-product-pagination-options.d.ts +0 -0
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
2
|
/**
|
|
3
3
|
* Токен, указывающий число первых записей товаров со скидкой.
|
|
4
4
|
*/
|
|
5
|
-
export const SC_COUNT_FIRST_DISCOUNTED_PRODUCTS =
|
|
6
|
-
|
|
5
|
+
export const SC_COUNT_FIRST_DISCOUNTED_PRODUCTS = new InjectionToken('SC_COUNT_FIRST_DISCOUNTED_PRODUCTS', {
|
|
6
|
+
factory: () => 10,
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY291bnQtZmlyc3QtZGlzY291bnRlZC1wcm9kdWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY2F0YWxvZy90b2tlbnMvc2MtY291bnQtZmlyc3QtZGlzY291bnRlZC1wcm9kdWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsSUFBSSxjQUFjLENBQVMsb0NBQW9DLEVBQUU7SUFDL0csT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Q0FDcEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiDQotC+0LrQtdC9LCDRg9C60LDQt9GL0LLQsNGO0YnQuNC5INGH0LjRgdC70L4g0L/QtdGA0LLRi9GFINC30LDQv9C40YHQtdC5INGC0L7QstCw0YDQvtCyINGB0L4g0YHQutC40LTQutC+0LkuXG4gKi9cbmV4cG9ydCBjb25zdCBTQ19DT1VOVF9GSVJTVF9ESVNDT1VOVEVEX1BST0RVQ1RTID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oJ1NDX0NPVU5UX0ZJUlNUX0RJU0NPVU5URURfUFJPRFVDVFMnLCB7XG4gICAgZmFjdG9yeTogKCkgPT4gMTAsXG59KTtcbiJdfQ==
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { TUI_TRUE_HANDLER, tuiIsPresent } from '@taiga-ui/cdk';
|
|
4
|
+
import { of } from 'rxjs';
|
|
5
|
+
import { catchError, filter, map, tap } from 'rxjs/operators';
|
|
6
|
+
import { ScCatalogService } from '../catalog/services/sc-catalog.service';
|
|
7
|
+
import { ScMediaImageTransformerPipe } from '../pipes/sc-media-image-transformer.pipe';
|
|
8
|
+
import { ScSeoService } from '../services/sc-seo.service';
|
|
9
|
+
import { SC_COMPANY_INFO } from '../tokens/sc-company-info';
|
|
10
|
+
import { SC_CATALOG_PAGE_META } from '../tokens/sc-default-page-meta';
|
|
11
|
+
import { SC_ID_OR_SLUG_IN_ROUTE } from '../tokens/sc-id-or-slug-in-route';
|
|
12
|
+
import { SC_URLS } from '../tokens/sc-urls';
|
|
13
|
+
/**
|
|
14
|
+
* Устанавливает SEO-теги для страниц каталога.
|
|
15
|
+
*
|
|
16
|
+
* @param seoService Сервис для работы с SEO.
|
|
17
|
+
* @param name Название страницы.
|
|
18
|
+
* @param seo SEO-теги.
|
|
19
|
+
* @param image Ссылка на основное изображение.
|
|
20
|
+
*/
|
|
21
|
+
const setSeoTags = (seoService, name, seo, image) => {
|
|
22
|
+
const companyInfo = inject(SC_COMPANY_INFO);
|
|
23
|
+
const catalogMeta = inject(SC_CATALOG_PAGE_META);
|
|
24
|
+
const seoResource = seoService.getGenerateSeoResource(seo, `${name} - Купить в ${companyInfo.name}`, `${name} - Купить по выгодным ценам в ${companyInfo.name}`, `${name}, ${catalogMeta.keywords}`);
|
|
25
|
+
seoService.setMetaTagsFromResource(seoResource, image);
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Создает SEO-guard для указанного сервиса и метода получения данных.
|
|
29
|
+
*
|
|
30
|
+
* @param getDataFunction Функция для получения данных из сервиса.
|
|
31
|
+
* @param setCanonical Признак необходимости установить на странице каноническую ссылку.
|
|
32
|
+
* @returns Функция-guard.
|
|
33
|
+
*/
|
|
34
|
+
const createSeoGuard = (getDataFunction, setCanonical = false) => {
|
|
35
|
+
// eslint-disable-next-line sonarjs/function-return-type
|
|
36
|
+
return ({ paramMap }, state) => {
|
|
37
|
+
const seoService = inject(ScSeoService);
|
|
38
|
+
const mediaImageTransformerPipe = inject(ScMediaImageTransformerPipe);
|
|
39
|
+
const recId = paramMap.get('productIdOrSlug') ?? paramMap.get('categoryIdOrSlug') ?? paramMap.get('categorySlug');
|
|
40
|
+
if (!recId) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
return getDataFunction(recId).pipe(filter(tuiIsPresent), tap(({ id, name, seo, image, slug }) => {
|
|
44
|
+
setSeoTags(seoService, name, seo, mediaImageTransformerPipe.transform(image, true));
|
|
45
|
+
const idOrSlugInRoute = inject(SC_ID_OR_SLUG_IN_ROUTE);
|
|
46
|
+
// В том случае, если используется slug для формирования ссылок, то необходимо сформировать кононическую ссылку
|
|
47
|
+
// на страницу в которой используется slug (а не id).
|
|
48
|
+
if (setCanonical && idOrSlugInRoute === 'slug' && id && slug) {
|
|
49
|
+
const canonicalPath = state.url
|
|
50
|
+
.split('/')
|
|
51
|
+
.map((segment) => (segment === id.toString() ? slug : segment))
|
|
52
|
+
.join('/');
|
|
53
|
+
const { siteUrl } = inject(SC_URLS);
|
|
54
|
+
seoService.setCanonicalLink(`${siteUrl}${canonicalPath}`);
|
|
55
|
+
}
|
|
56
|
+
}), map(TUI_TRUE_HANDLER), catchError(() => of(true)), takeUntilDestroyed());
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Устанавливает SEO-теги для страницы продукта.
|
|
61
|
+
*/
|
|
62
|
+
export const productSeoGuard = createSeoGuard((recId) => inject(ScCatalogService).getProductDataCached$(recId), true);
|
|
63
|
+
/**
|
|
64
|
+
* Устанавливает SEO-теги для страницы виртуальной категории.
|
|
65
|
+
*/
|
|
66
|
+
export const virtualCategorySeoGuard = createSeoGuard((recId) => inject(ScCatalogService).getVirtualCategoryCached$(recId));
|
|
67
|
+
/**
|
|
68
|
+
* Устанавливает SEO-теги для страницы категории.
|
|
69
|
+
*/
|
|
70
|
+
export const categorySeoGuard = createSeoGuard((recId) => inject(ScCatalogService).getCategoryCached$(recId), true);
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy1zZW8uZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2d1YXJkcy9jYXRhbG9nLXNlby5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUM7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxHQUFHLENBQUMsVUFBd0IsRUFBRSxJQUFZLEVBQUUsR0FBWSxFQUFFLEtBQWMsRUFBUSxFQUFFO0lBQzlGLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNqRCxN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QUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBRS9JOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsY0FBYyxDQUFhLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUVUlfVFJVRV9IQU5ETEVSLCB0dWlJc1ByZXNlbnQgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTY0NhdGVnb3J5IH0gZnJvbSAnLi4vY2F0YWxvZy9kdG8vc2MtY2F0ZWdvcnknO1xuaW1wb3J0IHsgU2NJU2VvIH0gZnJvbSAnLi4vY2F0YWxvZy9kdG8vc2MtaS1zZW8nO1xuaW1wb3J0IHsgU2NWaXJ0dWFsQ2F0ZWdvcnkgfSBmcm9tICcuLi9jYXRhbG9nL2R0by9zYy12aXJ0dWFsLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjQ2F0YWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9jYXRhbG9nL3NlcnZpY2VzL3NjLWNhdGFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBTY01lZGlhSW1hZ2VUcmFuc2Zvcm1lclBpcGUgfSBmcm9tICcuLi9waXBlcy9zYy1tZWRpYS1pbWFnZS10cmFuc2Zvcm1lci5waXBlJztcbmltcG9ydCB7IFNjU2VvU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NjLXNlby5zZXJ2aWNlJztcbmltcG9ydCB7IFNDX0NPTVBBTllfSU5GTyB9IGZyb20gJy4uL3Rva2Vucy9zYy1jb21wYW55LWluZm8nO1xuaW1wb3J0IHsgU0NfQ0FUQUxPR19QQUdFX01FVEEgfSBmcm9tICcuLi90b2tlbnMvc2MtZGVmYXVsdC1wYWdlLW1ldGEnO1xuaW1wb3J0IHsgU0NfSURfT1JfU0xVR19JTl9ST1VURSB9IGZyb20gJy4uL3Rva2Vucy9zYy1pZC1vci1zbHVnLWluLXJvdXRlJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi90b2tlbnMvc2MtdXJscyc7XG5cbi8qKlxuICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgU0VPLdGC0LXQs9C4INC00LvRjyDRgdGC0YDQsNC90LjRhiDQutCw0YLQsNC70L7Qs9CwLlxuICpcbiAqIEBwYXJhbSBzZW9TZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBIFNFTy5cbiAqIEBwYXJhbSBuYW1lINCd0LDQt9Cy0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAqIEBwYXJhbSBzZW8gU0VPLdGC0LXQs9C4LlxuICogQHBhcmFtIGltYWdlINCh0YHRi9C70LrQsCDQvdCwINC+0YHQvdC+0LLQvdC+0LUg0LjQt9C+0LHRgNCw0LbQtdC90LjQtS5cbiAqL1xuY29uc3Qgc2V0U2VvVGFncyA9IChzZW9TZXJ2aWNlOiBTY1Nlb1NlcnZpY2UsIG5hbWU6IHN0cmluZywgc2VvPzogU2NJU2VvLCBpbWFnZT86IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IGNvbXBhbnlJbmZvID0gaW5qZWN0KFNDX0NPTVBBTllfSU5GTyk7XG4gICAgY29uc3QgY2F0YWxvZ01ldGEgPSBpbmplY3QoU0NfQ0FUQUxPR19QQUdFX01FVEEpO1xuICAgIGNvbnN0IHNlb1Jlc291cmNlID0gc2VvU2VydmljZS5nZXRHZW5lcmF0ZVNlb1Jlc291cmNlKFxuICAgICAgICBzZW8sXG4gICAgICAgIGAke25hbWV9IC0g0JrRg9C/0LjRgtGMINCyICR7Y29tcGFueUluZm8ubmFtZX1gLFxuICAgICAgICBgJHtuYW1lfSAtINCa0YPQv9C40YLRjCDQv9C+INCy0YvQs9C+0LTQvdGL0Lwg0YbQtdC90LDQvCDQsiAke2NvbXBhbnlJbmZvLm5hbWV9YCxcbiAgICAgICAgYCR7bmFtZX0sICR7Y2F0YWxvZ01ldGEua2V5d29yZHN9YFxuICAgICk7XG5cbiAgICBzZW9TZXJ2aWNlLnNldE1ldGFUYWdzRnJvbVJlc291cmNlKHNlb1Jlc291cmNlLCBpbWFnZSk7XG59O1xuXG4vKipcbiAqINCh0L7Qt9C00LDQtdGCIFNFTy1ndWFyZCDQtNC70Y8g0YPQutCw0LfQsNC90L3QvtCz0L4g0YHQtdGA0LLQuNGB0LAg0Lgg0LzQtdGC0L7QtNCwINC/0L7Qu9GD0YfQtdC90LjRjyDQtNCw0L3QvdGL0YUuXG4gKlxuICogQHBhcmFtIGdldERhdGFGdW5jdGlvbiDQpNGD0L3QutGG0LjRjyDQtNC70Y8g0L/QvtC70YPRh9C10L3QuNGPINC00LDQvdC90YvRhSDQuNC3INGB0LXRgNCy0LjRgdCwLlxuICogQHBhcmFtIHNldENhbm9uaWNhbCDQn9GA0LjQt9C90LDQuiDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLQuCDRg9GB0YLQsNC90L7QstC40YLRjCDQvdCwINGB0YLRgNCw0L3QuNGG0LUg0LrQsNC90L7QvdC40YfQtdGB0LrRg9GOINGB0YHRi9C70LrRgy5cbiAqIEByZXR1cm5zINCk0YPQvdC60YbQuNGPLWd1YXJkLlxuICovXG5jb25zdCBjcmVhdGVTZW9HdWFyZCA9IDxUIGV4dGVuZHMgeyBpZD86IG51bWJlcjsgbmFtZTogc3RyaW5nOyBzZW8/OiBTY0lTZW87IGltYWdlPzogc3RyaW5nOyBzbHVnPzogc3RyaW5nIH0+KFxuICAgIGdldERhdGFGdW5jdGlvbjogKHJlY0lkOiBzdHJpbmcpID0+IE9ic2VydmFibGU8VCB8IG51bGw+LFxuICAgIHNldENhbm9uaWNhbDogYm9vbGVhbiA9IGZhbHNlXG4pID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc29uYXJqcy9mdW5jdGlvbi1yZXR1cm4tdHlwZVxuICAgIHJldHVybiAoeyBwYXJhbU1hcCB9OiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkgPT4ge1xuICAgICAgICBjb25zdCBzZW9TZXJ2aWNlID0gaW5qZWN0KFNjU2VvU2VydmljZSk7XG4gICAgICAgIGNvbnN0IG1lZGlhSW1hZ2VUcmFuc2Zvcm1lclBpcGU6IFNjTWVkaWFJbWFnZVRyYW5zZm9ybWVyUGlwZSA9IGluamVjdChTY01lZGlhSW1hZ2VUcmFuc2Zvcm1lclBpcGUpO1xuICAgICAgICBjb25zdCByZWNJZCA9IHBhcmFtTWFwLmdldCgncHJvZHVjdElkT3JTbHVnJykgPz8gcGFyYW1NYXAuZ2V0KCdjYXRlZ29yeUlkT3JTbHVnJykgPz8gcGFyYW1NYXAuZ2V0KCdjYXRlZ29yeVNsdWcnKTtcblxuICAgICAgICBpZiAoIXJlY0lkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZ2V0RGF0YUZ1bmN0aW9uKHJlY0lkKS5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgICAgICB0YXAoKHsgaWQsIG5hbWUsIHNlbywgaW1hZ2UsIHNsdWcgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFNlb1RhZ3Moc2VvU2VydmljZSwgbmFtZSwgc2VvLCBtZWRpYUltYWdlVHJhbnNmb3JtZXJQaXBlLnRyYW5zZm9ybShpbWFnZSwgdHJ1ZSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlkT3JTbHVnSW5Sb3V0ZSA9IGluamVjdChTQ19JRF9PUl9TTFVHX0lOX1JPVVRFKTtcblxuICAgICAgICAgICAgICAgIC8vINCSINGC0L7QvCDRgdC70YPRh9Cw0LUsINC10YHQu9C4INC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyBzbHVnINC00LvRjyDRhNC+0YDQvNC40YDQvtCy0LDQvdC40Y8g0YHRgdGL0LvQvtC6LCDRgtC+INC90LXQvtCx0YXQvtC00LjQvNC+INGB0YTQvtGA0LzQuNGA0L7QstCw0YLRjCDQutC+0L3QvtC90LjRh9C10YHQutGD0Y4g0YHRgdGL0LvQutGDXG4gICAgICAgICAgICAgICAgLy8g0L3QsCDRgdGC0YDQsNC90LjRhtGDINCyINC60L7RgtC+0YDQvtC5INC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyBzbHVnICjQsCDQvdC1IGlkKS5cbiAgICAgICAgICAgICAgICBpZiAoc2V0Q2Fub25pY2FsICYmIGlkT3JTbHVnSW5Sb3V0ZSA9PT0gJ3NsdWcnICYmIGlkICYmIHNsdWcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2Fub25pY2FsUGF0aCA9IHN0YXRlLnVybFxuICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKHNlZ21lbnQpID0+IChzZWdtZW50ID09PSBpZC50b1N0cmluZygpID8gc2x1ZyA6IHNlZ21lbnQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oJy8nKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBzaXRlVXJsIH0gPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAgICAgICAgICAgICAgICAgc2VvU2VydmljZS5zZXRDYW5vbmljYWxMaW5rKGAke3NpdGVVcmx9JHtjYW5vbmljYWxQYXRofWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKFRVSV9UUlVFX0hBTkRMRVIpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZih0cnVlKSksXG4gICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICAgICAgICApO1xuICAgIH07XG59O1xuXG4vKipcbiAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIFNFTy3RgtC10LPQuCDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiyDQv9GA0L7QtNGD0LrRgtCwLlxuICovXG5leHBvcnQgY29uc3QgcHJvZHVjdFNlb0d1YXJkID0gY3JlYXRlU2VvR3VhcmQoKHJlY0lkKSA9PiBpbmplY3QoU2NDYXRhbG9nU2VydmljZSkuZ2V0UHJvZHVjdERhdGFDYWNoZWQkKHJlY0lkKSwgdHJ1ZSk7XG5cbi8qKlxuICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgU0VPLdGC0LXQs9C4INC00LvRjyDRgdGC0YDQsNC90LjRhtGLINCy0LjRgNGC0YPQsNC70YzQvdC+0Lkg0LrQsNGC0LXQs9C+0YDQuNC4LlxuICovXG5leHBvcnQgY29uc3QgdmlydHVhbENhdGVnb3J5U2VvR3VhcmQgPSBjcmVhdGVTZW9HdWFyZDxTY1ZpcnR1YWxDYXRlZ29yeT4oKHJlY0lkKSA9PiBpbmplY3QoU2NDYXRhbG9nU2VydmljZSkuZ2V0VmlydHVhbENhdGVnb3J5Q2FjaGVkJChyZWNJZCkpO1xuXG4vKipcbiAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIFNFTy3RgtC10LPQuCDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiyDQutCw0YLQtdCz0L7RgNC40LguXG4gKi9cbmV4cG9ydCBjb25zdCBjYXRlZ29yeVNlb0d1YXJkID0gY3JlYXRlU2VvR3VhcmQ8U2NDYXRlZ29yeT4oKHJlY0lkKSA9PiBpbmplY3QoU2NDYXRhbG9nU2VydmljZSkuZ2V0Q2F0ZWdvcnlDYWNoZWQkKHJlY0lkKSwgdHJ1ZSk7XG4iXX0=
|
package/esm2022/guards/index.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './catalog-seo.guard';
|
|
1
2
|
export * from './sc-auth-as-client.guard';
|
|
2
3
|
export * from './sc-id-or-slug.guard';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2d1YXJkcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2F0YWxvZy1zZW8uZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1hdXRoLWFzLWNsaWVudC5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWlkLW9yLXNsdWcuZ3VhcmQnO1xuIl19
|
|
@@ -2,8 +2,8 @@ import { inject } from '@angular/core';
|
|
|
2
2
|
import { Router } from '@angular/router';
|
|
3
3
|
import { TUI_TRUE_HANDLER, tuiIsPresent } from '@taiga-ui/cdk';
|
|
4
4
|
import { catchError, filter, map, of } from 'rxjs';
|
|
5
|
-
import { ScCatalogService } from '../catalog';
|
|
6
|
-
import { SC_ID_OR_SLUG_IN_ROUTE } from '../
|
|
5
|
+
import { ScCatalogService } from '../catalog/services/sc-catalog.service';
|
|
6
|
+
import { SC_ID_OR_SLUG_IN_ROUTE } from '../tokens/sc-id-or-slug-in-route';
|
|
7
7
|
/**
|
|
8
8
|
* Страж выполняющий проверку маршрута товара и категории, и редиректа в зависимости от настроек окружения.
|
|
9
9
|
*
|
|
@@ -32,4 +32,4 @@ export const ScIdOrSlugGuard = (route) => {
|
|
|
32
32
|
}
|
|
33
33
|
return true;
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaWQtb3Itc2x1Zy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZ3VhcmRzL3NjLWlkLW9yLXNsdWcuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQXlDLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRTs7OztHQUlHO0FBQ0gsd0RBQXdEO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBa0IsQ0FBQyxLQUE2QixFQUEyQyxFQUFFO0lBQ3JILE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDM0IsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDMUQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sUUFBUSxHQUFrQixNQUFNLENBQWdCLHNCQUFzQixDQUFDLENBQUM7SUFDOUUsTUFBTSxNQUFNLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXRDLElBQUksZ0JBQWdCLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDN0UsT0FBTyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7YUFDMUIsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUM7YUFDcEMsSUFBSSxDQUNELE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDcEIsNERBQTREO1FBQzVELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3pFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQzNDLENBQUM7SUFDVixDQUFDO0lBRUQsSUFBSSxlQUFlLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzNFLE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDO2FBQzFCLGVBQWUsQ0FBQyxlQUFlLENBQUM7YUFDaEMsSUFBSSxDQUNELE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDcEIsNERBQTREO1FBQzVELEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNsRixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUMzQyxDQUFDO0lBQ1YsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGVGbiwgUm91dGVyLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRVSV9UUlVFX0hBTkRMRVIsIHR1aUlzUHJlc2VudCB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjQ2F0YWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9jYXRhbG9nL3NlcnZpY2VzL3NjLWNhdGFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBTQ19JRF9PUl9TTFVHX0lOX1JPVVRFIH0gZnJvbSAnLi4vdG9rZW5zL3NjLWlkLW9yLXNsdWctaW4tcm91dGUnO1xuXG4vKipcbiAqINCh0YLRgNCw0LYg0LLRi9C/0L7Qu9C90Y/RjtGJ0LjQuSDQv9GA0L7QstC10YDQutGDINC80LDRgNGI0YDRg9GC0LAg0YLQvtCy0LDRgNCwINC4INC60LDRgtC10LPQvtGA0LjQuCwg0Lgg0YDQtdC00LjRgNC10LrRgtCwINCyINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDQvdCw0YHRgtGA0L7QtdC6INC+0LrRgNGD0LbQtdC90LjRjy5cbiAqXG4gKiBAcGFyYW0gcm91dGUg0KHQtdGA0LLQuNGBINC/0YDQtdC00L7RgdGC0LDQstC70Y/RjtGJ0LjQuSDQtNC+0YHRgtGD0L8g0Log0LTQsNC90L3Ri9C8INC+INC80LDRgNGI0YDRg9GC0LUuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzb25hcmpzL2Z1bmN0aW9uLXJldHVybi10eXBlXG5leHBvcnQgY29uc3QgU2NJZE9yU2x1Z0d1YXJkOiBDYW5BY3RpdmF0ZUZuID0gKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuID0+IHtcbiAgICBjb25zdCB7IHBhcmFtTWFwIH0gPSByb3V0ZTtcbiAgICBjb25zdCBjYXRlZ29yeUlkT3JTbHVnID0gcGFyYW1NYXAuZ2V0KCdjYXRlZ29yeUlkT3JTbHVnJyk7XG4gICAgY29uc3QgcHJvZHVjdElkT3JTbHVnID0gcGFyYW1NYXAuZ2V0KCdwcm9kdWN0SWRPclNsdWcnKTtcbiAgICBjb25zdCBpZE9yU2x1ZzogJ2lkJyB8ICdzbHVnJyA9IGluamVjdDwnaWQnIHwgJ3NsdWcnPihTQ19JRF9PUl9TTFVHX0lOX1JPVVRFKTtcbiAgICBjb25zdCByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gICAgaWYgKGNhdGVnb3J5SWRPclNsdWcgJiYgL15cXGQrJC8udGVzdChjYXRlZ29yeUlkT3JTbHVnKSAhPT0gKGlkT3JTbHVnID09PSAnaWQnKSkge1xuICAgICAgICByZXR1cm4gaW5qZWN0KFNjQ2F0YWxvZ1NlcnZpY2UpXG4gICAgICAgICAgICAuZ2V0Q2F0ZWdvcnlDYWNoZWQkKGNhdGVnb3J5SWRPclNsdWcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICAgICAgICAgICAgICBtYXAoKGNhdGVnb3J5KSA9PiByb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy9jYXRhbG9nJywgY2F0ZWdvcnlbaWRPclNsdWddXSkpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoVFVJX1RSVUVfSEFORExFUigpKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHByb2R1Y3RJZE9yU2x1ZyAmJiAvXlxcZCskLy50ZXN0KHByb2R1Y3RJZE9yU2x1ZykgIT09IChpZE9yU2x1ZyA9PT0gJ2lkJykpIHtcbiAgICAgICAgcmV0dXJuIGluamVjdChTY0NhdGFsb2dTZXJ2aWNlKVxuICAgICAgICAgICAgLmdldFByb2R1Y3REYXRhJChwcm9kdWN0SWRPclNsdWcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICAgICAgICAgICAgICBtYXAoKHByb2R1Y3QpID0+IHJvdXRlci5jcmVhdGVVcmxUcmVlKFsnL2NhdGFsb2cnLCAncHJvZHVjdCcsIHByb2R1Y3RbaWRPclNsdWddXSkpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoVFVJX1RSVUVfSEFORExFUigpKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG59O1xuIl19
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
2
|
/**
|
|
3
3
|
* Токен списка URL, которые нужно кешировать для гостя.
|
|
4
4
|
*/
|
|
5
|
-
export const SC_GUEST_ENDPOINTS_TOKEN =
|
|
6
|
-
|
|
5
|
+
export const SC_GUEST_ENDPOINTS_TOKEN = new InjectionToken('SC_GUEST_ENDPOINTS_TOKEN', {
|
|
6
|
+
factory: () => [],
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZ3Vlc3QtZW5kcG9pbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9odHRwSW50ZXJjZXB0b3JzL3Rva2Vucy9zYy1ndWVzdC1lbmRwb2ludHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUFXLDBCQUEwQixFQUFFO0lBQzdGLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO0NBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICog0KLQvtC60LXQvSDRgdC/0LjRgdC60LAgVVJMLCDQutC+0YLQvtGA0YvQtSDQvdGD0LbQvdC+INC60LXRiNC40YDQvtCy0LDRgtGMINC00LvRjyDQs9C+0YHRgtGPLlxuICovXG5leHBvcnQgY29uc3QgU0NfR1VFU1RfRU5EUE9JTlRTX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZ1tdPignU0NfR1VFU1RfRU5EUE9JTlRTX1RPS0VOJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IFtdLFxufSk7XG4iXX0=
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
2
|
/**
|
|
3
3
|
* Токен имени параметра, при котором кешируются запросы у гостя.
|
|
4
4
|
*/
|
|
5
|
-
export const SC_GUEST_PARAMETER_NAME_TOKEN =
|
|
6
|
-
|
|
5
|
+
export const SC_GUEST_PARAMETER_NAME_TOKEN = new InjectionToken('SC_GUEST_PARAMETER_NAME_TOKEN', {
|
|
6
|
+
factory: () => '',
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZ3Vlc3QtcGFyYW1ldGVyLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2h0dHBJbnRlcmNlcHRvcnMvdG9rZW5zL3NjLWd1ZXN0LXBhcmFtZXRlci1uYW1lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLGNBQWMsQ0FBUywrQkFBK0IsRUFBRTtJQUNyRyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtDQUNwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqINCi0L7QutC10L0g0LjQvNC10L3QuCDQv9Cw0YDQsNC80LXRgtGA0LAsINC/0YDQuCDQutC+0YLQvtGA0L7QvCDQutC10YjQuNGA0YPRjtGC0YHRjyDQt9Cw0L/RgNC+0YHRiyDRgyDQs9C+0YHRgtGPLlxuICovXG5leHBvcnQgY29uc3QgU0NfR1VFU1RfUEFSQU1FVEVSX05BTUVfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignU0NfR1VFU1RfUEFSQU1FVEVSX05BTUVfVE9LRU4nLCB7XG4gICAgZmFjdG9yeTogKCkgPT4gJycsXG59KTtcbiJdfQ==
|
|
@@ -2,8 +2,8 @@ import { inject, Injectable } from '@angular/core';
|
|
|
2
2
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
3
|
import { tuiIsPresent } from '@taiga-ui/cdk';
|
|
4
4
|
import { BehaviorSubject, concatMap, debounceTime, filter, map, scan, share, startWith, switchMap, takeWhile } from 'rxjs';
|
|
5
|
-
import { ScCatalogService } from '../../catalog';
|
|
6
|
-
import { SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS } from '../../
|
|
5
|
+
import { ScCatalogService } from '../../catalog/services/sc-catalog.service';
|
|
6
|
+
import { SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS } from '../../tokens/sc-product-pagination-options';
|
|
7
7
|
import { SC_USER_INFO } from '../../user/tokens/sc-user-providers';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
/**
|
|
@@ -154,4 +154,4 @@ export class ScPaginationService {
|
|
|
154
154
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ScPaginationService, decorators: [{
|
|
155
155
|
type: Injectable
|
|
156
156
|
}], ctorParameters: () => [] });
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9wYWdpbmF0aW9uL3NlcnZpY2VzL3NjLXBhZ2luYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNySSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBR25FOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQWlGNUI7O09BRUc7SUFDSDtRQW5GQTs7V0FFRztRQUNjLFVBQUssR0FBeUMsSUFBSSxlQUFlLENBQXNCLHFDQUFxQyxDQUFDLENBQUM7UUFFL0k7O1dBRUc7UUFDYyxZQUFPLEdBQW1DLElBQUksZUFBZSxDQUFnQixTQUFTLENBQUMsQ0FBQztRQUV6Rzs7V0FFRztRQUNhLHVCQUFrQixHQUF1QixNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUUvRjs7V0FFRztRQUNJLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgdHVpSXNQcmVzZW50IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbmNhdE1hcCwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgc2Nhbiwgc2hhcmUsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlV2hpbGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NDYXRhbG9nU2VydmljZSwgU2NQcm9kdWN0IH0gZnJvbSAnLi4vLi4vY2F0YWxvZyc7XG5pbXBvcnQgeyBTQ19ORVhUX1BBR0VfUEFHSU5BVElPTl9DTElDSywgU0NfUFJPRFVDVF9QQUdJTkFUSU9OX0RFRkFVTFRfT1BUSU9OUyB9IGZyb20gJy4uLy4uL3Byb3ZpZGVycy9zYy1wcm9kdWN0LXBhZ2luYXRpb24tb3B0aW9ucyc7XG5pbXBvcnQgeyBTQ19VU0VSX0lORk8gfSBmcm9tICcuLi8uLi91c2VyL3Rva2Vucy9zYy11c2VyLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBTY0lQYWdpbmF0ZSwgU2NJUGFnaW5hdGlvblBhcmFtcyB9IGZyb20gJy4uL2R0byc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC/0LDQs9C40L3QsNGG0LjQuC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNjUGFnaW5hdGlvblNlcnZpY2U8UCBleHRlbmRzIFNjSVBhZ2luYXRpb25QYXJhbXMsIE8gZXh0ZW5kcyBvYmplY3QgPSBPbWl0PFAsIGtleW9mIFNjSVBhZ2luYXRpb25QYXJhbXM+PiB7XG4gICAgLyoqXG4gICAgICoge0BsaW5rIEJlaGF2aW9yU3ViamVjdH0g0LjQt9C80LXQvdC10L3QuNGPINC00LDQvdC90YvRhSDQviDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2UkOiBCZWhhdmlvclN1YmplY3Q8U2NJUGFnaW5hdGlvblBhcmFtcz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNjSVBhZ2luYXRpb25QYXJhbXM+KFNDX1BST0RVQ1RfUEFHSU5BVElPTl9ERUZBVUxUX09QVElPTlMpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIEJlaGF2aW9yU3ViamVjdH0g0LjQt9C80LXQvdC10L3QuNGPINC+0YHRgtCw0LLRiNC40YXRgdGPINC00LDQvdC90YvRhSDQv9Cw0LPQuNC90LDRhtC40Lgg0LHQtdC3INC00LDQvdC90YvRhSDQviDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG90aGVycyQ6IEJlaGF2aW9yU3ViamVjdDxPIHwgdW5kZWZpbmVkPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBFdmVudEVtaXR0ZXJ9INGB0L7QsdGL0YLQuNGPINC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDICjRgdC70LXQtNGD0Y7RidC40LUg0YLQvtCy0LDRgNGLKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbmV4dFBhZ2VDbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBpbmplY3QoU0NfTkVYVF9QQUdFX1BBR0lOQVRJT05fQ0xJQ0spO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdGC0LDRgtGD0YHQsCDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBhdXRoU3RhdHVzJCA9IGluamVjdChTQ19VU0VSX0lORk8pLnBpcGUobWFwKCh1c2VyKSA9PiB1c2VyLmlzR3Vlc3QpKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRgNCw0LHQvtGC0Ysg0YEg0LrQsNGC0LDQu9C+0LPQvtC8LlxuICAgICAqL1xuICAgIHB1YmxpYyBjYXRhbG9nU2VydmljZSA9IGluamVjdChTY0NhdGFsb2dTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCe0LHRitC10LrRgiDQtNCw0L3QvdGL0YUg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBkYXRhJDogT2JzZXJ2YWJsZTxTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+IHwgbnVsbD4gPSB0aGlzLm90aGVycyQucGlwZShcbiAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgIHN3aXRjaE1hcCgocGFyYW1zKSA9PlxuICAgICAgICAgICAgdGhpcy5wYWdlJC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgICAgIC8vINCY0LfQsdC10LPQsNC10Lwg0LzQvdC+0LbQtdGB0YLQstC10L3QvdGL0YUg0YHQuNCz0L3QsNC70L7QsiDQv9GA0Lgg0L7QtNC90L7QstGA0LXQvNC10L3QvdC+0Lwg0LjQt9C80LXQvdC10L3QuNC4INGE0LjQu9GM0YLRgNC+0LIgcGFnZSQg0Lggb3RoZXJzJC5cbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgICAgICAgICAgICAgbWFwKChwYWdlKSA9PiAoeyAuLi5wYXJhbXMsIC4uLnBhZ2UgfSkpLFxuICAgICAgICAgICAgICAgIC8vIFRPRE86INCX0LDQvNC10L3QuNGC0YwgdGhpcy5jYXRhbG9nU2VydmljZS5nZXRQcm9kdWN0cyQg0L3QsCDQsNCx0YHRgtGA0LDQutGC0L3Ri9C5INC80LXRgtC+0LQg0YHQtdGA0LLQuNGB0LAg0L/QviDQv9GA0LjQvNC10YDRgyBgVHVpVHJlZUxvYWRlcmAuXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChwYWdpbmF0aW9uUGFyYW1zKSA9PiB0aGlzLmF1dGhTdGF0dXMkLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuY2F0YWxvZ1NlcnZpY2UuZ2V0UHJvZHVjdHMkKHBhZ2luYXRpb25QYXJhbXMpLnBpcGUoc3RhcnRXaXRoKG51bGwpKSkpKVxuICAgICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBzaGFyZSgpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqINCe0LHRitC10LrRgiDQtNCw0L3QvdGL0YUg0L/QsNCz0LjQvdCw0YbQuNC4INGBINGB0L7RhdGA0LDQvdC10L3QuNC10Lwg0L/RgNC10LTRi9C00YPRidC40YUg0LfQvdCw0YfQtdC90LjQuSDQtNC70Y8gXCLRgNCw0LfQstC+0YDQsNGH0LjQstCw0L3QuNGPXCIg0YHQv9C40YHQutCwINGC0L7QstCw0YDQvtCyLlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdC+0YXRgNCw0L3Rj9C10YLRgdGPINC/0YDQuCDQv9C10YDQtdGF0L7QtNC1INC/0L4g0YHRgtGA0LDQvdC40YbQsNC8LCDQtNC+INGC0LXRhSDQv9C+0YAg0L/QvtC60LAg0L3QtSDQsdGD0LTQtdGCINC/0L7Qu9GD0YfQtdC9INGB0LjQs9C90LDQuyBgb3RoZXJzJGAuXG4gICAgICovXG4gICAgcHVibGljIGRhdGFBY2N1bXVsYXRlZCQ6IE9ic2VydmFibGU8U2NJUGFnaW5hdGU8U2NQcm9kdWN0PiB8IG51bGw+ID0gdGhpcy5vdGhlcnMkLnBpcGUoXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBzd2l0Y2hNYXAoKHBhcmFtcykgPT4gdGhpcy5hdXRoU3RhdHVzJC5waXBlKG1hcCgoKSA9PiBwYXJhbXMpKSksXG4gICAgICAgIHN3aXRjaE1hcCgocGFyYW1zKSA9PlxuICAgICAgICAgICAgdGhpcy5wYWdlJC5waXBlKFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3MsQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgICAgICAgICAgbWFwKChwYWdlKSA9PiAoeyAuLi5wYXJhbXMsIC4uLnBhZ2UgfSkpLFxuICAgICAgICAgICAgICAgIC8vIFRPRE86INCX0LDQvNC10L3QuNGC0YwgdGhpcy5jYXRhbG9nU2VydmljZS5nZXRQcm9kdWN0cyQg0L3QsCDQsNCx0YHRgtGA0LDQutGC0L3Ri9C5INC80LXRgtC+0LQg0YHQtdGA0LLQuNGB0LAg0L/QviDQv9GA0LjQvNC10YDRgyBgVHVpVHJlZUxvYWRlcmAuXG4gICAgICAgICAgICAgICAgY29uY2F0TWFwKChwYWdpbmF0aW9uUGFyYW1zKSA9PiB0aGlzLmNhdGFsb2dTZXJ2aWNlLmdldFByb2R1Y3RzJChwYWdpbmF0aW9uUGFyYW1zKS5waXBlKHN0YXJ0V2l0aChudWxsKSkpLFxuICAgICAgICAgICAgICAgIC8vIFRPRE86INCX0LDQvNC10L3QuNGC0YwgYFNjUHJvZHVjdGAg0L3QsCBUINGC0LjQvy5cbiAgICAgICAgICAgICAgICBzY2FuPFNjSVBhZ2luYXRlPFNjUHJvZHVjdD4gfCBudWxsLCBbU2NJUGFnaW5hdGU8U2NQcm9kdWN0PiB8IG51bGwsIFNjSVBhZ2luYXRlPFNjUHJvZHVjdD4gfCBudWxsXT4oXG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICAgICAgICAgICAgKFtfLCBhY2N1bXVsYXRvcl0sIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFt2YWx1ZSwgYWNjdW11bGF0b3JdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWNjdW11bGF0b3IgJiYgdmFsdWUubWV0YS5jdXJyZW50UGFnZSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5kYXRhLnVuc2hpZnQoLi4uYWNjdW11bGF0b3IuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbdmFsdWUsIHZhbHVlXTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgW251bGwsIG51bGxdXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBtYXAoKFtwYWdpbmF0ZV0pID0+IHBhZ2luYXRlKSxcbiAgICAgICAgICAgICAgICB0YWtlV2hpbGUoKHBhZ2luYXRlKSA9PiBwYWdpbmF0ZSA9PT0gbnVsbCB8fCBwYWdpbmF0ZS5tZXRhLmN1cnJlbnRQYWdlIDwgcGFnaW5hdGUubWV0YS5sYXN0UGFnZSwgdHJ1ZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmUoKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjUGFnaW5hdGlvblNlcnZpY2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5vdGhlcnMkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXh0UGFnZUNsaWNrRXZlbnQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjYW4oKGFjY3VtdWxhdG9yKSA9PiBhY2N1bXVsYXRvciArIDEsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKDEpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChwYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXRjaFBhZ2UoeyBwYWdlOiBwYWdlIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/QvtC70L3QvtGB0YLRjNGOINC+0LHQvdC+0LLQu9GP0LXRgiDQt9C90LDRh9C10L3QuNGPINGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBwYWdlJH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3UGFnZVZhbHVlINCd0L7QstGL0LUg0LTQsNC90L3Ri9C1INGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQYWdlKG5ld1BhZ2VWYWx1ZTogU2NJUGFnaW5hdGlvblBhcmFtcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQobmV3UGFnZVZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQp9Cw0YHRgtC40YfQvdC+INC+0LHQvdC+0LLQu9GP0LXRgiDQt9C90LDRh9C10L3QuNGPINGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBwYWdlJH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFydGlhbFBhZ2VWYWx1ZSDQndC+0LLRi9C1INC00LDQvdC90YvQtSDRgdGC0YDQsNC90LjRhtGLINC/0LDQs9C40L3QsNGG0LjQuC4g0JzQvtC20L3QviDQv9C10YDQtdC00LDRgtGMINGH0LDRgdGC0Ywg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyBwYXRjaFBhZ2UocGFydGlhbFBhZ2VWYWx1ZTogUGFydGlhbDxTY0lQYWdpbmF0aW9uUGFyYW1zPik6IHZvaWQge1xuICAgICAgICAvLyDQl9C90LDRh9C10L3QuNGPINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gdGhpcy5wYWdlJC52YWx1ZTtcblxuICAgICAgICAvLyDQntCx0L3QvtCy0LvRj9C10Lwg0YLQvtC70YzQutC+INGC0LUg0L/QvtC70Y8sINC60L7RgtC+0YDRi9C1INC/0LXRgNC10LTQsNC90Ysg0LIgcGFydGlhbFBhZ2VWYWx1ZS5cbiAgICAgICAgY29uc3QgdXBkYXRlZFBhZ2U6IFNjSVBhZ2luYXRpb25QYXJhbXMgPSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzLEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICAgICAgcGFnZTogcGFydGlhbFBhZ2VWYWx1ZS5wYWdlID8/IGN1cnJlbnRQYWdlLnBhZ2UsXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzLEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICAgICAgcGVyUGFnZTogcGFydGlhbFBhZ2VWYWx1ZS5wZXJQYWdlID8/IGN1cnJlbnRQYWdlLnBlclBhZ2UsXG4gICAgICAgICAgICBwYWdpbmF0ZTogdHJ1ZSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnBhZ2UkLm5leHQodXBkYXRlZFBhZ2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0L7Qu9C90L7RgdGC0YzRjiDQvtCx0L3QvtCy0LvRj9C10YIg0L7RgdGC0LDQu9GM0L3Ri9C1INC/0LDRgNCw0LzQtdGC0YDRiyDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIG90aGVycyR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld090aGVyc1ZhbHVlINCd0L7QstGL0LUg0L/QsNGA0LDQvNC10YLRgNGLINC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0T3RoZXJzKG5ld090aGVyc1ZhbHVlOiBPKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3RoZXJzJC5uZXh0KG5ld090aGVyc1ZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQp9Cw0YHRgtC40YfQvdC+INC+0LHQvdC+0LLQu9GP0LXRgiDQvtGB0YLQsNC70YzQvdGL0LUg0L/QsNGA0LDQvNC10YLRgNGLINC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgb3RoZXJzJH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFydGlhbE90aGVyc1ZhbHVlINCd0L7QstGL0LUg0L/QsNGA0LDQvNC10YLRgNGLINC/0LDQs9C40L3QsNGG0LjQuC4g0JzQvtC20L3QviDQv9C10YDQtdC00LDRgtGMINGH0LDRgdGC0Ywg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyBwYXRjaE90aGVycyhwYXJ0aWFsT3RoZXJzVmFsdWU6IFBhcnRpYWw8Tz4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudE90aGVycyA9IHRoaXMub3RoZXJzJC52YWx1ZSA/PyAoe30gYXMgTyk7XG5cbiAgICAgICAgLy8g0JjQt9Cx0LXQs9Cw0LXQvCDQvtCx0L3QvtCy0LvQtdC90LjRjywg0LXRgdC70LggcGFydGlhbE90aGVyc1ZhbHVlINC/0YPRgdGC0L7QuS5cbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHBhcnRpYWxPdGhlcnNWYWx1ZSkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZE90aGVyczogTyA9IHsgLi4uY3VycmVudE90aGVycywgLi4ucGFydGlhbE90aGVyc1ZhbHVlIH07XG4gICAgICAgICAgICB0aGlzLm90aGVycyQubmV4dCh1cGRhdGVkT3RoZXJzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDQstGB0LUg0LTQsNC90L3Ri9C1INC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgcGFnZSR9INC4IHtAbGluayBvdGhlcnMkfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdWYWx1ZSDQndC+0LLRi9C1INC/0LDRgNCw0LzQtdGC0YDRiyDQv9Cw0LPQuNC90LDRhtC40Lgg0LTQu9GPIHtAbGluayBwYWdlJH0g0Lgge0BsaW5rIG90aGVycyR9LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQYWdpbmF0aW9uUGFyYW1zKG5ld1ZhbHVlOiBQKTogdm9pZCB7XG4gICAgICAgIC8vINCe0LHQvdC+0LLQu9GP0LXQvCDQt9C90LDRh9C10L3QuNC1IHBhZ2UkLlxuICAgICAgICB0aGlzLnBhZ2UkLm5leHQoe1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICAgICAgcGFnZTogbmV3VmFsdWUucGFnZSxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgICAgIHBlclBhZ2U6IG5ld1ZhbHVlLnBlclBhZ2UsXG4gICAgICAgICAgICBwYWdpbmF0ZTogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8g0J7QsdC90L7QstC70Y/QtdC8INC30L3QsNGH0LXQvdC40LUgb3RoZXJzJC5cbiAgICAgICAgY29uc3Qgb3RoZXJzVmFsdWUgPSB0aGlzLmV4dHJhY3RPdGhlcnMobmV3VmFsdWUpO1xuICAgICAgICB0aGlzLm90aGVycyQubmV4dChvdGhlcnNWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C00LXQu9GP0LXRgiDQv9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4LCDQvdC1INC+0YLQvdC+0YHRj9GJ0LjQtdGB0Y8g0Log0YHRgtGA0LDQvdC40YbQtSDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIE99INC40Lcg0L/QvtC70L3QvtCz0L4g0L7QsdGK0LXQutGC0LAg0L/QsNGA0LDQvNC10YLRgNC+0LIg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBQfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSDQntCx0YrQtdC60YLRiyDQv9Cw0YDQsNC80LXRgtGA0L7QsiDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIFB9XG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgICBwcml2YXRlIGV4dHJhY3RPdGhlcnModmFsdWU6IFApOiBPIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICBjb25zdCB7IHBhZ2UsIHBlclBhZ2UsIC4uLm90aGVycyB9ID0gdmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIG90aGVycyBhcyBPO1xuICAgIH1cbn1cbiJdfQ==
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9wYWdpbmF0aW9uL3NlcnZpY2VzL3NjLXBhZ2luYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFJbkU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBaUY1Qjs7T0FFRztJQUNIO1FBbkZBOztXQUVHO1FBQ2MsVUFBSyxHQUF5QyxJQUFJLGVBQWUsQ0FBc0IscUNBQXFDLENBQUMsQ0FBQztRQUUvSTs7V0FFRztRQUNjLFlBQU8sR0FBbUMsSUFBSSxlQUFlLENBQWdCLFNBQVMsQ0FBQyxDQUFDO1FBRXpHOztXQUVHO1FBQ2EsdUJBQWtCLEdBQXVCLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBRS9GOztXQUVHO1FBQ0ksZ0JBQVcsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUks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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyB0dWlJc1ByZXNlbnQgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29uY2F0TWFwLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzY2FuLCBzaGFyZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY1Byb2R1Y3QgfSBmcm9tICcuLi8uLi9jYXRhbG9nL2R0by9zYy1wcm9kdWN0JztcbmltcG9ydCB7IFNjQ2F0YWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jYXRhbG9nL3NlcnZpY2VzL3NjLWNhdGFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBTQ19ORVhUX1BBR0VfUEFHSU5BVElPTl9DTElDSywgU0NfUFJPRFVDVF9QQUdJTkFUSU9OX0RFRkFVTFRfT1BUSU9OUyB9IGZyb20gJy4uLy4uL3Rva2Vucy9zYy1wcm9kdWN0LXBhZ2luYXRpb24tb3B0aW9ucyc7XG5pbXBvcnQgeyBTQ19VU0VSX0lORk8gfSBmcm9tICcuLi8uLi91c2VyL3Rva2Vucy9zYy11c2VyLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBTY0lQYWdpbmF0ZSB9IGZyb20gJy4uL2R0by9zYy1pLXBhZ2luYXRlJztcbmltcG9ydCB7IFNjSVBhZ2luYXRpb25QYXJhbXMgfSBmcm9tICcuLi9kdG8vc2MtaS1wYWdpbmF0aW9uLXBhcmFtcyc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC/0LDQs9C40L3QsNGG0LjQuC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNjUGFnaW5hdGlvblNlcnZpY2U8UCBleHRlbmRzIFNjSVBhZ2luYXRpb25QYXJhbXMsIE8gZXh0ZW5kcyBvYmplY3QgPSBPbWl0PFAsIGtleW9mIFNjSVBhZ2luYXRpb25QYXJhbXM+PiB7XG4gICAgLyoqXG4gICAgICoge0BsaW5rIEJlaGF2aW9yU3ViamVjdH0g0LjQt9C80LXQvdC10L3QuNGPINC00LDQvdC90YvRhSDQviDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2UkOiBCZWhhdmlvclN1YmplY3Q8U2NJUGFnaW5hdGlvblBhcmFtcz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNjSVBhZ2luYXRpb25QYXJhbXM+KFNDX1BST0RVQ1RfUEFHSU5BVElPTl9ERUZBVUxUX09QVElPTlMpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIEJlaGF2aW9yU3ViamVjdH0g0LjQt9C80LXQvdC10L3QuNGPINC+0YHRgtCw0LLRiNC40YXRgdGPINC00LDQvdC90YvRhSDQv9Cw0LPQuNC90LDRhtC40Lgg0LHQtdC3INC00LDQvdC90YvRhSDQviDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG90aGVycyQ6IEJlaGF2aW9yU3ViamVjdDxPIHwgdW5kZWZpbmVkPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBFdmVudEVtaXR0ZXJ9INGB0L7QsdGL0YLQuNGPINC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDICjRgdC70LXQtNGD0Y7RidC40LUg0YLQvtCy0LDRgNGLKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgbmV4dFBhZ2VDbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBpbmplY3QoU0NfTkVYVF9QQUdFX1BBR0lOQVRJT05fQ0xJQ0spO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdGC0LDRgtGD0YHQsCDQsNGD0YLQtdC90YLQuNGE0LjQutCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBhdXRoU3RhdHVzJCA9IGluamVjdChTQ19VU0VSX0lORk8pLnBpcGUobWFwKCh1c2VyKSA9PiB1c2VyLmlzR3Vlc3QpKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRgNCw0LHQvtGC0Ysg0YEg0LrQsNGC0LDQu9C+0LPQvtC8LlxuICAgICAqL1xuICAgIHB1YmxpYyBjYXRhbG9nU2VydmljZSA9IGluamVjdChTY0NhdGFsb2dTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCe0LHRitC10LrRgiDQtNCw0L3QvdGL0YUg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBkYXRhJDogT2JzZXJ2YWJsZTxTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+IHwgbnVsbD4gPSB0aGlzLm90aGVycyQucGlwZShcbiAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgIHN3aXRjaE1hcCgocGFyYW1zKSA9PlxuICAgICAgICAgICAgdGhpcy5wYWdlJC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgICAgIC8vINCY0LfQsdC10LPQsNC10Lwg0LzQvdC+0LbQtdGB0YLQstC10L3QvdGL0YUg0YHQuNCz0L3QsNC70L7QsiDQv9GA0Lgg0L7QtNC90L7QstGA0LXQvNC10L3QvdC+0Lwg0LjQt9C80LXQvdC10L3QuNC4INGE0LjQu9GM0YLRgNC+0LIgcGFnZSQg0Lggb3RoZXJzJC5cbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtcmV0dXJuXG4gICAgICAgICAgICAgICAgbWFwKChwYWdlKSA9PiAoeyAuLi5wYXJhbXMsIC4uLnBhZ2UgfSkpLFxuICAgICAgICAgICAgICAgIC8vIFRPRE86INCX0LDQvNC10L3QuNGC0YwgdGhpcy5jYXRhbG9nU2VydmljZS5nZXRQcm9kdWN0cyQg0L3QsCDQsNCx0YHRgtGA0LDQutGC0L3Ri9C5INC80LXRgtC+0LQg0YHQtdGA0LLQuNGB0LAg0L/QviDQv9GA0LjQvNC10YDRgyBgVHVpVHJlZUxvYWRlcmAuXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChwYWdpbmF0aW9uUGFyYW1zKSA9PiB0aGlzLmF1dGhTdGF0dXMkLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuY2F0YWxvZ1NlcnZpY2UuZ2V0UHJvZHVjdHMkKHBhZ2luYXRpb25QYXJhbXMpLnBpcGUoc3RhcnRXaXRoKG51bGwpKSkpKVxuICAgICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBzaGFyZSgpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqINCe0LHRitC10LrRgiDQtNCw0L3QvdGL0YUg0L/QsNCz0LjQvdCw0YbQuNC4INGBINGB0L7RhdGA0LDQvdC10L3QuNC10Lwg0L/RgNC10LTRi9C00YPRidC40YUg0LfQvdCw0YfQtdC90LjQuSDQtNC70Y8gXCLRgNCw0LfQstC+0YDQsNGH0LjQstCw0L3QuNGPXCIg0YHQv9C40YHQutCwINGC0L7QstCw0YDQvtCyLlxuICAgICAqINCh0L/QuNGB0L7QuiDRgdC+0YXRgNCw0L3Rj9C10YLRgdGPINC/0YDQuCDQv9C10YDQtdGF0L7QtNC1INC/0L4g0YHRgtGA0LDQvdC40YbQsNC8LCDQtNC+INGC0LXRhSDQv9C+0YAg0L/QvtC60LAg0L3QtSDQsdGD0LTQtdGCINC/0L7Qu9GD0YfQtdC9INGB0LjQs9C90LDQuyBgb3RoZXJzJGAuXG4gICAgICovXG4gICAgcHVibGljIGRhdGFBY2N1bXVsYXRlZCQ6IE9ic2VydmFibGU8U2NJUGFnaW5hdGU8U2NQcm9kdWN0PiB8IG51bGw+ID0gdGhpcy5vdGhlcnMkLnBpcGUoXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBzd2l0Y2hNYXAoKHBhcmFtcykgPT4gdGhpcy5hdXRoU3RhdHVzJC5waXBlKG1hcCgoKSA9PiBwYXJhbXMpKSksXG4gICAgICAgIHN3aXRjaE1hcCgocGFyYW1zKSA9PlxuICAgICAgICAgICAgdGhpcy5wYWdlJC5waXBlKFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3MsQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgICAgICAgICAgbWFwKChwYWdlKSA9PiAoeyAuLi5wYXJhbXMsIC4uLnBhZ2UgfSkpLFxuICAgICAgICAgICAgICAgIC8vIFRPRE86INCX0LDQvNC10L3QuNGC0YwgdGhpcy5jYXRhbG9nU2VydmljZS5nZXRQcm9kdWN0cyQg0L3QsCDQsNCx0YHRgtGA0LDQutGC0L3Ri9C5INC80LXRgtC+0LQg0YHQtdGA0LLQuNGB0LAg0L/QviDQv9GA0LjQvNC10YDRgyBgVHVpVHJlZUxvYWRlcmAuXG4gICAgICAgICAgICAgICAgY29uY2F0TWFwKChwYWdpbmF0aW9uUGFyYW1zKSA9PiB0aGlzLmNhdGFsb2dTZXJ2aWNlLmdldFByb2R1Y3RzJChwYWdpbmF0aW9uUGFyYW1zKS5waXBlKHN0YXJ0V2l0aChudWxsKSkpLFxuICAgICAgICAgICAgICAgIC8vIFRPRE86INCX0LDQvNC10L3QuNGC0YwgYFNjUHJvZHVjdGAg0L3QsCBUINGC0LjQvy5cbiAgICAgICAgICAgICAgICBzY2FuPFNjSVBhZ2luYXRlPFNjUHJvZHVjdD4gfCBudWxsLCBbU2NJUGFnaW5hdGU8U2NQcm9kdWN0PiB8IG51bGwsIFNjSVBhZ2luYXRlPFNjUHJvZHVjdD4gfCBudWxsXT4oXG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICAgICAgICAgICAgKFtfLCBhY2N1bXVsYXRvcl0sIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFt2YWx1ZSwgYWNjdW11bGF0b3JdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYWNjdW11bGF0b3IgJiYgdmFsdWUubWV0YS5jdXJyZW50UGFnZSA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5kYXRhLnVuc2hpZnQoLi4uYWNjdW11bGF0b3IuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbdmFsdWUsIHZhbHVlXTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgW251bGwsIG51bGxdXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBtYXAoKFtwYWdpbmF0ZV0pID0+IHBhZ2luYXRlKSxcbiAgICAgICAgICAgICAgICB0YWtlV2hpbGUoKHBhZ2luYXRlKSA9PiBwYWdpbmF0ZSA9PT0gbnVsbCB8fCBwYWdpbmF0ZS5tZXRhLmN1cnJlbnRQYWdlIDwgcGFnaW5hdGUubWV0YS5sYXN0UGFnZSwgdHJ1ZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmUoKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjUGFnaW5hdGlvblNlcnZpY2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5vdGhlcnMkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZXh0UGFnZUNsaWNrRXZlbnQucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjYW4oKGFjY3VtdWxhdG9yKSA9PiBhY2N1bXVsYXRvciArIDEsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKDEpXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChwYWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXRjaFBhZ2UoeyBwYWdlOiBwYWdlIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/QvtC70L3QvtGB0YLRjNGOINC+0LHQvdC+0LLQu9GP0LXRgiDQt9C90LDRh9C10L3QuNGPINGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBwYWdlJH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3UGFnZVZhbHVlINCd0L7QstGL0LUg0LTQsNC90L3Ri9C1INGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQYWdlKG5ld1BhZ2VWYWx1ZTogU2NJUGFnaW5hdGlvblBhcmFtcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhZ2UkLm5leHQobmV3UGFnZVZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQp9Cw0YHRgtC40YfQvdC+INC+0LHQvdC+0LLQu9GP0LXRgiDQt9C90LDRh9C10L3QuNGPINGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBwYWdlJH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFydGlhbFBhZ2VWYWx1ZSDQndC+0LLRi9C1INC00LDQvdC90YvQtSDRgdGC0YDQsNC90LjRhtGLINC/0LDQs9C40L3QsNGG0LjQuC4g0JzQvtC20L3QviDQv9C10YDQtdC00LDRgtGMINGH0LDRgdGC0Ywg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyBwYXRjaFBhZ2UocGFydGlhbFBhZ2VWYWx1ZTogUGFydGlhbDxTY0lQYWdpbmF0aW9uUGFyYW1zPik6IHZvaWQge1xuICAgICAgICAvLyDQl9C90LDRh9C10L3QuNGPINC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYWdlID0gdGhpcy5wYWdlJC52YWx1ZTtcblxuICAgICAgICAvLyDQntCx0L3QvtCy0LvRj9C10Lwg0YLQvtC70YzQutC+INGC0LUg0L/QvtC70Y8sINC60L7RgtC+0YDRi9C1INC/0LXRgNC10LTQsNC90Ysg0LIgcGFydGlhbFBhZ2VWYWx1ZS5cbiAgICAgICAgY29uc3QgdXBkYXRlZFBhZ2U6IFNjSVBhZ2luYXRpb25QYXJhbXMgPSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzLEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICAgICAgcGFnZTogcGFydGlhbFBhZ2VWYWx1ZS5wYWdlID8/IGN1cnJlbnRQYWdlLnBhZ2UsXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzLEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICAgICAgcGVyUGFnZTogcGFydGlhbFBhZ2VWYWx1ZS5wZXJQYWdlID8/IGN1cnJlbnRQYWdlLnBlclBhZ2UsXG4gICAgICAgICAgICBwYWdpbmF0ZTogdHJ1ZSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnBhZ2UkLm5leHQodXBkYXRlZFBhZ2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0L7Qu9C90L7RgdGC0YzRjiDQvtCx0L3QvtCy0LvRj9C10YIg0L7RgdGC0LDQu9GM0L3Ri9C1INC/0LDRgNCw0LzQtdGC0YDRiyDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIG90aGVycyR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld090aGVyc1ZhbHVlINCd0L7QstGL0LUg0L/QsNGA0LDQvNC10YLRgNGLINC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0T3RoZXJzKG5ld090aGVyc1ZhbHVlOiBPKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3RoZXJzJC5uZXh0KG5ld090aGVyc1ZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQp9Cw0YHRgtC40YfQvdC+INC+0LHQvdC+0LLQu9GP0LXRgiDQvtGB0YLQsNC70YzQvdGL0LUg0L/QsNGA0LDQvNC10YLRgNGLINC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgb3RoZXJzJH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcGFydGlhbE90aGVyc1ZhbHVlINCd0L7QstGL0LUg0L/QsNGA0LDQvNC10YLRgNGLINC/0LDQs9C40L3QsNGG0LjQuC4g0JzQvtC20L3QviDQv9C10YDQtdC00LDRgtGMINGH0LDRgdGC0Ywg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyBwYXRjaE90aGVycyhwYXJ0aWFsT3RoZXJzVmFsdWU6IFBhcnRpYWw8Tz4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudE90aGVycyA9IHRoaXMub3RoZXJzJC52YWx1ZSA/PyAoe30gYXMgTyk7XG5cbiAgICAgICAgLy8g0JjQt9Cx0LXQs9Cw0LXQvCDQvtCx0L3QvtCy0LvQtdC90LjRjywg0LXRgdC70LggcGFydGlhbE90aGVyc1ZhbHVlINC/0YPRgdGC0L7QuS5cbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHBhcnRpYWxPdGhlcnNWYWx1ZSkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZE90aGVyczogTyA9IHsgLi4uY3VycmVudE90aGVycywgLi4ucGFydGlhbE90aGVyc1ZhbHVlIH07XG4gICAgICAgICAgICB0aGlzLm90aGVycyQubmV4dCh1cGRhdGVkT3RoZXJzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDQstGB0LUg0LTQsNC90L3Ri9C1INC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgcGFnZSR9INC4IHtAbGluayBvdGhlcnMkfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdWYWx1ZSDQndC+0LLRi9C1INC/0LDRgNCw0LzQtdGC0YDRiyDQv9Cw0LPQuNC90LDRhtC40Lgg0LTQu9GPIHtAbGluayBwYWdlJH0g0Lgge0BsaW5rIG90aGVycyR9LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQYWdpbmF0aW9uUGFyYW1zKG5ld1ZhbHVlOiBQKTogdm9pZCB7XG4gICAgICAgIC8vINCe0LHQvdC+0LLQu9GP0LXQvCDQt9C90LDRh9C10L3QuNC1IHBhZ2UkLlxuICAgICAgICB0aGlzLnBhZ2UkLm5leHQoe1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICAgICAgcGFnZTogbmV3VmFsdWUucGFnZSxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgICAgIHBlclBhZ2U6IG5ld1ZhbHVlLnBlclBhZ2UsXG4gICAgICAgICAgICBwYWdpbmF0ZTogdHJ1ZSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8g0J7QsdC90L7QstC70Y/QtdC8INC30L3QsNGH0LXQvdC40LUgb3RoZXJzJC5cbiAgICAgICAgY29uc3Qgb3RoZXJzVmFsdWUgPSB0aGlzLmV4dHJhY3RPdGhlcnMobmV3VmFsdWUpO1xuICAgICAgICB0aGlzLm90aGVycyQubmV4dChvdGhlcnNWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLRi9C00LXQu9GP0LXRgiDQv9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4LCDQvdC1INC+0YLQvdC+0YHRj9GJ0LjQtdGB0Y8g0Log0YHRgtGA0LDQvdC40YbQtSDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIE99INC40Lcg0L/QvtC70L3QvtCz0L4g0L7QsdGK0LXQutGC0LAg0L/QsNGA0LDQvNC10YLRgNC+0LIg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBQfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSDQntCx0YrQtdC60YLRiyDQv9Cw0YDQsNC80LXRgtGA0L7QsiDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIFB9XG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNsYXNzLW1ldGhvZHMtdXNlLXRoaXNcbiAgICBwcml2YXRlIGV4dHJhY3RPdGhlcnModmFsdWU6IFApOiBPIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICBjb25zdCB7IHBhZ2UsIHBlclBhZ2UsIC4uLm90aGVycyB9ID0gdmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIG90aGVycyBhcyBPO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { inject, Injectable, Pipe } from '@angular/core';
|
|
2
|
-
import { SC_ID_OR_SLUG_IN_ROUTE } from '../
|
|
2
|
+
import { SC_ID_OR_SLUG_IN_ROUTE } from '../tokens/sc-id-or-slug-in-route';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
5
5
|
* Пайп, возвращающий идентификатор или символьное обозначение (slug) исходя из настроек окружения
|
|
@@ -38,4 +38,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
38
38
|
providedIn: 'root',
|
|
39
39
|
}]
|
|
40
40
|
}] });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaWQtb3Itc2x1Zy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9waXBlcy9zYy1pZC1vci1zbHVnLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUV4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFFMUU7O0dBRUc7QUFRSCxNQUFNLE9BQU8sY0FBYztJQVAzQjtRQVFJOztXQUVHO1FBQ00sYUFBUSxHQUFrQixNQUFNLENBQWdCLHNCQUFzQixDQUFDLENBQUM7S0FhcEY7SUFYRzs7Ozs7O09BTUc7SUFDSCx3REFBd0Q7SUFDeEQsU0FBUyxDQUFDLEtBQW1DO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDMUQsQ0FBQzsrR0FoQlEsY0FBYzs2R0FBZCxjQUFjO21IQUFkLGNBQWMsY0FGWCxNQUFNOzs0RkFFVCxjQUFjO2tCQVAxQixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxZQUFZO29CQUNsQixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7O2tCQUNBLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNDX0lEX09SX1NMVUdfSU5fUk9VVEUgfSBmcm9tICcuLi90b2tlbnMvc2MtaWQtb3Itc2x1Zy1pbi1yb3V0ZSc7XG5cbi8qKlxuICog0J/QsNC50L8sINCy0L7Qt9Cy0YDQsNGJ0LDRjtGJ0LjQuSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lgg0YHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1Zykg0LjRgdGF0L7QtNGPINC40Lcg0L3QsNGB0YLRgNC+0LXQuiDQvtC60YDRg9C20LXQvdC40Y9cbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdzY0lkT3JTbHVnJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNjSWRPclNsdWdQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0Log0L7Qv9GA0LXQtNC10LvRj9GO0YnQuNC5LCDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuNC70Lgg0YHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1Zykg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDRgNC+0YPRgtC40L3Qs9CwINC4INC80LDRgNGI0YDRg9GC0LjQt9Cw0YbQuNC4LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGlkT3JTbHVnOiAnaWQnIHwgJ3NsdWcnID0gaW5qZWN0PCdpZCcgfCAnc2x1Zyc+KFNDX0lEX09SX1NMVUdfSU5fUk9VVEUpO1xuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LjQu9C4INGB0LjQvNCy0L7Qu9GM0L3QvtC1INC+0LHQvtC30L3QsNGH0LXQvdC40LUgKHNsdWcpINC40YHRhdC+0LTRjyDQuNC3INC90LDRgdGC0YDQvtC10Log0L7QutGA0YPQttC10L3QuNGPLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlINCe0LHRitC10LrRgiDRgdC+0LTQtdGA0LbQsNGJ0LjQuSDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQuCDRgdC40LzQstC+0LvRjNC90L7QtSDQvtCx0L7Qt9C90LDRh9C10L3QuNC1IChzbHVnKS5cbiAgICAgKiBAcGFyYW0gdmFsdWUuaWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAuXG4gICAgICogQHBhcmFtIHZhbHVlLnNsdWcg0KHQuNC80LLQvtC70YzQvdC+0LUg0L7QsdC+0LfQvdCw0YfQtdC90LjQtSAoc2x1ZykuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHNvbmFyanMvZnVuY3Rpb24tcmV0dXJuLXR5cGVcbiAgICB0cmFuc2Zvcm0odmFsdWU6IHsgaWQ6IG51bWJlcjsgc2x1Zzogc3RyaW5nIH0pOiBudW1iZXIgfCBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pZE9yU2x1ZyA9PT0gJ2lkJyA/IHZhbHVlLmlkIDogdmFsdWUuc2x1ZztcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
export * from './interfaces';
|
|
2
|
-
export * from './sc-
|
|
3
|
-
export * from './sc-product-pagination-options';
|
|
2
|
+
export * from './sc-category.providers';
|
|
4
3
|
export * from './terminal.providers';
|
|
5
4
|
export * from './search-term.providers';
|
|
6
5
|
export * from './ssr.providers';
|
|
7
6
|
export * from './types/sc-provider';
|
|
8
7
|
export * from './virtual-category.providers';
|
|
9
|
-
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Byb3ZpZGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zYy1pZC1vci1zbHVnLWluLXJvdXRlJztcbmV4cG9ydCAqIGZyb20gJy4vc2MtcHJvZHVjdC1wYWdpbmF0aW9uLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXJtaW5hbC5wcm92aWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtdGVybS5wcm92aWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zc3IucHJvdmlkZXJzJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvc2MtcHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi92aXJ0dWFsLWNhdGVnb3J5LnByb3ZpZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWNvbXBhbnktaW5mbyc7XG4iXX0=
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Byb3ZpZGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NjLWNhdGVnb3J5LnByb3ZpZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3Rlcm1pbmFsLnByb3ZpZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC10ZXJtLnByb3ZpZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3Nzci5wcm92aWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9zYy1wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL3ZpcnR1YWwtY2F0ZWdvcnkucHJvdmlkZXJzJztcbiJdfQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { HttpErrorResponse } from '@angular/common/http';
|
|
2
|
+
import { InjectionToken } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { ActivatedRoute } from '@angular/router';
|
|
5
|
+
import { tuiIsPresent } from '@taiga-ui/cdk';
|
|
6
|
+
import { catchError, EMPTY, filter, map, shareReplay, switchMap } from 'rxjs';
|
|
7
|
+
import { ScCatalogService } from '../catalog/services/sc-catalog.service';
|
|
8
|
+
import { ERROR_HANDLER } from '../tokens/sc-error-handler';
|
|
9
|
+
/**
|
|
10
|
+
* Токен потока данных о категории.
|
|
11
|
+
*/
|
|
12
|
+
export const CATEGORY_INFO = new InjectionToken('A stream with current category information');
|
|
13
|
+
/**
|
|
14
|
+
* Фабрика создания потока данных о категории.
|
|
15
|
+
*
|
|
16
|
+
* @param paramMap Параметры.
|
|
17
|
+
* @param paramMap.paramMap Параметры.
|
|
18
|
+
* @param catalogService Сервис для работы с каталогом.
|
|
19
|
+
* @param catalogService.paramMap Параметры.
|
|
20
|
+
* @param errorHandlerComponent Компонент для управления кодом ошибки отображаемой на странице.
|
|
21
|
+
*/
|
|
22
|
+
function categoryFactory({ paramMap }, catalogService, errorHandlerComponent) {
|
|
23
|
+
return paramMap.pipe(map((parameters) => parameters.get('categoryIdOrSlug')), filter(tuiIsPresent), switchMap((categoryId) => catalogService.getCategoryCached$(categoryId).pipe(catchError((error) => {
|
|
24
|
+
if (error instanceof HttpErrorResponse) {
|
|
25
|
+
errorHandlerComponent(error.status);
|
|
26
|
+
}
|
|
27
|
+
return EMPTY;
|
|
28
|
+
}), shareReplay())), takeUntilDestroyed());
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Провайдеры потока данных о категории.
|
|
32
|
+
*/
|
|
33
|
+
export const CATEGORY_PROVIDERS = [
|
|
34
|
+
{
|
|
35
|
+
provide: CATEGORY_INFO,
|
|
36
|
+
deps: [ActivatedRoute, ScCatalogService, ERROR_HANDLER],
|
|
37
|
+
useFactory: categoryFactory,
|
|
38
|
+
},
|
|
39
|
+
];
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2F0ZWdvcnkucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9wcm92aWRlcnMvc2MtY2F0ZWdvcnkucHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzFGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQXFCLE1BQU0sNEJBQTRCLENBQUM7QUFFOUU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQWdDLDRDQUE0QyxDQUFDLENBQUM7QUFFN0g7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLGVBQWUsQ0FBQyxFQUFFLFFBQVEsRUFBa0IsRUFBRSxjQUFnQyxFQUFFLHFCQUF3QztJQUM3SCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQ3ZELE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFDcEIsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDckIsY0FBYyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDOUMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDakIsSUFBSSxLQUFLLFlBQVksaUJBQWlCLEVBQUUsQ0FBQztZQUNyQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxFQUNGLFdBQVcsRUFBRSxDQUNoQixDQUNKLEVBQ0Qsa0JBQWtCLEVBQUUsQ0FDdkIsQ0FBQztBQUNOLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFlO0lBQzFDO1FBQ0ksT0FBTyxFQUFFLGFBQWE7UUFDdEIsSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsQ0FBQztRQUN2RCxVQUFVLEVBQUUsZUFBZTtLQUM5QjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgdHVpSXNQcmVzZW50IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBFTVBUWSwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NDYXRlZ29yeSB9IGZyb20gJy4uL2NhdGFsb2cvZHRvL3NjLWNhdGVnb3J5JztcbmltcG9ydCB7IFNjQ2F0YWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9jYXRhbG9nL3NlcnZpY2VzL3NjLWNhdGFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBFUlJPUl9IQU5ETEVSLCBTZXRDb2RlTnVtYmVyVHlwZSB9IGZyb20gJy4uL3Rva2Vucy9zYy1lcnJvci1oYW5kbGVyJztcblxuLyoqXG4gKiDQotC+0LrQtdC9INC/0L7RgtC+0LrQsCDQtNCw0L3QvdGL0YUg0L4g0LrQsNGC0LXQs9C+0YDQuNC4LlxuICovXG5leHBvcnQgY29uc3QgQ0FURUdPUllfSU5GTyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPYnNlcnZhYmxlPFNjQ2F0ZWdvcnkgfCBudWxsPj4oJ0Egc3RyZWFtIHdpdGggY3VycmVudCBjYXRlZ29yeSBpbmZvcm1hdGlvbicpO1xuXG4vKipcbiAqINCk0LDQsdGA0LjQutCwINGB0L7Qt9C00LDQvdC40Y8g0L/QvtGC0L7QutCwINC00LDQvdC90YvRhSDQviDQutCw0YLQtdCz0L7RgNC40LguXG4gKlxuICogQHBhcmFtIHBhcmFtTWFwINCf0LDRgNCw0LzQtdGC0YDRiy5cbiAqIEBwYXJhbSBwYXJhbU1hcC5wYXJhbU1hcCDQn9Cw0YDQsNC80LXRgtGA0YsuXG4gKiBAcGFyYW0gY2F0YWxvZ1NlcnZpY2Ug0KHQtdGA0LLQuNGBINC00LvRjyDRgNCw0LHQvtGC0Ysg0YEg0LrQsNGC0LDQu9C+0LPQvtC8LlxuICogQHBhcmFtIGNhdGFsb2dTZXJ2aWNlLnBhcmFtTWFwINCf0LDRgNCw0LzQtdGC0YDRiy5cbiAqIEBwYXJhbSBlcnJvckhhbmRsZXJDb21wb25lbnQg0JrQvtC80L/QvtC90LXQvdGCINC00LvRjyDRg9C/0YDQsNCy0LvQtdC90LjRjyDQutC+0LTQvtC8INC+0YjQuNCx0LrQuCDQvtGC0L7QsdGA0LDQttCw0LXQvNC+0Lkg0L3QsCDRgdGC0YDQsNC90LjRhtC1LlxuICovXG5mdW5jdGlvbiBjYXRlZ29yeUZhY3RvcnkoeyBwYXJhbU1hcCB9OiBBY3RpdmF0ZWRSb3V0ZSwgY2F0YWxvZ1NlcnZpY2U6IFNjQ2F0YWxvZ1NlcnZpY2UsIGVycm9ySGFuZGxlckNvbXBvbmVudDogU2V0Q29kZU51bWJlclR5cGUpOiBPYnNlcnZhYmxlPFNjQ2F0ZWdvcnkgfCBudWxsPiB7XG4gICAgcmV0dXJuIHBhcmFtTWFwLnBpcGUoXG4gICAgICAgIG1hcCgocGFyYW1ldGVycykgPT4gcGFyYW1ldGVycy5nZXQoJ2NhdGVnb3J5SWRPclNsdWcnKSksXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBzd2l0Y2hNYXAoKGNhdGVnb3J5SWQpID0+XG4gICAgICAgICAgICBjYXRhbG9nU2VydmljZS5nZXRDYXRlZ29yeUNhY2hlZCQoY2F0ZWdvcnlJZCkucGlwZShcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JIYW5kbGVyQ29tcG9uZW50KGVycm9yLnN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc2hhcmVSZXBsYXkoKVxuICAgICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICAgICk7XG59XG5cbi8qKlxuICog0J/RgNC+0LLQsNC50LTQtdGA0Ysg0L/QvtGC0L7QutCwINC00LDQvdC90YvRhSDQviDQutCw0YLQtdCz0L7RgNC40LguXG4gKi9cbmV4cG9ydCBjb25zdCBDQVRFR09SWV9QUk9WSURFUlM6IFByb3ZpZGVyW10gPSBbXG4gICAge1xuICAgICAgICBwcm92aWRlOiBDQVRFR09SWV9JTkZPLFxuICAgICAgICBkZXBzOiBbQWN0aXZhdGVkUm91dGUsIFNjQ2F0YWxvZ1NlcnZpY2UsIEVSUk9SX0hBTkRMRVJdLFxuICAgICAgICB1c2VGYWN0b3J5OiBjYXRlZ29yeUZhY3RvcnksXG4gICAgfSxcbl07XG4iXX0=
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { isPlatformBrowser, isPlatformServer } from '@angular/common';
|
|
2
2
|
import { inject, InjectionToken, PLATFORM_ID } from '@angular/core';
|
|
3
|
-
import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk';
|
|
4
3
|
/**
|
|
5
4
|
* Токен для получения признака, что скрипт выполняется в браузере.
|
|
6
5
|
*/
|
|
7
|
-
export const IS_BROWSER =
|
|
6
|
+
export const IS_BROWSER = new InjectionToken('IS_BROWSER', {
|
|
7
|
+
factory: () => isPlatformBrowser(inject(PLATFORM_ID)),
|
|
8
|
+
});
|
|
8
9
|
/**
|
|
9
10
|
* Токен для получения признака, что скрипт выполняется на сервере.
|
|
10
11
|
*/
|
|
11
|
-
export const IS_SERVER =
|
|
12
|
+
export const IS_SERVER = new InjectionToken('IS_SERVER', {
|
|
13
|
+
factory: () => isPlatformServer(inject(PLATFORM_ID)),
|
|
14
|
+
});
|
|
12
15
|
/**
|
|
13
16
|
* Токен для получения данных об ответе на запрос.
|
|
14
17
|
*/
|
|
15
18
|
export const RESPONSE = new InjectionToken('RESPONSE');
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvcHJvdmlkZXJzL3Nzci5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3BFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksY0FBYyxDQUFVLFlBQVksRUFBRTtJQUNoRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0NBQ3hELENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUFVLFdBQVcsRUFBRTtJQUM5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0NBQ3ZELENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksY0FBYyxDQUFXLFVBQVUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIsIGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcyc7XG5cbi8qKlxuICog0KLQvtC60LXQvSDQtNC70Y8g0L/QvtC70YPRh9C10L3QuNGPINC/0YDQuNC30L3QsNC60LAsINGH0YLQviDRgdC60YDQuNC/0YIg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDQsiDQsdGA0LDRg9C30LXRgNC1LlxuICovXG5leHBvcnQgY29uc3QgSVNfQlJPV1NFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPignSVNfQlJPV1NFUicsIHtcbiAgICBmYWN0b3J5OiAoKSA9PiBpc1BsYXRmb3JtQnJvd3NlcihpbmplY3QoUExBVEZPUk1fSUQpKSxcbn0pO1xuXG4vKipcbiAqINCi0L7QutC10L0g0LTQu9GPINC/0L7Qu9GD0YfQtdC90LjRjyDQv9GA0LjQt9C90LDQutCwLCDRh9GC0L4g0YHQutGA0LjQv9GCINCy0YvQv9C+0LvQvdGP0LXRgtGB0Y8g0L3QsCDRgdC10YDQstC10YDQtS5cbiAqL1xuZXhwb3J0IGNvbnN0IElTX1NFUlZFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPignSVNfU0VSVkVSJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IGlzUGxhdGZvcm1TZXJ2ZXIoaW5qZWN0KFBMQVRGT1JNX0lEKSksXG59KTtcblxuLyoqXG4gKiDQotC+0LrQtdC9INC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0LTQsNC90L3Ri9GFINC+0LEg0L7RgtCy0LXRgtC1INC90LAg0LfQsNC/0YDQvtGBLlxuICovXG5leHBvcnQgY29uc3QgUkVTUE9OU0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48UmVzcG9uc2U+KCdSRVNQT05TRScpO1xuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { EventEmitter, inject, Injectable } from '@angular/core';
|
|
2
|
+
import { EventEmitter, inject, Injectable, RendererFactory2 } from '@angular/core';
|
|
3
3
|
import { Meta, Title } from '@angular/platform-browser';
|
|
4
4
|
import { Router } from '@angular/router';
|
|
5
5
|
import { SC_COMPANY_NAME } from '../tokens/sc-company-name';
|
|
@@ -46,6 +46,14 @@ export class ScSeoService {
|
|
|
46
46
|
* Объект {@link Document}, предоставляющий доступ к DOM страницы.
|
|
47
47
|
*/
|
|
48
48
|
this.document = inject(DOCUMENT);
|
|
49
|
+
/**
|
|
50
|
+
* Фабрика для создания экземпляров {@link Renderer2}.
|
|
51
|
+
*/
|
|
52
|
+
this.rendererFactory = inject(RendererFactory2);
|
|
53
|
+
/**
|
|
54
|
+
* Экземпляр {@link Renderer2} для безопасной работы с DOM.
|
|
55
|
+
*/
|
|
56
|
+
this.renderer = this.rendererFactory.createRenderer(null, null);
|
|
49
57
|
/**
|
|
50
58
|
* Название компании.
|
|
51
59
|
*/
|
|
@@ -166,6 +174,24 @@ export class ScSeoService {
|
|
|
166
174
|
meta: seo?.meta,
|
|
167
175
|
};
|
|
168
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Устанавливает тег канонической страницы <link rel="canonical" href="..." />.
|
|
179
|
+
*
|
|
180
|
+
* @param url URL который необходимо использовать в качестве ссылки.
|
|
181
|
+
*/
|
|
182
|
+
setCanonicalLink(url) {
|
|
183
|
+
// Удаляем существующий link canonical.
|
|
184
|
+
const existingLink = this.document.querySelector('link[rel="canonical"]');
|
|
185
|
+
if (existingLink?.parentNode) {
|
|
186
|
+
this.renderer.removeChild(existingLink.parentNode, existingLink);
|
|
187
|
+
}
|
|
188
|
+
// Создаём и устанавливаем новый тег.
|
|
189
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
190
|
+
const link = this.renderer.createElement('link');
|
|
191
|
+
this.renderer.setAttribute(link, 'rel', 'canonical');
|
|
192
|
+
this.renderer.setAttribute(link, 'href', url);
|
|
193
|
+
this.renderer.appendChild(this.document.head, link);
|
|
194
|
+
}
|
|
169
195
|
/**
|
|
170
196
|
* Устанавливает title-заголовок страницы.
|
|
171
197
|
*
|
|
@@ -242,4 +268,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
242
268
|
providedIn: 'root',
|
|
243
269
|
}]
|
|
244
270
|
}], ctorParameters: () => [] });
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NlcnZpY2VzL3NjLXNlby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHNUM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQThDckI7O09BRUc7SUFDSDtRQWhEQTs7V0FFRztRQUNhLDhCQUF5QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXpGOztXQUVHO1FBQ2MsZUFBVSxHQUF1QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUUvRTs7V0FFRztRQUNjLFdBQU0sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDYyxTQUFJLEdBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ2MsZ0JBQVcsR0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEQ7O1dBRUc7UUFDYyxpQkFBWSxHQUFVLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyRDs7V0FFRztRQUNjLHNCQUFpQixHQUFXLFVBQVUsQ0FBQztRQUV4RDs7V0FFRztRQUNjLGFB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QU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBTY0lTZW8gfSBmcm9tICcuLi9jYXRhbG9nL2R0by9zYy1pLXNlbyc7XG5pbXBvcnQgeyBTY0lEZWZhdWx0UGFnZU1ldGEgfSBmcm9tICcuLi9jb25maWcvc2MtaS1kZWZhdWx0LXBhZ2UtbWV0YSc7XG5pbXBvcnQgeyBTY0lVcmxzIH0gZnJvbSAnLi4vY29uZmlnL3NjLWktdXJscyc7XG5pbXBvcnQgeyBTQ19DT01QQU5ZX05BTUUgfSBmcm9tICcuLi90b2tlbnMvc2MtY29tcGFueS1uYW1lJztcbmltcG9ydCB7IFNDX0RFRkFVTFRfUEFHRV9NRVRBIH0gZnJvbSAnLi4vdG9rZW5zL3NjLWRlZmF1bHQtcGFnZS1tZXRhJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBSb2JvdHNUYWdUeXBlIH0gZnJvbSAnLi90eXBlcy9yb2JvdHMtdGFnLXR5cGUnO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyBTRU8t0L/QsNGA0LDQvNC10YLRgNCw0LzQuC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NTZW9TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDRg9GB0YLQsNC90L7QstC60LggbWV0YS3RgtC10LPQvtCyINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlzU2V0TWV0YVRhZ3NFdmVudEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQviDQvNC10YLQsC3QtNCw0L3QvdGL0YUg0YHRgtGA0LDQvdC40YbRiyDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTZW86IFNjSURlZmF1bHRQYWdlTWV0YSA9IGluamVjdChTQ19ERUZBVUxUX1BBR0VfTUVUQSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LzQsNGA0YjRgNGD0YLQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0YPRgdGC0LDQvdC+0LLQutC4INC80LXRgtCw0LTQsNC90L3Ri9GFINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXRhU2VydmljZTogTWV0YSA9IGluamVjdChNZXRhKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyDQt9Cw0LPQvtC70L7QstC60L7QvCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGl0bGVTZXJ2aWNlOiBUaXRsZSA9IGluamVjdChUaXRsZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10LvQtdC60YLQvtGAINCz0YDRg9C/0L/RiyDQtNC70Y8g0YPRgdGC0LDQvdCw0LLQu9C40LLQsNC10LzRi9GFINC80LXRgtCw0YLQtdCz0L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFHcm91cFNlbGVjdG9yOiBzdHJpbmcgPSAnc2VvLXRhZ3MnO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGK0LXQutGCIHtAbGluayBEb2N1bWVudH0sINC/0YDQtdC00L7RgdGC0LDQstC70Y/RjtGJ0LjQuSDQtNC+0YHRgtGD0L8g0LogRE9NINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgLyoqXG4gICAgICog0J3QsNC30LLQsNC90LjQtSDQutC+0LzQv9Cw0L3QuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcGFueU5hbWU6IHN0cmluZyA9IGluamVjdChTQ19DT01QQU5ZX05BTUUpO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1Nlb1NlcnZpY2V9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZXRTaGFyZVR5cGUoJ3dlYnNpdGUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdGC0LXQs9C4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDQntC/0LjRgdCw0L3QuNC1INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGtleXdvcmRzINCa0LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBlbWl0RXZlbnRBZnRlclNldCDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0L3QtdC+0LHRhdC+0LTQuNC80L4g0LvQuCDQs9C10L3QtdGA0LjRgNC+0LLQsNGC0Ywg0YHQvtCx0YvRgtC40LUsINC/0L7RgdC70LUg0YPRgdGC0LDQvdC+0LLQutC4INGC0LXQs9C+0LIuINCf0L4g0YPQvNC+0LvRh9Cw0L3QuNGOIHtAbGluayB0cnVlfS5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UGFnZU1ldGFUYWdzKFxuICAgICAgICB0aXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLFxuICAgICAgICBrZXl3b3Jkczogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmtleXdvcmRzLFxuICAgICAgICBlbWl0RXZlbnRBZnRlclNldDogYm9vbGVhbiA9IHRydWUsXG4gICAgICAgIHJvYm90czogUm9ib3RzVGFnVHlwZVtdID0gWydpbmRleCcsICdmb2xsb3cnXVxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSh0aXRsZSk7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFEZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFLZXl3b3JkcyhrZXl3b3Jkcyk7XG5cbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YVJvYm90cyhyb2JvdHMpO1xuXG4gICAgICAgIGlmIChlbWl0RXZlbnRBZnRlclNldCkge1xuICAgICAgICAgICAgdGhpcy5pc1NldE1ldGFUYWdzRXZlbnRFbWl0dGVyLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIE9wZW4gR3JhcGggbWV0YS3RgtC10LPQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBvZ1RpdGxlIE9wZW4gR3JhcGgg0LfQsNCz0L7Qu9C+0LLQvtC6LlxuICAgICAqIEBwYXJhbSBvZ0Rlc2NyaXB0aW9uIE9wZW4gR3JhcGgg0L7Qv9C40YHQsNC90LjQtS5cbiAgICAgKiBAcGFyYW0gb2dJbWcgT3BlbiBHcmFwaCDQuNC30L7QsdGA0LDQttC10L3QuNC1LlxuICAgICAqIEBwYXJhbSBlbWl0RXZlbnRBZnRlclNldCDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0L3QtdC+0LHRhdC+0LTQuNC80L4g0LvQuCDQs9C10L3QtdGA0LjRgNC+0LLQsNGC0Ywg0YHQvtCx0YvRgtC40LUsINC/0L7RgdC70LUg0YPRgdGC0LDQvdC+0LLQutC4INGC0LXQs9C+0LIuINCf0L4g0YPQvNC+0LvRh9Cw0L3QuNGOIHtAbGluayB0cnVlfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UGFnZU9wZW5HcmFwaE1ldGFUYWdzKFxuICAgICAgICBvZ1RpdGxlOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8udGl0bGUsXG4gICAgICAgIG9nRGVzY3JpcHRpb246IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAgb2dJbWc6IHN0cmluZyA9IHRoaXMudXJscy5sb2dvVXJsLFxuICAgICAgICBlbWl0RXZlbnRBZnRlclNldDogYm9vbGVhbiA9IHRydWVcbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuR3JhcGhNZXRhVGFncyhvZ1RpdGxlLCBvZ0Rlc2NyaXB0aW9uLCBgJHt0aGlzLnVybHMuc2l0ZVVybH0ke3RoaXMucm91dGVyLnVybH1gLCBvZ0ltZyk7XG5cbiAgICAgICAgaWYgKGVtaXRFdmVudEFmdGVyU2V0KSB7XG4gICAgICAgICAgICB0aGlzLmlzU2V0TWV0YVRhZ3NFdmVudEVtaXR0ZXIuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLRgdC1IG1ldGEt0YLQtdCz0Lgg0LjQtyDQv9GA0LjRiNC10LTRiNC10LPQviDQuNGB0YLQvtGH0L3QuNC60LAuINCV0YHQu9C4INC60LDQutC+0LPQvi3RgtC+INGC0LXQs9CwINC90LXRgiwg0LHRg9C00LXRgiDRg9GB0YLQsNC90L7QstC70LXQvdC+INC30L3QsNGH0LXQvdC40LUg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcmVzb3VyY2Ug0JjRgdGC0L7Rh9C90LjQuiBtZXRhIC0g0YLQtdCz0L7Qsi5cbiAgICAgKiBAcGFyYW0gaW1nINCY0LfQvtCx0YDQsNC20LXQvdC40LUuINCV0YHQu9C4INC90LUg0L/RgNC40YjQu9C+LCDRgtC+INCx0YPQtNC10YIg0YPRgdGC0LDQvdC+0LLQu9C10L3QviDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRNZXRhVGFnc0Zyb21SZXNvdXJjZShyZXNvdXJjZT86IFNjSVNlbywgaW1nOiBzdHJpbmcgPSB0aGlzLnVybHMubG9nb1VybCwgcm9ib3RzOiBSb2JvdHNUYWdUeXBlW10gPSBbJ2luZGV4JywgJ2ZvbGxvdyddKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0QWxsUGFnZU1ldGFUYWdzKHJlc291cmNlPy50aXRsZSwgcmVzb3VyY2U/LmRlc2NyaXB0aW9uLCByZXNvdXJjZT8ua2V5d29yZHMsIGltZywgcmVzb3VyY2U/Lm1ldGEsIHJvYm90cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLRgdC1IG1ldGEt0YLQtdCz0Lgg0YHRgtGA0LDQvdC40YbRiyDRgdC+INC30L3QsNGH0LXQvdC40LXQvCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiwg0LLQvdC10LTRgNGP0Y8g0YLRg9C00LAg0LfQsNCz0L7Qu9C+0LLQvtC6LCDQtdGB0LvQuCDQvtC9INC/0LXRgNC10LTQsNC9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXREZWZhdWx0QWxsUGFnZU1ldGFUYWdzKHRpdGxlOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8udGl0bGUsIHJvYm90czogUm9ib3RzVGFnVHlwZVtdID0gWydpbmRleCcsICdmb2xsb3cnXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEFsbFBhZ2VNZXRhVGFncyhgJHt0aXRsZX0gLSAke3RoaXMuY29tcGFueU5hbWV9YCwgYCR7dGl0bGV9LCAke3RoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbn1gLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgW10sIHJvYm90cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LLRgdC1IG1ldGEt0YLQtdCz0Lgg0YHRgtGA0LDQvdC40YbRiyDRgdC+INC30L3QsNGH0LXQvdC40LXQvCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiwg0LLQvdC10LTRgNGP0Y8g0YLRg9C00LAg0LfQsNCz0L7Qu9C+0LLQvtC6LCDQtdGB0LvQuCDQvtC9INC/0LXRgNC10LTQsNC9LiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQt9C90LDRh9C10L3QuNC1IFwi0L3QtSDQuNC90LTQtdC60YHQuNGA0L7QstCw0YLRjFwiINC00LvRjyDQv9C+0LjRgdC60L7QstGL0YUg0YDQvtCx0L7RgtC+0LIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldE5vSW5kZXhEZWZhdWx0QWxsUGFnZU1ldGFUYWdzKHRpdGxlOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8udGl0bGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRBbGxQYWdlTWV0YVRhZ3MoYCR7dGl0bGV9IC0gJHt0aGlzLmNvbXBhbnlOYW1lfWAsIGAke3RpdGxlfSwgJHt0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb259YCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIFtdLCBbJ25vaW5kZXgnLCAnbm9mb2xsb3cnLCAnbm9hcmNoaXZlJ10pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0YHQtSBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0YsuINCV0YHQu9C4INC60LDQutC+0Lkt0LvQuNCx0L4g0LjQtyDQv9Cw0YDQsNC80LXRgtGA0L7QsiDQvdC1INGD0LrQsNC30LDQvSwg0LTQu9GPINC90LXQs9C+INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGC0YHRjyDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDQntC/0LjRgdCw0L3QuNC1INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGtleXdvcmRzINCa0LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBpbWcg0JjQt9C+0LHRgNCw0LbQtdC90LjQtS5cbiAgICAgKiBAcGFyYW0gbWV0YSDQnNCw0YHRgdC40LIg0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvRhSDQt9C90LDRh9C10L3QuNC5INC80LXRgtCw0YLQtdCz0L7Qsi5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0QWxsUGFnZU1ldGFUYWdzKFxuICAgICAgICB0aXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLFxuICAgICAgICBrZXl3b3Jkczogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmtleXdvcmRzLFxuICAgICAgICBpbWc6IHN0cmluZyA9IHRoaXMudXJscy5sb2dvVXJsLFxuICAgICAgICBtZXRhOiBTY0lTZW9bJ21ldGEnXSA9IFtdLFxuICAgICAgICByb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSA9IFsnaW5kZXgnLCAnZm9sbG93J11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVNZXRhVGFncygpO1xuICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZSh0aXRsZSk7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFEZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFLZXl3b3JkcyhrZXl3b3Jkcyk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YVRhZ3ModGl0bGUsIGRlc2NyaXB0aW9uLCBgJHt0aGlzLnVybHMuc2l0ZVVybH0ke3RoaXMucm91dGVyLnVybH1gLCBpbWcpO1xuICAgICAgICBtZXRhLmZvckVhY2goKHRhZykgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdlTWV0YUJ5TmFtZSh0YWcubmFtZSwgdGFnLmNvbnRlbnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YVJvYm90cyhyb2JvdHMpO1xuXG4gICAgICAgIHRoaXMuaXNTZXRNZXRhVGFnc0V2ZW50RW1pdHRlci5lbWl0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgbWV0YS3RgtC10LMgcm9ib3RzINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzINGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldFBhZ2VNZXRhUm9ib3RzKHJvYm90czogUm9ib3RzVGFnVHlwZVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFCeU5hbWUoJ3JvYm90cycsIHJvYm90cy5qb2luKCcsICcpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDQstGB0LUg0YPRgdGC0LDQvdC+0LLQu9C10L3QvdGL0LUgbWV0YS3RgtC10LPQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlTWV0YVRhZ3MoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTE1ldGFFbGVtZW50PihgbWV0YVtkYXRhLWdyb3VwPVwiJHt0aGlzLmRhdGFHcm91cFNlbGVjdG9yfVwiXWApO1xuXG4gICAgICAgIHRhZ3MuZm9yRWFjaCgodGFnKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1ldGFTZXJ2aWNlLnJlbW92ZVRhZ0VsZW1lbnQodGFnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQs9C10L3QtdGA0LjRgNC+0LLQsNC90L3Ri9C5IFNFTy1yZXNvdXJjZSDRgSDRg9C60LDQt9Cw0L3QvdGL0LzQuCDQv9Cw0YDQsNC80LXRgtGA0LDQvNC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHNlbyDQlNCw0L3QvdGL0LUgU0VPINGA0LXRgdGD0YDRgdCwLlxuICAgICAqIEBwYXJhbSBkZWZhdWx0VGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0Ysg0LjRgdC/0L7Qu9GM0LfRg9C10LzRi9C5INCyINGB0LvRg9GH0LDQtSDQvtGC0YHRg9GC0YHRgtCy0LjRjyDQt9Cw0LPQvtC70L7QstC60LAg0LIgU0VPLdGA0LXRgdGD0YDRgdC1LlxuICAgICAqIEBwYXJhbSBkZWZhdWx0RGVzY3JpcHRpb24g0J7Qv9C40YHQsNC90LjQtSDRgdGC0YDQsNC90LjRhtGLINC40YHQv9C+0LvRjNC30YPQtdC80L7QtSDQsiDRgdC70YPRh9Cw0LUg0L7RgtGB0YPRgtGB0YLQstC40Y8g0L7Qv9C40YHQsNC90LjRjyDQsiBTRU8t0YDQtdGB0YPRgNGB0LUuXG4gICAgICogQHBhcmFtIGRlZmF1bHRLZXlXb3JkcyDQmtC70Y7Rh9C10LLRi9C1INGB0LvQvtCy0LAg0YHRgtGA0LDQvdC40YbRiyDQuNGB0L/QvtC70YzQt9GD0LXQvNGL0LUg0LIg0YHQu9GD0YfQsNC1INC+0YLRgdGD0YLRgdGC0LLQuNGPINC60LvRjtGH0LXQstGL0YUg0YHQu9C+0LIg0LIgU0VPLdGA0LXRgdGD0YDRgdC1LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRHZW5lcmF0ZVNlb1Jlc291cmNlKFxuICAgICAgICBzZW86IFNjSVNlbyB8IHVuZGVmaW5lZCxcbiAgICAgICAgZGVmYXVsdFRpdGxlOiBzdHJpbmcsXG4gICAgICAgIGRlZmF1bHREZXNjcmlwdGlvbjogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9uLFxuICAgICAgICBkZWZhdWx0S2V5V29yZHM6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5rZXl3b3Jkc1xuICAgICk6IFNjSVNlbyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0aXRsZTogc2VvPy50aXRsZSA/PyBkZWZhdWx0VGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc2VvPy5kZXNjcmlwdGlvbiA/PyBkZWZhdWx0RGVzY3JpcHRpb24sXG4gICAgICAgICAgICBrZXl3b3Jkczogc2VvPy5rZXl3b3JkcyA/PyBkZWZhdWx0S2V5V29yZHMsXG4gICAgICAgICAgICBtZXRhOiBzZW8/Lm1ldGEsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgdGl0bGUt0LfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGFwcGVuZERlZmF1bHRUaXRsZSDQpNC70LDQsyDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLQuCDQtNC+0LHQsNCy0LjRgtGMINC30LDQs9C+0LvQvtCy0L7QuiDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQsiDQutC+0L3QtdGGINC30LDQs9C+0LvQvtCy0LrQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0UGFnZVRpdGxlKHRpdGxlOiBzdHJpbmcsIGFwcGVuZERlZmF1bHRUaXRsZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRpdGxlICsgKGFwcGVuZERlZmF1bHRUaXRsZSA/IGAgLSAke3RoaXMuZGVmYXVsdFNlby50aXRsZX1gIDogJycpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdC+0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBNZXRhLdC+0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFBhZ2VNZXRhRGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhQnlOYW1lKCdkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdC60LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleXdvcmRzIE1ldGEt0LrQu9GO0YfQtdCy0YvQtSDRgdC70L7QstCwINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRQYWdlTWV0YUtleXdvcmRzKGtleXdvcmRzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YUJ5TmFtZSgna2V5d29yZHMnLCBrZXl3b3Jkcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgT3BlbiBHcmFwaCBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0Ysg0LTQu9GPINGB0L7RhtC40LDQu9GM0L3Ri9GFINGB0LXRgtC10LkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGRlc2NyaXB0aW9uINCe0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gdXJsINCh0YHRi9C70LrQsCDQvdCwINGB0YLRgNCw0L3QuNGG0YMuXG4gICAgICogQHBhcmFtIGltZyDQmNC30L7QsdGA0LDQttC10L3QuNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0T3BlbkdyYXBoTWV0YVRhZ3ModGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdXJsOiBzdHJpbmcsIGltZzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOnRpdGxlJywgdGl0bGUpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzp1cmwnLCB1cmwpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzppbWFnZScsIGltZyk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOmRlc2NyaXB0aW9uJywgZGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzp0eXBlJywgJ3dlYnNpdGUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdGC0LXQsyDRgdGC0YDQsNC90LjRhtGLINGBINGD0LrQsNC30LDQvdC90YvQvCDQuNC80LXQvdC10LwuXG4gICAgICog0JHRg9C00LXRgiDRgdC+0LfQtNCw0L0g0LjQu9C4INC+0LHQvdC+0LLQu9GR0L0g0LfQsNCz0L7Qu9C+0LLQvtC6INCy0LjQtNCwIGA8bWV0YSBuYW1lPVwie25hbWV9XCIgY29udGVudD1cIntjb250ZW50fVwiIC8+YFxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUg0J3QsNC30LLQsNC90LjQtSDQt9Cw0LPQvtC70L7QstC60LAuXG4gICAgICogQHBhcmFtIGNvbnRlbnQg0KHQvtC00LXRgNC20LjQvNC+0LUg0LfQsNCz0L7Qu9C+0LLQutCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0UGFnZU1ldGFCeU5hbWUobmFtZTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiBuYW1lLCBjb250ZW50OiBjb250ZW50LCAnZGF0YS1ncm91cCc6IHRoaXMuZGF0YUdyb3VwU2VsZWN0b3IgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgT3BlbiBHcmFwaCBtZXRhLdGC0LXQsyDQv9C+INGB0LLQvtC50YHRgtCy0YMg0LDRgtGA0LjQsdGD0YLQsCBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eSDQodCy0L7QudGB0YLQstC+INCw0YLRgNC40LHRg9GC0LAuXG4gICAgICogQHBhcmFtIGNvbnRlbnQg0KHQvtC00LXRgNC20LjQvNC+0LUg0YLQtdCz0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRPcGVuR3JhcGhNZXRhQnlQcm9wZXJ0eShwcm9wZXJ0eTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogcHJvcGVydHksIGNvbnRlbnQ6IGNvbnRlbnQsICdkYXRhLWdyb3VwJzogdGhpcy5kYXRhR3JvdXBTZWxlY3RvciB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBPcGVuIEdyYXBoINC80LXRgtCwLdGC0LXQsyDRgtC40L/QsCDQvtCx0YrQtdC60YLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlINCi0LjQvyDQvtCx0YrQtdC60YLQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFNoYXJlVHlwZSh0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuR3JhcGhNZXRhQnlQcm9wZXJ0eSgnb2c6dHlwZScsIHR5cGUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NlcnZpY2VzL3NjLXNlby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHNUM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQXdEckI7O09BRUc7SUFDSDtRQTFEQTs7V0FFRztRQUNhLDhCQUF5QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXpGOztXQUVHO1FBQ2MsZUFBVSxHQUF1QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUUvRTs7V0FFRztRQUNjLFdBQU0sR0FBVyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFakQ7O1dBRUc7UUFDYyxTQUFJLEdBQVksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ2MsZ0JBQVcsR0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEQ7O1dBRUc7UUFDYyxpQkFBWSxHQUFVLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyRDs7V0FFRztRQUNjLHNCQUFpQixHQUFXLFVBQVUsQ0FBQztRQUV4RDs7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L0MsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBQUMsSUFBWSxFQUFFLE9BQWU7UUFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssMEJBQTBCLENBQUMsUUFBZ0IsRUFBRSxPQUFlO1FBQ2hFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssWUFBWSxDQUFDLElBQVk7UUFDN0IsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDOytHQW5UUSxZQUFZO21IQUFaLFlBQVksY0FGVCxNQUFNOzs0RkFFVCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBTY0lTZW8gfSBmcm9tICcuLi9jYXRhbG9nL2R0by9zYy1pLXNlbyc7XG5pbXBvcnQgeyBTY0lEZWZhdWx0UGFnZU1ldGEgfSBmcm9tICcuLi9jb25maWcvc2MtaS1kZWZhdWx0LXBhZ2UtbWV0YSc7XG5pbXBvcnQgeyBTY0lVcmxzIH0gZnJvbSAnLi4vY29uZmlnL3NjLWktdXJscyc7XG5pbXBvcnQgeyBTQ19DT01QQU5ZX05BTUUgfSBmcm9tICcuLi90b2tlbnMvc2MtY29tcGFueS1uYW1lJztcbmltcG9ydCB7IFNDX0RFRkFVTFRfUEFHRV9NRVRBIH0gZnJvbSAnLi4vdG9rZW5zL3NjLWRlZmF1bHQtcGFnZS1tZXRhJztcbmltcG9ydCB7IFNDX1VSTFMgfSBmcm9tICcuLi90b2tlbnMvc2MtdXJscyc7XG5pbXBvcnQgeyBSb2JvdHNUYWdUeXBlIH0gZnJvbSAnLi90eXBlcy9yb2JvdHMtdGFnLXR5cGUnO1xuXG4vKipcbiAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyBTRU8t0L/QsNGA0LDQvNC10YLRgNCw0LzQuC5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NTZW9TZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDRg9GB0YLQsNC90L7QstC60LggbWV0YS3RgtC10LPQvtCyINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlzU2V0TWV0YVRhZ3NFdmVudEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCU0LDQvdC90YvQtSDQviDQvNC10YLQsC3QtNCw0L3QvdGL0YUg0YHRgtGA0LDQvdC40YbRiyDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTZW86IFNjSURlZmF1bHRQYWdlTWV0YSA9IGluamVjdChTQ19ERUZBVUxUX1BBR0VfTUVUQSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LzQsNGA0YjRgNGD0YLQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gICAgLyoqXG4gICAgICog0KHQv9C40YHQvtC6INGB0YHRi9C70L7QuiDQv9GA0LjQu9C+0LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHVybHM6IFNjSVVybHMgPSBpbmplY3QoU0NfVVJMUyk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0YPRgdGC0LDQvdC+0LLQutC4INC80LXRgtCw0LTQsNC90L3Ri9GFINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXRhU2VydmljZTogTWV0YSA9IGluamVjdChNZXRhKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDRg9C/0YDQsNCy0LvQtdC90LjRjyDQt9Cw0LPQvtC70L7QstC60L7QvCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGl0bGVTZXJ2aWNlOiBUaXRsZSA9IGluamVjdChUaXRsZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10LvQtdC60YLQvtGAINCz0YDRg9C/0L/RiyDQtNC70Y8g0YPRgdGC0LDQvdCw0LLQu9C40LLQsNC10LzRi9GFINC80LXRgtCw0YLQtdCz0L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFHcm91cFNlbGVjdG9yOiBzdHJpbmcgPSAnc2VvLXRhZ3MnO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGK0LXQutGCIHtAbGluayBEb2N1bWVudH0sINC/0YDQtdC00L7RgdGC0LDQstC70Y/RjtGJ0LjQuSDQtNC+0YHRgtGD0L8g0LogRE9NINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgLyoqXG4gICAgICog0KTQsNCx0YDQuNC60LAg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0Y3QutC30LXQvNC/0LvRj9GA0L7QsiB7QGxpbmsgUmVuZGVyZXIyfS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MiA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKTtcblxuICAgIC8qKlxuICAgICAqINCt0LrQt9C10LzQv9C70Y/RgCB7QGxpbmsgUmVuZGVyZXIyfSDQtNC70Y8g0LHQtdC30L7Qv9Cw0YHQvdC+0Lkg0YDQsNCx0L7RgtGLINGBIERPTS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIgPSB0aGlzLnJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcblxuICAgIC8qKlxuICAgICAqINCd0LDQt9Cy0LDQvdC40LUg0LrQvtC80L/QsNC90LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbXBhbnlOYW1lOiBzdHJpbmcgPSBpbmplY3QoU0NfQ09NUEFOWV9OQU1FKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NTZW9TZXJ2aWNlfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc2V0U2hhcmVUeXBlKCd3ZWJzaXRlJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgbWV0YS3RgtC10LPQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSDQl9Cw0LPQvtC70L7QstC+0Log0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24g0J7Qv9C40YHQsNC90LjQtSDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBrZXl3b3JkcyDQmtC70Y7Rh9C10LLRi9C1INGB0LvQvtCy0LAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gZW1pdEV2ZW50QWZ0ZXJTZXQg0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINC90LXQvtCx0YXQvtC00LjQvNC+INC70Lgg0LPQtdC90LXRgNC40YDQvtCy0LDRgtGMINGB0L7QsdGL0YLQuNC1LCDQv9C+0YHQu9C1INGD0YHRgtCw0L3QvtCy0LrQuCDRgtC10LPQvtCyLiDQn9C+INGD0LzQvtC70YfQsNC90LjRjiB7QGxpbmsgdHJ1ZX0uXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzINGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldFBhZ2VNZXRhVGFncyhcbiAgICAgICAgdGl0bGU6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby50aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAga2V5d29yZHM6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5rZXl3b3JkcyxcbiAgICAgICAgZW1pdEV2ZW50QWZ0ZXJTZXQ6IGJvb2xlYW4gPSB0cnVlLFxuICAgICAgICByb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSA9IFsnaW5kZXgnLCAnZm9sbG93J11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQYWdlVGl0bGUodGl0bGUpO1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhS2V5d29yZHMoa2V5d29yZHMpO1xuXG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFSb2JvdHMocm9ib3RzKTtcblxuICAgICAgICBpZiAoZW1pdEV2ZW50QWZ0ZXJTZXQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZXRNZXRhVGFnc0V2ZW50RW1pdHRlci5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBPcGVuIEdyYXBoIG1ldGEt0YLQtdCz0LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2dUaXRsZSBPcGVuIEdyYXBoINC30LDQs9C+0LvQvtCy0L7Qui5cbiAgICAgKiBAcGFyYW0gb2dEZXNjcmlwdGlvbiBPcGVuIEdyYXBoINC+0L/QuNGB0LDQvdC40LUuXG4gICAgICogQHBhcmFtIG9nSW1nIE9wZW4gR3JhcGgg0LjQt9C+0LHRgNCw0LbQtdC90LjQtS5cbiAgICAgKiBAcGFyYW0gZW1pdEV2ZW50QWZ0ZXJTZXQg0J/RgNC40LfQvdCw0Log0YLQvtCz0L4sINC90LXQvtCx0YXQvtC00LjQvNC+INC70Lgg0LPQtdC90LXRgNC40YDQvtCy0LDRgtGMINGB0L7QsdGL0YLQuNC1LCDQv9C+0YHQu9C1INGD0YHRgtCw0L3QvtCy0LrQuCDRgtC10LPQvtCyLiDQn9C+INGD0LzQvtC70YfQsNC90LjRjiB7QGxpbmsgdHJ1ZX0uXG4gICAgICovXG4gICAgcHVibGljIHNldFBhZ2VPcGVuR3JhcGhNZXRhVGFncyhcbiAgICAgICAgb2dUaXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLFxuICAgICAgICBvZ0Rlc2NyaXB0aW9uOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb24sXG4gICAgICAgIG9nSW1nOiBzdHJpbmcgPSB0aGlzLnVybHMubG9nb1VybCxcbiAgICAgICAgZW1pdEV2ZW50QWZ0ZXJTZXQ6IGJvb2xlYW4gPSB0cnVlXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YVRhZ3Mob2dUaXRsZSwgb2dEZXNjcmlwdGlvbiwgYCR7dGhpcy51cmxzLnNpdGVVcmx9JHt0aGlzLnJvdXRlci51cmx9YCwgb2dJbWcpO1xuXG4gICAgICAgIGlmIChlbWl0RXZlbnRBZnRlclNldCkge1xuICAgICAgICAgICAgdGhpcy5pc1NldE1ldGFUYWdzRXZlbnRFbWl0dGVyLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0YHQtSBtZXRhLdGC0LXQs9C4INC40Lcg0L/RgNC40YjQtdC00YjQtdCz0L4g0LjRgdGC0L7Rh9C90LjQutCwLiDQldGB0LvQuCDQutCw0LrQvtCz0L4t0YLQviDRgtC10LPQsCDQvdC10YIsINCx0YPQtNC10YIg0YPRgdGC0LDQvdC+0LLQu9C10L3QviDQt9C90LDRh9C10L3QuNC1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHJlc291cmNlINCY0YHRgtC+0YfQvdC40LogbWV0YSAtINGC0LXQs9C+0LIuXG4gICAgICogQHBhcmFtIGltZyDQmNC30L7QsdGA0LDQttC10L3QuNC1LiDQldGB0LvQuCDQvdC1INC/0YDQuNGI0LvQviwg0YLQviDQsdGD0LTQtdGCINGD0YHRgtCw0L3QvtCy0LvQtdC90L4g0LfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0TWV0YVRhZ3NGcm9tUmVzb3VyY2UocmVzb3VyY2U/OiBTY0lTZW8sIGltZzogc3RyaW5nID0gdGhpcy51cmxzLmxvZ29VcmwsIHJvYm90czogUm9ib3RzVGFnVHlwZVtdID0gWydpbmRleCcsICdmb2xsb3cnXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldEFsbFBhZ2VNZXRhVGFncyhyZXNvdXJjZT8udGl0bGUsIHJlc291cmNlPy5kZXNjcmlwdGlvbiwgcmVzb3VyY2U/LmtleXdvcmRzLCBpbWcsIHJlc291cmNlPy5tZXRhLCByb2JvdHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0YHQtSBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0Ysg0YHQviDQt9C90LDRh9C10L3QuNC10Lwg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINCy0L3QtdC00YDRj9GPINGC0YPQtNCwINC30LDQs9C+0LvQvtCy0L7Quiwg0LXRgdC70Lgg0L7QvSDQv9C10YDQtdC00LDQvS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSDQl9Cw0LPQvtC70L7QstC+0Log0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gcm9ib3RzINCh0L/QuNGB0L7QuiByb2JvdHMg0YLQtdCz0L7QsiDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0RGVmYXVsdEFsbFBhZ2VNZXRhVGFncyh0aXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlLCByb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSA9IFsnaW5kZXgnLCAnZm9sbG93J10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRBbGxQYWdlTWV0YVRhZ3MoYCR7dGl0bGV9IC0gJHt0aGlzLmNvbXBhbnlOYW1lfWAsIGAke3RpdGxlfSwgJHt0aGlzLmRlZmF1bHRTZW8uZGVzY3JpcHRpb259YCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIFtdLCByb2JvdHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINCy0YHQtSBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0Ysg0YHQviDQt9C90LDRh9C10L3QuNC10Lwg0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4sINCy0L3QtdC00YDRj9GPINGC0YPQtNCwINC30LDQs9C+0LvQvtCy0L7Quiwg0LXRgdC70Lgg0L7QvSDQv9C10YDQtdC00LDQvS4g0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0LfQvdCw0YfQtdC90LjQtSBcItC90LUg0LjQvdC00LXQutGB0LjRgNC+0LLQsNGC0YxcIiDQtNC70Y8g0L/QvtC40YHQutC+0LLRi9GFINGA0L7QsdC+0YLQvtCyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXROb0luZGV4RGVmYXVsdEFsbFBhZ2VNZXRhVGFncyh0aXRsZTogc3RyaW5nID0gdGhpcy5kZWZhdWx0U2VvLnRpdGxlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0QWxsUGFnZU1ldGFUYWdzKGAke3RpdGxlfSAtICR7dGhpcy5jb21wYW55TmFtZX1gLCBgJHt0aXRsZX0sICR7dGhpcy5kZWZhdWx0U2VvLmRlc2NyaXB0aW9ufWAsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBbXSwgWydub2luZGV4JywgJ25vZm9sbG93JywgJ25vYXJjaGl2ZSddKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQstGB0LUgbWV0YS3RgtC10LPQuCDRgdGC0YDQsNC90LjRhtGLLiDQldGB0LvQuCDQutCw0LrQvtC5LdC70LjQsdC+INC40Lcg0L/QsNGA0LDQvNC10YLRgNC+0LIg0L3QtSDRg9C60LDQt9Cw0L0sINC00LvRjyDQvdC10LPQviDRg9GB0YLQsNC90LDQstC70LjQstCw0LXRgtGB0Y8g0LfQvdCw0YfQtdC90LjQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aXRsZSDQl9Cw0LPQvtC70L7QstC+0Log0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gZGVzY3JpcHRpb24g0J7Qv9C40YHQsNC90LjQtSDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqIEBwYXJhbSBrZXl3b3JkcyDQmtC70Y7Rh9C10LLRi9C1INGB0LvQvtCy0LAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gaW1nINCY0LfQvtCx0YDQsNC20LXQvdC40LUuXG4gICAgICogQHBhcmFtIG1ldGEg0JzQsNGB0YHQuNCyINC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0YUg0LfQvdCw0YfQtdC90LjQuSDQvNC10YLQsNGC0LXQs9C+0LIuXG4gICAgICogQHBhcmFtIHJvYm90cyDQodC/0LjRgdC+0Logcm9ib3RzINGC0LXQs9C+0LIg0LTQu9GPINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHNldEFsbFBhZ2VNZXRhVGFncyhcbiAgICAgICAgdGl0bGU6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby50aXRsZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAga2V5d29yZHM6IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5rZXl3b3JkcyxcbiAgICAgICAgaW1nOiBzdHJpbmcgPSB0aGlzLnVybHMubG9nb1VybCxcbiAgICAgICAgbWV0YTogU2NJU2VvWydtZXRhJ10gPSBbXSxcbiAgICAgICAgcm9ib3RzOiBSb2JvdHNUYWdUeXBlW10gPSBbJ2luZGV4JywgJ2ZvbGxvdyddXG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVtb3ZlTWV0YVRhZ3MoKTtcbiAgICAgICAgdGhpcy5zZXRQYWdlVGl0bGUodGl0bGUpO1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhS2V5d29yZHMoa2V5d29yZHMpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFUYWdzKHRpdGxlLCBkZXNjcmlwdGlvbiwgYCR7dGhpcy51cmxzLnNpdGVVcmx9JHt0aGlzLnJvdXRlci51cmx9YCwgaW1nKTtcbiAgICAgICAgbWV0YS5mb3JFYWNoKCh0YWcpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnZU1ldGFCeU5hbWUodGFnLm5hbWUsIHRhZy5jb250ZW50KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc2V0UGFnZU1ldGFSb2JvdHMocm9ib3RzKTtcblxuICAgICAgICB0aGlzLmlzU2V0TWV0YVRhZ3NFdmVudEVtaXR0ZXIuZW1pdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCIG1ldGEt0YLQtdCzIHJvYm90cyDQtNC70Y8g0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSByb2JvdHMg0KHQv9C40YHQvtC6IHJvYm90cyDRgtC10LPQvtCyINC00LvRjyDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRQYWdlTWV0YVJvYm90cyhyb2JvdHM6IFJvYm90c1RhZ1R5cGVbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhQnlOYW1lKCdyb2JvdHMnLCByb2JvdHMuam9pbignLCAnKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LLRgdC1INGD0YHRgtCw0L3QvtCy0LvQtdC90L3Ri9C1IG1ldGEt0YLQtdCz0LguXG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZU1ldGFUYWdzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWdzID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxNZXRhRWxlbWVudD4oYG1ldGFbZGF0YS1ncm91cD1cIiR7dGhpcy5kYXRhR3JvdXBTZWxlY3Rvcn1cIl1gKTtcblxuICAgICAgICB0YWdzLmZvckVhY2goKHRhZykgPT4ge1xuICAgICAgICAgICAgdGhpcy5tZXRhU2VydmljZS5yZW1vdmVUYWdFbGVtZW50KHRhZyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0LPQtdC90LXRgNC40YDQvtCy0LDQvdC90YvQuSBTRU8tcmVzb3VyY2Ug0YEg0YPQutCw0LfQsNC90L3Ri9C80Lgg0L/QsNGA0LDQvNC10YLRgNCw0LzQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzZW8g0JTQsNC90L3Ri9C1IFNFTyDRgNC10YHRg9GA0YHQsC5cbiAgICAgKiBAcGFyYW0gZGVmYXVsdFRpdGxlINCX0LDQs9C+0LvQvtCy0L7QuiDRgdGC0YDQsNC90LjRhtGLINC40YHQv9C+0LvRjNC30YPQtdC80YvQuSDQsiDRgdC70YPRh9Cw0LUg0L7RgtGB0YPRgtGB0YLQstC40Y8g0LfQsNCz0L7Qu9C+0LLQutCwINCyIFNFTy3RgNC10YHRg9GA0YHQtS5cbiAgICAgKiBAcGFyYW0gZGVmYXVsdERlc2NyaXB0aW9uINCe0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiyDQuNGB0L/QvtC70YzQt9GD0LXQvNC+0LUg0LIg0YHQu9GD0YfQsNC1INC+0YLRgdGD0YLRgdGC0LLQuNGPINC+0L/QuNGB0LDQvdC40Y8g0LIgU0VPLdGA0LXRgdGD0YDRgdC1LlxuICAgICAqIEBwYXJhbSBkZWZhdWx0S2V5V29yZHMg0JrQu9GO0YfQtdCy0YvQtSDRgdC70L7QstCwINGB0YLRgNCw0L3QuNGG0Ysg0LjRgdC/0L7Qu9GM0LfRg9C10LzRi9C1INCyINGB0LvRg9GH0LDQtSDQvtGC0YHRg9GC0YHRgtCy0LjRjyDQutC70Y7Rh9C10LLRi9GFINGB0LvQvtCyINCyIFNFTy3RgNC10YHRg9GA0YHQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0R2VuZXJhdGVTZW9SZXNvdXJjZShcbiAgICAgICAgc2VvOiBTY0lTZW8gfCB1bmRlZmluZWQsXG4gICAgICAgIGRlZmF1bHRUaXRsZTogc3RyaW5nLFxuICAgICAgICBkZWZhdWx0RGVzY3JpcHRpb246IHN0cmluZyA9IHRoaXMuZGVmYXVsdFNlby5kZXNjcmlwdGlvbixcbiAgICAgICAgZGVmYXVsdEtleVdvcmRzOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRTZW8ua2V5d29yZHNcbiAgICApOiBTY0lTZW8ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGl0bGU6IHNlbz8udGl0bGUgPz8gZGVmYXVsdFRpdGxlLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHNlbz8uZGVzY3JpcHRpb24gPz8gZGVmYXVsdERlc2NyaXB0aW9uLFxuICAgICAgICAgICAga2V5d29yZHM6IHNlbz8ua2V5d29yZHMgPz8gZGVmYXVsdEtleVdvcmRzLFxuICAgICAgICAgICAgbWV0YTogc2VvPy5tZXRhLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGC0LXQsyDQutCw0L3QvtC90LjRh9C10YHQutC+0Lkg0YHRgtGA0LDQvdC40YbRiyA8bGluayByZWw9XCJjYW5vbmljYWxcIiBocmVmPVwiLi4uXCIgLz4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdXJsIFVSTCDQutC+0YLQvtGA0YvQuSDQvdC10L7QsdGF0L7QtNC40LzQviDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LIg0LrQsNGH0LXRgdGC0LLQtSDRgdGB0YvQu9C60LguXG4gICAgICovXG4gICAgcHVibGljIHNldENhbm9uaWNhbExpbmsodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8g0KPQtNCw0LvRj9C10Lwg0YHRg9GJ0LXRgdGC0LLRg9GO0YnQuNC5IGxpbmsgY2Fub25pY2FsLlxuICAgICAgICBjb25zdCBleGlzdGluZ0xpbmsgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2xpbmtbcmVsPVwiY2Fub25pY2FsXCJdJyk7XG5cbiAgICAgICAgaWYgKGV4aXN0aW5nTGluaz8ucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZChleGlzdGluZ0xpbmsucGFyZW50Tm9kZSwgZXhpc3RpbmdMaW5rKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vINCh0L7Qt9C00LDRkdC8INC4INGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdC8INC90L7QstGL0Lkg0YLQtdCzLlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgIGNvbnN0IGxpbmsgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUobGluaywgJ3JlbCcsICdjYW5vbmljYWwnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUobGluaywgJ2hyZWYnLCB1cmwpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuaGVhZCwgbGluayk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgdGl0bGUt0LfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGFwcGVuZERlZmF1bHRUaXRsZSDQpNC70LDQsyDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLQuCDQtNC+0LHQsNCy0LjRgtGMINC30LDQs9C+0LvQvtCy0L7QuiDQv9C+INGD0LzQvtC70YfQsNC90LjRjiDQsiDQutC+0L3QtdGGINC30LDQs9C+0LvQvtCy0LrQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0UGFnZVRpdGxlKHRpdGxlOiBzdHJpbmcsIGFwcGVuZERlZmF1bHRUaXRsZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRpdGxlICsgKGFwcGVuZERlZmF1bHRUaXRsZSA/IGAgLSAke3RoaXMuZGVmYXVsdFNlby50aXRsZX1gIDogJycpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdC+0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBNZXRhLdC+0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFBhZ2VNZXRhRGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFBhZ2VNZXRhQnlOYW1lKCdkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdC60LvRjtGH0LXQstGL0LUg0YHQu9C+0LLQsCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqXG4gICAgICogQHBhcmFtIGtleXdvcmRzIE1ldGEt0LrQu9GO0YfQtdCy0YvQtSDRgdC70L7QstCwINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRQYWdlTWV0YUtleXdvcmRzKGtleXdvcmRzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRQYWdlTWV0YUJ5TmFtZSgna2V5d29yZHMnLCBrZXl3b3Jkcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgT3BlbiBHcmFwaCBtZXRhLdGC0LXQs9C4INGB0YLRgNCw0L3QuNGG0Ysg0LTQu9GPINGB0L7RhtC40LDQu9GM0L3Ri9GFINGB0LXRgtC10LkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdGl0bGUg0JfQsNCz0L7Qu9C+0LLQvtC6INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICogQHBhcmFtIGRlc2NyaXB0aW9uINCe0L/QuNGB0LDQvdC40LUg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKiBAcGFyYW0gdXJsINCh0YHRi9C70LrQsCDQvdCwINGB0YLRgNCw0L3QuNGG0YMuXG4gICAgICogQHBhcmFtIGltZyDQmNC30L7QsdGA0LDQttC10L3QuNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0T3BlbkdyYXBoTWV0YVRhZ3ModGl0bGU6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgdXJsOiBzdHJpbmcsIGltZzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOnRpdGxlJywgdGl0bGUpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzp1cmwnLCB1cmwpO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzppbWFnZScsIGltZyk7XG4gICAgICAgIHRoaXMuc2V0T3BlbkdyYXBoTWV0YUJ5UHJvcGVydHkoJ29nOmRlc2NyaXB0aW9uJywgZGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLnNldE9wZW5HcmFwaE1ldGFCeVByb3BlcnR5KCdvZzp0eXBlJywgJ3dlYnNpdGUnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBtZXRhLdGC0LXQsyDRgdGC0YDQsNC90LjRhtGLINGBINGD0LrQsNC30LDQvdC90YvQvCDQuNC80LXQvdC10LwuXG4gICAgICog0JHRg9C00LXRgiDRgdC+0LfQtNCw0L0g0LjQu9C4INC+0LHQvdC+0LLQu9GR0L0g0LfQsNCz0L7Qu9C+0LLQvtC6INCy0LjQtNCwIGA8bWV0YSBuYW1lPVwie25hbWV9XCIgY29udGVudD1cIntjb250ZW50fVwiIC8+YFxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUg0J3QsNC30LLQsNC90LjQtSDQt9Cw0LPQvtC70L7QstC60LAuXG4gICAgICogQHBhcmFtIGNvbnRlbnQg0KHQvtC00LXRgNC20LjQvNC+0LUg0LfQsNCz0L7Qu9C+0LLQutCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgc2V0UGFnZU1ldGFCeU5hbWUobmFtZTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBuYW1lOiBuYW1lLCBjb250ZW50OiBjb250ZW50LCAnZGF0YS1ncm91cCc6IHRoaXMuZGF0YUdyb3VwU2VsZWN0b3IgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIgT3BlbiBHcmFwaCBtZXRhLdGC0LXQsyDQv9C+INGB0LLQvtC50YHRgtCy0YMg0LDRgtGA0LjQsdGD0YLQsCBwcm9wZXJ0eS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0eSDQodCy0L7QudGB0YLQstC+INCw0YLRgNC40LHRg9GC0LAuXG4gICAgICogQHBhcmFtIGNvbnRlbnQg0KHQvtC00LXRgNC20LjQvNC+0LUg0YLQtdCz0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRPcGVuR3JhcGhNZXRhQnlQcm9wZXJ0eShwcm9wZXJ0eTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhU2VydmljZS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogcHJvcGVydHksIGNvbnRlbnQ6IGNvbnRlbnQsICdkYXRhLWdyb3VwJzogdGhpcy5kYXRhR3JvdXBTZWxlY3RvciB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiBPcGVuIEdyYXBoINC80LXRgtCwLdGC0LXQsyDRgtC40L/QsCDQvtCx0YrQtdC60YLQsC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0eXBlINCi0LjQvyDQvtCx0YrQtdC60YLQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldFNoYXJlVHlwZSh0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRPcGVuR3JhcGhNZXRhQnlQcm9wZXJ0eSgnb2c6dHlwZScsIHR5cGUpO1xuICAgIH1cbn1cbiJdfQ==
|