@snabcentr/client-ui 4.10.3 → 4.12.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.
@@ -2,8 +2,4 @@
2
2
  * Наименование query-параметра идентификатора группы часто задаваемых вопросов.
3
3
  */
4
4
  export const SC_FAQ_GROUP_QUERY_PARAM = 'group';
5
- /**
6
- * Наименование query-параметра номера страницы пагинации часто задаваемых вопросов.
7
- */
8
- export const SC_FAQ_PAGE_QUERY_PARAM = 'page';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZmFxLXF1ZXJ5LXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9wYWdlcy9mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy9zYy1mYXEtcXVlcnktcGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsT0FBTyxDQUFDO0FBRWhEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsTUFBTSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQndCw0LjQvNC10L3QvtCy0LDQvdC40LUgcXVlcnkt0L/QsNGA0LDQvNC10YLRgNCwINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0LAg0LPRgNGD0L/Qv9GLINGH0LDRgdGC0L4g0LfQsNC00LDQstCw0LXQvNGL0YUg0LLQvtC/0YDQvtGB0L7Qsi5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX0ZBUV9HUk9VUF9RVUVSWV9QQVJBTSA9ICdncm91cCc7XG5cbi8qKlxuICog0J3QsNC40LzQtdC90L7QstCw0L3QuNC1IHF1ZXJ5LdC/0LDRgNCw0LzQtdGC0YDQsCDQvdC+0LzQtdGA0LAg0YHRgtGA0LDQvdC40YbRiyDQv9Cw0LPQuNC90LDRhtC40Lgg0YfQsNGB0YLQviDQt9Cw0LTQsNCy0LDQtdC80YvRhSDQstC+0L/RgNC+0YHQvtCyLlxuICovXG5leHBvcnQgY29uc3QgU0NfRkFRX1BBR0VfUVVFUllfUEFSQU0gPSAncGFnZSc7XG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZmFxLXF1ZXJ5LXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9wYWdlcy9mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy9zYy1mYXEtcXVlcnktcGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQndCw0LjQvNC10L3QvtCy0LDQvdC40LUgcXVlcnkt0L/QsNGA0LDQvNC10YLRgNCwINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0LAg0LPRgNGD0L/Qv9GLINGH0LDRgdGC0L4g0LfQsNC00LDQstCw0LXQvNGL0YUg0LLQvtC/0YDQvtGB0L7Qsi5cbiAqL1xuZXhwb3J0IGNvbnN0IFNDX0ZBUV9HUk9VUF9RVUVSWV9QQVJBTSA9ICdncm91cCc7XG4iXX0=
@@ -1,4 +1,5 @@
1
- import { SC_FAQ_GROUP_QUERY_PARAM, SC_FAQ_PAGE_QUERY_PARAM } from './sc-faq-query-params';
1
+ import { SC_PAGE_QUERY_PARAM } from '@snabcentr/client-core';
2
+ import { SC_FAQ_GROUP_QUERY_PARAM } from './sc-faq-query-params';
2
3
  /**
3
4
  * Возвращает query-параметры ссылки на группу часто задаваемых вопросов.
4
5
  *
@@ -8,6 +9,6 @@ import { SC_FAQ_GROUP_QUERY_PARAM, SC_FAQ_PAGE_QUERY_PARAM } from './sc-faq-quer
8
9
  */
9
10
  export const scGetFaqGroupQueryParams = (group) => ({
10
11
  [SC_FAQ_GROUP_QUERY_PARAM]: group.id ?? null,
11
- [SC_FAQ_PAGE_QUERY_PARAM]: null,
12
+ [SC_PAGE_QUERY_PARAM]: null,
12
13
  });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZ2V0LWZhcS1ncm91cC1xdWVyeS1wYXJhbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvcGFnZXMvZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnMvc2MtZ2V0LWZhcS1ncm91cC1xdWVyeS1wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxLQUFpQixFQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUMsd0JBQXdCLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUk7SUFDNUMsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLElBQUk7Q0FDbEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNjRmFxR3JvdXAgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcblxuaW1wb3J0IHsgU0NfRkFRX0dST1VQX1FVRVJZX1BBUkFNLCBTQ19GQVFfUEFHRV9RVUVSWV9QQVJBTSB9IGZyb20gJy4vc2MtZmFxLXF1ZXJ5LXBhcmFtcyc7XG5cbi8qKlxuICog0JLQvtC30LLRgNCw0YnQsNC10YIgcXVlcnkt0L/QsNGA0LDQvNC10YLRgNGLINGB0YHRi9C70LrQuCDQvdCwINCz0YDRg9C/0L/RgyDRh9Cw0YHRgtC+INC30LDQtNCw0LLQsNC10LzRi9GFINCy0L7Qv9GA0L7RgdC+0LIuXG4gKlxuICog0J/RgNC4INGB0LzQtdC90LUg0LPRgNGD0L/Qv9GLINC/0LDQs9C40L3QsNGG0LjRjyDRgdCx0YDQsNGB0YvQstCw0LXRgtGB0Y8g0L3QsCDQv9C10YDQstGD0Y4g0YHRgtGA0LDQvdC40YbRgy5cbiAqXG4gKiBAcGFyYW0gZ3JvdXAg0JPRgNGD0L/Qv9CwINCy0L7Qv9GA0L7RgdC+0LIuXG4gKi9cbmV4cG9ydCBjb25zdCBzY0dldEZhcUdyb3VwUXVlcnlQYXJhbXMgPSAoZ3JvdXA6IFNjRmFxR3JvdXApOiBQYXJhbXMgPT4gKHtcbiAgICBbU0NfRkFRX0dST1VQX1FVRVJZX1BBUkFNXTogZ3JvdXAuaWQgPz8gbnVsbCxcbiAgICBbU0NfRkFRX1BBR0VfUVVFUllfUEFSQU1dOiBudWxsLFxufSk7XG4iXX0=
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZ2V0LWZhcS1ncm91cC1xdWVyeS1wYXJhbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvcGFnZXMvZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnMvc2MtZ2V0LWZhcS1ncm91cC1xdWVyeS1wYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG1CQUFtQixFQUFjLE1BQU0sd0JBQXdCLENBQUM7QUFFekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFakU7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxLQUFpQixFQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUMsd0JBQXdCLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUk7SUFDNUMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLElBQUk7Q0FDOUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNDX1BBR0VfUVVFUllfUEFSQU0sIFNjRmFxR3JvdXAgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcblxuaW1wb3J0IHsgU0NfRkFRX0dST1VQX1FVRVJZX1BBUkFNIH0gZnJvbSAnLi9zYy1mYXEtcXVlcnktcGFyYW1zJztcblxuLyoqXG4gKiDQktC+0LfQstGA0LDRidCw0LXRgiBxdWVyeS3Qv9Cw0YDQsNC80LXRgtGA0Ysg0YHRgdGL0LvQutC4INC90LAg0LPRgNGD0L/Qv9GDINGH0LDRgdGC0L4g0LfQsNC00LDQstCw0LXQvNGL0YUg0LLQvtC/0YDQvtGB0L7Qsi5cbiAqXG4gKiDQn9GA0Lgg0YHQvNC10L3QtSDQs9GA0YPQv9C/0Ysg0L/QsNCz0LjQvdCw0YbQuNGPINGB0LHRgNCw0YHRi9Cy0LDQtdGC0YHRjyDQvdCwINC/0LXRgNCy0YPRjiDRgdGC0YDQsNC90LjRhtGDLlxuICpcbiAqIEBwYXJhbSBncm91cCDQk9GA0YPQv9C/0LAg0LLQvtC/0YDQvtGB0L7Qsi5cbiAqL1xuZXhwb3J0IGNvbnN0IHNjR2V0RmFxR3JvdXBRdWVyeVBhcmFtcyA9IChncm91cDogU2NGYXFHcm91cCk6IFBhcmFtcyA9PiAoe1xuICAgIFtTQ19GQVFfR1JPVVBfUVVFUllfUEFSQU1dOiBncm91cC5pZCA/PyBudWxsLFxuICAgIFtTQ19QQUdFX1FVRVJZX1BBUkFNXTogbnVsbCxcbn0pO1xuIl19
@@ -2,13 +2,13 @@ import { AsyncPipe, NgIf } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, inject, output } from '@angular/core';
3
3
  import { toSignal } from '@angular/core/rxjs-interop';
4
4
  import { ActivatedRoute, Router } from '@angular/router';
5
- import { IS_SERVER, ScConvertersService, ScFrequentlyAskedQuestionsService, SchemaOrgFactory, ScSeoService, } from '@snabcentr/client-core';
5
+ import { IS_SERVER, SC_PAGE_QUERY_PARAM, ScConvertersService, ScFrequentlyAskedQuestionsService, scGetPageQueryParamChanges, SchemaOrgFactory, ScSeoService, } from '@snabcentr/client-core';
6
6
  import { TUI_WINDOW_SIZE, tuiIsFalsy, tuiIsPresent } from '@taiga-ui/cdk';
7
7
  import { TuiButton } from '@taiga-ui/core';
8
8
  import { BehaviorSubject, combineLatest, debounceTime, distinctUntilChanged, filter, map, of, shareReplay, startWith, switchMap, tap } from 'rxjs';
9
9
  import { ScPaginationLinksComponent } from '../../pagination';
10
10
  import { ScFrequentlyAskedQuestionsComponent, ScFrequentlyAskedQuestionsGroupSelectorComponent } from '..';
11
- import { SC_FAQ_GROUP_QUERY_PARAM, SC_FAQ_PAGE_QUERY_PARAM } from '../frequently-asked-questions/sc-faq-query-params';
11
+ import { SC_FAQ_GROUP_QUERY_PARAM } from '../frequently-asked-questions/sc-faq-query-params';
12
12
  import { SC_PAGE_SIZE_OPTIONS } from '../frequently-asked-questions/sc-page-size-options';
13
13
  import * as i0 from "@angular/core";
14
14
  /**
@@ -44,10 +44,6 @@ export class ScFrequentlyAskedQuestionsWithGroupsComponent {
44
44
  * Признак, что приложение запущено на сервере.
45
45
  */
46
46
  this.isServer = inject(IS_SERVER);
47
- /**
48
- * Индекс первой страницы.
49
- */
50
- this.firstPageIndex = 1;
51
47
  /**
52
48
  * Количество записей на странице пагинации.
53
49
  */
@@ -59,7 +55,7 @@ export class ScFrequentlyAskedQuestionsWithGroupsComponent {
59
55
  /**
60
56
  * {@link Observable} изменения номера страницы пагинации из query-параметров.
61
57
  */
62
- this.page$ = this.route.queryParamMap.pipe(map((params) => Number(params.get(SC_FAQ_PAGE_QUERY_PARAM)) || this.firstPageIndex), distinctUntilChanged());
58
+ this.page$ = scGetPageQueryParamChanges();
63
59
  /**
64
60
  * {@link Observable} изменения идентификатора выбранной группы.
65
61
  *
@@ -113,7 +109,7 @@ export class ScFrequentlyAskedQuestionsWithGroupsComponent {
113
109
  /**
114
110
  * Наименование query-параметра номера страницы пагинации.
115
111
  */
116
- this.pageQueryParam = SC_FAQ_PAGE_QUERY_PARAM;
112
+ this.pageQueryParam = SC_PAGE_QUERY_PARAM;
117
113
  }
118
114
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScFrequentlyAskedQuestionsWithGroupsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
119
115
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScFrequentlyAskedQuestionsWithGroupsComponent, isStandalone: true, selector: "sc-frequently-asked-questions-with-groups", outputs: { clickSendQuestion: "clickSendQuestion" }, host: { attributes: { "ngSkipHydration": "true" } }, ngImport: i0, template: "@let items = data$ | async;\n@let pageCount = pageCount$ | async;\n@let viewMode = viewMode$ | async;\n\n<div\n *ngIf=\"viewMode\"\n class=\"flex gap-6\"\n [class.flex-col]=\"viewMode === 'select'\"\n>\n <div class=\"flex flex-col gap-7\">\n <sc-frequently-asked-questions-group-selector\n [selectedGroupId]=\"groupId$ | async\"\n [viewMode]=\"viewMode\"\n class=\"shrink-0\"\n [class.w-64]=\"viewMode !== 'select'\"\n />\n\n <button\n *ngIf=\"viewMode === 'list'\"\n tuiButton\n size=\"m\"\n type=\"button\"\n iconStart=\"@tui.circle-help\"\n appearance=\"secondary\"\n (click)=\"clickSendQuestion.emit()\"\n class=\"self-center\"\n >\n \u0417\u0430\u0434\u0430\u0442\u044C \u0432\u043E\u043F\u0440\u043E\u0441\n </button>\n </div>\n\n <div class=\"grow\">\n @if (items && items.length) {\n <sc-frequently-asked-questions\n [items]=\"items\"\n [showLoading]=\"isLoading()\"\n />\n\n <sc-pagination-links\n *ngIf=\"pageCount && pageCount > 1\"\n [length]=\"pageCount\"\n [index]=\"(currentPage$ | async) ?? 1\"\n [queryParam]=\"pageQueryParam\"\n class=\"mt-4\"\n />\n } @else {\n <p class=\"text-body-s-bold\">\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432 \u043F\u0443\u0441\u0442</p>\n }\n </div>\n</div>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ScFrequentlyAskedQuestionsGroupSelectorComponent, selector: "sc-frequently-asked-questions-group-selector", inputs: ["selectedGroupId", "viewMode"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: ScFrequentlyAskedQuestionsComponent, selector: "sc-frequently-asked-questions", inputs: ["items", "showLoading"] }, { kind: "component", type: ScPaginationLinksComponent, selector: "sc-pagination-links", inputs: ["length", "index", "queryParam", "activePadding", "sidePadding"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
@@ -122,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
122
118
  type: Component,
