@snabcentr/client-ui 0.0.14 → 0.0.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. package/cart/cart-item-mobile/{cart-item-mobile.component.d.ts → sc-cart-item-mobile.component.d.ts} +15 -10
  2. package/cart/index.d.ts +2 -2
  3. package/cart/sc-cart.module.d.ts +16 -0
  4. package/catalog/index.d.ts +1 -0
  5. package/catalog/input-quantity/sc-input-quantity.component.d.ts +10 -2
  6. package/catalog/price-history/sc-chart-option.d.ts +7 -0
  7. package/catalog/price-history/sc-i-chart-data-item.d.ts +13 -0
  8. package/catalog/price-history/sc-lang-RU.d.ts +113 -0
  9. package/catalog/price-history/sc-price-history.component.d.ts +73 -0
  10. package/catalog/sc-catalog.module.d.ts +8 -6
  11. package/esm2020/banner/sc-banner.component.mjs +3 -3
  12. package/esm2020/cart/cart-item-mobile/sc-cart-item-mobile.component.mjs +119 -0
  13. package/esm2020/cart/index.mjs +3 -3
  14. package/esm2020/cart/sc-cart.module.mjs +58 -0
  15. package/esm2020/catalog/category-card/sc-category-card.component.mjs +3 -3
  16. package/esm2020/catalog/index.mjs +2 -1
  17. package/esm2020/catalog/input-quantity/sc-input-quantity.component.mjs +17 -4
  18. package/esm2020/catalog/price-card/sc-price-card.component.mjs +3 -3
  19. package/esm2020/catalog/price-history/sc-chart-option.mjs +72 -0
  20. package/esm2020/catalog/price-history/sc-i-chart-data-item.mjs +2 -0
  21. package/esm2020/catalog/price-history/sc-lang-RU.mjs +113 -0
  22. package/esm2020/catalog/price-history/sc-price-history.component.mjs +104 -0
  23. package/esm2020/catalog/sc-catalog.module.mjs +18 -6
  24. package/esm2020/catalog/sc-favorite-btn/sc-favorite-btn.component.mjs +3 -3
  25. package/esm2020/helpers/sc-units-helper.mjs +44 -0
  26. package/esm2020/loader/index.mjs +2 -0
  27. package/esm2020/loader/sc-i-loader.mjs +2 -0
  28. package/esm2020/news/news-card/sc-news-card.component.mjs +13 -7
  29. package/esm2020/news/news-card-skeleton/sc-news-card-skeleton.component.mjs +3 -3
  30. package/esm2020/order/order-item-mobile/order-item-mobile.component.mjs +14 -23
  31. package/esm2020/public-api.mjs +2 -1
  32. package/fesm2015/snabcentr-client-ui.mjs +433 -69
  33. package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
  34. package/fesm2020/snabcentr-client-ui.mjs +427 -69
  35. package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
  36. package/helpers/sc-units-helper.d.ts +28 -0
  37. package/loader/index.d.ts +1 -0
  38. package/loader/sc-i-loader.d.ts +9 -0
  39. package/news/news-card/sc-news-card.component.d.ts +6 -1
  40. package/order/order-item-mobile/order-item-mobile.component.d.ts +6 -9
  41. package/package.json +3 -1
  42. package/public-api.d.ts +1 -0
  43. package/styles/tailwind/tailwind.scss +45 -0
  44. package/cart/cart.module.d.ts +0 -16
  45. package/esm2020/cart/cart-item-mobile/cart-item-mobile.component.mjs +0 -105
  46. package/esm2020/cart/cart.module.mjs +0 -58
@@ -0,0 +1,28 @@
1
+ import { ScProduct } from '@snabcentr/client-core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Класс хэлпер для работы со значениями единиц измерения товара.
5
+ */
6
+ export declare class UnitsHelper {
7
+ readonly linearValues: string[];
8
+ /**
9
+ * Инициирует экземпляр класса {@link UnitsHelper}.
10
+ *
11
+ * @param linearValues Единицы измерения линейной величины.
12
+ */
13
+ constructor(linearValues: string[]);
14
+ /**
15
+ * Возвращает признак возможности продажи товара на метраж.
16
+ *
17
+ * @param linearValues Товар для которого нужно проверить возможность продажи на метраж.
18
+ */
19
+ productIsMeasurable(product: ScProduct): boolean;
20
+ /**
21
+ * Возвращает кратность количества для товара.
22
+ *
23
+ * @param linearValues Товар для которого нужно вернуть кратность количества.
24
+ */
25
+ productMultiplicity(product: ScProduct): number;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<UnitsHelper, never>;
27
+ static ɵprov: i0.ɵɵInjectableDeclaration<UnitsHelper>;
28
+ }
@@ -0,0 +1 @@
1
+ export * from './sc-i-loader';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Интерфейс для реализации компонентами, отображающими индикатор выполнения запросов.
3
+ */
4
+ export interface ScILoader {
5
+ /**
6
+ * Набор признаков выполнения запросов.
7
+ */
8
+ loadingList: Set<string>;
9
+ }
@@ -1,3 +1,4 @@
1
+ import { EventEmitter } from '@angular/core';
1
2
  import { ScNewsTile } from '@snabcentr/client-core';
2
3
  import * as i0 from "@angular/core";
3
4
  /**
@@ -8,6 +9,10 @@ export declare class ScNewsCardComponent {
8
9
  * Информация о новости.
9
10
  */
10
11
  news: ScNewsTile;
12
+ /**
13
+ * Событие клика по карточке новости.
14
+ */
15
+ clickCardEvent: EventEmitter<ScNewsTile>;
11
16
  static ɵfac: i0.ɵɵFactoryDeclaration<ScNewsCardComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<ScNewsCardComponent, "sc-news-card", never, { "news": "news"; }, {}, never, never, false>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScNewsCardComponent, "sc-news-card", never, { "news": "news"; }, { "clickCardEvent": "clickCardEvent"; }, never, never, false>;
13
18
  }
@@ -1,15 +1,16 @@
1
1
  import { EventEmitter } from '@angular/core';
2
2
  import { ScCartItem, ScIUrls, ScProduct } from '@snabcentr/client-core';
3
3
  import { TuiPreviewDialogService } from '@taiga-ui/addon-preview';
4
+ import { UnitsHelper } from '../../helpers/sc-units-helper';
4
5
  import * as i0 from "@angular/core";
5
6
  /**
6
7
  * Компонент карточки элемента заказа.
7
8
  */
