@snabcentr/client-ui 3.18.0 → 3.20.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.
- package/accordion/sc-accordion.component.d.ts +5 -1
- package/catalog/sc-catalog.module.d.ts +2 -1
- package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts +9 -1
- package/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.d.ts +9 -1
- package/delivery-address/sc-delivery-address.module.d.ts +2 -1
- package/directives/index.d.ts +1 -0
- package/directives/sc-date-value-transformer.directive.d.ts +8 -0
- package/esm2022/accordion/sc-accordion.component.mjs +8 -4
- package/esm2022/cart/cart-item/sc-cart-item.component.mjs +5 -3
- package/esm2022/catalog/cost-with-discount/cost-with-discount.component.mjs +4 -3
- package/esm2022/catalog/price-card/sc-price-card.component.mjs +4 -3
- package/esm2022/catalog/price-card-inline/sc-price-card-inline.component.mjs +5 -3
- package/esm2022/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.mjs +4 -3
- package/esm2022/catalog/sc-catalog.module.mjs +5 -2
- package/esm2022/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +1 -1
- package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +1 -1
- package/esm2022/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +1 -1
- package/esm2022/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +14 -3
- package/esm2022/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +1 -1
- package/esm2022/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +17 -5
- package/esm2022/delivery-address/sc-delivery-address.module.mjs +12 -5
- package/esm2022/directives/index.mjs +2 -1
- package/esm2022/directives/sc-date-value-transformer.directive.mjs +30 -0
- package/esm2022/files/files-and-documents/files-and-documents.component.mjs +4 -3
- package/esm2022/files/files-and-documents.module.mjs +4 -3
- package/esm2022/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +4 -4
- package/esm2022/news/news-card/sc-news-card.component.mjs +4 -3
- package/esm2022/news/sc-news.module.mjs +4 -3
- package/esm2022/pipes/index.mjs +2 -1
- package/esm2022/pipes/sc-format-date.mjs +33 -0
- package/esm2022/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +42 -54
- package/esm2022/providers/date-value-transformer/index.mjs +4 -0
- package/esm2022/providers/date-value-transformer/sc-date-value-transformer-types.mjs +2 -0
- package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-end-time.mjs +26 -0
- package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-start-time.mjs +37 -0
- package/esm2022/providers/index.mjs +4 -1
- package/esm2022/providers/sc-country-ids.mjs +6 -0
- package/esm2022/providers/sc-date-formatter.mjs +12 -0
- package/esm2022/providers/sc-date-value-transformer.mjs +12 -0
- package/esm2022/providers/sc-user-providers.mjs +24 -18
- package/esm2022/services/sc-help-notification.service.mjs +11 -3
- package/fesm2022/snabcentr-client-ui.mjs +277 -108
- package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
- package/files/files-and-documents.module.d.ts +2 -1
- package/news/sc-news.module.d.ts +2 -1
- package/package.json +2 -2
- package/pipes/index.d.ts +1 -0
- package/pipes/sc-format-date.d.ts +20 -0
- package/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.d.ts +21 -24
- package/providers/date-value-transformer/index.d.ts +3 -0
- package/providers/date-value-transformer/sc-date-value-transformer-types.d.ts +9 -0
- package/providers/date-value-transformer/sc-date-value-transformer-with-end-time.d.ts +16 -0
- package/providers/date-value-transformer/sc-date-value-transformer-with-start-time.d.ts +22 -0
- package/providers/index.d.ts +3 -0
- package/providers/sc-country-ids.d.ts +5 -0
- package/providers/sc-date-formatter.d.ts +6 -0
- package/providers/sc-date-value-transformer.d.ts +5 -0
- package/providers/sc-user-providers.d.ts +10 -6
- package/release_notes.tmp +3 -3
- package/services/sc-help-notification.service.d.ts +8 -0
- package/styles/tailwind/tailwind.scss +4 -4
@@ -27,6 +27,10 @@ export declare class ScAccordionComponent {
|
|
27
27
|
* Размер элементов {@link TuiAccordionItemComponent}.
|
28
28
|
*/
|
29
29
|
size: TuiSizeS;
|
30
|
+
/**
|
31
|
+
* Состояние отключения кнопок.
|
32
|
+
*/
|
33
|
+
readonly disabledButtons: import("@angular/core").InputSignal<boolean>;
|
30
34
|
/**
|
31
35
|
* Дочерний элемент контента.
|
32
36
|
*/
|
@@ -48,5 +52,5 @@ export declare class ScAccordionComponent {
|
|
48
52
|
*/
|
49
53
|
close(): void;
|
50
54
|
static ɵfac: i0.ɵɵFactoryDeclaration<ScAccordionComponent, never>;
|
51
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ScAccordionComponent, "sc-accordion", never, { "showAddButton": { "alias": "showAddButton"; "required": false; }; "showDeleteButton": { "alias": "showDeleteButton"; "required": false; }; "showArrow": { "alias": "showArrow"; "required": false; }; "open": { "alias": "open"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "addButtonClick": "addButtonClick"; "deleteButtonClick": "deleteButtonClick"; }, ["content"], ["*"], false, never>;
|
55
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScAccordionComponent, "sc-accordion", never, { "showAddButton": { "alias": "showAddButton"; "required": false; }; "showDeleteButton": { "alias": "showDeleteButton"; "required": false; }; "showArrow": { "alias": "showArrow"; "required": false; }; "open": { "alias": "open"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabledButtons": { "alias": "disabledButtons"; "required": false; "isSignal": true; }; }, { "addButtonClick": "addButtonClick"; "deleteButtonClick": "deleteButtonClick"; }, ["content"], ["*"], false, never>;
|
52
56
|
}
|
@@ -17,11 +17,12 @@ import * as i15 from "./price-card-inline/sc-price-card-inline.component";
|
|
17
17
|
import * as i16 from "./price-warehouse-stock/sc-price-warehouse-stock.component";
|
18
18
|
import * as i17 from "./sc-favorite-button/sc-favorite-button.component";
|
19
19
|
import * as i18 from "./input-quantity/sc-input-quantity.component";
|
20
|
+
import * as i19 from "../pipes/sc-format-date";
|
20
21
|
/**
|
21
22
|
* Модуль каталога.
|
22
23
|
*/
|
23
24
|
export declare class ScCatalogModule {
|
24
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<ScCatalogModule, never>;
|
25
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ScCatalogModule, [typeof i1.ScPriceListPaginationComponent, typeof i2.ScCategoryCardComponent, typeof i3.ScPriceCardComponent, typeof i4.ScPriceHistoryComponent], [typeof i5.CommonModule, typeof i6.RouterModule, typeof i7.TuiButton, typeof i7.TuiIcon, typeof i8.TuiIslandDirective, typeof i8.TuiInputNumberModule, typeof i7.TuiLabel, typeof i8.TuiTextfieldControllerModule, typeof i9.FormsModule, typeof i9.ReactiveFormsModule, typeof i7.TuiHintComponent, typeof i7.TuiHintDirective, typeof i7.TuiHintOptionsDirective, typeof i7.TuiHintUnstyled, typeof i7.TuiHintDriver, typeof i7.TuiHintPosition, typeof i7.TuiHintHover, typeof i7.TuiHintOverflow, typeof i7.TuiHintDescribe, typeof i7.TuiHintHost, typeof i7.TuiHintManual, typeof i7.TuiHintPointer, typeof i10.TuiFieldErrorPipe, typeof i7.TuiLoader, typeof i7.TuiLink, typeof i10.TuiElasticContainer, typeof i11.TuiLet, typeof i11.TuiRepeatTimes, typeof i10.TuiHighlight, typeof i12.TuiLineDaysChart, typeof i11.TuiAutoFocus, typeof i12.TuiLineDaysChartHint, typeof i12.TuiAxes, typeof i10.TuiButtonLoading, typeof i10.TuiAvatar, typeof i10.TuiBadge, typeof i13.HoverImageCarouselComponent, typeof i10.TuiLineClamp, typeof i11.TuiHovered, typeof i14.CostWithDiscountComponent, typeof i15.ScPriceCardInlineComponent, typeof i16.ScPriceWarehouseStockComponent, typeof i17.ScFavoriteButtonComponent, typeof i18.ScInputQuantityComponent], [typeof i1.ScPriceListPaginationComponent, typeof i2.ScCategoryCardComponent, typeof i3.ScPriceCardComponent, typeof i4.ScPriceHistoryComponent]>;
|
26
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ScCatalogModule, [typeof i1.ScPriceListPaginationComponent, typeof i2.ScCategoryCardComponent, typeof i3.ScPriceCardComponent, typeof i4.ScPriceHistoryComponent], [typeof i5.CommonModule, typeof i6.RouterModule, typeof i7.TuiButton, typeof i7.TuiIcon, typeof i8.TuiIslandDirective, typeof i8.TuiInputNumberModule, typeof i7.TuiLabel, typeof i8.TuiTextfieldControllerModule, typeof i9.FormsModule, typeof i9.ReactiveFormsModule, typeof i7.TuiHintComponent, typeof i7.TuiHintDirective, typeof i7.TuiHintOptionsDirective, typeof i7.TuiHintUnstyled, typeof i7.TuiHintDriver, typeof i7.TuiHintPosition, typeof i7.TuiHintHover, typeof i7.TuiHintOverflow, typeof i7.TuiHintDescribe, typeof i7.TuiHintHost, typeof i7.TuiHintManual, typeof i7.TuiHintPointer, typeof i10.TuiFieldErrorPipe, typeof i7.TuiLoader, typeof i7.TuiLink, typeof i10.TuiElasticContainer, typeof i11.TuiLet, typeof i11.TuiRepeatTimes, typeof i10.TuiHighlight, typeof i12.TuiLineDaysChart, typeof i11.TuiAutoFocus, typeof i12.TuiLineDaysChartHint, typeof i12.TuiAxes, typeof i10.TuiButtonLoading, typeof i10.TuiAvatar, typeof i10.TuiBadge, typeof i13.HoverImageCarouselComponent, typeof i10.TuiLineClamp, typeof i11.TuiHovered, typeof i14.CostWithDiscountComponent, typeof i15.ScPriceCardInlineComponent, typeof i16.ScPriceWarehouseStockComponent, typeof i17.ScFavoriteButtonComponent, typeof i18.ScInputQuantityComponent, typeof i19.ScFormatDatePipe], [typeof i1.ScPriceListPaginationComponent, typeof i2.ScCategoryCardComponent, typeof i3.ScPriceCardComponent, typeof i4.ScPriceHistoryComponent]>;
|
26
27
|
static ɵinj: i0.ɵɵInjectorDeclaration<ScCatalogModule>;
|
27
28
|
}
|
package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { AfterViewInit } from '@angular/core';
|
2
2
|
import { FormControl, FormGroup } from '@angular/forms';
|
3
|
-
import { ScConvertersService, ScDeliveryAddressService, ScISuggestionAddress, ScISuggestionType, ScSuggestion, ScUserMetrikaService } from '@snabcentr/client-core';
|
3
|
+
import { ScConvertersService, ScDeliveryAddressService, ScIOrgContact, ScISuggestionAddress, ScISuggestionType, ScSuggestion, ScUserMetrikaService } from '@snabcentr/client-core';
|
4
4
|
import { TuiDialogContext } from '@taiga-ui/core';
|
5
5
|
import { YaReadyEvent } from 'angular8-yandex-maps';
|
6
6
|
import { Observable, Subject } from 'rxjs';
|
@@ -43,6 +43,14 @@ export declare class ScAddDeliveryAddressDialogComponent implements AfterViewIni
|
|
43
43
|
* Масштаб карты по умолчанию.
|
44
44
|
*/
|
45
45
|
readonly defaultZoomMap: number;
|
46
|
+
/**
|
47
|
+
* {@link Observable} данных контактов дл помощи.
|
48
|
+
*/
|
49
|
+
protected readonly userHelpContacts$: Observable<ScIOrgContact[]>;
|
50
|
+
/**
|
51
|
+
* Признак того, что текущая страна является верной.
|
52
|
+
*/
|
53
|
+
protected readonly isDefaultCountry: Observable<boolean>;
|
46
54
|
/**
|
47
55
|
* {@link Observable} запроса данных добавления адрес доставки.
|
48
56
|
*/
|
package/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import { EventEmitter } from '@angular/core';
|
2
|
-
import { ScDeliveryAddressService, ScIContact, ScIDeliveryAddress } from '@snabcentr/client-core';
|
2
|
+
import { ScDeliveryAddressService, ScIContact, ScIDeliveryAddress, ScIOrgContact } from '@snabcentr/client-core';
|
3
3
|
import { Observable } from 'rxjs';
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
/**
|
@@ -30,6 +30,14 @@ export declare class ScDeliveryAddressAccordionComponent {
|
|
30
30
|
contact: ScIContact;
|
31
31
|
address: ScIDeliveryAddress;
|
32
32
|
}>;
|
33
|
+
/**
|
34
|
+
* {@link Observable} данных контактов дл помощи.
|
35
|
+
*/
|
36
|
+
protected readonly userHelpContacts$: Observable<ScIOrgContact[]>;
|
37
|
+
/**
|
38
|
+
* Признак того, что текущая страна пользователя верной.
|
39
|
+
*/
|
40
|
+
protected readonly isDefaultCountry: Observable<boolean>;
|
33
41
|
/**
|
34
42
|
* Инициализирует экземпляр класса {@link ScDeliveryAddressAccordionComponent}.
|
35
43
|
*
|
@@ -12,11 +12,12 @@ import * as i10 from "@taiga-ui/kit";
|
|
12
12
|
import * as i11 from "@taiga-ui/legacy";
|
13
13
|
import * as i12 from "../form-fields/form-fields.module";
|
14
14
|
import * as i13 from "angular8-yandex-maps";
|
15
|
+
import * as i14 from "../contacts/manager-card/sc-manager-card.component";
|
15
16
|
/**
|
16
17
|
* Модуль для отображение адресов доставки разделами, с возможностью скрывать и отображать содержимое.
|
17
18
|
*/
|
18
19
|
export declare class ScDeliveryAddressModule {
|
19
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<ScDeliveryAddressModule, never>;
|
20
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ScDeliveryAddressModule, [typeof i1.ScDeliveryAddressAccordionComponent, typeof i2.ScDeliveryAddressAccordionItemComponent, typeof i3.ScAddDeliveryAddressDialogComponent], [typeof i4.CommonModule, typeof i5.ScAccordionModule, typeof i6.TuiButton, typeof i6.TuiLoader, typeof i7.TuiLet, typeof i6.TuiNotification, typeof i8.ScContactsModule, typeof i9.FormsModule, typeof i9.ReactiveFormsModule, typeof i6.TuiLabel, typeof i10.TuiFieldErrorPipe, typeof i6.TuiError, typeof i11.TuiInputModule, typeof i11.TuiInputPhoneModule, typeof i12.ScFormFieldsModule, typeof i6.TuiDataListComponent, typeof i6.TuiDataListDirective, typeof i6.TuiOption, typeof i6.TuiOptGroup, typeof i13.AngularYandexMapsModule, typeof i10.TuiElasticContainer, typeof i10.TuiButtonLoading], [typeof i1.ScDeliveryAddressAccordionComponent, typeof i3.ScAddDeliveryAddressDialogComponent]>;
|
21
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ScDeliveryAddressModule, [typeof i1.ScDeliveryAddressAccordionComponent, typeof i2.ScDeliveryAddressAccordionItemComponent, typeof i3.ScAddDeliveryAddressDialogComponent], [typeof i4.CommonModule, typeof i5.ScAccordionModule, typeof i6.TuiButton, typeof i6.TuiLoader, typeof i7.TuiLet, typeof i6.TuiNotification, typeof i8.ScContactsModule, typeof i9.FormsModule, typeof i9.ReactiveFormsModule, typeof i6.TuiLabel, typeof i10.TuiFieldErrorPipe, typeof i6.TuiError, typeof i11.TuiInputModule, typeof i11.TuiInputPhoneModule, typeof i12.ScFormFieldsModule, typeof i6.TuiDataListComponent, typeof i6.TuiDataListDirective, typeof i6.TuiOption, typeof i6.TuiOptGroup, typeof i13.AngularYandexMapsModule, typeof i10.TuiElasticContainer, typeof i10.TuiButtonLoading, typeof i10.TuiPushComponent, typeof i10.TuiPushAlert, typeof i10.TuiPushDirective, typeof i6.TuiIcon, typeof i14.ScManagerCardComponent], [typeof i1.ScDeliveryAddressAccordionComponent, typeof i3.ScAddDeliveryAddressDialogComponent]>;
|
21
22
|
static ɵinj: i0.ɵɵInjectorDeclaration<ScDeliveryAddressModule>;
|
22
23
|
}
|
package/directives/index.d.ts
CHANGED
@@ -3,3 +3,4 @@ export * from './next-input-focus/sc-next-input-focus.module';
|
|
3
3
|
export * from './abstract-price-card/abstract-sc-price-card.directive';
|
4
4
|
export * from './terminal-link/sc-terminal-link.directive';
|
5
5
|
export * from './links';
|
6
|
+
export * from './sc-date-value-transformer.directive';
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import * as i0 from "@angular/core";
|
2
|
+
/**
|
3
|
+
* Директива для преобразования даты в формат "YYYY-MM-DD 23:59:59".
|
4
|
+
*/
|
5
|
+
export declare class FinishDateTimeTransformerDirective {
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FinishDateTimeTransformerDirective, never>;
|
7
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<FinishDateTimeTransformerDirective, "tui-input-date[toFinishDateTime]", never, {}, {}, never, never, true, never>;
|
8
|
+
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, HostBinding, Input, Output, ViewChild } from '@angular/core';
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, HostBinding, Input, input, Output, ViewChild } from '@angular/core';
|
2
2
|
import { TuiAccordionItem } from '@taiga-ui/kit';
|
3
3
|
import { ScAccordionContentDirective } from './sc-accordion-content.directive';
|
4
4
|
import * as i0 from "@angular/core";
|
@@ -31,6 +31,10 @@ export class ScAccordionComponent {
|
|
31
31
|
* Размер элементов {@link TuiAccordionItemComponent}.
|
32
32
|
*/
|
33
33
|
this.size = 's';
|
34
|
+
/**
|
35
|
+
* Состояние отключения кнопок.
|
36
|
+
*/
|
37
|
+
this.disabledButtons = input(false);
|
34
38
|
/**
|
35
39
|
* Событие нажатия на кнопку добавления.
|
36
40
|
*/
|
@@ -47,11 +51,11 @@ export class ScAccordionComponent {
|
|
47
51
|
this.accordion?.close();
|
48
52
|
}
|
49
53
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAccordionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
50
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
54
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: ScAccordionComponent, selector: "sc-accordion", inputs: { showAddButton: { classPropertyName: "showAddButton", publicName: "showAddButton", isSignal: false, isRequired: false, transformFunction: null }, showDeleteButton: { classPropertyName: "showDeleteButton", publicName: "showDeleteButton", isSignal: false, isRequired: false, transformFunction: null }, showArrow: { classPropertyName: "showArrow", publicName: "showArrow", isSignal: false, isRequired: false, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, disabledButtons: { classPropertyName: "disabledButtons", publicName: "disabledButtons", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { addButtonClick: "addButtonClick", deleteButtonClick: "deleteButtonClick" }, host: { properties: { "class._has-add-button": "this.showAddButton", "class._has-delete-button": "this.showDeleteButton", "class._has-arrow": "this.showArrow", "attr.data-size": "this.size" } }, queries: [{ propertyName: "content", first: true, predicate: ScAccordionContentDirective, descendants: true }], viewQueries: [{ propertyName: "accordion", first: true, predicate: TuiAccordionItem, descendants: true }], ngImport: i0, template: "<tui-accordion [rounded]=\"false\">\n <tui-accordion-item\n #accordion\n [size]=\"size\"\n [borders]=\"null\"\n [showArrow]=\"showArrow\"\n [open]=\"open\"\n >\n <div class=\"flex grow justify-between\">\n <div class=\"self-center font-bold\">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"showAddButton || showDeleteButton\"\n class=\"flex\"\n >\n <ng-container *ngIf=\"showDeleteButton\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n [disabled]=\"disabledButtons()\"\n iconStart=\"@tui.trash-2\"\n appearance=\"secondary\"\n (click)=\"$event.stopPropagation(); deleteButtonClick.emit()\"\n ></button>\n </ng-container>\n <ng-container *ngIf=\"showAddButton\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n [disabled]=\"disabledButtons()\"\n iconStart=\"@tui.plus\"\n appearance=\"secondary\"\n (click)=\"$event.stopPropagation(); addButtonClick.emit()\"\n ></button>\n </ng-container>\n </div>\n </div>\n <ng-template tuiAccordionItemContent>\n <tui-elastic-container *ngIf=\"content\">\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n </tui-elastic-container>\n </ng-template>\n </tui-accordion-item>\n</tui-accordion>\n", styles: ["::ng-deep tui-accordion-item>.t-wrapper .t-header{border-radius:.75rem;flex-direction:row-reverse;min-height:var(--tui-height-m);font:var(--tui-font-text-m);padding:0 .5rem 0 1rem;gap:.75rem;background:var(--tui-background-base-alt)}:host[data-size=s] ::ng-deep tui-accordion-item>.t-wrapper .t-header{padding:0 .5rem 0 1rem;font:var(--tui-font-text-s)}:host._has-arrow ::ng-deep tui-accordion-item>.t-wrapper .t-header{padding-left:.75rem}:host._has-add-button ::ng-deep tui-accordion-item>.t-wrapper .t-header,:host._has-delete-button ::ng-deep tui-accordion-item>.t-wrapper .t-header{padding-right:0}::ng-deep tui-accordion-item>.t-wrapper .t-header_hoverable:hover:not([data-mode]){background:var(--tui-background-neutral-1-hover)!important}::ng-deep tui-accordion-item>.t-wrapper .t-header .t-icon{color:var(--tui-text-action)}:host:hover:not([data-mode]) ::ng-deep tui-accordion-item>.t-wrapper .t-header .t-icon{color:var(--tui-text-action)}::ng-deep tui-accordion-item>.t-wrapper .t-title{white-space:normal}:host._has-arrow ::ng-deep tui-accordion-item>.t-wrapper .t-title{margin-right:0}::ng-deep tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content{padding-inline:0!important;padding-block:1rem}:host._has-arrow ::ng-deep tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content,:host[data-size=s]:host._has-arrow ::ng-deep tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content{padding-left:1rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: i3.TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: i4.TuiAccordionItem, selector: "tui-accordion-item", inputs: ["noPadding", "showArrow", "borders", "size", "disabled", "disableHover", "open", "async"], outputs: ["openChange"] }, { kind: "directive", type: i4.TuiAccordionDirective, selector: "tui-accordion", inputs: ["closeOthers"] }, { kind: "directive", type: i4.TuiAccordionItemContent, selector: "ng-template[tuiAccordionItemContent]" }, { kind: "component", type: i4.TuiElasticContainer, selector: "tui-elastic-container" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
51
55
|
}
|
52
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScAccordionComponent, decorators: [{
|
53
57
|
type: Component,
|
54
|
-
args: [{ selector: 'sc-accordion', changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-accordion [rounded]=\"false\">\n <tui-accordion-item\n #accordion\n [size]=\"size\"\n [borders]=\"null\"\n [showArrow]=\"showArrow\"\n [open]=\"open\"\n >\n <div class=\"flex grow justify-between\">\n <div class=\"self-center font-bold\">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"showAddButton || showDeleteButton\"\n class=\"flex\"\n >\n <ng-container *ngIf=\"showDeleteButton\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n iconStart=\"@tui.trash-2\"\n appearance=\"secondary\"\n (click)=\"$event.stopPropagation(); deleteButtonClick.emit()\"\n ></button>\n </ng-container>\n <ng-container *ngIf=\"showAddButton\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n iconStart=\"@tui.plus\"\n appearance=\"secondary\"\n (click)=\"$event.stopPropagation(); addButtonClick.emit()\"\n ></button>\n </ng-container>\n </div>\n </div>\n <ng-template tuiAccordionItemContent>\n <tui-elastic-container *ngIf=\"content\">\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n </tui-elastic-container>\n </ng-template>\n </tui-accordion-item>\n</tui-accordion>\n", styles: ["::ng-deep tui-accordion-item>.t-wrapper .t-header{border-radius:.75rem;flex-direction:row-reverse;min-height:var(--tui-height-m);font:var(--tui-font-text-m);padding:0 .5rem 0 1rem;gap:.75rem;background:var(--tui-background-base-alt)}:host[data-size=s] ::ng-deep tui-accordion-item>.t-wrapper .t-header{padding:0 .5rem 0 1rem;font:var(--tui-font-text-s)}:host._has-arrow ::ng-deep tui-accordion-item>.t-wrapper .t-header{padding-left:.75rem}:host._has-add-button ::ng-deep tui-accordion-item>.t-wrapper .t-header,:host._has-delete-button ::ng-deep tui-accordion-item>.t-wrapper .t-header{padding-right:0}::ng-deep tui-accordion-item>.t-wrapper .t-header_hoverable:hover:not([data-mode]){background:var(--tui-background-neutral-1-hover)!important}::ng-deep tui-accordion-item>.t-wrapper .t-header .t-icon{color:var(--tui-text-action)}:host:hover:not([data-mode]) ::ng-deep tui-accordion-item>.t-wrapper .t-header .t-icon{color:var(--tui-text-action)}::ng-deep tui-accordion-item>.t-wrapper .t-title{white-space:normal}:host._has-arrow ::ng-deep tui-accordion-item>.t-wrapper .t-title{margin-right:0}::ng-deep tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content{padding-inline:0!important;padding-block:1rem}:host._has-arrow ::ng-deep tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content,:host[data-size=s]:host._has-arrow ::ng-deep tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content{padding-left:1rem!important}\n"] }]
|
58
|
+
args: [{ selector: 'sc-accordion', changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-accordion [rounded]=\"false\">\n <tui-accordion-item\n #accordion\n [size]=\"size\"\n [borders]=\"null\"\n [showArrow]=\"showArrow\"\n [open]=\"open\"\n >\n <div class=\"flex grow justify-between\">\n <div class=\"self-center font-bold\">\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"showAddButton || showDeleteButton\"\n class=\"flex\"\n >\n <ng-container *ngIf=\"showDeleteButton\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n [disabled]=\"disabledButtons()\"\n iconStart=\"@tui.trash-2\"\n appearance=\"secondary\"\n (click)=\"$event.stopPropagation(); deleteButtonClick.emit()\"\n ></button>\n </ng-container>\n <ng-container *ngIf=\"showAddButton\">\n <button\n tuiIconButton\n size=\"m\"\n type=\"button\"\n [disabled]=\"disabledButtons()\"\n iconStart=\"@tui.plus\"\n appearance=\"secondary\"\n (click)=\"$event.stopPropagation(); addButtonClick.emit()\"\n ></button>\n </ng-container>\n </div>\n </div>\n <ng-template tuiAccordionItemContent>\n <tui-elastic-container *ngIf=\"content\">\n <ng-container *polymorpheusOutlet=\"content as text\">\n {{ text }}\n </ng-container>\n </tui-elastic-container>\n </ng-template>\n </tui-accordion-item>\n</tui-accordion>\n", styles: ["::ng-deep tui-accordion-item>.t-wrapper .t-header{border-radius:.75rem;flex-direction:row-reverse;min-height:var(--tui-height-m);font:var(--tui-font-text-m);padding:0 .5rem 0 1rem;gap:.75rem;background:var(--tui-background-base-alt)}:host[data-size=s] ::ng-deep tui-accordion-item>.t-wrapper .t-header{padding:0 .5rem 0 1rem;font:var(--tui-font-text-s)}:host._has-arrow ::ng-deep tui-accordion-item>.t-wrapper .t-header{padding-left:.75rem}:host._has-add-button ::ng-deep tui-accordion-item>.t-wrapper .t-header,:host._has-delete-button ::ng-deep tui-accordion-item>.t-wrapper .t-header{padding-right:0}::ng-deep tui-accordion-item>.t-wrapper .t-header_hoverable:hover:not([data-mode]){background:var(--tui-background-neutral-1-hover)!important}::ng-deep tui-accordion-item>.t-wrapper .t-header .t-icon{color:var(--tui-text-action)}:host:hover:not([data-mode]) ::ng-deep tui-accordion-item>.t-wrapper .t-header .t-icon{color:var(--tui-text-action)}::ng-deep tui-accordion-item>.t-wrapper .t-title{white-space:normal}:host._has-arrow ::ng-deep tui-accordion-item>.t-wrapper .t-title{margin-right:0}::ng-deep tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content{padding-inline:0!important;padding-block:1rem}:host._has-arrow ::ng-deep tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content,:host[data-size=s]:host._has-arrow ::ng-deep tui-accordion-item>.t-wrapper tui-expand>.t-wrapper>.t-content{padding-left:1rem!important}\n"] }]
|
55
59
|
}], propDecorators: { showAddButton: [{
|
56
60
|
type: Input
|
57
61
|
}, {
|
@@ -85,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
85
89
|
}], deleteButtonClick: [{
|
86
90
|
type: Output
|
87
91
|
}] } });
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9hY2NvcmRpb24vc2MtYWNjb3JkaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9hY2NvcmRpb24vc2MtYWNjb3JkaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7O0FBRS9FOztHQUVHO0FBT0gsTUFBTSxPQUFPLG9CQUFvQjtJQU5qQztRQU9JOztXQUVHO1FBR0ksa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFNUI7O1dBRUc7UUFHSSxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFFekM7O1dBRUc7UUFHSSxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRWpDOztXQUVHO1FBRUksU0FBSSxHQUFZLEtBQUssQ0FBQztRQUU3Qjs7V0FFRztRQUdJLFNBQUksR0FBYSxHQUFHLENBQUM7UUFFNUI7O1dBRUc7UUFDYSxvQkFBZSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQWN4RDs7V0FFRztRQUVJLG1CQUFjLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFckU7O1dBRUc7UUFFSSxzQkFBaUIsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQVEzRTtJQU5HOztPQUVHO0lBQ0ksS0FBSztRQUNSLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQzsrR0FyRVEsb0JBQW9CO21HQUFwQixvQkFBb0IsaXJDQTJDZiwyQkFBMkIsMkZBTTlCLGdCQUFnQixnRENoRS9CLDgyREFpREE7OzRGRGxDYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0ksY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNOzhCQVF4QyxhQUFhO3NCQUZuQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLHVCQUF1QjtnQkFRN0IsZ0JBQWdCO3NCQUZ0QixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLDBCQUEwQjtnQkFRaEMsU0FBUztzQkFGZixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGtCQUFrQjtnQkFPeEIsSUFBSTtzQkFEVixLQUFLO2dCQVFDLElBQUk7c0JBRlYsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBWVYsT0FBTztzQkFEekIsWUFBWTt1QkFBQywyQkFBMkI7Z0JBT3pCLFNBQVM7c0JBRHhCLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQU9wQixjQUFjO3NCQURwQixNQUFNO2dCQU9BLGlCQUFpQjtzQkFEdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIGlucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHVpU2l6ZVMgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBUdWlBY2NvcmRpb25JdGVtIH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5cbmltcG9ydCB7IFNjQWNjb3JkaW9uQ29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4vc2MtYWNjb3JkaW9uLWNvbnRlbnQuZGlyZWN0aXZlJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIsINC/0L7Qt9Cy0L7Qu9GP0Y7RidC40Lkg0L7RgtC+0LHRgNCw0LbQsNGC0Ywg0Lgg0YHQutGA0YvQstCw0YLRjCDRgdC+0LTQtdGA0LbQuNC80L7QtSDQsiDRgNCw0LfQtNC10LvQsNGFLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NjLWFjY29yZGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLWFjY29yZGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2MtYWNjb3JkaW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjQWNjb3JkaW9uQ29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiDQodC+0YHRgtC+0Y/QvdC40LUg0L7RgtC+0LHRgNCw0LbQtdC90LjRjyDQutC90L7Qv9C60Lgg0LTQvtCx0LDQstC70LXQvdC40Y8uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9oYXMtYWRkLWJ1dHRvbicpXG4gICAgcHVibGljIHNob3dBZGRCdXR0b24gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtGB0YLQvtGP0L3QuNC1INC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LrQvdC+0L/QutC4INGD0LTQsNC70LXQvdC40Y8uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLl9oYXMtZGVsZXRlLWJ1dHRvbicpXG4gICAgcHVibGljIHNob3dEZWxldGVCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqINCh0L7RgdGC0L7Rj9C90LjQtSDQvtGC0L7QsdGA0LDQttC10L3QuNGPINGB0YLRgNC10LvQutC4LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5faGFzLWFycm93JylcbiAgICBwdWJsaWMgc2hvd0Fycm93OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqINCh0L7RgdGC0L7Rj9C90LjQtSDQvtGC0LrRgNGL0YLQuNGPINGB0L7QtNC10YDQttC40LzQvtCz0L4g0LrQvtC80L/QvtC90LXQvdGC0LAuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgb3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICog0KDQsNC30LzQtdGAINGN0LvQtdC80LXQvdGC0L7QsiB7QGxpbmsgVHVpQWNjb3JkaW9uSXRlbUNvbXBvbmVudH0uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1zaXplJylcbiAgICBwdWJsaWMgc2l6ZTogVHVpU2l6ZVMgPSAncyc7XG5cbiAgICAvKipcbiAgICAgKiDQodC+0YHRgtC+0Y/QvdC40LUg0L7RgtC60LvRjtGH0LXQvdC40Y8g0LrQvdC+0L/QvtC6LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBkaXNhYmxlZEJ1dHRvbnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgICAvKipcbiAgICAgKiDQlNC+0YfQtdGA0L3QuNC5INGN0LvQtdC80LXQvdGCINC60L7QvdGC0LXQvdGC0LAuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChTY0FjY29yZGlvbkNvbnRlbnREaXJlY3RpdmUpXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbnRlbnQ/OiBTY0FjY29yZGlvbkNvbnRlbnREaXJlY3RpdmU7XG5cbiAgICAvKipcbiAgICAgKiDQodGB0YvQu9C60LAg0L3QsCDRiNCw0LHQu9C+0L0g0L/RgNC10LLRjNGOLdC/0YDQvtGB0LzQvtGC0YDQsCDQsiDRgNCw0LfQvNC10YLQutC1LlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoVHVpQWNjb3JkaW9uSXRlbSlcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWNjb3JkaW9uPzogVHVpQWNjb3JkaW9uSXRlbTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDINC00L7QsdCw0LLQu9C10L3QuNGPLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBhZGRCdXR0b25DbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMg0YPQtNCw0LvQtdC90LjRjy5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZGVsZXRlQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqINCX0LDQutGA0YvQstCw0LXRgiDQsNC60L7RgNC00LjQvtC9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY2NvcmRpb24/LmNsb3NlKCk7XG4gICAgfVxufVxuIiwiPHR1aS1hY2NvcmRpb24gW3JvdW5kZWRdPVwiZmFsc2VcIj5cbiAgICA8dHVpLWFjY29yZGlvbi1pdGVtXG4gICAgICAgICNhY2NvcmRpb25cbiAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICAgIFtib3JkZXJzXT1cIm51bGxcIlxuICAgICAgICBbc2hvd0Fycm93XT1cInNob3dBcnJvd1wiXG4gICAgICAgIFtvcGVuXT1cIm9wZW5cIlxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ3JvdyBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxmLWNlbnRlciBmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dBZGRCdXR0b24gfHwgc2hvd0RlbGV0ZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0RlbGV0ZUJ1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZEJ1dHRvbnMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uU3RhcnQ9XCJAdHVpLnRyYXNoLTJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBkZWxldGVCdXR0b25DbGljay5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dBZGRCdXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRCdXR0b25zKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvblN0YXJ0PVwiQHR1aS5wbHVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgYWRkQnV0dG9uQ2xpY2suZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgdHVpQWNjb3JkaW9uSXRlbUNvbnRlbnQ+XG4gICAgICAgICAgICA8dHVpLWVsYXN0aWMtY29udGFpbmVyICpuZ0lmPVwiY29udGVudFwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnBvbHltb3JwaGV1c091dGxldD1cImNvbnRlbnQgYXMgdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyB0ZXh0IH19XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3R1aS1lbGFzdGljLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3R1aS1hY2NvcmRpb24taXRlbT5cbjwvdHVpLWFjY29yZGlvbj5cbiJdfQ==
|
@@ -14,6 +14,7 @@ import { HoverImageCarouselComponent } from '../../catalog/hover-image-carousel/
|
|
14
14
|
import { ScInputQuantityComponent } from '../../catalog/input-quantity/sc-input-quantity.component';
|
15
15
|
import { ScPriceWarehouseStockComponent } from '../../catalog/price-warehouse-stock/sc-price-warehouse-stock.component';
|
16
16
|
import { AbstractScPriceCard } from '../../directives/abstract-price-card/abstract-sc-price-card.directive';
|
17
|
+
import { ScFormatDatePipe } from '../../pipes/sc-format-date';
|
17
18
|
import * as i0 from "@angular/core";
|
18
19
|
import * as i1 from "@angular/common";
|
19
20
|
import * as i2 from "@taiga-ui/polymorpheus";
|
@@ -44,7 +45,7 @@ export class ScCartItemComponent extends AbstractScPriceCard {
|
|
44
45
|
this.previewDialogService.open(specificationPreviewReference).subscribe();
|
45
46
|
}
|
46
47
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScCartItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ScCartItemComponent, isStandalone: true, selector: "sc-cart-item", outputs: { clickSettings: "clickSettings" }, providers: [SEARCH_TERM_PROVIDERS], usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"product && cartItem; else skeleton\"\n class=\"relative flex w-full gap-4 rounded-xl p-1 text-body-s hover:bg-tui-background-neutral-1\"\n>\n <sc-hover-image-carousel\n (click)=\"clickCardEvent.emit()\"\n [images]=\"!isMobile ? getCardImagePreviewList(product) : [getCardImagePreview()]\"\n [isShowActions]=\"false\"\n class=\"aspect-square w-24 shrink-0 cursor-pointer self-start\"\n />\n <div class=\"flex w-full flex-col justify-between gap-4 md:flex-row md:items-center md:gap-5\">\n <div class=\"flex grow flex-col gap-1\">\n <div\n [tuiHighlight]=\"(search$ | async) ?? ''\"\n class=\"text-tui-text-02\"\n >\n \u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}\n </div>\n <div class=\"flex flex-col gap-1\">\n <a\n tuiLink\n [attr.href]=\"href ?? null\"\n [tuiHighlight]=\"(search$ | async) ?? ''\"\n (click)=\"$event.preventDefault(); clickCardEvent.emit()\"\n class=\"!text-body-m-bold\"\n >\n {{ product.name }}\n </a>\n <div\n *ngIf=\"product?.pack\"\n class=\"flex items-center gap-1 text-tui-text-02\"\n >\n \u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}\n <tui-icon\n *ngIf=\"product.ignoreMinCountCheck\"\n icon=\"@tui.package\"\n [tuiHint]=\"minCountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"text-body-xl text-tui-text-01 opacity-90\"\n />\n <ng-template #minCountHint>\n \u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0437\u0430\u043A\u0430\u0437 <br />\n \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u043E\u0433\u043E <br />\n \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430\n </ng-template>\n </div>\n\n <div class=\"flex flex-wrap items-center gap-x-4\">\n <sc-cost-with-discount [product]=\"product\" />\n\n <span *ngIf=\"(authStatus$ | async) && product?.costDate\">\n \u0414\u0430\u0442\u0430:\n <a\n tuiLink\n [pseudo]=\"true\"\n (click)=\"clickPriceHistoryEvent.emit()\"\n class=\"text-tui-text-02\"\n >\n {{ product.costDate }}\n </a>\n </span>\n </div>\n </div>\n <a\n tuiLink\n *ngIf=\"cartItem.specificationImgUrl\"\n (click)=\"showSpecification(specificationPreview)\"\n >\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F</a\n >\n <ng-template\n #specificationPreview\n let-preview\n >\n <tui-preview\n [rotatable]=\"false\"\n [zoomable]=\"false\"\n >\n <img\n *polymorpheusOutlet=\"cartItem.specificationImgUrl as src\"\n alt=\"preview\"\n [src]=\"cartItem.specificationImgUrl\"\n />\n <button\n iconStart=\"@tui.x\"\n title=\"Close\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n (click)=\"preview.complete()\"\n ></button>\n </tui-preview>\n </ng-template>\n </div>\n <div class=\"flex shrink-0 flex-col gap-4 sm:flex-row md:w-1/2 lg:w-3/5 xl:w-1/2 xl:gap-8 2xl:w-2/5\">\n <div class=\"flex flex-wrap items-center gap-4 md:flex-col md:items-start lg:flex-row lg:items-center lg:gap-8\">\n <sc-input-quantity\n #inputQuantity\n [tuiAutoFocus]=\"autoFocuseQuantityInput()\"\n *ngIf=\"showQuantityControl\"\n [formControl]=\"quantityControl\"\n size=\"m\"\n [showCross]=\"false\"\n [step]=\"unitsHelper.productMultiplicity(product)\"\n [ignoreStepValidators]=\"product.ignoreMinCountCheck\"\n [showLoader]=\"quantityShowLoader\"\n (clickClearEvent)=\"clickClearEvent.emit(cartItem)\"\n (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n class=\"w-32 shrink-0\"\n />\n <div class=\"flex w-36 items-center gap-1\">\n @if (cartItem.height || cartItem.length || cartItem.width) {\n <button\n tuiIconButton\n iconStart=\"@tui.settings\"\n (click)=\"clickSettings.emit()\"\n size=\"s\"\n appearance=\"secondary\"\n class=\"mr-2 !self-center\"\n ></button>\n <div class=\"flex flex-col gap-x-2 text-xs text-tui-base-07\">\n <p *ngIf=\"cartItem.marker\">\u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430: {{ cartItem.marker }}</p>\n <p *ngIf=\"cartItem.width\">\u0428\u0438\u0440\u0438\u043D\u0430: {{ cartItem.width }} \u043C.</p>\n <ng-container *ngIf=\"cartItem.height; else length\">\n <p>\u0412\u044B\u0441\u043E\u0442\u0430: {{ cartItem.height }} \u043C.</p>\n </ng-container>\n <ng-template #length>\n <p *ngIf=\"cartItem.length\">\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} \u043C.</p>\n </ng-template>\n </div>\n }\n </div>\n </div>\n\n <div class=\"flex flex-col\">\n <p class=\"whitespace-nowrap\">\n \u0421\u0443\u043C\u043C\u0430:\n <strong> {{ cartItem.costRub | tuiFormatNumber: { precision: 2, decimalSeparator: '.', rounding: 'ceil' } | async }} {{ 'RUB' | tuiCurrency }}</strong>\n </p>\n <sc-price-warehouse-stock [product]=\"product\" />\n </div>\n <button\n tuiIconButton\n iconStart=\"@tui.trash\"\n (click)=\"clickClearEvent.emit()\"\n size=\"s\"\n appearance=\"secondary\"\n class=\"!absolute left-1 top-1 lg:!relative lg:left-0 lg:top-0 lg:ml-auto\"\n ></button>\n </div>\n </div>\n</div>\n\n<ng-template #skeleton>\n <div class=\"tui-skeleton flex h-[8.25rem] w-full overflow-hidden rounded-xl\"></div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "ngmodule", type: TuiTextfieldControllerModule }, { kind: "directive", type: i2.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintContext", "tuiHintAppearance", "tuiHint"] }, { kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: TuiHighlight, selector: "[tuiHighlight]", inputs: ["tuiHighlight", "tuiHighlightColor"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "component", type: HoverImageCarouselComponent, selector: "sc-hover-image-carousel", inputs: ["images", "isShowActions"] }, { kind: "component", type: CostWithDiscountComponent, selector: "sc-cost-with-discount", inputs: ["product", "size"] }, { kind: "component", type: ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint", "fromMain"] }, { kind: "component", type: ScInputQuantityComponent, selector: "sc-input-quantity", inputs: ["step", "showLoader", "showCross", "ignoreStepValidators", "appearance", "isDisabled", "size"], outputs: ["clickClearEvent"] }, { kind: "pipe", type: TuiCurrencyPipe, name: "tuiCurrency" }, { kind: "pipe", type: TuiFormatNumberPipe, name: "tuiFormatNumber" }, { kind: "component", type: i5.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable"] }, { kind: "directive", type: i5.TuiPreviewAction, selector: "[tuiPreviewAction]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
48
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ScCartItemComponent, isStandalone: true, selector: "sc-cart-item", outputs: { clickSettings: "clickSettings" }, providers: [SEARCH_TERM_PROVIDERS], usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"product && cartItem; else skeleton\"\n class=\"relative flex w-full gap-4 rounded-xl p-1 text-body-s hover:bg-tui-background-neutral-1\"\n>\n <sc-hover-image-carousel\n (click)=\"clickCardEvent.emit()\"\n [images]=\"!isMobile ? getCardImagePreviewList(product) : [getCardImagePreview()]\"\n [isShowActions]=\"false\"\n class=\"aspect-square w-24 shrink-0 cursor-pointer self-start\"\n />\n <div class=\"flex w-full flex-col justify-between gap-4 md:flex-row md:items-center md:gap-5\">\n <div class=\"flex grow flex-col gap-1\">\n <div\n [tuiHighlight]=\"(search$ | async) ?? ''\"\n class=\"text-tui-text-02\"\n >\n \u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}\n </div>\n <div class=\"flex flex-col gap-1\">\n <a\n tuiLink\n [attr.href]=\"href ?? null\"\n [tuiHighlight]=\"(search$ | async) ?? ''\"\n (click)=\"$event.preventDefault(); clickCardEvent.emit()\"\n class=\"!text-body-m-bold\"\n >\n {{ product.name }}\n </a>\n <div\n *ngIf=\"product?.pack\"\n class=\"flex items-center gap-1 text-tui-text-02\"\n >\n \u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}\n <tui-icon\n *ngIf=\"product.ignoreMinCountCheck\"\n icon=\"@tui.package\"\n [tuiHint]=\"minCountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"text-body-xl text-tui-text-01 opacity-90\"\n />\n <ng-template #minCountHint>\n \u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0437\u0430\u043A\u0430\u0437 <br />\n \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u043E\u0433\u043E <br />\n \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430\n </ng-template>\n </div>\n\n <div class=\"flex flex-wrap items-center gap-x-4\">\n <sc-cost-with-discount [product]=\"product\" />\n\n <span *ngIf=\"(authStatus$ | async) && product?.costDate\">\n \u0414\u0430\u0442\u0430:\n <a\n tuiLink\n [pseudo]=\"true\"\n (click)=\"clickPriceHistoryEvent.emit()\"\n class=\"text-tui-text-02\"\n >\n {{ product.costDate | scFormatDate }}\n </a>\n </span>\n </div>\n </div>\n <a\n tuiLink\n *ngIf=\"cartItem.specificationImgUrl\"\n (click)=\"showSpecification(specificationPreview)\"\n >\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F</a\n >\n <ng-template\n #specificationPreview\n let-preview\n >\n <tui-preview\n [rotatable]=\"false\"\n [zoomable]=\"false\"\n >\n <img\n *polymorpheusOutlet=\"cartItem.specificationImgUrl as src\"\n alt=\"preview\"\n [src]=\"cartItem.specificationImgUrl\"\n />\n <button\n iconStart=\"@tui.x\"\n title=\"Close\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n (click)=\"preview.complete()\"\n ></button>\n </tui-preview>\n </ng-template>\n </div>\n <div class=\"flex shrink-0 flex-col gap-4 sm:flex-row md:w-1/2 lg:w-3/5 xl:w-1/2 xl:gap-8 2xl:w-2/5\">\n <div class=\"flex flex-wrap items-center gap-4 md:flex-col md:items-start lg:flex-row lg:items-center lg:gap-8\">\n <sc-input-quantity\n #inputQuantity\n [tuiAutoFocus]=\"autoFocuseQuantityInput()\"\n *ngIf=\"showQuantityControl\"\n [formControl]=\"quantityControl\"\n size=\"m\"\n [showCross]=\"false\"\n [step]=\"unitsHelper.productMultiplicity(product)\"\n [ignoreStepValidators]=\"product.ignoreMinCountCheck\"\n [showLoader]=\"quantityShowLoader\"\n (clickClearEvent)=\"clickClearEvent.emit(cartItem)\"\n (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n class=\"w-32 shrink-0\"\n />\n <div class=\"flex w-36 items-center gap-1\">\n @if (cartItem.height || cartItem.length || cartItem.width) {\n <button\n tuiIconButton\n iconStart=\"@tui.settings\"\n (click)=\"clickSettings.emit()\"\n size=\"s\"\n appearance=\"secondary\"\n class=\"mr-2 !self-center\"\n ></button>\n <div class=\"flex flex-col gap-x-2 text-xs text-tui-base-07\">\n <p *ngIf=\"cartItem.marker\">\u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430: {{ cartItem.marker }}</p>\n <p *ngIf=\"cartItem.width\">\u0428\u0438\u0440\u0438\u043D\u0430: {{ cartItem.width }} \u043C.</p>\n <ng-container *ngIf=\"cartItem.height; else length\">\n <p>\u0412\u044B\u0441\u043E\u0442\u0430: {{ cartItem.height }} \u043C.</p>\n </ng-container>\n <ng-template #length>\n <p *ngIf=\"cartItem.length\">\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} \u043C.</p>\n </ng-template>\n </div>\n }\n </div>\n </div>\n\n <div class=\"flex flex-col\">\n <p class=\"whitespace-nowrap\">\n \u0421\u0443\u043C\u043C\u0430:\n <strong> {{ cartItem.costRub | tuiFormatNumber: { precision: 2, decimalSeparator: '.', rounding: 'ceil' } | async }} {{ 'RUB' | tuiCurrency }}</strong>\n </p>\n <sc-price-warehouse-stock [product]=\"product\" />\n </div>\n <button\n tuiIconButton\n iconStart=\"@tui.trash\"\n (click)=\"clickClearEvent.emit()\"\n size=\"s\"\n appearance=\"secondary\"\n class=\"!absolute left-1 top-1 lg:!relative lg:left-0 lg:top-0 lg:ml-auto\"\n ></button>\n </div>\n </div>\n</div>\n\n<ng-template #skeleton>\n <div class=\"tui-skeleton flex h-[8.25rem] w-full overflow-hidden rounded-xl\"></div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: RouterModule }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "ngmodule", type: TuiTextfieldControllerModule }, { kind: "directive", type: i2.PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintContext", "tuiHintAppearance", "tuiHint"] }, { kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "directive", type: TuiHighlight, selector: "[tuiHighlight]", inputs: ["tuiHighlight", "tuiHighlightColor"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "component", type: HoverImageCarouselComponent, selector: "sc-hover-image-carousel", inputs: ["images", "isShowActions"] }, { kind: "component", type: CostWithDiscountComponent, selector: "sc-cost-with-discount", inputs: ["product", "size"] }, { kind: "component", type: ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint", "fromMain"] }, { kind: "component", type: ScInputQuantityComponent, selector: "sc-input-quantity", inputs: ["step", "showLoader", "showCross", "ignoreStepValidators", "appearance", "isDisabled", "size"], outputs: ["clickClearEvent"] }, { kind: "pipe", type: TuiCurrencyPipe, name: "tuiCurrency" }, { kind: "pipe", type: TuiFormatNumberPipe, name: "tuiFormatNumber" }, { kind: "component", type: i5.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable"] }, { kind: "directive", type: i5.TuiPreviewAction, selector: "[tuiPreviewAction]" }, { kind: "pipe", type: ScFormatDatePipe, name: "scFormatDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
48
49
|
}
|
49
50
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ScCartItemComponent, decorators: [{
|
50
51
|
type: Component,
|
@@ -67,6 +68,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
67
68
|
TuiCurrencyPipe,
|
68
69
|
TuiFormatNumberPipe,
|
69
70
|
TuiPreview,
|
70
|
-
|
71
|
+
ScFormatDatePipe,
|
72
|
+
], providers: [SEARCH_TERM_PROVIDERS], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"product && cartItem; else skeleton\"\n class=\"relative flex w-full gap-4 rounded-xl p-1 text-body-s hover:bg-tui-background-neutral-1\"\n>\n <sc-hover-image-carousel\n (click)=\"clickCardEvent.emit()\"\n [images]=\"!isMobile ? getCardImagePreviewList(product) : [getCardImagePreview()]\"\n [isShowActions]=\"false\"\n class=\"aspect-square w-24 shrink-0 cursor-pointer self-start\"\n />\n <div class=\"flex w-full flex-col justify-between gap-4 md:flex-row md:items-center md:gap-5\">\n <div class=\"flex grow flex-col gap-1\">\n <div\n [tuiHighlight]=\"(search$ | async) ?? ''\"\n class=\"text-tui-text-02\"\n >\n \u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}\n </div>\n <div class=\"flex flex-col gap-1\">\n <a\n tuiLink\n [attr.href]=\"href ?? null\"\n [tuiHighlight]=\"(search$ | async) ?? ''\"\n (click)=\"$event.preventDefault(); clickCardEvent.emit()\"\n class=\"!text-body-m-bold\"\n >\n {{ product.name }}\n </a>\n <div\n *ngIf=\"product?.pack\"\n class=\"flex items-center gap-1 text-tui-text-02\"\n >\n \u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}\n <tui-icon\n *ngIf=\"product.ignoreMinCountCheck\"\n icon=\"@tui.package\"\n [tuiHint]=\"minCountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"text-body-xl text-tui-text-01 opacity-90\"\n />\n <ng-template #minCountHint>\n \u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0437\u0430\u043A\u0430\u0437 <br />\n \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u043B\u044C\u043D\u043E\u0433\u043E <br />\n \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430\n </ng-template>\n </div>\n\n <div class=\"flex flex-wrap items-center gap-x-4\">\n <sc-cost-with-discount [product]=\"product\" />\n\n <span *ngIf=\"(authStatus$ | async) && product?.costDate\">\n \u0414\u0430\u0442\u0430:\n <a\n tuiLink\n [pseudo]=\"true\"\n (click)=\"clickPriceHistoryEvent.emit()\"\n class=\"text-tui-text-02\"\n >\n {{ product.costDate | scFormatDate }}\n </a>\n </span>\n </div>\n </div>\n <a\n tuiLink\n *ngIf=\"cartItem.specificationImgUrl\"\n (click)=\"showSpecification(specificationPreview)\"\n >\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F</a\n >\n <ng-template\n #specificationPreview\n let-preview\n >\n <tui-preview\n [rotatable]=\"false\"\n [zoomable]=\"false\"\n >\n <img\n *polymorpheusOutlet=\"cartItem.specificationImgUrl as src\"\n alt=\"preview\"\n [src]=\"cartItem.specificationImgUrl\"\n />\n <button\n iconStart=\"@tui.x\"\n title=\"Close\"\n tuiIconButton\n tuiPreviewAction\n type=\"button\"\n (click)=\"preview.complete()\"\n ></button>\n </tui-preview>\n </ng-template>\n </div>\n <div class=\"flex shrink-0 flex-col gap-4 sm:flex-row md:w-1/2 lg:w-3/5 xl:w-1/2 xl:gap-8 2xl:w-2/5\">\n <div class=\"flex flex-wrap items-center gap-4 md:flex-col md:items-start lg:flex-row lg:items-center lg:gap-8\">\n <sc-input-quantity\n #inputQuantity\n [tuiAutoFocus]=\"autoFocuseQuantityInput()\"\n *ngIf=\"showQuantityControl\"\n [formControl]=\"quantityControl\"\n size=\"m\"\n [showCross]=\"false\"\n [step]=\"unitsHelper.productMultiplicity(product)\"\n [ignoreStepValidators]=\"product.ignoreMinCountCheck\"\n [showLoader]=\"quantityShowLoader\"\n (clickClearEvent)=\"clickClearEvent.emit(cartItem)\"\n (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n class=\"w-32 shrink-0\"\n />\n <div class=\"flex w-36 items-center gap-1\">\n @if (cartItem.height || cartItem.length || cartItem.width) {\n <button\n tuiIconButton\n iconStart=\"@tui.settings\"\n (click)=\"clickSettings.emit()\"\n size=\"s\"\n appearance=\"secondary\"\n class=\"mr-2 !self-center\"\n ></button>\n <div class=\"flex flex-col gap-x-2 text-xs text-tui-base-07\">\n <p *ngIf=\"cartItem.marker\">\u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430: {{ cartItem.marker }}</p>\n <p *ngIf=\"cartItem.width\">\u0428\u0438\u0440\u0438\u043D\u0430: {{ cartItem.width }} \u043C.</p>\n <ng-container *ngIf=\"cartItem.height; else length\">\n <p>\u0412\u044B\u0441\u043E\u0442\u0430: {{ cartItem.height }} \u043C.</p>\n </ng-container>\n <ng-template #length>\n <p *ngIf=\"cartItem.length\">\u0414\u043B\u0438\u043D\u0430: {{ cartItem.length }} \u043C.</p>\n </ng-template>\n </div>\n }\n </div>\n </div>\n\n <div class=\"flex flex-col\">\n <p class=\"whitespace-nowrap\">\n \u0421\u0443\u043C\u043C\u0430:\n <strong> {{ cartItem.costRub | tuiFormatNumber: { precision: 2, decimalSeparator: '.', rounding: 'ceil' } | async }} {{ 'RUB' | tuiCurrency }}</strong>\n </p>\n <sc-price-warehouse-stock [product]=\"product\" />\n </div>\n <button\n tuiIconButton\n iconStart=\"@tui.trash\"\n (click)=\"clickClearEvent.emit()\"\n size=\"s\"\n appearance=\"secondary\"\n class=\"!absolute left-1 top-1 lg:!relative lg:left-0 lg:top-0 lg:ml-auto\"\n ></button>\n </div>\n </div>\n</div>\n\n<ng-template #skeleton>\n <div class=\"tui-skeleton flex h-[8.25rem] w-full overflow-hidden rounded-xl\"></div>\n</ng-template>\n" }]
|
71
73
|
}] });
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2FydC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jYXJ0L2NhcnQtaXRlbS9zYy1jYXJ0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhcnQvY2FydC1pdGVtL3NjLWNhcnQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5Q0FBeUM7QUFFekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBaUMsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFvQixtQkFBbUIsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzFHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDOzs7Ozs7O0FBRTVHOztHQUVHO0FBNEJILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxtQkFBbUI7SUEzQjVEOztRQTRCSTs7V0FFRztRQUNhLGtCQUFhLEdBQTJCLE1BQU0sRUFBRSxDQUFDO1FBRWpFOztXQUVHO1FBQ2MseUJBQW9CLEdBQTRCLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0tBVXBHO0lBUkc7Ozs7T0FJRztJQUNPLGlCQUFpQixDQUFDLDZCQUE0RDtRQUNwRixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDOUUsQ0FBQzsrR0FsQlEsbUJBQW1CO21HQUFuQixtQkFBbUIsd0dBSGpCLENBQUMscUJBQXFCLENBQUMsaURDOUN0QyxtNU9BNEpBLDJDRGpJUSxZQUFZLHVMQUNaLFlBQVksK0JBQ1osU0FBUyxvSUFDVCxPQUFPLG9GQUNQLDRCQUE0QixpTEFDNUIsV0FBVyxzSUFDWCxtQkFBbUIsMFhBRW5CLE9BQU8sNEZBQ1AsWUFBWSwwR0FDWixZQUFZLHFGQUNaLDJCQUEyQix5R0FDM0IseUJBQXlCLCtGQUN6Qiw4QkFBOEIsb0lBQzlCLHdCQUF3QixnTUFDeEIsZUFBZSwrQ0FDZixtQkFBbUI7OzRGQU1kLG1CQUFtQjtrQkEzQi9CLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGNBQWMsV0FFZjt3QkFDTCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osU0FBUzt3QkFDVCxPQUFPO3dCQUNQLDRCQUE0Qjt3QkFDNUIsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osMkJBQTJCO3dCQUMzQix5QkFBeUI7d0JBQ3pCLDhCQUE4Qjt3QkFDOUIsd0JBQXdCO3dCQUN4QixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsVUFBVTtxQkFDYixhQUNVLENBQUMscUJBQXFCLENBQUMsbUJBQ2pCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlcnNjb3JlLWRhbmdsZSAqL1xuXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBvdXRwdXQsIE91dHB1dEVtaXR0ZXJSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTRUFSQ0hfVEVSTV9QUk9WSURFUlMgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFR1aUN1cnJlbmN5UGlwZSB9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZSc7XG5pbXBvcnQgeyBUdWlBdXRvRm9jdXMgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFR1aUJ1dHRvbiwgVHVpRGlhbG9nQ29udGV4dCwgVHVpRm9ybWF0TnVtYmVyUGlwZSwgVHVpSGludCwgVHVpSWNvbiwgVHVpTGluayB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IFR1aUhpZ2hsaWdodCwgVHVpUHJldmlldywgVHVpUHJldmlld0RpYWxvZ1NlcnZpY2UgfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7IFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5JztcblxuaW1wb3J0IHsgQ29zdFdpdGhEaXNjb3VudENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NhdGFsb2cvY29zdC13aXRoLWRpc2NvdW50L2Nvc3Qtd2l0aC1kaXNjb3VudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSG92ZXJJbWFnZUNhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2F0YWxvZy9ob3Zlci1pbWFnZS1jYXJvdXNlbC9ob3Zlci1pbWFnZS1jYXJvdXNlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NJbnB1dFF1YW50aXR5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2F0YWxvZy9pbnB1dC1xdWFudGl0eS9zYy1pbnB1dC1xdWFudGl0eS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NQcmljZVdhcmVob3VzZVN0b2NrQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2F0YWxvZy9wcmljZS13YXJlaG91c2Utc3RvY2svc2MtcHJpY2Utd2FyZWhvdXNlLXN0b2NrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdFNjUHJpY2VDYXJkIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9hYnN0cmFjdC1wcmljZS1jYXJkL2Fic3RyYWN0LXNjLXByaWNlLWNhcmQuZGlyZWN0aXZlJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0LrQsNGA0YLQvtGH0LrQuCDRjdC70LXQvNC10L3RgtCwINC60L7RgNC30LjQvdGLLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnc2MtY2FydC1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtY2FydC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBUdWlCdXR0b24sXG4gICAgICAgIFR1aUljb24sXG4gICAgICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBUdWlIaW50LFxuICAgICAgICBUdWlMaW5rLFxuICAgICAgICBUdWlIaWdobGlnaHQsXG4gICAgICAgIFR1aUF1dG9Gb2N1cyxcbiAgICAgICAgSG92ZXJJbWFnZUNhcm91c2VsQ29tcG9uZW50LFxuICAgICAgICBDb3N0V2l0aERpc2NvdW50Q29tcG9uZW50LFxuICAgICAgICBTY1ByaWNlV2FyZWhvdXNlU3RvY2tDb21wb25lbnQsXG4gICAgICAgIFNjSW5wdXRRdWFudGl0eUNvbXBvbmVudCxcbiAgICAgICAgVHVpQ3VycmVuY3lQaXBlLFxuICAgICAgICBUdWlGb3JtYXROdW1iZXJQaXBlLFxuICAgICAgICBUdWlQcmV2aWV3LFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbU0VBUkNIX1RFUk1fUFJPVklERVJTXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NDYXJ0SXRlbUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0U2NQcmljZUNhcmQge1xuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC90LDQttCw0YLQuNGPINC90LAg0LrQvdC+0L/QutGDINGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40Y8g0LrQvtC90YTQuNCz0YPRgNCw0YbQuNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBjbGlja1NldHRpbmdzOiBPdXRwdXRFbWl0dGVyUmVmPHZvaWQ+ID0gb3V0cHV0KCk7XG5cbiAgICAvKipcbiAgICAgKiDQodC10YDQstC40YEg0LTQuNCw0LvQvtCz0L7QstC+0LPQviDQvtC60L3QsCDQv9GA0LXQtNCy0LDRgNC40YLQtdC70YzQvdC+0LPQviDQv9GA0L7RgdC80L7RgtGA0LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmV2aWV3RGlhbG9nU2VydmljZTogVHVpUHJldmlld0RpYWxvZ1NlcnZpY2UgPSBpbmplY3QoVHVpUHJldmlld0RpYWxvZ1NlcnZpY2UpO1xuXG4gICAgLyoqXG4gICAgICog0J7RgtC+0LHRgNCw0LbQsNC10YIg0YHQv9C10YbQuNGE0LjQutCw0YbQuNGOLlxuICAgICAqXG4gICAgICogQHBhcmFtIHNwZWNpZmljYXRpb25QcmV2aWV3UmVmZXJlbmNlINCo0LDQsdC70L7QvSDRgdC/0LXRhtC40YTQuNC60LDRhtC40LguXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHNob3dTcGVjaWZpY2F0aW9uKHNwZWNpZmljYXRpb25QcmV2aWV3UmVmZXJlbmNlOiBUZW1wbGF0ZVJlZjxUdWlEaWFsb2dDb250ZXh0Pik6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZpZXdEaWFsb2dTZXJ2aWNlLm9wZW4oc3BlY2lmaWNhdGlvblByZXZpZXdSZWZlcmVuY2UpLnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICAqbmdJZj1cInByb2R1Y3QgJiYgY2FydEl0ZW07IGVsc2Ugc2tlbGV0b25cIlxuICAgIGNsYXNzPVwicmVsYXRpdmUgZmxleCB3LWZ1bGwgZ2FwLTQgcm91bmRlZC14bCBwLTEgdGV4dC1ib2R5LXMgaG92ZXI6YmctdHVpLWJhY2tncm91bmQtbmV1dHJhbC0xXCJcbj5cbiAgICA8c2MtaG92ZXItaW1hZ2UtY2Fyb3VzZWxcbiAgICAgICAgKGNsaWNrKT1cImNsaWNrQ2FyZEV2ZW50LmVtaXQoKVwiXG4gICAgICAgIFtpbWFnZXNdPVwiIWlzTW9iaWxlID8gZ2V0Q2FyZEltYWdlUHJldmlld0xpc3QocHJvZHVjdCkgOiBbZ2V0Q2FyZEltYWdlUHJldmlldygpXVwiXG4gICAgICAgIFtpc1Nob3dBY3Rpb25zXT1cImZhbHNlXCJcbiAgICAgICAgY2xhc3M9XCJhc3BlY3Qtc3F1YXJlIHctMjQgc2hyaW5rLTAgY3Vyc29yLXBvaW50ZXIgc2VsZi1zdGFydFwiXG4gICAgLz5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwgZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIGdhcC00IG1kOmZsZXgtcm93IG1kOml0ZW1zLWNlbnRlciBtZDpnYXAtNVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBncm93IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgW3R1aUhpZ2hsaWdodF09XCIoc2VhcmNoJCB8IGFzeW5jKSA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQkNGA0YLQuNC60YPQuzoge3sgcHJvZHVjdC5jb2RlIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgICAgICBbYXR0ci5ocmVmXT1cImhyZWYgPz8gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFt0dWlIaWdobGlnaHRdPVwiKHNlYXJjaCQgfCBhc3luYykgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IGNsaWNrQ2FyZEV2ZW50LmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIXRleHQtYm9keS1tLWJvbGRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgcHJvZHVjdC5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9kdWN0Py5wYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSB0ZXh0LXR1aS10ZXh0LTAyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgINCd0L7RgNC80LAg0YPQv9Cw0LrQvtCy0LrQuDoge3sgcHJvZHVjdC5wYWNrIH19XG4gICAgICAgICAgICAgICAgICAgIDx0dWktaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9kdWN0Lmlnbm9yZU1pbkNvdW50Q2hlY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cIkB0dWkucGFja2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdHVpSGludF09XCJtaW5Db3VudEhpbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3R1aUhpbnRTaG93RGVsYXldPVwiMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aUhpbnREaXJlY3Rpb249XCJ0b3BcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvZHkteGwgdGV4dC10dWktdGV4dC0wMSBvcGFjaXR5LTkwXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNtaW5Db3VudEhpbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICDQlNC+0YHRgtGD0L/QtdC9INC30LDQutCw0LcgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICDQv9GA0L7QuNC30LLQvtC70YzQvdC+0LPQviA8YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgINC60L7Qu9C40YfQtdGB0YLQstCwXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGdhcC14LTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNjLWNvc3Qtd2l0aC1kaXNjb3VudCBbcHJvZHVjdF09XCJwcm9kdWN0XCIgLz5cblxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIihhdXRoU3RhdHVzJCB8IGFzeW5jKSAmJiBwcm9kdWN0Py5jb3N0RGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAg0JTQsNGC0LA6XG4gICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHNldWRvXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja1ByaWNlSGlzdG9yeUV2ZW50LmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBwcm9kdWN0LmNvc3REYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJjYXJ0SXRlbS5zcGVjaWZpY2F0aW9uSW1nVXJsXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd1NwZWNpZmljYXRpb24oc3BlY2lmaWNhdGlvblByZXZpZXcpXCJcbiAgICAgICAgICAgICAgICA+0KHQv9C10YbQuNGE0LjQutCw0YbQuNGPPC9hXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAjc3BlY2lmaWNhdGlvblByZXZpZXdcbiAgICAgICAgICAgICAgICBsZXQtcHJldmlld1xuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0dWktcHJldmlld1xuICAgICAgICAgICAgICAgICAgICBbcm90YXRhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW3pvb21hYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjYXJ0SXRlbS5zcGVjaWZpY2F0aW9uSW1nVXJsIGFzIHNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJwcmV2aWV3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiY2FydEl0ZW0uc3BlY2lmaWNhdGlvbkltZ1VybFwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkueFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIkNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aVByZXZpZXdBY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXZpZXcuY29tcGxldGUoKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3R1aS1wcmV2aWV3PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHNocmluay0wIGZsZXgtY29sIGdhcC00IHNtOmZsZXgtcm93IG1kOnctMS8yIGxnOnctMy81IHhsOnctMS8yIHhsOmdhcC04IDJ4bDp3LTIvNVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBnYXAtNCBtZDpmbGV4LWNvbCBtZDppdGVtcy1zdGFydCBsZzpmbGV4LXJvdyBsZzppdGVtcy1jZW50ZXIgbGc6Z2FwLThcIj5cbiAgICAgICAgICAgICAgICA8c2MtaW5wdXQtcXVhbnRpdHlcbiAgICAgICAgICAgICAgICAgICAgI2lucHV0UXVhbnRpdHlcbiAgICAgICAgICAgICAgICAgICAgW3R1aUF1dG9Gb2N1c109XCJhdXRvRm9jdXNlUXVhbnRpdHlJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93UXVhbnRpdHlDb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInF1YW50aXR5Q29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dDcm9zc109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdGVwXT1cInVuaXRzSGVscGVyLnByb2R1Y3RNdWx0aXBsaWNpdHkocHJvZHVjdClcIlxuICAgICAgICAgICAgICAgICAgICBbaWdub3JlU3RlcFZhbGlkYXRvcnNdPVwicHJvZHVjdC5pZ25vcmVNaW5Db3VudENoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dMb2FkZXJdPVwicXVhbnRpdHlTaG93TG9hZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrQ2xlYXJFdmVudCk9XCJjbGlja0NsZWFyRXZlbnQuZW1pdChjYXJ0SXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJpbnB1dFF1YW50aXR5Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LmJsdXIoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0zMiBzaHJpbmstMFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LTM2IGl0ZW1zLWNlbnRlciBnYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGNhcnRJdGVtLmhlaWdodCB8fCBjYXJ0SXRlbS5sZW5ndGggfHwgY2FydEl0ZW0ud2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblN0YXJ0PVwiQHR1aS5zZXR0aW5nc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrU2V0dGluZ3MuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtci0yICFzZWxmLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAteC0yIHRleHQteHMgdGV4dC10dWktYmFzZS0wN1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiY2FydEl0ZW0ubWFya2VyXCI+0JzQsNGA0LrQuNGA0L7QstC60LA6IHt7IGNhcnRJdGVtLm1hcmtlciB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImNhcnRJdGVtLndpZHRoXCI+0KjQuNGA0LjQvdCwOiB7eyBjYXJ0SXRlbS53aWR0aCB9fSDQvC48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcnRJdGVtLmhlaWdodDsgZWxzZSBsZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+0JLRi9GB0L7RgtCwOiB7eyBjYXJ0SXRlbS5oZWlnaHQgfX0g0LwuPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbGVuZ3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImNhcnRJdGVtLmxlbmd0aFwiPtCU0LvQuNC90LA6IHt7IGNhcnRJdGVtLmxlbmd0aCB9fSDQvC48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIndoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgINCh0YPQvNC80LA6XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+IHt7IGNhcnRJdGVtLmNvc3RSdWIgfCB0dWlGb3JtYXROdW1iZXI6IHsgcHJlY2lzaW9uOiAyLCBkZWNpbWFsU2VwYXJhdG9yOiAnLicsIHJvdW5kaW5nOiAnY2VpbCcgfSB8IGFzeW5jIH19IHt7ICdSVUInIHwgdHVpQ3VycmVuY3kgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPHNjLXByaWNlLXdhcmVob3VzZS1zdG9jayBbcHJvZHVjdF09XCJwcm9kdWN0XCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICBpY29uU3RhcnQ9XCJAdHVpLnRyYXNoXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tDbGVhckV2ZW50LmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiIWFic29sdXRlIGxlZnQtMSB0b3AtMSBsZzohcmVsYXRpdmUgbGc6bGVmdC0wIGxnOnRvcC0wIGxnOm1sLWF1dG9cIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3NrZWxldG9uPlxuICAgIDxkaXYgY2xhc3M9XCJ0dWktc2tlbGV0b24gZmxleCBoLVs4LjI1cmVtXSB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQteGxcIj48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2FydC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jYXJ0L2NhcnQtaXRlbS9zYy1jYXJ0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhcnQvY2FydC1pdGVtL3NjLWNhcnQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5Q0FBeUM7QUFFekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBaUMsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFvQixtQkFBbUIsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQzFHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ2hILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBRTlEOztHQUVHO0FBNkJILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxtQkFBbUI7SUE1QjVEOztRQTZCSTs7V0FFRztRQUNhLGtCQUFhLEdBQTJCLE1BQU0sRUFBRSxDQUFDO1FBRWpFOztXQUVHO1FBQ2MseUJBQW9CLEdBQTRCLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0tBVXBHO0lBUkc7Ozs7T0FJRztJQUNPLGlCQUFpQixDQUFDLDZCQUE0RDtRQUNwRixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDOUUsQ0FBQzsrR0FsQlEsbUJBQW1CO21HQUFuQixtQkFBbUIsd0dBSGpCLENBQUMscUJBQXFCLENBQUMsaURDaER0QyxrNk9BNEpBLDJDRGhJUSxZQUFZLHVMQUNaLFlBQVksK0JBQ1osU0FBUyxvSUFDVCxPQUFPLG9GQUNQLDRCQUE0QixpTEFDNUIsV0FBVyxzSUFDWCxtQkFBbUIsMFhBRW5CLE9BQU8sNEZBQ1AsWUFBWSwwR0FDWixZQUFZLHFGQUNaLDJCQUEyQix5R0FDM0IseUJBQXlCLCtGQUN6Qiw4QkFBOEIsb0lBQzlCLHdCQUF3QixnTUFDeEIsZUFBZSwrQ0FDZixtQkFBbUIsc1BBRW5CLGdCQUFnQjs7NEZBS1gsbUJBQW1CO2tCQTVCL0IsU0FBUztpQ0FDTSxJQUFJLFlBQ04sY0FBYyxXQUVmO3dCQUNMLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixTQUFTO3dCQUNULE9BQU87d0JBQ1AsNEJBQTRCO3dCQUM1QixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLFlBQVk7d0JBQ1osWUFBWTt3QkFDWiwyQkFBMkI7d0JBQzNCLHlCQUF5Qjt3QkFDekIsOEJBQThCO3dCQUM5Qix3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixVQUFVO3dCQUNWLGdCQUFnQjtxQkFDbkIsYUFDVSxDQUFDLHFCQUFxQixDQUFDLG1CQUNqQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tdW5kZXJzY29yZS1kYW5nbGUgKi9cblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgb3V0cHV0LCBPdXRwdXRFbWl0dGVyUmVmLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU0VBUkNIX1RFUk1fUFJPVklERVJTIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBUdWlDdXJyZW5jeVBpcGUgfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tY29tbWVyY2UnO1xuaW1wb3J0IHsgVHVpQXV0b0ZvY3VzIH0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQgeyBUdWlCdXR0b24sIFR1aURpYWxvZ0NvbnRleHQsIFR1aUZvcm1hdE51bWJlclBpcGUsIFR1aUhpbnQsIFR1aUljb24sIFR1aUxpbmsgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBUdWlIaWdobGlnaHQsIFR1aVByZXZpZXcsIFR1aVByZXZpZXdEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5pbXBvcnQgeyBUdWlUZXh0ZmllbGRDb250cm9sbGVyTW9kdWxlIH0gZnJvbSAnQHRhaWdhLXVpL2xlZ2FjeSc7XG5cbmltcG9ydCB7IENvc3RXaXRoRGlzY291bnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jYXRhbG9nL2Nvc3Qtd2l0aC1kaXNjb3VudC9jb3N0LXdpdGgtZGlzY291bnQuY29tcG9uZW50JztcbmltcG9ydCB7IEhvdmVySW1hZ2VDYXJvdXNlbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NhdGFsb2cvaG92ZXItaW1hZ2UtY2Fyb3VzZWwvaG92ZXItaW1hZ2UtY2Fyb3VzZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNjSW5wdXRRdWFudGl0eUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NhdGFsb2cvaW5wdXQtcXVhbnRpdHkvc2MtaW5wdXQtcXVhbnRpdHkuY29tcG9uZW50JztcbmltcG9ydCB7IFNjUHJpY2VXYXJlaG91c2VTdG9ja0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NhdGFsb2cvcHJpY2Utd2FyZWhvdXNlLXN0b2NrL3NjLXByaWNlLXdhcmVob3VzZS1zdG9jay5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWJzdHJhY3RTY1ByaWNlQ2FyZCB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYWJzdHJhY3QtcHJpY2UtY2FyZC9hYnN0cmFjdC1zYy1wcmljZS1jYXJkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTY0Zvcm1hdERhdGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvc2MtZm9ybWF0LWRhdGUnO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQutCw0YDRgtC+0YfQutC4INGN0LvQtdC80LXQvdGC0LAg0LrQvtGA0LfQuNC90YsuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzYy1jYXJ0LWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1jYXJ0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgICAgIFR1aUJ1dHRvbixcbiAgICAgICAgVHVpSWNvbixcbiAgICAgICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFR1aUhpbnQsXG4gICAgICAgIFR1aUxpbmssXG4gICAgICAgIFR1aUhpZ2hsaWdodCxcbiAgICAgICAgVHVpQXV0b0ZvY3VzLFxuICAgICAgICBIb3ZlckltYWdlQ2Fyb3VzZWxDb21wb25lbnQsXG4gICAgICAgIENvc3RXaXRoRGlzY291bnRDb21wb25lbnQsXG4gICAgICAgIFNjUHJpY2VXYXJlaG91c2VTdG9ja0NvbXBvbmVudCxcbiAgICAgICAgU2NJbnB1dFF1YW50aXR5Q29tcG9uZW50LFxuICAgICAgICBUdWlDdXJyZW5jeVBpcGUsXG4gICAgICAgIFR1aUZvcm1hdE51bWJlclBpcGUsXG4gICAgICAgIFR1aVByZXZpZXcsXG4gICAgICAgIFNjRm9ybWF0RGF0ZVBpcGUsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtTRUFSQ0hfVEVSTV9QUk9WSURFUlNdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY0NhcnRJdGVtQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RTY1ByaWNlQ2FyZCB7XG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMg0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDQutC+0L3RhNC40LPRg9GA0LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGNsaWNrU2V0dGluZ3M6IE91dHB1dEVtaXR0ZXJSZWY8dm9pZD4gPSBvdXRwdXQoKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC40LDQu9C+0LPQvtCy0L7Qs9C+INC+0LrQvdCwINC/0YDQtdC00LLQsNGA0LjRgtC10LvRjNC90L7Qs9C+INC/0YDQvtGB0LzQvtGC0YDQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHByZXZpZXdEaWFsb2dTZXJ2aWNlOiBUdWlQcmV2aWV3RGlhbG9nU2VydmljZSA9IGluamVjdChUdWlQcmV2aWV3RGlhbG9nU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQntGC0L7QsdGA0LDQttCw0LXRgiDRgdC/0LXRhtC40YTQuNC60LDRhtC40Y4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3BlY2lmaWNhdGlvblByZXZpZXdSZWZlcmVuY2Ug0KjQsNCx0LvQvtC9INGB0L/QtdGG0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2hvd1NwZWNpZmljYXRpb24oc3BlY2lmaWNhdGlvblByZXZpZXdSZWZlcmVuY2U6IFRlbXBsYXRlUmVmPFR1aURpYWxvZ0NvbnRleHQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmlld0RpYWxvZ1NlcnZpY2Uub3BlbihzcGVjaWZpY2F0aW9uUHJldmlld1JlZmVyZW5jZSkuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgICpuZ0lmPVwicHJvZHVjdCAmJiBjYXJ0SXRlbTsgZWxzZSBza2VsZXRvblwiXG4gICAgY2xhc3M9XCJyZWxhdGl2ZSBmbGV4IHctZnVsbCBnYXAtNCByb3VuZGVkLXhsIHAtMSB0ZXh0LWJvZHktcyBob3ZlcjpiZy10dWktYmFja2dyb3VuZC1uZXV0cmFsLTFcIlxuPlxuICAgIDxzYy1ob3Zlci1pbWFnZS1jYXJvdXNlbFxuICAgICAgICAoY2xpY2spPVwiY2xpY2tDYXJkRXZlbnQuZW1pdCgpXCJcbiAgICAgICAgW2ltYWdlc109XCIhaXNNb2JpbGUgPyBnZXRDYXJkSW1hZ2VQcmV2aWV3TGlzdChwcm9kdWN0KSA6IFtnZXRDYXJkSW1hZ2VQcmV2aWV3KCldXCJcbiAgICAgICAgW2lzU2hvd0FjdGlvbnNdPVwiZmFsc2VcIlxuICAgICAgICBjbGFzcz1cImFzcGVjdC1zcXVhcmUgdy0yNCBzaHJpbmstMCBjdXJzb3ItcG9pbnRlciBzZWxmLXN0YXJ0XCJcbiAgICAvPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBmbGV4LWNvbCBqdXN0aWZ5LWJldHdlZW4gZ2FwLTQgbWQ6ZmxleC1yb3cgbWQ6aXRlbXMtY2VudGVyIG1kOmdhcC01XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdyb3cgZmxleC1jb2wgZ2FwLTFcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBbdHVpSGlnaGxpZ2h0XT1cIihzZWFyY2gkIHwgYXN5bmMpID8/ICcnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtdHVpLXRleHQtMDJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgINCQ0YDRgtC40LrRg9C7OiB7eyBwcm9kdWN0LmNvZGUgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiaHJlZiA/PyBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW3R1aUhpZ2hsaWdodF09XCIoc2VhcmNoJCB8IGFzeW5jKSA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgY2xpY2tDYXJkRXZlbnQuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIhdGV4dC1ib2R5LW0tYm9sZFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBwcm9kdWN0Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2R1Y3Q/LnBhY2tcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xIHRleHQtdHVpLXRleHQtMDJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAg0J3QvtGA0LzQsCDRg9C/0LDQutC+0LLQutC4OiB7eyBwcm9kdWN0LnBhY2sgfX1cbiAgICAgICAgICAgICAgICAgICAgPHR1aS1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2R1Y3QuaWdub3JlTWluQ291bnRDaGVja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiQHR1aS5wYWNrYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0dWlIaW50XT1cIm1pbkNvdW50SGludFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdHVpSGludFNob3dEZWxheV09XCIxMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHVpSGludERpcmVjdGlvbj1cInRvcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtYm9keS14bCB0ZXh0LXR1aS10ZXh0LTAxIG9wYWNpdHktOTBcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI21pbkNvdW50SGludD5cbiAgICAgICAgICAgICAgICAgICAgICAgINCU0L7RgdGC0YPQv9C10L0g0LfQsNC60LDQtyA8YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgINC/0YDQvtC40LfQstC+0LvRjNC90L7Qs9C+IDxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAg0LrQvtC70LjRh9C10YHRgtCy0LBcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZ2FwLXgtNFwiPlxuICAgICAgICAgICAgICAgICAgICA8c2MtY29zdC13aXRoLWRpc2NvdW50IFtwcm9kdWN0XT1cInByb2R1Y3RcIiAvPlxuXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiKGF1dGhTdGF0dXMkIHwgYXN5bmMpICYmIHByb2R1Y3Q/LmNvc3REYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICDQlNCw0YLQsDpcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwc2V1ZG9dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrUHJpY2VIaXN0b3J5RXZlbnQuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtdHVpLXRleHQtMDJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByb2R1Y3QuY29zdERhdGUgfCBzY0Zvcm1hdERhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgICAgICAqbmdJZj1cImNhcnRJdGVtLnNwZWNpZmljYXRpb25JbWdVcmxcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93U3BlY2lmaWNhdGlvbihzcGVjaWZpY2F0aW9uUHJldmlldylcIlxuICAgICAgICAgICAgICAgID7QodC/0LXRhtC40YTQuNC60LDRhtC40Y88L2FcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICNzcGVjaWZpY2F0aW9uUHJldmlld1xuICAgICAgICAgICAgICAgIGxldC1wcmV2aWV3XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHR1aS1wcmV2aWV3XG4gICAgICAgICAgICAgICAgICAgIFtyb3RhdGFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICBbem9vbWFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImNhcnRJdGVtLnNwZWNpZmljYXRpb25JbWdVcmwgYXMgc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cInByZXZpZXdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJjYXJ0SXRlbS5zcGVjaWZpY2F0aW9uSW1nVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvblN0YXJ0PVwiQHR1aS54XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiQ2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHVpUHJldmlld0FjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJldmlldy5jb21wbGV0ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvdHVpLXByZXZpZXc+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggc2hyaW5rLTAgZmxleC1jb2wgZ2FwLTQgc206ZmxleC1yb3cgbWQ6dy0xLzIgbGc6dy0zLzUgeGw6dy0xLzIgeGw6Z2FwLTggMnhsOnctMi81XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgaXRlbXMtY2VudGVyIGdhcC00IG1kOmZsZXgtY29sIG1kOml0ZW1zLXN0YXJ0IGxnOmZsZXgtcm93IGxnOml0ZW1zLWNlbnRlciBsZzpnYXAtOFwiPlxuICAgICAgICAgICAgICAgIDxzYy1pbnB1dC1xdWFudGl0eVxuICAgICAgICAgICAgICAgICAgICAjaW5wdXRRdWFudGl0eVxuICAgICAgICAgICAgICAgICAgICBbdHVpQXV0b0ZvY3VzXT1cImF1dG9Gb2N1c2VRdWFudGl0eUlucHV0KClcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dRdWFudGl0eUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicXVhbnRpdHlDb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd0Nyb3NzXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0ZXBdPVwidW5pdHNIZWxwZXIucHJvZHVjdE11bHRpcGxpY2l0eShwcm9kdWN0KVwiXG4gICAgICAgICAgICAgICAgICAgIFtpZ25vcmVTdGVwVmFsaWRhdG9yc109XCJwcm9kdWN0Lmlnbm9yZU1pbkNvdW50Q2hlY2tcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd0xvYWRlcl09XCJxdWFudGl0eVNob3dMb2FkZXJcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2tDbGVhckV2ZW50KT1cImNsaWNrQ2xlYXJFdmVudC5lbWl0KGNhcnRJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImlucHV0UXVhbnRpdHkubmF0aXZlRm9jdXNhYmxlRWxlbWVudD8uYmx1cigpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTMyIHNocmluay0wXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctMzYgaXRlbXMtY2VudGVyIGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoY2FydEl0ZW0uaGVpZ2h0IHx8IGNhcnRJdGVtLmxlbmd0aCB8fCBjYXJ0SXRlbS53aWR0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU3RhcnQ9XCJAdHVpLnNldHRpbmdzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tTZXR0aW5ncy5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1yLTIgIXNlbGYtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC14LTIgdGV4dC14cyB0ZXh0LXR1aS1iYXNlLTA3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJjYXJ0SXRlbS5tYXJrZXJcIj7QnNCw0YDQutC40YDQvtCy0LrQsDoge3sgY2FydEl0ZW0ubWFya2VyIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiY2FydEl0ZW0ud2lkdGhcIj7QqNC40YDQuNC90LA6IHt7IGNhcnRJdGVtLndpZHRoIH19INC8LjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FydEl0ZW0uaGVpZ2h0OyBlbHNlIGxlbmd0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD7QktGL0YHQvtGC0LA6IHt7IGNhcnRJdGVtLmhlaWdodCB9fSDQvC48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNsZW5ndGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiY2FydEl0ZW0ubGVuZ3RoXCI+0JTQu9C40L3QsDoge3sgY2FydEl0ZW0ubGVuZ3RoIH19INC8LjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwid2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAg0KHRg9C80LzQsDpcbiAgICAgICAgICAgICAgICAgICAgPHN0cm9uZz4ge3sgY2FydEl0ZW0uY29zdFJ1YiB8IHR1aUZvcm1hdE51bWJlcjogeyBwcmVjaXNpb246IDIsIGRlY2ltYWxTZXBhcmF0b3I6ICcuJywgcm91bmRpbmc6ICdjZWlsJyB9IHwgYXN5bmMgfX0ge3sgJ1JVQicgfCB0dWlDdXJyZW5jeSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICA8c2MtcHJpY2Utd2FyZWhvdXNlLXN0b2NrIFtwcm9kdWN0XT1cInByb2R1Y3RcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkudHJhc2hcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0NsZWFyRXZlbnQuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCIhYWJzb2x1dGUgbGVmdC0xIHRvcC0xIGxnOiFyZWxhdGl2ZSBsZzpsZWZ0LTAgbGc6dG9wLTAgbGc6bWwtYXV0b1wiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2tlbGV0b24+XG4gICAgPGRpdiBjbGFzcz1cInR1aS1za2VsZXRvbiBmbGV4IGgtWzguMjVyZW1dIHctZnVsbCBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC14bFwiPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
@@ -3,6 +3,7 @@ import { ChangeDetectionStrategy, Component, HostBinding, inject, Input } from '
|
|
3
3
|
import { ScWarehouseService } from '@snabcentr/client-core';
|
4
4
|
import { TuiHint } from '@taiga-ui/core';
|
5
5
|
import { TuiBadge } from '@taiga-ui/kit';
|
6
|
+
import { ScFormatDatePipe } from '../../pipes';
|
6
7
|
import * as i0 from "@angular/core";
|
7
8
|
import * as i1 from "@angular/common";
|
8
9
|
import * as i2 from "@taiga-ui/core";
|
@@ -21,11 +22,11 @@ export class CostWithDiscountComponent {
|
|
21
22
|
this.size = 'm';
|
22
23
|
}
|
23
24
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CostWithDiscountComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CostWithDiscountComponent, isStandalone: true, selector: "sc-cost-with-discount", inputs: { product: "product", size: "size" }, host: { properties: { "attr.data-size": "this.size" } }, ngImport: i0, template: "@if (product) {\n <div\n *ngIf=\"warehouseSelect$ | async as warehouseSelect\"\n class=\"flex flex-wrap items-center gap-x-2 gap-y-1\"\n >\n <div class=\"flex flex-wrap items-center gap-x-2 gap-y-1\">\n <span\n [class.text-tui-text-02]=\"!product.isWarehouseStockExist(warehouseSelect.id)\"\n class=\"cost\"\n >{{ product.costRubString }}</span\n >\n <tui-badge\n *ngIf=\"product.discount as discount\"\n size=\"m\"\n [style.background]=\"'var(--tui-status-positive)'\"\n [tuiHint]=\"discountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"text-body-xs\"\n >\n <tui-badge\n *ngIf=\"product.discount as discount\"\n size=\"s\"\n [style.background]=\"'var(--tui-background-base)'\"\n class=\"text-body-xs-bold text-tui-text-02\"\n >\n {{ discount.percent }}%\n </tui-badge>\n\n @let expiredAt = product.discount.expiredAt;\n\n <div class=\"flex gap-0.5\">\n <p class=\"flex line-through\">{{ product.discountCostString }}</p>\n <div *ngIf=\"expiredAt\">\u0434\u043E {{ expiredAt.substring(0, 5) }}</div>\n </div>\n <ng-template #discountHint>\n <div class=\"font-bold\">{{ product.discount.name }}</div>\n <div *ngIf=\"expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n </ng-template>\n </tui-badge>\n </div>\n <span\n *ngIf=\"!product.priceInRub\"\n class=\"font-extrabold text-tui-text-02\"\n >{{ product.costString }}</span\n >\n </div>\n}\n", styles: [":host tui-badge{--t-padding: .25rem !important}:host[data-size=s]{font-size:.6875rem;line-height:1rem;font-weight:500}:host[data-size=s] .cost{font-size:.8125rem;line-height:1.25rem;font-weight:800}:host[data-size=m],:host[data-size=l]{font-size:.8125rem;line-height:1.25rem;font-weight:500}:host[data-size=m] .cost,:host[data-size=l] .cost{font-size:.9375rem;line-height:1.5rem;font-weight:800}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: TuiBadge, selector: "tui-badge,[tuiBadge]", inputs: ["size"] }, { kind: "directive", type: i2.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintContext", "tuiHintAppearance", "tuiHint"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
25
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CostWithDiscountComponent, isStandalone: true, selector: "sc-cost-with-discount", inputs: { product: "product", size: "size" }, host: { properties: { "attr.data-size": "this.size" } }, ngImport: i0, template: "@if (product) {\n <div\n *ngIf=\"warehouseSelect$ | async as warehouseSelect\"\n class=\"flex flex-wrap items-center gap-x-2 gap-y-1\"\n >\n <div class=\"flex flex-wrap items-center gap-x-2 gap-y-1\">\n <span\n [class.text-tui-text-02]=\"!product.isWarehouseStockExist(warehouseSelect.id)\"\n class=\"cost\"\n >{{ product.costRubString }}</span\n >\n <tui-badge\n *ngIf=\"product.discount as discount\"\n size=\"m\"\n [style.background]=\"'var(--tui-status-positive)'\"\n [tuiHint]=\"discountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"text-body-xs\"\n >\n <tui-badge\n *ngIf=\"product.discount as discount\"\n size=\"s\"\n [style.background]=\"'var(--tui-background-base)'\"\n class=\"text-body-xs-bold text-tui-text-02\"\n >\n {{ discount.percent }}%\n </tui-badge>\n\n @let expiredAt = product.discount.expiredAt | scFormatDate;\n\n <div class=\"flex gap-0.5\">\n <p class=\"flex line-through\">{{ product.discountCostString }}</p>\n <div *ngIf=\"expiredAt\">\u0434\u043E {{ expiredAt.substring(0, 5) }}</div>\n </div>\n <ng-template #discountHint>\n <div class=\"font-bold\">{{ product.discount.name }}</div>\n <div *ngIf=\"expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n </ng-template>\n </tui-badge>\n </div>\n <span\n *ngIf=\"!product.priceInRub\"\n class=\"font-extrabold text-tui-text-02\"\n >{{ product.costString }}</span\n >\n </div>\n}\n", styles: [":host tui-badge{--t-padding: .25rem !important}:host[data-size=s]{font-size:.6875rem;line-height:1rem;font-weight:500}:host[data-size=s] .cost{font-size:.8125rem;line-height:1.25rem;font-weight:800}:host[data-size=m],:host[data-size=l]{font-size:.8125rem;line-height:1.25rem;font-weight:500}:host[data-size=m] .cost,:host[data-size=l] .cost{font-size:.9375rem;line-height:1.5rem;font-weight:800}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: TuiBadge, selector: "tui-badge,[tuiBadge]", inputs: ["size"] }, { kind: "directive", type: i2.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintContext", "tuiHintAppearance", "tuiHint"] }, { kind: "pipe", type: ScFormatDatePipe, name: "scFormatDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
25
26
|
}
|
26
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CostWithDiscountComponent, decorators: [{
|
27
28
|
type: Component,
|
28
|
-
args: [{ standalone: true, selector: 'sc-cost-with-discount', imports: [CommonModule, TuiBadge, ...TuiHint], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (product) {\n <div\n *ngIf=\"warehouseSelect$ | async as warehouseSelect\"\n class=\"flex flex-wrap items-center gap-x-2 gap-y-1\"\n >\n <div class=\"flex flex-wrap items-center gap-x-2 gap-y-1\">\n <span\n [class.text-tui-text-02]=\"!product.isWarehouseStockExist(warehouseSelect.id)\"\n class=\"cost\"\n >{{ product.costRubString }}</span\n >\n <tui-badge\n *ngIf=\"product.discount as discount\"\n size=\"m\"\n [style.background]=\"'var(--tui-status-positive)'\"\n [tuiHint]=\"discountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"text-body-xs\"\n >\n <tui-badge\n *ngIf=\"product.discount as discount\"\n size=\"s\"\n [style.background]=\"'var(--tui-background-base)'\"\n class=\"text-body-xs-bold text-tui-text-02\"\n >\n {{ discount.percent }}%\n </tui-badge>\n\n @let expiredAt = product.discount.expiredAt;\n\n <div class=\"flex gap-0.5\">\n <p class=\"flex line-through\">{{ product.discountCostString }}</p>\n <div *ngIf=\"expiredAt\">\u0434\u043E {{ expiredAt.substring(0, 5) }}</div>\n </div>\n <ng-template #discountHint>\n <div class=\"font-bold\">{{ product.discount.name }}</div>\n <div *ngIf=\"expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n </ng-template>\n </tui-badge>\n </div>\n <span\n *ngIf=\"!product.priceInRub\"\n class=\"font-extrabold text-tui-text-02\"\n >{{ product.costString }}</span\n >\n </div>\n}\n", styles: [":host tui-badge{--t-padding: .25rem !important}:host[data-size=s]{font-size:.6875rem;line-height:1rem;font-weight:500}:host[data-size=s] .cost{font-size:.8125rem;line-height:1.25rem;font-weight:800}:host[data-size=m],:host[data-size=l]{font-size:.8125rem;line-height:1.25rem;font-weight:500}:host[data-size=m] .cost,:host[data-size=l] .cost{font-size:.9375rem;line-height:1.5rem;font-weight:800}\n"] }]
|
29
|
+
args: [{ standalone: true, selector: 'sc-cost-with-discount', imports: [CommonModule, TuiBadge, ...TuiHint, ScFormatDatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (product) {\n <div\n *ngIf=\"warehouseSelect$ | async as warehouseSelect\"\n class=\"flex flex-wrap items-center gap-x-2 gap-y-1\"\n >\n <div class=\"flex flex-wrap items-center gap-x-2 gap-y-1\">\n <span\n [class.text-tui-text-02]=\"!product.isWarehouseStockExist(warehouseSelect.id)\"\n class=\"cost\"\n >{{ product.costRubString }}</span\n >\n <tui-badge\n *ngIf=\"product.discount as discount\"\n size=\"m\"\n [style.background]=\"'var(--tui-status-positive)'\"\n [tuiHint]=\"discountHint\"\n [tuiHintShowDelay]=\"100\"\n tuiHintDirection=\"top\"\n class=\"text-body-xs\"\n >\n <tui-badge\n *ngIf=\"product.discount as discount\"\n size=\"s\"\n [style.background]=\"'var(--tui-background-base)'\"\n class=\"text-body-xs-bold text-tui-text-02\"\n >\n {{ discount.percent }}%\n </tui-badge>\n\n @let expiredAt = product.discount.expiredAt | scFormatDate;\n\n <div class=\"flex gap-0.5\">\n <p class=\"flex line-through\">{{ product.discountCostString }}</p>\n <div *ngIf=\"expiredAt\">\u0434\u043E {{ expiredAt.substring(0, 5) }}</div>\n </div>\n <ng-template #discountHint>\n <div class=\"font-bold\">{{ product.discount.name }}</div>\n <div *ngIf=\"expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n </ng-template>\n </tui-badge>\n </div>\n <span\n *ngIf=\"!product.priceInRub\"\n class=\"font-extrabold text-tui-text-02\"\n >{{ product.costString }}</span\n >\n </div>\n}\n", styles: [":host tui-badge{--t-padding: .25rem !important}:host[data-size=s]{font-size:.6875rem;line-height:1rem;font-weight:500}:host[data-size=s] .cost{font-size:.8125rem;line-height:1.25rem;font-weight:800}:host[data-size=m],:host[data-size=l]{font-size:.8125rem;line-height:1.25rem;font-weight:500}:host[data-size=m] .cost,:host[data-size=l] .cost{font-size:.9375rem;line-height:1.5rem;font-weight:800}\n"] }]
|
29
30
|
}], propDecorators: { product: [{
|
30
31
|
type: Input
|
31
32
|
}], size: [{
|
@@ -34,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
34
35
|
type: HostBinding,
|
35
36
|
args: ['attr.data-size']
|
36
37
|
}] } });
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zdC13aXRoLWRpc2NvdW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jYXRhbG9nL2Nvc3Qtd2l0aC1kaXNjb3VudC9jb3N0LXdpdGgtZGlzY291bnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvY29zdC13aXRoLWRpc2NvdW50L2Nvc3Qtd2l0aC1kaXNjb3VudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQTJCLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckYsT0FBTyxFQUFFLE9BQU8sRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQUUvQzs7R0FFRztBQVNILE1BQU0sT0FBTyx5QkFBeUI7SUFSdEM7UUFTSTs7V0FFRztRQUNhLHFCQUFnQixHQUFvQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBUTNIOztXQUVHO1FBR0ksU0FBSSxHQUF3QixHQUFHLENBQUM7S0FDMUM7K0dBbEJZLHlCQUF5QjttR0FBekIseUJBQXlCLHdMQ3BCdEMsOCtEQWdEQSxzY0RqQ2MsWUFBWSx3TEFBRSxRQUFRLHNQQUFjLGdCQUFnQjs7NEZBS3JELHlCQUF5QjtrQkFSckMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sdUJBQXVCLFdBQ3hCLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxtQkFHOUMsdUJBQXVCLENBQUMsTUFBTTs4QkFZeEMsT0FBTztzQkFEYixLQUFLO2dCQVFDLElBQUk7c0JBRlYsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjSVdhcmVob3VzZSwgU2NQcm9kdWN0LCBTY1dhcmVob3VzZVNlcnZpY2UgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFR1aUhpbnQsIFR1aVNpemVMLCBUdWlTaXplUyB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IFR1aUJhZGdlIH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNjRm9ybWF0RGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINGG0LXQvdGC0Ysg0YLQvtCy0LDRgNCwINGBINC+0YLQvtCx0YDQsNC20LXQvdC40LXQvCDRgdC60LjQtNC60LguXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzYy1jb3N0LXdpdGgtZGlzY291bnQnLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFR1aUJhZGdlLCAuLi5UdWlIaW50LCBTY0Zvcm1hdERhdGVQaXBlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29zdC13aXRoLWRpc2NvdW50LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vY29zdC13aXRoLWRpc2NvdW50LmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ29zdFdpdGhEaXNjb3VudENvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQstGL0LHRgNCw0L3QvdC+0LPQviDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHdhcmVob3VzZVNlbGVjdCQ6IE9ic2VydmFibGU8U2NJV2FyZWhvdXNlIHwgbnVsbD4gPSBpbmplY3QoU2NXYXJlaG91c2VTZXJ2aWNlKS5nZXRXYXJlaG91c2VTZWxlY3RDaGFuZ2UkKCk7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YrQtdC60YIg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHByb2R1Y3Q6IFNjUHJvZHVjdDtcblxuICAgIC8qKlxuICAgICAqINCg0LDQt9C80LXRgCDQutC+0LzQv9C+0L3QtdC90YLQsC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUnKVxuICAgIHB1YmxpYyBzaXplOiBUdWlTaXplUyB8IFR1aVNpemVMID0gJ20nO1xufVxuIiwiQGlmIChwcm9kdWN0KSB7XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cIndhcmVob3VzZVNlbGVjdCQgfCBhc3luYyBhcyB3YXJlaG91c2VTZWxlY3RcIlxuICAgICAgICBjbGFzcz1cImZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBnYXAteC0yIGdhcC15LTFcIlxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBnYXAteC0yIGdhcC15LTFcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgW2NsYXNzLnRleHQtdHVpLXRleHQtMDJdPVwiIXByb2R1Y3QuaXNXYXJlaG91c2VTdG9ja0V4aXN0KHdhcmVob3VzZVNlbGVjdC5pZClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29zdFwiXG4gICAgICAgICAgICAgICAgPnt7IHByb2R1Y3QuY29zdFJ1YlN0cmluZyB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPHR1aS1iYWRnZVxuICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvZHVjdC5kaXNjb3VudCBhcyBkaXNjb3VudFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIid2YXIoLS10dWktc3RhdHVzLXBvc2l0aXZlKSdcIlxuICAgICAgICAgICAgICAgIFt0dWlIaW50XT1cImRpc2NvdW50SGludFwiXG4gICAgICAgICAgICAgICAgW3R1aUhpbnRTaG93RGVsYXldPVwiMTAwXCJcbiAgICAgICAgICAgICAgICB0dWlIaW50RGlyZWN0aW9uPVwidG9wXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtYm9keS14c1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHR1aS1iYWRnZVxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2R1Y3QuZGlzY291bnQgYXMgZGlzY291bnRcIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIid2YXIoLS10dWktYmFja2dyb3VuZC1iYXNlKSdcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtYm9keS14cy1ib2xkIHRleHQtdHVpLXRleHQtMDJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZGlzY291bnQucGVyY2VudCB9fSVcbiAgICAgICAgICAgICAgICA8L3R1aS1iYWRnZT5cblxuICAgICAgICAgICAgICAgIEBsZXQgZXhwaXJlZEF0ID0gcHJvZHVjdC5kaXNjb3VudC5leHBpcmVkQXQgfCBzY0Zvcm1hdERhdGU7XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMC41XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZmxleCBsaW5lLXRocm91Z2hcIj57eyBwcm9kdWN0LmRpc2NvdW50Q29zdFN0cmluZyB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImV4cGlyZWRBdFwiPtC00L4ge3sgZXhwaXJlZEF0LnN1YnN0cmluZygwLCA1KSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGlzY291bnRIaW50PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1ib2xkXCI+e3sgcHJvZHVjdC5kaXNjb3VudC5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJleHBpcmVkQXRcIj7QlNCw0YLQsCDQvtC60L7QvdGH0LDQvdC40Y86IHt7IGV4cGlyZWRBdCB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3R1aS1iYWRnZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIiFwcm9kdWN0LnByaWNlSW5SdWJcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb250LWV4dHJhYm9sZCB0ZXh0LXR1aS10ZXh0LTAyXCJcbiAgICAgICAgICAgID57eyBwcm9kdWN0LmNvc3RTdHJpbmcgfX08L3NwYW5cbiAgICAgICAgPlxuICAgIDwvZGl2PlxufVxuIl19
|