123
119
  args: [{ standalone: true, selector: 'sc-frequently-asked-questions-with-groups', imports: [AsyncPipe, NgIf, ScFrequentlyAskedQuestionsGroupSelectorComponent, TuiButton, ScFrequentlyAskedQuestionsComponent, ScPaginationLinksComponent], host: { ngSkipHydration: 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "@let items = data$ | async;\n@let pageCount = pageCount$ | async;\n@let viewMode = viewMode$ | async;\n\n<div\n *ngIf=\"viewMode\"\n class=\"flex gap-6\"\n [class.flex-col]=\"viewMode === 'select'\"\n>\n <div class=\"flex flex-col gap-7\">\n <sc-frequently-asked-questions-group-selector\n [selectedGroupId]=\"groupId$ | async\"\n [viewMode]=\"viewMode\"\n class=\"shrink-0\"\n [class.w-64]=\"viewMode !== 'select'\"\n />\n\n <button\n *ngIf=\"viewMode === 'list'\"\n tuiButton\n size=\"m\"\n type=\"button\"\n iconStart=\"@tui.circle-help\"\n appearance=\"secondary\"\n (click)=\"clickSendQuestion.emit()\"\n class=\"self-center\"\n >\n \u0417\u0430\u0434\u0430\u0442\u044C \u0432\u043E\u043F\u0440\u043E\u0441\n </button>\n </div>\n\n <div class=\"grow\">\n @if (items && items.length) {\n <sc-frequently-asked-questions\n [items]=\"items\"\n [showLoading]=\"isLoading()\"\n />\n\n <sc-pagination-links\n *ngIf=\"pageCount && pageCount > 1\"\n [length]=\"pageCount\"\n [index]=\"(currentPage$ | async) ?? 1\"\n [queryParam]=\"pageQueryParam\"\n class=\"mt-4\"\n />\n } @else {\n <p class=\"text-body-s-bold\">\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u043E\u043F\u0440\u043E\u0441\u043E\u0432 \u043F\u0443\u0441\u0442</p>\n }\n </div>\n</div>\n" }]
124
120
  }] });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnMtd2l0aC1ncm91cHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL3BhZ2VzL2ZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLXdpdGgtZ3JvdXBzL3NjLWZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLXdpdGgtZ3JvdXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9wYWdlcy9mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy13aXRoLWdyb3Vwcy9zYy1mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy13aXRoLWdyb3Vwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNILFNBQVMsRUFDVCxtQkFBbUIsRUFFbkIsaUNBQWlDLEVBQ2pDLGdCQUFnQixFQUdoQixZQUFZLEdBQ2YsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVB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QyxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUV0Rzs7V0FFRztRQUNnQixVQUFLLEdBQW1DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN6RSxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQ3BCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUN4QixTQUFTLENBQUMsSUFBSSxDQUFDLENBQ2xCLENBQUM7UUFFRjs7V0FFRztRQUNnQixjQUFTLEdBQWtDLElBQUksQ0FBQyxRQUFRO1lBQ3ZFLENBQUMsQ0FBQyxFQUFFLENBQW9CLE1BQU0sQ0FBQztZQUMvQixDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTFGOztXQUVHO1FBQ2dCLG1CQUFjLEdBQVcsdUJBQXVCLENBQUM7S0FDdkU7K0dBOUlZLDZDQUE2QzttR0FBN0MsNkNBQTZDLCtNQ2xDMUQsOGxEQWtEQSx1Q0RwQmMsU0FBUyw4Q0FBRSxJQUFJLDZGQUFFLGdEQUFnRCxrSUFBRSxTQUFTLG9JQUFFLG1DQUFtQyw0R0FBRSwwQkFBMEI7OzRGQUk5SSw2Q0FBNkM7a0JBUnpELFNBQVM7aUNBQ00sSUFBSSxZQUNOLDJDQUEyQyxXQUU1QyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsZ0RBQWdELEVBQUUsU0FBUyxFQUFFLG1DQUFtQyxFQUFFLDBCQUEwQixDQUFDLFFBQ2xKLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxtQkFDaEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIG91dHB1dCwgT3V0cHV0RW1pdHRlclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gICAgSVNfU0VSVkVSLFxuICAgIFNjQ29udmVydGVyc1NlcnZpY2UsXG4gICAgU2NGYXFJdGVtLFxuICAgIFNjRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zU2VydmljZSxcbiAgICBTY2hlbWFPcmdGYWN0b3J5LFxuICAgIFNjSUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1BhZ2luYXRpb25QYXJhbXMsXG4gICAgU2NJUGFnaW5hdGUsXG4gICAgU2NTZW9TZXJ2aWNlLFxufSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFRVSV9XSU5ET1dfU0laRSwgdHVpSXNGYWxzeSwgdHVpSXNQcmVzZW50IH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBUdWlCdXR0b24gfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2NQYWdpbmF0aW9uTGlua3NDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYWdpbmF0aW9uJztcbmltcG9ydCB7IFNjRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zQ29tcG9uZW50LCBTY0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc0dyb3VwU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBTQ19GQVFfR1JPVVBfUVVFUllfUEFSQU0sIFNDX0ZBUV9QQUdFX1FVRVJZX1BBUkFNIH0gZnJvbSAnLi4vZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnMvc2MtZmFxLXF1ZXJ5LXBhcmFtcyc7XG5pbXBvcnQgeyBTQ19QQUdFX1NJWkVfT1BUSU9OUyB9IGZyb20gJy4uL2ZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zL3NjLXBhZ2Utc2l6ZS1vcHRpb25zJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0YfQsNGB0YLQviDQt9Cw0LTQsNCy0LDQtdC80YvRhSDQstC+0L/RgNC+0YHQvtCyINGBINCy0L7Qt9C80L7QttC90L7RgdGC0YzRjiDQstGL0LHQvtGA0LAg0LPRgNGD0L/Qv9GLINCy0L7Qv9GA0L7RgdC+0LIuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzYy1mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy13aXRoLWdyb3VwcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLWZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLXdpdGgtZ3JvdXBzLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBOZ0lmLCBTY0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc0dyb3VwU2VsZWN0b3JDb21wb25lbnQsIFR1aUJ1dHRvbiwgU2NGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNDb21wb25lbnQsIFNjUGFnaW5hdGlvbkxpbmtzQ29tcG9uZW50XSxcbiAgICBob3N0OiB7IG5nU2tpcEh5ZHJhdGlvbjogJ3RydWUnIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zV2l0aEdyb3Vwc0NvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyBFbWFpbCDQtNC70Y8g0YHQstGP0LfQuCDQv9C+INCy0L7Qv9GA0L7RgdCw0Lwg0YDQtdC60LvQsNC80LDRhtC40LkuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1NlcnZpY2U6IFNjRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zU2VydmljZSA9IGluamVjdChTY0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1NlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC60L7QvdCy0LXRgNGC0LDRhtC40Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udmVydGVyc1NlcnZpY2U6IFNjQ29udmVydGVyc1NlcnZpY2UgPSBpbmplY3QoU2NDb252ZXJ0ZXJzU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0YPRgdGC0LDQvdC+0LLQutC4IFNFTy3QtNCw0L3QvdGL0YUg0L/RgNC40LvQvtC20LXQvdC40Y8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZW9TZXJ2aWNlOiBTY1Nlb1NlcnZpY2UgPSBpbmplY3QoU2NTZW9TZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCk0LDQsdGA0LjQutCwINC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINC00LDQvdC90YvRhSBTY2hlbWEub3JnLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hT3JnRmFjdG9yeTogU2NoZW1hT3JnRmFjdG9yeSA9IGluamVjdChTY2hlbWFPcmdGYWN0b3J5KTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQvNCw0YDRiNGA0YPRgtC40LfQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgICAvKipcbiAgICAgKiDQkNC60YLQuNCy0L3Ri9C5INC80LDRgNGI0YDRg9GCLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcblxuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6LCDRh9GC0L4g0L/RgNC40LvQvtC20LXQvdC40LUg0LfQsNC/0YPRidC10L3QviDQvdCwINGB0LXRgNCy0LXRgNC1LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNTZXJ2ZXI6IFJlYWRvbmx5PGJvb2xlYW4+ID0gaW5qZWN0PGJvb2xlYW4+KElTX1NFUlZFUik7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LTQtdC60YEg0L/QtdGA0LLQvtC5INGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaXJzdFBhZ2VJbmRleDogbnVtYmVyID0gMTtcblxuICAgIC8qKlxuICAgICAqINCa0L7Qu9C40YfQtdGB0YLQstC+INC30LDQv9C40YHQtdC5INC90LAg0YHRgtGA0LDQvdC40YbQtSDQv9Cw0LPQuNC90LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gaW5qZWN0KFNDX1BBR0VfU0laRV9PUFRJT05TKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBCZWhhdmlvclN1YmplY3R9INC40LfQvNC10L3QtdC90LjRjyDQutC+0LvQuNGH0LXRgdGC0LLQsCDQt9Cw0L/QuNGB0LXQuSDQvdCwINGB0YLRgNCw0L3QuNGG0LUuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwZXJQYWdlJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4odGhpcy5wYWdlU2l6ZU9wdGlvbnNbMF0pO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQvdC+0LzQtdGA0LAg0YHRgtGA0LDQvdC40YbRiyDQv9Cw0LPQuNC90LDRhtC40Lgg0LjQtyBxdWVyeS3Qv9Cw0YDQsNC80LXRgtGA0L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2UkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1NYXAucGlwZShcbiAgICAgICAgbWFwKChwYXJhbXMpID0+IE51bWJlcihwYXJhbXMuZ2V0KFNDX0ZBUV9QQUdFX1FVRVJZX1BBUkFNKSkgfHwgdGhpcy5maXJzdFBhZ2VJbmRleCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNCwINCy0YvQsdGA0LDQvdC90L7QuSDQs9GA0YPQv9C/0YsuXG4gICAgICpcbiAgICAgKiDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDQsdC10YDRkdGC0YHRjyDQuNC3IHF1ZXJ5LdC/0LDRgNCw0LzQtdGC0YDQvtCyLCDQsCDQtdGB0LvQuCDQv9Cw0YDQsNC80LXRgtGAINC90LUg0LfQsNC00LDQvSAtINC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQv9C10YDQstCw0Y8g0LPRgNGD0L/Qv9CwINGB0L/QuNGB0LrQsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ3JvdXBJZCQ6IE9ic2VydmFibGU8bnVtYmVyIHwgbnVsbD4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1NYXAsIHRoaXMuZnJlcXVlbnRseUFza2VkUXVlc3Rpb25zU2VydmljZS5ncm91cHMkXSkucGlwZShcbiAgICAgICAgbWFwKChbcGFyYW1zLCBncm91cHNdKSA9PiBOdW1iZXIocGFyYW1zLmdldChTQ19GQVFfR1JPVVBfUVVFUllfUEFSQU0pKSB8fCAoZ3JvdXBzWzBdPy5pZCA/PyBudWxsKSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHNoYXJlUmVwbGF5KHsgcmVmQ291bnQ6IHRydWUsIGJ1ZmZlclNpemU6IDEgfSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICog0KHQuNCz0L3QsNC7INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDIFwi0JfQsNC00LDRgtGMINCy0L7Qv9GA0L7RgVwiLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBjbGlja1NlbmRRdWVzdGlvbjogT3V0cHV0RW1pdHRlclJlZjx2b2lkPiA9IG91dHB1dCgpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC00LDQvdC90YvRhSDRgdC/0LjRgdC60LAg0LfQsNC60LDQt9C+0LIuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0JDogT2JzZXJ2YWJsZTxTY0lQYWdpbmF0ZTxTY0ZhcUl0ZW0+IHwgbnVsbD4gPSBjb21iaW5lTGF0ZXN0KHtcbiAgICAgICAgcGFnZTogdGhpcy5wYWdlJCxcbiAgICAgICAgcGVyUGFnZTogdGhpcy5wZXJQYWdlJCxcbiAgICAgICAgZ3JvdXA6IHRoaXMuZ3JvdXBJZCQucGlwZShmaWx0ZXIodHVpSXNQcmVzZW50KSksXG4gICAgICAgIHBhZ2luYXRlOiBvZih0cnVlKSxcbiAgICB9KS5waXBlKFxuICAgICAgICAvLyDQndGD0LvQtdCy0L7QuSBkZWJvdW5jZVRpbWUg0LTQu9GPINGB0LvRg9GH0LDRjywg0LrQvtCz0LTQsCDQvNC10L3Rj9GO0YLRgdGPINC90LDQv9GA0LDQstC70LXQvdC40LUg0Lgg0L/QvtC70LUg0YHQvtGA0YLQuNGA0L7QstC60Lgg0L7QtNC90L7QstGA0LXQvNC10L3QvdC+LlxuICAgICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICAgIHN3aXRjaE1hcCgodmFsdWU6IFNjSUZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1BhZ2luYXRpb25QYXJhbXMpID0+XG4gICAgICAgICAgICB0aGlzLmZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1NlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0RnJlcXVlbnRseUFza2VkUXVlc3Rpb25zJCh0aGlzLmNvbnZlcnRlcnNTZXJ2aWNlLnJlbW92ZU51bGw8U2NJRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zUGFnaW5hdGlvblBhcmFtcz4odmFsdWUpKVxuICAgICAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aChudWxsKSlcbiAgICAgICAgKSxcbiAgICAgICAgdGFwKChkYXRhKSA9PiB7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhZ2VUaXRsZSA9ICfQp9Cw0YHRgtC+INC30LDQtNCw0LLQsNC10LzRi9C1INCy0L7Qv9GA0L7RgdGLIC0gRkFRJztcblxuICAgICAgICAgICAgICAgIHRoaXMuc2VvU2VydmljZS5zZXRCeURlZmF1bHQocGFnZVRpdGxlLCB1bmRlZmluZWQsIHRoaXMuc2NoZW1hT3JnRmFjdG9yeS5nZW5lcmF0ZUZvckZhcVBhZ2UoZGF0YS5kYXRhLCB0aGlzLnJvdXRlci51cmwsIHBhZ2VUaXRsZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINC+0LHRidC10LPQviDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgdGC0YDQsNC90LjRhiDQv9Cw0LPQuNC90LDRhtC40LguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhZ2VDb3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMucmVxdWVzdCQucGlwZShcbiAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgIG1hcCgoeyBtZXRhIH0pID0+IG1ldGEubGFzdFBhZ2UpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0L3QvtC80LXRgNCwINGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4INC40Lcg0LTQsNC90L3Ri9GFINC/0LDQs9C40L3QsNGG0LjQuCDQt9Cw0L/RgNC+0YHQsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3VycmVudFBhZ2UkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLnJlcXVlc3QkLnBpcGUoXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBtYXAoKHsgbWV0YSB9KSA9PiBtZXRhLmN1cnJlbnRQYWdlKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0L7RgdGC0L7Rj9C90LjRjyDQt9Cw0LPRgNGD0LfQutC4INC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNMb2FkaW5nID0gdG9TaWduYWwodGhpcy5yZXF1ZXN0JC5waXBlKG1hcCh0dWlJc0ZhbHN5KSksIHsgaW5pdGlhbFZhbHVlOiBmYWxzZSB9KTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0YHQv9C40YHQutCwINC30LDQutCw0LfQvtCyINGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkYXRhJDogT2JzZXJ2YWJsZTxTY0ZhcUl0ZW1bXSB8IG51bGw+ID0gdGhpcy5yZXF1ZXN0JC5waXBlKFxuICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgbWFwKChkYXRhKSA9PiBkYXRhLmRhdGEpLFxuICAgICAgICBzdGFydFdpdGgobnVsbClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRhNC+0YDQvNCw0YLQsCDQvtGC0L7QsdGA0LDQttC10L3QuNGPINGE0LjQu9GM0YLRgNCwINCz0YDRg9C/0L8uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHZpZXdNb2RlJDogT2JzZXJ2YWJsZTwnbGlzdCcgfCAnc2VsZWN0Jz4gPSB0aGlzLmlzU2VydmVyXG4gICAgICAgID8gb2Y8J2xpc3QnIHwgJ3NlbGVjdCc+KCdsaXN0JylcbiAgICAgICAgOiBpbmplY3QoVFVJX1dJTkRPV19TSVpFKS5waXBlKG1hcCgocmVjdCkgPT4gKHJlY3Qud2lkdGggPiA3NjggPyAnbGlzdCcgOiAnc2VsZWN0JykpKTtcblxuICAgIC8qKlxuICAgICAqINCd0LDQuNC80LXQvdC+0LLQsNC90LjQtSBxdWVyeS3Qv9Cw0YDQsNC80LXRgtGA0LAg0L3QvtC80LXRgNCwINGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBwYWdlUXVlcnlQYXJhbTogc3RyaW5nID0gU0NfRkFRX1BBR0VfUVVFUllfUEFSQU07XG59XG4iLCJAbGV0IGl0ZW1zID0gZGF0YSQgfCBhc3luYztcbkBsZXQgcGFnZUNvdW50ID0gcGFnZUNvdW50JCB8IGFzeW5jO1xuQGxldCB2aWV3TW9kZSA9IHZpZXdNb2RlJCB8IGFzeW5jO1xuXG48ZGl2XG4gICAgKm5nSWY9XCJ2aWV3TW9kZVwiXG4gICAgY2xhc3M9XCJmbGV4IGdhcC02XCJcbiAgICBbY2xhc3MuZmxleC1jb2xdPVwidmlld01vZGUgPT09ICdzZWxlY3QnXCJcbj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtN1wiPlxuICAgICAgICA8c2MtZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnMtZ3JvdXAtc2VsZWN0b3JcbiAgICAgICAgICAgIFtzZWxlY3RlZEdyb3VwSWRdPVwiZ3JvdXBJZCQgfCBhc3luY1wiXG4gICAgICAgICAgICBbdmlld01vZGVdPVwidmlld01vZGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJzaHJpbmstMFwiXG4gICAgICAgICAgICBbY2xhc3Mudy02NF09XCJ2aWV3TW9kZSAhPT0gJ3NlbGVjdCdcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwidmlld01vZGUgPT09ICdsaXN0J1wiXG4gICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgaWNvblN0YXJ0PVwiQHR1aS5jaXJjbGUtaGVscFwiXG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGlja1NlbmRRdWVzdGlvbi5lbWl0KClcIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWxmLWNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICAgINCX0LDQtNCw0YLRjCDQstC+0L/RgNC+0YFcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZ3Jvd1wiPlxuICAgICAgICBAaWYgKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgPHNjLWZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zXG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cIml0ZW1zXCJcbiAgICAgICAgICAgICAgICBbc2hvd0xvYWRpbmddPVwiaXNMb2FkaW5nKClcIlxuICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgPHNjLXBhZ2luYXRpb24tbGlua3NcbiAgICAgICAgICAgICAgICAqbmdJZj1cInBhZ2VDb3VudCAmJiBwYWdlQ291bnQgPiAxXCJcbiAgICAgICAgICAgICAgICBbbGVuZ3RoXT1cInBhZ2VDb3VudFwiXG4gICAgICAgICAgICAgICAgW2luZGV4XT1cIihjdXJyZW50UGFnZSQgfCBhc3luYykgPz8gMVwiXG4gICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1dPVwicGFnZVF1ZXJ5UGFyYW1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXQtNFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1ib2R5LXMtYm9sZFwiPtCh0L/QuNGB0L7QuiDQstC+0L/RgNC+0YHQvtCyINC/0YPRgdGCPC9wPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnMtd2l0aC1ncm91cHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL3BhZ2VzL2ZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLXdpdGgtZ3JvdXBzL3NjLWZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLXdpdGgtZ3JvdXBzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9wYWdlcy9mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy13aXRoLWdyb3Vwcy9zYy1mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy13aXRoLWdyb3Vwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNILFNBQVMsRUFDVCxtQkFBbUIsRUFDbkIsbUJBQW1CLEVBRW5CLGlDQUFpQyxFQUNqQywwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBR2hCLFlBQVksR0FDZixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixF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Q0FBQyxFQUN4QixTQUFTLENBQUMsSUFBSSxDQUFDLENBQ2xCLENBQUM7UUFFRjs7V0FFRztRQUNnQixjQUFTLEdBQWtDLElBQUksQ0FBQyxRQUFRO1lBQ3ZFLENBQUMsQ0FBQyxFQUFFLENBQW9CLE1BQU0sQ0FBQztZQUMvQixDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTFGOztXQUVHO1FBQ2dCLG1CQUFjLEdBQVcsbUJBQW1CLENBQUM7S0FDbkU7K0dBdElZLDZDQUE2QzttR0FBN0MsNkNBQTZDLCtNQ3BDMUQsOGxEQWtEQSx1Q0RsQmMsU0FBUyw4Q0FBRSxJQUFJLDZGQUFFLGdEQUFnRCxrSUFBRSxTQUFTLG9JQUFFLG1DQUFtQyw0R0FBRSwwQkFBMEI7OzRGQUk5SSw2Q0FBNkM7a0JBUnpELFNBQVM7aUNBQ00sSUFBSSxZQUNOLDJDQUEyQyxXQUU1QyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsZ0RBQWdELEVBQUUsU0FBUyxFQUFFLG1DQUFtQyxFQUFFLDBCQUEwQixDQUFDLFFBQ2xKLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxtQkFDaEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIG91dHB1dCwgT3V0cHV0RW1pdHRlclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gICAgSVNfU0VSVkVSLFxuICAgIFNDX1BBR0VfUVVFUllfUEFSQU0sXG4gICAgU2NDb252ZXJ0ZXJzU2VydmljZSxcbiAgICBTY0ZhcUl0ZW0sXG4gICAgU2NGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNTZXJ2aWNlLFxuICAgIHNjR2V0UGFnZVF1ZXJ5UGFyYW1DaGFuZ2VzLFxuICAgIFNjaGVtYU9yZ0ZhY3RvcnksXG4gICAgU2NJRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zUGFnaW5hdGlvblBhcmFtcyxcbiAgICBTY0lQYWdpbmF0ZSxcbiAgICBTY1Nlb1NlcnZpY2UsXG59IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgVFVJX1dJTkRPV19TSVpFLCB0dWlJc0ZhbHN5LCB0dWlJc1ByZXNlbnQgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFR1aUJ1dHRvbiB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY1BhZ2luYXRpb25MaW5rc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BhZ2luYXRpb24nO1xuaW1wb3J0IHsgU2NGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNDb21wb25lbnQsIFNjRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zR3JvdXBTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uJztcbmltcG9ydCB7IFNDX0ZBUV9HUk9VUF9RVUVSWV9QQVJBTSB9IGZyb20gJy4uL2ZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zL3NjLWZhcS1xdWVyeS1wYXJhbXMnO1xuaW1wb3J0IHsgU0NfUEFHRV9TSVpFX09QVElPTlMgfSBmcm9tICcuLi9mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy9zYy1wYWdlLXNpemUtb3B0aW9ucyc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINGH0LDRgdGC0L4g0LfQsNC00LDQstCw0LXQvNGL0YUg0LLQvtC/0YDQvtGB0L7QsiDRgSDQstC+0LfQvNC+0LbQvdC+0YHRgtGM0Y4g0LLRi9Cx0L7RgNCwINCz0YDRg9C/0L/RiyDQstC+0L/RgNC+0YHQvtCyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnc2MtZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnMtd2l0aC1ncm91cHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy13aXRoLWdyb3Vwcy5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgTmdJZiwgU2NGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNHcm91cFNlbGVjdG9yQ29tcG9uZW50LCBUdWlCdXR0b24sIFNjRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zQ29tcG9uZW50LCBTY1BhZ2luYXRpb25MaW5rc0NvbXBvbmVudF0sXG4gICAgaG9zdDogeyBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1dpdGhHcm91cHNDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8gRW1haWwg0LTQu9GPINGB0LLRj9C30Lgg0L/QviDQstC+0L/RgNC+0YHQsNC8INGA0LXQutC70LDQvNCw0YbQuNC5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBmcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNTZXJ2aWNlOiBTY0ZyZXF1ZW50bHlBc2tlZFF1ZXN0aW9uc1NlcnZpY2UgPSBpbmplY3QoU2NGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQutC+0L3QstC10YDRgtCw0YbQuNC4INC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnZlcnRlcnNTZXJ2aWNlOiBTY0NvbnZlcnRlcnNTZXJ2aWNlID0gaW5qZWN0KFNjQ29udmVydGVyc1NlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINGD0YHRgtCw0L3QvtCy0LrQuCBTRU8t0LTQsNC90L3Ri9GFINC/0YDQuNC70L7QttC10L3QuNGPLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VvU2VydmljZTogU2NTZW9TZXJ2aWNlID0gaW5qZWN0KFNjU2VvU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQpNCw0LHRgNC40LrQsCDQtNC70Y8g0YHQvtC30LTQsNC90LjRjyDQtNCw0L3QvdGL0YUgU2NoZW1hLm9yZy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjaGVtYU9yZ0ZhY3Rvcnk6IFNjaGVtYU9yZ0ZhY3RvcnkgPSBpbmplY3QoU2NoZW1hT3JnRmFjdG9yeSk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LzQsNGA0YjRgNGD0YLQuNC30LDRhtC40LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuXG4gICAgLyoqXG4gICAgICog0JDQutGC0LjQstC90YvQuSDQvNCw0YDRiNGA0YPRgi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiwg0YfRgtC+INC/0YDQuNC70L7QttC10L3QuNC1INC30LDQv9GD0YnQtdC90L4g0L3QsCDRgdC10YDQstC10YDQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGlzU2VydmVyOiBSZWFkb25seTxib29sZWFuPiA9IGluamVjdDxib29sZWFuPihJU19TRVJWRVIpO1xuXG4gICAgLyoqXG4gICAgICog0JrQvtC70LjRh9C10YHRgtCy0L4g0LfQsNC/0LjRgdC10Lkg0L3QsCDRgdGC0YDQsNC90LjRhtC1INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VTaXplT3B0aW9uczogbnVtYmVyW10gPSBpbmplY3QoU0NfUEFHRV9TSVpFX09QVElPTlMpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIEJlaGF2aW9yU3ViamVjdH0g0LjQt9C80LXQvdC10L3QuNGPINC60L7Qu9C40YfQtdGB0YLQstCwINC30LDQv9C40YHQtdC5INC90LAg0YHRgtGA0LDQvdC40YbQtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBlclBhZ2UkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPih0aGlzLnBhZ2VTaXplT3B0aW9uc1swXSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINC90L7QvNC10YDQsCDRgdGC0YDQsNC90LjRhtGLINC/0LDQs9C40L3QsNGG0LjQuCDQuNC3IHF1ZXJ5LdC/0LDRgNCw0LzQtdGC0YDQvtCyLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnZSQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHNjR2V0UGFnZVF1ZXJ5UGFyYW1DaGFuZ2VzKCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0LAg0LLRi9Cx0YDQsNC90L3QvtC5INCz0YDRg9C/0L/Riy5cbiAgICAgKlxuICAgICAqINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINCx0LXRgNGR0YLRgdGPINC40LcgcXVlcnkt0L/QsNGA0LDQvNC10YLRgNC+0LIsINCwINC10YHQu9C4INC/0LDRgNCw0LzQtdGC0YAg0L3QtSDQt9Cw0LTQsNC9IC0g0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC/0LXRgNCy0LDRjyDQs9GA0YPQv9C/0LAg0YHQv9C40YHQutCwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBncm91cElkJDogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMucm91dGUucXVlcnlQYXJhbU1hcCwgdGhpcy5mcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNTZXJ2aWNlLmdyb3VwcyRdKS5waXBlKFxuICAgICAgICBtYXAoKFtwYXJhbXMsIGdyb3Vwc10pID0+IE51bWJlcihwYXJhbXMuZ2V0KFNDX0ZBUV9HUk9VUF9RVUVSWV9QQVJBTSkpIHx8IChncm91cHNbMF0/LmlkID8/IG51bGwpKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoeyByZWZDb3VudDogdHJ1ZSwgYnVmZmVyU2l6ZTogMSB9KVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQodC40LPQvdCw0Lsg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMgXCLQl9Cw0LTQsNGC0Ywg0LLQvtC/0YDQvtGBXCIuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGNsaWNrU2VuZFF1ZXN0aW9uOiBPdXRwdXRFbWl0dGVyUmVmPHZvaWQ+ID0gb3V0cHV0KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LfQsNC/0YDQvtGB0LAg0LTQsNC90L3Ri9GFINGB0L/QuNGB0LrQsCDQt9Cw0LrQsNC30L7Qsi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3QkOiBPYnNlcnZhYmxlPFNjSVBhZ2luYXRlPFNjRmFxSXRlbT4gfCBudWxsPiA9IGNvbWJpbmVMYXRlc3Qoe1xuICAgICAgICBwYWdlOiB0aGlzLnBhZ2UkLFxuICAgICAgICBwZXJQYWdlOiB0aGlzLnBlclBhZ2UkLFxuICAgICAgICBncm91cDogdGhpcy5ncm91cElkJC5waXBlKGZpbHRlcih0dWlJc1ByZXNlbnQpKSxcbiAgICAgICAgcGFnaW5hdGU6IG9mKHRydWUpLFxuICAgIH0pLnBpcGUoXG4gICAgICAgIC8vINCd0YPQu9C10LLQvtC5IGRlYm91bmNlVGltZSDQtNC70Y8g0YHQu9GD0YfQsNGPLCDQutC+0LPQtNCwINC80LXQvdGP0Y7RgtGB0Y8g0L3QsNC/0YDQsNCy0LvQtdC90LjQtSDQuCDQv9C+0LvQtSDRgdC+0YDRgtC40YDQvtCy0LrQuCDQvtC00L3QvtCy0YDQtdC80LXQvdC90L4uXG4gICAgICAgIGRlYm91bmNlVGltZSgwKSxcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZTogU2NJRnJlcXVlbnRseUFza2VkUXVlc3Rpb25zUGFnaW5hdGlvblBhcmFtcykgPT5cbiAgICAgICAgICAgIHRoaXMuZnJlcXVlbnRseUFza2VkUXVlc3Rpb25zU2VydmljZVxuICAgICAgICAgICAgICAgIC5nZXRGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnMkKHRoaXMuY29udmVydGVyc1NlcnZpY2UucmVtb3ZlTnVsbDxTY0lGcmVxdWVudGx5QXNrZWRRdWVzdGlvbnNQYWdpbmF0aW9uUGFyYW1zPih2YWx1ZSkpXG4gICAgICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKG51bGwpKVxuICAgICAgICApLFxuICAgICAgICB0YXAoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFnZVRpdGxlID0gJ9Cn0LDRgdGC0L4g0LfQsNC00LDQstCw0LXQvNGL0LUg0LLQvtC/0YDQvtGB0YsgLSBGQVEnO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5zZW9TZXJ2aWNlLnNldEJ5RGVmYXVsdChwYWdlVGl0bGUsIHVuZGVmaW5lZCwgdGhpcy5zY2hlbWFPcmdGYWN0b3J5LmdlbmVyYXRlRm9yRmFxUGFnZShkYXRhLmRhdGEsIHRoaXMucm91dGVyLnVybCwgcGFnZVRpdGxlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBzaGFyZVJlcGxheSh7IHJlZkNvdW50OiB0cnVlLCBidWZmZXJTaXplOiAxIH0pXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0L7QsdGJ0LXQs9C+INC60L7Qu9C40YfQtdGB0YLQstCwINGB0YLRgNCw0L3QuNGGINC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFnZUNvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy5yZXF1ZXN0JC5waXBlKFxuICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgbWFwKCh7IG1ldGEgfSkgPT4gbWV0YS5sYXN0UGFnZSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQvdC+0LzQtdGA0LAg0YHRgtGA0LDQvdC40YbRiyDQv9Cw0LPQuNC90LDRhtC40Lgg0LjQtyDQtNCw0L3QvdGL0YUg0L/QsNCz0LjQvdCw0YbQuNC4INC30LDQv9GA0L7RgdCwLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjdXJyZW50UGFnZSQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMucmVxdWVzdCQucGlwZShcbiAgICAgICAgZmlsdGVyKHR1aUlzUHJlc2VudCksXG4gICAgICAgIG1hcCgoeyBtZXRhIH0pID0+IG1ldGEuY3VycmVudFBhZ2UpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0YHQvtGB0YLQvtGP0L3QuNGPINC30LDQs9GA0YPQt9C60Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0xvYWRpbmcgPSB0b1NpZ25hbCh0aGlzLnJlcXVlc3QkLnBpcGUobWFwKHR1aUlzRmFsc3kpKSwgeyBpbml0aWFsVmFsdWU6IGZhbHNlIH0pO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC/0LjRgdC60LAg0LfQsNC60LDQt9C+0LIg0YHRgtGA0LDQvdC40YbRiyDQv9Cw0LPQuNC90LDRhtC40LguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGEkOiBPYnNlcnZhYmxlPFNjRmFxSXRlbVtdIHwgbnVsbD4gPSB0aGlzLnJlcXVlc3QkLnBpcGUoXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBtYXAoKGRhdGEpID0+IGRhdGEuZGF0YSksXG4gICAgICAgIHN0YXJ0V2l0aChudWxsKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGE0L7RgNC80LDRgtCwINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0YTQuNC70YzRgtGA0LAg0LPRgNGD0L/Qvy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmlld01vZGUkOiBPYnNlcnZhYmxlPCdsaXN0JyB8ICdzZWxlY3QnPiA9IHRoaXMuaXNTZXJ2ZXJcbiAgICAgICAgPyBvZjwnbGlzdCcgfCAnc2VsZWN0Jz4oJ2xpc3QnKVxuICAgICAgICA6IGluamVjdChUVUlfV0lORE9XX1NJWkUpLnBpcGUobWFwKChyZWN0KSA9PiAocmVjdC53aWR0aCA+IDc2OCA/ICdsaXN0JyA6ICdzZWxlY3QnKSkpO1xuXG4gICAgLyoqXG4gICAgICog0J3QsNC40LzQtdC90L7QstCw0L3QuNC1IHF1ZXJ5LdC/0LDRgNCw0LzQtdGC0YDQsCDQvdC+0LzQtdGA0LAg0YHRgtGA0LDQvdC40YbRiyDQv9Cw0LPQuNC90LDRhtC40LguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBhZ2VRdWVyeVBhcmFtOiBzdHJpbmcgPSBTQ19QQUdFX1FVRVJZX1BBUkFNO1xufVxuIiwiQGxldCBpdGVtcyA9IGRhdGEkIHwgYXN5bmM7XG5AbGV0IHBhZ2VDb3VudCA9IHBhZ2VDb3VudCQgfCBhc3luYztcbkBsZXQgdmlld01vZGUgPSB2aWV3TW9kZSQgfCBhc3luYztcblxuPGRpdlxuICAgICpuZ0lmPVwidmlld01vZGVcIlxuICAgIGNsYXNzPVwiZmxleCBnYXAtNlwiXG4gICAgW2NsYXNzLmZsZXgtY29sXT1cInZpZXdNb2RlID09PSAnc2VsZWN0J1wiXG4+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTdcIj5cbiAgICAgICAgPHNjLWZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLWdyb3VwLXNlbGVjdG9yXG4gICAgICAgICAgICBbc2VsZWN0ZWRHcm91cElkXT1cImdyb3VwSWQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgW3ZpZXdNb2RlXT1cInZpZXdNb2RlXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2hyaW5rLTBcIlxuICAgICAgICAgICAgW2NsYXNzLnctNjRdPVwidmlld01vZGUgIT09ICdzZWxlY3QnXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInZpZXdNb2RlID09PSAnbGlzdCdcIlxuICAgICAgICAgICAgdHVpQnV0dG9uXG4gICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkuY2lyY2xlLWhlbHBcIlxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tTZW5kUXVlc3Rpb24uZW1pdCgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2VsZi1jZW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgICDQl9Cw0LTQsNGC0Ywg0LLQvtC/0YDQvtGBXG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImdyb3dcIj5cbiAgICAgICAgQGlmIChpdGVtcyAmJiBpdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIDxzYy1mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9uc1xuICAgICAgICAgICAgICAgIFtpdGVtc109XCJpdGVtc1wiXG4gICAgICAgICAgICAgICAgW3Nob3dMb2FkaW5nXT1cImlzTG9hZGluZygpXCJcbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIDxzYy1wYWdpbmF0aW9uLWxpbmtzXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJwYWdlQ291bnQgJiYgcGFnZUNvdW50ID4gMVwiXG4gICAgICAgICAgICAgICAgW2xlbmd0aF09XCJwYWdlQ291bnRcIlxuICAgICAgICAgICAgICAgIFtpbmRleF09XCIoY3VycmVudFBhZ2UkIHwgYXN5bmMpID8/IDFcIlxuICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtXT1cInBhZ2VRdWVyeVBhcmFtXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm10LTRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtYm9keS1zLWJvbGRcIj7QodC/0LjRgdC+0Log0LLQvtC/0YDQvtGB0L7QsiDQv9GD0YHRgjwvcD5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -3,7 +3,8 @@ export * from './frequently-asked-questions/sc-frequently-asked-questions.compon