8
9
  export declare class ScOrderItemMobileComponent {
10
+ readonly unitsHelper: UnitsHelper;
9
11
  private readonly previewDialogService;
10
12
  private readonly urls;
11
13
  private readonly pathImageNotFound;
12
- readonly linearValues: string[];
13
14
  /**
14
15
  * Ссылка на представление спецификации.
15
16
  */
@@ -17,7 +18,7 @@ export declare class ScOrderItemMobileComponent {
17
18
  /**
18
19
  * Элемент заказа.
19
20
  */
20
- orderItem: ScCartItem;
21
+ orderItem?: ScCartItem;
21
22
  /**
22
23
  * Событие нажатия на карточку.
23
24
  */
@@ -29,24 +30,20 @@ export declare class ScOrderItemMobileComponent {
29
30
  /**
30
31
  * Продукт элемента заказа.
31
32
  */
32
- get product(): ScProduct;
33
+ get product(): ScProduct | undefined;
33
34
  /**
34
35
  * Инициирует экземпляр класса {@link ScOrderItemMobileComponent}.
35
36
  *
37
+ * @param unitsHelper Объект-хэлпер для работы со значениями единиц измерения товара.
36
38
  * @param previewDialogService Сервис диалогового окна предварительного просмотра.
37
39
  * @param urls Список ссылок на разделы backend'a.
38
40
  * @param pathImageNotFound Путь до изображения 'Товар не найден'.
39
- * @param linearValues Единицы измерения линейной величины.
40
41
  */
41
- constructor(previewDialogService: TuiPreviewDialogService, urls: ScIUrls, pathImageNotFound: string, linearValues: string[]);
42
+ constructor(unitsHelper: UnitsHelper, previewDialogService: TuiPreviewDialogService, urls: ScIUrls, pathImageNotFound: string);
42
43
  /**
43
44
  * Отобразить спецификацию.
44
45
  */
45
46
  showSpecification(): void;
46
- /**
47
- * Возвращает признак возможности продажи товара на метраж.
48
- */
49
- productIsMeasurable(): number;
50
47
  /**
51
48
  * Возвращает ссылку на изображение карточки товара.
52
49
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snabcentr/client-ui",
3
- "version": "0.0.14",
3
+ "version": "0.0.19",
4
4
  "author": "Snabcentr Ltd.",
5
5
  "repository": "https://gitlab.snabcentr.met/web/angular/snabcentr-client-ui-lib",
6
6
  "license": "Commercial",
@@ -29,7 +29,9 @@
29
29
  "@taiga-ui/layout": ">=3.42.1",
30
30
  "@taiga-ui/styles": ">=3.42.1",
31
31
  "@tinkoff/ng-polymorpheus": ">=4.1.0",
32
+ "echarts": "^5.4.3",
32
33
  "moment": ">=2.29.4",
34
+ "ngx-echarts": "^14.0.0",
33
35
  "rxjs": ">=7.5.0",
34
36
  "zone.js": ">=0.12.0"
35
37
  },
package/public-api.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from './banner';
2
2
  export * from './cart';
3
3
  export * from './catalog';
4
4
  export * from './icons';
5
+ export * from './loader';
5
6
  export * from './news';
6
7
  export * from './order';
7
8
  export * from './share-button';
@@ -652,6 +652,10 @@ video {
652
652
  left: 0.25rem;
653
653
  }
654
654
 
655
+ .left-16 {
656
+ left: 4rem;
657
+ }
658
+
655
659
  .left-3 {
656
660
  left: 0.75rem;
657
661
  }
@@ -696,6 +700,10 @@ video {
696
700
  margin: 2rem;
697
701
  }
698
702
 
703
+ .mb-1 {
704
+ margin-bottom: 0.25rem;
705
+ }
706
+
699
707
  .mb-2 {
700
708
  margin-bottom: 0.5rem;
701
709
  }
@@ -775,6 +783,10 @@ video {
775
783
  height: 1.25rem !important;
776
784
  }
777
785
 
786
+ .\!h-full {
787
+ height: 100% !important;
788
+ }
789
+
778
790
  .h-20 {
779
791
  height: 5rem;
780
792
  }
@@ -795,10 +807,18 @@ video {
795
807
  height: 1rem;
796
808
  }
797
809
 
810
+ .h-48 {
811
+ height: 12rem;
812
+ }
813
+
798
814
  .h-50 {
799
815
  height: 12.5rem;
800
816
  }
801
817
 
818
+ .h-56 {
819
+ height: 14rem;
820
+ }
821
+
802
822
  .h-64 {
803
823
  height: 16rem;
804
824
  }
@@ -843,6 +863,10 @@ video {
843
863
  width: 1rem;
844
864
  }
845
865
 
866
+ .w-4\/5 {
867
+ width: 80%;
868
+ }
869
+
846
870
  .w-40 {
847
871
  width: 10rem;
848
872
  }
@@ -1185,6 +1209,10 @@ video {
1185
1209
  text-align: center;
1186
1210
  }
1187
1211
 
1212
+ .text-end {
1213
+ text-align: end;
1214
+ }
1215
+
1188
1216
  .align-baseline {
1189
1217
  vertical-align: baseline;
1190
1218
  }
@@ -1199,6 +1227,11 @@ video {
1199
1227
  line-height: 1rem !important;
1200
1228
  }
1201
1229
 
1230
+ .text-lg {
1231
+ font-size: 1.125rem;
1232
+ line-height: 1.75rem;
1233
+ }
1234
+
1202
1235
  .text-sm {
1203
1236
  font-size: 0.875rem;
1204
1237
  line-height: 1.25rem;
@@ -1268,6 +1301,10 @@ video {
1268
1301
  color: var(--tui-success-fill);
1269
1302
  }
1270
1303
 
1304
+ .text-tui-text-02 {
1305
+ color: var(--tui-text-02);
1306
+ }
1307
+
1271
1308
  .text-white {
1272
1309
  --tw-text-opacity: 1;
1273
1310
  color: rgb(255 255 255 / var(--tw-text-opacity));
@@ -1342,6 +1379,14 @@ video {
1342
1379
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
1343
1380
  }
1344
1381
 
1382
+ .\!transition {
1383
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter !important;
1384
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter !important;
1385
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter !important;
1386
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
1387
+ transition-duration: 150ms !important;
1388
+ }
1389
+
1345
1390
  .\!transition-all {
1346
1391
  transition-property: all !important;
1347
1392
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
@@ -1,16 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./cart-item-mobile/cart-item-mobile.component";
3
- import * as i2 from "@angular/common";
4
- import * as i3 from "@taiga-ui/core";
5
- import * as i4 from "../catalog/sc-catalog.module";
6
- import * as i5 from "@angular/forms";
7
- import * as i6 from "@taiga-ui/addon-preview";
8
- import * as i7 from "@tinkoff/ng-polymorpheus";
9
- /**
10
- * Модуль корзины.
11
- */
12
- export declare class CartModule {
13
- static ɵfac: i0.ɵɵFactoryDeclaration<CartModule, never>;
14
- static ɵmod: i0.ɵɵNgModuleDeclaration<CartModule, [typeof i1.ScCartItemMobileComponent], [typeof i2.CommonModule, typeof i3.TuiLinkModule, typeof i4.ScCatalogModule, typeof i3.TuiButtonModule, typeof i3.TuiModeModule, typeof i3.TuiSvgModule, typeof i3.TuiHintModule, typeof i5.FormsModule, typeof i5.ReactiveFormsModule, typeof i6.TuiPreviewModule, typeof i7.PolymorpheusModule], [typeof i1.ScCartItemMobileComponent]>;
15
- static ɵinj: i0.ɵɵInjectorDeclaration<CartModule>;
16
- }
@@ -1,105 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output, ViewChild } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
3
- import { SC_PATH_IMAGE_NOT_FOUND, SC_URLS } from '@snabcentr/client-core';
4
- import { TuiPreviewDialogService } from '@taiga-ui/addon-preview';
5
- import { SC_LINEAR_VALUES_TOKEN } from '../../tokens/sc-linear-values-token';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "@taiga-ui/core";
9
- import * as i3 from "../../catalog/input-quantity/sc-input-quantity.component";
10
- import * as i4 from "../../catalog/price-warehouse-stock/sc-price-warehouse-stock.component";
11
- import * as i5 from "@angular/forms";
12
- import * as i6 from "@taiga-ui/addon-preview";
13
- import * as i7 from "@tinkoff/ng-polymorpheus";
14
- /**
15
- * Компонент карточки элемента корзины.
16
- */
17
- export class ScCartItemMobileComponent {
18
- /**
19
- * Инициирует экземпляр класса {@link ScCartItemMobileComponent}.
20
- *
21
- * @param previewDialogService Сервис диалогового окна предварительного просмотра.
22
- * @param urls Список ссылок на разделы backend'a.
23
- * @param pathImageNotFound Путь до изображения 'Товар не найден'.
24
- * @param linearValues Единицы измерения линейной величины.
25
- */
26
- constructor(previewDialogService, urls, pathImageNotFound, linearValues) {
27
- this.previewDialogService = previewDialogService;
28
- this.urls = urls;
29
- this.pathImageNotFound = pathImageNotFound;
30
- this.linearValues = linearValues;
31
- /**
32
- * Событие нажатия на кнопку "Удалить из корзины".
33
- */
34
- this.clickDeleteEvent = new EventEmitter();
35
- /**
36
- * Событие нажатия на кнопку "Удалить из корзины".
37
- */
38
- this.clickSettingsEvent = new EventEmitter();
39
- /**
40
- * Событие нажатия на карточку.
41
- */
42
- this.clickCardEvent = new EventEmitter();
43
- }
44
- /**
45
- * Продукт элемента корзины.
46
- */
47
- get product() {
48
- return this.cartItem.product;
49
- }
50
- /** @inheritDoc */
51
- ngOnInit() {
52
- this.quantityControl = new FormControl(this.cartItem.quantity);
53
- this.quantityValueChanges = this.quantityControl.valueChanges;
54
- }
55
- /**
56
- * Отобразить спецификацию.
57
- */
58
- showSpecification() {
59
- this.previewDialogService.open(this.specificationPreviewRef || '').subscribe();
60
- }
61
- /**
62
- * Возвращает признак возможности продажи товара на метраж.
63
- */
64
- productIsMeasurable() {
65
- return this.product.minCount && !this.linearValues.includes(this.product.unit) ? this.product.minCount : 1;
66
- }
67
- /**
68
- * Возвращает ссылку на изображение карточки товара.
69
- */
70
- getCardImage() {
71
- return this.product?.getImage(this.urls.imgServerUrl) ?? this.urls.imgServerUrl + this.pathImageNotFound;
72
- }
73
- }
74
- ScCartItemMobileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCartItemMobileComponent, deps: [{ token: TuiPreviewDialogService }, { token: SC_URLS }, { token: SC_PATH_IMAGE_NOT_FOUND }, { token: SC_LINEAR_VALUES_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
75
- ScCartItemMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScCartItemMobileComponent, selector: "sc-cart-item-mobile", inputs: { cartItem: "cartItem" }, outputs: { quantityValueChanges: "quantityValueChanges", clickDeleteEvent: "clickDeleteEvent", clickSettingsEvent: "clickSettingsEvent", clickCardEvent: "clickCardEvent" }, viewQueries: [{ propertyName: "specificationPreviewRef", first: true, predicate: ["specificationPreview"], descendants: true }], ngImport: i0, template: "<div class=\"ml-2 mt-2 relative p-4 gap-y-2 gap-x-4 flex flex-wrap bg-white border border-tui-base-04 shadow-sc-2 rounded-xl\">\n <button tuiIconButton (click)=\"clickDeleteEvent.emit()\" size=\"m\" icon=\"scIconVerticalThreeDots\" appearance=\"float\" tuiMode=\"onLight\" class=\"!absolute right-0 top-0\"></button>\n <button tuiIconButton size=\"m\" icon=\"scIconBasket\" appearance=\"secondary\" tuiMode=\"onLight\" class=\"shadow-sc-2 !absolute -left-2 -top-2\"></button>\n <div class=\"flex gap-2\">\n <div class=\"flex shrink-0 h-20 w-20 justify-center items-center overflow-hidden\">\n <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImage()\" [alt]=\"product.name\" [class.p-5]=\"!product.images?.length\" class=\"cursor-pointer\" />\n </div>\n\n <div class=\"flex flex-wrap self-center gap-x-8 gap-y-0.5\">\n <div class=\"w-[13rem]\">\n <a tuiLink (click)=\"clickCardEvent.emit()\">\n <span class=\"font-bold\">{{ product.name }}</span>\n </a>\n <div class=\"text-tui-base-07 text-xs\">\n <p>\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ cartItem.product.code }}</p>\n <p *ngIf=\"cartItem.product.pack\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ cartItem.product.pack }}</p>\n <a tuiLink *ngIf=\"cartItem.specificationImgUrl\" (click)=\"showSpecification()\">\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F</a>\n <ng-template #specificationPreview let-preview>\n <tui-preview [rotatable]=\"false\" [zoomable]=\"false\">\n <img *polymorpheusOutlet=\"cartItem.specificationImgUrl as src\" alt=\"preview\" alt=\"\" [src]=\"cartItem.specificationImgUrl\" />\n <button icon=\"tuiIconClose\" title=\"Close\" tuiIconButton tuiPreviewAction type=\"button\" (click)=\"preview.complete()\"></button>\n </tui-preview>\n </ng-template>\n </div>\n </div>\n <div class=\"flex flex-col self-center w-[10rem] gap-x-8 gap-y-0.5\">\n <span *ngIf=\"product.discount\" class=\"flex items-center text-xs text-tui-base-07\">\n <span class=\"line-through\">{{ product.discountCostString }}</span> &nbsp;\n <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"text-black !text-xs !h-4\"></tui-svg>\n <ng-template #discountHint>\n <div class=\"font-bold\">{{ product.discount.name }}</div>\n <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n </ng-template>\n </span>\n <p class=\"flex flex-col items-baseline gap-x-2 font-bold\">\n <span>{{ product.costRubString }}</span>\n <span *ngIf=\"!product.priceInRub\" class=\"text-xs text-tui-base-07\">{{ product.costString }}</span>\n </p>\n <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n </div>\n </div>\n </div>\n\n <div class=\"flex gap-2 items-center w-44 text-xs text-tui-base-07\">\n <button tuiIconButton (click)=\"clickSettingsEvent.emit()\" size=\"m\" icon=\"scIconSettings\" appearance=\"secondary\" tuiMode=\"onLight\"></button>\n <div>\n <ng-container *ngIf=\"productIsMeasurable(); else notMeasurable\">\n <p>\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} {{ cartItem.product.unit }}</p>\n </ng-container>\n <ng-template #notMeasurable>\n <p *ngIf=\"cartItem.length && !productIsMeasurable()\">\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} \u043C.</p>\n <p *ngIf=\"cartItem.width\">\u0428\u0438\u0440\u0438\u043D\u0430: {{ cartItem.width }} \u043C.</p>\n <p *ngIf=\"cartItem.height\">\u0412\u044B\u0441\u043E\u0442\u0430: {{ cartItem.height }} \u043C.</p>\n </ng-template>\n </div>\n </div>\n <div class=\"flex items-center grow justify-end\">\n <sc-input-quantity\n class=\"w-28\"\n *ngIf=\"quantityControl\"\n [formControl]=\"quantityControl\"\n [quantityUnit]=\"product.quantityUnit\"\n [showCross]=\"false\"\n size=\"s\"\n [step]=\"product.minCount || 1\"\n ></sc-input-quantity>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { kind: "component", type: i3.ScInputQuantityComponent, selector: "sc-input-quantity", inputs: ["step", "quantityUnit", "showLoader", "showCross", "appearance", "isDisabled", "size"] }, { kind: "component", type: i4.ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint"] }, { kind: "component", type: i2.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "directive", type: i2.TuiModeDirective, selector: "[tuiMode]", inputs: ["tuiMode"] }, { kind: "component", type: i2.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "directive", type: i2.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { kind: "directive", type: i2.TuiHintDriverDirective, selector: "[tuiHint]" }, { kind: "directive", type: i2.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { kind: "directive", type: i2.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i6.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable"] }, { kind: "directive", type: i6.TuiPreviewActionDirective, selector: "[tuiPreviewAction]" }, { kind: "directive", type: i7.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], changeDetection: i0.ChangeDetectionStrategy.Default });
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCartItemMobileComponent, decorators: [{
77
- type: Component,
78
- args: [{ selector: 'sc-cart-item-mobile', changeDetection: ChangeDetectionStrategy.Default, template: "<div class=\"ml-2 mt-2 relative p-4 gap-y-2 gap-x-4 flex flex-wrap bg-white border border-tui-base-04 shadow-sc-2 rounded-xl\">\n <button tuiIconButton (click)=\"clickDeleteEvent.emit()\" size=\"m\" icon=\"scIconVerticalThreeDots\" appearance=\"float\" tuiMode=\"onLight\" class=\"!absolute right-0 top-0\"></button>\n <button tuiIconButton size=\"m\" icon=\"scIconBasket\" appearance=\"secondary\" tuiMode=\"onLight\" class=\"shadow-sc-2 !absolute -left-2 -top-2\"></button>\n <div class=\"flex gap-2\">\n <div class=\"flex shrink-0 h-20 w-20 justify-center items-center overflow-hidden\">\n <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImage()\" [alt]=\"product.name\" [class.p-5]=\"!product.images?.length\" class=\"cursor-pointer\" />\n </div>\n\n <div class=\"flex flex-wrap self-center gap-x-8 gap-y-0.5\">\n <div class=\"w-[13rem]\">\n <a tuiLink (click)=\"clickCardEvent.emit()\">\n <span class=\"font-bold\">{{ product.name }}</span>\n </a>\n <div class=\"text-tui-base-07 text-xs\">\n <p>\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ cartItem.product.code }}</p>\n <p *ngIf=\"cartItem.product.pack\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ cartItem.product.pack }}</p>\n <a tuiLink *ngIf=\"cartItem.specificationImgUrl\" (click)=\"showSpecification()\">\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F</a>\n <ng-template #specificationPreview let-preview>\n <tui-preview [rotatable]=\"false\" [zoomable]=\"false\">\n <img *polymorpheusOutlet=\"cartItem.specificationImgUrl as src\" alt=\"preview\" alt=\"\" [src]=\"cartItem.specificationImgUrl\" />\n <button icon=\"tuiIconClose\" title=\"Close\" tuiIconButton tuiPreviewAction type=\"button\" (click)=\"preview.complete()\"></button>\n </tui-preview>\n </ng-template>\n </div>\n </div>\n <div class=\"flex flex-col self-center w-[10rem] gap-x-8 gap-y-0.5\">\n <span *ngIf=\"product.discount\" class=\"flex items-center text-xs text-tui-base-07\">\n <span class=\"line-through\">{{ product.discountCostString }}</span> &nbsp;\n <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"text-black !text-xs !h-4\"></tui-svg>\n <ng-template #discountHint>\n <div class=\"font-bold\">{{ product.discount.name }}</div>\n <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n </ng-template>\n </span>\n <p class=\"flex flex-col items-baseline gap-x-2 font-bold\">\n <span>{{ product.costRubString }}</span>\n <span *ngIf=\"!product.priceInRub\" class=\"text-xs text-tui-base-07\">{{ product.costString }}</span>\n </p>\n <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n </div>\n </div>\n </div>\n\n <div class=\"flex gap-2 items-center w-44 text-xs text-tui-base-07\">\n <button tuiIconButton (click)=\"clickSettingsEvent.emit()\" size=\"m\" icon=\"scIconSettings\" appearance=\"secondary\" tuiMode=\"onLight\"></button>\n <div>\n <ng-container *ngIf=\"productIsMeasurable(); else notMeasurable\">\n <p>\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} {{ cartItem.product.unit }}</p>\n </ng-container>\n <ng-template #notMeasurable>\n <p *ngIf=\"cartItem.length && !productIsMeasurable()\">\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} \u043C.</p>\n <p *ngIf=\"cartItem.width\">\u0428\u0438\u0440\u0438\u043D\u0430: {{ cartItem.width }} \u043C.</p>\n <p *ngIf=\"cartItem.height\">\u0412\u044B\u0441\u043E\u0442\u0430: {{ cartItem.height }} \u043C.</p>\n </ng-template>\n </div>\n </div>\n <div class=\"flex items-center grow justify-end\">\n <sc-input-quantity\n class=\"w-28\"\n *ngIf=\"quantityControl\"\n [formControl]=\"quantityControl\"\n [quantityUnit]=\"product.quantityUnit\"\n [showCross]=\"false\"\n size=\"s\"\n [step]=\"product.minCount || 1\"\n ></sc-input-quantity>\n </div>\n</div>\n" }]
79
- }], ctorParameters: function () { return [{ type: i6.TuiPreviewDialogService, decorators: [{
80
- type: Inject,
81
- args: [TuiPreviewDialogService]
82
- }] }, { type: undefined, decorators: [{
83
- type: Inject,
84
- args: [SC_URLS]
85
- }] }, { type: undefined, decorators: [{
86
- type: Inject,
87
- args: [SC_PATH_IMAGE_NOT_FOUND]
88
- }] }, { type: undefined, decorators: [{
89
- type: Inject,
90
- args: [SC_LINEAR_VALUES_TOKEN]
91
- }] }]; }, propDecorators: { specificationPreviewRef: [{
92
- type: ViewChild,
93
- args: ['specificationPreview']
94
- }], cartItem: [{
95
- type: Input
96
- }], quantityValueChanges: [{
97
- type: Output
98
- }], clickDeleteEvent: [{
99
- type: Output
100
- }], clickSettingsEvent: [{
101
- type: Output
102
- }], clickCardEvent: [{
103
- type: Output
104
- }] } });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC1pdGVtLW1vYmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2FydC9jYXJ0LWl0ZW0tbW9iaWxlL2NhcnQtaXRlbS1tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhcnQvY2FydC1pdGVtLW1vYmlsZS9jYXJ0LWl0ZW0tbW9iaWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE9BQU8sRUFBa0MsTUFBTSx3QkFBd0IsQ0FBQztBQUUxRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7O0FBRTdFOztHQUVHO0FBTUgsTUFBTSxPQUFPLHlCQUF5QjtJQWlEbEM7Ozs7Ozs7T0FPRztJQUNILFlBRXFCLG9CQUE2QyxFQUM1QixJQUFhLEVBQ0csaUJBQXlCLEVBQzNCLFlBQXNCO1FBSHJELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDNUIsU0FBSSxHQUFKLElBQUksQ0FBUztRQUNHLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUMzQixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQXRDMUU7O1dBRUc7UUFFSSxxQkFBZ0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV2RTs7V0FFRztRQUVJLHVCQUFrQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXpFOztXQUVHO1FBRUksbUJBQWMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQXVCbEUsQ0FBQztJQXJCSjs7T0FFRztJQUNILElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDakMsQ0FBQztJQWtCRCxrQkFBa0I7SUFDWCxRQUFRO1FBQ1gsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxpQkFBaUI7UUFDcEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkYsQ0FBQztJQUVEOztPQUVHO0lBQ0ksbUJBQW1CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVk7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQzdHLENBQUM7O3NIQTFGUSx5QkFBeUIsa0JBMER0Qix1QkFBdUIsYUFFdkIsT0FBTyxhQUNQLHVCQUF1QixhQUN2QixzQkFBc0I7MEdBOUR6Qix5QkFBeUIsMllDaEJ0Qyx1eEpBcUVBOzJGRHJEYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0kscUJBQXFCLG1CQUVkLHVCQUF1QixDQUFDLE9BQU87OzBCQTREM0MsTUFBTTsyQkFBQyx1QkFBdUI7OzBCQUU5QixNQUFNOzJCQUFDLE9BQU87OzBCQUNkLE1BQU07MkJBQUMsdUJBQXVCOzswQkFDOUIsTUFBTTsyQkFBQyxzQkFBc0I7NENBekRqQix1QkFBdUI7c0JBRHZDLFNBQVM7dUJBQUMsc0JBQXNCO2dCQVkxQixRQUFRO3NCQURkLEtBQUs7Z0JBT0Msb0JBQW9CO3NCQUQxQixNQUFNO2dCQU9BLGdCQUFnQjtzQkFEdEIsTUFBTTtnQkFPQSxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBT0EsY0FBYztzQkFEcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU0NfUEFUSF9JTUFHRV9OT1RfRk9VTkQsIFNDX1VSTFMsIFNjQ2FydEl0ZW0sIFNjSVVybHMsIFNjUHJvZHVjdCB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHVpUHJldmlld0RpYWxvZ1NlcnZpY2UgfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tcHJldmlldyc7XG5pbXBvcnQgeyBUdWlEaWFsb2dDb250ZXh0IH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgU0NfTElORUFSX1ZBTFVFU19UT0tFTiB9IGZyb20gJy4uLy4uL3Rva2Vucy9zYy1saW5lYXItdmFsdWVzLXRva2VuJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0LrQsNGA0YLQvtGH0LrQuCDRjdC70LXQvNC10L3RgtCwINC60L7RgNC30LjQvdGLLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLWNhcnQtaXRlbS1tb2JpbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXJ0LWl0ZW0tbW9iaWxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG59KVxuZXhwb3J0IGNsYXNzIFNjQ2FydEl0ZW1Nb2JpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqINCh0YHRi9C70LrQsCDQvdCwINC/0YDQtdC00YHRgtCw0LLQu9C10L3QuNC1INGB0L/QtdGG0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdzcGVjaWZpY2F0aW9uUHJldmlldycpXG4gICAgcHJpdmF0ZSByZWFkb25seSBzcGVjaWZpY2F0aW9uUHJldmlld1JlZj86IFRlbXBsYXRlUmVmPFR1aURpYWxvZ0NvbnRleHQ+O1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIEZvcm1Db250cm9sfSDQv9C+0LvRjyDQstCy0L7QtNCwINC60L7Qu9C40YfQtdGB0YLQstCwINGC0L7QstCw0YDQsCDQsiDQutC+0YDQt9C40L3QtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcXVhbnRpdHlDb250cm9sOiBGb3JtQ29udHJvbDxudW1iZXIgfCBudWxsPjtcblxuICAgIC8qKlxuICAgICAqINCt0LvQtdC80LXQvdGCINC60L7RgNC30LjQvdGLLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNhcnRJdGVtOiBTY0NhcnRJdGVtO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQutC+0LvQuNGH0LXRgdGC0LLQsCDRgtC+0LLQsNGA0LAg0LIg0LrQvtGA0LfQuNC90LUuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHF1YW50aXR5VmFsdWVDaGFuZ2VzPzogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPjtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDIFwi0KPQtNCw0LvQuNGC0Ywg0LjQtyDQutC+0YDQt9C40L3Ri1wiLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbGlja0RlbGV0ZUV2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyBcItCj0LTQsNC70LjRgtGMINC40Lcg0LrQvtGA0LfQuNC90YtcIi5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2xpY2tTZXR0aW5nc0V2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60LDRgNGC0L7Rh9C60YMuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsaWNrQ2FyZEV2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0L7QtNGD0LrRgiDRjdC70LXQvNC10L3RgtCwINC60L7RgNC30LjQvdGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcHJvZHVjdCgpOiBTY1Byb2R1Y3Qge1xuICAgICAgICByZXR1cm4gdGhpcy5jYXJ0SXRlbS5wcm9kdWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjQ2FydEl0ZW1Nb2JpbGVDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIHByZXZpZXdEaWFsb2dTZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC40LDQu9C+0LPQvtCy0L7Qs9C+INC+0LrQvdCwINC/0YDQtdC00LLQsNGA0LjRgtC10LvRjNC90L7Qs9C+INC/0YDQvtGB0LzQvtGC0YDQsC5cbiAgICAgKiBAcGFyYW0gdXJscyDQodC/0LjRgdC+0Log0YHRgdGL0LvQvtC6INC90LAg0YDQsNC30LTQtdC70YsgYmFja2VuZCdhLlxuICAgICAqIEBwYXJhbSBwYXRoSW1hZ2VOb3RGb3VuZCDQn9GD0YLRjCDQtNC+INC40LfQvtCx0YDQsNC20LXQvdC40Y8gJ9Ci0L7QstCw0YAg0L3QtSDQvdCw0LnQtNC10L0nLlxuICAgICAqIEBwYXJhbSBsaW5lYXJWYWx1ZXMg0JXQtNC40L3QuNGG0Ysg0LjQt9C80LXRgNC10L3QuNGPINC70LjQvdC10LnQvdC+0Lkg0LLQtdC70LjRh9C40L3Riy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoVHVpUHJldmlld0RpYWxvZ1NlcnZpY2UpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcHJldmlld0RpYWxvZ1NlcnZpY2U6IFR1aVByZXZpZXdEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KFNDX1VSTFMpIHByaXZhdGUgcmVhZG9ubHkgdXJsczogU2NJVXJscyxcbiAgICAgICAgQEluamVjdChTQ19QQVRIX0lNQUdFX05PVF9GT1VORCkgcHJpdmF0ZSByZWFkb25seSBwYXRoSW1hZ2VOb3RGb3VuZDogc3RyaW5nLFxuICAgICAgICBASW5qZWN0KFNDX0xJTkVBUl9WQUxVRVNfVE9LRU4pIHB1YmxpYyByZWFkb25seSBsaW5lYXJWYWx1ZXM6IHN0cmluZ1tdXG4gICAgKSB7fVxuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnF1YW50aXR5Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh0aGlzLmNhcnRJdGVtLnF1YW50aXR5KTtcbiAgICAgICAgdGhpcy5xdWFudGl0eVZhbHVlQ2hhbmdlcyA9IHRoaXMucXVhbnRpdHlDb250cm9sLnZhbHVlQ2hhbmdlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntGC0L7QsdGA0LDQt9C40YLRjCDRgdC/0LXRhtC40YTQuNC60LDRhtC40Y4uXG4gICAgICovXG4gICAgcHVibGljIHNob3dTcGVjaWZpY2F0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpZXdEaWFsb2dTZXJ2aWNlLm9wZW4odGhpcy5zcGVjaWZpY2F0aW9uUHJldmlld1JlZiB8fCAnJykuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0L/RgNC40LfQvdCw0Log0LLQvtC30LzQvtC20L3QvtGB0YLQuCDQv9GA0L7QtNCw0LbQuCDRgtC+0LLQsNGA0LAg0L3QsCDQvNC10YLRgNCw0LYuXG4gICAgICovXG4gICAgcHVibGljIHByb2R1Y3RJc01lYXN1cmFibGUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdC5taW5Db3VudCAmJiAhdGhpcy5saW5lYXJWYWx1ZXMuaW5jbHVkZXModGhpcy5wcm9kdWN0LnVuaXQpID8gdGhpcy5wcm9kdWN0Lm1pbkNvdW50IDogMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdGB0YvQu9C60YMg0L3QsCDQuNC30L7QsdGA0LDQttC10L3QuNC1INC60LDRgNGC0L7Rh9C60Lgg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDYXJkSW1hZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdD8uZ2V0SW1hZ2UodGhpcy51cmxzLmltZ1NlcnZlclVybCkgPz8gdGhpcy51cmxzLmltZ1NlcnZlclVybCArIHRoaXMucGF0aEltYWdlTm90Rm91bmQ7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1sLTIgbXQtMiByZWxhdGl2ZSBwLTQgZ2FwLXktMiBnYXAteC00IGZsZXggZmxleC13cmFwIGJnLXdoaXRlIGJvcmRlciBib3JkZXItdHVpLWJhc2UtMDQgc2hhZG93LXNjLTIgcm91bmRlZC14bFwiPlxuICAgIDxidXR0b24gdHVpSWNvbkJ1dHRvbiAoY2xpY2spPVwiY2xpY2tEZWxldGVFdmVudC5lbWl0KClcIiBzaXplPVwibVwiIGljb249XCJzY0ljb25WZXJ0aWNhbFRocmVlRG90c1wiIGFwcGVhcmFuY2U9XCJmbG9hdFwiIHR1aU1vZGU9XCJvbkxpZ2h0XCIgY2xhc3M9XCIhYWJzb2x1dGUgcmlnaHQtMCB0b3AtMFwiPjwvYnV0dG9uPlxuICAgIDxidXR0b24gdHVpSWNvbkJ1dHRvbiBzaXplPVwibVwiIGljb249XCJzY0ljb25CYXNrZXRcIiBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCIgdHVpTW9kZT1cIm9uTGlnaHRcIiBjbGFzcz1cInNoYWRvdy1zYy0yICFhYnNvbHV0ZSAtbGVmdC0yIC10b3AtMlwiPjwvYnV0dG9uPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHNocmluay0wIGgtMjAgdy0yMCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICA8aW1nIChjbGljayk9XCJjbGlja0NhcmRFdmVudC5lbWl0KClcIiBbc3JjXT1cImdldENhcmRJbWFnZSgpXCIgW2FsdF09XCJwcm9kdWN0Lm5hbWVcIiBbY2xhc3MucC01XT1cIiFwcm9kdWN0LmltYWdlcz8ubGVuZ3RoXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIC8+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBzZWxmLWNlbnRlciBnYXAteC04IGdhcC15LTAuNVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctWzEzcmVtXVwiPlxuICAgICAgICAgICAgICAgIDxhIHR1aUxpbmsgKGNsaWNrKT1cImNsaWNrQ2FyZEV2ZW50LmVtaXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZFwiPnt7IHByb2R1Y3QubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtdHVpLWJhc2UtMDcgdGV4dC14c1wiPlxuICAgICAgICAgICAgICAgICAgICA8cD7QkNGA0YLQuNC60YPQuzoge3sgY2FydEl0ZW0ucHJvZHVjdC5jb2RlIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImNhcnRJdGVtLnByb2R1Y3QucGFja1wiPtCd0L7RgNC80LAg0YPQv9Cw0LrQvtCy0LrQuDoge3sgY2FydEl0ZW0ucHJvZHVjdC5wYWNrIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8YSB0dWlMaW5rICpuZ0lmPVwiY2FydEl0ZW0uc3BlY2lmaWNhdGlvbkltZ1VybFwiIChjbGljayk9XCJzaG93U3BlY2lmaWNhdGlvbigpXCI+0KHQv9C10YbQuNGE0LjQutCw0YbQuNGPPC9hPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NwZWNpZmljYXRpb25QcmV2aWV3IGxldC1wcmV2aWV3PlxuICAgICAgICAgICAgICAgICAgICAgICAgPHR1aS1wcmV2aWV3IFtyb3RhdGFibGVdPVwiZmFsc2VcIiBbem9vbWFibGVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjYXJ0SXRlbS5zcGVjaWZpY2F0aW9uSW1nVXJsIGFzIHNyY1wiIGFsdD1cInByZXZpZXdcIiBhbHQ9XCJcIiBbc3JjXT1cImNhcnRJdGVtLnNwZWNpZmljYXRpb25JbWdVcmxcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gaWNvbj1cInR1aUljb25DbG9zZVwiIHRpdGxlPVwiQ2xvc2VcIiB0dWlJY29uQnV0dG9uIHR1aVByZXZpZXdBY3Rpb24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJwcmV2aWV3LmNvbXBsZXRlKClcIj48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHVpLXByZXZpZXc+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHNlbGYtY2VudGVyIHctWzEwcmVtXSBnYXAteC04IGdhcC15LTAuNVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicHJvZHVjdC5kaXNjb3VudFwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgdGV4dC14cyB0ZXh0LXR1aS1iYXNlLTA3XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGluZS10aHJvdWdoXCI+e3sgcHJvZHVjdC5kaXNjb3VudENvc3RTdHJpbmcgfX08L3NwYW4+ICZuYnNwO1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLXN1Y2Nlc3MtZmlsbCBmb250LWJvbGRcIj4gLXt7IHByb2R1Y3QuZGlzY291bnQucGVyY2VudCB9fSUgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8dHVpLXN2ZyBzcmM9XCJ0dWlJY29uSW5mb0xhcmdlXCIgW3R1aUhpbnRdPVwiZGlzY291bnRIaW50XCIgW3R1aUhpbnRTaG93RGVsYXldPVwiMTAwXCIgdHVpSGludERpcmVjdGlvbj1cInRvcFwiIGNsYXNzPVwidGV4dC1ibGFjayAhdGV4dC14cyAhaC00XCI+PC90dWktc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Rpc2NvdW50SGludD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LWJvbGRcIj57eyBwcm9kdWN0LmRpc2NvdW50Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcm9kdWN0LmRpc2NvdW50LmV4cGlyZWRBdCBhcyBleHBpcmVkQXRcIj7QlNCw0YLQsCDQvtC60L7QvdGH0LDQvdC40Y86IHt7IGV4cGlyZWRBdCB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtYmFzZWxpbmUgZ2FwLXgtMiBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgcHJvZHVjdC5jb3N0UnViU3RyaW5nIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFwcm9kdWN0LnByaWNlSW5SdWJcIiBjbGFzcz1cInRleHQteHMgdGV4dC10dWktYmFzZS0wN1wiPnt7IHByb2R1Y3QuY29zdFN0cmluZyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHNjLXByaWNlLXdhcmVob3VzZS1zdG9jayBbcHJvZHVjdF09XCJwcm9kdWN0XCI+PC9zYy1wcmljZS13YXJlaG91c2Utc3RvY2s+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiBpdGVtcy1jZW50ZXIgdy00NCB0ZXh0LXhzIHRleHQtdHVpLWJhc2UtMDdcIj5cbiAgICAgICAgPGJ1dHRvbiB0dWlJY29uQnV0dG9uIChjbGljayk9XCJjbGlja1NldHRpbmdzRXZlbnQuZW1pdCgpXCIgc2l6ZT1cIm1cIiBpY29uPVwic2NJY29uU2V0dGluZ3NcIiBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCIgdHVpTW9kZT1cIm9uTGlnaHRcIj48L2J1dHRvbj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9kdWN0SXNNZWFzdXJhYmxlKCk7IGVsc2Ugbm90TWVhc3VyYWJsZVwiPlxuICAgICAgICAgICAgICAgIDxwPtCU0LvQuNC90LA6IHt7IGNhcnRJdGVtLmxlbmd0aCB9fSB7eyBjYXJ0SXRlbS5wcm9kdWN0LnVuaXQgfX08L3A+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90TWVhc3VyYWJsZT5cbiAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImNhcnRJdGVtLmxlbmd0aCAmJiAhcHJvZHVjdElzTWVhc3VyYWJsZSgpXCI+0JTQu9C40L3QsDoge3sgY2FydEl0ZW0ubGVuZ3RoIH19INC8LjwvcD5cbiAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImNhcnRJdGVtLndpZHRoXCI+0KjQuNGA0LjQvdCwOiB7eyBjYXJ0SXRlbS53aWR0aCB9fSDQvC48L3A+XG4gICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJjYXJ0SXRlbS5oZWlnaHRcIj7QktGL0YHQvtGC0LA6IHt7IGNhcnRJdGVtLmhlaWdodCB9fSDQvC48L3A+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ3JvdyBqdXN0aWZ5LWVuZFwiPlxuICAgICAgICA8c2MtaW5wdXQtcXVhbnRpdHlcbiAgICAgICAgICAgIGNsYXNzPVwidy0yOFwiXG4gICAgICAgICAgICAqbmdJZj1cInF1YW50aXR5Q29udHJvbFwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicXVhbnRpdHlDb250cm9sXCJcbiAgICAgICAgICAgIFtxdWFudGl0eVVuaXRdPVwicHJvZHVjdC5xdWFudGl0eVVuaXRcIlxuICAgICAgICAgICAgW3Nob3dDcm9zc109XCJmYWxzZVwiXG4gICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICBbc3RlcF09XCJwcm9kdWN0Lm1pbkNvdW50IHx8IDFcIlxuICAgICAgICA+PC9zYy1pbnB1dC1xdWFudGl0eT5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,58 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ScCartItemMobileComponent } from './cart-item-mobile/cart-item-mobile.component';
4
- import { TuiButtonModule, TuiHintModule, TuiLinkModule, TuiModeModule, TuiSvgModule } from '@taiga-ui/core';
5
- import { ScCatalogModule } from '../catalog';
6
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7
- import { TuiPreviewModule } from '@taiga-ui/addon-preview';
8
- import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
9
- import * as i0 from "@angular/core";
10
- /**
11
- * Модуль корзины.
12
- */
13
- export class CartModule {
14
- }
15
- CartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
- CartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: CartModule, declarations: [ScCartItemMobileComponent], imports: [CommonModule,
17
- TuiLinkModule,
18
- ScCatalogModule,
19
- TuiButtonModule,
20
- TuiModeModule,
21
- TuiSvgModule,
22
- TuiHintModule,
23
- FormsModule,
24
- ReactiveFormsModule,
25
- TuiPreviewModule,
26
- PolymorpheusModule], exports: [ScCartItemMobileComponent] });
27
- CartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CartModule, imports: [CommonModule,
28
- TuiLinkModule,
29
- ScCatalogModule,
30
- TuiButtonModule,
31
- TuiModeModule,
32
- TuiSvgModule,
33
- TuiHintModule,
34
- FormsModule,
35
- ReactiveFormsModule,
36
- TuiPreviewModule,
37
- PolymorpheusModule] });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CartModule, decorators: [{
39
- type: NgModule,
40
- args: [{
41
- declarations: [ScCartItemMobileComponent],
42
- exports: [ScCartItemMobileComponent],
43
- imports: [
44
- CommonModule,
45
- TuiLinkModule,
46
- ScCatalogModule,
47
- TuiButtonModule,
48
- TuiModeModule,
49
- TuiSvgModule,
50
- TuiHintModule,
51
- FormsModule,
52
- ReactiveFormsModule,
53
- TuiPreviewModule,
54
- PolymorpheusModule,
55
- ],
56
- }]
57
- }] });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2FydC9jYXJ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUU5RDs7R0FFRztBQWtCSCxNQUFNLE9BQU8sVUFBVTs7dUdBQVYsVUFBVTt3R0FBVixVQUFVLGlCQWhCSix5QkFBeUIsYUFHcEMsWUFBWTtRQUNaLGFBQWE7UUFDYixlQUFlO1FBQ2YsZUFBZTtRQUNmLGFBQWE7UUFDYixZQUFZO1FBQ1osYUFBYTtRQUNiLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsZ0JBQWdCO1FBQ2hCLGtCQUFrQixhQVpaLHlCQUF5Qjt3R0FlMUIsVUFBVSxZQWJmLFlBQVk7UUFDWixhQUFhO1FBQ2IsZUFBZTtRQUNmLGVBQWU7UUFDZixhQUFhO1FBQ2IsWUFBWTtRQUNaLGFBQWE7UUFDYixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQixrQkFBa0I7MkZBR2IsVUFBVTtrQkFqQnRCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3pDLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUNwQyxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixrQkFBa0I7cUJBQ3JCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTY0NhcnRJdGVtTW9iaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJ0LWl0ZW0tbW9iaWxlL2NhcnQtaXRlbS1tb2JpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFR1aUJ1dHRvbk1vZHVsZSwgVHVpSGludE1vZHVsZSwgVHVpTGlua01vZHVsZSwgVHVpTW9kZU1vZHVsZSwgVHVpU3ZnTW9kdWxlIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgU2NDYXRhbG9nTW9kdWxlIH0gZnJvbSAnLi4vY2F0YWxvZyc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFR1aVByZXZpZXdNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tcHJldmlldyc7XG5pbXBvcnQgeyBQb2x5bW9ycGhldXNNb2R1bGUgfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuXG4vKipcbiAqINCc0L7QtNGD0LvRjCDQutC+0YDQt9C40L3Riy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtTY0NhcnRJdGVtTW9iaWxlQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbU2NDYXJ0SXRlbU1vYmlsZUNvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFR1aUxpbmtNb2R1bGUsXG4gICAgICAgIFNjQ2F0YWxvZ01vZHVsZSxcbiAgICAgICAgVHVpQnV0dG9uTW9kdWxlLFxuICAgICAgICBUdWlNb2RlTW9kdWxlLFxuICAgICAgICBUdWlTdmdNb2R1bGUsXG4gICAgICAgIFR1aUhpbnRNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBUdWlQcmV2aWV3TW9kdWxlLFxuICAgICAgICBQb2x5bW9ycGhldXNNb2R1bGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FydE1vZHVsZSB7fVxuIl19