@snabcentr/client-ui 0.17.3 → 0.18.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.
Potentially problematic release.
This version of @snabcentr/client-ui might be problematic. Click here for more details.
- package/catalog/price-history/sc-price-history.component.d.ts +44 -43
- package/catalog/sc-catalog.module.d.ts +3 -3
- package/esm2020/catalog/price-history/sc-price-history.component.mjs +85 -79
- package/esm2020/catalog/sc-catalog.module.mjs +12 -15
- package/fesm2015/snabcentr-client-ui.mjs +92 -285
- package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
- package/fesm2020/snabcentr-client-ui.mjs +90 -284
- package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
- package/package.json +5 -7
- package/styles/tailwind/tailwind.scss +0 -24
- package/catalog/price-history/sc-chart-option.d.ts +0 -7
- package/catalog/price-history/sc-i-chart-data-item.d.ts +0 -13
- package/catalog/price-history/sc-lang-ru.d.ts +0 -115
- package/esm2020/catalog/price-history/sc-chart-option.mjs +0 -79
- package/esm2020/catalog/price-history/sc-i-chart-data-item.mjs +0 -2
- package/esm2020/catalog/price-history/sc-lang-ru.mjs +0 -115
|
@@ -5,13 +5,13 @@ import { Subject, filter, map, switchMap, tap, catchError, of, finalize, startWi
|
|
|
5
5
|
import * as i1 from '@snabcentr/client-core';
|
|
6
6
|
import { ScUserMetrikaGoalsEnum, SC_URLS, SC_PATH_IMAGE_NOT_FOUND, SEARCH_TERM, SEARCH_TERM_PROVIDERS, ScCatalogService, ScCartService, ScAuthService, ScISuggestionType, ScOpfList, ScIconTypesEnum, ScUserService } from '@snabcentr/client-core';
|
|
7
7
|
import * as i2 from '@angular/common';
|
|
8
|
-
import { CommonModule
|
|
8
|
+
import { CommonModule } from '@angular/common';
|
|
9
9
|
import * as i4 from '@taiga-ui/core';
|
|
10
|
-
import { TuiTextfieldControllerModule, TuiLinkModule, TuiButtonModule, TuiLabelModule, TuiModeModule, TuiErrorModule, TuiLoaderModule, tuiFadeIn,
|
|
10
|
+
import { TuiTextfieldControllerModule, TuiLinkModule, TuiButtonModule, TuiLabelModule, TuiModeModule, TuiErrorModule, TuiLoaderModule, tuiFadeIn, TUI_MONTHS, TuiSvgModule, TuiHintModule, TuiFormatNumberPipeModule, TuiDataListModule, TuiNotificationModule, TuiFormatPhonePipeModule } from '@taiga-ui/core';
|
|
11
11
|
import * as i3 from '@angular/forms';
|
|
12
12
|
import { FormGroupDirective, FormGroup, FormControl, Validators, FormsModule, ReactiveFormsModule, NgControl, FormArray } from '@angular/forms';
|
|
13
13
|
import * as i6 from '@taiga-ui/cdk';
|
|
14
|
-
import { tuiControlValue, tuiIsFalsy, TuiLetModule, tuiCreateToken, AbstractTuiNullableControl, TUI_IS_MOBILE, tuiPure, tuiIsPresent, TuiDestroyService, TuiRepeatTimesModule, tuiMarkControlAsTouchedAndValidate, ALWAYS_TRUE_HANDLER } from '@taiga-ui/cdk';
|
|
14
|
+
import { tuiControlValue, tuiIsFalsy, TuiLetModule, tuiCreateToken, AbstractTuiNullableControl, TUI_IS_MOBILE, tuiPure, TuiDay, TuiDayRange, TuiMonth, tuiIsPresent, TuiDestroyService, TuiRepeatTimesModule, tuiMarkControlAsTouchedAndValidate, ALWAYS_TRUE_HANDLER } from '@taiga-ui/cdk';
|
|
15
15
|
import * as i4$1 from '@taiga-ui/kit';
|
|
16
16
|
import { TuiInputPasswordModule, TuiInputModule, TuiFieldErrorPipeModule, TuiInputPhoneModule, TuiAccordionItemComponent, TuiAccordionModule, TuiElasticContainerModule, TuiCarouselModule, TUI_NUMBER_VALUE_TRANSFORMER, TuiInputNumberComponent, TuiIslandModule, TuiInputNumberModule, TuiHighlightModule, TuiCarouselComponent, TuiComboBoxModule, TuiDataListWrapperModule, TuiFilterByInputPipeModule, TuiStringifyContentPipeModule, TuiSelectModule, TuiTreeService, TuiTreeItemContentComponent, TUI_TREE_START, TUI_TREE_CONTENT, TUI_TREE_LOADING, TUI_TREE_LOADER, TuiTreeModule, TuiCheckboxModule, TuiCheckboxLabeledModule } from '@taiga-ui/kit';
|
|
17
17
|
import * as i6$1 from '@maskito/angular';
|
|
@@ -27,14 +27,10 @@ import * as i7$1 from '@taiga-ui/addon-preview';
|
|
|
27
27
|
import { TuiPreviewDialogService, TuiPreviewModule } from '@taiga-ui/addon-preview';
|
|
28
28
|
import * as i9 from '@taiga-ui/addon-commerce';
|
|
29
29
|
import { TuiCurrencyPipeModule } from '@taiga-ui/addon-commerce';
|
|
30
|
-
import * as
|
|
31
|
-
import {
|
|
32
|
-
import { LineChart } from 'echarts/charts';
|
|
33
|
-
import { TitleComponent, TooltipComponent, GridComponent } from 'echarts/components';
|
|
34
|
-
import * as echarts from 'echarts/core';
|
|
35
|
-
import { SVGRenderer } from 'echarts/renderers';
|
|
30
|
+
import * as i3$1 from '@taiga-ui/addon-charts';
|
|
31
|
+
import { TuiLineDaysChartModule, TuiAxesModule } from '@taiga-ui/addon-charts';
|
|
36
32
|
import { HttpErrorResponse } from '@angular/common/http';
|
|
37
|
-
import * as i3$
|
|
33
|
+
import * as i3$2 from '@taiga-ui/layout';
|
|
38
34
|
import { TuiBlockStatusModule } from '@taiga-ui/layout';
|
|
39
35
|
|
|
40
36
|
/**
|
|
@@ -1755,185 +1751,107 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
1755
1751
|
args: ['attr.data-size']
|
|
1756
1752
|
}] } });
|
|
1757
1753
|
|
|
1758
|
-
/**
|
|
1759
|
-
* Настройки отрисовки графика.
|
|
1760
|
-
*
|
|
1761
|
-
* @see [Документация](https://echarts.apache.org/en/option.html#title)
|
|
1762
|
-
*/
|
|
1763
|
-
const scChartOption = {
|
|
1764
|
-
grid: {
|
|
1765
|
-
top: 12,
|
|
1766
|
-
left: 64,
|
|
1767
|
-
right: 0,
|
|
1768
|
-
bottom: 24
|
|
1769
|
-
},
|
|
1770
|
-
tooltip: {
|
|
1771
|
-
trigger: 'axis',
|
|
1772
|
-
formatter: (params) => {
|
|
1773
|
-
const data = Array.isArray(params) ? params[0].data : params.data;
|
|
1774
|
-
const date = new Date(data.value[0]);
|
|
1775
|
-
const nextDate = new Date(data.value[2]);
|
|
1776
|
-
return `
|
|
1777
|
-
<div class="text-center text-black">
|
|
1778
|
-
<span class="font-bold">${data.value[1]} ₽</span>
|
|
1779
|
-
</br>
|
|
1780
|
-
<span class="text-xs">${formatDate(date, 'dd.MM', 'en')} - ${formatDate(nextDate, 'dd.MM', 'en')}</span>
|
|
1781
|
-
</div>
|
|
1782
|
-
`;
|
|
1783
|
-
},
|
|
1784
|
-
axisPointer: {
|
|
1785
|
-
animation: false,
|
|
1786
|
-
type: 'cross'
|
|
1787
|
-
},
|
|
1788
|
-
textStyle: {
|
|
1789
|
-
fontFamily: 'Roboto, "Helvetica Neue", sans-serif'
|
|
1790
|
-
}
|
|
1791
|
-
},
|
|
1792
|
-
xAxis: {
|
|
1793
|
-
type: 'time',
|
|
1794
|
-
splitLine: {
|
|
1795
|
-
show: false
|
|
1796
|
-
},
|
|
1797
|
-
axisLine: {
|
|
1798
|
-
show: false
|
|
1799
|
-
},
|
|
1800
|
-
axisTick: {
|
|
1801
|
-
show: false
|
|
1802
|
-
},
|
|
1803
|
-
axisLabel: {
|
|
1804
|
-
hideOverlap: true
|
|
1805
|
-
},
|
|
1806
|
-
boundaryGap: ['3%', '3%']
|
|
1807
|
-
},
|
|
1808
|
-
yAxis: {
|
|
1809
|
-
splitLine: {
|
|
1810
|
-
show: false
|
|
1811
|
-
},
|
|
1812
|
-
axisLine: {
|
|
1813
|
-
show: false
|
|
1814
|
-
},
|
|
1815
|
-
axisTick: {
|
|
1816
|
-
show: false
|
|
1817
|
-
},
|
|
1818
|
-
axisLabel: {
|
|
1819
|
-
formatter: (value) => tuiFormatNumber(value)
|
|
1820
|
-
},
|
|
1821
|
-
type: 'value',
|
|
1822
|
-
boundaryGap: [0, '100%']
|
|
1823
|
-
},
|
|
1824
|
-
series: {
|
|
1825
|
-
name: 'История цены',
|
|
1826
|
-
type: 'line',
|
|
1827
|
-
showSymbol: false,
|
|
1828
|
-
symbolSize: 12,
|
|
1829
|
-
itemStyle: {
|
|
1830
|
-
color: '#ffcc40'
|
|
1831
|
-
}
|
|
1832
|
-
}
|
|
1833
|
-
};
|
|
1834
|
-
|
|
1835
1754
|
/**
|
|
1836
1755
|
* График истории цен товара или услуги.
|
|
1837
|
-
* TODO: TASK[#7482] Перепроверить возможность использования TuiLineDaysChart.
|
|
1838
1756
|
*/
|
|
1839
1757
|
class ScPriceHistoryComponent {
|
|
1840
1758
|
/**
|
|
1841
1759
|
* Инициализирует экземпляр класса {@link ScPriceHistoryComponent}.
|
|
1842
1760
|
*
|
|
1843
|
-
* @param
|
|
1761
|
+
* @param catalogService Сервис для работы с каталогом.
|
|
1762
|
+
* @param months$ Перечисление месяцев.
|
|
1763
|
+
* @param context Контекст диалогового окна, в котором открыт компонент.
|
|
1844
1764
|
*/
|
|
1845
|
-
constructor(
|
|
1846
|
-
this.
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
*/
|
|
1850
|
-
this.initOption = { locale: 'RU' };
|
|
1765
|
+
constructor(catalogService, months$, context) {
|
|
1766
|
+
this.catalogService = catalogService;
|
|
1767
|
+
this.months$ = months$;
|
|
1768
|
+
this.context = context;
|
|
1851
1769
|
/**
|
|
1852
|
-
*
|
|
1770
|
+
* {@link Observable} функция для преобразования значения number в строку в подсказке по оси X.
|
|
1853
1771
|
*/
|
|
1854
|
-
this.
|
|
1772
|
+
this.xStringify$ = this.months$.pipe(map((months) => ({ month, day }) =>
|
|
1773
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
1774
|
+
`${months[month]}, ${day}`));
|
|
1855
1775
|
/**
|
|
1856
|
-
*
|
|
1776
|
+
* Функция для преобразования значения number в строку в подсказке по оси Y.
|
|
1777
|
+
*
|
|
1778
|
+
* @param value Значение оси Y.
|
|
1857
1779
|
*/
|
|
1858
|
-
this.
|
|
1780
|
+
this.yStringify = (value) => `${value.toLocaleString('ru-RU')} ₽`;
|
|
1781
|
+
if (context) {
|
|
1782
|
+
this.product = context.data.product;
|
|
1783
|
+
}
|
|
1859
1784
|
}
|
|
1860
1785
|
/** @inheritDoc */
|
|
1861
1786
|
ngOnInit() {
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
.
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
return
|
|
1871
|
-
})
|
|
1872
|
-
.sort((a, b) => +a.data - +b.data)
|
|
1873
|
-
.forEach((item, index, array) => {
|
|
1874
|
-
let nextDate;
|
|
1875
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
1876
|
-
if (array[index + 1]?.data) {
|
|
1877
|
-
nextDate = new Date(array[index + 1]?.data);
|
|
1878
|
-
nextDate.setDate(nextDate.getDate() - 1);
|
|
1879
|
-
}
|
|
1880
|
-
else {
|
|
1881
|
-
nextDate = new Date();
|
|
1882
|
-
}
|
|
1883
|
-
this.pushDataItem(item.cost, item.data, nextDate);
|
|
1884
|
-
});
|
|
1885
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
1886
|
-
if (this.eChartsInstance) {
|
|
1887
|
-
this.setChartData();
|
|
1888
|
-
}
|
|
1787
|
+
this.history$ = this.catalogService.getPriceHistory$(this.product).pipe(map((history) => Object.keys(history)
|
|
1788
|
+
.map((item) => [TuiDay.normalizeParse(item, 'DMY'), history[String(item)].cost])
|
|
1789
|
+
.sort((a, b) => (a[0] > b[0] ? 1 : -1))), shareReplay({ bufferSize: 1, refCount: true }), filter((history) => history.length > 1));
|
|
1790
|
+
this.priceInfo$ = this.history$.pipe(map((history) => history.map((item) => item[1])), map((values) => ({
|
|
1791
|
+
min: Math.min(...values),
|
|
1792
|
+
max: Math.max(...values),
|
|
1793
|
+
})));
|
|
1794
|
+
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) => {
|
|
1795
|
+
return new TuiDayRange(range.from, range.to);
|
|
1796
|
+
}));
|
|
1889
1797
|
}
|
|
1890
1798
|
/**
|
|
1891
|
-
*
|
|
1799
|
+
* Вычисляет подписи даты к оси X.
|
|
1892
1800
|
*
|
|
1893
|
-
* @param
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
onChartInit(eChartsInstance) {
|
|
1897
|
-
this.eChartsInstance = eChartsInstance;
|
|
1898
|
-
if (this.data.length > 0) {
|
|
1899
|
-
this.setChartData();
|
|
1900
|
-
}
|
|
1901
|
-
}
|
|
1902
|
-
/**
|
|
1903
|
-
* Устанавливает новые данные {@link ScPriceHistoryComponent.eChartsInstance}.
|
|
1801
|
+
* @param param0 {@link TuiDayRange} Временной промежуток истории цен.
|
|
1802
|
+
* @param param0.from {@link TuiDay} Дата начала истории цен.
|
|
1803
|
+
* @param param0.to {@link TuiDay} Дата конца истории цен.
|
|
1904
1804
|
*/
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
this.maxPrice = Math.max(...this.data.map((item) => item.value[1]));
|
|
1908
|
-
this.minPrice = Math.min(...this.data.map((item) => item.value[1]));
|
|
1909
|
-
this.chartOption.series.data = this.data;
|
|
1910
|
-
this.eChartsInstance.clear();
|
|
1911
|
-
this.eChartsInstance.setOption(this.chartOption, true, true);
|
|
1912
|
-
this.cdr.markForCheck();
|
|
1913
|
-
}
|
|
1805
|
+
computeLabels$({ from, to }) {
|
|
1806
|
+
return this.months$.pipe(map((months) => Array.from({ length: TuiMonth.lengthBetween(from, to) + 1 }, (_, index) => months[from.append({ month: index }).month])));
|
|
1914
1807
|
}
|
|
1915
1808
|
/**
|
|
1916
|
-
*
|
|
1809
|
+
* Вычисляет данные для отображения на графике.
|
|
1917
1810
|
*
|
|
1918
|
-
* @param
|
|
1919
|
-
* @param
|
|
1920
|
-
* @param
|
|
1811
|
+
* @param param0 {@link TuiDayRange} Временной промежуток истории цен.
|
|
1812
|
+
* @param param0.from {@link TuiDay} Дата начала истории цен.
|
|
1813
|
+
* @param param0.to {@link TuiDay} Дата конца истории цен.
|
|
1814
|
+
* @param history История цен.
|
|
1921
1815
|
*/
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1816
|
+
computeValue({ from, to }, history) {
|
|
1817
|
+
return (Array.from({ length: TuiDay.lengthBetween(from, to) + 1 })
|
|
1818
|
+
.fill(0)
|
|
1819
|
+
// eslint-disable-next-line unicorn/no-array-reduce
|
|
1820
|
+
.reduce((array, _, index) => {
|
|
1821
|
+
const data = from.append({ day: index });
|
|
1822
|
+
return [
|
|
1823
|
+
...array,
|
|
1824
|
+
[
|
|
1825
|
+
data,
|
|
1826
|
+
(history.find((valueHistory, indexHistory, arrayHistory) => data.daySame(valueHistory[0]) || data.dayBefore(arrayHistory[indexHistory + 1][0])) ??
|
|
1827
|
+
history[0])[1],
|
|
1828
|
+
],
|
|
1829
|
+
];
|
|
1830
|
+
}, []));
|
|
1927
1831
|
}
|
|
1928
1832
|
}
|
|
1929
|
-
ScPriceHistoryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceHistoryComponent, deps: [{ token:
|
|
1930
|
-
ScPriceHistoryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPriceHistoryComponent, selector: "sc-price-history", inputs: {
|
|
1833
|
+
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 });
|
|
1834
|
+
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$1.TuiLineDaysChartComponent, selector: "tui-line-days-chart", inputs: ["value", "y", "height", "smoothingFactor", "hintContent", "xStringify", "yStringify", "dots"] }, { kind: "component", type: i3$1.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 });
|
|
1835
|
+
__decorate([
|
|
1836
|
+
tuiPure
|
|
1837
|
+
], ScPriceHistoryComponent.prototype, "computeLabels$", null);
|
|
1838
|
+
__decorate([
|
|
1839
|
+
tuiPure
|
|
1840
|
+
], ScPriceHistoryComponent.prototype, "computeValue", null);
|
|
1931
1841
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceHistoryComponent, decorators: [{
|
|
1932
1842
|
type: Component,
|
|
1933
|
-
args: [{ selector: 'sc-price-history', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col items-center\">\n <
|
|
1934
|
-
}], ctorParameters: function () { return [{ type:
|
|
1843
|
+
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" }]
|
|
1844
|
+
}], ctorParameters: function () { return [{ type: i1.ScCatalogService }, { type: i10.Observable, decorators: [{
|
|
1845
|
+
type: Inject,
|
|
1846
|
+
args: [TUI_MONTHS]
|
|
1847
|
+
}] }, { type: undefined, decorators: [{
|
|
1848
|
+
type: Optional
|
|
1849
|
+
}, {
|
|
1850
|
+
type: Inject,
|
|
1851
|
+
args: [POLYMORPHEUS_CONTEXT]
|
|
1852
|
+
}] }]; }, propDecorators: { product: [{
|
|
1935
1853
|
type: Input
|
|
1936
|
-
}] } });
|
|
1854
|
+
}], computeLabels$: [], computeValue: [] } });
|
|
1937
1855
|
|
|
1938
1856
|
/**
|
|
1939
1857
|
* Значения пагинации списка товаров категории по умолчанию.
|
|
@@ -2061,123 +1979,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
2061
1979
|
type: Input
|
|
2062
1980
|
}] } });
|
|
2063
1981
|
|
|
2064
|
-
/**
|
|
2065
|
-
* Language: Russian.
|
|
2066
|
-
*/
|
|
2067
|
-
var scLangRU = {
|
|
2068
|
-
time: {
|
|
2069
|
-
month: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
|
|
2070
|
-
monthAbbr: ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'],
|
|
2071
|
-
dayOfWeek: ['Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'],
|
|
2072
|
-
dayOfWeekAbbr: ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'],
|
|
2073
|
-
},
|
|
2074
|
-
legend: {
|
|
2075
|
-
selector: {
|
|
2076
|
-
all: 'Всё',
|
|
2077
|
-
inverse: 'Обратить',
|
|
2078
|
-
},
|
|
2079
|
-
},
|
|
2080
|
-
toolbox: {
|
|
2081
|
-
brush: {
|
|
2082
|
-
title: {
|
|
2083
|
-
rect: 'Выделить область',
|
|
2084
|
-
polygon: 'Инструмент «Лассо»',
|
|
2085
|
-
lineX: 'Горизонтальное выделение',
|
|
2086
|
-
lineY: 'Вертикальное выделение',
|
|
2087
|
-
keep: 'Оставить выбранное',
|
|
2088
|
-
clear: 'Очистить выбранное',
|
|
2089
|
-
},
|
|
2090
|
-
},
|
|
2091
|
-
dataView: {
|
|
2092
|
-
title: 'Данные',
|
|
2093
|
-
lang: ['Данные', 'Закрыть', 'Обновить'],
|
|
2094
|
-
},
|
|
2095
|
-
dataZoom: {
|
|
2096
|
-
title: {
|
|
2097
|
-
zoom: 'Увеличить',
|
|
2098
|
-
back: 'Сбросить увеличение',
|
|
2099
|
-
},
|
|
2100
|
-
},
|
|
2101
|
-
magicType: {
|
|
2102
|
-
title: {
|
|
2103
|
-
line: 'Переключиться на линейный график',
|
|
2104
|
-
bar: 'Переключиться на столбчатую диаграмму',
|
|
2105
|
-
stack: 'Стопка',
|
|
2106
|
-
tiled: 'Плитка',
|
|
2107
|
-
},
|
|
2108
|
-
},
|
|
2109
|
-
restore: {
|
|
2110
|
-
title: 'Восстановить',
|
|
2111
|
-
},
|
|
2112
|
-
saveAsImage: {
|
|
2113
|
-
title: 'Сохранить картинку',
|
|
2114
|
-
lang: ['Правый клик, чтобы сохранить картинку'],
|
|
2115
|
-
},
|
|
2116
|
-
},
|
|
2117
|
-
series: {
|
|
2118
|
-
typeNames: {
|
|
2119
|
-
pie: 'Круговая диаграмма',
|
|
2120
|
-
bar: 'Столбчатая диаграмма',
|
|
2121
|
-
line: 'Линейный график',
|
|
2122
|
-
scatter: 'Точечная диаграмма',
|
|
2123
|
-
effectScatter: 'Точечная диаграмма с волнами',
|
|
2124
|
-
radar: 'Лепестковая диаграмма',
|
|
2125
|
-
tree: 'Дерево',
|
|
2126
|
-
treemap: 'Плоское дерево',
|
|
2127
|
-
boxplot: 'Ящик с усами',
|
|
2128
|
-
candlestick: 'Свечной график',
|
|
2129
|
-
k: 'График К-линий',
|
|
2130
|
-
heatmap: 'Тепловая карта',
|
|
2131
|
-
map: 'Карта',
|
|
2132
|
-
parallel: 'Диаграмма параллельных координат',
|
|
2133
|
-
lines: 'Линейный граф',
|
|
2134
|
-
graph: 'Граф отношений',
|
|
2135
|
-
sankey: 'Диаграмма Санкей',
|
|
2136
|
-
funnel: 'Воронкообразная диаграмма',
|
|
2137
|
-
gauge: 'Шкала',
|
|
2138
|
-
pictorialBar: 'Столбец-картинка',
|
|
2139
|
-
themeRiver: 'Тематическая река',
|
|
2140
|
-
sunburst: 'Солнечные лучи',
|
|
2141
|
-
custom: '',
|
|
2142
|
-
chart: '',
|
|
2143
|
-
},
|
|
2144
|
-
},
|
|
2145
|
-
aria: {
|
|
2146
|
-
general: {
|
|
2147
|
-
withTitle: 'Это график, показывающий "{title}"',
|
|
2148
|
-
withoutTitle: 'Это график',
|
|
2149
|
-
},
|
|
2150
|
-
series: {
|
|
2151
|
-
single: {
|
|
2152
|
-
prefix: '',
|
|
2153
|
-
withName: ' с типом {seriesType} и именем {seriesName}.',
|
|
2154
|
-
withoutName: ' с типом {seriesType}.',
|
|
2155
|
-
},
|
|
2156
|
-
multiple: {
|
|
2157
|
-
prefix: '. Он состоит из {seriesCount} серий.',
|
|
2158
|
-
withName: ' Серия {seriesId} имеет тип {seriesType} и показывает {seriesName}.',
|
|
2159
|
-
withoutName: ' Серия {seriesId} имеет тип {seriesType}.',
|
|
2160
|
-
separator: {
|
|
2161
|
-
middle: '',
|
|
2162
|
-
end: '',
|
|
2163
|
-
},
|
|
2164
|
-
},
|
|
2165
|
-
},
|
|
2166
|
-
data: {
|
|
2167
|
-
allData: 'Данные таковы: ',
|
|
2168
|
-
partialData: 'Первые {displayCnt} элементов: ',
|
|
2169
|
-
withName: 'значение для {name} — {value}',
|
|
2170
|
-
withoutName: '{value}',
|
|
2171
|
-
separator: {
|
|
2172
|
-
middle: ', ',
|
|
2173
|
-
end: '. ',
|
|
2174
|
-
},
|
|
2175
|
-
},
|
|
2176
|
-
},
|
|
2177
|
-
};
|
|
2178
|
-
|
|
2179
|
-
echarts.registerLocale('RU', scLangRU);
|
|
2180
|
-
echarts.use([TitleComponent, TooltipComponent, GridComponent, LineChart, SVGRenderer]);
|
|
2181
1982
|
/**
|
|
2182
1983
|
* Модуль каталога.
|
|
2183
1984
|
*/
|
|
@@ -2206,9 +2007,12 @@ ScCatalogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
|
|
|
2206
2007
|
TuiFieldErrorPipeModule,
|
|
2207
2008
|
TuiLoaderModule,
|
|
2208
2009
|
TuiLinkModule,
|
|
2209
|
-
TuiElasticContainerModule,
|
|
2010
|
+
TuiElasticContainerModule,
|
|
2011
|
+
TuiLetModule,
|
|
2210
2012
|
TuiRepeatTimesModule,
|
|
2211
|
-
TuiHighlightModule
|
|
2013
|
+
TuiHighlightModule,
|
|
2014
|
+
TuiLineDaysChartModule,
|
|
2015
|
+
TuiAxesModule], exports: [ScPriceListPaginationComponent,
|
|
2212
2016
|
ScCategoryCardComponent,
|
|
2213
2017
|
ScFavoriteBtnComponent,
|
|
2214
2018
|
ScInputQuantityComponent,
|
|
@@ -2232,10 +2036,11 @@ ScCatalogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
|
|
|
2232
2036
|
TuiLoaderModule,
|
|
2233
2037
|
TuiLinkModule,
|
|
2234
2038
|
TuiElasticContainerModule,
|
|
2235
|
-
NgxEchartsModule.forRoot({ echarts }),
|
|
2236
2039
|
TuiLetModule,
|
|
2237
2040
|
TuiRepeatTimesModule,
|
|
2238
|
-
TuiHighlightModule
|
|
2041
|
+
TuiHighlightModule,
|
|
2042
|
+
TuiLineDaysChartModule,
|
|
2043
|
+
TuiAxesModule] });
|
|
2239
2044
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCatalogModule, decorators: [{
|
|
2240
2045
|
type: NgModule,
|
|
2241
2046
|
args: [{
|
|
@@ -2276,10 +2081,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
2276
2081
|
TuiLoaderModule,
|
|
2277
2082
|
TuiLinkModule,
|
|
2278
2083
|
TuiElasticContainerModule,
|
|
2279
|
-
NgxEchartsModule.forRoot({ echarts }),
|
|
2280
2084
|
TuiLetModule,
|
|
2281
2085
|
TuiRepeatTimesModule,
|
|
2282
2086
|
TuiHighlightModule,
|
|
2087
|
+
TuiLineDaysChartModule,
|
|
2088
|
+
TuiAxesModule,
|
|
2283
2089
|
],
|
|
2284
2090
|
}]
|
|
2285
2091
|
}] });
|
|
@@ -4391,7 +4197,7 @@ class ScPaymentStatusComponent {
|
|
|
4391
4197
|
}
|
|
4392
4198
|
}
|
|
4393
4199
|
ScPaymentStatusComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPaymentStatusComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4394
|
-
ScPaymentStatusComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPaymentStatusComponent, selector: "sc-payment-status", inputs: { status: "status", orderId: "orderId" }, outputs: { backToOrdersClick: "backToOrdersClick", backToOrderClick: "backToOrderClick" }, ngImport: i0, template: "<ng-container *ngIf=\"status && orderId; else failed\">\n <ng-container [ngSwitch]=\"status\">\n <tui-block-status *ngSwitchCase=\"'success'\">\n <tui-svg src=\"tuiIconCheckCircleLarge\" tuiSlot=\"top\" class=\"scale-[3] !h-20 !text-green-500\"></tui-svg>\n <h4>\u0421\u043F\u0430\u0441\u0438\u0431\u043E!</h4>\n <br />\n <div class=\"font-bold\">\u0412\u0430\u0448 \u0437\u0430\u043A\u0430\u0437 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u043F\u043B\u0430\u0447\u0435\u043D. \u041C\u044B \u0441\u0432\u044F\u0436\u0435\u043C\u0441\u044F \u0441 \u0432\u0430\u043C\u0438 \u0432 \u0431\u043B\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043C\u044F.</div>\n <br />\n <div class=\"font-bold\">\n \u041D\u043E\u043C\u0435\u0440 \u0432\u0430\u0448\u0435\u0433\u043E \u0437\u0430\u043A\u0430\u0437\u0430: <a tuiLink [pseudo]=\"true\" (click)=\"backToOrderClick.emit()\">{{orderId}}</a>\n </div>\n\n <button tuiButton (click)=\"backToOrdersClick.emit()\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0430\u043C</button>\n </tui-block-status>\n <tui-block-status *ngSwitchCase=\"'error'\">\n <tui-svg src=\"tuiIconXCircleLarge\" class=\"scale-[3] !h-20 !text-red-500\" tuiSlot=\"top\"></tui-svg>\n <h4>\u041E\u043F\u043B\u0430\u0442\u0430 \u043D\u0435 \u043F\u0440\u043E\u0448\u043B\u0430!</h4>\n <br />\n <div class=\"font-bold\">\u041F\u0440\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0435 \u043F\u043B\u0430\u0442\u0435\u0436\u0430 \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043E\u0448\u0438\u0431\u043A\u0430.</div>\n <button tuiButton tuiItem (click)=\"backToOrderClick.emit()\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0443</button>\n </tui-block-status>\n </ng-container>\n</ng-container>\n\n<ng-template #failed>\n <tui-block-status>\n <tui-svg src=\"tuiIconInfoLarge\" class=\"scale-[3] !h-20 !text-yellow-500\" tuiSlot=\"top\"></tui-svg>\n <h4>\u0427\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A!</h4>\n <button tuiButton tuiItem (click)=\"backToOrdersClick.emit()\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0430\u043C</button>\n </tui-block-status>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { kind: "component", type: i4.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i4.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "component", type: i3$
|
|
4200
|
+
ScPaymentStatusComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPaymentStatusComponent, selector: "sc-payment-status", inputs: { status: "status", orderId: "orderId" }, outputs: { backToOrdersClick: "backToOrdersClick", backToOrderClick: "backToOrderClick" }, ngImport: i0, template: "<ng-container *ngIf=\"status && orderId; else failed\">\n <ng-container [ngSwitch]=\"status\">\n <tui-block-status *ngSwitchCase=\"'success'\">\n <tui-svg src=\"tuiIconCheckCircleLarge\" tuiSlot=\"top\" class=\"scale-[3] !h-20 !text-green-500\"></tui-svg>\n <h4>\u0421\u043F\u0430\u0441\u0438\u0431\u043E!</h4>\n <br />\n <div class=\"font-bold\">\u0412\u0430\u0448 \u0437\u0430\u043A\u0430\u0437 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u043F\u043B\u0430\u0447\u0435\u043D. \u041C\u044B \u0441\u0432\u044F\u0436\u0435\u043C\u0441\u044F \u0441 \u0432\u0430\u043C\u0438 \u0432 \u0431\u043B\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043C\u044F.</div>\n <br />\n <div class=\"font-bold\">\n \u041D\u043E\u043C\u0435\u0440 \u0432\u0430\u0448\u0435\u0433\u043E \u0437\u0430\u043A\u0430\u0437\u0430: <a tuiLink [pseudo]=\"true\" (click)=\"backToOrderClick.emit()\">{{orderId}}</a>\n </div>\n\n <button tuiButton (click)=\"backToOrdersClick.emit()\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0430\u043C</button>\n </tui-block-status>\n <tui-block-status *ngSwitchCase=\"'error'\">\n <tui-svg src=\"tuiIconXCircleLarge\" class=\"scale-[3] !h-20 !text-red-500\" tuiSlot=\"top\"></tui-svg>\n <h4>\u041E\u043F\u043B\u0430\u0442\u0430 \u043D\u0435 \u043F\u0440\u043E\u0448\u043B\u0430!</h4>\n <br />\n <div class=\"font-bold\">\u041F\u0440\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0435 \u043F\u043B\u0430\u0442\u0435\u0436\u0430 \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043E\u0448\u0438\u0431\u043A\u0430.</div>\n <button tuiButton tuiItem (click)=\"backToOrderClick.emit()\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0443</button>\n </tui-block-status>\n </ng-container>\n</ng-container>\n\n<ng-template #failed>\n <tui-block-status>\n <tui-svg src=\"tuiIconInfoLarge\" class=\"scale-[3] !h-20 !text-yellow-500\" tuiSlot=\"top\"></tui-svg>\n <h4>\u0427\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A!</h4>\n <button tuiButton tuiItem (click)=\"backToOrdersClick.emit()\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0430\u043C</button>\n </tui-block-status>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { kind: "component", type: i4.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i4.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "component", type: i3$2.TuiBlockStatusComponent, selector: "tui-block-status", inputs: ["card"] }, { kind: "directive", type: i3$2.TuiBlockStatusDirective, selector: "[tuiSlot]", inputs: ["tuiSlot"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4395
4201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPaymentStatusComponent, decorators: [{
|
|
4396
4202
|
type: Component,
|
|
4397
4203
|
args: [{ selector: 'sc-payment-status', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"status && orderId; else failed\">\n <ng-container [ngSwitch]=\"status\">\n <tui-block-status *ngSwitchCase=\"'success'\">\n <tui-svg src=\"tuiIconCheckCircleLarge\" tuiSlot=\"top\" class=\"scale-[3] !h-20 !text-green-500\"></tui-svg>\n <h4>\u0421\u043F\u0430\u0441\u0438\u0431\u043E!</h4>\n <br />\n <div class=\"font-bold\">\u0412\u0430\u0448 \u0437\u0430\u043A\u0430\u0437 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u043F\u043B\u0430\u0447\u0435\u043D. \u041C\u044B \u0441\u0432\u044F\u0436\u0435\u043C\u0441\u044F \u0441 \u0432\u0430\u043C\u0438 \u0432 \u0431\u043B\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043C\u044F.</div>\n <br />\n <div class=\"font-bold\">\n \u041D\u043E\u043C\u0435\u0440 \u0432\u0430\u0448\u0435\u0433\u043E \u0437\u0430\u043A\u0430\u0437\u0430: <a tuiLink [pseudo]=\"true\" (click)=\"backToOrderClick.emit()\">{{orderId}}</a>\n </div>\n\n <button tuiButton (click)=\"backToOrdersClick.emit()\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0430\u043C</button>\n </tui-block-status>\n <tui-block-status *ngSwitchCase=\"'error'\">\n <tui-svg src=\"tuiIconXCircleLarge\" class=\"scale-[3] !h-20 !text-red-500\" tuiSlot=\"top\"></tui-svg>\n <h4>\u041E\u043F\u043B\u0430\u0442\u0430 \u043D\u0435 \u043F\u0440\u043E\u0448\u043B\u0430!</h4>\n <br />\n <div class=\"font-bold\">\u041F\u0440\u0438 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0435 \u043F\u043B\u0430\u0442\u0435\u0436\u0430 \u043F\u0440\u043E\u0438\u0437\u043E\u0448\u043B\u0430 \u043E\u0448\u0438\u0431\u043A\u0430.</div>\n <button tuiButton tuiItem (click)=\"backToOrderClick.emit()\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0443</button>\n </tui-block-status>\n </ng-container>\n</ng-container>\n\n<ng-template #failed>\n <tui-block-status>\n <tui-svg src=\"tuiIconInfoLarge\" class=\"scale-[3] !h-20 !text-yellow-500\" tuiSlot=\"top\"></tui-svg>\n <h4>\u0427\u0442\u043E-\u0442\u043E \u043F\u043E\u0448\u043B\u043E \u043D\u0435 \u0442\u0430\u043A!</h4>\n <button tuiButton tuiItem (click)=\"backToOrdersClick.emit()\">\u0412\u0435\u0440\u043D\u0443\u0442\u044C\u0441\u044F \u043A \u0437\u0430\u043A\u0430\u0437\u0430\u043C</button>\n </tui-block-status>\n</ng-template>\n" }]
|