@snabcentr/client-core 3.13.0 → 3.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@ 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
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';
6
+ import { SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCTS_PAGINATION_LOADER, } 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
  /**
@@ -34,6 +34,15 @@ export class ScPaginationService {
34
34
  * Сервис работы с каталогом.
35
35
  */
36
36
  this.catalogService = inject(ScCatalogService);
37
+ /**
38
+ * Загрузчик страницы товаров. По умолчанию — обычный список товаров ({@link ScCatalogService.getProducts$});
39
+ * может быть переопределён через токен {@link SC_PRODUCTS_PAGINATION_LOADER} (например, для страницы новых товаров).
40
+ *
41
+ * @param params Параметры запроса страницы товаров с пагинацией.
42
+ */
43
+ this.productsLoader = inject(SC_PRODUCTS_PAGINATION_LOADER, { optional: true }) ??
44
+ // eslint-disable-next-line unicorn/consistent-function-scoping
45
+ ((params) => this.catalogService.getProducts$(params));
37
46
  /**
38
47
  * Объект данных пагинации.
39
48
  */
@@ -41,9 +50,7 @@ export class ScPaginationService {
41
50
  // Избегаем множественных сигналов при одновременном изменении фильтров page$ и others$.
42
51
  debounceTime(0),
43
52
  // eslint-disable-next-line @typescript-eslint/no-unsafe-return
44
- map((page) => ({ ...params, ...page })),
45
- // TODO: Заменить this.catalogService.getProducts$ на абстрактный метод сервиса по примеру `TuiTreeLoader`.
46
- switchMap((paginationParams) => this.authStatus$.pipe(switchMap(() => this.catalogService.getProducts$(paginationParams).pipe(startWith(null))))))), share());
53
+ map((page) => ({ ...params, ...page })), switchMap((paginationParams) => this.authStatus$.pipe(switchMap(() => this.productsLoader(paginationParams).pipe(startWith(null))))))), share());
47
54
  /**
48
55
  * Объект данных пагинации с сохранением предыдущих значений для "разворачивания" списка товаров.
49
56
  * Список сохраняется при переходе по страницам, до тех пор пока не будет получен сигнал `others$`.
@@ -53,9 +60,7 @@ export class ScPaginationService {
53
60
  // «пинает» ещё живую предыдущую подписку — debounceTime(0) схлопывает такой всплеск до одной эмиссии.
54
61
  debounceTime(0),
55
62
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
56
- map((page) => ({ ...params, ...page })),
57
- // TODO: Заменить this.catalogService.getProducts$ на абстрактный метод сервиса по примеру `TuiTreeLoader`.
58
- concatMap((paginationParams) => this.catalogService.getProducts$(paginationParams).pipe(startWith(null))),
63
+ map((page) => ({ ...params, ...page })), concatMap((paginationParams) => this.productsLoader(paginationParams).pipe(startWith(null))),
59
64
  // TODO: Заменить `ScProduct` на T тип.
60
65
  scan(
61
66
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -157,4 +162,4 @@ export class ScPaginationService {
157
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScPaginationService, decorators: [{
158
163
  type: Injectable
159
164
  }], ctorParameters: () => [] });
160
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9wYWdpbmF0aW9uL3NlcnZpY2VzL3NjLXBhZ2luYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFJbkU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBb0Y1Qjs7T0FFRztJQUNIO1FBdEZBOztXQUVHO1FBQ2MsVUFBSyxHQUF5QyxJQUFJLGVBQWUsQ0FBc0IscUNBQXFDLENBQUMsQ0FBQztRQUUvSTs7V0FFRztRQUNjLFlBQU8sR0FBbUMsSUFBSSxlQUFlLENBQWdCLFNBQVMsQ0FBQyxDQUFDO1FBRXpHOztXQUVHO1FBQ2EsdUJBQWtCLEdBQXVCLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBRS9GOztXQUVHO1FBQ0ksZ0JBQVcsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUks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USxtQkFBbUI7bUhBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyB0dWlJc1ByZXNlbnQgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29uY2F0TWFwLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzY2FuLCBzaGFyZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VXaGlsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY1Byb2R1Y3QgfSBmcm9tICcuLi8uLi9jYXRhbG9nL2R0by9zYy1wcm9kdWN0JztcbmltcG9ydCB7IFNjQ2F0YWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jYXRhbG9nL3NlcnZpY2VzL3NjLWNhdGFsb2cuc2VydmljZSc7XG5pbXBvcnQgeyBTQ19ORVhUX1BBR0VfUEFHSU5BVElPTl9DTElDSywgU0NfUFJPRFVDVF9QQUdJTkFUSU9OX0RFRkFVTFRfT1BUSU9OUyB9IGZyb20gJy4uLy4uL3Rva2Vucy9zYy1wcm9kdWN0LXBhZ2luYXRpb24tb3B0aW9ucyc7XG5pbXBvcnQgeyBTQ19VU0VSX0lORk8gfSBmcm9tICcuLi8uLi91c2VyL3Rva2Vucy9zYy11c2VyLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBTY0lQYWdpbmF0ZSB9IGZyb20gJy4uL2R0by9zYy1pLXBhZ2luYXRlJztcbmltcG9ydCB7IFNjSVBhZ2luYXRpb25QYXJhbXMgfSBmcm9tICcuLi9kdG8vc2MtaS1wYWdpbmF0aW9uLXBhcmFtcyc7XG5cbi8qKlxuICog0KHQtdGA0LLQuNGBINC/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+ID0gdGhpcy5vdGhlcnMkLnBpcGUoXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBzd2l0Y2hNYXAoKHBhcmFtcykgPT4gdGhpcy5hdXRoU3RhdHVzJC5waXBlKG1hcCgoKSA9PiBwYXJhbXMpKSksXG4gICAgICAgIHN3aXRjaE1hcCgocGFyYW1zKSA9PlxuICAgICAgICAgICAgdGhpcy5wYWdlJC5waXBlKFxuICAgICAgICAgICAgICAgIC8vINCY0LfQsdC10LPQsNC10Lwg0LvQuNGI0L3QtdCz0L4g0LfQsNC/0YDQvtGB0LAg0YHQviDRgdGC0LDRgNGL0LzQuCDQv9Cw0YDQsNC80LXRgtGA0LDQvNC4OiDRgdCx0YDQvtGBINGB0YLRgNCw0L3QuNGG0YsgKHBhdGNoUGFnZSkg0L/RgNC4INGB0LzQtdC90LUgb3RoZXJzJCDRgdC40L3RhdGA0L7QvdC90L5cbiAgICAgICAgICAgICAgICAvLyDCq9C/0LjQvdCw0LXRgsK7INC10YnRkSDQttC40LLRg9GOINC/0YDQtdC00YvQtNGD0YnRg9GOINC/0L7QtNC/0LjRgdC60YMg4oCUIGRlYm91bmNlVGltZSgwKSDRgdGF0LvQvtC/0YvQstCw0LXRgiDRgtCw0LrQvtC5INCy0YHQv9C70LXRgdC6INC00L4g0L7QtNC90L7QuSDRjdC80LjRgdGB0LjQuC5cbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcyxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgICAgICAgICBtYXAoKHBhZ2UpID0+ICh7IC4uLnBhcmFtcywgLi4ucGFnZSB9KSksXG4gICAgICAgICAgICAgICAgLy8gVE9ETzog0JfQsNC80LXQvdC40YLRjCB0aGlzLmNhdGFsb2dTZXJ2aWNlLmdldFByb2R1Y3RzJCDQvdCwINCw0LHRgdGC0YDQsNC60YLQvdGL0Lkg0LzQtdGC0L7QtCDRgdC10YDQstC40YHQsCDQv9C+INC/0YDQuNC80LXRgNGDIGBUdWlUcmVlTG9hZGVyYC5cbiAgICAgICAgICAgICAgICBjb25jYXRNYXAoKHBhZ2luYXRpb25QYXJhbXMpID0+IHRoaXMuY2F0YWxvZ1NlcnZpY2UuZ2V0UHJvZHVjdHMkKHBhZ2luYXRpb25QYXJhbXMpLnBpcGUoc3RhcnRXaXRoKG51bGwpKSksXG4gICAgICAgICAgICAgICAgLy8gVE9ETzog0JfQsNC80LXQvdC40YLRjCBgU2NQcm9kdWN0YCDQvdCwIFQg0YLQuNC/LlxuICAgICAgICAgICAgICAgIHNjYW48U2NJUGFnaW5hdGU8U2NQcm9kdWN0PiB8IG51bGwsIFtTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+IHwgbnVsbCwgU2NJUGFnaW5hdGU8U2NQcm9kdWN0PiB8IG51bGxdPihcbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgICAgICAoW18sIGFjY3VtdWxhdG9yXSwgdmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3ZhbHVlLCBhY2N1bXVsYXRvcl07XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhY2N1bXVsYXRvciAmJiB2YWx1ZS5tZXRhLmN1cnJlbnRQYWdlID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmRhdGEudW5zaGlmdCguLi5hY2N1bXVsYXRvci5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFt2YWx1ZSwgdmFsdWVdO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBbbnVsbCwgbnVsbF1cbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIG1hcCgoW3BhZ2luYXRlXSkgPT4gcGFnaW5hdGUpLFxuICAgICAgICAgICAgICAgIHRha2VXaGlsZSgocGFnaW5hdGUpID0+IHBhZ2luYXRlID09PSBudWxsIHx8IHBhZ2luYXRlLm1ldGEuY3VycmVudFBhZ2UgPCBwYWdpbmF0ZS5tZXRhLmxhc3RQYWdlLCB0cnVlKVxuICAgICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBzaGFyZSgpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NQYWdpbmF0aW9uU2VydmljZX0uXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm90aGVycyRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5leHRQYWdlQ2xpY2tFdmVudC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NhbigoYWNjdW11bGF0b3IpID0+IGFjY3VtdWxhdG9yICsgMSwgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoMSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHBhZ2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhdGNoUGFnZSh7IHBhZ2U6IHBhZ2UgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LvQvdC+0YHRgtGM0Y4g0L7QsdC90L7QstC70Y/QtdGCINC30L3QsNGH0LXQvdC40Y8g0YHRgtGA0LDQvdC40YbRiyDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIHBhZ2UkfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdQYWdlVmFsdWUg0J3QvtCy0YvQtSDQtNCw0L3QvdGL0LUg0YHRgtGA0LDQvdC40YbRiyDQv9Cw0LPQuNC90LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIHNldFBhZ2UobmV3UGFnZVZhbHVlOiBTY0lQYWdpbmF0aW9uUGFyYW1zKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGFnZSQubmV4dChuZXdQYWdlVmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCn0LDRgdGC0LjRh9C90L4g0L7QsdC90L7QstC70Y/QtdGCINC30L3QsNGH0LXQvdC40Y8g0YHRgtGA0LDQvdC40YbRiyDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIHBhZ2UkfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJ0aWFsUGFnZVZhbHVlINCd0L7QstGL0LUg0LTQsNC90L3Ri9C1INGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4LiDQnNC+0LbQvdC+INC/0LXRgNC10LTQsNGC0Ywg0YfQsNGB0YLRjCDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHVibGljIHBhdGNoUGFnZShwYXJ0aWFsUGFnZVZhbHVlOiBQYXJ0aWFsPFNjSVBhZ2luYXRpb25QYXJhbXM+KTogdm9pZCB7XG4gICAgICAgIC8vINCX0L3QsNGH0LXQvdC40Y8g0L/QviDRg9C80L7Qu9GH0LDQvdC40Y4uXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgY29uc3QgY3VycmVudFBhZ2UgPSB0aGlzLnBhZ2UkLnZhbHVlO1xuXG4gICAgICAgIC8vINCe0LHQvdC+0LLQu9GP0LXQvCDRgtC+0LvRjNC60L4g0YLQtSDQv9C+0LvRjywg0LrQvtGC0L7RgNGL0LUg0L/QtdGA0LXQtNCw0L3RiyDQsiBwYXJ0aWFsUGFnZVZhbHVlLlxuICAgICAgICBjb25zdCB1cGRhdGVkUGFnZTogU2NJUGFnaW5hdGlvblBhcmFtcyA9IHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3MsQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgICAgICBwYWdlOiBwYXJ0aWFsUGFnZVZhbHVlLnBhZ2UgPz8gY3VycmVudFBhZ2UucGFnZSxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3MsQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgICAgICBwZXJQYWdlOiBwYXJ0aWFsUGFnZVZhbHVlLnBlclBhZ2UgPz8gY3VycmVudFBhZ2UucGVyUGFnZSxcbiAgICAgICAgICAgIHBhZ2luYXRlOiB0cnVlLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMucGFnZSQubmV4dCh1cGRhdGVkUGFnZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/QvtC70L3QvtGB0YLRjNGOINC+0LHQvdC+0LLQu9GP0LXRgiDQvtGB0YLQsNC70YzQvdGL0LUg0L/QsNGA0LDQvNC10YLRgNGLINC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgb3RoZXJzJH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3T3RoZXJzVmFsdWUg0J3QvtCy0YvQtSDQv9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRPdGhlcnMobmV3T3RoZXJzVmFsdWU6IE8pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdGhlcnMkLm5leHQobmV3T3RoZXJzVmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCn0LDRgdGC0LjRh9C90L4g0L7QsdC90L7QstC70Y/QtdGCINC+0YHRgtCw0LvRjNC90YvQtSDQv9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBvdGhlcnMkfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJ0aWFsT3RoZXJzVmFsdWUg0J3QvtCy0YvQtSDQv9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4LiDQnNC+0LbQvdC+INC/0LXRgNC10LTQsNGC0Ywg0YfQsNGB0YLRjCDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHVibGljIHBhdGNoT3RoZXJzKHBhcnRpYWxPdGhlcnNWYWx1ZTogUGFydGlhbDxPPik6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50T3RoZXJzID0gdGhpcy5vdGhlcnMkLnZhbHVlID8/ICh7fSBhcyBPKTtcblxuICAgICAgICAvLyDQmNC30LHQtdCz0LDQtdC8INC+0LHQvdC+0LLQu9C10L3QuNGPLCDQtdGB0LvQuCBwYXJ0aWFsT3RoZXJzVmFsdWUg0L/Rg9GB0YLQvtC5LlxuICAgICAgICBpZiAoT2JqZWN0LmtleXMocGFydGlhbE90aGVyc1ZhbHVlKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkT3RoZXJzOiBPID0geyAuLi5jdXJyZW50T3RoZXJzLCAuLi5wYXJ0aWFsT3RoZXJzVmFsdWUgfTtcbiAgICAgICAgICAgIHRoaXMub3RoZXJzJC5uZXh0KHVwZGF0ZWRPdGhlcnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdC90L7QstC70Y/QtdGCINCy0YHQtSDQtNCw0L3QvdGL0LUg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBwYWdlJH0g0Lgge0BsaW5rIG90aGVycyR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld1ZhbHVlINCd0L7QstGL0LUg0L/QsNGA0LDQvNC10YLRgNGLINC/0LDQs9C40L3QsNGG0LjQuCDQtNC70Y8ge0BsaW5rIHBhZ2UkfSDQuCB7QGxpbmsgb3RoZXJzJH0uXG4gICAgICovXG4gICAgcHVibGljIHNldFBhZ2luYXRpb25QYXJhbXMobmV3VmFsdWU6IFApOiB2b2lkIHtcbiAgICAgICAgLy8g0J7QsdC90L7QstC70Y/QtdC8INC30L3QsNGH0LXQvdC40LUgcGFnZSQuXG4gICAgICAgIHRoaXMucGFnZSQubmV4dCh7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgICAgICBwYWdlOiBuZXdWYWx1ZS5wYWdlLFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICAgICAgcGVyUGFnZTogbmV3VmFsdWUucGVyUGFnZSxcbiAgICAgICAgICAgIHBhZ2luYXRlOiB0cnVlLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyDQntCx0L3QvtCy0LvRj9C10Lwg0LfQvdCw0YfQtdC90LjQtSBvdGhlcnMkLlxuICAgICAgICBjb25zdCBvdGhlcnNWYWx1ZSA9IHRoaXMuZXh0cmFjdE90aGVycyhuZXdWYWx1ZSk7XG4gICAgICAgIHRoaXMub3RoZXJzJC5uZXh0KG90aGVyc1ZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktGL0LTQtdC70Y/QtdGCINC/0LDRgNCw0LzQtdGC0YDRiyDQv9Cw0LPQuNC90LDRhtC40LgsINC90LUg0L7RgtC90L7RgdGP0YnQuNC10YHRjyDQuiDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgT30g0LjQtyDQv9C+0LvQvdC+0LPQviDQvtCx0YrQtdC60YLQsCDQv9Cw0YDQsNC80LXRgtGA0L7QsiDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIFB9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlINCe0LHRitC10LrRgtGLINC/0LDRgNCw0LzQtdGC0YDQvtCyINC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgUH1cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY2xhc3MtbWV0aG9kcy11c2UtdGhpc1xuICAgIHByaXZhdGUgZXh0cmFjdE90aGVycyh2YWx1ZTogUCk6IE8ge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgIGNvbnN0IHsgcGFnZSwgcGVyUGFnZSwgLi4ub3RoZXJzIH0gPSB2YWx1ZTtcblxuICAgICAgICByZXR1cm4gb3RoZXJzIGFzIE87XG4gICAgfVxufVxuIl19
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9wYWdpbmF0aW9uL3NlcnZpY2VzL3NjLXBhZ2luYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFDSCw2QkFBNkIsRUFDN0IscUNBQXFDLEVBQ3JDLDZCQUE2QixHQUVoQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFJbkU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBNkY1Qjs7T0FFRztJQUNIO1FBL0ZBOztXQUVHO1FBQ2MsVUFBSyxHQUF5QyxJQUFJLGVBQWUsQ0FBc0IscUNBQXFDLENBQUMsQ0FBQztRQUUvSTs7V0FFRztRQUNjLFlBQU8sR0FBbUMsSUFBSSxlQUFlLENBQWdCLFNBQVMsQ0FBQyxDQUFDO1FBRXpHOztXQUVHO1FBQ2EsdUJBQWtCLEdBQXVCLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBRS9GOztXQUVHO1FBQ0ksZ0JBQVcsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcs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SUc7SUFDSCxrREFBa0Q7SUFDMUMsYUFBYSxDQUFDLEtBQVE7UUFDMUIsNkRBQTZEO1FBQzdELE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRTNDLE9BQU8sTUFBVyxDQUFDO0lBQ3ZCLENBQUM7K0dBdk1RLG1CQUFtQjttSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IHR1aUlzUHJlc2VudCB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb25jYXRNYXAsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHNjYW4sIHNoYXJlLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjUHJvZHVjdCB9IGZyb20gJy4uLy4uL2NhdGFsb2cvZHRvL3NjLXByb2R1Y3QnO1xuaW1wb3J0IHsgU2NDYXRhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL2NhdGFsb2cvc2VydmljZXMvc2MtY2F0YWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgU0NfTkVYVF9QQUdFX1BBR0lOQVRJT05fQ0xJQ0ssXG4gICAgU0NfUFJPRFVDVF9QQUdJTkFUSU9OX0RFRkFVTFRfT1BUSU9OUyxcbiAgICBTQ19QUk9EVUNUU19QQUdJTkFUSU9OX0xPQURFUixcbiAgICBTY1Byb2R1Y3RzUGFnaW5hdGlvbkxvYWRlcixcbn0gZnJvbSAnLi4vLi4vdG9rZW5zL3NjLXByb2R1Y3QtcGFnaW5hdGlvbi1vcHRpb25zJztcbmltcG9ydCB7IFNDX1VTRVJfSU5GTyB9IGZyb20gJy4uLy4uL3VzZXIvdG9rZW5zL3NjLXVzZXItcHJvdmlkZXJzJztcbmltcG9ydCB7IFNjSVBhZ2luYXRlIH0gZnJvbSAnLi4vZHRvL3NjLWktcGFnaW5hdGUnO1xuaW1wb3J0IHsgU2NJUGFnaW5hdGlvblBhcmFtcyB9IGZyb20gJy4uL2R0by9zYy1pLXBhZ2luYXRpb24tcGFyYW1zJztcblxuLyoqXG4gKiDQodC10YDQstC40YEg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2NQYWdpbmF0aW9uU2VydmljZTxQIGV4dGVuZHMgU2NJUGFnaW5hdGlvblBhcmFtcywgTyBleHRlbmRzIG9iamVjdCA9IE9taXQ8UCwga2V5b2YgU2NJUGFnaW5hdGlvblBhcmFtcz4+IHtcbiAgICAvKipcbiAgICAgKiB7QGxpbmsgQmVoYXZpb3JTdWJqZWN0fSDQuNC30LzQtdC90LXQvdC40Y8g0LTQsNC90L3Ri9GFINC+INGB0YLRgNCw0L3QuNGG0LUg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnZSQ6IEJlaGF2aW9yU3ViamVjdDxTY0lQYWdpbmF0aW9uUGFyYW1zPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2NJUGFnaW5hdGlvblBhcmFtcz4oU0NfUFJPRFVDVF9QQUdJTkFUSU9OX0RFRkFVTFRfT1BUSU9OUyk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgQmVoYXZpb3JTdWJqZWN0fSDQuNC30LzQtdC90LXQvdC40Y8g0L7RgdGC0LDQstGI0LjRhdGB0Y8g0LTQsNC90L3Ri9GFINC/0LDQs9C40L3QsNGG0LjQuCDQsdC10Lcg0LTQsNC90L3Ri9GFINC+INGB0YLRgNCw0L3QuNGG0LUg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3RoZXJzJDogQmVoYXZpb3JTdWJqZWN0PE8gfCB1bmRlZmluZWQ+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxPIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIEV2ZW50RW1pdHRlcn0g0YHQvtCx0YvRgtC40Y8g0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMgKNGB0LvQtdC00YPRjtGJ0LjQtSDRgtC+0LLQsNGA0YspLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBuZXh0UGFnZUNsaWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IGluamVjdChTQ19ORVhUX1BBR0VfUEFHSU5BVElPTl9DTElDSyk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0YLQsNGC0YPRgdCwINCw0YPRgtC10L3RgtC40YTQuNC60LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIGF1dGhTdGF0dXMkID0gaW5qZWN0KFNDX1VTRVJfSU5GTykucGlwZShtYXAoKHVzZXIpID0+IHVzZXIuaXNHdWVzdCkpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINGA0LDQsdC+0YLRiyDRgSDQutCw0YLQsNC70L7Qs9C+0LwuXG4gICAgICovXG4gICAgcHVibGljIGNhdGFsb2dTZXJ2aWNlID0gaW5qZWN0KFNjQ2F0YWxvZ1NlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0JfQsNCz0YDRg9C30YfQuNC6INGB0YLRgNCw0L3QuNGG0Ysg0YLQvtCy0LDRgNC+0LIuINCf0L4g0YPQvNC+0LvRh9Cw0L3QuNGOIOKAlCDQvtCx0YvRh9C90YvQuSDRgdC/0LjRgdC+0Log0YLQvtCy0LDRgNC+0LIgKHtAbGluayBTY0NhdGFsb2dTZXJ2aWNlLmdldFByb2R1Y3RzJH0pO1xuICAgICAqINC80L7QttC10YIg0LHRi9GC0Ywg0L/QtdGA0LXQvtC/0YDQtdC00LXQu9GR0L0g0YfQtdGA0LXQtyDRgtC+0LrQtdC9IHtAbGluayBTQ19QUk9EVUNUU19QQUdJTkFUSU9OX0xPQURFUn0gKNC90LDQv9GA0LjQvNC10YAsINC00LvRjyDRgdGC0YDQsNC90LjRhtGLINC90L7QstGL0YUg0YLQvtCy0LDRgNC+0LIpLlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhcmFtcyDQn9Cw0YDQsNC80LXRgtGA0Ysg0LfQsNC/0YDQvtGB0LAg0YHRgtGA0LDQvdC40YbRiyDRgtC+0LLQsNGA0L7QsiDRgSDQv9Cw0LPQuNC90LDRhtC40LXQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3RzTG9hZGVyOiBTY1Byb2R1Y3RzUGFnaW5hdGlvbkxvYWRlciA9XG4gICAgICAgIGluamVjdChTQ19QUk9EVUNUU19QQUdJTkFUSU9OX0xPQURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KSA/P1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9jb25zaXN0ZW50LWZ1bmN0aW9uLXNjb3BpbmdcbiAgICAgICAgKChwYXJhbXMpID0+IHRoaXMuY2F0YWxvZ1NlcnZpY2UuZ2V0UHJvZHVjdHMkKHBhcmFtcykpO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGK0LXQutGCINC00LDQvdC90YvRhSDQv9Cw0LPQuNC90LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIGRhdGEkOiBPYnNlcnZhYmxlPFNjSVBhZ2luYXRlPFNjUHJvZHVjdD4gfCBudWxsPiA9IHRoaXMub3RoZXJzJC5waXBlKFxuICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgc3dpdGNoTWFwKChwYXJhbXMpID0+XG4gICAgICAgICAgICB0aGlzLnBhZ2UkLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgICAgICAgICAgLy8g0JjQt9Cx0LXQs9Cw0LXQvCDQvNC90L7QttC10YHRgtCy0LXQvdC90YvRhSDRgdC40LPQvdCw0LvQvtCyINC/0YDQuCDQvtC00L3QvtCy0YDQtdC80LXQvdC90L7QvCDQuNC30LzQtdC90LXQvdC40Lgg0YTQuNC70YzRgtGA0L7QsiBwYWdlJCDQuCBvdGhlcnMkLlxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm5cbiAgICAgICAgICAgICAgICBtYXAoKHBhZ2UpID0+ICh7IC4uLnBhcmFtcywgLi4ucGFnZSB9KSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChwYWdpbmF0aW9uUGFyYW1zKSA9PiB0aGlzLmF1dGhTdGF0dXMkLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMucHJvZHVjdHNMb2FkZXIocGFnaW5hdGlvblBhcmFtcykucGlwZShzdGFydFdpdGgobnVsbCkpKSkpXG4gICAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlKClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGK0LXQutGCINC00LDQvdC90YvRhSDQv9Cw0LPQuNC90LDRhtC40Lgg0YEg0YHQvtGF0YDQsNC90LXQvdC40LXQvCDQv9GA0LXQtNGL0LTRg9GJ0LjRhSDQt9C90LDRh9C10L3QuNC5INC00LvRjyBcItGA0LDQt9Cy0L7RgNCw0YfQuNCy0LDQvdC40Y9cIiDRgdC/0LjRgdC60LAg0YLQvtCy0LDRgNC+0LIuXG4gICAgICog0KHQv9C40YHQvtC6INGB0L7RhdGA0LDQvdGP0LXRgtGB0Y8g0L/RgNC4INC/0LXRgNC10YXQvtC00LUg0L/QviDRgdGC0YDQsNC90LjRhtCw0LwsINC00L4g0YLQtdGFINC/0L7RgCDQv9C+0LrQsCDQvdC1INCx0YPQtNC10YIg0L/QvtC70YPRh9C10L0g0YHQuNCz0L3QsNC7IGBvdGhlcnMkYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGF0YUFjY3VtdWxhdGVkJDogT2JzZXJ2YWJsZTxTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+IHwgbnVsbD4gPSB0aGlzLm90aGVycyQucGlwZShcbiAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgIHN3aXRjaE1hcCgocGFyYW1zKSA9PiB0aGlzLmF1dGhTdGF0dXMkLnBpcGUobWFwKCgpID0+IHBhcmFtcykpKSxcbiAgICAgICAgc3dpdGNoTWFwKChwYXJhbXMpID0+XG4gICAgICAgICAgICB0aGlzLnBhZ2UkLnBpcGUoXG4gICAgICAgICAgICAgICAgLy8g0JjQt9Cx0LXQs9Cw0LXQvCDQu9C40YjQvdC10LPQviDQt9Cw0L/RgNC+0YHQsCDRgdC+INGB0YLQsNGA0YvQvNC4INC/0LDRgNCw0LzQtdGC0YDQsNC80Lg6INGB0LHRgNC+0YEg0YHRgtGA0LDQvdC40YbRiyAocGF0Y2hQYWdlKSDQv9GA0Lgg0YHQvNC10L3QtSBvdGhlcnMkINGB0LjQvdGF0YDQvtC90L3QvlxuICAgICAgICAgICAgICAgIC8vIMKr0L/QuNC90LDQtdGCwrsg0LXRidGRINC20LjQstGD0Y4g0L/RgNC10LTRi9C00YPRidGD0Y4g0L/QvtC00L/QuNGB0LrRgyDigJQgZGVib3VuY2VUaW1lKDApINGB0YXQu9C+0L/Ri9Cy0LDQtdGCINGC0LDQutC+0Lkg0LLRgdC/0LvQtdGB0Log0LTQviDQvtC00L3QvtC5INGN0LzQuNGB0YHQuNC4LlxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1tZW1iZXItYWNjZXNzLEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICAgICAgICAgIG1hcCgocGFnZSkgPT4gKHsgLi4ucGFyYW1zLCAuLi5wYWdlIH0pKSxcbiAgICAgICAgICAgICAgICBjb25jYXRNYXAoKHBhZ2luYXRpb25QYXJhbXMpID0+IHRoaXMucHJvZHVjdHNMb2FkZXIocGFnaW5hdGlvblBhcmFtcykucGlwZShzdGFydFdpdGgobnVsbCkpKSxcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiDQl9Cw0LzQtdC90LjRgtGMIGBTY1Byb2R1Y3RgINC90LAgVCDRgtC40L8uXG4gICAgICAgICAgICAgICAgc2NhbjxTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+IHwgbnVsbCwgW1NjSVBhZ2luYXRlPFNjUHJvZHVjdD4gfCBudWxsLCBTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+IHwgbnVsbF0+KFxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgICAgICAgICAgICAgICAgIChbXywgYWNjdW11bGF0b3JdLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbdmFsdWUsIGFjY3VtdWxhdG9yXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjY3VtdWxhdG9yICYmIHZhbHVlLm1ldGEuY3VycmVudFBhZ2UgPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUuZGF0YS51bnNoaWZ0KC4uLmFjY3VtdWxhdG9yLmRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3ZhbHVlLCB2YWx1ZV07XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtudWxsLCBudWxsXVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgbWFwKChbcGFnaW5hdGVdKSA9PiBwYWdpbmF0ZSksXG4gICAgICAgICAgICAgICAgdGFrZVdoaWxlKChwYWdpbmF0ZSkgPT4gcGFnaW5hdGUgPT09IG51bGwgfHwgcGFnaW5hdGUubWV0YS5jdXJyZW50UGFnZSA8IHBhZ2luYXRlLm1ldGEubGFzdFBhZ2UsIHRydWUpXG4gICAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlKClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1BhZ2luYXRpb25TZXJ2aWNlfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMub3RoZXJzJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmV4dFBhZ2VDbGlja0V2ZW50LnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBzY2FuKChhY2N1bXVsYXRvcikgPT4gYWNjdW11bGF0b3IgKyAxLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCgxKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgocGFnZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucGF0Y2hQYWdlKHsgcGFnZTogcGFnZSB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0L7Qu9C90L7RgdGC0YzRjiDQvtCx0L3QvtCy0LvRj9C10YIg0LfQvdCw0YfQtdC90LjRjyDRgdGC0YDQsNC90LjRhtGLINC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgcGFnZSR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIG5ld1BhZ2VWYWx1ZSDQndC+0LLRi9C1INC00LDQvdC90YvQtSDRgdGC0YDQsNC90LjRhtGLINC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UGFnZShuZXdQYWdlVmFsdWU6IFNjSVBhZ2luYXRpb25QYXJhbXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KG5ld1BhZ2VWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KfQsNGB0YLQuNGH0L3QviDQvtCx0L3QvtCy0LvRj9C10YIg0LfQvdCw0YfQtdC90LjRjyDRgdGC0YDQsNC90LjRhtGLINC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgcGFnZSR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhcnRpYWxQYWdlVmFsdWUg0J3QvtCy0YvQtSDQtNCw0L3QvdGL0LUg0YHRgtGA0LDQvdC40YbRiyDQv9Cw0LPQuNC90LDRhtC40LguINCc0L7QttC90L4g0L/QtdGA0LXQtNCw0YLRjCDRh9Cw0YHRgtGMINC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGF0Y2hQYWdlKHBhcnRpYWxQYWdlVmFsdWU6IFBhcnRpYWw8U2NJUGFnaW5hdGlvblBhcmFtcz4pOiB2b2lkIHtcbiAgICAgICAgLy8g0JfQvdCw0YfQtdC90LjRjyDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudFxuICAgICAgICBjb25zdCBjdXJyZW50UGFnZSA9IHRoaXMucGFnZSQudmFsdWU7XG5cbiAgICAgICAgLy8g0J7QsdC90L7QstC70Y/QtdC8INGC0L7Qu9GM0LrQviDRgtC1INC/0L7Qu9GPLCDQutC+0YLQvtGA0YvQtSDQv9C10YDQtdC00LDQvdGLINCyIHBhcnRpYWxQYWdlVmFsdWUuXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRQYWdlOiBTY0lQYWdpbmF0aW9uUGFyYW1zID0ge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcyxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgICAgIHBhZ2U6IHBhcnRpYWxQYWdlVmFsdWUucGFnZSA/PyBjdXJyZW50UGFnZS5wYWdlLFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcyxAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgICAgIHBlclBhZ2U6IHBhcnRpYWxQYWdlVmFsdWUucGVyUGFnZSA/PyBjdXJyZW50UGFnZS5wZXJQYWdlLFxuICAgICAgICAgICAgcGFnaW5hdGU6IHRydWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHVwZGF0ZWRQYWdlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LvQvdC+0YHRgtGM0Y4g0L7QsdC90L7QstC70Y/QtdGCINC+0YHRgtCw0LvRjNC90YvQtSDQv9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBvdGhlcnMkfS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBuZXdPdGhlcnNWYWx1ZSDQndC+0LLRi9C1INC/0LDRgNCw0LzQtdGC0YDRiyDQv9Cw0LPQuNC90LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIHNldE90aGVycyhuZXdPdGhlcnNWYWx1ZTogTyk6IHZvaWQge1xuICAgICAgICB0aGlzLm90aGVycyQubmV4dChuZXdPdGhlcnNWYWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KfQsNGB0YLQuNGH0L3QviDQvtCx0L3QvtCy0LvRj9C10YIg0L7RgdGC0LDQu9GM0L3Ri9C1INC/0LDRgNCw0LzQtdGC0YDRiyDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIG90aGVycyR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHBhcnRpYWxPdGhlcnNWYWx1ZSDQndC+0LLRi9C1INC/0LDRgNCw0LzQtdGC0YDRiyDQv9Cw0LPQuNC90LDRhtC40LguINCc0L7QttC90L4g0L/QtdGA0LXQtNCw0YLRjCDRh9Cw0YHRgtGMINC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGF0Y2hPdGhlcnMocGFydGlhbE90aGVyc1ZhbHVlOiBQYXJ0aWFsPE8+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRPdGhlcnMgPSB0aGlzLm90aGVycyQudmFsdWUgPz8gKHt9IGFzIE8pO1xuXG4gICAgICAgIC8vINCY0LfQsdC10LPQsNC10Lwg0L7QsdC90L7QstC70LXQvdC40Y8sINC10YHQu9C4IHBhcnRpYWxPdGhlcnNWYWx1ZSDQv9GD0YHRgtC+0LkuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhwYXJ0aWFsT3RoZXJzVmFsdWUpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRPdGhlcnM6IE8gPSB7IC4uLmN1cnJlbnRPdGhlcnMsIC4uLnBhcnRpYWxPdGhlcnNWYWx1ZSB9O1xuICAgICAgICAgICAgdGhpcy5vdGhlcnMkLm5leHQodXBkYXRlZE90aGVycyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0LLRgdC1INC00LDQvdC90YvQtSDQv9Cw0LPQuNC90LDRhtC40Lgge0BsaW5rIHBhZ2UkfSDQuCB7QGxpbmsgb3RoZXJzJH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbmV3VmFsdWUg0J3QvtCy0YvQtSDQv9Cw0YDQsNC80LXRgtGA0Ysg0L/QsNCz0LjQvdCw0YbQuNC4INC00LvRjyB7QGxpbmsgcGFnZSR9INC4IHtAbGluayBvdGhlcnMkfS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0UGFnaW5hdGlvblBhcmFtcyhuZXdWYWx1ZTogUCk6IHZvaWQge1xuICAgICAgICAvLyDQntCx0L3QvtCy0LvRj9C10Lwg0LfQvdCw0YfQtdC90LjQtSBwYWdlJC5cbiAgICAgICAgdGhpcy5wYWdlJC5uZXh0KHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnRcbiAgICAgICAgICAgIHBhZ2U6IG5ld1ZhbHVlLnBhZ2UsXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50XG4gICAgICAgICAgICBwZXJQYWdlOiBuZXdWYWx1ZS5wZXJQYWdlLFxuICAgICAgICAgICAgcGFnaW5hdGU6IHRydWUsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vINCe0LHQvdC+0LLQu9GP0LXQvCDQt9C90LDRh9C10L3QuNC1IG90aGVycyQuXG4gICAgICAgIGNvbnN0IG90aGVyc1ZhbHVlID0gdGhpcy5leHRyYWN0T3RoZXJzKG5ld1ZhbHVlKTtcbiAgICAgICAgdGhpcy5vdGhlcnMkLm5leHQob3RoZXJzVmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvQtNC10LvRj9C10YIg0L/QsNGA0LDQvNC10YLRgNGLINC/0LDQs9C40L3QsNGG0LjQuCwg0L3QtSDQvtGC0L3QvtGB0Y/RidC40LXRgdGPINC6INGB0YLRgNCw0L3QuNGG0LUg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBPfSDQuNC3INC/0L7Qu9C90L7Qs9C+INC+0LHRitC10LrRgtCwINC/0LDRgNCw0LzQtdGC0YDQvtCyINC/0LDQs9C40L3QsNGG0LjQuCB7QGxpbmsgUH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUg0J7QsdGK0LXQutGC0Ysg0L/QsNGA0LDQvNC10YLRgNC+0LIg0L/QsNCz0LjQvdCw0YbQuNC4IHtAbGluayBQfVxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjbGFzcy1tZXRob2RzLXVzZS10aGlzXG4gICAgcHJpdmF0ZSBleHRyYWN0T3RoZXJzKHZhbHVlOiBQKTogTyB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgY29uc3QgeyBwYWdlLCBwZXJQYWdlLCAuLi5vdGhlcnMgfSA9IHZhbHVlO1xuXG4gICAgICAgIHJldHVybiBvdGhlcnMgYXMgTztcbiAgICB9XG59XG4iXX0=
@@ -19,4 +19,9 @@ export const SC_PRODUCT_PAGINATION_OPTIONS = new InjectionToken('SC_PRODUCT_PAGI
19
19
  export const SC_NEXT_PAGE_PAGINATION_CLICK = new InjectionToken('SC_NEXT_PAGE_PAGINATION_CLICK', {
20
20
  factory: () => new EventEmitter(),
21
21
  });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJvZHVjdC1wYWdpbmF0aW9uLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Rva2Vucy9zYy1wcm9kdWN0LXBhZ2luYXRpb24tb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk3RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUF3QjtJQUN0RSxPQUFPLEVBQUUsRUFBRTtJQUNYLFFBQVEsRUFBRSxJQUFJO0lBQ2QsSUFBSSxFQUFFLENBQUM7Q0FDVixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsK0JBQStCLEVBQUU7SUFDbEgsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLHFDQUFxQztDQUN2RCxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLElBQUksY0FBYyxDQUFxQiwrQkFBK0IsRUFBRTtJQUNqSCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxZQUFZLEVBQVE7Q0FDMUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTY0lQYWdpbmF0aW9uUGFyYW1zIH0gZnJvbSAnLi4vcGFnaW5hdGlvbi9kdG8vc2MtaS1wYWdpbmF0aW9uLXBhcmFtcyc7XG5cbi8qKlxuICog0JfQvdCw0YfQtdC90LjRjyDQv9Cw0LPQuNC90LDRhtC40Lgg0YHQv9C40YHQutCwINGC0L7QstCw0YDQvtCyINC60LDRgtC10LPQvtGA0LjQuCDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX1BST0RVQ1RfUEFHSU5BVElPTl9ERUZBVUxUX09QVElPTlM6IFNjSVBhZ2luYXRpb25QYXJhbXMgPSB7XG4gICAgcGVyUGFnZTogMjAsXG4gICAgcGFnaW5hdGU6IHRydWUsXG4gICAgcGFnZTogMCxcbn07XG5cbi8qKlxuICog0KLQvtC60LXQvSDQt9C90LDRh9C10L3QuNC5INC/0LDQs9C40L3QsNGG0LjQuCDRgdC/0LjRgdC60LAg0YLQvtCy0LDRgNC+0LIg0LIg0LrQsNGC0LDQu9C+0LPQtSDQv9C+INGD0LzQvtC70YfQsNC90LjRji5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX1BST0RVQ1RfUEFHSU5BVElPTl9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFNjSVBhZ2luYXRpb25QYXJhbXM+KCdTQ19QUk9EVUNUX1BBR0lOQVRJT05fT1BUSU9OUycsIHtcbiAgICBmYWN0b3J5OiAoKSA9PiBTQ19QUk9EVUNUX1BBR0lOQVRJT05fREVGQVVMVF9PUFRJT05TLFxufSk7XG5cbi8qKlxuICogINCi0L7QutC10L0ge0BsaW5rIEV2ZW50RW1pdHRlcn0g0YHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMgXCLQn9C+0LrQsNC30LDRgtGMINGB0LvQtdC00YPRjtGJ0LjQtSDQv9C+0LfQuNGG0LjQuCDQutCw0YLQtdCz0L7RgNC40LhcIi5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX05FWFRfUEFHRV9QQUdJTkFUSU9OX0NMSUNLID0gbmV3IEluamVjdGlvblRva2VuPEV2ZW50RW1pdHRlcjx2b2lkPj4oJ1NDX05FWFRfUEFHRV9QQUdJTkFUSU9OX0NMSUNLJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKSxcbn0pO1xuIl19
22
+ /**
23
+ * Токен подключаемого загрузчика страницы товаров для {@link ScPaginationService}.
24
+ * Если не задан, используется загрузчик по умолчанию (`ScCatalogService.getProducts$`).
25
+ */
26
+ export const SC_PRODUCTS_PAGINATION_LOADER = new InjectionToken('SC_PRODUCTS_PAGINATION_LOADER');
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJvZHVjdC1wYWdpbmF0aW9uLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3Rva2Vucy9zYy1wcm9kdWN0LXBhZ2luYXRpb24tb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVE3RDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUF3QjtJQUN0RSxPQUFPLEVBQUUsRUFBRTtJQUNYLFFBQVEsRUFBRSxJQUFJO0lBQ2QsSUFBSSxFQUFFLENBQUM7Q0FDVixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxJQUFJLGNBQWMsQ0FBc0IsK0JBQStCLEVBQUU7SUFDbEgsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLHFDQUFxQztDQUN2RCxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLElBQUksY0FBYyxDQUFxQiwrQkFBK0IsRUFBRTtJQUNqSCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxZQUFZLEVBQVE7Q0FDMUMsQ0FBQyxDQUFDO0FBT0g7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxjQUFjLENBQTZCLCtCQUErQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUgeyBTY1Byb2R1Y3QgfSBmcm9tICcuLi9jYXRhbG9nL2R0by9zYy1wcm9kdWN0JztcbmltcG9ydCB0eXBlIHsgU2NJQ2F0ZWdvcnlQcm9kdWN0UGFnaW5hdGlvblBhcmFtcyB9IGZyb20gJy4uL2NhdGFsb2cvaW50ZXJmYWNlcy9zYy1pLWNhdGVnb3J5LXByb2R1Y3RzLXBhZ2luYXRpb24tcGFyYW1zJztcbmltcG9ydCB0eXBlIHsgU2NJUGFnaW5hdGUgfSBmcm9tICcuLi9wYWdpbmF0aW9uL2R0by9zYy1pLXBhZ2luYXRlJztcbmltcG9ydCB7IFNjSVBhZ2luYXRpb25QYXJhbXMgfSBmcm9tICcuLi9wYWdpbmF0aW9uL2R0by9zYy1pLXBhZ2luYXRpb24tcGFyYW1zJztcblxuLyoqXG4gKiDQl9C90LDRh9C10L3QuNGPINC/0LDQs9C40L3QsNGG0LjQuCDRgdC/0LjRgdC60LAg0YLQvtCy0LDRgNC+0LIg0LrQsNGC0LXQs9C+0YDQuNC4INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICovXG5leHBvcnQgY29uc3QgU0NfUFJPRFVDVF9QQUdJTkFUSU9OX0RFRkFVTFRfT1BUSU9OUzogU2NJUGFnaW5hdGlvblBhcmFtcyA9IHtcbiAgICBwZXJQYWdlOiAyMCxcbiAgICBwYWdpbmF0ZTogdHJ1ZSxcbiAgICBwYWdlOiAwLFxufTtcblxuLyoqXG4gKiDQotC+0LrQtdC9INC30L3QsNGH0LXQvdC40Lkg0L/QsNCz0LjQvdCw0YbQuNC4INGB0L/QuNGB0LrQsCDRgtC+0LLQsNGA0L7QsiDQsiDQutCw0YLQsNC70L7Qs9C1INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOLlxuICovXG5leHBvcnQgY29uc3QgU0NfUFJPRFVDVF9QQUdJTkFUSU9OX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48U2NJUGFnaW5hdGlvblBhcmFtcz4oJ1NDX1BST0RVQ1RfUEFHSU5BVElPTl9PUFRJT05TJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IFNDX1BST0RVQ1RfUEFHSU5BVElPTl9ERUZBVUxUX09QVElPTlMsXG59KTtcblxuLyoqXG4gKiAg0KLQvtC60LXQvSB7QGxpbmsgRXZlbnRFbWl0dGVyfSDRgdC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyBcItCf0L7QutCw0LfQsNGC0Ywg0YHQu9C10LTRg9GO0YnQuNC1INC/0L7Qt9C40YbQuNC4INC60LDRgtC10LPQvtGA0LjQuFwiLlxuICovXG5leHBvcnQgY29uc3QgU0NfTkVYVF9QQUdFX1BBR0lOQVRJT05fQ0xJQ0sgPSBuZXcgSW5qZWN0aW9uVG9rZW48RXZlbnRFbWl0dGVyPHZvaWQ+PignU0NfTkVYVF9QQUdFX1BBR0lOQVRJT05fQ0xJQ0snLCB7XG4gICAgZmFjdG9yeTogKCkgPT4gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpLFxufSk7XG5cbi8qKlxuICog0KTRg9C90LrRhtC40Y8g0LfQsNCz0YDRg9C30LrQuCDRgdGC0YDQsNC90LjRhtGLINGC0L7QstCw0YDQvtCyINC00LvRjyB7QGxpbmsgU2NQYWdpbmF0aW9uU2VydmljZX0uXG4gKi9cbmV4cG9ydCB0eXBlIFNjUHJvZHVjdHNQYWdpbmF0aW9uTG9hZGVyID0gKHBhcmFtczogU2NJQ2F0ZWdvcnlQcm9kdWN0UGFnaW5hdGlvblBhcmFtcykgPT4gT2JzZXJ2YWJsZTxTY0lQYWdpbmF0ZTxTY1Byb2R1Y3Q+PjtcblxuLyoqXG4gKiDQotC+0LrQtdC9INC/0L7QtNC60LvRjtGH0LDQtdC80L7Qs9C+INC30LDQs9GA0YPQt9GH0LjQutCwINGB0YLRgNCw0L3QuNGG0Ysg0YLQvtCy0LDRgNC+0LIg0LTQu9GPIHtAbGluayBTY1BhZ2luYXRpb25TZXJ2aWNlfS5cbiAqINCV0YHQu9C4INC90LUg0LfQsNC00LDQvSwg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC30LDQs9GA0YPQt9GH0LjQuiDQv9C+INGD0LzQvtC70YfQsNC90LjRjiAoYFNjQ2F0YWxvZ1NlcnZpY2UuZ2V0UHJvZHVjdHMkYCkuXG4gKi9cbmV4cG9ydCBjb25zdCBTQ19QUk9EVUNUU19QQUdJTkFUSU9OX0xPQURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTY1Byb2R1Y3RzUGFnaW5hdGlvbkxvYWRlcj4oJ1NDX1BST0RVQ1RTX1BBR0lOQVRJT05fTE9BREVSJyk7XG4iXX0=
@@ -562,6 +562,11 @@ const SC_PRODUCT_PAGINATION_OPTIONS = new InjectionToken('SC_PRODUCT_PAGINATION_
562
562
  const SC_NEXT_PAGE_PAGINATION_CLICK = new InjectionToken('SC_NEXT_PAGE_PAGINATION_CLICK', {
563
563
  factory: () => new EventEmitter(),
564
564
  });
565
+ /**
566
+ * Токен подключаемого загрузчика страницы товаров для {@link ScPaginationService}.
567
+ * Если не задан, используется загрузчик по умолчанию (`ScCatalogService.getProducts$`).
568
+ */
569
+ const SC_PRODUCTS_PAGINATION_LOADER = new InjectionToken('SC_PRODUCTS_PAGINATION_LOADER');
565
570
 
566
571
  /**
567
572
  * Токен внедрения информации о релизе.
@@ -3461,6 +3466,23 @@ class ScCatalogService {
3461
3466
  return data.map((item, index) => new ScProduct(item, index));
3462
3467
  }));
3463
3468
  }
3469
+ /**
3470
+ * Создает запрос получения списка товаров, созданных за указанный период (с пагинацией).
3471
+ *
3472
+ * @param params Параметры запроса товаров за период.
3473
+ */
3474
+ getNewProducts$(params) {
3475
+ return this.http
3476
+ .get(`${this.urls.apiUrl}/catalog/products/new`, {
3477
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
3478
+ params: this.convertersService.toHttpParams({ ...params }, { nonNullable: true }),
3479
+ })
3480
+ .pipe(map$1((data) => {
3481
+ const cloneData = structuredClone(data);
3482
+ cloneData.data = cloneData.data.map((item) => new ScProduct(item));
3483
+ return cloneData;
3484
+ }));
3485
+ }
3464
3486
  /**
3465
3487
  * Создает запрос получения списка товаров категории и кэширует его.
3466
3488
  *
@@ -4558,10 +4580,14 @@ class ScUnitsHelper {
4558
4580
  /**
4559
4581
  * Возвращает кратность количества для указанного товара.
4560
4582
  *
4583
+ * Кратность равна {@link ScProduct.minCount} и не зависит от {@link ScIProperties.ignoreMinCountCheck}:
4584
+ * этот признак только снимает валидацию кратности/минимума при ручном вводе, но начальное количество
4585
+ * и шаг кнопок +/- остаются кратны minCount.
4586
+ *
4561
4587
  * @param product Данные о товаре для которого необходимо вернуть кратность количества.
4562
4588
  */
4563
4589
  static getProductMultiplicity(product) {
4564
- return !product.properties?.ignoreMinCountCheck && product.minCount && !ScUnitsHelper.productIsMeasurable(product) ? product.minCount : 1;
4590
+ return product.minCount && !ScUnitsHelper.productIsMeasurable(product) ? product.minCount : 1;
4565
4591
  }
4566
4592
  /**
4567
4593
  * Возвращает кратность длины для указанного товара.
@@ -7122,9 +7148,36 @@ class ScOrderDraftsService {
7122
7148
  params: { offer_id: offerId, order_id: order.id },
7123
7149
  });
7124
7150
  });
7125
- this.offerMap.get(offerId)?.update();
7151
+ this.removeOrderedProductsFromCache(offerId, data.items ?? []);
7126
7152
  }));
7127
7153
  }
7154
+ /**
7155
+ * Убирает заказанные позиции из кэша черновика локально (сервер сразу после заказа ещё может вернуть их в списке).
7156
+ *
7157
+ * @param offerId Идентификатор черновика.
7158
+ * @param orderedItemIds Идентификаторы заказанных позиций.
7159
+ */
7160
+ removeOrderedProductsFromCache(offerId, orderedItemIds) {
7161
+ const cachedItem = this.offerMap.get(offerId);
7162
+ if (!cachedItem || orderedItemIds.length === 0) {
7163
+ return;
7164
+ }
7165
+ const orderedIds = new Set(orderedItemIds.map(String));
7166
+ cachedItem.item$.pipe(take(1)).subscribe((draft) => {
7167
+ if (draft === loadingPlaceholder) {
7168
+ return;
7169
+ }
7170
+ const currentDraft = draft;
7171
+ const remainingProducts = currentDraft.products.filter((product) => !orderedIds.has(product.id));
7172
+ if (remainingProducts.length === currentDraft.products.length) {
7173
+ return;
7174
+ }
7175
+ const updatedDraft = new ScOrderDraft(currentDraft);
7176
+ updatedDraft.products = remainingProducts;
7177
+ updatedDraft.sum = remainingProducts.reduce((sum, product) => sum + product.costRub, 0);
7178
+ cachedItem.setValue(updatedDraft);
7179
+ });
7180
+ }
7128
7181
  /**
7129
7182
  * Добавляет продукт в коммерческое предложение/черновик.
7130
7183
  *
@@ -7407,6 +7460,15 @@ class ScPaginationService {
7407
7460
  * Сервис работы с каталогом.
7408
7461
  */
7409
7462
  this.catalogService = inject(ScCatalogService);
7463
+ /**
7464
+ * Загрузчик страницы товаров. По умолчанию — обычный список товаров ({@link ScCatalogService.getProducts$});
7465
+ * может быть переопределён через токен {@link SC_PRODUCTS_PAGINATION_LOADER} (например, для страницы новых товаров).
7466
+ *
7467
+ * @param params Параметры запроса страницы товаров с пагинацией.
7468
+ */
7469
+ this.productsLoader = inject(SC_PRODUCTS_PAGINATION_LOADER, { optional: true }) ??
7470
+ // eslint-disable-next-line unicorn/consistent-function-scoping
7471
+ ((params) => this.catalogService.getProducts$(params));
7410
7472
  /**
7411
7473
  * Объект данных пагинации.
7412
7474
  */
@@ -7414,9 +7476,7 @@ class ScPaginationService {
7414
7476
  // Избегаем множественных сигналов при одновременном изменении фильтров page$ и others$.
7415
7477
  debounceTime(0),
7416
7478
  // eslint-disable-next-line @typescript-eslint/no-unsafe-return
7417
- map$1((page) => ({ ...params, ...page })),
7418
- // TODO: Заменить this.catalogService.getProducts$ на абстрактный метод сервиса по примеру `TuiTreeLoader`.
7419
- switchMap((paginationParams) => this.authStatus$.pipe(switchMap(() => this.catalogService.getProducts$(paginationParams).pipe(startWith$1(null))))))), share());
7479
+ map$1((page) => ({ ...params, ...page })), switchMap((paginationParams) => this.authStatus$.pipe(switchMap(() => this.productsLoader(paginationParams).pipe(startWith$1(null))))))), share());
7420
7480
  /**
7421
7481
  * Объект данных пагинации с сохранением предыдущих значений для "разворачивания" списка товаров.
7422
7482
  * Список сохраняется при переходе по страницам, до тех пор пока не будет получен сигнал `others$`.
@@ -7426,9 +7486,7 @@ class ScPaginationService {
7426
7486
  // «пинает» ещё живую предыдущую подписку — debounceTime(0) схлопывает такой всплеск до одной эмиссии.
7427
7487
  debounceTime(0),
7428
7488
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
7429
- map$1((page) => ({ ...params, ...page })),
7430
- // TODO: Заменить this.catalogService.getProducts$ на абстрактный метод сервиса по примеру `TuiTreeLoader`.
7431
- concatMap((paginationParams) => this.catalogService.getProducts$(paginationParams).pipe(startWith$1(null))),
7489
+ map$1((page) => ({ ...params, ...page })), concatMap((paginationParams) => this.productsLoader(paginationParams).pipe(startWith$1(null))),
7432
7490
  // TODO: Заменить `ScProduct` на T тип.
7433
7491
  scan(
7434
7492
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -8853,5 +8911,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
8853
8911
  * Generated bundle index. Do not edit.
8854
8912
  */