3
3
  export * from './frequently-asked-questions/sc-get-faq-group-query-params';
4
4
  export * from './frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component';
5
5
  export * from './frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component';
6
+ export * from './news-list/sc-news-list.component';
6
7
  export * from './personal-data-processing-policy/sc-personal-data-processing-policy.component';
7
8
  export * from './privacy-policy/sc-privacy-policy.component';
8
9
  export * from './public-offer/sc-public-offer.component';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvcGFnZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxvR0FBb0csQ0FBQztBQUNuSCxjQUFjLDhGQUE4RixDQUFDO0FBQzdHLGNBQWMsZ0ZBQWdGLENBQUM7QUFDL0YsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy9zYy1mYXEtcXVlcnktcGFyYW1zJztcbmV4cG9ydCAqIGZyb20gJy4vZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnMvc2MtZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZnJlcXVlbnRseS1hc2tlZC1xdWVzdGlvbnMvc2MtZ2V0LWZhcS1ncm91cC1xdWVyeS1wYXJhbXMnO1xuZXhwb3J0ICogZnJvbSAnLi9mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy1ncm91cC1zZWxlY3Rvci9zYy1mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy1ncm91cC1zZWxlY3Rvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy13aXRoLWdyb3Vwcy9zYy1mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy13aXRoLWdyb3Vwcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wZXJzb25hbC1kYXRhLXByb2Nlc3NpbmctcG9saWN5L3NjLXBlcnNvbmFsLWRhdGEtcHJvY2Vzc2luZy1wb2xpY3kuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcHJpdmFjeS1wb2xpY3kvc2MtcHJpdmFjeS1wb2xpY3kuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLW9mZmVyL3NjLXB1YmxpYy1vZmZlci5jb21wb25lbnQnO1xuIl19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvcGFnZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxvR0FBb0csQ0FBQztBQUNuSCxjQUFjLDhGQUE4RixDQUFDO0FBQzdHLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxnRkFBZ0YsQ0FBQztBQUMvRixjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zL3NjLWZhcS1xdWVyeS1wYXJhbXMnO1xuZXhwb3J0ICogZnJvbSAnLi9mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy9zYy1mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mcmVxdWVudGx5LWFza2VkLXF1ZXN0aW9ucy9zYy1nZXQtZmFxLWdyb3VwLXF1ZXJ5LXBhcmFtcyc7XG5leHBvcnQgKiBmcm9tICcuL2ZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLWdyb3VwLXNlbGVjdG9yL3NjLWZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLWdyb3VwLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLXdpdGgtZ3JvdXBzL3NjLWZyZXF1ZW50bHktYXNrZWQtcXVlc3Rpb25zLXdpdGgtZ3JvdXBzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL25ld3MtbGlzdC9zYy1uZXdzLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcGVyc29uYWwtZGF0YS1wcm9jZXNzaW5nLXBvbGljeS9zYy1wZXJzb25hbC1kYXRhLXByb2Nlc3NpbmctcG9saWN5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3ByaXZhY3ktcG9saWN5L3NjLXByaXZhY3ktcG9saWN5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1vZmZlci9zYy1wdWJsaWMtb2ZmZXIuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,90 @@
