@snabcentr/client-ui 3.44.5 → 3.44.8
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/cart/cart-item/sc-cart-item.component.d.ts +1 -1
- package/catalog/index.d.ts +1 -0
- package/catalog/price-card/sc-price-card.component.d.ts +1 -1
- package/catalog/sc-catalog.module.d.ts +1 -1
- package/directives/index.d.ts +3 -3
- package/directives/links/sc-links.d.ts +1 -1
- package/esm2022/accordion/sc-accordion-content.directive.mjs +3 -3
- package/esm2022/accordion/sc-accordion.component.mjs +3 -3
- package/esm2022/accordion/sc-accordion.module.mjs +4 -4
- package/esm2022/auth/sc-auth.module.mjs +4 -4
- package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-email/sc-sign-in-form-by-email.component.mjs +3 -3
- package/esm2022/auth/sc-sign-in-form/sc-sign-in-form-by-phone/sc-sign-in-form-by-phone.component.mjs +3 -3
- package/esm2022/auth/sc-sign-in-form/sc-sign-in-form.component.mjs +3 -3
- package/esm2022/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.mjs +3 -3
- package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +3 -3
- package/esm2022/banner/sc-banner.component.mjs +3 -3
- package/esm2022/banner/sc-banner.module.mjs +4 -4
- package/esm2022/brands-list/sc-brands-list.component.mjs +3 -3
- package/esm2022/brands-list/sc-brands-list.module.mjs +4 -4
- package/esm2022/cart/add-or-editing-cart-item-dialog/add-or-editing-cart-item-form/sc-add-or-editing-cart-item-form.component.mjs +3 -3
- package/esm2022/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.mjs +3 -3
- package/esm2022/cart/cart-item/sc-cart-item.component.mjs +7 -8
- package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +3 -3
- package/esm2022/catalog/category-card/sc-category-card.component.mjs +3 -3
- package/esm2022/catalog/cost-with-discount/cost-with-discount.component.mjs +6 -6
- package/esm2022/catalog/download-price-list/sc-download-price-list.component.mjs +3 -3
- package/esm2022/catalog/hover-image-carousel/sc-hover-image-carousel.component.mjs +3 -3
- package/esm2022/catalog/index.mjs +2 -1
- package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +4 -4
- package/esm2022/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.mjs +3 -3
- package/esm2022/catalog/notify-when-in-stock-dialog/sc-product-in-all-warehouses.pipe.mjs +3 -3
- package/esm2022/catalog/price-card/sc-price-card.component.mjs +11 -8
- package/esm2022/catalog/price-card-inline/sc-price-card-inline.component.mjs +11 -8
- package/esm2022/catalog/price-history/sc-price-history.component.mjs +3 -3
- package/esm2022/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +3 -3
- package/esm2022/catalog/price-warehouse-stock/sc-price-warehouse-stock.component.mjs +4 -4
- package/esm2022/catalog/sc-catalog.module.mjs +6 -6
- package/esm2022/catalog/sc-favorite-button/sc-favorite-button.component.mjs +3 -3
- package/esm2022/contacts/add-contact-dialog/sc-add-contact-dialog.component.mjs +3 -3
- package/esm2022/contacts/contacts-accordion/sc-contacts-accordion.component.mjs +3 -3
- package/esm2022/contacts/manager-card/sc-manager-card.component.mjs +3 -3
- package/esm2022/contacts/manager-card-push/sc-manager-card-push.component.mjs +3 -3
- package/esm2022/contacts/new-contact-form/sc-new-contact-form.component.mjs +3 -3
- package/esm2022/contacts/sc-contacts.module.mjs +4 -4
- package/esm2022/contragents/add-contragent-bank-account-dialog/sc-add-contragent-bank-account-dialog.component.mjs +3 -3
- package/esm2022/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.mjs +3 -3
- package/esm2022/contragents/contragents-accordion/contragents-accordion-item/sc-contragents-accordion-item.component.mjs +3 -3
- package/esm2022/contragents/contragents-accordion/sc-contragents-accordion.component.mjs +3 -3
- package/esm2022/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +3 -3
- package/esm2022/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +3 -3
- package/esm2022/contragents/sc-contragents.module.mjs +4 -4
- package/esm2022/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +3 -3
- package/esm2022/delivery-address/delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component.mjs +3 -3
- package/esm2022/delivery-address/delivery-address-accordion/sc-delivery-address-accordion.component.mjs +3 -3
- package/esm2022/delivery-address/sc-delivery-address.module.mjs +4 -4
- package/esm2022/dialogs/sc-resource-preview/sc-resource-preview.component.mjs +3 -3
- package/esm2022/directives/abstract-price-card/abstract-sc-price-card.directive.mjs +3 -3
- package/esm2022/directives/index.mjs +4 -4
- package/esm2022/directives/links/sc-email-link.directive.mjs +3 -3
- package/esm2022/directives/links/sc-links.mjs +2 -2
- package/esm2022/directives/links/sc-tel-link.directive.mjs +3 -3
- package/esm2022/directives/next-input-focus/sc-next-input-focus.directive.mjs +3 -3
- package/esm2022/directives/next-input-focus/sc-next-input-focus.module.mjs +4 -4
- package/esm2022/directives/sc-date-value-transformer.directive.mjs +3 -3
- package/esm2022/directives/sc-focus-first-invalid-field.directive.mjs +3 -3
- package/esm2022/directives/select-on-focusin/sc-select-on-focusin.directive.mjs +3 -3
- package/esm2022/directives/terminal-link/sc-terminal-link.directive.mjs +3 -3
- package/esm2022/error-handler/error-block-status/error-block-status.component.mjs +3 -3
- package/esm2022/error-handler/sc-error-handler.component.mjs +3 -3
- package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +3 -3
- package/esm2022/feedback/gratitude/sc-gratitude.component.mjs +3 -3
- package/esm2022/files/directives/tree-top.directive.mjs +3 -3
- package/esm2022/files/directives/tree.directive.mjs +3 -3
- package/esm2022/files/file-tree-item/file-tree-item.component.mjs +3 -3
- package/esm2022/files/files-and-documents/files-and-documents.component.mjs +3 -3
- package/esm2022/files/files-and-documents.module.mjs +4 -4
- package/esm2022/files/services/tree-icon.service.mjs +3 -3
- package/esm2022/files/services/tree-loader.service.mjs +3 -3
- package/esm2022/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +3 -3
- package/esm2022/form-fields/form-fields.module.mjs +4 -4
- package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +3 -3
- package/esm2022/helpers/sc-px-converter.mjs +3 -3
- package/esm2022/news/news-card/sc-news-card.component.mjs +3 -3
- package/esm2022/news/news-card-skeleton/sc-news-card-skeleton.component.mjs +3 -3
- package/esm2022/news/sc-news.module.mjs +4 -4
- package/esm2022/noindex-wrapper/directives/sc-noindex.directive.mjs +3 -3
- package/esm2022/noindex-wrapper/sc-noindex-wrapper.component.mjs +5 -5
- package/esm2022/order/order-item-mobile/sc-order-item-mobile.component.mjs +3 -3
- package/esm2022/order/sc-order.module.mjs +4 -4
- package/esm2022/order/sc-payment-status/sc-payment-status.component.mjs +3 -3
- package/esm2022/pages/frequently-asked-questions/sc-frequently-asked-questions.component.mjs +3 -3
- package/esm2022/pages/frequently-asked-questions-group-selector/sc-frequently-asked-questions-group-selector.component.mjs +3 -3
- package/esm2022/pages/frequently-asked-questions-with-groups/sc-frequently-asked-questions-with-groups.component.mjs +3 -3
- package/esm2022/pages/personal-data-processing-policy/sc-personal-data-processing-policy.component.mjs +3 -3
- package/esm2022/pages/privacy-policy/sc-privacy-policy.component.mjs +3 -3
- package/esm2022/pages/public-offer/sc-public-offer.component.mjs +3 -3
- package/esm2022/pipes/sc-format-date.mjs +3 -3
- package/esm2022/pipes/sc-phone-format.mjs +3 -3
- package/esm2022/profile/sc-profile-accordions-content/sc-profile-accordions-content.component.mjs +3 -3
- package/esm2022/profile/sc-profile.module.mjs +4 -4
- package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-end-time.mjs +3 -3
- package/esm2022/providers/date-value-transformer/sc-date-value-transformer-with-start-time.mjs +3 -3
- package/esm2022/qrcode/qrcode-dialog/sc-qrcode-dialog.component.mjs +3 -3
- package/esm2022/qrcode/sc-qrcode.module.mjs +4 -4
- package/esm2022/samples/preview-sample/sc-preview-sample.component.mjs +3 -3
- package/esm2022/samples/sc-preview-samples-mosquito/sc-preview-samples-mosquito.component.mjs +3 -3
- package/esm2022/samples/sc-sample.module.mjs +4 -4
- package/esm2022/schemas/sc-json-ld-category/sc-json-ld-category.component.mjs +3 -3
- package/esm2022/services/sc-help-notification.service.mjs +3 -3
- package/esm2022/share-button/sc-share-button.component.mjs +3 -3
- package/esm2022/share-button/sc-share-button.module.mjs +4 -4
- package/esm2022/user/reset-user-password/sc-reset-user-password.component.mjs +3 -3
- package/esm2022/user/sc-user.module.mjs +4 -4
- package/esm2022/user/update-user-info-dialog/sc-update-user-info-dialog.component.mjs +3 -3
- package/esm2022/user/user-managers/sc-user-managers.component.mjs +3 -3
- package/esm2022/user/user-phone-approve-dialog/sc-user-phone-approve-dialog.component.mjs +3 -3
- package/esm2022/verification/sc-verification.module.mjs +4 -4
- package/esm2022/verification/verification-phone-check-form/sc-verification-phone-check-form.component.mjs +3 -3
- package/fesm2022/snabcentr-client-ui.mjs +1825 -1832
- package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/tailwind/tailwind.scss +1 -1
|
@@ -12,10 +12,10 @@ export class ScBrandsListComponent {
|
|
|
12
12
|
*/
|
|
13
13
|
this.items = [];
|
|
14
14
|
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
16
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScBrandsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScBrandsListComponent, selector: "sc-brands-list", inputs: { items: "items" }, ngImport: i0, template: "<!-- TODO: TASK:[#9893] \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u043D\u0430 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0441\u0442\u0440\u043E\u043A \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439, \u043F\u0440\u0438 \u0443\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u0438\u0438 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0431\u0440\u0435\u043D\u0434\u043E\u0432. -->\n<div class=\"flex flex-col gap-4\">\n <div class=\"relative\">\n <div class=\"absolute -left-1 top-0 z-10 block h-full w-12 bg-gradient-to-r from-tui-base-01 to-transparent\"></div>\n <div class=\"flex select-none items-center justify-center gap-12 overflow-hidden contrast-150 saturate-0\">\n <div\n *ngFor=\"let _ of [].constructor(3)\"\n class=\"animate-scroll-slow scroll-slow-revert flex shrink-0 items-center gap-16\"\n >\n <div\n *tuiRepeatTimes=\"let index of items.length - (items.length - (items.length % 2)) / 2\"\n class=\"flex items-center justify-center\"\n >\n <img\n [src]=\"items[index + (items.length - (items.length % 2)) / 2].src\"\n [alt]=\"items[index].alt\"\n />\n </div>\n </div>\n </div>\n <div class=\"absolute -right-1 top-0 z-10 block h-full w-12 bg-gradient-to-r from-transparent to-tui-base-01\"></div>\n </div>\n <div class=\"relative\">\n <div class=\"absolute -left-1 top-0 z-10 block h-full w-12 bg-gradient-to-r from-tui-base-01 to-transparent\"></div>\n <div class=\"flex select-none items-center justify-center gap-12 overflow-hidden contrast-150 saturate-0\">\n <div\n *ngFor=\"let _ of [].constructor(3)\"\n class=\"animate-scroll-slow flex shrink-0 items-center gap-16\"\n >\n <div\n *tuiRepeatTimes=\"let index of (items.length - (items.length % 2)) / 2\"\n class=\"flex items-center justify-center\"\n >\n <img\n [src]=\"items[index].src\"\n [alt]=\"items[index].alt\"\n />\n </div>\n </div>\n </div>\n <div class=\"absolute -right-1 top-0 z-10 block h-full w-12 bg-gradient-to-r from-transparent to-tui-base-01\"></div>\n </div>\n</div>\n", styles: [".scroll-slow-revert{animation-direction:reverse!important;animation-delay:-15s!important}@keyframes scroll-slow{0%{transform:translate(0)}to{transform:translate(calc(-100% - 3rem))}}.animate-scroll-slow{animation:scroll-slow 30s linear infinite}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17
17
|
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScBrandsListComponent, decorators: [{
|
|
19
19
|
type: Component,
|
|
20
20
|
args: [{ selector: 'sc-brands-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- TODO: TASK:[#9893] \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u0435 \u043D\u0430 \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0441\u0442\u0440\u043E\u043A \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439, \u043F\u0440\u0438 \u0443\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u0438\u0438 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0431\u0440\u0435\u043D\u0434\u043E\u0432. -->\n<div class=\"flex flex-col gap-4\">\n <div class=\"relative\">\n <div class=\"absolute -left-1 top-0 z-10 block h-full w-12 bg-gradient-to-r from-tui-base-01 to-transparent\"></div>\n <div class=\"flex select-none items-center justify-center gap-12 overflow-hidden contrast-150 saturate-0\">\n <div\n *ngFor=\"let _ of [].constructor(3)\"\n class=\"animate-scroll-slow scroll-slow-revert flex shrink-0 items-center gap-16\"\n >\n <div\n *tuiRepeatTimes=\"let index of items.length - (items.length - (items.length % 2)) / 2\"\n class=\"flex items-center justify-center\"\n >\n <img\n [src]=\"items[index + (items.length - (items.length % 2)) / 2].src\"\n [alt]=\"items[index].alt\"\n />\n </div>\n </div>\n </div>\n <div class=\"absolute -right-1 top-0 z-10 block h-full w-12 bg-gradient-to-r from-transparent to-tui-base-01\"></div>\n </div>\n <div class=\"relative\">\n <div class=\"absolute -left-1 top-0 z-10 block h-full w-12 bg-gradient-to-r from-tui-base-01 to-transparent\"></div>\n <div class=\"flex select-none items-center justify-center gap-12 overflow-hidden contrast-150 saturate-0\">\n <div\n *ngFor=\"let _ of [].constructor(3)\"\n class=\"animate-scroll-slow flex shrink-0 items-center gap-16\"\n >\n <div\n *tuiRepeatTimes=\"let index of (items.length - (items.length % 2)) / 2\"\n class=\"flex items-center justify-center\"\n >\n <img\n [src]=\"items[index].src\"\n [alt]=\"items[index].alt\"\n />\n </div>\n </div>\n </div>\n <div class=\"absolute -right-1 top-0 z-10 block h-full w-12 bg-gradient-to-r from-transparent to-tui-base-01\"></div>\n </div>\n</div>\n", styles: [".scroll-slow-revert{animation-direction:reverse!important;animation-delay:-15s!important}@keyframes scroll-slow{0%{transform:translate(0)}to{transform:translate(calc(-100% - 3rem))}}.animate-scroll-slow{animation:scroll-slow 30s linear infinite}\n"] }]
|
|
21
21
|
}], propDecorators: { items: [{
|
|
@@ -7,11 +7,11 @@ import * as i0 from "@angular/core";
|
|
|
7
7
|
* Модуль списка брэндов.
|
|
8
8
|
*/
|
|
9
9
|
export class ScBrandsListModule {
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
11
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.
|
|
12
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScBrandsListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ScBrandsListModule, declarations: [ScBrandsListComponent], imports: [CommonModule, TuiRepeatTimes], exports: [ScBrandsListComponent] }); }
|
|
12
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScBrandsListModule, imports: [CommonModule] }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScBrandsListModule, decorators: [{
|
|
15
15
|
type: NgModule,
|
|
16
16
|
args: [{
|
|
17
17
|
imports: [CommonModule, TuiRepeatTimes],
|
|
@@ -200,10 +200,10 @@ export class ScAddOrEditingCartItemFormComponent {
|
|
|
200
200
|
this.addToCart.emit(value);
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
204
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
203
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAddOrEditingCartItemFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
204
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScAddOrEditingCartItemFormComponent, isStandalone: true, selector: "sc-add-or-editing-cart-item-form", inputs: { product: { classPropertyName: "product", publicName: "product", isSignal: true, isRequired: true, transformFunction: null }, cartItem: { classPropertyName: "cartItem", publicName: "cartItem", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { addToCart: "addToCart", editCartItem: "editCartItem" }, ngImport: i0, template: "<!-- \u0424\u043E\u0440\u043C\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0438\u0437\u043C\u0435\u0440\u044F\u0435\u043C\u043E\u0433\u043E \u0442\u043E\u0432\u0430\u0440\u0430. -->\n<form\n *ngIf=\"product\"\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit()\"\n ScNextInputFocus\n class=\"flex flex-col gap-2\"\n>\n @let step = lengthStep();\n\n <!-- \u0414\u043B\u0438\u043D\u0430 \u0442\u043E\u0432\u0430\u0440\u0430 (\u043C\u0435\u0442\u0440\u0430\u0436) -->\n <label\n *ngIf=\"productIsMeasurable()\"\n tuiLabel\n >\n \u041C\u0435\u0442\u0440\u0430\u0436, {{ product().unit }}\n @if (!step || maxLength()) {\n {{ lengthHint() }}\n }\n\n <tui-textfield>\n <input\n tuiInputNumber\n formControlName=\"length\"\n [tuiNumberFormat]=\"{ precision: 2 }\"\n [max]=\"maxLength() || null\"\n [min]=\"minLength() || null\"\n (keydown.arrowDown)=\"onStepLength(-(lengthStep() ?? 0.01))\"\n (keydown.arrowUp)=\"onStepLength(lengthStep() ?? 0.01)\"\n autocomplete=\"length\"\n />\n </tui-textfield>\n <tui-error\n formControlName=\"length\"\n [error]=\"[] | tuiFieldError | async\"\n />\n <p\n *ngIf=\"lengthStep()\"\n class=\"tui-form__field-note\"\n >\n \u041C\u0435\u0442\u0440\u0430\u0436 \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u0435\u043D {{ lengthStep() }}\n </p>\n </label>\n\n <!-- \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0442\u043E\u0432\u0430\u0440\u0430 -->\n <label tuiLabel>\n \u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E, \u0448\u0442.\n <tui-textfield>\n <tui-chip\n *ngIf=\"isLengthConfigurator() && productMultiplicity() && step\"\n size=\"s\"\n appearance=\"negative\"\n class=\"font-bold\"\n >\n x {{ step }} {{ product().unit }}\n </tui-chip>\n\n <input\n placeholder=\"\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\"\n tuiInputNumber\n [tuiNumberFormat]=\"{ decimalMode: 'not-zero' }\"\n [min]=\"productMultiplicity()\"\n (keydown.arrowDown)=\"onStepQuantity(-productMultiplicity())\"\n (keydown.arrowUp)=\"onStepQuantity(productMultiplicity())\"\n formControlName=\"quantity\"\n autocomplete=\"quantity\"\n />\n </tui-textfield>\n <p class=\"tui-form__field-note\">\u041A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u043A\u0440\u0430\u0442\u043D\u043E {{ productMultiplicity() }}</p>\n <tui-error\n formControlName=\"quantity\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n <!-- \u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430 -->\n <label tuiLabel>\n \u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430\n <tui-input formControlName=\"marker\">\n \u041C\u0430\u0440\u043A\u0438\u0440\u043E\u0432\u043A\u0430\n <input\n tuiTextfieldLegacy\n autocomplete=\"marker\"\n />\n </tui-input>\n <tui-error\n formControlName=\"marker\"\n [error]=\"[] | tuiFieldError | async\"\n />\n </label>\n\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F / \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0442\u043E\u0432\u0430\u0440\u0430 \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443 -->\n <div class=\"flex flex-col items-center\">\n @let cost = totalCost$ | async;\n\n <div *ngIf=\"cost\">\n \u0418\u0442\u043E\u0433\u043E:<span class=\"text-2xl font-bold\">\n {{ cost | tuiAmount | async }}\n {{ product().currency }}\n </span>\n </div>\n\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F / \u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0442\u043E\u0432\u0430\u0440\u0430 \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443 -->\n <button\n tuiButton\n iconStart=\"@tui.check\"\n [disabled]=\"form.invalid\"\n [loading]=\"isLoading()\"\n type=\"submit\"\n class=\"mt-2\"\n >\n {{ cartItem() ? '\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C' : '\u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0432 \u043A\u043E\u0440\u0437\u0438\u043D\u0443' }}\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ScNextInputFocusModule }, { kind: "directive", type: i2.ScNextInputFocusDirective, selector: "form[ScNextInputFocus]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: TuiLabel, selector: "label[tuiLabel]" }, { kind: "directive", type: ScSelectOnFocusinDirective, selector: "tui-input-number, tui-input, tui-input-phone, tui-input-date, tui-input-password, input[tuiInputNumber]" }, { kind: "directive", type: TuiNumberFormat, selector: "[tuiNumberFormat]", inputs: ["tuiNumberFormat"] }, { kind: "component", type: TuiError, selector: "tui-error", inputs: ["error"] }, { kind: "ngmodule", type: TuiInputModule }, { kind: "component", type: i3.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i3.TuiInputDirective, selector: "tui-input" }, { kind: "component", type: i4.TuiTextfieldComponent, selector: "input[tuiTextfieldLegacy], textarea[tuiTextfieldLegacy]" }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: TuiFieldErrorPipe, name: "tuiFieldError" }, { kind: "directive", type: i5.TuiInputNumberDirective, selector: "input[tuiInputNumber]", inputs: ["min", "max", "prefix", "postfix"] }, { kind: "component", type: i6.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "pipe", type: TuiAmountPipe, name: "tuiAmount" }, { kind: "directive", type: TuiChip, selector: "tui-chip,[tuiChip]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
205
205
|
}
|
|
206
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
206
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAddOrEditingCartItemFormComponent, decorators: [{
|
|
207
207
|
type: Component,
|
|
208
208
|
args: [{ standalone: true, selector: 'sc-add-or-editing-cart-item-form', imports: [
|
|
209
209
|
NgIf,
|
|
@@ -64,10 +64,10 @@ export class ScAddOrEditingCartItemDialogComponent {
|
|
|
64
64
|
*/
|
|
65
65
|
this.cartService = inject(ScCartService);
|
|
66
66
|
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
68
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAddOrEditingCartItemDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScAddOrEditingCartItemDialogComponent, isStandalone: true, selector: "sc-add-or-editing-cart-item-dialog", viewQueries: [{ propertyName: "formComponent", first: true, predicate: ScAddOrEditingCartItemFormComponent, descendants: true, isSignal: true }], ngImport: i0, template: "@if (product) {\n <sc-add-or-editing-cart-item-form\n [product]=\"product\"\n [cartItem]=\"cartItem\"\n (addToCart)=\"onSubmit.next($event)\"\n (editCartItem)=\"onSubmit.next($event)\"\n [isLoading]=\"loading()\"\n ></sc-add-or-editing-cart-item-form>\n}\n", dependencies: [{ kind: "component", type: ScAddOrEditingCartItemFormComponent, selector: "sc-add-or-editing-cart-item-form", inputs: ["product", "cartItem", "isLoading"], outputs: ["addToCart", "editCartItem"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
69
69
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScAddOrEditingCartItemDialogComponent, decorators: [{
|
|
71
71
|
type: Component,
|
|
72
72
|
args: [{ standalone: true, selector: 'sc-add-or-editing-cart-item-dialog', imports: [ScAddOrEditingCartItemFormComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (product) {\n <sc-add-or-editing-cart-item-form\n [product]=\"product\"\n [cartItem]=\"cartItem\"\n (addToCart)=\"onSubmit.next($event)\"\n (editCartItem)=\"onSubmit.next($event)\"\n [isLoading]=\"loading()\"\n ></sc-add-or-editing-cart-item-form>\n}\n" }]
|
|
73
73
|
}] });
|
|
@@ -3,16 +3,15 @@ import { CommonModule } from '@angular/common';
|
|
|
3
3
|
import { ChangeDetectionStrategy, Component, inject, output } from '@angular/core';
|
|
4
4
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
5
5
|
import { RouterModule } from '@angular/router';
|
|
6
|
-
import { ScHoverImageCarouselComponent, ScInputQuantityComponent, ScPriceWarehouseStockComponent } from '../../../catalog';
|
|
7
|
-
import { CostWithDiscountComponent } from '../../../catalog/cost-with-discount/cost-with-discount.component';
|
|
8
|
-
import { AbstractScPriceCard } from '../../../directives';
|
|
9
|
-
import { ScNoindexWrapperComponent } from '../../../noindex-wrapper';
|
|
10
6
|
import { SEARCH_TERM_PROVIDERS } from '@snabcentr/client-core';
|
|
11
7
|
import { TuiCurrencyPipe } from '@taiga-ui/addon-commerce';
|
|
12
8
|
import { TuiAutoFocus } from '@taiga-ui/cdk';
|
|
13
9
|
import { TuiButton, TuiFormatNumberPipe, TuiHint, TuiIcon, TuiLink } from '@taiga-ui/core';
|
|
14
10
|
import { TuiHighlight, TuiPreview, TuiPreviewDialogService } from '@taiga-ui/kit';
|
|
15
11
|
import { TuiTextfieldControllerModule } from '@taiga-ui/legacy';
|
|
12
|
+
import { CostWithDiscountComponent, ScHoverImageCarouselComponent, ScInputQuantityComponent, ScPriceWarehouseStockComponent } from '../../catalog';
|
|
13
|
+
import { AbstractScPriceCard } from '../../directives';
|
|
14
|
+
import { ScNoindexWrapperComponent } from '../../noindex-wrapper';
|
|
16
15
|
import * as i0 from "@angular/core";
|
|
17
16
|
import * as i1 from "@angular/common";
|
|
18
17
|
import * as i2 from "@taiga-ui/polymorpheus";
|
|
@@ -42,10 +41,10 @@ export class ScCartItemComponent extends AbstractScPriceCard {
|
|
|
42
41
|
showSpecification(specificationPreviewReference) {
|
|
43
42
|
this.previewDialogService.open(specificationPreviewReference).subscribe();
|
|
44
43
|
}
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
46
|
-
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-noindex-wrapper>\n @let isDisabled = product.isHidden || product.isNull;\n <sc-hover-image-carousel\n (click)=\"isDisabled ? null : 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.disabled]=\"isDisabled\"\n class=\"!text-body-m-bold\"\n >\n {{ product.name }}\n </a>\n <span\n *ngIf=\"product.supplierSku\"\n class=\"text-tui-text-02\"\n >\n \u0410\u0440\u0442\u0438\u043A\u0443\u043B \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F: {{ product.supplierSku }}\n </span>\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 <sc-cost-with-discount [product]=\"product\" />\n </div>\n <a\n tuiLink\n *ngIf=\"cartItem.specificationImgUrl\"\n (click)=\"showSpecification(specificationPreview)\"\n [class.disabled]=\"isDisabled\"\n >\n \u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F\n </a>\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 [isDisabled]=\"isDisabled\"\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 [disabled]=\"isDisabled\"\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 </sc-noindex-wrapper>\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: ScHoverImageCarouselComponent, selector: "sc-hover-image-carousel", inputs: ["images", "isShowActions", "productName"] }, { 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: "component", type: ScNoindexWrapperComponent, selector: "sc-noindex-wrapper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCartItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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-noindex-wrapper>\n @let isDisabled = product.isHidden || product.isNull;\n <sc-hover-image-carousel\n (click)=\"isDisabled ? null : 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.disabled]=\"isDisabled\"\n class=\"!text-body-m-bold\"\n >\n {{ product.name }}\n </a>\n <span\n *ngIf=\"product.supplierSku\"\n class=\"text-tui-text-02\"\n >\n \u0410\u0440\u0442\u0438\u043A\u0443\u043B \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F: {{ product.supplierSku }}\n </span>\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 <sc-cost-with-discount [product]=\"product\" />\n </div>\n <a\n tuiLink\n *ngIf=\"cartItem.specificationImgUrl\"\n (click)=\"showSpecification(specificationPreview)\"\n [class.disabled]=\"isDisabled\"\n >\n \u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F\n </a>\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 [isDisabled]=\"isDisabled\"\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 [disabled]=\"isDisabled\"\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 </sc-noindex-wrapper>\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"], outputs: ["tuiHintVisible"] }, { 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: ScHoverImageCarouselComponent, selector: "sc-hover-image-carousel", inputs: ["images", "isShowActions", "productName"] }, { 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", "initialScale"] }, { kind: "directive", type: i5.TuiPreviewAction, selector: "[tuiPreviewAction]" }, { kind: "component", type: ScNoindexWrapperComponent, selector: "sc-noindex-wrapper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
47
46
|
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCartItemComponent, decorators: [{
|
|
49
48
|
type: Component,
|
|
50
49
|
args: [{ standalone: true, selector: 'sc-cart-item', imports: [
|
|
51
50
|
CommonModule,
|
|
@@ -69,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
69
68
|
ScNoindexWrapperComponent,
|
|
70
69
|
], 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-noindex-wrapper>\n @let isDisabled = product.isHidden || product.isNull;\n <sc-hover-image-carousel\n (click)=\"isDisabled ? null : 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.disabled]=\"isDisabled\"\n class=\"!text-body-m-bold\"\n >\n {{ product.name }}\n </a>\n <span\n *ngIf=\"product.supplierSku\"\n class=\"text-tui-text-02\"\n >\n \u0410\u0440\u0442\u0438\u043A\u0443\u043B \u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0435\u043B\u044F: {{ product.supplierSku }}\n </span>\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 <sc-cost-with-discount [product]=\"product\" />\n </div>\n <a\n tuiLink\n *ngIf=\"cartItem.specificationImgUrl\"\n (click)=\"showSpecification(specificationPreview)\"\n [class.disabled]=\"isDisabled\"\n >\n \u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F\n </a>\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 [isDisabled]=\"isDisabled\"\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 [disabled]=\"isDisabled\"\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 </sc-noindex-wrapper>\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
70
|
}] });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2FydC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jYXJ0L2NhcnQtaXRlbS9zYy1jYXJ0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhcnQvY2FydC1pdGVtL3NjLWNhcnQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5Q0FBeUM7QUFFekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBaUMsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsd0JBQXdCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBb0IsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7OztBQUVoRTs7R0FFRztBQTZCSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsbUJBQW1CO0lBNUI1RDs7UUE2Qkk7O1dBRUc7UUFDYSxrQkFBYSxHQUEyQixNQUFNLEVBQUUsQ0FBQztRQUVqRTs7V0FFRztRQUNjLHlCQUFvQixHQUE0QixNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztLQVVwRztJQVJHOzs7O09BSUc7SUFDTyxpQkFBaUIsQ0FBQyw2QkFBNEQ7UUFDcEYsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlFLENBQUM7K0dBbEJRLG1CQUFtQjttR0FBbkIsbUJBQW1CLHdHQUhqQixDQUFDLHFCQUFxQixDQUFDLGlEQzdDdEMsK2hRQTRKQSwyQ0RuSVEsWUFBWSx1TEFDWixZQUFZLCtCQUNaLFNBQVMsb0lBQ1QsT0FBTyxvRkFDUCw0QkFBNEIsaUxBQzVCLFdBQVcsc0lBQ1gsbUJBQW1CLDBYQUVuQixPQUFPLDRGQUNQLFlBQVksMEdBQ1osWUFBWSxxRkFDWiw2QkFBNkIsd0hBQzdCLHlCQUF5QiwrRkFDekIsOEJBQThCLG9JQUM5Qix3QkFBd0IsZ01BQ3hCLGVBQWUsK0NBQ2YsbUJBQW1CLDJQQUVuQix5QkFBeUI7OzRGQUtwQixtQkFBbUI7a0JBNUIvQixTQUFTO2lDQUNNLElBQUksWUFDTixjQUFjLFdBRWY7d0JBQ0wsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCw0QkFBNEI7d0JBQzVCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLDZCQUE2Qjt3QkFDN0IseUJBQXlCO3dCQUN6Qiw4QkFBOEI7d0JBQzlCLHdCQUF3Qjt3QkFDeEIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLFVBQVU7d0JBQ1YseUJBQXlCO3FCQUM1QixhQUNVLENBQUMscUJBQXFCLENBQUMsbUJBQ2pCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlcnNjb3JlLWRhbmdsZSAqL1xuXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBvdXRwdXQsIE91dHB1dEVtaXR0ZXJSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTY0hvdmVySW1hZ2VDYXJvdXNlbENvbXBvbmVudCwgU2NJbnB1dFF1YW50aXR5Q29tcG9uZW50LCBTY1ByaWNlV2FyZWhvdXNlU3RvY2tDb21wb25lbnQgfSBmcm9tICdAc2MvY2F0YWxvZyc7XG5pbXBvcnQgeyBDb3N0V2l0aERpc2NvdW50Q29tcG9uZW50IH0gZnJvbSAnQHNjL2NhdGFsb2cvY29zdC13aXRoLWRpc2NvdW50L2Nvc3Qtd2l0aC1kaXNjb3VudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWJzdHJhY3RTY1ByaWNlQ2FyZCB9IGZyb20gJ0BzYy9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFNjTm9pbmRleFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICdAc2Mvbm9pbmRleC13cmFwcGVyJztcbmltcG9ydCB7IFNFQVJDSF9URVJNX1BST1ZJREVSUyB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgVHVpQ3VycmVuY3lQaXBlIH0gZnJvbSAnQHRhaWdhLXVpL2FkZG9uLWNvbW1lcmNlJztcbmltcG9ydCB7IFR1aUF1dG9Gb2N1cyB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVHVpQnV0dG9uLCBUdWlEaWFsb2dDb250ZXh0LCBUdWlGb3JtYXROdW1iZXJQaXBlLCBUdWlIaW50LCBUdWlJY29uLCBUdWlMaW5rIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgVHVpSGlnaGxpZ2h0LCBUdWlQcmV2aWV3LCBUdWlQcmV2aWV3RGlhbG9nU2VydmljZSB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHsgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9sZWdhY3knO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQutCw0YDRgtC+0YfQutC4INGN0LvQtdC80LXQvdGC0LAg0LrQvtGA0LfQuNC90YsuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzYy1jYXJ0LWl0ZW0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1jYXJ0LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgICAgIFR1aUJ1dHRvbixcbiAgICAgICAgVHVpSWNvbixcbiAgICAgICAgVHVpVGV4dGZpZWxkQ29udHJvbGxlck1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFR1aUhpbnQsXG4gICAgICAgIFR1aUxpbmssXG4gICAgICAgIFR1aUhpZ2hsaWdodCxcbiAgICAgICAgVHVpQXV0b0ZvY3VzLFxuICAgICAgICBTY0hvdmVySW1hZ2VDYXJvdXNlbENvbXBvbmVudCxcbiAgICAgICAgQ29zdFdpdGhEaXNjb3VudENvbXBvbmVudCxcbiAgICAgICAgU2NQcmljZVdhcmVob3VzZVN0b2NrQ29tcG9uZW50LFxuICAgICAgICBTY0lucHV0UXVhbnRpdHlDb21wb25lbnQsXG4gICAgICAgIFR1aUN1cnJlbmN5UGlwZSxcbiAgICAgICAgVHVpRm9ybWF0TnVtYmVyUGlwZSxcbiAgICAgICAgVHVpUHJldmlldyxcbiAgICAgICAgU2NOb2luZGV4V3JhcHBlckNvbXBvbmVudCxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1NFQVJDSF9URVJNX1BST1ZJREVSU10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjQ2FydEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFNjUHJpY2VDYXJkIHtcbiAgICAvKipcbiAgICAgKiDQodC+0LHRi9GC0LjQtSDQvdCw0LbQsNGC0LjRjyDQvdCwINC60L3QvtC/0LrRgyDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNGPINC60L7QvdGE0LjQs9GD0YDQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2xpY2tTZXR0aW5nczogT3V0cHV0RW1pdHRlclJlZjx2b2lkPiA9IG91dHB1dCgpO1xuXG4gICAgLyoqXG4gICAgICog0KHQtdGA0LLQuNGBINC00LjQsNC70L7Qs9C+0LLQvtCz0L4g0L7QutC90LAg0L/RgNC10LTQstCw0YDQuNGC0LXQu9GM0L3QvtCz0L4g0L/RgNC+0YHQvNC+0YLRgNCwLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJldmlld0RpYWxvZ1NlcnZpY2U6IFR1aVByZXZpZXdEaWFsb2dTZXJ2aWNlID0gaW5qZWN0KFR1aVByZXZpZXdEaWFsb2dTZXJ2aWNlKTtcblxuICAgIC8qKlxuICAgICAqINCe0YLQvtCx0YDQsNC20LDQtdGCINGB0L/QtdGG0LjRhNC40LrQsNGG0LjRji5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzcGVjaWZpY2F0aW9uUHJldmlld1JlZmVyZW5jZSDQqNCw0LHQu9C+0L0g0YHQv9C10YbQuNGE0LjQutCw0YbQuNC4LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzaG93U3BlY2lmaWNhdGlvbihzcGVjaWZpY2F0aW9uUHJldmlld1JlZmVyZW5jZTogVGVtcGxhdGVSZWY8VHVpRGlhbG9nQ29udGV4dD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wcmV2aWV3RGlhbG9nU2VydmljZS5vcGVuKHNwZWNpZmljYXRpb25QcmV2aWV3UmVmZXJlbmNlKS5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgKm5nSWY9XCJwcm9kdWN0ICYmIGNhcnRJdGVtOyBlbHNlIHNrZWxldG9uXCJcbiAgICBjbGFzcz1cInJlbGF0aXZlIGZsZXggdy1mdWxsIGdhcC00IHJvdW5kZWQteGwgcC0xIHRleHQtYm9keS1zIGhvdmVyOmJnLXR1aS1iYWNrZ3JvdW5kLW5ldXRyYWwtMVwiXG4+XG4gICAgPHNjLW5vaW5kZXgtd3JhcHBlcj5cbiAgICAgICAgQGxldCBpc0Rpc2FibGVkID0gcHJvZHVjdC5pc0hpZGRlbiB8fCBwcm9kdWN0LmlzTnVsbDtcbiAgICAgICAgPHNjLWhvdmVyLWltYWdlLWNhcm91c2VsXG4gICAgICAgICAgICAoY2xpY2spPVwiaXNEaXNhYmxlZCA/IG51bGwgOiBjbGlja0NhcmRFdmVudC5lbWl0KClcIlxuICAgICAgICAgICAgW2ltYWdlc109XCIhaXNNb2JpbGUgPyBnZXRDYXJkSW1hZ2VQcmV2aWV3TGlzdChwcm9kdWN0KSA6IFtnZXRDYXJkSW1hZ2VQcmV2aWV3KCldXCJcbiAgICAgICAgICAgIFtpc1Nob3dBY3Rpb25zXT1cImZhbHNlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYXNwZWN0LXNxdWFyZSB3LTI0IHNocmluay0wIGN1cnNvci1wb2ludGVyIHNlbGYtc3RhcnRcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwgZmxleC1jb2wganVzdGlmeS1iZXR3ZWVuIGdhcC00IG1kOmZsZXgtcm93IG1kOml0ZW1zLWNlbnRlciBtZDpnYXAtNVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ3JvdyBmbGV4LWNvbCBnYXAtMVwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW3R1aUhpZ2hsaWdodF09XCIoc2VhcmNoJCB8IGFzeW5jKSA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC10dWktdGV4dC0wMlwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICDQkNGA0YLQuNC60YPQuzoge3sgcHJvZHVjdC5jb2RlIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmhyZWZdPVwiaHJlZiA/PyBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0dWlIaWdobGlnaHRdPVwiKHNlYXJjaCQgfCBhc3luYykgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBjbGlja0NhcmRFdmVudC5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIhdGV4dC1ib2R5LW0tYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHByb2R1Y3QubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2R1Y3Quc3VwcGxpZXJTa3VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAg0JDRgNGC0LjQutGD0Lsg0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70Y86IHt7IHByb2R1Y3Quc3VwcGxpZXJTa3UgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2R1Y3Q/LnBhY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSB0ZXh0LXR1aS10ZXh0LTAyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAg0J3QvtGA0LzQsCDRg9C/0LDQutC+0LLQutC4OiB7eyBwcm9kdWN0LnBhY2sgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0dWktaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicHJvZHVjdC5pZ25vcmVNaW5Db3VudENoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiQHR1aS5wYWNrYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHVpSGludF09XCJtaW5Db3VudEhpbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0dWlIaW50U2hvd0RlbGF5XT1cIjEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpSGludERpcmVjdGlvbj1cInRvcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvZHkteGwgdGV4dC10dWktdGV4dC0wMSBvcGFjaXR5LTkwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI21pbkNvdW50SGludD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICDQlNC+0YHRgtGD0L/QtdC9INC30LDQutCw0LcgPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg0L/RgNC+0LjQt9Cy0L7Qu9GM0L3QvtCz0L4gPGJyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg0LrQvtC70LjRh9C10YHRgtCy0LBcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxzYy1jb3N0LXdpdGgtZGlzY291bnQgW3Byb2R1Y3RdPVwicHJvZHVjdFwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgdHVpTGlua1xuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNhcnRJdGVtLnNwZWNpZmljYXRpb25JbWdVcmxcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd1NwZWNpZmljYXRpb24oc3BlY2lmaWNhdGlvblByZXZpZXcpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAg0KHQv9C10YbQuNGE0LjQutCw0YbQuNGPXG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAjc3BlY2lmaWNhdGlvblByZXZpZXdcbiAgICAgICAgICAgICAgICAgICAgbGV0LXByZXZpZXdcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx0dWktcHJldmlld1xuICAgICAgICAgICAgICAgICAgICAgICAgW3JvdGF0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbem9vbWFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKnBvbHltb3JwaGV1c091dGxldD1cImNhcnRJdGVtLnNwZWNpZmljYXRpb25JbWdVcmwgYXMgc3JjXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJwcmV2aWV3XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImNhcnRJdGVtLnNwZWNpZmljYXRpb25JbWdVcmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU3RhcnQ9XCJAdHVpLnhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiQ2xvc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlQcmV2aWV3QWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXZpZXcuY29tcGxldGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvdHVpLXByZXZpZXc+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggc2hyaW5rLTAgZmxleC1jb2wgZ2FwLTQgc206ZmxleC1yb3cgbWQ6dy0xLzIgbGc6dy0zLzUgeGw6dy0xLzIgeGw6Z2FwLTggMnhsOnctMi81XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBnYXAtNCBtZDpmbGV4LWNvbCBtZDppdGVtcy1zdGFydCBsZzpmbGV4LXJvdyBsZzppdGVtcy1jZW50ZXIgbGc6Z2FwLThcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNjLWlucHV0LXF1YW50aXR5XG4gICAgICAgICAgICAgICAgICAgICAgICAjaW5wdXRRdWFudGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgW3R1aUF1dG9Gb2N1c109XCJhdXRvRm9jdXNlUXVhbnRpdHlJbnB1dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd1F1YW50aXR5Q29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwicXVhbnRpdHlDb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q3Jvc3NdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzRGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3RlcF09XCJ1bml0c0hlbHBlci5wcm9kdWN0TXVsdGlwbGljaXR5KHByb2R1Y3QpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZ25vcmVTdGVwVmFsaWRhdG9yc109XCJwcm9kdWN0Lmlnbm9yZU1pbkNvdW50Q2hlY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dMb2FkZXJdPVwicXVhbnRpdHlTaG93TG9hZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja0NsZWFyRXZlbnQpPVwiY2xpY2tDbGVhckV2ZW50LmVtaXQoY2FydEl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImlucHV0UXVhbnRpdHkubmF0aXZlRm9jdXNhYmxlRWxlbWVudD8uYmx1cigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0zMiBzaHJpbmstMFwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctMzYgaXRlbXMtY2VudGVyIGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNhcnRJdGVtLmhlaWdodCB8fCBjYXJ0SXRlbS5sZW5ndGggfHwgY2FydEl0ZW0ud2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblN0YXJ0PVwiQHR1aS5zZXR0aW5nc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrU2V0dGluZ3MuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtci0yICFzZWxmLWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC14LTIgdGV4dC14cyB0ZXh0LXR1aS1iYXNlLTA3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiY2FydEl0ZW0ubWFya2VyXCI+0JzQsNGA0LrQuNGA0L7QstC60LA6IHt7IGNhcnRJdGVtLm1hcmtlciB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJjYXJ0SXRlbS53aWR0aFwiPtCo0LjRgNC40L3QsDoge3sgY2FydEl0ZW0ud2lkdGggfX0g0LwuPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FydEl0ZW0uaGVpZ2h0OyBlbHNlIGxlbmd0aFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+0JLRi9GB0L7RgtCwOiB7eyBjYXJ0SXRlbS5oZWlnaHQgfX0g0LwuPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNsZW5ndGg+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImNhcnRJdGVtLmxlbmd0aFwiPtCU0LvQuNC90LA6IHt7IGNhcnRJdGVtLmxlbmd0aCB9fSDQvC48L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vd3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAg0KHRg9C80LzQsDpcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+IHt7IGNhcnRJdGVtLmNvc3RSdWIgfCB0dWlGb3JtYXROdW1iZXI6IHsgcHJlY2lzaW9uOiAyLCBkZWNpbWFsU2VwYXJhdG9yOiAnLicsIHJvdW5kaW5nOiAnY2VpbCcgfSB8IGFzeW5jIH19IHt7ICdSVUInIHwgdHVpQ3VycmVuY3kgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8c2MtcHJpY2Utd2FyZWhvdXNlLXN0b2NrIFtwcm9kdWN0XT1cInByb2R1Y3RcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHVpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpY29uU3RhcnQ9XCJAdHVpLnRyYXNoXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrQ2xlYXJFdmVudC5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiFhYnNvbHV0ZSBsZWZ0LTEgdG9wLTEgbGc6IXJlbGF0aXZlIGxnOmxlZnQtMCBsZzp0b3AtMCBsZzptbC1hdXRvXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9zYy1ub2luZGV4LXdyYXBwZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNza2VsZXRvbj5cbiAgICA8ZGl2IGNsYXNzPVwidHVpLXNrZWxldG9uIGZsZXggaC1bOC4yNXJlbV0gdy1mdWxsIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLXhsXCI+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY2FydC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jYXJ0L2NhcnQtaXRlbS9zYy1jYXJ0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhcnQvY2FydC1pdGVtL3NjLWNhcnQtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5Q0FBeUM7QUFFekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBaUMsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFvQixtQkFBbUIsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSw2QkFBNkIsRUFBRSx3QkFBd0IsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQUVsRTs7R0FFRztBQTZCSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsbUJBQW1CO0lBNUI1RDs7UUE2Qkk7O1dBRUc7UUFDYSxrQkFBYSxHQUEyQixNQUFNLEVBQUUsQ0FBQztRQUVqRTs7V0FFRztRQUNjLHlCQUFvQixHQUE0QixNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztLQVVwRztJQVJHOzs7O09BSUc7SUFDTyxpQkFBaUIsQ0FBQyw2QkFBNEQ7UUFDcEYsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlFLENBQUM7K0dBbEJRLG1CQUFtQjttR0FBbkIsbUJBQW1CLHdHQUhqQixDQUFDLHFCQUFxQixDQUFDLGlEQzdDdEMsK2hRQTRKQSwyQ0RuSVEsWUFBWSx1TEFDWixZQUFZLCtCQUNaLFNBQVMsb0lBQ1QsT0FBTyxvRkFDUCw0QkFBNEIsaUxBQzVCLFdBQVcsc0lBQ1gsbUJBQW1CLHVaQUVuQixPQUFPLDRGQUNQLFlBQVksMEdBQ1osWUFBWSxxRkFDWiw2QkFBNkIsd0hBQzdCLHlCQUF5QiwrRkFDekIsOEJBQThCLG9JQUM5Qix3QkFBd0IsZ01BQ3hCLGVBQWUsK0NBQ2YsbUJBQW1CLDJRQUVuQix5QkFBeUI7OzRGQUtwQixtQkFBbUI7a0JBNUIvQixTQUFTO2lDQUNNLElBQUksWUFDTixjQUFjLFdBRWY7d0JBQ0wsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCw0QkFBNEI7d0JBQzVCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLDZCQUE2Qjt3QkFDN0IseUJBQXlCO3dCQUN6Qiw4QkFBOEI7d0JBQzlCLHdCQUF3Qjt3QkFDeEIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLFVBQVU7d0JBQ1YseUJBQXlCO3FCQUM1QixhQUNVLENBQUMscUJBQXFCLENBQUMsbUJBQ2pCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bmRlcnNjb3JlLWRhbmdsZSAqL1xuXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBvdXRwdXQsIE91dHB1dEVtaXR0ZXJSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTRUFSQ0hfVEVSTV9QUk9WSURFUlMgfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFR1aUN1cnJlbmN5UGlwZSB9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jb21tZXJjZSc7XG5pbXBvcnQgeyBUdWlBdXRvRm9jdXMgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFR1aUJ1dHRvbiwgVHVpRGlhbG9nQ29udGV4dCwgVHVpRm9ybWF0TnVtYmVyUGlwZSwgVHVpSGludCwgVHVpSWNvbiwgVHVpTGluayB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IFR1aUhpZ2hsaWdodCwgVHVpUHJldmlldywgVHVpUHJldmlld0RpYWxvZ1NlcnZpY2UgfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7IFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkvbGVnYWN5JztcblxuaW1wb3J0IHsgQ29zdFdpdGhEaXNjb3VudENvbXBvbmVudCwgU2NIb3ZlckltYWdlQ2Fyb3VzZWxDb21wb25lbnQsIFNjSW5wdXRRdWFudGl0eUNvbXBvbmVudCwgU2NQcmljZVdhcmVob3VzZVN0b2NrQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2F0YWxvZyc7XG5pbXBvcnQgeyBBYnN0cmFjdFNjUHJpY2VDYXJkIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBTY05vaW5kZXhXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbm9pbmRleC13cmFwcGVyJztcblxuLyoqXG4gKiDQmtC+0LzQv9C+0L3QtdC90YIg0LrQsNGA0YLQvtGH0LrQuCDRjdC70LXQvNC10L3RgtCwINC60L7RgNC30LjQvdGLLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnc2MtY2FydC1pdGVtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtY2FydC1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBUdWlCdXR0b24sXG4gICAgICAgIFR1aUljb24sXG4gICAgICAgIFR1aVRleHRmaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBUdWlIaW50LFxuICAgICAgICBUdWlMaW5rLFxuICAgICAgICBUdWlIaWdobGlnaHQsXG4gICAgICAgIFR1aUF1dG9Gb2N1cyxcbiAgICAgICAgU2NIb3ZlckltYWdlQ2Fyb3VzZWxDb21wb25lbnQsXG4gICAgICAgIENvc3RXaXRoRGlzY291bnRDb21wb25lbnQsXG4gICAgICAgIFNjUHJpY2VXYXJlaG91c2VTdG9ja0NvbXBvbmVudCxcbiAgICAgICAgU2NJbnB1dFF1YW50aXR5Q29tcG9uZW50LFxuICAgICAgICBUdWlDdXJyZW5jeVBpcGUsXG4gICAgICAgIFR1aUZvcm1hdE51bWJlclBpcGUsXG4gICAgICAgIFR1aVByZXZpZXcsXG4gICAgICAgIFNjTm9pbmRleFdyYXBwZXJDb21wb25lbnQsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtTRUFSQ0hfVEVSTV9QUk9WSURFUlNdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY0NhcnRJdGVtQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RTY1ByaWNlQ2FyZCB7XG4gICAgLyoqXG4gICAgICog0KHQvtCx0YvRgtC40LUg0L3QsNC20LDRgtC40Y8g0L3QsCDQutC90L7Qv9C60YMg0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjRjyDQutC+0L3RhNC40LPRg9GA0LDRhtC40LguXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGNsaWNrU2V0dGluZ3M6IE91dHB1dEVtaXR0ZXJSZWY8dm9pZD4gPSBvdXRwdXQoKTtcblxuICAgIC8qKlxuICAgICAqINCh0LXRgNCy0LjRgSDQtNC40LDQu9C+0LPQvtCy0L7Qs9C+INC+0LrQvdCwINC/0YDQtdC00LLQsNGA0LjRgtC10LvRjNC90L7Qs9C+INC/0YDQvtGB0LzQvtGC0YDQsC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHByZXZpZXdEaWFsb2dTZXJ2aWNlOiBUdWlQcmV2aWV3RGlhbG9nU2VydmljZSA9IGluamVjdChUdWlQcmV2aWV3RGlhbG9nU2VydmljZSk7XG5cbiAgICAvKipcbiAgICAgKiDQntGC0L7QsdGA0LDQttCw0LXRgiDRgdC/0LXRhtC40YTQuNC60LDRhtC40Y4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3BlY2lmaWNhdGlvblByZXZpZXdSZWZlcmVuY2Ug0KjQsNCx0LvQvtC9INGB0L/QtdGG0LjRhNC40LrQsNGG0LjQuC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2hvd1NwZWNpZmljYXRpb24oc3BlY2lmaWNhdGlvblByZXZpZXdSZWZlcmVuY2U6IFRlbXBsYXRlUmVmPFR1aURpYWxvZ0NvbnRleHQ+KTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmlld0RpYWxvZ1NlcnZpY2Uub3BlbihzcGVjaWZpY2F0aW9uUHJldmlld1JlZmVyZW5jZSkuc3Vic2NyaWJlKCk7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgICpuZ0lmPVwicHJvZHVjdCAmJiBjYXJ0SXRlbTsgZWxzZSBza2VsZXRvblwiXG4gICAgY2xhc3M9XCJyZWxhdGl2ZSBmbGV4IHctZnVsbCBnYXAtNCByb3VuZGVkLXhsIHAtMSB0ZXh0LWJvZHktcyBob3ZlcjpiZy10dWktYmFja2dyb3VuZC1uZXV0cmFsLTFcIlxuPlxuICAgIDxzYy1ub2luZGV4LXdyYXBwZXI+XG4gICAgICAgIEBsZXQgaXNEaXNhYmxlZCA9IHByb2R1Y3QuaXNIaWRkZW4gfHwgcHJvZHVjdC5pc051bGw7XG4gICAgICAgIDxzYy1ob3Zlci1pbWFnZS1jYXJvdXNlbFxuICAgICAgICAgICAgKGNsaWNrKT1cImlzRGlzYWJsZWQgPyBudWxsIDogY2xpY2tDYXJkRXZlbnQuZW1pdCgpXCJcbiAgICAgICAgICAgIFtpbWFnZXNdPVwiIWlzTW9iaWxlID8gZ2V0Q2FyZEltYWdlUHJldmlld0xpc3QocHJvZHVjdCkgOiBbZ2V0Q2FyZEltYWdlUHJldmlldygpXVwiXG4gICAgICAgICAgICBbaXNTaG93QWN0aW9uc109XCJmYWxzZVwiXG4gICAgICAgICAgICBjbGFzcz1cImFzcGVjdC1zcXVhcmUgdy0yNCBzaHJpbmstMCBjdXJzb3ItcG9pbnRlciBzZWxmLXN0YXJ0XCJcbiAgICAgICAgLz5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIGZsZXgtY29sIGp1c3RpZnktYmV0d2VlbiBnYXAtNCBtZDpmbGV4LXJvdyBtZDppdGVtcy1jZW50ZXIgbWQ6Z2FwLTVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdyb3cgZmxleC1jb2wgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFt0dWlIaWdobGlnaHRdPVwiKHNlYXJjaCQgfCBhc3luYykgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRleHQtdHVpLXRleHQtMDJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAg0JDRgNGC0LjQutGD0Ls6IHt7IHByb2R1Y3QuY29kZSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5ocmVmXT1cImhyZWYgPz8gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdHVpSGlnaGxpZ2h0XT1cIihzZWFyY2gkIHwgYXN5bmMpID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKTsgY2xpY2tDYXJkRXZlbnQuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiIXRleHQtYm9keS1tLWJvbGRcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBwcm9kdWN0Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9kdWN0LnN1cHBsaWVyU2t1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC10dWktdGV4dC0wMlwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgINCQ0YDRgtC40LrRg9C7INC/0YDQvtC40LfQstC+0LTQuNGC0LXQu9GPOiB7eyBwcm9kdWN0LnN1cHBsaWVyU2t1IH19XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9kdWN0Py5wYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgdGV4dC10dWktdGV4dC0wMlwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgINCd0L7RgNC80LAg0YPQv9Cw0LrQvtCy0LrQuDoge3sgcHJvZHVjdC5wYWNrIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8dHVpLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2R1Y3QuaWdub3JlTWluQ291bnRDaGVja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cIkB0dWkucGFja2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R1aUhpbnRdPVwibWluQ291bnRIaW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHVpSGludFNob3dEZWxheV09XCIxMDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1aUhpbnREaXJlY3Rpb249XCJ0b3BcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ib2R5LXhsIHRleHQtdHVpLXRleHQtMDEgb3BhY2l0eS05MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNtaW5Db3VudEhpbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAg0JTQvtGB0YLRg9C/0LXQvSDQt9Cw0LrQsNC3IDxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgINC/0YDQvtC40LfQstC+0LvRjNC90L7Qs9C+IDxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgINC60L7Qu9C40YfQtdGB0YLQstCwXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8c2MtY29zdC13aXRoLWRpc2NvdW50IFtwcm9kdWN0XT1cInByb2R1Y3RcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjYXJ0SXRlbS5zcGVjaWZpY2F0aW9uSW1nVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dTcGVjaWZpY2F0aW9uKHNwZWNpZmljYXRpb25QcmV2aWV3KVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgINCh0L/QtdGG0LjRhNC40LrQsNGG0LjRj1xuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgI3NwZWNpZmljYXRpb25QcmV2aWV3XG4gICAgICAgICAgICAgICAgICAgIGxldC1wcmV2aWV3XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8dHVpLXByZXZpZXdcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3RhdGFibGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3pvb21hYmxlXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpwb2x5bW9ycGhldXNPdXRsZXQ9XCJjYXJ0SXRlbS5zcGVjaWZpY2F0aW9uSW1nVXJsIGFzIHNyY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwicHJldmlld1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJjYXJ0SXRlbS5zcGVjaWZpY2F0aW9uSW1nVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvblN0YXJ0PVwiQHR1aS54XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIkNsb3NlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVpUHJldmlld0FjdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwcmV2aWV3LmNvbXBsZXRlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L3R1aS1wcmV2aWV3PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHNocmluay0wIGZsZXgtY29sIGdhcC00IHNtOmZsZXgtcm93IG1kOnctMS8yIGxnOnctMy81IHhsOnctMS8yIHhsOmdhcC04IDJ4bDp3LTIvNVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIgZ2FwLTQgbWQ6ZmxleC1jb2wgbWQ6aXRlbXMtc3RhcnQgbGc6ZmxleC1yb3cgbGc6aXRlbXMtY2VudGVyIGxnOmdhcC04XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzYy1pbnB1dC1xdWFudGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgI2lucHV0UXVhbnRpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0dWlBdXRvRm9jdXNdPVwiYXV0b0ZvY3VzZVF1YW50aXR5SW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dRdWFudGl0eUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInF1YW50aXR5Q29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0Nyb3NzXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0ZXBdPVwidW5pdHNIZWxwZXIucHJvZHVjdE11bHRpcGxpY2l0eShwcm9kdWN0KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWdub3JlU3RlcFZhbGlkYXRvcnNdPVwicHJvZHVjdC5pZ25vcmVNaW5Db3VudENoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TG9hZGVyXT1cInF1YW50aXR5U2hvd0xvYWRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2tDbGVhckV2ZW50KT1cImNsaWNrQ2xlYXJFdmVudC5lbWl0KGNhcnRJdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJpbnB1dFF1YW50aXR5Lm5hdGl2ZUZvY3VzYWJsZUVsZW1lbnQ/LmJsdXIoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInctMzIgc2hyaW5rLTBcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LTM2IGl0ZW1zLWNlbnRlciBnYXAtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjYXJ0SXRlbS5oZWlnaHQgfHwgY2FydEl0ZW0ubGVuZ3RoIHx8IGNhcnRJdGVtLndpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dWlJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25TdGFydD1cIkB0dWkuc2V0dGluZ3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja1NldHRpbmdzLmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXItMiAhc2VsZi1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAteC0yIHRleHQteHMgdGV4dC10dWktYmFzZS0wN1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImNhcnRJdGVtLm1hcmtlclwiPtCc0LDRgNC60LjRgNC+0LLQutCwOiB7eyBjYXJ0SXRlbS5tYXJrZXIgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwiY2FydEl0ZW0ud2lkdGhcIj7QqNC40YDQuNC90LA6IHt7IGNhcnRJdGVtLndpZHRoIH19INC8LjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNhcnRJdGVtLmhlaWdodDsgZWxzZSBsZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPtCS0YvRgdC+0YLQsDoge3sgY2FydEl0ZW0uaGVpZ2h0IH19INC8LjwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbGVuZ3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJjYXJ0SXRlbS5sZW5ndGhcIj7QlNC70LjQvdCwOiB7eyBjYXJ0SXRlbS5sZW5ndGggfX0g0LwuPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwid2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgINCh0YPQvNC80LA6XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPiB7eyBjYXJ0SXRlbS5jb3N0UnViIHwgdHVpRm9ybWF0TnVtYmVyOiB7IHByZWNpc2lvbjogMiwgZGVjaW1hbFNlcGFyYXRvcjogJy4nLCByb3VuZGluZzogJ2NlaWwnIH0gfCBhc3luYyB9fSB7eyAnUlVCJyB8IHR1aUN1cnJlbmN5IH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHNjLXByaWNlLXdhcmVob3VzZS1zdG9jayBbcHJvZHVjdF09XCJwcm9kdWN0XCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWNvblN0YXJ0PVwiQHR1aS50cmFzaFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbGlja0NsZWFyRXZlbnQuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIhYWJzb2x1dGUgbGVmdC0xIHRvcC0xIGxnOiFyZWxhdGl2ZSBsZzpsZWZ0LTAgbGc6dG9wLTAgbGc6bWwtYXV0b1wiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvc2Mtbm9pbmRleC13cmFwcGVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2tlbGV0b24+XG4gICAgPGRpdiBjbGFzcz1cInR1aS1za2VsZXRvbiBmbGV4IGgtWzguMjVyZW1dIHctZnVsbCBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC14bFwiPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -100,10 +100,10 @@ export class ScCartAddProductsFromCsvDialogComponent {
|
|
|
100
100
|
a.click();
|
|
101
101
|
this.window.URL.revokeObjectURL(url);
|
|
102
102
|
}
|
|
103
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
104
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
103
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCartAddProductsFromCsvDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
104
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ScCartAddProductsFromCsvDialogComponent, isStandalone: true, selector: "sc-cart-add-products-from-csv-dialog", ngImport: i0, template: "<div class=\"flex flex-col items-center gap-8\">\n <tui-loader\n [overlay]=\"true\"\n [showLoader]=\"isDownloadLoading()\"\n size=\"s\"\n class=\"mt-8\"\n >\n <button\n tuiLink\n [pseudo]=\"true\"\n type=\"button\"\n (click)=\"onDownloadClick.next()\"\n >\n \u041F\u0440\u0438\u043C\u0435\u0440 .csv \u0444\u0430\u0439\u043B\u0430\n </button>\n </tui-loader>\n\n <div class=\"flex w-full flex-col gap-1\">\n <label\n tuiInputFiles\n class=\"w-full\"\n >\n <input\n accept=\"text/csv\"\n tuiInputFiles\n [formControl]=\"control\"\n />\n </label>\n\n <tui-files class=\"tui-space_top-1\">\n <tui-file\n *ngIf=\"control.value as file\"\n [file]=\"file\"\n (remove)=\"removeFile()\"\n />\n </tui-files>\n </div>\n <div class=\"flex gap-2\">\n <button\n tuiButton\n [disabled]=\"!control.value\"\n [loading]=\"isSubmitLoading()\"\n iconStart=\"@tui.sc.send\"\n class=\"self-center\"\n (click)=\"onSubmit$.next()\"\n >\n \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\n </button>\n <button\n tuiButton\n (click)=\"context.$implicit.complete()\"\n type=\"button\"\n appearance=\"secondary\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }, { kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "component", type: i1.TuiFile, selector: "tui-file,a[tuiFile],button[tuiFile]", inputs: ["file", "state", "size", "showDelete", "showSize", "leftContent"], outputs: ["remove"] }, { kind: "component", type: i1.TuiInputFiles, selector: "label[tuiInputFiles]" }, { kind: "component", type: i1.TuiFilesComponent, selector: "tui-files", inputs: ["max", "expanded"], outputs: ["expandedChange"] }, { kind: "directive", type: i1.TuiInputFilesDirective, selector: "input[tuiInputFiles]", outputs: ["reject"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
105
105
|
}
|
|
106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCartAddProductsFromCsvDialogComponent, decorators: [{
|
|
107
107
|
type: Component,
|
|
108
108
|
args: [{ standalone: true, selector: 'sc-cart-add-products-from-csv-dialog', imports: [TuiLink, TuiLoader, TuiFiles, ReactiveFormsModule, NgIf, TuiButton, TuiButtonLoading], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col items-center gap-8\">\n <tui-loader\n [overlay]=\"true\"\n [showLoader]=\"isDownloadLoading()\"\n size=\"s\"\n class=\"mt-8\"\n >\n <button\n tuiLink\n [pseudo]=\"true\"\n type=\"button\"\n (click)=\"onDownloadClick.next()\"\n >\n \u041F\u0440\u0438\u043C\u0435\u0440 .csv \u0444\u0430\u0439\u043B\u0430\n </button>\n </tui-loader>\n\n <div class=\"flex w-full flex-col gap-1\">\n <label\n tuiInputFiles\n class=\"w-full\"\n >\n <input\n accept=\"text/csv\"\n tuiInputFiles\n [formControl]=\"control\"\n />\n </label>\n\n <tui-files class=\"tui-space_top-1\">\n <tui-file\n *ngIf=\"control.value as file\"\n [file]=\"file\"\n (remove)=\"removeFile()\"\n />\n </tui-files>\n </div>\n <div class=\"flex gap-2\">\n <button\n tuiButton\n [disabled]=\"!control.value\"\n [loading]=\"isSubmitLoading()\"\n iconStart=\"@tui.sc.send\"\n class=\"self-center\"\n (click)=\"onSubmit$.next()\"\n >\n \u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\n </button>\n <button\n tuiButton\n (click)=\"context.$implicit.complete()\"\n type=\"button\"\n appearance=\"secondary\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n </div>\n</div>\n" }]
|
|
109
109
|
}] });
|
|
@@ -73,10 +73,10 @@ export class ScCategoryCardComponent {
|
|
|
73
73
|
markForCheck() {
|
|
74
74
|
this.cdr.markForCheck();
|
|
75
75
|
}
|
|
76
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
77
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
76
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCategoryCardComponent, deps: [{ token: SC_URLS }, { token: SC_PATH_IMAGE_NOT_FOUND }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScCategoryCardComponent, selector: "sc-category-card", inputs: { category: { classPropertyName: "category", publicName: "category", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, enableHover: { classPropertyName: "enableHover", publicName: "enableHover", isSignal: false, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { clickOnFavoriteEvent: "clickOnFavoriteEvent" }, host: { properties: { "attr.data-size": "this.size" } }, ngImport: i0, template: "<div class=\"relative\">\n <a\n (tuiHoveredChange)=\"onHovered($event)\"\n [routerLink]=\"href ?? null\"\n class=\"category-button flex flex-col overflow-hidden rounded-tui-radius-m border border-tui-base-04 text-center\"\n >\n <div class=\"img-wrapper w-full grow overflow-hidden\">\n <picture *ngIf=\"category\">\n @if (category.properties?.imageWebp) {\n <source\n type=\"image/webp\"\n [srcset]=\"category.properties?.imageWebp | scMediaImageTransformer\"\n />\n }\n <img\n [src]=\"category.properties?.image | scMediaImageTransformer: true\"\n [alt]=\"category.name\"\n [ngClass]=\"{ '!object-contain p-2': appearance() === 'normal' || !category.properties?.image }\"\n class=\"size-full rounded-xl object-cover\"\n />\n </picture>\n\n <!-- \u0411\u043B\u043E\u043A \u0434\u043B\u044F \u0441\u043A\u0435\u043B\u0435\u0442\u043E\u043D\u0430 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0438. -->\n <div\n *ngIf=\"!category\"\n class=\"img-wrapper size-full bg-tui-base-02\"\n ></div>\n </div>\n\n <div class=\"name flex w-full items-center justify-center break-all\">\n @if (category) {\n @if (enableHover && !isMobile) {\n <tui-line-clamp\n [content]=\"category.name\"\n class=\"pointer-events-none\"\n [lineHeight]=\"size === 'm' ? 26 : 24\"\n [linesLimit]=\"isHover ? 4 : 2\"\n />\n } @else {\n {{ category.name }}\n }\n } @else {\n <div class=\"skeleton-name rounded-tui-radius-s bg-tui-base-02\"></div>\n }\n </div>\n </a>\n <sc-favorite-button\n *ngIf=\"category && (authStatus$ | async)\"\n [showLoader]=\"favoriteShowLoader\"\n [isFavorite]=\"category.isFavorite\"\n (clickEvent)=\"clickOnFavoriteEvent.emit()\"\n class=\"absolute left-1 top-1\"\n />\n</div>\n", styles: [":host{--tui-duration: .15s}:host[data-size=m] a.category-button{width:100%;height:12.5rem}:host[data-size=m] a.category-button .img-wrapper{max-height:8.75rem}:host[data-size=m] a.category-button .name{padding:.25rem 1rem;margin-block:auto;font-size:.9375rem;line-height:1.5rem;font-weight:800}:host[data-size=m] a.category-button .name .skeleton-name{width:10rem;height:1rem}:host[data-size=s] a.category-button{width:100%;height:10rem}:host[data-size=s] a.category-button .img-wrapper{max-height:7rem}:host[data-size=s] a.category-button .name{padding:.25rem .5rem;margin-block:auto;font-size:.8125rem;line-height:1.25rem;font-weight:800}:host[data-size=s] a.category-button .name .skeleton-name{width:7rem;height:.75rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.TuiLineClamp, selector: "tui-line-clamp", inputs: ["lineHeight", "content", "linesLimit"], outputs: ["overflownChange"] }, { kind: "directive", type: i4.TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "component", type: i5.ScFavoriteButtonComponent, selector: "sc-favorite-button", inputs: ["isFavorite", "showLoader", "disabled"], outputs: ["clickEvent"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.ScMediaImageTransformerPipe, name: "scMediaImageTransformer" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
78
78
|
}
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScCategoryCardComponent, decorators: [{
|
|
80
80
|
type: Component,
|
|
81
81
|
args: [{ selector: 'sc-category-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative\">\n <a\n (tuiHoveredChange)=\"onHovered($event)\"\n [routerLink]=\"href ?? null\"\n class=\"category-button flex flex-col overflow-hidden rounded-tui-radius-m border border-tui-base-04 text-center\"\n >\n <div class=\"img-wrapper w-full grow overflow-hidden\">\n <picture *ngIf=\"category\">\n @if (category.properties?.imageWebp) {\n <source\n type=\"image/webp\"\n [srcset]=\"category.properties?.imageWebp | scMediaImageTransformer\"\n />\n }\n <img\n [src]=\"category.properties?.image | scMediaImageTransformer: true\"\n [alt]=\"category.name\"\n [ngClass]=\"{ '!object-contain p-2': appearance() === 'normal' || !category.properties?.image }\"\n class=\"size-full rounded-xl object-cover\"\n />\n </picture>\n\n <!-- \u0411\u043B\u043E\u043A \u0434\u043B\u044F \u0441\u043A\u0435\u043B\u0435\u0442\u043E\u043D\u0430 \u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0438. -->\n <div\n *ngIf=\"!category\"\n class=\"img-wrapper size-full bg-tui-base-02\"\n ></div>\n </div>\n\n <div class=\"name flex w-full items-center justify-center break-all\">\n @if (category) {\n @if (enableHover && !isMobile) {\n <tui-line-clamp\n [content]=\"category.name\"\n class=\"pointer-events-none\"\n [lineHeight]=\"size === 'm' ? 26 : 24\"\n [linesLimit]=\"isHover ? 4 : 2\"\n />\n } @else {\n {{ category.name }}\n }\n } @else {\n <div class=\"skeleton-name rounded-tui-radius-s bg-tui-base-02\"></div>\n }\n </div>\n </a>\n <sc-favorite-button\n *ngIf=\"category && (authStatus$ | async)\"\n [showLoader]=\"favoriteShowLoader\"\n [isFavorite]=\"category.isFavorite\"\n (clickEvent)=\"clickOnFavoriteEvent.emit()\"\n class=\"absolute left-1 top-1\"\n />\n</div>\n", styles: [":host{--tui-duration: .15s}:host[data-size=m] a.category-button{width:100%;height:12.5rem}:host[data-size=m] a.category-button .img-wrapper{max-height:8.75rem}:host[data-size=m] a.category-button .name{padding:.25rem 1rem;margin-block:auto;font-size:.9375rem;line-height:1.5rem;font-weight:800}:host[data-size=m] a.category-button .name .skeleton-name{width:10rem;height:1rem}:host[data-size=s] a.category-button{width:100%;height:10rem}:host[data-size=s] a.category-button .img-wrapper{max-height:7rem}:host[data-size=s] a.category-button .name{padding:.25rem .5rem;margin-block:auto;font-size:.8125rem;line-height:1.25rem;font-weight:800}:host[data-size=s] a.category-button .name .skeleton-name{width:7rem;height:.75rem}\n"] }]
|
|
82
82
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { ChangeDetectionStrategy, Component, HostBinding, inject, Input } from '@angular/core';
|
|
3
|
-
import { ScNoindexWrapperComponent } from '../../../noindex-wrapper/sc-noindex-wrapper.component';
|
|
4
|
-
import { ScFormatDatePipe } from '../../../pipes';
|
|
5
3
|
import { ScWarehouseService } from '@snabcentr/client-core';
|
|
6
4
|
import { TuiHint } from '@taiga-ui/core';
|
|
7
5
|
import { TuiBadge } from '@taiga-ui/kit';
|
|
6
|
+
import { ScNoindexWrapperComponent } from '../../noindex-wrapper';
|
|
7
|
+
import { ScFormatDatePipe } from '../../pipes';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@angular/common";
|
|
10
10
|
import * as i2 from "@taiga-ui/core";
|
|
@@ -22,10 +22,10 @@ export class CostWithDiscountComponent {
|
|
|
22
22
|
*/
|
|
23
23
|
this.size = 'm';
|
|
24
24
|
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CostWithDiscountComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", 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 >\n {{ product.costRubString }}\n </span>\n\n <sc-noindex-wrapper>\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 </sc-noindex-wrapper>\n </div>\n\n <span\n *ngIf=\"!product.priceInRub\"\n class=\"font-extrabold text-tui-text-02\"\n >\n {{ product.costString }}\n </span>\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"], outputs: ["tuiHintVisible"] }, { kind: "pipe", type: ScFormatDatePipe, name: "scFormatDate" }, { kind: "component", type: ScNoindexWrapperComponent, selector: "sc-noindex-wrapper" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27
27
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CostWithDiscountComponent, decorators: [{
|
|
29
29
|
type: Component,
|
|
30
30
|
args: [{ standalone: true, selector: 'sc-cost-with-discount', imports: [CommonModule, TuiBadge, ...TuiHint, ScFormatDatePipe, ScNoindexWrapperComponent], 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 >\n {{ product.costRubString }}\n </span>\n\n <sc-noindex-wrapper>\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 </sc-noindex-wrapper>\n </div>\n\n <span\n *ngIf=\"!product.priceInRub\"\n class=\"font-extrabold text-tui-text-02\"\n >\n {{ product.costString }}\n </span>\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"] }]
|
|
31
31
|
}], propDecorators: { product: [{
|
|
@@ -36,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
36
36
|
type: HostBinding,
|
|
37
37
|
args: ['attr.data-size']
|
|
38
38
|
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zdC13aXRoLWRpc2NvdW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9jYXRhbG9nL2Nvc3Qtd2l0aC1kaXNjb3VudC9jb3N0LXdpdGgtZGlzY291bnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvY29zdC13aXRoLWRpc2NvdW50L2Nvc3Qtd2l0aC1kaXNjb3VudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQTJCLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckYsT0FBTyxFQUFFLE9BQU8sRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7OztBQUUvQzs7R0FFRztBQVNILE1BQU0sT0FBTyx5QkFBeUI7SUFSdEM7UUFTSTs7V0FFRztRQUNhLHFCQUFnQixHQUFvQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBUTNIOztXQUVHO1FBR0ksU0FBSSxHQUF3QixHQUFHLENBQUM7S0FDMUM7K0dBbEJZLHlCQUF5QjttR0FBekIseUJBQXlCLHdMQ3JCdEMsMnJFQXNEQSxzY0R0Q2MsWUFBWSx3TEFBRSxRQUFRLG1SQUFjLGdCQUFnQixxREFBRSx5QkFBeUI7OzRGQUtoRix5QkFBeUI7a0JBUnJDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLHVCQUF1QixXQUN4QixDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUseUJBQXlCLENBQUMsbUJBR3pFLHVCQUF1QixDQUFDLE1BQU07OEJBWXhDLE9BQU87c0JBRGIsS0FBSztnQkFRQyxJQUFJO3NCQUZWLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTY0lXYXJlaG91c2UsIFNjUHJvZHVjdCwgU2NXYXJlaG91c2VTZXJ2aWNlIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBUdWlIaW50LCBUdWlTaXplTCwgVHVpU2l6ZVMgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBUdWlCYWRnZSB9IGZyb20gJ0B0YWlnYS11aS9raXQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTY05vaW5kZXhXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbm9pbmRleC13cmFwcGVyJztcbmltcG9ydCB7IFNjRm9ybWF0RGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINGG0LXQvdGC0Ysg0YLQvtCy0LDRgNCwINGBINC+0YLQvtCx0YDQsNC20LXQvdC40LXQvCDRgdC60LjQtNC60LguXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzYy1jb3N0LXdpdGgtZGlzY291bnQnLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFR1aUJhZGdlLCAuLi5UdWlIaW50LCBTY0Zvcm1hdERhdGVQaXBlLCBTY05vaW5kZXhXcmFwcGVyQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29zdC13aXRoLWRpc2NvdW50LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vY29zdC13aXRoLWRpc2NvdW50LmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ29zdFdpdGhEaXNjb3VudENvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDQstGL0LHRgNCw0L3QvdC+0LPQviDRgdC60LvQsNC00LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHdhcmVob3VzZVNlbGVjdCQ6IE9ic2VydmFibGU8U2NJV2FyZWhvdXNlIHwgbnVsbD4gPSBpbmplY3QoU2NXYXJlaG91c2VTZXJ2aWNlKS5nZXRXYXJlaG91c2VTZWxlY3RDaGFuZ2UkKCk7XG5cbiAgICAvKipcbiAgICAgKiDQntCx0YrQtdC60YIg0YLQvtCy0LDRgNCwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHByb2R1Y3Q6IFNjUHJvZHVjdDtcblxuICAgIC8qKlxuICAgICAqINCg0LDQt9C80LXRgCDQutC+0LzQv9C+0L3QtdC90YLQsC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXNpemUnKVxuICAgIHB1YmxpYyBzaXplOiBUdWlTaXplUyB8IFR1aVNpemVMID0gJ20nO1xufVxuIiwiQGlmIChwcm9kdWN0KSB7XG4gICAgPGRpdlxuICAgICAgICAqbmdJZj1cIndhcmVob3VzZVNlbGVjdCQgfCBhc3luYyBhcyB3YXJlaG91c2VTZWxlY3RcIlxuICAgICAgICBjbGFzcz1cImZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBnYXAteC0yIGdhcC15LTFcIlxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGl0ZW1zLWNlbnRlciBnYXAteC0yIGdhcC15LTFcIj5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgW2NsYXNzLnRleHQtdHVpLXRleHQtMDJdPVwiIXByb2R1Y3QuaXNXYXJlaG91c2VTdG9ja0V4aXN0KHdhcmVob3VzZVNlbGVjdC5pZClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29zdFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgcHJvZHVjdC5jb3N0UnViU3RyaW5nIH19XG4gICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgIDxzYy1ub2luZGV4LXdyYXBwZXI+XG4gICAgICAgICAgICAgICAgPHR1aS1iYWRnZVxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInByb2R1Y3QuZGlzY291bnQgYXMgZGlzY291bnRcIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIid2YXIoLS10dWktc3RhdHVzLXBvc2l0aXZlKSdcIlxuICAgICAgICAgICAgICAgICAgICBbdHVpSGludF09XCJkaXNjb3VudEhpbnRcIlxuICAgICAgICAgICAgICAgICAgICBbdHVpSGludFNob3dEZWxheV09XCIxMDBcIlxuICAgICAgICAgICAgICAgICAgICB0dWlIaW50RGlyZWN0aW9uPVwidG9wXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvZHkteHNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHR1aS1iYWRnZVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJwcm9kdWN0LmRpc2NvdW50IGFzIGRpc2NvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cIid2YXIoLS10dWktYmFja2dyb3VuZC1iYXNlKSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJvZHkteHMtYm9sZCB0ZXh0LXR1aS10ZXh0LTAyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgZGlzY291bnQucGVyY2VudCB9fSVcbiAgICAgICAgICAgICAgICAgICAgPC90dWktYmFkZ2U+XG5cbiAgICAgICAgICAgICAgICAgICAgQGxldCBleHBpcmVkQXQgPSBwcm9kdWN0LmRpc2NvdW50LmV4cGlyZWRBdCB8IHNjRm9ybWF0RGF0ZTtcblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMC41XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImZsZXggbGluZS10aHJvdWdoXCI+e3sgcHJvZHVjdC5kaXNjb3VudENvc3RTdHJpbmcgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZXhwaXJlZEF0XCI+0LTQviB7eyBleHBpcmVkQXQuc3Vic3RyaW5nKDAsIDUpIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Rpc2NvdW50SGludD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LWJvbGRcIj57eyBwcm9kdWN0LmRpc2NvdW50Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJleHBpcmVkQXRcIj7QlNCw0YLQsCDQvtC60L7QvdGH0LDQvdC40Y86IHt7IGV4cGlyZWRBdCB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvdHVpLWJhZGdlPlxuICAgICAgICAgICAgPC9zYy1ub2luZGV4LXdyYXBwZXI+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIiFwcm9kdWN0LnByaWNlSW5SdWJcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb250LWV4dHJhYm9sZCB0ZXh0LXR1aS10ZXh0LTAyXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgcHJvZHVjdC5jb3N0U3RyaW5nIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbn1cbiJdfQ==
|
|
@@ -46,10 +46,10 @@ export class ScDownloadPriceListComponent {
|
|
|
46
46
|
*/
|
|
47
47
|
this.mimeTypes = ScMimeTypes;
|
|
48
48
|
}
|
|
49
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
50
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScDownloadPriceListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
50
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: ScDownloadPriceListComponent, isStandalone: true, selector: "sc-download-price-list", inputs: { categoryId: { classPropertyName: "categoryId", publicName: "categoryId", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let request = request$ | async;\n@let pdfLoading = request === mimeTypes.pdf;\n@let csvLoading = request === mimeTypes.csv;\n\n<div class=\"dropdown flex flex-col gap-2 p-4\">\n <button\n tuiButton\n [loading]=\"pdfLoading\"\n (click)=\"onDownload.next(mimeTypes.pdf)\"\n iconStart=\"@tui.sc.file-p\"\n size=\"s\"\n [tuiHint]=\"pdfLoading ? pdfLoadingHint : null\"\n appearance=\"mono\"\n >\n \u0421\u043A\u0430\u0447\u0430\u0442\u044C \u043F\u0440\u0430\u0439\u0441 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 PDF\n </button>\n <button\n tuiButton\n [loading]=\"csvLoading\"\n (click)=\"onDownload.next(mimeTypes.csv)\"\n iconStart=\"@tui.sc.file-x\"\n size=\"s\"\n appearance=\"mono\"\n >\n \u0421\u043A\u0430\u0447\u0430\u0442\u044C \u043F\u0440\u0430\u0439\u0441 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 CSV\n </button>\n</div>\n", dependencies: [{ kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "component", type: TuiButtonLoading, selector: "[tuiButton][loading],[tuiIconButton][loading]", inputs: ["size", "loading"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: i1.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintContext", "tuiHintAppearance", "tuiHint"], outputs: ["tuiHintVisible"] }] }); }
|
|
51
51
|
}
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScDownloadPriceListComponent, decorators: [{
|
|
53
53
|
type: Component,
|
|
54
54
|
args: [{ standalone: true, selector: 'sc-download-price-list', imports: [TuiAppearance, TuiWithAppearance, TuiIcons, TuiWithIcons, TuiButton, TuiButtonLoading, AsyncPipe, TuiHint], template: "@let request = request$ | async;\n@let pdfLoading = request === mimeTypes.pdf;\n@let csvLoading = request === mimeTypes.csv;\n\n<div class=\"dropdown flex flex-col gap-2 p-4\">\n <button\n tuiButton\n [loading]=\"pdfLoading\"\n (click)=\"onDownload.next(mimeTypes.pdf)\"\n iconStart=\"@tui.sc.file-p\"\n size=\"s\"\n [tuiHint]=\"pdfLoading ? pdfLoadingHint : null\"\n appearance=\"mono\"\n >\n \u0421\u043A\u0430\u0447\u0430\u0442\u044C \u043F\u0440\u0430\u0439\u0441 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 PDF\n </button>\n <button\n tuiButton\n [loading]=\"csvLoading\"\n (click)=\"onDownload.next(mimeTypes.csv)\"\n iconStart=\"@tui.sc.file-x\"\n size=\"s\"\n appearance=\"mono\"\n >\n \u0421\u043A\u0430\u0447\u0430\u0442\u044C \u043F\u0440\u0430\u0439\u0441 \u0432 \u0444\u043E\u0440\u043C\u0430\u0442\u0435 CSV\n </button>\n</div>\n" }]
|
|
55
55
|
}] });
|
|
@@ -63,10 +63,10 @@ export class ScHoverImageCarouselComponent {
|
|
|
63
63
|
this.currentIndex.set(index);
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
66
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScHoverImageCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScHoverImageCarouselComponent, isStandalone: true, selector: "sc-hover-image-carousel", inputs: { images: { classPropertyName: "images", publicName: "images", isSignal: true, isRequired: true, transformFunction: null }, isShowActions: { classPropertyName: "isShowActions", publicName: "isShowActions", isSignal: true, isRequired: false, transformFunction: null }, productName: { classPropertyName: "productName", publicName: "productName", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mousemove.silent": "onHover($event.offsetX, $event.target)", "mouseleave.silent": "onLeave()" } }, ngImport: i0, template: "<div\n class=\"overflow-hidden rounded-xl\"\n [class.mb-2]=\"images().length <= 1 && isShowActions()\"\n [style.aspect-ratio]=\"'20/19'\"\n>\n @let image = currentImage();\n <picture>\n @if (image.imageWebp) {\n <source\n type=\"image/webp\"\n [srcset]=\"image.imageWebp\"\n />\n }\n\n @if (image.image) {\n <img\n [src]=\"image.image\"\n [alt]=\"image.alt\"\n class=\"size-full rounded-xl object-contain\"\n />\n }\n </picture>\n</div>\n@if (images().length > 1 && isShowActions()) {\n <div\n (mousemove.silent)=\"$event.stopPropagation()\"\n class=\"flex justify-center\"\n >\n <button\n *tuiRepeatTimes=\"let indexItem of images().length\"\n #element\n tuiButton\n type=\"button\"\n class=\"button button_small\"\n [appearance]=\"indexItem === currentIndex() ? 'primary' : 'secondary'\"\n (tuiHoveredChange)=\"onDotHovered($event, indexItem)\"\n ></button>\n </div>\n}\n", styles: [".button{flex-shrink:0}.button:first-child{margin-inline-start:0}.button:last-child{margin-inline-end:0}.button_small{inline-size:.5rem;block-size:.5rem;font-size:0;padding:0;margin:0}.button_small:not(:first-child){margin-left:.5rem}\n"], dependencies: [{ kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
68
68
|
}
|
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScHoverImageCarouselComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
71
71
|
args: [{ standalone: true, selector: 'sc-hover-image-carousel', imports: [TuiRepeatTimes, TuiButton, TuiHovered], host: {
|
|
72
72
|
'(mousemove.silent)': 'onHover($event.offsetX, $event.target)',
|