8855
8913
 
8856
- export { CATEGORY_PROVIDERS, EMPTY_CART, IS_BROWSER, IS_RUNNING_ON_TERMINAL, IS_SERVER, RESPONSE, SC_ACCESS_AUTH_TOKEN_STORAGE_KEY, SC_API_KEYS, SC_AUTH_ADD_HEADER_REQUIRED, SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS, SC_AUTH_AS_CLIENT_OPTIONS, SC_CACHE_LIFETIME, SC_CACHE_SETTINGS, SC_CATALOG_ITEM_PAGE_META, SC_CATALOG_ROOT_PAGE_META, SC_CATEGORY_INFO, SC_CATEGORY_STATE, SC_COMPANY_INFO, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DATE_FORMAT, SC_DEFAULT_PAGE_META, SC_FEEDBACK_API, SC_GUEST_ENDPOINTS_TOKEN, SC_GUEST_PARAMETER_NAME_TOKEN, SC_GUEST_TOKEN_STORAGE_KEY, SC_ID_OR_SLUG_IN_ROUTE, SC_IS_HEADER_REQUIRED, SC_IS_HIDDEN_ERROR_ALERT, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_IS_LOGOUT_REQUEST, SC_IS_REFRESH_REQUIRED, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_MAX_LENGTH_SEARCH_TERM, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CLICK, SC_ORDER_LOADER, SC_ORDER_LOADING, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_UPDATE_INTERVAL, SC_URLS, SC_USER_INFO, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBanner, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartService, ScCatalogFilterService, ScCatalogFormat, ScCatalogItem, ScCatalogRedirectService, ScCatalogService, ScCatalogableItem, ScCategory, ScClientType, ScCodedIdentity, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDateFormatInterceptor, ScDeletableNamedIdentity, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorRequestState, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForms, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScHiddenCatalogableItem, ScIBreadcrumbItem, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScIdentity, ScImage, ScImageHelper, ScLoadingRequestState, ScLocationsService, ScMediaImageTransformerPipe, ScMimeTypes, ScNamedIdentity, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderBase, ScOrderDraft, ScOrderDraftShort, ScOrderDraftType, ScOrderDraftsService, ScOrderItem, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScPrimaryCatalogableItem, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScReference, ScReferenceName, ScReferencesService, ScRequestStateStatusEnum, ScRequisitesService, ScRouteKeys, ScSearchService, ScSeoService, ScSocialType, ScSuccessRequestState, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUpdatableNamedIdentity, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, SchemaOrgFactory, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, loadingPlaceholder, mapRequestStateToDataOrNull, mapToRequestState, runningOnTerminalFactory, scGetCurrentRoute, scOrderIsLoaded, searchTermFactory };
8914
+ export { CATEGORY_PROVIDERS, EMPTY_CART, IS_BROWSER, IS_RUNNING_ON_TERMINAL, IS_SERVER, RESPONSE, SC_ACCESS_AUTH_TOKEN_STORAGE_KEY, SC_API_KEYS, SC_AUTH_ADD_HEADER_REQUIRED, SC_AUTH_AS_CLIENT_DEFAULT_OPTIONS, SC_AUTH_AS_CLIENT_OPTIONS, SC_CACHE_LIFETIME, SC_CACHE_SETTINGS, SC_CATALOG_ITEM_PAGE_META, SC_CATALOG_ROOT_PAGE_META, SC_CATEGORY_INFO, SC_CATEGORY_STATE, SC_COMPANY_INFO, SC_COMPANY_NAME, SC_CONFIGURATOR_COMPONENTS, SC_CONFIGURATOR_SETTINGS, SC_COUNT_FIRST_DISCOUNTED_PRODUCTS, SC_COUNT_LAST_NEWS, SC_DATE_FORMAT, SC_DEFAULT_PAGE_META, SC_FEEDBACK_API, SC_GUEST_ENDPOINTS_TOKEN, SC_GUEST_PARAMETER_NAME_TOKEN, SC_GUEST_TOKEN_STORAGE_KEY, SC_ID_OR_SLUG_IN_ROUTE, SC_IS_HEADER_REQUIRED, SC_IS_HIDDEN_ERROR_ALERT, SC_IS_HIDDEN_ERROR_ALERT_HTTP_CONTEXT, SC_IS_LOGOUT_REQUEST, SC_IS_REFRESH_REQUIRED, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_MAX_LENGTH_SEARCH_TERM, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CLICK, SC_ORDER_LOADER, SC_ORDER_LOADING, SC_PATH_IMAGE_NOT_FOUND, SC_PRODUCTS_PAGINATION_LOADER, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_REFRESH_AUTH_TOKEN_STORAGE_KEY, SC_RELEASE, SC_UPDATE_INTERVAL, SC_URLS, SC_USER_INFO, SC_VACANCIES_DATA_SOURCE, SC_VIRTUAL_CATEGORY_INFO, SC_VIRTUAL_CATEGORY_PROVIDERS, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScAuthAsClientGuard, ScAuthInterceptor, ScAuthService, ScBanner, ScBannerService, ScCacheInterceptor, ScCacheSettings, ScCachedData, ScCachedItem, ScCart, ScCartService, ScCatalogFilterService, ScCatalogFormat, ScCatalogItem, ScCatalogRedirectService, ScCatalogService, ScCatalogableItem, ScCategory, ScClientType, ScCodedIdentity, ScConfiguratorService, ScContactsService, ScContragentService, ScConvertInterceptor, ScConvertersService, ScDateFormatInterceptor, ScDeletableNamedIdentity, ScDeliveryAddressService, ScDeliveryCost, ScDeliveryType, ScDocumentInfoNode, ScDocumentInfoTypesEnum, ScErrorRequestState, ScErrorsInterceptor, ScFavoriteService, ScFeedbackForms, ScFeedbackService, ScFilesService, ScFrequentlyAskedQuestionsService, ScGuestInterceptor, ScHiddenCatalogableItem, ScIBreadcrumbItem, ScISuggestionType, ScIconTypesEnum, ScIdOrSlugGuard, ScIdOrSlugPipe, ScIdentity, ScImage, ScImageHelper, ScLoadingRequestState, ScLocationsService, ScMediaImageTransformerPipe, ScMimeTypes, ScNamedIdentity, ScNews, ScNewsService, ScNotificationActionTypes, ScNotificationLevelNames, ScNotificationsService, ScOpfList, ScOptionsInterceptor, ScOrder, ScOrderBase, ScOrderDraft, ScOrderDraftShort, ScOrderDraftType, ScOrderDraftsService, ScOrderItem, ScOrderShort, ScOrderStateStatus, ScOrdersService, ScPaginationService, ScPaymentStatus, ScPaymentType, ScPhoneService, ScPrimaryCatalogableItem, ScProduct, ScProductTileType, ScQuestionnaireService, ScQuestionnaireStatusEnum, ScReclamationService, ScReclamationStatus, ScRecommendationService, ScReference, ScReferenceName, ScReferencesService, ScRequestStateStatusEnum, ScRequisitesService, ScRouteKeys, ScSearchService, ScSeoService, ScSocialType, ScSuccessRequestState, ScSuggestionService, ScSum, ScTokenService, ScUIService, ScUTMService, ScUnitsHelper, ScUpdatableNamedIdentity, ScUploadedFile, ScUser, ScUserMetadata, ScUserMetrikaGoalsEnum, ScUserMetrikaService, ScUserService, ScUserType, ScVCardService, ScVacanciesList, ScVacanciesService, ScVacancy, ScVerificationService, ScVirtualCategory, ScWarehouseService, SchemaOrgFactory, TERMINAL_PROVIDERS, USER_AGENT_TERMINAL, filterChangedByKey, loadingPlaceholder, mapRequestStateToDataOrNull, mapToRequestState, runningOnTerminalFactory, scGetCurrentRoute, scOrderIsLoaded, searchTermFactory };
8857
8915
  //# sourceMappingURL=snabcentr-client-core.mjs.map