@snabcentr/client-ui 0.17.3 → 0.18.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,73 +1,74 @@
1
- import { ChangeDetectorRef, OnInit } from '@angular/core';
2
- import { ScPriceHistory } from '@snabcentr/client-core';
3
- import { ECharts, EChartsOption } from 'echarts';
1
+ import { OnInit } from '@angular/core';
2
+ import { ScCatalogService, ScProduct } from '@snabcentr/client-core';
3
+ import { TuiDay, TuiDayRange, TuiStringHandler } from '@taiga-ui/cdk';
4
+ import { TuiDialogContext } from '@taiga-ui/core';
5
+ import { Observable } from 'rxjs';
4
6
  import * as i0 from "@angular/core";
5
7
  /**
6
8
  * График истории цен товара или услуги.
7
- * TODO: TASK[#7482] Перепроверить возможность использования TuiLineDaysChart.
8
9
  */
9
10
  export declare class ScPriceHistoryComponent implements OnInit {
10
- private readonly cdr;
11
+ private readonly catalogService;
12
+ private readonly months$;
13
+ private readonly context?;
11
14
  /**
12
- * История цен на товар/услугу.
15
+ * {@link Observable} временного промежутка истории цен.
13
16
  */
14
- history: ScPriceHistory;
17
+ range$: Observable<TuiDayRange>;
15
18
  /**
16
- * Максимальная цена товара.
17
- */
18
- maxPrice?: number;
19
- /**
20
- * Минимальная цена товара.
19
+ * Товар или услуга, для которого необходимо отобразить историю цен.
21
20
  */
22
- minPrice?: number;
21
+ product: ScProduct;
23
22
  /**
24
- * Настройки графика.
23
+ * {@link Observable} истории цен.
25
24
  */
26
- initOption: {
27
- devicePixelRatio?: number;
28
- renderer?: string;
29
- width?: number | string;
30
- height?: number | string;
31
- locale?: string;
32
- };
25
+ history$?: Observable<ReadonlyArray<[TuiDay, number]>>;
33
26
  /**
34
- * Параметры отрисовки графика истории цены.
27
+ * Максимальная цена товара.
35
28
  */
36
- chartOption: EChartsOption;
29
+ priceInfo$?: Observable<{
30
+ min: number;
31
+ max: number;
32
+ }>;
37
33
  /**
38
- * Данные об истории цены на товар или услугу.
34
+ * {@link Observable} функция для преобразования значения number в строку в подсказке по оси X.
39
35
  */
40
- private data;
36
+ readonly xStringify$: Observable<TuiStringHandler<TuiDay>>;
41
37
  /**
42
- * Экземпляр {@link ECharts} в шаблоне.
38
+ * Функция для преобразования значения number в строку в подсказке по оси Y.
39
+ *
40
+ * @param value Значение оси Y.
43
41
  */
44
- private eChartsInstance;
42
+ readonly yStringify: TuiStringHandler<number>;
45
43
  /**
46
44
  * Инициализирует экземпляр класса {@link ScPriceHistoryComponent}.
47
45
  *
48
- * @param cdr Объект для работы с обнаружением изменений.
46
+ * @param catalogService Сервис для работы с каталогом.
47
+ * @param months$ Перечисление месяцев.
48
+ * @param context Контекст диалогового окна, в котором открыт компонент.
49
49
  */
50
- constructor(cdr: ChangeDetectorRef);
50
+ constructor(catalogService: ScCatalogService, months$: Observable<readonly string[]>, context?: TuiDialogContext<void, {
51
+ product: ScProduct;
52
+ }> | undefined);
51
53
  /** @inheritDoc */
52
54
  ngOnInit(): void;
53
55
  /**
54
- * Перехватчик жизненного цикла {@link ECharts}, который вызывается при его инициализации.
56
+ * Вычисляет подписи даты к оси X.
55
57
  *
56
- * @param eChartsInstance Экземпляр {@link ECharts}.
57
- */
58
- onChartInit(eChartsInstance: ECharts): void;
59
- /**
60
- * Устанавливает новые данные {@link ScPriceHistoryComponent.eChartsInstance}.
58
+ * @param param0 {@link TuiDayRange} Временной промежуток истории цен.
59
+ * @param param0.from {@link TuiDay} Дата начала истории цен.
60
+ * @param param0.to {@link TuiDay} Дата конца истории цен.
61
61
  */
62
- private setChartData;
62
+ computeLabels$({ from, to }: TuiDayRange): Observable<readonly string[]>;
63
63
  /**
64
- * Добавляет значение цены товара в массив истории цен.
64
+ * Вычисляет данные для отображения на графике.
65
65
  *
66
- * @param value Цена товара или услуги.
67
- * @param date Дата установки цены.
68
- * @param nextDate Следующая дата установки цены.
66
+ * @param param0 {@link TuiDayRange} Временной промежуток истории цен.
67
+ * @param param0.from {@link TuiDay} Дата начала истории цен.
68
+ * @param param0.to {@link TuiDay} Дата конца истории цен.
69
+ * @param history История цен.
69
70
  */
70
- private pushDataItem;
71
- static ɵfac: i0.ɵɵFactoryDeclaration<ScPriceHistoryComponent, never>;
72
- static ɵcmp: i0.ɵɵComponentDeclaration<ScPriceHistoryComponent, "sc-price-history", never, { "history": "history"; }, {}, never, never, false>;
71
+ computeValue({ from, to }: TuiDayRange, history: ReadonlyArray<[TuiDay, number]>): ReadonlyArray<[TuiDay, number]>;
72
+ static ɵfac: i0.ɵɵFactoryDeclaration<ScPriceHistoryComponent, [null, null, { optional: true; }]>;
73
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScPriceHistoryComponent, "sc-price-history", never, { "product": "product"; }, {}, never, never, false>;
73
74
  }
@@ -12,13 +12,13 @@ import * as i10 from "@angular/router";
12
12
  import * as i11 from "@taiga-ui/core";
13
13
  import * as i12 from "@taiga-ui/kit";
14
14
  import * as i13 from "@angular/forms";
15
- import * as i14 from "ngx-echarts";
16
- import * as i15 from "@taiga-ui/cdk";
15
+ import * as i14 from "@taiga-ui/cdk";
16
+ import * as i15 from "@taiga-ui/addon-charts";
17
17
  /**
18
18
  * Модуль каталога.
19
19
  */
20
20
  export declare class ScCatalogModule {
21
21
  static ɵfac: i0.ɵɵFactoryDeclaration<ScCatalogModule, never>;
22
- static ɵmod: i0.ɵɵNgModuleDeclaration<ScCatalogModule, [typeof i1.ScPriceListPaginationComponent, typeof i2.ScCategoryCardComponent, typeof i3.ScFavoriteBtnComponent, typeof i4.ScInputQuantityComponent, typeof i5.ScPriceCardComponent, typeof i6.ScPriceWarehouseStockComponent, typeof i7.ScPriceHistoryComponent, typeof i8.ScCategoriesListComponent], [typeof i9.CommonModule, typeof i10.RouterModule, typeof i11.TuiButtonModule, typeof i11.TuiSvgModule, typeof i12.TuiIslandModule, typeof i12.TuiInputNumberModule, typeof i11.TuiLabelModule, typeof i11.TuiTextfieldControllerModule, typeof i13.FormsModule, typeof i13.ReactiveFormsModule, typeof i11.TuiHintModule, typeof i11.TuiModeModule, typeof i12.TuiFieldErrorPipeModule, typeof i11.TuiLoaderModule, typeof i11.TuiLinkModule, typeof i12.TuiElasticContainerModule, typeof i14.NgxEchartsModule, typeof i15.TuiLetModule, typeof i15.TuiRepeatTimesModule, typeof i12.TuiHighlightModule], [typeof i1.ScPriceListPaginationComponent, typeof i2.ScCategoryCardComponent, typeof i3.ScFavoriteBtnComponent, typeof i4.ScInputQuantityComponent, typeof i5.ScPriceCardComponent, typeof i6.ScPriceWarehouseStockComponent, typeof i7.ScPriceHistoryComponent, typeof i8.ScCategoriesListComponent]>;
22
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ScCatalogModule, [typeof i1.ScPriceListPaginationComponent, typeof i2.ScCategoryCardComponent, typeof i3.ScFavoriteBtnComponent, typeof i4.ScInputQuantityComponent, typeof i5.ScPriceCardComponent, typeof i6.ScPriceWarehouseStockComponent, typeof i7.ScPriceHistoryComponent, typeof i8.ScCategoriesListComponent], [typeof i9.CommonModule, typeof i10.RouterModule, typeof i11.TuiButtonModule, typeof i11.TuiSvgModule, typeof i12.TuiIslandModule, typeof i12.TuiInputNumberModule, typeof i11.TuiLabelModule, typeof i11.TuiTextfieldControllerModule, typeof i13.FormsModule, typeof i13.ReactiveFormsModule, typeof i11.TuiHintModule, typeof i11.TuiModeModule, typeof i12.TuiFieldErrorPipeModule, typeof i11.TuiLoaderModule, typeof i11.TuiLinkModule, typeof i12.TuiElasticContainerModule, typeof i14.TuiLetModule, typeof i14.TuiRepeatTimesModule, typeof i12.TuiHighlightModule, typeof i15.TuiLineDaysChartModule, typeof i15.TuiAxesModule], [typeof i1.ScPriceListPaginationComponent, typeof i2.ScCategoryCardComponent, typeof i3.ScFavoriteBtnComponent, typeof i4.ScInputQuantityComponent, typeof i5.ScPriceCardComponent, typeof i6.ScPriceWarehouseStockComponent, typeof i7.ScPriceHistoryComponent, typeof i8.ScCategoriesListComponent]>;
23
23
  static ɵinj: i0.ɵɵInjectorDeclaration<ScCatalogModule>;
24
24
  }