1
+ import { AsyncPipe, NgFor, NgIf } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
3
+ import { outputFromObservable, takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
4
+ import { Router } from '@angular/router';
5
+ import { SC_PAGE_QUERY_PARAM, SC_USER_INFO, scGetPageQueryParamChanges, ScNewsService } from '@snabcentr/client-core';
6
+ import { tuiIsFalsy, tuiIsPresent } from '@taiga-ui/cdk';
7
+ import { TuiLoader } from '@taiga-ui/core';
8
+ import { combineLatest, debounceTime, filter, map, of, share, skip, startWith, switchMap } from 'rxjs';
9
+ import { ScNewsModule } from '../../news';
10
+ import { ScPaginationLinksComponent } from '../../pagination';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "../../news/news-card/sc-news-card.component";
13
+ import * as i2 from "../../news/news-card-skeleton/sc-news-card-skeleton.component";
14
+ /**
15
+ * Компонент списка новостей с пагинацией через query-параметр страницы.
16
+ *
17
+ * Ссылки пагинации корректно работают при SSR и позволяют поисковым роботам обходить страницы списка.
18
+ */
19
+ export class ScNewsListComponent {
20
+ /**
21
+ * Инициализирует экземпляр класса {@link ScNewsListComponent}.
22
+ */
23
+ constructor() {
24
+ /**
25
+ * Сервис для получения списка новостей.
26
+ */
27
+ this.newsService = inject(ScNewsService);
28
+ /**
29
+ * Сервис маршрутизации.
30
+ */
31
+ this.router = inject(Router);
32
+ /**
33
+ * {@link InputSignal} количества записей на странице пагинации.
34
+ */
35
+ this.perPage = input(16);
36
+ /**
37
+ * {@link Observable} изменения номера страницы пагинации из query-параметров.
38
+ */
39
+ this.page$ = scGetPageQueryParamChanges();
40
+ /**
41
+ * {@link Observable} запроса данных списка новостей.
42
+ */
43
+ this.request$ = combineLatest([
44
+ combineLatest({
45
+ page: this.page$,
46
+ perPage: toObservable(this.perPage),
47
+ paginate: of(true),
48
+ }),
49
+ inject(SC_USER_INFO),
50
+ ]).pipe(
51
+ // Нулевой debounceTime для случая, когда номер страницы и количество записей меняются одновременно.
52
+ debounceTime(0), switchMap(([value]) => this.newsService.getListOfNews$(value).pipe(startWith(null))), share());
53
+ /**
54
+ * {@link Observable} изменения количества страниц пагинации.
55
+ */
56
+ this.pagesLength$ = this.request$.pipe(filter(tuiIsPresent), map(({ meta }) => meta.lastPage), startWith(20));
57
+ /**
58
+ * {@link Observable} изменения номера страницы пагинации из данных пагинации запроса.
59
+ */
60
+ this.currentPage$ = this.request$.pipe(filter(tuiIsPresent), map(({ meta }) => meta.currentPage));
61
+ /**
62
+ * {@link Observable} изменения состояния загрузки данных.
63
+ */
64
+ this.loading$ = this.request$.pipe(map(tuiIsFalsy));
65
+ /**
66
+ * {@link Observable} изменения списка новостей страницы пагинации.
67
+ */
68
+ this.data$ = this.request$.pipe(filter(tuiIsPresent), map((data) => data.data),
69
+ // eslint-disable-next-line unicorn/no-array-callback-reference
70
+ map((newsList) => newsList.filter(tuiIsPresent)), startWith(null));
71
+ /**
72
+ * Событие изменения списка новостей страницы пагинации.
73
+ */
74
+ this.dataChangeEvent = outputFromObservable(this.data$.pipe(filter(tuiIsPresent)));
75
+ inject(SC_USER_INFO)
76
+ .pipe(skip(1), takeUntilDestroyed())
77
+ .subscribe(() => {
78
+ // Смена данных пользователя сбрасывает пагинацию на первую страницу.
79
+ // eslint-disable-next-line no-void
80
+ void this.router.navigate([], { queryParams: { [SC_PAGE_QUERY_PARAM]: null }, queryParamsHandling: 'merge' });
81
+ });
82
+ }
83
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScNewsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
84
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: ScNewsListComponent, isStandalone: true, selector: "sc-news-list", inputs: { perPage: { classPropertyName: "perPage", publicName: "perPage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dataChangeEvent: "dataChangeEvent" }, ngImport: i0, template: "@let newsList = data$ | async;\n<tui-loader\n class=\"mb-4\"\n [showLoader]=\"!!(loading$ | async) && !!newsList\"\n>\n <div class=\"grid grid-cols-[repeat(auto-fill,minmax(17rem,1fr))] gap-8\">\n <ng-container *ngIf=\"newsList; else newsListSkeleton\">\n <sc-news-card\n *ngFor=\"let news of newsList\"\n [news]=\"news\"\n [href]=\"'/news/' + news.id\"\n />\n </ng-container>\n <ng-template #newsListSkeleton>\n <sc-news-card-skeleton *ngFor=\"let _ of [].constructor(perPage())\" />\n </ng-template>\n </div>\n</tui-loader>\n<tui-loader [showLoader]=\"!!(loading$ | async)\">\n <sc-pagination-links\n [index]=\"(currentPage$ | async) ?? 1\"\n [length]=\"(pagesLength$ | async)!\"\n />\n</tui-loader>\n", dependencies: [{ kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: ScNewsModule }, { kind: "component", type: i1.ScNewsCardComponent, selector: "sc-news-card", inputs: ["news", "href"] }, { kind: "component", type: i2.ScNewsCardSkeletonComponent, selector: "sc-news-card-skeleton", inputs: ["hasImg"] }, { kind: "component", type: ScPaginationLinksComponent, selector: "sc-pagination-links", inputs: ["length", "index", "queryParam", "activePadding", "sidePadding"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
85
+ }
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScNewsListComponent, decorators: [{
87
+ type: Component,
88
+ args: [{ standalone: true, selector: 'sc-news-list', imports: [TuiLoader, NgIf, NgFor, ScNewsModule, ScPaginationLinksComponent, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let newsList = data$ | async;\n<tui-loader\n class=\"mb-4\"\n [showLoader]=\"!!(loading$ | async) && !!newsList\"\n>\n <div class=\"grid grid-cols-[repeat(auto-fill,minmax(17rem,1fr))] gap-8\">\n <ng-container *ngIf=\"newsList; else newsListSkeleton\">\n <sc-news-card\n *ngFor=\"let news of newsList\"\n [news]=\"news\"\n [href]=\"'/news/' + news.id\"\n />\n </ng-container>\n <ng-template #newsListSkeleton>\n <sc-news-card-skeleton *ngFor=\"let _ of [].constructor(perPage())\" />\n </ng-template>\n </div>\n</tui-loader>\n<tui-loader [showLoader]=\"!!(loading$ | async)\">\n <sc-pagination-links\n [index]=\"(currentPage$ | async) ?? 1\"\n [length]=\"(pagesLength$ | async)!\"\n />\n</tui-loader>\n" }]
89
+ }], ctorParameters: () => [] });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbmV3cy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9wYWdlcy9uZXdzLWxpc3Qvc2MtbmV3cy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9wYWdlcy9uZXdzLWxpc3Qvc2MtbmV3cy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLDBCQUEwQixFQUFlLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25JLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbkgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQUU5RDs7OztHQUlHO0FB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bkIsbUJBQW1CLG1RQ3hCaEMsMjBCQXdCQSw0Q0RIYyxTQUFTLGlJQUFFLElBQUksNkZBQUUsS0FBSyxrSEFBRSxZQUFZLDRQQUFFLDBCQUEwQixzSUFBRSxTQUFTOzs0RkFHNUUsbUJBQW1CO2tCQVAvQixTQUFTO2lDQUNNLElBQUksWUFDTixjQUFjLFdBRWYsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsMEJBQTBCLEVBQUUsU0FBUyxDQUFDLG1CQUNyRSx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0LCBJbnB1dFNpZ25hbCwgT3V0cHV0UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBvdXRwdXRGcm9tT2JzZXJ2YWJsZSwgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU0NfUEFHRV9RVUVSWV9QQVJBTSwgU0NfVVNFUl9JTkZPLCBzY0dldFBhZ2VRdWVyeVBhcmFtQ2hhbmdlcywgU2NJTmV3c1RpbGUsIFNjTmV3c1NlcnZpY2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IHR1aUlzRmFsc3ksIHR1aUlzUHJlc2VudCB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVHVpTG9hZGVyIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlLCBza2lwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY05ld3NNb2R1bGUgfSBmcm9tICcuLi8uLi9uZXdzJztcbmltcG9ydCB7IFNjUGFnaW5hdGlvbkxpbmtzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGFnaW5hdGlvbic7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINGB0L/QuNGB0LrQsCDQvdC+0LLQvtGB0YLQtdC5INGBINC/0LDQs9C40L3QsNGG0LjQtdC5INGH0LXRgNC10LcgcXVlcnkt0L/QsNGA0LDQvNC10YLRgCDRgdGC0YDQsNC90LjRhtGLLlxuICpcbiAqINCh0YHRi9C70LrQuCDQv9Cw0LPQuNC90LDRhtC40Lgg0LrQvtGA0YDQtdC60YLQvdC+INGA0LDQsdC+0YLQsNGO0YIg0L/RgNC4IFNTUiDQuCDQv9C+0LfQstC+0LvRj9GO0YIg0L/QvtC40YHQutC+0LLRi9C8INGA0L7QsdC+0YLQsNC8INC+0LHRhdC+0LTQuNGC0Ywg0YHRgtGA0LDQvdC40YbRiyDRgdC/0LjRgdC60LAuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzYy1uZXdzLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1uZXdzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtUdWlMb2FkZXIsIE5nSWYsIE5nRm9yLCBTY05ld3NNb2R1bGUsIFNjUGFnaW5hdGlvbkxpbmtzQ29tcG9uZW50LCBBc3luY1BpcGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY05ld3NMaXN0Q29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQu9GPINC/0L7Qu9GD0YfQtdC90LjRjyDRgdC/0LjRgdC60LAg0L3QvtCy0L7RgdGC0LXQuS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5ld3NTZXJ2aWNlID0gaW5qZWN0KFNjTmV3c1NlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC80LDRgNGI0YDRg9GC0LjQt9Cw0YbQuNC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgSW5wdXRTaWduYWx9INC60L7Qu9C40YfQtdGB0YLQstCwINC30LDQv9C40YHQtdC5INC90LAg0YHRgtGA0LDQvdC40YbQtSDQv9Cw0LPQuNC90LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHBlclBhZ2U6IElucHV0U2lnbmFsPG51bWJlcj4gPSBpbnB1dCgxNik7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINC90L7QvNC10YDQsCDRgdGC0YDQsNC90LjRhtGLINC/0LDQs9C40L3QsNGG0LjQuCDQuNC3IHF1ZXJ5LdC/0LDRgNCw0LzQtdGC0YDQvtCyLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBwYWdlJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gc2NHZXRQYWdlUXVlcnlQYXJhbUNoYW5nZXMoKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQtNCw0L3QvdGL0YUg0YHQv9C40YHQutCwINC90L7QstC+0YHRgtC10LkuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcXVlc3QkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgIGNvbWJpbmVMYXRlc3Qoe1xuICAgICAgICAgICAgcGFnZTogdGhpcy5wYWdlJCxcbiAgICAgICAgICAgIHBlclBhZ2U6IHRvT2JzZXJ2YWJsZSh0aGlzLnBlclBhZ2UpLFxuICAgICAgICAgICAgcGFnaW5hdGU6IG9mKHRydWUpLFxuICAgICAgICB9KSxcbiAgICAgICAgaW5qZWN0KFNDX1VTRVJfSU5GTyksXG4gICAgXSkucGlwZShcbiAgICAgICAgLy8g0J3Rg9C70LXQstC+0LkgZGVib3VuY2VUaW1lINC00LvRjyDRgdC70YPRh9Cw0Y8sINC60L7Qs9C00LAg0L3QvtC80LXRgCDRgdGC0YDQsNC90LjRhtGLINC4INC60L7Qu9C40YfQtdGB0YLQstC+INC30LDQv9C40YHQtdC5INC80LXQvdGP0Y7RgtGB0Y8g0L7QtNC90L7QstGA0LXQvNC10L3QvdC+LlxuICAgICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICAgIHN3aXRjaE1hcCgoW3ZhbHVlXSkgPT4gdGhpcy5uZXdzU2VydmljZS5nZXRMaXN0T2ZOZXdzJCh2YWx1ZSkucGlwZShzdGFydFdpdGgobnVsbCkpKSxcbiAgICAgICAgc2hhcmUoKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINC60L7Qu9C40YfQtdGB0YLQstCwINGB0YLRgNCw0L3QuNGGINC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFnZXNMZW5ndGgkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLnJlcXVlc3QkLnBpcGUoXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBtYXAoKHsgbWV0YSB9KSA9PiBtZXRhLmxhc3RQYWdlKSxcbiAgICAgICAgc3RhcnRXaXRoKDIwKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINC90L7QvNC10YDQsCDRgdGC0YDQsNC90LjRhtGLINC/0LDQs9C40L3QsNGG0LjQuCDQuNC3INC00LDQvdC90YvRhSDQv9Cw0LPQuNC90LDRhtC40Lgg0LfQsNC/0YDQvtGB0LAuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1cnJlbnRQYWdlJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy5yZXF1ZXN0JC5waXBlKFxuICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgbWFwKCh7IG1ldGEgfSkgPT4gbWV0YS5jdXJyZW50UGFnZSlcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC+0YHRgtC+0Y/QvdC40Y8g0LfQsNCz0YDRg9C30LrQuCDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5yZXF1ZXN0JC5waXBlKG1hcCh0dWlJc0ZhbHN5KSk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0LjQt9C80LXQvdC10L3QuNGPINGB0L/QuNGB0LrQsCDQvdC+0LLQvtGB0YLQtdC5INGB0YLRgNCw0L3QuNGG0Ysg0L/QsNCz0LjQvdCw0YbQuNC4LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkYXRhJDogT2JzZXJ2YWJsZTxTY0lOZXdzVGlsZVtdIHwgbnVsbD4gPSB0aGlzLnJlcXVlc3QkLnBpcGUoXG4gICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICBtYXAoKGRhdGEpID0+IGRhdGEuZGF0YSksXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL25vLWFycmF5LWNhbGxiYWNrLXJlZmVyZW5jZVxuICAgICAgICBtYXAoKG5ld3NMaXN0KSA9PiBuZXdzTGlzdC5maWx0ZXIodHVpSXNQcmVzZW50KSksXG4gICAgICAgIHN0YXJ0V2l0aChudWxsKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQuNC30LzQtdC90LXQvdC40Y8g0YHQv9C40YHQutCwINC90L7QstC+0YHRgtC10Lkg0YHRgtGA0LDQvdC40YbRiyDQv9Cw0LPQuNC90LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGRhdGFDaGFuZ2VFdmVudDogT3V0cHV0UmVmPFNjSU5ld3NUaWxlW10+ID0gb3V0cHV0RnJvbU9ic2VydmFibGUodGhpcy5kYXRhJC5waXBlKGZpbHRlcih0dWlJc1ByZXNlbnQpKSk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjTmV3c0xpc3RDb21wb25lbnR9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaW5qZWN0KFNDX1VTRVJfSU5GTylcbiAgICAgICAgICAgIC5waXBlKHNraXAoMSksIHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8g0KHQvNC10L3QsCDQtNCw0L3QvdGL0YUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINGB0LHRgNCw0YHRi9Cy0LDQtdGCINC/0LDQs9C40L3QsNGG0LjRjiDQvdCwINC/0LXRgNCy0YPRjiDRgdGC0YDQsNC90LjRhtGDLlxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby12b2lkXG4gICAgICAgICAgICAgICAgdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSwgeyBxdWVyeVBhcmFtczogeyBbU0NfUEFHRV9RVUVSWV9QQVJBTV06IG51bGwgfSwgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIkBsZXQgbmV3c0xpc3QgPSBkYXRhJCB8IGFzeW5jO1xuPHR1aS1sb2FkZXJcbiAgICBjbGFzcz1cIm1iLTRcIlxuICAgIFtzaG93TG9hZGVyXT1cIiEhKGxvYWRpbmckIHwgYXN5bmMpICYmICEhbmV3c0xpc3RcIlxuPlxuICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy1bcmVwZWF0KGF1dG8tZmlsbCxtaW5tYXgoMTdyZW0sMWZyKSldIGdhcC04XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJuZXdzTGlzdDsgZWxzZSBuZXdzTGlzdFNrZWxldG9uXCI+XG4gICAgICAgICAgICA8c2MtbmV3cy1jYXJkXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG5ld3Mgb2YgbmV3c0xpc3RcIlxuICAgICAgICAgICAgICAgIFtuZXdzXT1cIm5ld3NcIlxuICAgICAgICAgICAgICAgIFtocmVmXT1cIicvbmV3cy8nICsgbmV3cy5pZFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNuZXdzTGlzdFNrZWxldG9uPlxuICAgICAgICAgICAgPHNjLW5ld3MtY2FyZC1za2VsZXRvbiAqbmdGb3I9XCJsZXQgXyBvZiBbXS5jb25zdHJ1Y3RvcihwZXJQYWdlKCkpXCIgLz5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbjwvdHVpLWxvYWRlcj5cbjx0dWktbG9hZGVyIFtzaG93TG9hZGVyXT1cIiEhKGxvYWRpbmckIHwgYXN5bmMpXCI+XG4gICAgPHNjLXBhZ2luYXRpb24tbGlua3NcbiAgICAgICAgW2luZGV4XT1cIihjdXJyZW50UGFnZSQgfCBhc3luYykgPz8gMVwiXG4gICAgICAgIFtsZW5ndGhdPVwiKHBhZ2VzTGVuZ3RoJCB8IGFzeW5jKSFcIlxuICAgIC8+XG48L3R1aS1sb2FkZXI+XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  import { AsyncPipe } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';
3
3
  import { RouterLink } from '@angular/router';
4
+ import { SC_PAGE_QUERY_PARAM } from '@snabcentr/client-core';
4
5
  import { tuiClamp } from '@taiga-ui/cdk';
5
6
  import { TUI_SPIN_ICONS, TuiButton } from '@taiga-ui/core';
6
7
  import { TUI_PAGINATION_TEXTS } from '@taiga-ui/kit';
@@ -34,7 +35,7 @@ export class ScPaginationLinksComponent {
34
35
  /**
35
36
  * {@link InputSignal} наименования query-параметра, в котором хранится номер страницы.
36
37
  */
37
- this.queryParam = input('page');
38
+ this.queryParam = input(SC_PAGE_QUERY_PARAM);
38
39
  /**
39
40
  * {@link InputSignal} количества страниц, отображаемых по обе стороны от текущей.
40
41
  */
@@ -95,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
95
96
  type: Component,
96
97
  args: [{ standalone: true, selector: 'sc-pagination-links', imports: [AsyncPipe, RouterLink, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "@let texts = texts$ | async;\n\n@if (texts) {\n <div class=\"t-content\">\n @if (index() > 1) {\n <a\n tuiIconButton\n size=\"s\"\n appearance=\"flat\"\n tabIndex=\"-1\"\n class=\"t-button\"\n [iconStart]=\"icons.decrement\"\n [routerLink]=\"[]\"\n [queryParams]=\"getPageQueryParams(index() - 1)\"\n queryParamsHandling=\"merge\"\n >\n {{ texts[0] }}\n </a>\n } @else {\n <button\n tuiIconButton\n size=\"s\"\n appearance=\"flat\"\n type=\"button\"\n tabIndex=\"-1\"\n class=\"t-button\"\n [iconStart]=\"icons.decrement\"\n [disabled]=\"true\"\n >\n {{ texts[0] }}\n </button>\n }\n\n @for (page of pages(); track $index) {\n @if (page) {\n <a\n automation-id=\"sc-pagination-links__element\"\n tuiButton\n size=\"s\"\n class=\"t-button\"\n [appearance]=\"page === index() ? 'primary' : 'flat'\"\n [attr.aria-current]=\"page === index() ? 'page' : null\"\n [routerLink]=\"[]\"\n [queryParams]=\"getPageQueryParams(page)\"\n queryParamsHandling=\"merge\"\n >\n {{ page }}\n </a>\n } @else {\n <div class=\"t-dots\"></div>\n }\n }\n\n @if (index() < length()) {\n <a\n tuiIconButton\n size=\"s\"\n appearance=\"flat\"\n tabIndex=\"-1\"\n class=\"t-button\"\n [iconStart]=\"icons.increment\"\n [routerLink]=\"[]\"\n [queryParams]=\"getPageQueryParams(index() + 1)\"\n queryParamsHandling=\"merge\"\n >\n {{ texts[1] }}\n </a>\n } @else {\n <button\n tuiIconButton\n size=\"s\"\n appearance=\"flat\"\n type=\"button\"\n tabIndex=\"-1\"\n class=\"t-button\"\n [iconStart]=\"icons.increment\"\n [disabled]=\"true\"\n >\n {{ texts[1] }}\n </button>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{display:block;font:var(--tui-font-text-s);color:var(--tui-text-primary);text-align:center}.t-content{display:flex;justify-content:center}.t-button{flex-shrink:0;margin:0 .125rem}.t-button[tuiButton]{min-inline-size:var(--tui-height-s);padding:0 .5rem}.t-button:first-child{margin-inline-start:0}.t-button:last-child{margin-inline-end:0}.t-dots{flex-shrink:0;inline-size:var(--tui-height-s);block-size:var(--tui-height-s);line-height:var(--tui-height-s);margin:0 .125rem;color:var(--tui-text-action);text-align:center;cursor:default}.t-dots:before{content:\"\\2026\"}\n"] }]
97
98
  }] });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcGFnaW5hdGlvbi1saW5rcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvcGFnaW5hdGlvbi9zYy1wYWdpbmF0aW9uLWxpbmtzL3NjLXBhZ2luYXRpb24tbGlua3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL3BhZ2luYXRpb24vc2MtcGFnaW5hdGlvbi1saW5rcy9zYy1wYWdpbmF0aW9uLWxpbmtzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3JEOzs7Ozs7O0dBT0c7QUFTSCxNQUFNLE9BQU8sMEJBQTBCO0lBUnZDO1FBU0k7O1dBRUc7UUFDZ0IsVUFBSyxHQUFpQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFaEU7O1dBRUc7UUFDZ0IsV0FBTSxHQUFrRSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUV4SDs7V0FFRztRQUNhLFdBQU0sR0FBd0IsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBRXZFOztXQUVHO1FBQ2EsVUFBSyxHQUF3QixLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFFdEU7O1dBRUc7UUFDYSxlQUFVLEdBQXdCLEtBQUssQ0FBUyxNQUFNLENBQUMsQ0FBQztRQUV4RTs7V0FFRztRQUNhLGtCQUFhLEdBQXdCLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUV0RTs7V0FFRztRQUNhLGdCQUFXLEdBQXdCLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUVwRTs7Ozs7V0FLRztRQUNnQixVQUFLLEdBQWlDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2Qyw4RUFBOEU7WUFDOUUsTUFBTSxhQUFhLEdBQUcsV0FBVyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0QsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQzNELE1BQU0sU0FBUyxHQUFHLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDN0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMvQixNQUFNLFlBQVksR0FBRyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFhLEVBQVcsRUFBRSxDQUFDLE1BQU0sR0FBRyxpQkFBaUIsSUFBSSxLQUFLLEdBQUcsYUFBYSxDQUFDO1lBRTFHLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsRUFBRTtnQkFDOUQsTUFBTSxtQkFBbUIsR0FBRyxjQUFjLEdBQUcsQ0FBQyxHQUFHLFlBQVksQ0FBQztnQkFFOUQsSUFBSSxZQUFZLEdBQUcsV0FBVyxFQUFFLENBQUM7b0JBQzdCLE9BQU8sWUFBWSxHQUFHLENBQUMsQ0FBQztnQkFDNUIsQ0FBQztnQkFFRCxJQUFJLFlBQVksS0FBSyxXQUFXLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDM0QsT0FBTyxJQUFJLENBQUM7Z0JBQ2hCLENBQUM7Z0JBRUQsSUFBSSxtQkFBbUIsR0FBRyxXQUFXLEVBQUUsQ0FBQztvQkFDcEMsT0FBTyxTQUFTLEdBQUcsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDO2dCQUVELElBQUksbUJBQW1CLEtBQUssV0FBVyxJQUFJLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7b0JBQ3pFLE9BQU8sSUFBSSxDQUFDO2dCQUNoQixDQUFDO2dCQUVELE9BQU8sUUFBUSxDQUFDLEtBQUssR0FBRyxhQUFhLEdBQUcsWUFBWSxFQUFFLFlBQVksRUFBRSxTQUFTLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0csQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztLQVlOO0lBVkc7Ozs7OztPQU1HO0lBQ08sa0JBQWtCLENBQUMsSUFBWTtRQUNyQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNELENBQUM7K0dBdEZRLDBCQUEwQjttR0FBMUIsMEJBQTBCLDZ1QkN4QnZDLGlqRkFtRkEsc29CRDlEYyxTQUFTLDhDQUFFLFVBQVUsb09BQUUsU0FBUzs7NEZBR2pDLDBCQUEwQjtrQkFSdEMsU0FBUztpQ0FDTSxJQUFJLFlBQ04scUJBQXFCLFdBR3RCLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsbUJBQzFCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIElucHV0U2lnbmFsLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhcmFtcywgUm91dGVyTGluayB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyB0dWlDbGFtcCB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVFVJX1NQSU5fSUNPTlMsIFR1aUJ1dHRvbiwgVHVpU3Bpbkljb25zIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgVFVJX1BBR0lOQVRJT05fVEVYVFMgfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0L/QsNCz0LjQvdCw0YbQuNC4LCDQsiDQutC+0YLQvtGA0L7QvCDRgdGC0YDQsNC90LjRhtGLINGP0LLQu9GP0Y7RgtGB0Y8g0YHRgdGL0LvQutCw0LzQuCDRgSDQvdC+0LzQtdGA0L7QvCDRgdGC0YDQsNC90LjRhtGLINCyIHF1ZXJ5LdC/0LDRgNCw0LzQtdGC0YDQsNGFLlxuICpcbiAqINCh0YHRi9C70LrQuCDQv9C+0LfQstC+0LvRj9GO0YIg0L/QtdGA0LXRhdC+0LTQuNGC0Ywg0LzQtdC20LTRgyDRgdGC0YDQsNC90LjRhtCw0LzQuCDQv9GA0Lgg0L7RgtC60LvRjtGH0LXQvdC90L7QvCBKYXZhU2NyaXB0INC4INC60L7RgNGA0LXQutGC0L3QviDRgNCw0LHQvtGC0LDRjtGCINC/0YDQuCBTU1IuXG4gKiDQktC90LXRiNC90LjQuSDQstC40LQg0L/QvtCy0YLQvtGA0Y/QtdGCIHR1aS1wYWdpbmF0aW9uINC40LcgQHRhaWdhLXVpL2tpdC5cbiAqXG4gKiBUT0RPOiBbVEFJR0E6NV06INCf0YDQvtCy0LXRgNC40YLRjCwg0L/QvtGP0LLQuNC70LDRgdGMINC70Lgg0LIgdHVpLXBhZ2luYXRpb24g0L/QvtC00LTQtdGA0LbQutCwINGB0YHRi9C70L7Quiwg0Lgg0LfQsNC80LXQvdC40YLRjCDQutC+0LzQv9C+0L3QtdC90YIg0L3QsCDQvdC10ZEuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzYy1wYWdpbmF0aW9uLWxpbmtzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtcGFnaW5hdGlvbi1saW5rcy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL3NjLXBhZ2luYXRpb24tbGlua3MuY29tcG9uZW50LnNjc3MnLFxuICAgIGltcG9ydHM6IFtBc3luY1BpcGUsIFJvdXRlckxpbmssIFR1aUJ1dHRvbl0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjUGFnaW5hdGlvbkxpbmtzQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiDQmNC60L7QvdC60Lgg0YHRgtGA0LXQu9C+0Log0L/QtdGA0LXQutC70Y7Rh9C10L3QuNGPINGB0YLRgNCw0L3QuNGGLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29uczogVHVpU3Bpbkljb25zID0gaW5qZWN0KFRVSV9TUElOX0lDT05TKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQv9C+0LTQv9C40YHQtdC5INGB0YLRgNC10LvQvtC6INC/0LXRgNC10LrQu9GO0YfQtdC90LjRjyDRgdGC0YDQsNC90LjRhi5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGV4dHMkOiBPYnNlcnZhYmxlPHJlYWRvbmx5IFtwcmV2aW91c1BhZ2U6IHN0cmluZywgbmV4dFBhZ2U6IHN0cmluZ10+ID0gaW5qZWN0KFRVSV9QQUdJTkFUSU9OX1RFWFRTKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBJbnB1dFNpZ25hbH0g0L7QsdGJ0LXQs9C+INC60L7Qu9C40YfQtdGB0YLQstCwINGB0YLRgNCw0L3QuNGGLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBsZW5ndGg6IElucHV0U2lnbmFsPG51bWJlcj4gPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgSW5wdXRTaWduYWx9INC90L7QvNC10YDQsCDRgtC10LrRg9GJ0LXQuSDRgdGC0YDQsNC90LjRhtGLLCDQvdCw0YfQuNC90LDRjyDRgSDQtdC00LjQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5kZXg6IElucHV0U2lnbmFsPG51bWJlcj4gPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgSW5wdXRTaWduYWx9INC90LDQuNC80LXQvdC+0LLQsNC90LjRjyBxdWVyeS3Qv9Cw0YDQsNC80LXRgtGA0LAsINCyINC60L7RgtC+0YDQvtC8INGF0YDQsNC90LjRgtGB0Y8g0L3QvtC80LXRgCDRgdGC0YDQsNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBxdWVyeVBhcmFtOiBJbnB1dFNpZ25hbDxzdHJpbmc+ID0gaW5wdXQ8c3RyaW5nPigncGFnZScpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIElucHV0U2lnbmFsfSDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgdGC0YDQsNC90LjRhiwg0L7RgtC+0LHRgNCw0LbQsNC10LzRi9GFINC/0L4g0L7QsdC1INGB0YLQvtGA0L7QvdGLINC+0YIg0YLQtdC60YPRidC10LkuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGl2ZVBhZGRpbmc6IElucHV0U2lnbmFsPG51bWJlcj4gPSBpbnB1dDxudW1iZXI+KDEpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIElucHV0U2lnbmFsfSDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgdGC0YDQsNC90LjRhiwg0L7RgtC+0LHRgNCw0LbQsNC10LzRi9GFINC/0L4g0LrRgNCw0Y/QvC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2lkZVBhZGRpbmc6IElucHV0U2lnbmFsPG51bWJlcj4gPSBpbnB1dDxudW1iZXI+KDEpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIFNpZ25hbH0g0L3QvtC80LXRgNC+0LIg0L7RgtC+0LHRgNCw0LbQsNC10LzRi9GFINGB0YLRgNCw0L3QuNGGLCDQs9C00LUgYG51bGxgIC0g0YDQsNC30LTQtdC70LjRgtC10LvRjCDQv9GA0L7Qv9GD0YnQtdC90L3Ri9GFINGB0YLRgNCw0L3QuNGGLlxuICAgICAqXG4gICAgICog0KHQvtGB0YLQsNCyINGB0YLRgNCw0L3QuNGGINGA0LDRgdGB0YfQuNGC0YvQstCw0LXRgtGB0Y8g0YLQsNC6INC20LUsINC60LDQuiDQsiB0dWktcGFnaW5hdGlvbjog0LrQvtC70LjRh9C10YHRgtCy0L4g0L7RgtC+0LHRgNCw0LbQsNC10LzRi9GFINGN0LvQtdC80LXQvdGC0L7QsiDQv9C+0YHRgtC+0Y/QvdC90L4sXG4gICAgICog0LAg0L7QutC90L4g0LLQvtC60YDRg9CzINGC0LXQutGD0YnQtdC5INGB0YLRgNCw0L3QuNGG0Ysg0YDQsNGB0YjQuNGA0Y/QtdGC0YHRjyDRgyDQutGA0LDRkdCyINGB0L/QuNGB0LrQsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFnZXM6IFNpZ25hbDxBcnJheTxudW1iZXIgfCBudWxsPj4gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMubGVuZ3RoKCk7XG4gICAgICAgIGNvbnN0IHNpZGVQYWRkaW5nID0gdGhpcy5zaWRlUGFkZGluZygpO1xuICAgICAgICAvLyDQn9C+0LvQvtCy0LjQvdCwINGN0LvQtdC80LXQvdGC0L7Qsjog0YHRgtGA0LDQvdC40YbRiyDRgyDQutGA0LDRjywg0YDQsNC30LTQtdC70LjRgtC10LvRjCDQuCDRgdGC0YDQsNC90LjRhtGLINCy0L7QutGA0YPQsyDRgtC10LrRg9GJ0LXQuS5cbiAgICAgICAgY29uc3QgbWF4SGFsZkxlbmd0aCA9IHNpZGVQYWRkaW5nICsgMSArIHRoaXMuYWN0aXZlUGFkZGluZygpO1xuICAgICAgICBjb25zdCBtYXhFbGVtZW50c0xlbmd0aCA9IG1heEhhbGZMZW5ndGggKiAyICsgMTtcbiAgICAgICAgY29uc3QgZWxlbWVudHNMZW5ndGggPSBNYXRoLm1pbihsZW5ndGgsIG1heEVsZW1lbnRzTGVuZ3RoKTtcbiAgICAgICAgY29uc3QgbGFzdEluZGV4ID0gbGVuZ3RoIC0gMTtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmluZGV4KCkgLSAxO1xuICAgICAgICBjb25zdCByZXZlcnNlSW5kZXggPSBsYXN0SW5kZXggLSBpbmRleDtcbiAgICAgICAgY29uc3QgaGFzQ29sbGFwc2VkSXRlbXMgPSAodmFsdWU6IG51bWJlcik6IGJvb2xlYW4gPT4gbGVuZ3RoID4gbWF4RWxlbWVudHNMZW5ndGggJiYgdmFsdWUgPiBtYXhIYWxmTGVuZ3RoO1xuXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBlbGVtZW50c0xlbmd0aCB9LCAoXywgZWxlbWVudEluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXZlcnNlRWxlbWVudEluZGV4ID0gZWxlbWVudHNMZW5ndGggLSAxIC0gZWxlbWVudEluZGV4O1xuXG4gICAgICAgICAgICBpZiAoZWxlbWVudEluZGV4IDwgc2lkZVBhZGRpbmcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudEluZGV4ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGVsZW1lbnRJbmRleCA9PT0gc2lkZVBhZGRpbmcgJiYgaGFzQ29sbGFwc2VkSXRlbXMoaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZXZlcnNlRWxlbWVudEluZGV4IDwgc2lkZVBhZGRpbmcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4IC0gcmV2ZXJzZUVsZW1lbnRJbmRleCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZXZlcnNlRWxlbWVudEluZGV4ID09PSBzaWRlUGFkZGluZyAmJiBoYXNDb2xsYXBzZWRJdGVtcyhyZXZlcnNlSW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0dWlDbGFtcChpbmRleCAtIG1heEhhbGZMZW5ndGggKyBlbGVtZW50SW5kZXgsIGVsZW1lbnRJbmRleCwgbGFzdEluZGV4IC0gcmV2ZXJzZUVsZW1lbnRJbmRleCkgKyAxO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHF1ZXJ5LdC/0LDRgNCw0LzQtdGC0YDRiyDRgdGB0YvQu9C60Lgg0L3QsCDRgdGC0YDQsNC90LjRhtGDLlxuICAgICAqXG4gICAgICog0JTQu9GPINC/0LXRgNCy0L7QuSDRgdGC0YDQsNC90LjRhtGLINC/0LDRgNCw0LzQtdGC0YAg0YPQtNCw0LvRj9C10YLRgdGPLCDRh9GC0L7QsdGLINC10ZEg0LDQtNGA0LXRgSDRgdC+0LLQv9Cw0LTQsNC7INGBINCw0LTRgNC10YHQvtC8INGB0YLRgNCw0L3QuNGG0Ysg0LHQtdC3INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdlINCd0L7QvNC10YAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0UGFnZVF1ZXJ5UGFyYW1zKHBhZ2U6IG51bWJlcik6IFBhcmFtcyB7XG4gICAgICAgIHJldHVybiB7IFt0aGlzLnF1ZXJ5UGFyYW0oKV06IHBhZ2UgPiAxID8gcGFnZSA6IG51bGwgfTtcbiAgICB9XG59XG4iLCJAbGV0IHRleHRzID0gdGV4dHMkIHwgYXN5bmM7XG5cbkBpZiAodGV4dHMpIHtcbiAgICA8ZGl2IGNsYXNzPVwidC1jb250ZW50XCI+XG4gICAgICAgIEBpZiAoaW5kZXgoKSA+IDEpIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwiZmxhdFwiXG4gICAgICAgICAgICAgICAgdGFiSW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2ljb25TdGFydF09XCJpY29ucy5kZWNyZW1lbnRcIlxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIltdXCJcbiAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwiZ2V0UGFnZVF1ZXJ5UGFyYW1zKGluZGV4KCkgLSAxKVwiXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZz1cIm1lcmdlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyB0ZXh0c1swXSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJmbGF0XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICB0YWJJbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbaWNvblN0YXJ0XT1cImljb25zLmRlY3JlbWVudFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRleHRzWzBdIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBmb3IgKHBhZ2Ugb2YgcGFnZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICBAaWYgKHBhZ2UpIHtcbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwic2MtcGFnaW5hdGlvbi1saW5rc19fZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJwYWdlID09PSBpbmRleCgpID8gJ3ByaW1hcnknIDogJ2ZsYXQnXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cInBhZ2UgPT09IGluZGV4KCkgPyAncGFnZScgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW11cIlxuICAgICAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwiZ2V0UGFnZVF1ZXJ5UGFyYW1zKHBhZ2UpXCJcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZz1cIm1lcmdlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IHBhZ2UgfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidC1kb3RzXCI+PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGluZGV4KCkgPCBsZW5ndGgoKSkge1xuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJmbGF0XCJcbiAgICAgICAgICAgICAgICB0YWJJbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbaWNvblN0YXJ0XT1cImljb25zLmluY3JlbWVudFwiXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW11cIlxuICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJnZXRQYWdlUXVlcnlQYXJhbXMoaW5kZXgoKSArIDEpXCJcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nPVwibWVyZ2VcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRleHRzWzFdIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImZsYXRcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1idXR0b25cIlxuICAgICAgICAgICAgICAgIFtpY29uU3RhcnRdPVwiaWNvbnMuaW5jcmVtZW50XCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdGV4dHNbMV0gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcGFnaW5hdGlvbi1saW5rcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvcGFnaW5hdGlvbi9zYy1wYWdpbmF0aW9uLWxpbmtzL3NjLXBhZ2luYXRpb24tbGlua3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL3BhZ2luYXRpb24vc2MtcGFnaW5hdGlvbi1saW5rcy9zYy1wYWdpbmF0aW9uLWxpbmtzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQVUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3JEOzs7Ozs7O0dBT0c7QUFTSCxNQUFNLE9BQU8sMEJBQTBCO0lBUnZDO1FBU0k7O1dBRUc7UUFDZ0IsVUFBSyxHQUFpQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFaEU7O1dBRUc7UUFDZ0IsV0FBTSxHQUFrRSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUV4SDs7V0FFRztRQUNhLFdBQU0sR0FBd0IsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBRXZFOztXQUVHO1FBQ2EsVUFBSyxHQUF3QixLQUFL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dCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgSW5wdXRTaWduYWwsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFyYW1zLCBSb3V0ZXJMaW5rIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNDX1BBR0VfUVVFUllfUEFSQU0gfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IHR1aUNsYW1wIH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBUVUlfU1BJTl9JQ09OUywgVHVpQnV0dG9uLCBUdWlTcGluSWNvbnMgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBUVUlfUEFHSU5BVElPTl9URVhUUyB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQv9Cw0LPQuNC90LDRhtC40LgsINCyINC60L7RgtC+0YDQvtC8INGB0YLRgNCw0L3QuNGG0Ysg0Y/QstC70Y/RjtGC0YHRjyDRgdGB0YvQu9C60LDQvNC4INGBINC90L7QvNC10YDQvtC8INGB0YLRgNCw0L3QuNGG0Ysg0LIgcXVlcnkt0L/QsNGA0LDQvNC10YLRgNCw0YUuXG4gKlxuICog0KHRgdGL0LvQutC4INC/0L7Qt9Cy0L7Qu9GP0Y7RgiDQv9C10YDQtdGF0L7QtNC40YLRjCDQvNC10LbQtNGDINGB0YLRgNCw0L3QuNGG0LDQvNC4INC/0YDQuCDQvtGC0LrQu9GO0YfQtdC90L3QvtC8IEphdmFTY3JpcHQg0Lgg0LrQvtGA0YDQtdC60YLQvdC+INGA0LDQsdC+0YLQsNGO0YIg0L/RgNC4IFNTUi5cbiAqINCS0L3QtdGI0L3QuNC5INCy0LjQtCDQv9C+0LLRgtC+0YDRj9C10YIgdHVpLXBhZ2luYXRpb24g0LjQtyBAdGFpZ2EtdWkva2l0LlxuICpcbiAqIFRPRE86IFtUQUlHQTo1XTog0J/RgNC+0LLQtdGA0LjRgtGMLCDQv9C+0Y/QstC40LvQsNGB0Ywg0LvQuCDQsiB0dWktcGFnaW5hdGlvbiDQv9C+0LTQtNC10YDQttC60LAg0YHRgdGL0LvQvtC6LCDQuCDQt9Cw0LzQtdC90LjRgtGMINC60L7QvNC/0L7QvdC10L3RgiDQvdCwINC90LXRkS5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3NjLXBhZ2luYXRpb24tbGlua3MnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1wYWdpbmF0aW9uLWxpbmtzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vc2MtcGFnaW5hdGlvbi1saW5rcy5jb21wb25lbnQuc2NzcycsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgUm91dGVyTGluaywgVHVpQnV0dG9uXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NQYWdpbmF0aW9uTGlua3NDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCY0LrQvtC90LrQuCDRgdGC0YDQtdC70L7QuiDQv9C10YDQtdC60LvRjtGH0LXQvdC40Y8g0YHRgtGA0LDQvdC40YYuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGljb25zOiBUdWlTcGluSWNvbnMgPSBpbmplY3QoVFVJX1NQSU5fSUNPTlMpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC/0L7QtNC/0LjRgdC10Lkg0YHRgtGA0LXQu9C+0Log0L/QtdGA0LXQutC70Y7Rh9C10L3QuNGPINGB0YLRgNCw0L3QuNGGLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSB0ZXh0cyQ6IE9ic2VydmFibGU8cmVhZG9ubHkgW3ByZXZpb3VzUGFnZTogc3RyaW5nLCBuZXh0UGFnZTogc3RyaW5nXT4gPSBpbmplY3QoVFVJX1BBR0lOQVRJT05fVEVYVFMpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIElucHV0U2lnbmFsfSDQvtCx0YnQtdCz0L4g0LrQvtC70LjRh9C10YHRgtCy0LAg0YHRgtGA0LDQvdC40YYuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGxlbmd0aDogSW5wdXRTaWduYWw8bnVtYmVyPiA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBJbnB1dFNpZ25hbH0g0L3QvtC80LXRgNCwINGC0LXQutGD0YnQtdC5INGB0YLRgNCw0L3QuNGG0YssINC90LDRh9C40L3QsNGPINGBINC10LTQuNC90LjRhtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpbmRleDogSW5wdXRTaWduYWw8bnVtYmVyPiA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBJbnB1dFNpZ25hbH0g0L3QsNC40LzQtdC90L7QstCw0L3QuNGPIHF1ZXJ5LdC/0LDRgNCw0LzQtdGC0YDQsCwg0LIg0LrQvtGC0L7RgNC+0Lwg0YXRgNCw0L3QuNGC0YHRjyDQvdC+0LzQtdGAINGB0YLRgNCw0L3QuNGG0YsuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHF1ZXJ5UGFyYW06IElucHV0U2lnbmFsPHN0cmluZz4gPSBpbnB1dDxzdHJpbmc+KFNDX1BBR0VfUVVFUllfUEFSQU0pO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIElucHV0U2lnbmFsfSDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgdGC0YDQsNC90LjRhiwg0L7RgtC+0LHRgNCw0LbQsNC10LzRi9GFINC/0L4g0L7QsdC1INGB0YLQvtGA0L7QvdGLINC+0YIg0YLQtdC60YPRidC10LkuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGl2ZVBhZGRpbmc6IElucHV0U2lnbmFsPG51bWJlcj4gPSBpbnB1dDxudW1iZXI+KDEpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIElucHV0U2lnbmFsfSDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgdGC0YDQsNC90LjRhiwg0L7RgtC+0LHRgNCw0LbQsNC10LzRi9GFINC/0L4g0LrRgNCw0Y/QvC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2lkZVBhZGRpbmc6IElucHV0U2lnbmFsPG51bWJlcj4gPSBpbnB1dDxudW1iZXI+KDEpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIFNpZ25hbH0g0L3QvtC80LXRgNC+0LIg0L7RgtC+0LHRgNCw0LbQsNC10LzRi9GFINGB0YLRgNCw0L3QuNGGLCDQs9C00LUgYG51bGxgIC0g0YDQsNC30LTQtdC70LjRgtC10LvRjCDQv9GA0L7Qv9GD0YnQtdC90L3Ri9GFINGB0YLRgNCw0L3QuNGGLlxuICAgICAqXG4gICAgICog0KHQvtGB0YLQsNCyINGB0YLRgNCw0L3QuNGGINGA0LDRgdGB0YfQuNGC0YvQstCw0LXRgtGB0Y8g0YLQsNC6INC20LUsINC60LDQuiDQsiB0dWktcGFnaW5hdGlvbjog0LrQvtC70LjRh9C10YHRgtCy0L4g0L7RgtC+0LHRgNCw0LbQsNC10LzRi9GFINGN0LvQtdC80LXQvdGC0L7QsiDQv9C+0YHRgtC+0Y/QvdC90L4sXG4gICAgICog0LAg0L7QutC90L4g0LLQvtC60YDRg9CzINGC0LXQutGD0YnQtdC5INGB0YLRgNCw0L3QuNGG0Ysg0YDQsNGB0YjQuNGA0Y/QtdGC0YHRjyDRgyDQutGA0LDRkdCyINGB0L/QuNGB0LrQsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFnZXM6IFNpZ25hbDxBcnJheTxudW1iZXIgfCBudWxsPj4gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMubGVuZ3RoKCk7XG4gICAgICAgIGNvbnN0IHNpZGVQYWRkaW5nID0gdGhpcy5zaWRlUGFkZGluZygpO1xuICAgICAgICAvLyDQn9C+0LvQvtCy0LjQvdCwINGN0LvQtdC80LXQvdGC0L7Qsjog0YHRgtGA0LDQvdC40YbRiyDRgyDQutGA0LDRjywg0YDQsNC30LTQtdC70LjRgtC10LvRjCDQuCDRgdGC0YDQsNC90LjRhtGLINCy0L7QutGA0YPQsyDRgtC10LrRg9GJ0LXQuS5cbiAgICAgICAgY29uc3QgbWF4SGFsZkxlbmd0aCA9IHNpZGVQYWRkaW5nICsgMSArIHRoaXMuYWN0aXZlUGFkZGluZygpO1xuICAgICAgICBjb25zdCBtYXhFbGVtZW50c0xlbmd0aCA9IG1heEhhbGZMZW5ndGggKiAyICsgMTtcbiAgICAgICAgY29uc3QgZWxlbWVudHNMZW5ndGggPSBNYXRoLm1pbihsZW5ndGgsIG1heEVsZW1lbnRzTGVuZ3RoKTtcbiAgICAgICAgY29uc3QgbGFzdEluZGV4ID0gbGVuZ3RoIC0gMTtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmluZGV4KCkgLSAxO1xuICAgICAgICBjb25zdCByZXZlcnNlSW5kZXggPSBsYXN0SW5kZXggLSBpbmRleDtcbiAgICAgICAgY29uc3QgaGFzQ29sbGFwc2VkSXRlbXMgPSAodmFsdWU6IG51bWJlcik6IGJvb2xlYW4gPT4gbGVuZ3RoID4gbWF4RWxlbWVudHNMZW5ndGggJiYgdmFsdWUgPiBtYXhIYWxmTGVuZ3RoO1xuXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBlbGVtZW50c0xlbmd0aCB9LCAoXywgZWxlbWVudEluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXZlcnNlRWxlbWVudEluZGV4ID0gZWxlbWVudHNMZW5ndGggLSAxIC0gZWxlbWVudEluZGV4O1xuXG4gICAgICAgICAgICBpZiAoZWxlbWVudEluZGV4IDwgc2lkZVBhZGRpbmcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudEluZGV4ICsgMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGVsZW1lbnRJbmRleCA9PT0gc2lkZVBhZGRpbmcgJiYgaGFzQ29sbGFwc2VkSXRlbXMoaW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZXZlcnNlRWxlbWVudEluZGV4IDwgc2lkZVBhZGRpbmcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGFzdEluZGV4IC0gcmV2ZXJzZUVsZW1lbnRJbmRleCArIDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZXZlcnNlRWxlbWVudEluZGV4ID09PSBzaWRlUGFkZGluZyAmJiBoYXNDb2xsYXBzZWRJdGVtcyhyZXZlcnNlSW5kZXgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0dWlDbGFtcChpbmRleCAtIG1heEhhbGZMZW5ndGggKyBlbGVtZW50SW5kZXgsIGVsZW1lbnRJbmRleCwgbGFzdEluZGV4IC0gcmV2ZXJzZUVsZW1lbnRJbmRleCkgKyAxO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIHF1ZXJ5LdC/0LDRgNCw0LzQtdGC0YDRiyDRgdGB0YvQu9C60Lgg0L3QsCDRgdGC0YDQsNC90LjRhtGDLlxuICAgICAqXG4gICAgICog0JTQu9GPINC/0LXRgNCy0L7QuSDRgdGC0YDQsNC90LjRhtGLINC/0LDRgNCw0LzQtdGC0YAg0YPQtNCw0LvRj9C10YLRgdGPLCDRh9GC0L7QsdGLINC10ZEg0LDQtNGA0LXRgSDRgdC+0LLQv9Cw0LTQsNC7INGBINCw0LTRgNC10YHQvtC8INGB0YLRgNCw0L3QuNGG0Ysg0LHQtdC3INC/0LDQs9C40L3QsNGG0LjQuC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYWdlINCd0L7QvNC10YAg0YHRgtGA0LDQvdC40YbRiy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0UGFnZVF1ZXJ5UGFyYW1zKHBhZ2U6IG51bWJlcik6IFBhcmFtcyB7XG4gICAgICAgIHJldHVybiB7IFt0aGlzLnF1ZXJ5UGFyYW0oKV06IHBhZ2UgPiAxID8gcGFnZSA6IG51bGwgfTtcbiAgICB9XG59XG4iLCJAbGV0IHRleHRzID0gdGV4dHMkIHwgYXN5bmM7XG5cbkBpZiAodGV4dHMpIHtcbiAgICA8ZGl2IGNsYXNzPVwidC1jb250ZW50XCI+XG4gICAgICAgIEBpZiAoaW5kZXgoKSA+IDEpIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwiZmxhdFwiXG4gICAgICAgICAgICAgICAgdGFiSW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2ljb25TdGFydF09XCJpY29ucy5kZWNyZW1lbnRcIlxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIltdXCJcbiAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwiZ2V0UGFnZVF1ZXJ5UGFyYW1zKGluZGV4KCkgLSAxKVwiXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZz1cIm1lcmdlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyB0ZXh0c1swXSB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJmbGF0XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICB0YWJJbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbaWNvblN0YXJ0XT1cImljb25zLmRlY3JlbWVudFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRleHRzWzBdIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBmb3IgKHBhZ2Ugb2YgcGFnZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICBAaWYgKHBhZ2UpIHtcbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICBhdXRvbWF0aW9uLWlkPVwic2MtcGFnaW5hdGlvbi1saW5rc19fZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXBwZWFyYW5jZV09XCJwYWdlID09PSBpbmRleCgpID8gJ3ByaW1hcnknIDogJ2ZsYXQnXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cInBhZ2UgPT09IGluZGV4KCkgPyAncGFnZScgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW11cIlxuICAgICAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwiZ2V0UGFnZVF1ZXJ5UGFyYW1zKHBhZ2UpXCJcbiAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZz1cIm1lcmdlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IHBhZ2UgfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidC1kb3RzXCI+PC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGluZGV4KCkgPCBsZW5ndGgoKSkge1xuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJmbGF0XCJcbiAgICAgICAgICAgICAgICB0YWJJbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbaWNvblN0YXJ0XT1cImljb25zLmluY3JlbWVudFwiXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW11cIlxuICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJnZXRQYWdlUXVlcnlQYXJhbXMoaW5kZXgoKSArIDEpXCJcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nPVwibWVyZ2VcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHRleHRzWzFdIH19XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImZsYXRcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidC1idXR0b25cIlxuICAgICAgICAgICAgICAgIFtpY29uU3RhcnRdPVwiaWNvbnMuaW5jcmVtZW50XCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdGV4dHNbMV0gfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG4iXX0=