@@ -1,108 +1,114 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
- import { scChartOption } from './sc-chart-option';
1
+ import { __decorate } from "tslib";
2
+ /* eslint-disable class-methods-use-this,lodash/prefer-lodash-method */
3
+ import { ChangeDetectionStrategy, Component, Inject, Input, Optional } from '@angular/core';
4
+ import { TuiDay, TuiDayRange, TuiMonth, tuiPure } from '@taiga-ui/cdk';
5
+ import { TUI_MONTHS } from '@taiga-ui/core';
6
+ import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus';
7
+ import { filter, map, shareReplay } from 'rxjs';
3
8
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "ngx-echarts";
9
+ import * as i1 from "@snabcentr/client-core";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "@taiga-ui/addon-charts";
12
+ import * as i4 from "rxjs";
6
13
  /**
7
14
  * График истории цен товара или услуги.
8
- * TODO: TASK[#7482] Перепроверить возможность использования TuiLineDaysChart.
9
15
  */
10
16
  export class ScPriceHistoryComponent {
11
17
  /**
12
18
  * Инициализирует экземпляр класса {@link ScPriceHistoryComponent}.
13
19
  *
14
- * @param cdr Объект для работы с обнаружением изменений.
20
+ * @param catalogService Сервис для работы с каталогом.
21
+ * @param months$ Перечисление месяцев.
22
+ * @param context Контекст диалогового окна, в котором открыт компонент.
15
23
  */
16
- constructor(cdr) {
17
- this.cdr = cdr;
24
+ constructor(catalogService, months$, context) {
25
+ this.catalogService = catalogService;
26
+ this.months$ = months$;
27
+ this.context = context;
18
28
  /**
19
- * Настройки графика.
29
+ * {@link Observable} функция для преобразования значения number в строку в подсказке по оси X.
20
30
  */
21
- this.initOption = { locale: 'RU' };
31
+ this.xStringify$ = this.months$.pipe(map((months) => ({ month, day }) =>
32
+ // eslint-disable-next-line security/detect-object-injection
33
+ `${months[month]}, ${day}`));
22
34
  /**
23
- * Параметры отрисовки графика истории цены.
35
+ * Функция для преобразования значения number в строку в подсказке по оси Y.
36
+ *
37
+ * @param value Значение оси Y.
24
38
  */
25
- this.chartOption = scChartOption;
26
- /**
27
- * Данные об истории цены на товар или услугу.
28
- */
29
- this.data = [];
39
+ this.yStringify = (value) => `${value.toLocaleString('ru-RU')} ₽`;
40
+ if (context) {
41
+ this.product = context.data.product;
42
+ }
30
43
  }
31
44
  /** @inheritDoc */
32
45
  ngOnInit() {
33
- if (this.chartOption.series && !Array.isArray(this.chartOption.series)) {
34
- this.chartOption.series.data = [];
35
- }
36
- Object.keys(this.history)
37
- .map((key) => {
38
- // ? Можно избежать переведя даты в api в формат ECMAScript® 2023: https://tc39.es/ecma262/#sec-date-time-string-format
39
- const dataString = key.split('.').reverse();
40
- const data = new Date(+dataString[0], +dataString[1] - 1, +dataString[2]);
41
- return { data: data, cost: this.history[String(key)].cost };
42
- })
43
- .sort((a, b) => +a.data - +b.data)
44
- .forEach((item, index, array) => {
45
- let nextDate;
46
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
47
- if (array[index + 1]?.data) {
48
- nextDate = new Date(array[index + 1]?.data);
49
- nextDate.setDate(nextDate.getDate() - 1);
50
- }
51
- else {
52
- nextDate = new Date();
53
- }
54
- this.pushDataItem(item.cost, item.data, nextDate);
55
- });
56
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
57
- if (this.eChartsInstance) {
58
- this.setChartData();
59
- }
46
+ this.history$ = this.catalogService.getPriceHistory$(this.product).pipe(map((history) => Object.keys(history)
47
+ .map((item) => [TuiDay.normalizeParse(item, 'DMY'), history[String(item)].cost])
48
+ .sort((a, b) => (a[0] > b[0] ? 1 : -1))), shareReplay({ bufferSize: 1, refCount: true }), filter((history) => history.length > 1));
49
+ this.priceInfo$ = this.history$.pipe(map((history) => history.map((item) => item[1])), map((values) => ({
50
+ min: Math.min(...values),
51
+ max: Math.max(...values),
52
+ })));
53
+ this.range$ = this.history$.pipe(map((value) => ({ from: value.at(0)?.[0], to: value.at(-1)?.[0] })), filter((range) => !!range.from && !!range.to), map((range) => {
54
+ return new TuiDayRange(range.from, range.to);
55
+ }));
60
56
  }
61
57
  /**
62
- * Перехватчик жизненного цикла {@link ECharts}, который вызывается при его инициализации.
58
+ * Вычисляет подписи даты к оси X.
63
59
  *
64
- * @param eChartsInstance Экземпляр {@link ECharts}.
60
+ * @param param0 {@link TuiDayRange} Временной промежуток истории цен.
61
+ * @param param0.from {@link TuiDay} Дата начала истории цен.
62
+ * @param param0.to {@link TuiDay} Дата конца истории цен.
65
63
  */
66
- // eslint-disable-next-line unicorn/prevent-abbreviations
67
- onChartInit(eChartsInstance) {
68
- this.eChartsInstance = eChartsInstance;
69
- if (this.data.length > 0) {
70
- this.setChartData();
71
- }
72
- }
73
- /**
74
- * Устанавливает новые данные {@link ScPriceHistoryComponent.eChartsInstance}.
75
- */
76
- setChartData() {
77
- if (this.chartOption.series && !Array.isArray(this.chartOption.series)) {
78
- this.maxPrice = Math.max(...this.data.map((item) => item.value[1]));
79
- this.minPrice = Math.min(...this.data.map((item) => item.value[1]));
80
- this.chartOption.series.data = this.data;
81
- this.eChartsInstance.clear();
82
- this.eChartsInstance.setOption(this.chartOption, true, true);
83
- this.cdr.markForCheck();
84
- }
64
+ computeLabels$({ from, to }) {
65
+ return this.months$.pipe(map((months) => Array.from({ length: TuiMonth.lengthBetween(from, to) + 1 }, (_, index) => months[from.append({ month: index }).month])));
85
66
  }
86
67
  /**
87
- * Добавляет значение цены товара в массив истории цен.
68
+ * Вычисляет данные для отображения на графике.
88
69
  *
89
- * @param value Цена товара или услуги.
90
- * @param date Дата установки цены.
91
- * @param nextDate Следующая дата установки цены.
70
+ * @param param0 {@link TuiDayRange} Временной промежуток истории цен.
71
+ * @param param0.from {@link TuiDay} Дата начала истории цен.
72
+ * @param param0.to {@link TuiDay} Дата конца истории цен.
73
+ * @param history История цен.
92
74
  */
93
- pushDataItem(value, date, nextDate) {
94
- this.data.push({
95
- name: date.toString(),
96
- value: [date, value, nextDate],
97
- });
75
+ computeValue({ from, to }, history) {
76
+ return (Array.from({ length: TuiDay.lengthBetween(from, to) + 1 })
77
+ .fill(0)
78
+ // eslint-disable-next-line unicorn/no-array-reduce
79
+ .reduce((array, _, index) => {
80
+ const data = from.append({ day: index });
81
+ return [
82
+ ...array,
83
+ [
84
+ data,
85
+ (history.find((valueHistory, indexHistory, arrayHistory) => data.daySame(valueHistory[0]) || data.dayBefore(arrayHistory[indexHistory + 1][0])) ??
86
+ history[0])[1],
87
+ ],
88
+ ];
89
+ }, []));
98
90
  }
99
91
  }
100
- ScPriceHistoryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceHistoryComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
101
- ScPriceHistoryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPriceHistoryComponent, selector: "sc-price-history", inputs: { history: "history" }, ngImport: i0, template: "<div class=\"flex flex-col items-center\">\n <div *ngIf=\"maxPrice && minPrice\" class=\"w-full font-bold text-end text-lg mb-1\">\u043E\u0442 {{ minPrice.toLocaleString() }} \u20BD \u0434\u043E {{ maxPrice.toLocaleString() }} \u20BD</div>\n <div class=\"relative w-full h-56\">\n <div class=\"h-48 bg-tui-base-02 mt-2 absolute rounded right-0 left-16\"></div>\n <div echarts [initOpts]=\"initOption\" (chartInit)=\"onChartInit($event)\" [options]=\"chartOption\" class=\"w-full !h-full touch-none\"></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgxEchartsDirective, selector: "echarts, [echarts]", inputs: ["options", "theme", "loading", "initOpts", "merge", "autoResize", "loadingType", "loadingOpts"], outputs: ["chartInit", "optionsError", "chartClick", "chartDblClick", "chartMouseDown", "chartMouseMove", "chartMouseUp", "chartMouseOver", "chartMouseOut", "chartGlobalOut", "chartContextMenu", "chartLegendSelectChanged", "chartLegendSelected", "chartLegendUnselected", "chartLegendScroll", "chartDataZoom", "chartDataRangeSelected", "chartTimelineChanged", "chartTimelinePlayChanged", "chartRestore", "chartDataViewChanged", "chartMagicTypeChanged", "chartPieSelectChanged", "chartPieSelected", "chartPieUnselected", "chartMapSelectChanged", "chartMapSelected", "chartMapUnselected", "chartAxisAreaSelected", "chartFocusNodeAdjacency", "chartUnfocusNodeAdjacency", "chartBrush", "chartBrushEnd", "chartBrushSelected", "chartRendered", "chartFinished"], exportAs: ["echarts"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
92
+ ScPriceHistoryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceHistoryComponent, deps: [{ token: i1.ScCatalogService }, { token: TUI_MONTHS }, { token: POLYMORPHEUS_CONTEXT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
93
+ ScPriceHistoryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPriceHistoryComponent, selector: "sc-price-history", inputs: { product: "product" }, ngImport: i0, template: "<div class=\"flex flex-col items-center\">\n <ng-container *ngIf=\"priceInfo$ | async as priceInfo; else isNotExist\">\n <div class=\"w-174 mb-1 text-end text-lg font-bold\">\u043E\u0442 {{ priceInfo.min.toLocaleString() }} \u20BD \u0434\u043E {{ priceInfo.max.toLocaleString() }} \u20BD</div>\n\n <ng-container *ngIf=\"history$ | async as history\">\n <div\n *ngIf=\"range$ | async as range\"\n class=\"relative h-56 w-full p-5 text-tui-primary\"\n >\n <tui-axes\n *ngIf=\"computeLabels$(range) | async as labels\"\n class=\"h-full\"\n [axisXLabels]=\"labels\"\n [horizontalLines]=\"4\"\n [verticalLines]=\"labels.length\"\n >\n <tui-line-days-chart\n class=\"chart\"\n [height]=\"priceInfo.max\"\n [smoothingFactor]=\"10\"\n [y]=\"priceInfo.min - (priceInfo.min * 1) / 4\"\n [value]=\"computeValue(range, history)\"\n [xStringify]=\"xStringify$ | async\"\n [yStringify]=\"yStringify\"\n [hintContent]=\"hint\"\n ></tui-line-days-chart>\n </tui-axes>\n </div>\n </ng-container>\n </ng-container>\n <ng-template #isNotExist>\n <p class=\"text-base font-bold\">\u0426\u0435\u043D\u0430 \u043D\u0430 \u0442\u043E\u0432\u0430\u0440 \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u044F\u043B\u0430\u0441\u044C</p>\n </ng-template>\n <ng-template\n #hint\n let-data\n >\n <div class=\"font-bold\">{{ data[1].toLocaleString() }} \u20BD</div>\n <div>{{ data[0] }}</div>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TuiLineDaysChartComponent, selector: "tui-line-days-chart", inputs: ["value", "y", "height", "smoothingFactor", "hintContent", "xStringify", "yStringify", "dots"] }, { kind: "component", type: i3.TuiAxesComponent, selector: "tui-axes", inputs: ["axisX", "axisXLabels", "axisY", "axisYInset", "axisYLabels", "axisYName", "axisYSecondaryInset", "axisYSecondaryLabels", "axisYSecondaryName", "horizontalLines", "horizontalLinesHandler", "verticalLines", "verticalLinesHandler"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
94
+ __decorate([
95
+ tuiPure
96
+ ], ScPriceHistoryComponent.prototype, "computeLabels$", null);
97
+ __decorate([
98
+ tuiPure
99
+ ], ScPriceHistoryComponent.prototype, "computeValue", null);
102
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceHistoryComponent, decorators: [{
103
101
  type: Component,
104
- args: [{ selector: 'sc-price-history', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col items-center\">\n <div *ngIf=\"maxPrice && minPrice\" class=\"w-full font-bold text-end text-lg mb-1\">\u043E\u0442 {{ minPrice.toLocaleString() }} \u20BD \u0434\u043E {{ maxPrice.toLocaleString() }} \u20BD</div>\n <div class=\"relative w-full h-56\">\n <div class=\"h-48 bg-tui-base-02 mt-2 absolute rounded right-0 left-16\"></div>\n <div echarts [initOpts]=\"initOption\" (chartInit)=\"onChartInit($event)\" [options]=\"chartOption\" class=\"w-full !h-full touch-none\"></div>\n </div>\n</div>\n" }]
105
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { history: [{
102
+ args: [{ selector: 'sc-price-history', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col items-center\">\n <ng-container *ngIf=\"priceInfo$ | async as priceInfo; else isNotExist\">\n <div class=\"w-174 mb-1 text-end text-lg font-bold\">\u043E\u0442 {{ priceInfo.min.toLocaleString() }} \u20BD \u0434\u043E {{ priceInfo.max.toLocaleString() }} \u20BD</div>\n\n <ng-container *ngIf=\"history$ | async as history\">\n <div\n *ngIf=\"range$ | async as range\"\n class=\"relative h-56 w-full p-5 text-tui-primary\"\n >\n <tui-axes\n *ngIf=\"computeLabels$(range) | async as labels\"\n class=\"h-full\"\n [axisXLabels]=\"labels\"\n [horizontalLines]=\"4\"\n [verticalLines]=\"labels.length\"\n >\n <tui-line-days-chart\n class=\"chart\"\n [height]=\"priceInfo.max\"\n [smoothingFactor]=\"10\"\n [y]=\"priceInfo.min - (priceInfo.min * 1) / 4\"\n [value]=\"computeValue(range, history)\"\n [xStringify]=\"xStringify$ | async\"\n [yStringify]=\"yStringify\"\n [hintContent]=\"hint\"\n ></tui-line-days-chart>\n </tui-axes>\n </div>\n </ng-container>\n </ng-container>\n <ng-template #isNotExist>\n <p class=\"text-base font-bold\">\u0426\u0435\u043D\u0430 \u043D\u0430 \u0442\u043E\u0432\u0430\u0440 \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u044F\u043B\u0430\u0441\u044C</p>\n </ng-template>\n <ng-template\n #hint\n let-data\n >\n <div class=\"font-bold\">{{ data[1].toLocaleString() }} \u20BD</div>\n <div>{{ data[0] }}</div>\n </ng-template>\n</div>\n" }]
103
+ }], ctorParameters: function () { return [{ type: i1.ScCatalogService }, { type: i4.Observable, decorators: [{
104
+ type: Inject,
105
+ args: [TUI_MONTHS]
106
+ }] }, { type: undefined, decorators: [{
107
+ type: Optional
108
+ }, {
109
+ type: Inject,
110
+ args: [POLYMORPHEUS_CONTEXT]
111
+ }] }]; }, propDecorators: { product: [{
106
112
  type: Input
107
- }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJpY2UtaGlzdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2F0YWxvZy9wcmljZS1oaXN0b3J5L3NjLXByaWNlLWhpc3RvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvcHJpY2UtaGlzdG9yeS9zYy1wcmljZS1oaXN0b3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUlyRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFHbEQ7OztHQUdHO0FBTUgsTUFBTSxPQUFPLHVCQUF1QjtJQTBDaEM7Ozs7T0FJRztJQUNILFlBQW9DLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBL0IxRDs7V0FFRztRQUNJLGVBQVUsR0FNYixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUVyQjs7V0FFRztRQUNJLGdCQUFXLEdBQWtCLGFBQWEsQ0FBQztRQUVsRDs7V0FFRztRQUNLLFNBQUksR0FBdUIsRUFBRSxDQUFDO0lBWXVCLENBQUM7SUFFOUQsa0JBQWtCO0lBQ1gsUUFBUTtRQUNYLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUNyQztRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUNwQixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNU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LENBQUMsWUFBWSxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssWUFBWSxDQUFDLEtBQWEsRUFBRSxJQUFVLEVBQUUsUUFBYztRQUMxRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNYLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3JCLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDO1NBQ2pDLENBQUMsQ0FBQztJQUNQLENBQUM7O29IQTVIUSx1QkFBdUI7d0dBQXZCLHVCQUF1Qix3RkNoQnBDLHNpQkFPQTsyRkRTYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0ksa0JBQWtCLG1CQUVYLHVCQUF1QixDQUFDLE1BQU07d0dBTS9CLE9BQU87c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2NQcmljZUhpc3RvcnkgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IEVDaGFydHMsIEVDaGFydHNPcHRpb24gfSBmcm9tICdlY2hhcnRzJztcblxuaW1wb3J0IHsgc2NDaGFydE9wdGlvbiB9IGZyb20gJy4vc2MtY2hhcnQtb3B0aW9uJztcbmltcG9ydCB7IFNjSUNoYXJ0RGF0YUl0ZW0gfSBmcm9tICcuL3NjLWktY2hhcnQtZGF0YS1pdGVtJztcblxuLyoqXG4gKiDQk9GA0LDRhNC40Log0LjRgdGC0L7RgNC40Lgg0YbQtdC9INGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4LlxuICogVE9ETzogVEFTS1sjNzQ4Ml0g0J/QtdGA0LXQv9GA0L7QstC10YDQuNGC0Ywg0LLQvtC30LzQvtC20L3QvtGB0YLRjCDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjyBUdWlMaW5lRGF5c0NoYXJ0LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLXByaWNlLWhpc3RvcnknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1wcmljZS1oaXN0b3J5LmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NQcmljZUhpc3RvcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqINCY0YHRgtC+0YDQuNGPINGG0LXQvSDQvdCwINGC0L7QstCw0YAv0YPRgdC70YPQs9GDLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoaXN0b3J5OiBTY1ByaWNlSGlzdG9yeTtcblxuICAgIC8qKlxuICAgICAqINCc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDRhtC10L3QsCDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHVibGljIG1heFByaWNlPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0JzQuNC90LjQvNCw0LvRjNC90LDRjyDRhtC10L3QsCDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHVibGljIG1pblByaWNlPzogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICog0J3QsNGB0YLRgNC+0LnQutC4INCz0YDQsNGE0LjQutCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBpbml0T3B0aW9uOiB7XG4gICAgICAgIGRldmljZVBpeGVsUmF0aW8/OiBudW1iZXI7XG4gICAgICAgIHJlbmRlcmVyPzogc3RyaW5nO1xuICAgICAgICB3aWR0aD86IG51bWJlciB8IHN0cmluZztcbiAgICAgICAgaGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuICAgICAgICBsb2NhbGU/OiBzdHJpbmc7XG4gICAgfSA9IHsgbG9jYWxlOiAnUlUnIH07XG5cbiAgICAvKipcbiAgICAgKiDQn9Cw0YDQsNC80LXRgtGA0Ysg0L7RgtGA0LjRgdC+0LLQutC4INCz0YDQsNGE0LjQutCwINC40YHRgtC+0YDQuNC4INGG0LXQvdGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBjaGFydE9wdGlvbjogRUNoYXJ0c09wdGlvbiA9IHNjQ2hhcnRPcHRpb247XG5cbiAgICAvKipcbiAgICAgKiDQlNCw0L3QvdGL0LUg0L7QsSDQuNGB0YLQvtGA0LjQuCDRhtC10L3RiyDQvdCwINGC0L7QstCw0YAg0LjQu9C4INGD0YHQu9GD0LPRgy5cbiAgICAgKi9cbiAgICBwcml2YXRlIGRhdGE6IFNjSUNoYXJ0RGF0YUl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICog0K3QutC30LXQvNC/0LvRj9GAIHtAbGluayBFQ2hhcnRzfSDQsiDRiNCw0LHQu9C+0L3QtS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGVDaGFydHNJbnN0YW5jZTogRUNoYXJ0cztcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NQcmljZUhpc3RvcnlDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNkciDQntCx0YrQtdC60YIg0LTQu9GPINGA0LDQsdC+0YLRiyDRgSDQvtCx0L3QsNGA0YPQttC10L3QuNC10Lwg0LjQt9C80LXQvdC10L3QuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICAvKiogQGluaGVyaXREb2MgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNoYXJ0T3B0aW9uLnNlcmllcyAmJiAhQXJyYXkuaXNBcnJheSh0aGlzLmNoYXJ0T3B0aW9uLnNlcmllcykpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhcnRPcHRpb24uc2VyaWVzLmRhdGEgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuaGlzdG9yeSlcbiAgICAgICAgICAgIC5tYXAoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vID8g0JzQvtC20L3QviDQuNC30LHQtdC20LDRgtGMINC/0LXRgNC10LLQtdC00Y8g0LTQsNGC0Ysg0LIgYXBpINCyINGE0L7RgNC80LDRgiBFQ01BU2NyaXB0wq4gMjAyMzogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1kYXRlLXRpbWUtc3RyaW5nLWZvcm1hdFxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFTdHJpbmcgPSBrZXkuc3BsaXQoJy4nKS5yZXZlcnNlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG5ldyBEYXRlKCtkYXRhU3RyaW5nWzBdLCArZGF0YVN0cmluZ1sxXSAtIDEsICtkYXRhU3RyaW5nWzJdKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7IGRhdGE6IGRhdGEsIGNvc3Q6IHRoaXMuaGlzdG9yeVtTdHJpbmcoa2V5KV0uY29zdCB9O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiArYS5kYXRhIC0gK2IuZGF0YSlcbiAgICAgICAgICAgIC5mb3JFYWNoKChpdGVtLCBpbmRleCwgYXJyYXkpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgbmV4dERhdGU6IERhdGU7XG5cbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICAgICAgICAgICAgICAgIGlmIChhcnJheVtpbmRleCArIDFdPy5kYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHREYXRlID0gbmV3IERhdGUoYXJyYXlbaW5kZXggKyAxXT8uZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIG5leHREYXRlLnNldERhdGUobmV4dERhdGUuZ2V0RGF0ZSgpIC0gMSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMucHVzaERhdGFJdGVtKGl0ZW0uY29zdCwgaXRlbS5kYXRhLCBuZXh0RGF0ZSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICAgICAgICBpZiAodGhpcy5lQ2hhcnRzSW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2hhcnREYXRhKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9C10YDQtdGF0LLQsNGC0YfQuNC6INC20LjQt9C90LXQvdC90L7Qs9C+INGG0LjQutC70LAge0BsaW5rIEVDaGFydHN9LCDQutC+0YLQvtGA0YvQuSDQstGL0LfRi9Cy0LDQtdGC0YHRjyDQv9GA0Lgg0LXQs9C+INC40L3QuNGG0LjQsNC70LjQt9Cw0YbQuNC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIGVDaGFydHNJbnN0YW5jZSDQrdC60LfQtdC80L/Qu9GP0YAge0BsaW5rIEVDaGFydHN9LlxuICAgICAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB1bmljb3JuL3ByZXZlbnQtYWJicmV2aWF0aW9uc1xuICAgIHB1YmxpYyBvbkNoYXJ0SW5pdChlQ2hhcnRzSW5zdGFuY2U6IEVDaGFydHMpIHtcbiAgICAgICAgdGhpcy5lQ2hhcnRzSW5zdGFuY2UgPSBlQ2hhcnRzSW5zdGFuY2U7XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnNldENoYXJ0RGF0YSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPRgdGC0LDQvdCw0LLQu9C40LLQsNC10YIg0L3QvtCy0YvQtSDQtNCw0L3QvdGL0LUge0BsaW5rIFNjUHJpY2VIaXN0b3J5Q29tcG9uZW50LmVDaGFydHNJbnN0YW5jZX0uXG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRDaGFydERhdGEoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNoYXJ0T3B0aW9uLnNlcmllcyAmJiAhQXJyYXkuaXNBcnJheSh0aGlzLmNoYXJ0T3B0aW9uLnNlcmllcykpIHtcbiAgICAgICAgICAgIHRoaXMubWF4UHJpY2UgPSBNYXRoLm1heCguLi50aGlzLmRhdGEubWFwKChpdGVtKSA9PiBpdGVtLnZhbHVlWzFdKSk7XG4gICAgICAgICAgICB0aGlzLm1pblByaWNlID0gTWF0aC5taW4oLi4udGhpcy5kYXRhLm1hcCgoaXRlbSkgPT4gaXRlbS52YWx1ZVsxXSkpO1xuICAgICAgICAgICAgdGhpcy5jaGFydE9wdGlvbi5zZXJpZXMuZGF0YSA9IHRoaXMuZGF0YTtcbiAgICAgICAgICAgIHRoaXMuZUNoYXJ0c0luc3RhbmNlLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLmVDaGFydHNJbnN0YW5jZS5zZXRPcHRpb24odGhpcy5jaGFydE9wdGlvbiwgdHJ1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCU0L7QsdCw0LLQu9GP0LXRgiDQt9C90LDRh9C10L3QuNC1INGG0LXQvdGLINGC0L7QstCw0YDQsCDQsiDQvNCw0YHRgdC40LIg0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlINCm0LXQvdCwINGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4LlxuICAgICAqIEBwYXJhbSBkYXRlINCU0LDRgtCwINGD0YHRgtCw0L3QvtCy0LrQuCDRhtC10L3Riy5cbiAgICAgKiBAcGFyYW0gbmV4dERhdGUg0KHQu9C10LTRg9GO0YnQsNGPINC00LDRgtCwINGD0YHRgtCw0L3QvtCy0LrQuCDRhtC10L3Riy5cbiAgICAgKi9cbiAgICBwcml2YXRlIHB1c2hEYXRhSXRlbSh2YWx1ZTogbnVtYmVyLCBkYXRlOiBEYXRlLCBuZXh0RGF0ZTogRGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGEucHVzaCh7XG4gICAgICAgICAgICBuYW1lOiBkYXRlLnRvU3RyaW5nKCksXG4gICAgICAgICAgICB2YWx1ZTogW2RhdGUsIHZhbHVlLCBuZXh0RGF0ZV0sXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxkaXYgKm5nSWY9XCJtYXhQcmljZSAmJiBtaW5QcmljZVwiIGNsYXNzPVwidy1mdWxsIGZvbnQtYm9sZCB0ZXh0LWVuZCB0ZXh0LWxnIG1iLTFcIj7QvtGCIHt7IG1pblByaWNlLnRvTG9jYWxlU3RyaW5nKCkgfX0g4oK9INC00L4ge3sgbWF4UHJpY2UudG9Mb2NhbGVTdHJpbmcoKSB9fSDigr08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgdy1mdWxsIGgtNTZcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImgtNDggYmctdHVpLWJhc2UtMDIgbXQtMiBhYnNvbHV0ZSByb3VuZGVkIHJpZ2h0LTAgbGVmdC0xNlwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGVjaGFydHMgW2luaXRPcHRzXT1cImluaXRPcHRpb25cIiAoY2hhcnRJbml0KT1cIm9uQ2hhcnRJbml0KCRldmVudClcIiBbb3B0aW9uc109XCJjaGFydE9wdGlvblwiIGNsYXNzPVwidy1mdWxsICFoLWZ1bGwgdG91Y2gtbm9uZVwiPjwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
113
+ }], computeLabels$: [], computeValue: [] } });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtcHJpY2UtaGlzdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2F0YWxvZy9wcmljZS1oaXN0b3J5L3NjLXByaWNlLWhpc3RvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvcHJpY2UtaGlzdG9yeS9zYy1wcmljZS1oaXN0b3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSx1RUFBdUU7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBRTVEOztHQUVHO0FBTUgsTUFBTSxPQUFPLHVCQUF1QjtJQTJDaEM7Ozs7OztPQU1HO0lBQ0gsWUFDcUIsY0FBZ0MsRUFDWixPQUFzQyxFQUcxRCxPQUF3RDtRQUp4RCxtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDWixZQUFPLEdBQVAsT0FBTyxDQUErQjtRQUcxRCxZQUFPLEdBQVAsT0FBTyxDQUFpRDtRQS9CN0U7O1dBRUc7UUFDYSxnQkFBVyxHQUF5QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDakYsR0FBRyxDQUNDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDUCxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFB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QUFDO3dCQUMzSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3JCO2FBQ0osQ0FBQztRQUNOLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FDYixDQUFDO0lBQ04sQ0FBQzs7b0hBaklRLHVCQUF1QixrREFvRHBCLFVBQVUsYUFFVixvQkFBb0I7d0dBdER2Qix1QkFBdUIsd0ZDaEJwQyxrMkRBeUNBO0FEMEVJO0lBREMsT0FBTzs2REFHUDtBQVdEO0lBREMsT0FBTzsyREFrQlA7MkZBaklRLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDSSxrQkFBa0IsbUJBRVgsdUJBQXVCLENBQUMsTUFBTTs7MEJBc0QxQyxNQUFNOzJCQUFDLFVBQVU7OzBCQUNqQixRQUFROzswQkFDUixNQUFNOzJCQUFDLG9CQUFvQjs0Q0E3Q2hCLE9BQU87c0JBQXRCLEtBQUs7Z0JBMEZDLGNBQWMsTUFhZCxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgY2xhc3MtbWV0aG9kcy11c2UtdGhpcyxsb2Rhc2gvcHJlZmVyLWxvZGFzaC1tZXRob2QgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjQ2F0YWxvZ1NlcnZpY2UsIFNjUHJvZHVjdCB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgVHVpRGF5LCBUdWlEYXlSYW5nZSwgVHVpTW9udGgsIHR1aVB1cmUsIFR1aVN0cmluZ0hhbmRsZXIgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFRVSV9NT05USFMsIFR1aURpYWxvZ0NvbnRleHQgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBQT0xZTU9SUEhFVVNfQ09OVEVYVCB9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiDQk9GA0LDRhNC40Log0LjRgdGC0L7RgNC40Lgg0YbQtdC9INGC0L7QstCw0YDQsCDQuNC70Lgg0YPRgdC70YPQs9C4LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLXByaWNlLWhpc3RvcnknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1wcmljZS1oaXN0b3J5LmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NQcmljZUhpc3RvcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQstGA0LXQvNC10L3QvdC+0LPQviDQv9GA0L7QvNC10LbRg9GC0LrQsCDQuNGB0YLQvtGA0LjQuCDRhtC10L0uXG4gICAgICovXG4gICAgcHVibGljIHJhbmdlJDogT2JzZXJ2YWJsZTxUdWlEYXlSYW5nZT47XG5cbiAgICAvKipcbiAgICAgKiDQotC+0LLQsNGAINC40LvQuCDRg9GB0LvRg9Cz0LAsINC00LvRjyDQutC+0YLQvtGA0L7Qs9C+INC90LXQvtCx0YXQvtC00LjQvNC+INC+0YLQvtCx0YDQsNC30LjRgtGMINC40YHRgtC+0YDQuNGOINGG0LXQvS5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBwdWJsaWMgcHJvZHVjdDogU2NQcm9kdWN0O1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40YHRgtC+0YDQuNC4INGG0LXQvS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaGlzdG9yeSQ/OiBPYnNlcnZhYmxlPFJlYWRvbmx5QXJyYXk8W1R1aURheSwgbnVtYmVyXT4+O1xuXG4gICAgLyoqXG4gICAgICog0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPINGG0LXQvdCwINGC0L7QstCw0YDQsC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcHJpY2VJbmZvJD86IE9ic2VydmFibGU8e1xuICAgICAgICBtaW46IG51bWJlcjtcbiAgICAgICAgbWF4OiBudW1iZXI7XG4gICAgfT47XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YTRg9C90LrRhtC40Y8g0LTQu9GPINC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40Y8g0LfQvdCw0YfQtdC90LjRjyBudW1iZXIg0LIg0YHRgtGA0L7QutGDINCyINC/0L7QtNGB0LrQsNC30LrQtSDQv9C+INC+0YHQuCBYLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSB4U3RyaW5naWZ5JDogT2JzZXJ2YWJsZTxUdWlTdHJpbmdIYW5kbGVyPFR1aURheT4+ID0gdGhpcy5tb250aHMkLnBpcGUoXG4gICAgICAgIG1hcChcbiAgICAgICAgICAgIChtb250aHMpID0+XG4gICAgICAgICAgICAgICAgKHsgbW9udGgsIGRheSB9KSA9PlxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VjdXJpdHkvZGV0ZWN0LW9iamVjdC1pbmplY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgYCR7bW9udGhzW21vbnRoXX0sICR7ZGF5fWBcbiAgICAgICAgKVxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiDQpNGD0L3QutGG0LjRjyDQtNC70Y8g0L/RgNC10L7QsdGA0LDQt9C+0LLQsNC90LjRjyDQt9C90LDRh9C10L3QuNGPIG51bWJlciDQsiDRgdGC0YDQvtC60YMg0LIg0L/QvtC00YHQutCw0LfQutC1INC/0L4g0L7RgdC4IFkuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUg0JfQvdCw0YfQtdC90LjQtSDQvtGB0LggWS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgeVN0cmluZ2lmeTogVHVpU3RyaW5nSGFuZGxlcjxudW1iZXI+ID0gKHZhbHVlKSA9PiBgJHt2YWx1ZS50b0xvY2FsZVN0cmluZygncnUtUlUnKX0g4oK9YDtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NQcmljZUhpc3RvcnlDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhdGFsb2dTZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC60LDRgtCw0LvQvtCz0L7QvC5cbiAgICAgKiBAcGFyYW0gbW9udGhzJCDQn9C10YDQtdGH0LjRgdC70LXQvdC40LUg0LzQtdGB0Y/RhtC10LIuXG4gICAgICogQHBhcmFtIGNvbnRleHQg0JrQvtC90YLQtdC60YHRgiDQtNC40LDQu9C+0LPQvtCy0L7Qs9C+INC+0LrQvdCwLCDQsiDQutC+0YLQvtGA0L7QvCDQvtGC0LrRgNGL0YIg0LrQvtC80L/QvtC90LXQvdGCLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjYXRhbG9nU2VydmljZTogU2NDYXRhbG9nU2VydmljZSxcbiAgICAgICAgQEluamVjdChUVUlfTU9OVEhTKSBwcml2YXRlIHJlYWRvbmx5IG1vbnRocyQ6IE9ic2VydmFibGU8cmVhZG9ubHkgc3RyaW5nW10+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KFBPTFlNT1JQSEVVU19DT05URVhUKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHQ/OiBUdWlEaWFsb2dDb250ZXh0PHZvaWQsIHsgcHJvZHVjdDogU2NQcm9kdWN0IH0+XG4gICAgKSB7XG4gICAgICAgIGlmIChjb250ZXh0KSB7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3QgPSBjb250ZXh0LmRhdGEucHJvZHVjdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oaXN0b3J5JCA9IHRoaXMuY2F0YWxvZ1NlcnZpY2UuZ2V0UHJpY2VIaXN0b3J5JCh0aGlzLnByb2R1Y3QpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGhpc3RvcnkpID0+XG4gICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoaGlzdG9yeSlcbiAgICAgICAgICAgICAgICAgICAgLm1hcCgoaXRlbSk6IFtUdWlEYXksIG51bWJlcl0gPT4gW1R1aURheS5ub3JtYWxpemVQYXJzZShpdGVtLCAnRE1ZJyksIGhpc3RvcnlbU3RyaW5nKGl0ZW0pXS5jb3N0XSlcbiAgICAgICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IChhWzBdID4gYlswXSA/IDEgOiAtMSkpXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcbiAgICAgICAgICAgIGZpbHRlcigoaGlzdG9yeSkgPT4gaGlzdG9yeS5sZW5ndGggPiAxKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMucHJpY2VJbmZvJCA9IHRoaXMuaGlzdG9yeSQucGlwZShcbiAgICAgICAgICAgIG1hcCgoaGlzdG9yeSkgPT4gaGlzdG9yeS5tYXAoKGl0ZW0pID0+IGl0ZW1bMV0pKSxcbiAgICAgICAgICAgIG1hcCgodmFsdWVzKSA9PiAoe1xuICAgICAgICAgICAgICAgIG1pbjogTWF0aC5taW4oLi4udmFsdWVzKSxcbiAgICAgICAgICAgICAgICBtYXg6IE1hdGgubWF4KC4uLnZhbHVlcyksXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnJhbmdlJCA9IHRoaXMuaGlzdG9yeSQucGlwZShcbiAgICAgICAgICAgIG1hcCgodmFsdWU6IFJlYWRvbmx5QXJyYXk8W1R1aURheSwgbnVtYmVyXT4pID0+ICh7IGZyb206IHZhbHVlLmF0KDApPy5bMF0sIHRvOiB2YWx1ZS5hdCgtMSk/LlswXSB9KSksXG4gICAgICAgICAgICBmaWx0ZXIoKHJhbmdlKTogcmFuZ2UgaXMgeyBmcm9tOiBUdWlEYXk7IHRvOiBUdWlEYXkgfSA9PiAhIXJhbmdlLmZyb20gJiYgISFyYW5nZS50byksXG4gICAgICAgICAgICBtYXAoKHJhbmdlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBUdWlEYXlSYW5nZShyYW5nZS5mcm9tLCByYW5nZS50byk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvRh9C40YHQu9GP0LXRgiDQv9C+0LTQv9C40YHQuCDQtNCw0YLRiyDQuiDQvtGB0LggWC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJhbTAge0BsaW5rIFR1aURheVJhbmdlfSDQktGA0LXQvNC10L3QvdC+0Lkg0L/RgNC+0LzQtdC20YPRgtC+0Log0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqIEBwYXJhbSBwYXJhbTAuZnJvbSB7QGxpbmsgVHVpRGF5fSDQlNCw0YLQsCDQvdCw0YfQsNC70LAg0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqIEBwYXJhbSBwYXJhbTAudG8ge0BsaW5rIFR1aURheX0g0JTQsNGC0LAg0LrQvtC90YbQsCDQuNGB0YLQvtGA0LjQuCDRhtC10L0uXG4gICAgICovXG4gICAgQHR1aVB1cmVcbiAgICBwdWJsaWMgY29tcHV0ZUxhYmVscyQoeyBmcm9tLCB0byB9OiBUdWlEYXlSYW5nZSk6IE9ic2VydmFibGU8cmVhZG9ubHkgc3RyaW5nW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9udGhzJC5waXBlKG1hcCgobW9udGhzKSA9PiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBUdWlNb250aC5sZW5ndGhCZXR3ZWVuKGZyb20sIHRvKSArIDEgfSwgKF8sIGluZGV4KSA9PiBtb250aHNbZnJvbS5hcHBlbmQoeyBtb250aDogaW5kZXggfSkubW9udGhdKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0YvRh9C40YHQu9GP0LXRgiDQtNCw0L3QvdGL0LUg0LTQu9GPINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0L3QsCDQs9GA0LDRhNC40LrQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwYXJhbTAge0BsaW5rIFR1aURheVJhbmdlfSDQktGA0LXQvNC10L3QvdC+0Lkg0L/RgNC+0LzQtdC20YPRgtC+0Log0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqIEBwYXJhbSBwYXJhbTAuZnJvbSB7QGxpbmsgVHVpRGF5fSDQlNCw0YLQsCDQvdCw0YfQsNC70LAg0LjRgdGC0L7RgNC40Lgg0YbQtdC9LlxuICAgICAqIEBwYXJhbSBwYXJhbTAudG8ge0BsaW5rIFR1aURheX0g0JTQsNGC0LAg0LrQvtC90YbQsCDQuNGB0YLQvtGA0LjQuCDRhtC10L0uXG4gICAgICogQHBhcmFtIGhpc3Rvcnkg0JjRgdGC0L7RgNC40Y8g0YbQtdC9LlxuICAgICAqL1xuICAgIEB0dWlQdXJlXG4gICAgcHVibGljIGNvbXB1dGVWYWx1ZSh7IGZyb20sIHRvIH06IFR1aURheVJhbmdlLCBoaXN0b3J5OiBSZWFkb25seUFycmF5PFtUdWlEYXksIG51bWJlcl0+KTogUmVhZG9ubHlBcnJheTxbVHVpRGF5LCBudW1iZXJdPiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiBUdWlEYXkubGVuZ3RoQmV0d2Vlbihmcm9tLCB0bykgKyAxIH0pXG4gICAgICAgICAgICAgICAgLmZpbGwoMClcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgdW5pY29ybi9uby1hcnJheS1yZWR1Y2VcbiAgICAgICAgICAgICAgICAucmVkdWNlPFJlYWRvbmx5QXJyYXk8W1R1aURheSwgbnVtYmVyXT4+KChhcnJheSwgXywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGZyb20uYXBwZW5kKHsgZGF5OiBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmFycmF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhpc3RvcnkuZmluZCgodmFsdWVIaXN0b3J5LCBpbmRleEhpc3RvcnksIGFycmF5SGlzdG9yeSkgPT4gZGF0YS5kYXlTYW1lKHZhbHVlSGlzdG9yeVswXSkgfHwgZGF0YS5kYXlCZWZvcmUoYXJyYXlIaXN0b3J5W2luZGV4SGlzdG9yeSArIDFdWzBdKSkgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlzdG9yeVswXSlbMV0sXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIH0sIFtdKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcmljZUluZm8kIHwgYXN5bmMgYXMgcHJpY2VJbmZvOyBlbHNlIGlzTm90RXhpc3RcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInctMTc0IG1iLTEgdGV4dC1lbmQgdGV4dC1sZyBmb250LWJvbGRcIj7QvtGCIHt7IHByaWNlSW5mby5taW4udG9Mb2NhbGVTdHJpbmcoKSB9fSDigr0g0LTQviB7eyBwcmljZUluZm8ubWF4LnRvTG9jYWxlU3RyaW5nKCkgfX0g4oK9PC9kaXY+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpc3RvcnkkIHwgYXN5bmMgYXMgaGlzdG9yeVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwicmFuZ2UkIHwgYXN5bmMgYXMgcmFuZ2VcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicmVsYXRpdmUgaC01NiB3LWZ1bGwgcC01IHRleHQtdHVpLXByaW1hcnlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0dWktYXhlc1xuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbXB1dGVMYWJlbHMkKHJhbmdlKSB8IGFzeW5jIGFzIGxhYmVsc1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaC1mdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2F4aXNYTGFiZWxzXT1cImxhYmVsc1wiXG4gICAgICAgICAgICAgICAgICAgIFtob3Jpem9udGFsTGluZXNdPVwiNFwiXG4gICAgICAgICAgICAgICAgICAgIFt2ZXJ0aWNhbExpbmVzXT1cImxhYmVscy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHR1aS1saW5lLWRheXMtY2hhcnRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hhcnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCJwcmljZUluZm8ubWF4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzbW9vdGhpbmdGYWN0b3JdPVwiMTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ldPVwicHJpY2VJbmZvLm1pbiAtIChwcmljZUluZm8ubWluICogMSkgLyA0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb21wdXRlVmFsdWUocmFuZ2UsIGhpc3RvcnkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt4U3RyaW5naWZ5XT1cInhTdHJpbmdpZnkkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3lTdHJpbmdpZnldPVwieVN0cmluZ2lmeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaGludENvbnRlbnRdPVwiaGludFwiXG4gICAgICAgICAgICAgICAgICAgID48L3R1aS1saW5lLWRheXMtY2hhcnQ+XG4gICAgICAgICAgICAgICAgPC90dWktYXhlcz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2lzTm90RXhpc3Q+XG4gICAgICAgIDxwIGNsYXNzPVwidGV4dC1iYXNlIGZvbnQtYm9sZFwiPtCm0LXQvdCwINC90LAg0YLQvtCy0LDRgCDQvdC1INC40LfQvNC10L3Rj9C70LDRgdGMPC9wPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICNoaW50XG4gICAgICAgIGxldC1kYXRhXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1ib2xkXCI+e3sgZGF0YVsxXS50b0xvY2FsZVN0cmluZygpIH19IOKCvTwvZGl2PlxuICAgICAgICA8ZGl2Pnt7IGRhdGFbMF0gfX08L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
@@ -2,27 +2,19 @@ import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
3
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
4
  import { RouterModule } from '@angular/router';
5
+ import { TuiAxesModule, TuiLineDaysChartModule } from '@taiga-ui/addon-charts';
5
6
  import { TuiLetModule, TuiRepeatTimesModule } from '@taiga-ui/cdk';
6
7
  import { TuiButtonModule, TuiHintModule, TuiLabelModule, TuiLinkModule, TuiLoaderModule, TuiModeModule, TuiSvgModule, TuiTextfieldControllerModule } from '@taiga-ui/core';
7
8
  import { TuiElasticContainerModule, TuiFieldErrorPipeModule, TuiHighlightModule, TuiInputNumberModule, TuiIslandModule } from '@taiga-ui/kit';
8
- import { LineChart } from 'echarts/charts';
9
- import { GridComponent, TitleComponent, TooltipComponent } from 'echarts/components';
10
- import * as echarts from 'echarts/core';
11
- import { SVGRenderer } from 'echarts/renderers';
12
- import { NgxEchartsModule } from 'ngx-echarts';
13
9
  import { ScCategoriesListComponent } from './categories-list/sc-categories-list.component';
14
10
  import { ScCategoryCardComponent } from './category-card/sc-category-card.component';
15
11
  import { ScInputQuantityComponent } from './input-quantity/sc-input-quantity.component';
16
12
  import { ScPriceCardComponent } from './price-card/sc-price-card.component';
17
- import scLangRU from './price-history/sc-lang-ru';
18
13
  import { ScPriceHistoryComponent } from './price-history/sc-price-history.component';
19
14
  import { ScPriceListPaginationComponent } from './price-list-pagination/sc-price-list-pagination.component';
20
15
  import { ScPriceWarehouseStockComponent } from './price-warehouse-stock/sc-price-warehouse-stock.component';
21
16
  import { ScFavoriteBtnComponent as ScFavoriteButtonComponent } from './sc-favorite-btn/sc-favorite-btn.component';
22
17
  import * as i0 from "@angular/core";
23
- import * as i1 from "ngx-echarts";
24
- echarts.registerLocale('RU', scLangRU);
25
- echarts.use([TitleComponent, TooltipComponent, GridComponent, LineChart, SVGRenderer]);
26
18
  /**
27
19
  * Модуль каталога.
28
20
  */
@@ -51,9 +43,12 @@ ScCatalogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
51
43
  TuiFieldErrorPipeModule,
52
44
  TuiLoaderModule,
53
45
  TuiLinkModule,
54
- TuiElasticContainerModule, i1.NgxEchartsModule, TuiLetModule,
46
+ TuiElasticContainerModule,
47
+ TuiLetModule,
55
48
  TuiRepeatTimesModule,
56
- TuiHighlightModule], exports: [ScPriceListPaginationComponent,
49
+ TuiHighlightModule,
50
+ TuiLineDaysChartModule,
51
+ TuiAxesModule], exports: [ScPriceListPaginationComponent,
57
52
  ScCategoryCardComponent,
58
53
  ScFavoriteButtonComponent,
59
54
  ScInputQuantityComponent,
@@ -77,10 +72,11 @@ ScCatalogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
77
72
  TuiLoaderModule,
78
73
  TuiLinkModule,
79
74
  TuiElasticContainerModule,
80
- NgxEchartsModule.forRoot({ echarts }),
81
75
  TuiLetModule,
82
76
  TuiRepeatTimesModule,
83
- TuiHighlightModule] });
77
+ TuiHighlightModule,
78
+ TuiLineDaysChartModule,
79
+ TuiAxesModule] });
84
80
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCatalogModule, decorators: [{
85
81
  type: NgModule,
86
82
  args: [{
@@ -121,11 +117,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
121
117
  TuiLoaderModule,
122
118
  TuiLinkModule,
123
119
  TuiElasticContainerModule,
124
- NgxEchartsModule.forRoot({ echarts }),
125
120
  TuiLetModule,
126
121
  TuiRepeatTimesModule,
127
122
  TuiHighlightModule,
123
+ TuiLineDaysChartModule,
124
+ TuiAxesModule,
128
125
  ],
129
126
  }]
130
127
  }] });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2F0YWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2F0YWxvZy9zYy1jYXRhbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNLLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckYsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFB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QUFvQjt3QkFDcEIsa0JBQWtCO3FCQUNyQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHVpTGV0TW9kdWxlLCBUdWlSZXBlYXRUaW1lc01vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVHVpQnV0dG9uTW9kdWxlLCBUdWlIaW50TW9kdWxlLCBUdWlMYWJlbE1vZHVsZSwgVHVpTGlua01vZHVsZSwgVHVpTG9hZGVyTW9kdWxlLCBUdWlNb2RlTW9kdWxlLCBUdWlTdmdNb2R1bGUsIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBUdWlFbGFzdGljQ29udGFpbmVyTW9kdWxlLCBUdWlGaWVsZEVycm9yUGlwZU1vZHVsZSwgVHVpSGlnaGxpZ2h0TW9kdWxlLCBUdWlJbnB1dE51bWJlck1vZHVsZSwgVHVpSXNsYW5kTW9kdWxlIH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5pbXBvcnQgeyBMaW5lQ2hhcnQgfSBmcm9tICdlY2hhcnRzL2NoYXJ0cyc7XG5pbXBvcnQgeyBHcmlkQ29tcG9uZW50LCBUaXRsZUNvbXBvbmVudCwgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJ2VjaGFydHMvY29tcG9uZW50cyc7XG5pbXBvcnQgKiBhcyBlY2hhcnRzIGZyb20gJ2VjaGFydHMvY29yZSc7XG5pbXBvcnQgeyBTVkdSZW5kZXJlciB9IGZyb20gJ2VjaGFydHMvcmVuZGVyZXJzJztcbmltcG9ydCB7IE5neEVjaGFydHNNb2R1bGUgfSBmcm9tICduZ3gtZWNoYXJ0cyc7XG5cbmltcG9ydCB7IFNjQ2F0ZWdvcmllc0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2NhdGVnb3JpZXMtbGlzdC9zYy1jYXRlZ29yaWVzLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFNjQ2F0ZWdvcnlDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jYXRlZ29yeS1jYXJkL3NjLWNhdGVnb3J5LWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFNjSW5wdXRRdWFudGl0eUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtcXVhbnRpdHkvc2MtaW5wdXQtcXVhbnRpdHkuY29tcG9uZW50JztcbmltcG9ydCB7IFNjUHJpY2VDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9wcmljZS1jYXJkL3NjLXByaWNlLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCBzY0xhbmdSVSBmcm9tICcuL3ByaWNlLWhpc3Rvcnkvc2MtbGFuZy1ydSc7XG5pbXBvcnQgeyBTY1ByaWNlSGlzdG9yeUNvbXBvbmVudCB9IGZyb20gJy4vcHJpY2UtaGlzdG9yeS9zYy1wcmljZS1oaXN0b3J5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY1ByaWNlTGlzdFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3ByaWNlLWxpc3QtcGFnaW5hdGlvbi9zYy1wcmljZS1saXN0LXBhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFNjUHJpY2VXYXJlaG91c2VTdG9ja0NvbXBvbmVudCB9IGZyb20gJy4vcHJpY2Utd2FyZWhvdXNlLXN0b2NrL3NjLXByaWNlLXdhcmVob3VzZS1zdG9jay5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NGYXZvcml0ZUJ0bkNvbXBvbmVudCBhcyBTY0Zhdm9yaXRlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9zYy1mYXZvcml0ZS1idG4vc2MtZmF2b3JpdGUtYnRuLmNvbXBvbmVudCc7XG5cbmVjaGFydHMucmVnaXN0ZXJMb2NhbGUoJ1JVJywgc2NMYW5nUlUpO1xuZWNoYXJ0cy51c2UoW1RpdGxlQ29tcG9uZW50LCBUb29sdGlwQ29tcG9uZW50LCBHcmlkQ29tcG9uZW50LCBMaW5lQ2hhcnQsIFNWR1JlbmRlcmVyXSk7XG5cbi8qKlxuICog0JzQvtC00YPQu9GMINC60LDRgtCw0LvQvtCz0LAuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIFNjUHJpY2VMaXN0UGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgICAgICAgU2NDYXRlZ29yeUNhcmRDb21wb25lbnQsXG4gICAgICAgIFNjRmF2b3JpdGVCdXR0b25Db21wb25lbnQsXG4gICAgICAgIFNjSW5wdXRRdWFudGl0eUNvbXBvbmVudCxcbiAgICAgICAgU2NQcmljZUNhcmRDb21wb25lbnQsXG4gICAgICAgIFNjUHJpY2VXYXJlaG91c2VTdG9ja0NvbXBvbmVudCxcbiAgICAgICAgU2NQcmljZUhpc3RvcnlDb21wb25lbnQsXG4gICAgICAgIFNjQ2F0ZWdvcmllc0xpc3RDb21wb25lbnQsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFNjUHJpY2VMaXN0UGFnaW5hdGlvbkNvbXBvbmVudCxcbiAgICAgICAgU2NDYXRlZ29yeUNhcmRDb21wb25lbnQsXG4gICAgICAgIFNjRmF2b3JpdGVCdXR0b25Db21wb25lbnQsXG4gICAgICAgIFNjSW5wdXRRdWFudGl0eUNvbXBvbmVudCxcbiAgICAgICAgU2NQcmljZUNhcmRDb21wb25lbnQsXG4gICAgICAgIFNjUHJpY2VXYXJlaG91c2VTdG9ja0NvbXBvbmVudCxcbiAgICAgICAgU2NQcmljZUhpc3RvcnlDb21wb25lbnQsXG4gICAgICAgIFNjQ2F0ZWdvcmllc0xpc3RDb21wb25lbnQsXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBUdWlCdXR0b25Nb2R1bGUsXG4gICAgICAgIFR1aVN2Z01vZHVsZSxcbiAgICAgICAgVHVpSXNsYW5kTW9kdWxlLFxuICAgICAgICBUdWlJbnB1dE51bWJlck1vZHVsZSxcbiAgICAgICAgVHVpTGFiZWxNb2R1bGUsXG4gICAgICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBUdWlIaW50TW9kdWxlLFxuICAgICAgICBUdWlNb2RlTW9kdWxlLFxuICAgICAgICBUdWlGaWVsZEVycm9yUGlwZU1vZHVsZSxcbiAgICAgICAgVHVpTG9hZGVyTW9kdWxlLFxuICAgICAgICBUdWlMaW5rTW9kdWxlLFxuICAgICAgICBUdWlFbGFzdGljQ29udGFpbmVyTW9kdWxlLFxuICAgICAgICBOZ3hFY2hhcnRzTW9kdWxlLmZvclJvb3QoeyBlY2hhcnRzIH0pLFxuICAgICAgICBUdWlMZXRNb2R1bGUsXG4gICAgICAgIFR1aVJlcGVhdFRpbWVzTW9kdWxlLFxuICAgICAgICBUdWlIaWdobGlnaHRNb2R1bGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2NDYXRhbG9nTW9kdWxlIHt9XG4iXX0=
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2F0YWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2F0YWxvZy9zYy1jYXRhbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzSyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlJLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzVHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzVHLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOztBQUVsSDs7R0FFRztBQThDSCxNQUFNLE9BQU8sZUFBZTs7NEdBQWYsZUFBZTs2R0FBZixlQUFlLGlCQTNDcEIsOEJBQThCO1FBQzlCLHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsd0JBQXdCO1FBQ3hCLG9CQUFvQjtRQUNwQiw4QkFBOEI7UUFDOUIsdUJBQXVCO1FBQ3ZCLHlCQUF5QixhQWF6QixZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWU7UUFDZixZQUFZO1FBQ1osZUFBZTtRQUNmLG9CQUFvQjtRQUNwQixjQUFjO1FBQ2QsNEJBQTRCO1FBQzVCLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsYUFBYTtRQUNiLGFBQWE7UUFDYix1QkFBdUI7UUFDdkIsZUFBZTtRQUNmLGFBQWE7UUFDYix5QkFBeUI7UUFDekIsWUFBWTtRQUNaLG9CQUFvQjtRQUNwQixrQkFBa0I7UUFDbEIsc0JBQXNCO1FBQ3RCLGFBQWEsYUE5QmIsOEJBQThCO1FBQzlCLHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsd0JBQXdCO1FBQ3hCLG9CQUFvQjtRQUNwQiw4QkFBOEI7UUFDOUIsdUJBQXVCO1FBQ3ZCLHlCQUF5Qjs2R0EwQnBCLGVBQWUsWUF2QnBCLFlBQVk7UUFDWixZQUFZO1FBQ1osZUFBZTtRQUNmLFlBQVk7UUFDWixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLGNBQWM7UUFDZCw0QkFBNEI7UUFDNUIsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixhQUFhO1FBQ2IsYUFBYTtRQUNiLHVCQUF1QjtRQUN2QixlQUFlO1FBQ2YsYUFBYTtRQUNiLHlCQUF5QjtRQUN6QixZQUFZO1FBQ1osb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQixzQkFBc0I7UUFDdEIsYUFBYTsyRkFHUixlQUFlO2tCQTdDM0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsOEJBQThCO3dCQUM5Qix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsd0JBQXdCO3dCQUN4QixvQkFBb0I7d0JBQ3BCLDhCQUE4Qjt3QkFDOUIsdUJBQXVCO3dCQUN2Qix5QkFBeUI7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDTCw4QkFBOEI7d0JBQzlCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6Qix3QkFBd0I7d0JBQ3hCLG9CQUFvQjt3QkFDcEIsOEJBQThCO3dCQUM5Qix1QkFBdUI7d0JBQ3ZCLHlCQUF5QjtxQkFDNUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsNEJBQTRCO3dCQUM1QixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsYUFBYTt3QkFDYixhQUFhO3dCQUNiLHVCQUF1Qjt3QkFDdkIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLHlCQUF5Qjt3QkFDekIsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixhQUFhO3FCQUNoQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHVpQXhlc01vZHVsZSwgVHVpTGluZURheXNDaGFydE1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jaGFydHMnO1xuaW1wb3J0IHsgVHVpTGV0TW9kdWxlLCBUdWlSZXBlYXRUaW1lc01vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVHVpQnV0dG9uTW9kdWxlLCBUdWlIaW50TW9kdWxlLCBUdWlMYWJlbE1vZHVsZSwgVHVpTGlua01vZHVsZSwgVHVpTG9hZGVyTW9kdWxlLCBUdWlNb2RlTW9kdWxlLCBUdWlTdmdNb2R1bGUsIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBUdWlFbGFzdGljQ29udGFpbmVyTW9kdWxlLCBUdWlGaWVsZEVycm9yUGlwZU1vZHVsZSwgVHVpSGlnaGxpZ2h0TW9kdWxlLCBUdWlJbnB1dE51bWJlck1vZHVsZSwgVHVpSXNsYW5kTW9kdWxlIH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5cbmltcG9ydCB7IFNjQ2F0ZWdvcmllc0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2NhdGVnb3JpZXMtbGlzdC9zYy1jYXRlZ29yaWVzLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFNjQ2F0ZWdvcnlDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jYXRlZ29yeS1jYXJkL3NjLWNhdGVnb3J5LWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFNjSW5wdXRRdWFudGl0eUNvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtcXVhbnRpdHkvc2MtaW5wdXQtcXVhbnRpdHkuY29tcG9uZW50JztcbmltcG9ydCB7IFNjUHJpY2VDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9wcmljZS1jYXJkL3NjLXByaWNlLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFNjUHJpY2VIaXN0b3J5Q29tcG9uZW50IH0gZnJvbSAnLi9wcmljZS1oaXN0b3J5L3NjLXByaWNlLWhpc3RvcnkuY29tcG9uZW50JztcbmltcG9ydCB7IFNjUHJpY2VMaXN0UGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vcHJpY2UtbGlzdC1wYWdpbmF0aW9uL3NjLXByaWNlLWxpc3QtcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NQcmljZVdhcmVob3VzZVN0b2NrQ29tcG9uZW50IH0gZnJvbSAnLi9wcmljZS13YXJlaG91c2Utc3RvY2svc2MtcHJpY2Utd2FyZWhvdXNlLXN0b2NrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY0Zhdm9yaXRlQnRuQ29tcG9uZW50IGFzIFNjRmF2b3JpdGVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3NjLWZhdm9yaXRlLWJ0bi9zYy1mYXZvcml0ZS1idG4uY29tcG9uZW50JztcblxuLyoqXG4gKiDQnNC+0LTRg9C70Ywg0LrQsNGC0LDQu9C+0LPQsC5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgU2NQcmljZUxpc3RQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgICAgICBTY0NhdGVnb3J5Q2FyZENvbXBvbmVudCxcbiAgICAgICAgU2NGYXZvcml0ZUJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgU2NJbnB1dFF1YW50aXR5Q29tcG9uZW50LFxuICAgICAgICBTY1ByaWNlQ2FyZENvbXBvbmVudCxcbiAgICAgICAgU2NQcmljZVdhcmVob3VzZVN0b2NrQ29tcG9uZW50LFxuICAgICAgICBTY1ByaWNlSGlzdG9yeUNvbXBvbmVudCxcbiAgICAgICAgU2NDYXRlZ29yaWVzTGlzdENvbXBvbmVudCxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgU2NQcmljZUxpc3RQYWdpbmF0aW9uQ29tcG9uZW50LFxuICAgICAgICBTY0NhdGVnb3J5Q2FyZENvbXBvbmVudCxcbiAgICAgICAgU2NGYXZvcml0ZUJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgU2NJbnB1dFF1YW50aXR5Q29tcG9uZW50LFxuICAgICAgICBTY1ByaWNlQ2FyZENvbXBvbmVudCxcbiAgICAgICAgU2NQcmljZVdhcmVob3VzZVN0b2NrQ29tcG9uZW50LFxuICAgICAgICBTY1ByaWNlSGlzdG9yeUNvbXBvbmVudCxcbiAgICAgICAgU2NDYXRlZ29yaWVzTGlzdENvbXBvbmVudCxcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgICAgIFR1aUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVHVpU3ZnTW9kdWxlLFxuICAgICAgICBUdWlJc2xhbmRNb2R1bGUsXG4gICAgICAgIFR1aUlucHV0TnVtYmVyTW9kdWxlLFxuICAgICAgICBUdWlMYWJlbE1vZHVsZSxcbiAgICAgICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFR1aUhpbnRNb2R1bGUsXG4gICAgICAgIFR1aU1vZGVNb2R1bGUsXG4gICAgICAgIFR1aUZpZWxkRXJyb3JQaXBlTW9kdWxlLFxuICAgICAgICBUdWlMb2FkZXJNb2R1bGUsXG4gICAgICAgIFR1aUxpbmtNb2R1bGUsXG4gICAgICAgIFR1aUVsYXN0aWNDb250YWluZXJNb2R1bGUsXG4gICAgICAgIFR1aUxldE1vZHVsZSxcbiAgICAgICAgVHVpUmVwZWF0VGltZXNNb2R1bGUsXG4gICAgICAgIFR1aUhpZ2hsaWdodE1vZHVsZSxcbiAgICAgICAgVHVpTGluZURheXNDaGFydE1vZHVsZSxcbiAgICAgICAgVHVpQXhlc01vZHVsZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTY0NhdGFsb2dNb2R1bGUge31cbiJdfQ==