@snabcentr/client-ui 0.15.5 → 0.15.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @snabcentr/client-ui might be problematic. Click here for more details.
- package/catalog/categories-list/sc-categories-list.component.d.ts +10 -4
- package/esm2020/cart/cart-item-mobile/sc-cart-item-mobile.component.mjs +3 -3
- package/esm2020/catalog/categories-list/sc-categories-list.component.mjs +33 -12
- package/esm2020/catalog/price-card/sc-price-card.component.mjs +3 -3
- package/fesm2015/snabcentr-client-ui.mjs +30 -12
- package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
- package/fesm2020/snabcentr-client-ui.mjs +29 -12
- package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
- package/package.json +1 -1
| @@ -1352,10 +1352,10 @@ class ScCartItemMobileComponent { | |
| 1352 1352 | 
             
                }
         | 
| 1353 1353 | 
             
            }
         | 
| 1354 1354 | 
             
            ScCartItemMobileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCartItemMobileComponent, deps: [{ token: UnitsHelper }, { token: TuiPreviewDialogService }, { token: SC_URLS }, { token: SC_PATH_IMAGE_NOT_FOUND }], target: i0.ɵɵFactoryTarget.Component });
         | 
| 1355 | 
            -
            ScCartItemMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScCartItemMobileComponent, selector: "sc-cart-item-mobile", inputs: { cartItem: "cartItem" }, outputs: { quantityValueChanges: "quantityValueChanges", clickDeleteEvent: "clickDeleteEvent", clickSettingsEvent: "clickSettingsEvent", clickCardEvent: "clickCardEvent" }, viewQueries: [{ propertyName: "specificationPreviewRef", first: true, predicate: ["specificationPreview"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"cartItem && product; else skeleton\">\n    <!-- TODO: \u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u0430.\n    <button tuiIconButton size=\"m\" icon=\"scIconVerticalThreeDots\" appearance=\"float\" tuiMode=\"onLight\" class=\"!absolute right-0 top-0\"></button> -->\n    <div class=\"flex bg-white border border-tui-base-04 shadow-sc-2 rounded-xl min-w-[18rem] gap-2 p-2\">\n        <div class=\"flex w-40 items-center\">\n            <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImage()\" [alt]=\"product.name\" class=\"rounded-xl w-full max-h-full object-cover\" />\n        </div>\n        <div class=\"flex flex-col sm:flex-row sm:gap-5 items-center gap-2 justify-between w-full\">\n            <div class=\"flex flex-col max-w-full gap-1\">\n                <a tuiLink (click)=\"clickCardEvent.emit()\">\n                    <span class=\"font-bold\">{{ product.name }}</span>\n                </a>\n\n                <div class=\"flex flex-wrap gap-y-1 gap-x-2 w-full text-xs text-tui-base-05\">\n                    <p *ngIf=\"product.pack\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n                    <p>\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n                </div>\n\n                <div class=\"flex flex-wrap items-center gap-y-1 gap-x-2 w-full\">\n                    <p *ngIf=\"!product.priceInRub\" class=\"font-bold\">{{ product.costString }}</p>\n                    <p class=\"font-bold text-xs text-tui-base-05\">{{ product.costRubString }}</p>\n                    <span *ngIf=\"product.discount\" class=\"flex items-center\">\n                        <span class=\"line-through\">{{ product.discountCostString }}</span>  \n                        <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n                        <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"!text-xs !h-4\"></tui-svg>\n                        <ng-template #discountHint>\n                            <div class=\"font-bold\">{{ product.discount.name }}</div>\n                            <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n                        </ng-template>\n                    </span>\n                </div>\n\n                <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n\n                <div *ngIf=\"cartItem.height || cartItem.length || cartItem.width\" class=\"flex gap-1 items-center\">\n                    <button\n                        tuiIconButton\n                        icon=\"tuiIconSettings\"\n                        (click)=\"clickSettingsEvent.emit()\"\n                        size=\"s\"\n                        appearance=\"secondary\"\n                        tuiMode=\"onLight\"\n                        class=\"mr-2 !self-center\"\n                    ></button>\n                    <div class=\"flex flex-wrap gap-x-2 font-thin text-xs text-tui-base-04\">\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                </div>\n\n                <a tuiLink *ngIf=\"cartItem.specificationImgUrl\" (click)=\"showSpecification()\">\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F</a>\n                <ng-template #specificationPreview let-preview>\n                    <tui-preview [rotatable]=\"false\" [zoomable]=\"false\">\n                        <img *polymorpheusOutlet=\"cartItem.specificationImgUrl as src\" alt=\"preview\" [src]=\"cartItem.specificationImgUrl\" />\n                        <button icon=\"tuiIconClose\" title=\"Close\" tuiIconButton tuiPreviewAction type=\"button\" (click)=\"preview.complete()\"></button>\n                    </tui-preview>\n                </ng-template>\n | 
| 1355 | 
            +
            ScCartItemMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScCartItemMobileComponent, selector: "sc-cart-item-mobile", inputs: { cartItem: "cartItem" }, outputs: { quantityValueChanges: "quantityValueChanges", clickDeleteEvent: "clickDeleteEvent", clickSettingsEvent: "clickSettingsEvent", clickCardEvent: "clickCardEvent" }, viewQueries: [{ propertyName: "specificationPreviewRef", first: true, predicate: ["specificationPreview"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"cartItem && product; else skeleton\">\n    <!-- TODO: \u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u0430.\n    <button tuiIconButton size=\"m\" icon=\"scIconVerticalThreeDots\" appearance=\"float\" tuiMode=\"onLight\" class=\"!absolute right-0 top-0\"></button> -->\n    <div class=\"flex bg-white border border-tui-base-04 shadow-sc-2 rounded-xl min-w-[18rem] gap-2 p-2\">\n        <div class=\"flex w-40 items-center\">\n            <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImage()\" [alt]=\"product.name\" class=\"rounded-xl w-full max-h-full object-cover\" />\n        </div>\n        <div class=\"flex flex-col sm:flex-row sm:gap-5 items-center gap-2 justify-between w-full\">\n            <div class=\"flex flex-col self-start max-w-full gap-1\">\n                <a tuiLink (click)=\"clickCardEvent.emit()\">\n                    <span class=\"font-bold\">{{ product.name }}</span>\n                </a>\n\n                <div class=\"flex flex-wrap gap-y-1 gap-x-2 w-full text-xs text-tui-base-05\">\n                    <p *ngIf=\"product.pack\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n                    <p>\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n                </div>\n\n                <div class=\"flex flex-wrap items-center gap-y-1 gap-x-2 w-full\">\n                    <p *ngIf=\"!product.priceInRub\" class=\"font-bold\">{{ product.costString }}</p>\n                    <p class=\"font-bold text-xs text-tui-base-05\">{{ product.costRubString }}</p>\n                    <span *ngIf=\"product.discount\" class=\"flex items-center\">\n                        <span class=\"line-through\">{{ product.discountCostString }}</span>  \n                        <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n                        <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"!text-xs !h-4\"></tui-svg>\n                        <ng-template #discountHint>\n                            <div class=\"font-bold\">{{ product.discount.name }}</div>\n                            <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n                        </ng-template>\n                    </span>\n                </div>\n\n                <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n\n                <div *ngIf=\"cartItem.height || cartItem.length || cartItem.width\" class=\"flex gap-1 items-center\">\n                    <button\n                        tuiIconButton\n                        icon=\"tuiIconSettings\"\n                        (click)=\"clickSettingsEvent.emit()\"\n                        size=\"s\"\n                        appearance=\"secondary\"\n                        tuiMode=\"onLight\"\n                        class=\"mr-2 !self-center\"\n                    ></button>\n                    <div class=\"flex flex-wrap gap-x-2 font-thin text-xs text-tui-base-04\">\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                </div>\n\n                <a tuiLink *ngIf=\"cartItem.specificationImgUrl\" (click)=\"showSpecification()\">\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F</a>\n                <ng-template #specificationPreview let-preview>\n                    <tui-preview [rotatable]=\"false\" [zoomable]=\"false\">\n                        <img *polymorpheusOutlet=\"cartItem.specificationImgUrl as src\" alt=\"preview\" [src]=\"cartItem.specificationImgUrl\" />\n                        <button icon=\"tuiIconClose\" title=\"Close\" tuiIconButton tuiPreviewAction type=\"button\" (click)=\"preview.complete()\"></button>\n                    </tui-preview>\n                </ng-template>\n            </div>\n            <div class=\"flex flex-col self-start gap-1 sm:mr-9 sm:self-center\">\n                <div class=\"flex gap-2\">\n                    <sc-input-quantity\n                        #inputQuantity\n                        *ngIf=\"quantityControl\"\n                        [formControl]=\"quantityControl\"\n                        [showCross]=\"false\"\n                        size=\"s\"\n                        [step]=\"unitsHelper.productMultiplicity(product)\"\n                        (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n                        class=\"w-28\"\n                    ></sc-input-quantity>\n                    <button tuiIconButton icon=\"tuiIconTrash2\" shape=\"rounded\" size=\"xs\" (click)=\"clickDeleteEvent.emit()\"></button>\n                </div>\n                <p class=\"font-bold text-tui-text-01 text-sm\">\u0418\u0442\u043E\u0433\u043E: {{ cartItem.costRub | tuiFormatNumber }} {{ 'RUB' | tuiCurrency }}</p>\n            </div>\n        </div>\n    </div>\n</ng-container>\n\n<ng-template #skeleton>\n    <div class=\"flex gap-2 w-full\">\n        <div class=\"h-20 w-20 bg-tui-base-02 rounded-xl\"></div>\n        <div class=\"flex flex-col grow gap-2.5 bg-white\">\n            <div class=\"w-full h-4 rounded-xl bg-tui-base-02\"></div>\n            <div class=\"w-3/5 h-4 rounded-xl bg-tui-base-02\"></div>\n            <div class=\"w-4/5 h-4 rounded-xl bg-tui-base-02\"></div>\n        </div>\n    </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { kind: "component", type: ScInputQuantityComponent, selector: "sc-input-quantity", inputs: ["step", "showLoader", "showCross", "appearance", "isDisabled", "size"], outputs: ["clickClearEvent"] }, { kind: "component", type: ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint", "fromMain"] }, { kind: "component", type: i4.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "directive", type: i4.TuiModeDirective, selector: "[tuiMode]", inputs: ["tuiMode"] }, { kind: "component", type: i4.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "directive", type: i4.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { kind: "directive", type: i4.TuiHintDriverDirective, selector: "[tuiHint]" }, { kind: "directive", type: i4.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { kind: "directive", type: i4.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i7.TuiPreviewComponent, selector: "tui-preview", inputs: ["zoomable", "rotatable"] }, { kind: "directive", type: i7.TuiPreviewActionDirective, selector: "[tuiPreviewAction]" }, { kind: "directive", type: i2$1.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "pipe", type: i9.TuiCurrencyPipe, name: "tuiCurrency" }, { kind: "pipe", type: i4.TuiFormatNumberPipe, name: "tuiFormatNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
         | 
| 1356 1356 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCartItemMobileComponent, decorators: [{
         | 
| 1357 1357 | 
             
                        type: Component,
         | 
| 1358 | 
            -
                        args: [{ selector: 'sc-cart-item-mobile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"cartItem && product; else skeleton\">\n    <!-- TODO: \u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u0430.\n    <button tuiIconButton size=\"m\" icon=\"scIconVerticalThreeDots\" appearance=\"float\" tuiMode=\"onLight\" class=\"!absolute right-0 top-0\"></button> -->\n    <div class=\"flex bg-white border border-tui-base-04 shadow-sc-2 rounded-xl min-w-[18rem] gap-2 p-2\">\n        <div class=\"flex w-40 items-center\">\n            <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImage()\" [alt]=\"product.name\" class=\"rounded-xl w-full max-h-full object-cover\" />\n        </div>\n        <div class=\"flex flex-col sm:flex-row sm:gap-5 items-center gap-2 justify-between w-full\">\n            <div class=\"flex flex-col max-w-full gap-1\">\n                <a tuiLink (click)=\"clickCardEvent.emit()\">\n                    <span class=\"font-bold\">{{ product.name }}</span>\n                </a>\n\n                <div class=\"flex flex-wrap gap-y-1 gap-x-2 w-full text-xs text-tui-base-05\">\n                    <p *ngIf=\"product.pack\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n                    <p>\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n                </div>\n\n                <div class=\"flex flex-wrap items-center gap-y-1 gap-x-2 w-full\">\n                    <p *ngIf=\"!product.priceInRub\" class=\"font-bold\">{{ product.costString }}</p>\n                    <p class=\"font-bold text-xs text-tui-base-05\">{{ product.costRubString }}</p>\n                    <span *ngIf=\"product.discount\" class=\"flex items-center\">\n                        <span class=\"line-through\">{{ product.discountCostString }}</span>  \n                        <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n                        <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"!text-xs !h-4\"></tui-svg>\n                        <ng-template #discountHint>\n                            <div class=\"font-bold\">{{ product.discount.name }}</div>\n                            <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n                        </ng-template>\n                    </span>\n                </div>\n\n                <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n\n                <div *ngIf=\"cartItem.height || cartItem.length || cartItem.width\" class=\"flex gap-1 items-center\">\n                    <button\n                        tuiIconButton\n                        icon=\"tuiIconSettings\"\n                        (click)=\"clickSettingsEvent.emit()\"\n                        size=\"s\"\n                        appearance=\"secondary\"\n                        tuiMode=\"onLight\"\n                        class=\"mr-2 !self-center\"\n                    ></button>\n                    <div class=\"flex flex-wrap gap-x-2 font-thin text-xs text-tui-base-04\">\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                </div>\n\n                <a tuiLink *ngIf=\"cartItem.specificationImgUrl\" (click)=\"showSpecification()\">\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F</a>\n                <ng-template #specificationPreview let-preview>\n                    <tui-preview [rotatable]=\"false\" [zoomable]=\"false\">\n                        <img *polymorpheusOutlet=\"cartItem.specificationImgUrl as src\" alt=\"preview\" [src]=\"cartItem.specificationImgUrl\" />\n                        <button icon=\"tuiIconClose\" title=\"Close\" tuiIconButton tuiPreviewAction type=\"button\" (click)=\"preview.complete()\"></button>\n                    </tui-preview>\n                </ng-template>\n | 
| 1358 | 
            +
                        args: [{ selector: 'sc-cart-item-mobile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"cartItem && product; else skeleton\">\n    <!-- TODO: \u041D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u0430 \u0440\u0435\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u0430.\n    <button tuiIconButton size=\"m\" icon=\"scIconVerticalThreeDots\" appearance=\"float\" tuiMode=\"onLight\" class=\"!absolute right-0 top-0\"></button> -->\n    <div class=\"flex bg-white border border-tui-base-04 shadow-sc-2 rounded-xl min-w-[18rem] gap-2 p-2\">\n        <div class=\"flex w-40 items-center\">\n            <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImage()\" [alt]=\"product.name\" class=\"rounded-xl w-full max-h-full object-cover\" />\n        </div>\n        <div class=\"flex flex-col sm:flex-row sm:gap-5 items-center gap-2 justify-between w-full\">\n            <div class=\"flex flex-col self-start max-w-full gap-1\">\n                <a tuiLink (click)=\"clickCardEvent.emit()\">\n                    <span class=\"font-bold\">{{ product.name }}</span>\n                </a>\n\n                <div class=\"flex flex-wrap gap-y-1 gap-x-2 w-full text-xs text-tui-base-05\">\n                    <p *ngIf=\"product.pack\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n                    <p>\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n                </div>\n\n                <div class=\"flex flex-wrap items-center gap-y-1 gap-x-2 w-full\">\n                    <p *ngIf=\"!product.priceInRub\" class=\"font-bold\">{{ product.costString }}</p>\n                    <p class=\"font-bold text-xs text-tui-base-05\">{{ product.costRubString }}</p>\n                    <span *ngIf=\"product.discount\" class=\"flex items-center\">\n                        <span class=\"line-through\">{{ product.discountCostString }}</span>  \n                        <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n                        <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"!text-xs !h-4\"></tui-svg>\n                        <ng-template #discountHint>\n                            <div class=\"font-bold\">{{ product.discount.name }}</div>\n                            <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n                        </ng-template>\n                    </span>\n                </div>\n\n                <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n\n                <div *ngIf=\"cartItem.height || cartItem.length || cartItem.width\" class=\"flex gap-1 items-center\">\n                    <button\n                        tuiIconButton\n                        icon=\"tuiIconSettings\"\n                        (click)=\"clickSettingsEvent.emit()\"\n                        size=\"s\"\n                        appearance=\"secondary\"\n                        tuiMode=\"onLight\"\n                        class=\"mr-2 !self-center\"\n                    ></button>\n                    <div class=\"flex flex-wrap gap-x-2 font-thin text-xs text-tui-base-04\">\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                </div>\n\n                <a tuiLink *ngIf=\"cartItem.specificationImgUrl\" (click)=\"showSpecification()\">\u0421\u043F\u0435\u0446\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u044F</a>\n                <ng-template #specificationPreview let-preview>\n                    <tui-preview [rotatable]=\"false\" [zoomable]=\"false\">\n                        <img *polymorpheusOutlet=\"cartItem.specificationImgUrl as src\" alt=\"preview\" [src]=\"cartItem.specificationImgUrl\" />\n                        <button icon=\"tuiIconClose\" title=\"Close\" tuiIconButton tuiPreviewAction type=\"button\" (click)=\"preview.complete()\"></button>\n                    </tui-preview>\n                </ng-template>\n            </div>\n            <div class=\"flex flex-col self-start gap-1 sm:mr-9 sm:self-center\">\n                <div class=\"flex gap-2\">\n                    <sc-input-quantity\n                        #inputQuantity\n                        *ngIf=\"quantityControl\"\n                        [formControl]=\"quantityControl\"\n                        [showCross]=\"false\"\n                        size=\"s\"\n                        [step]=\"unitsHelper.productMultiplicity(product)\"\n                        (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n                        class=\"w-28\"\n                    ></sc-input-quantity>\n                    <button tuiIconButton icon=\"tuiIconTrash2\" shape=\"rounded\" size=\"xs\" (click)=\"clickDeleteEvent.emit()\"></button>\n                </div>\n                <p class=\"font-bold text-tui-text-01 text-sm\">\u0418\u0442\u043E\u0433\u043E: {{ cartItem.costRub | tuiFormatNumber }} {{ 'RUB' | tuiCurrency }}</p>\n            </div>\n        </div>\n    </div>\n</ng-container>\n\n<ng-template #skeleton>\n    <div class=\"flex gap-2 w-full\">\n        <div class=\"h-20 w-20 bg-tui-base-02 rounded-xl\"></div>\n        <div class=\"flex flex-col grow gap-2.5 bg-white\">\n            <div class=\"w-full h-4 rounded-xl bg-tui-base-02\"></div>\n            <div class=\"w-3/5 h-4 rounded-xl bg-tui-base-02\"></div>\n            <div class=\"w-4/5 h-4 rounded-xl bg-tui-base-02\"></div>\n        </div>\n    </div>\n</ng-template>\n" }]
         | 
| 1359 1359 | 
             
                    }], ctorParameters: function () {
         | 
| 1360 1360 | 
             
                    return [{ type: UnitsHelper }, { type: i7.TuiPreviewDialogService, decorators: [{
         | 
| 1361 1361 | 
             
                                    type: Inject,
         | 
| @@ -1385,14 +1385,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor | |
| 1385 1385 | 
             
            /**
         | 
| 1386 1386 | 
             
             * Компонент списка категорий.
         | 
| 1387 1387 | 
             
             */
         | 
| 1388 | 
            -
            class ScCategoriesListComponent {
         | 
| 1388 | 
            +
            let ScCategoriesListComponent = class ScCategoriesListComponent {
         | 
| 1389 1389 | 
             
                /**
         | 
| 1390 1390 | 
             
                 * Инициализирует экземпляр класса {@link ScCategoriesListComponent}.
         | 
| 1391 1391 | 
             
                 *
         | 
| 1392 1392 | 
             
                 * @param urls объект информации о базовом списке ссылок приложения.
         | 
| 1393 | 
            +
                 * @param favoriteService Сервис для работы с корзиной.
         | 
| 1394 | 
            +
                 * @param cdr Объект для работы с обнаружением изменений.
         | 
| 1393 1395 | 
             
                 */
         | 
| 1394 | 
            -
                constructor(urls) {
         | 
| 1396 | 
            +
                constructor(urls, favoriteService, cdr) {
         | 
| 1395 1397 | 
             
                    this.urls = urls;
         | 
| 1398 | 
            +
                    this.favoriteService = favoriteService;
         | 
| 1399 | 
            +
                    this.cdr = cdr;
         | 
| 1396 1400 | 
             
                    /**
         | 
| 1397 1401 | 
             
                     * Признак того, отображается этот компонент на мобильном устройстве или нет.
         | 
| 1398 1402 | 
             
                     */
         | 
| @@ -1402,6 +1406,17 @@ class ScCategoriesListComponent { | |
| 1402 1406 | 
             
                     */
         | 
| 1403 1407 | 
             
                    this.clickCategoryEvent = new EventEmitter();
         | 
| 1404 1408 | 
             
                }
         | 
| 1409 | 
            +
                /** @inheritDoc */
         | 
| 1410 | 
            +
                ngOnInit() {
         | 
| 1411 | 
            +
                    this.favoriteService.categories$
         | 
| 1412 | 
            +
                        .pipe(filter(() => !!this.categories && Boolean(this.categories.length) && 'id' in this.categories[0]), tap((categories) => {
         | 
| 1413 | 
            +
                        var _a;
         | 
| 1414 | 
            +
                        (_a = this.categories) === null || _a === void 0 ? void 0 : _a.forEach(category => {
         | 
| 1415 | 
            +
                            category.isFavorite = categories.findIndex(item => category.id === item.id) !== -1;
         | 
| 1416 | 
            +
                        });
         | 
| 1417 | 
            +
                    }), untilDestroyed(this))
         | 
| 1418 | 
            +
                        .subscribe(() => this.cdr.markForCheck());
         | 
| 1419 | 
            +
                }
         | 
| 1405 1420 | 
             
                /**
         | 
| 1406 1421 | 
             
                 * Возвращает путь до изображения на сервере.
         | 
| 1407 1422 | 
             
                 *
         | 
| @@ -1417,22 +1432,25 @@ class ScCategoriesListComponent { | |
| 1417 1432 | 
             
                 */
         | 
| 1418 1433 | 
             
                checkImagesExists(categories) {
         | 
| 1419 1434 | 
             
                    // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
         | 
| 1420 | 
            -
                    return categories.some(item => { var _a; return (_a = item.properties) === null || _a === void 0 ? void 0 : _a.image; });
         | 
| 1435 | 
            +
                    return categories.some((item) => { var _a; return (_a = item.properties) === null || _a === void 0 ? void 0 : _a.image; });
         | 
| 1421 1436 | 
             
                }
         | 
| 1422 | 
            -
            }
         | 
| 1423 | 
            -
            ScCategoriesListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCategoriesListComponent, deps: [{ token: SC_URLS }], target: i0.ɵɵFactoryTarget.Component });
         | 
| 1424 | 
            -
            ScCategoriesListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScCategoriesListComponent, selector: "sc-categories-list", inputs: { categories: "categories" }, outputs: { clickCategoryEvent: "clickCategoryEvent" }, ngImport: i0, template: "<div class=\"grid grid-cols-[repeat(auto-fill,minmax(21rem,1fr))] gap-x-8 gap-y-2\">\n    <ng-container *ngIf=\"categories; else categoriesSkeleton\">\n        <button\n            *ngFor=\"let item of $any(categories)\"\n            class=\"group flex gap-2 py-1.5 px-3 bg-tui-base-02 rounded-xl h-11 items-center text-left hover-hover:hover:ring-2 hover-none:active:ring-2 ring-tui-primary duration-150\"\n            (click)=\"clickCategoryEvent.emit(item)\"\n        >\n            <img *ngIf=\"item.properties?.image as image\" [src]=\"getCategoryImage(image)\" [alt]=\"item.name\" class=\"w-8 h-8 object-cover rounded bg-tui-base-03\" />\n            <tui-svg *ngIf=\"!item.properties?.image && checkImagesExists(categories)\" src=\"tuiIconCameraOffLarge\" class=\"bg-tui-base-03 !w-8 !h-8 rounded text-tui-base-05\"></tui-svg>\n            <div class=\"flex grow truncate\">\n                <p class=\"text-base font-bold truncate\">{{ item.name }}</p>\n                <tui-svg *ngIf=\"item.isFavorite\" src=\"scIconFavoriteFill\" class=\"text-tui-primary !text-sm mr-auto\"></tui-svg>\n            </div>\n            <tui-svg src=\"tuiIconChevronRightLarge\" class=\"hover-hover:group-hover:text-tui-primary hover-none:group-active:text-tui-primary duration-150\"></tui-svg>\n        </button>\n    </ng-container>\n</div>\n\n<ng-template #categoriesSkeleton>\n    <button\n        *tuiRepeatTimes=\"let index of isMobile ? 3 : 6\"\n        class=\"group flex gap-2 py-1.5 px-3 bg-tui-base-02 rounded-xl h-11 items-center text-left hover-hover:hover:ring-2 hover-none:active:ring-2 ring-tui-base-05 duration-150\"\n    >\n        <div class=\"w-8 h-8 tui-skeleton\"></div>\n        <div class=\"h-4 grow tui-skeleton\"></div>\n        <tui-svg src=\"tuiIconChevronRightLarge\" class=\"hover-hover:group-hover:text-tui-primary hover-none:group-active:text-tui-primary duration-150  tui-skeleton\"></tui-svg>\n    </button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "directive", type: i5.TuiRepeatTimesDirective, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
         | 
| 1437 | 
            +
            };
         | 
| 1438 | 
            +
            ScCategoriesListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCategoriesListComponent, deps: [{ token: SC_URLS }, { token: i1.ScFavoriteService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
         | 
| 1439 | 
            +
            ScCategoriesListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScCategoriesListComponent, selector: "sc-categories-list", inputs: { categories: "categories" }, outputs: { clickCategoryEvent: "clickCategoryEvent" }, ngImport: i0, template: "<div class=\"grid grid-cols-[repeat(auto-fill,minmax(21rem,1fr))] gap-x-8 gap-y-2\">\n    <ng-container *ngIf=\"categories; else categoriesSkeleton\">\n        <button\n            *ngFor=\"let item of $any(categories)\"\n            class=\"group flex gap-2 py-1.5 px-3 bg-tui-base-02 rounded-xl h-11 items-center text-left hover-hover:hover:ring-2 hover-none:active:ring-2 ring-tui-primary duration-150\"\n            (click)=\"clickCategoryEvent.emit(item)\"\n        >\n            <img *ngIf=\"item.properties?.image as image\" [src]=\"getCategoryImage(image)\" [alt]=\"item.name\" class=\"w-8 h-8 object-cover rounded bg-tui-base-03\" />\n            <tui-svg *ngIf=\"!item.properties?.image && checkImagesExists(categories)\" src=\"tuiIconCameraOffLarge\" class=\"bg-tui-base-03 !w-8 !h-8 rounded text-tui-base-05\"></tui-svg>\n            <div *tuiLet=\"\" class=\"flex grow truncate\">\n                <p class=\"text-base font-bold truncate\">{{ item.name }}</p>\n                <tui-svg *ngIf=\"item.isFavorite\" src=\"scIconFavoriteFill\" class=\"text-tui-primary !text-sm mr-auto\"></tui-svg>\n            </div>\n            <tui-svg src=\"tuiIconChevronRightLarge\" class=\"hover-hover:group-hover:text-tui-primary hover-none:group-active:text-tui-primary duration-150\"></tui-svg>\n        </button>\n    </ng-container>\n</div>\n\n<ng-template #categoriesSkeleton>\n    <button\n        *tuiRepeatTimes=\"let index of isMobile ? 3 : 6\"\n        class=\"group flex gap-2 py-1.5 px-3 bg-tui-base-02 rounded-xl h-11 items-center text-left hover-hover:hover:ring-2 hover-none:active:ring-2 ring-tui-base-05 duration-150\"\n    >\n        <div class=\"w-8 h-8 tui-skeleton\"></div>\n        <div class=\"h-4 grow tui-skeleton\"></div>\n        <tui-svg src=\"tuiIconChevronRightLarge\" class=\"hover-hover:group-hover:text-tui-primary hover-none:group-active:text-tui-primary duration-150  tui-skeleton\"></tui-svg>\n    </button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "directive", type: i5.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "directive", type: i5.TuiRepeatTimesDirective, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
         | 
| 1425 1440 | 
             
            __decorate([
         | 
| 1426 1441 | 
             
                tuiPure
         | 
| 1427 1442 | 
             
            ], ScCategoriesListComponent.prototype, "checkImagesExists", null);
         | 
| 1443 | 
            +
            ScCategoriesListComponent = __decorate([
         | 
| 1444 | 
            +
                UntilDestroy({ checkProperties: true })
         | 
| 1445 | 
            +
            ], ScCategoriesListComponent);
         | 
| 1428 1446 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCategoriesListComponent, decorators: [{
         | 
| 1429 1447 | 
             
                        type: Component,
         | 
| 1430 | 
            -
                        args: [{ selector: 'sc-categories-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"grid grid-cols-[repeat(auto-fill,minmax(21rem,1fr))] gap-x-8 gap-y-2\">\n    <ng-container *ngIf=\"categories; else categoriesSkeleton\">\n        <button\n            *ngFor=\"let item of $any(categories)\"\n            class=\"group flex gap-2 py-1.5 px-3 bg-tui-base-02 rounded-xl h-11 items-center text-left hover-hover:hover:ring-2 hover-none:active:ring-2 ring-tui-primary duration-150\"\n            (click)=\"clickCategoryEvent.emit(item)\"\n        >\n            <img *ngIf=\"item.properties?.image as image\" [src]=\"getCategoryImage(image)\" [alt]=\"item.name\" class=\"w-8 h-8 object-cover rounded bg-tui-base-03\" />\n            <tui-svg *ngIf=\"!item.properties?.image && checkImagesExists(categories)\" src=\"tuiIconCameraOffLarge\" class=\"bg-tui-base-03 !w-8 !h-8 rounded text-tui-base-05\"></tui-svg>\n            <div class=\"flex grow truncate\">\n                <p class=\"text-base font-bold truncate\">{{ item.name }}</p>\n                <tui-svg *ngIf=\"item.isFavorite\" src=\"scIconFavoriteFill\" class=\"text-tui-primary !text-sm mr-auto\"></tui-svg>\n            </div>\n            <tui-svg src=\"tuiIconChevronRightLarge\" class=\"hover-hover:group-hover:text-tui-primary hover-none:group-active:text-tui-primary duration-150\"></tui-svg>\n        </button>\n    </ng-container>\n</div>\n\n<ng-template #categoriesSkeleton>\n    <button\n        *tuiRepeatTimes=\"let index of isMobile ? 3 : 6\"\n        class=\"group flex gap-2 py-1.5 px-3 bg-tui-base-02 rounded-xl h-11 items-center text-left hover-hover:hover:ring-2 hover-none:active:ring-2 ring-tui-base-05 duration-150\"\n    >\n        <div class=\"w-8 h-8 tui-skeleton\"></div>\n        <div class=\"h-4 grow tui-skeleton\"></div>\n        <tui-svg src=\"tuiIconChevronRightLarge\" class=\"hover-hover:group-hover:text-tui-primary hover-none:group-active:text-tui-primary duration-150  tui-skeleton\"></tui-svg>\n    </button>\n</ng-template>\n" }]
         | 
| 1448 | 
            +
                        args: [{ selector: 'sc-categories-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"grid grid-cols-[repeat(auto-fill,minmax(21rem,1fr))] gap-x-8 gap-y-2\">\n    <ng-container *ngIf=\"categories; else categoriesSkeleton\">\n        <button\n            *ngFor=\"let item of $any(categories)\"\n            class=\"group flex gap-2 py-1.5 px-3 bg-tui-base-02 rounded-xl h-11 items-center text-left hover-hover:hover:ring-2 hover-none:active:ring-2 ring-tui-primary duration-150\"\n            (click)=\"clickCategoryEvent.emit(item)\"\n        >\n            <img *ngIf=\"item.properties?.image as image\" [src]=\"getCategoryImage(image)\" [alt]=\"item.name\" class=\"w-8 h-8 object-cover rounded bg-tui-base-03\" />\n            <tui-svg *ngIf=\"!item.properties?.image && checkImagesExists(categories)\" src=\"tuiIconCameraOffLarge\" class=\"bg-tui-base-03 !w-8 !h-8 rounded text-tui-base-05\"></tui-svg>\n            <div *tuiLet=\"\" class=\"flex grow truncate\">\n                <p class=\"text-base font-bold truncate\">{{ item.name }}</p>\n                <tui-svg *ngIf=\"item.isFavorite\" src=\"scIconFavoriteFill\" class=\"text-tui-primary !text-sm mr-auto\"></tui-svg>\n            </div>\n            <tui-svg src=\"tuiIconChevronRightLarge\" class=\"hover-hover:group-hover:text-tui-primary hover-none:group-active:text-tui-primary duration-150\"></tui-svg>\n        </button>\n    </ng-container>\n</div>\n\n<ng-template #categoriesSkeleton>\n    <button\n        *tuiRepeatTimes=\"let index of isMobile ? 3 : 6\"\n        class=\"group flex gap-2 py-1.5 px-3 bg-tui-base-02 rounded-xl h-11 items-center text-left hover-hover:hover:ring-2 hover-none:active:ring-2 ring-tui-base-05 duration-150\"\n    >\n        <div class=\"w-8 h-8 tui-skeleton\"></div>\n        <div class=\"h-4 grow tui-skeleton\"></div>\n        <tui-svg src=\"tuiIconChevronRightLarge\" class=\"hover-hover:group-hover:text-tui-primary hover-none:group-active:text-tui-primary duration-150  tui-skeleton\"></tui-svg>\n    </button>\n</ng-template>\n" }]
         | 
| 1431 1449 | 
             
                    }], ctorParameters: function () {
         | 
| 1432 1450 | 
             
                    return [{ type: undefined, decorators: [{
         | 
| 1433 1451 | 
             
                                    type: Inject,
         | 
| 1434 1452 | 
             
                                    args: [SC_URLS]
         | 
| 1435 | 
            -
                                }] }];
         | 
| 1453 | 
            +
                                }] }, { type: i1.ScFavoriteService }, { type: i0.ChangeDetectorRef }];
         | 
| 1436 1454 | 
             
                }, propDecorators: { categories: [{
         | 
| 1437 1455 | 
             
                            type: Input
         | 
| 1438 1456 | 
             
                        }], clickCategoryEvent: [{
         | 
| @@ -1715,10 +1733,10 @@ class ScPriceCardComponent { | |
| 1715 1733 | 
             
                }
         | 
| 1716 1734 | 
             
            }
         | 
| 1717 1735 | 
             
            ScPriceCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceCardComponent, deps: [{ token: UnitsHelper }, { token: i1.ScAuthService }, { token: i1.ScWarehouseService }, { token: SC_URLS }, { token: SC_PATH_IMAGE_NOT_FOUND }, { token: i0.ChangeDetectorRef }, { token: i1.ScImageHelper }], target: i0.ɵɵFactoryTarget.Component });
         | 
| 1718 | 
            -
            ScPriceCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPriceCardComponent, selector: "sc-price-card", inputs: { showQuantityControl: "showQuantityControl", cartItem: "cartItem", product: "product", size: "size" }, outputs: { clickFavoriteEvent: "clickFavoriteEvent", clickAddToCartEvent: "clickAddToCartEvent", clickClearEvent: "clickClearEvent", clickCardEvent: "clickCardEvent", quantityValueChanges: "quantityValueChanges" }, host: { properties: { "attr.data-size": "this.size" } }, ngImport: i0, template: "<!-- TODO: \u0440\u0435\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0439 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442 \u0438 \u0434\u043B\u044F \u0434\u0435\u0441\u043A\u0442\u043E\u043F\u0430 \u0438 \u0434\u043B\u044F \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0433\u043E \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F. \u0418\u0441\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0432\u0441\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0435 \u0442\u0430\u0439\u0433\u043E\u0432\u0441\u043A\u0438\u0435 \u0441\u0442\u0438\u043B\u0438, \u043F\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0438\u0445 \u0432 \u043F\u043E\u0440\u044F\u0434\u043E\u043A \u0441\u043E\u0433\u043B\u0430\u0441\u043D\u043E \u0441 \u0434\u0438\u0437\u0430\u0439\u043D\u043E\u043C. -->\n<div *ngIf=\"product; else skeleton\" class=\"min-w-[10rem] shadow-md w-auto rounded-xl p-2 grid h-[19rem] text-xs relative\">\n    <div class=\"overflow-hidden\">\n        <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImagePreview()\" [alt]=\"product.name\" class=\"rounded-xl w-full max-h-full object-cover\" />\n    </div>\n    <sc-favorite-btn\n        *ngIf=\"authStatus$ | async\"\n        class=\"top-0 left-0 absolute\"\n        (clickEvent)=\"clickFavoriteEvent.emit()\"\n        [showLoader]=\"favoriteShowLoader\"\n        [isFavorite]=\"product.isFavorite\"\n        [disabled]=\"!!product.primaryCategory?.isFavorite\"\n    ></sc-favorite-btn>\n    <tui-svg *ngIf=\"product.isPreviouslyOrdered\" src=\"scIconStar\" class=\"top-0 right-0 absolute text-red-700\"></tui-svg>\n\n    <a class=\"p-0 m-0\" tuiLink iconAlign=\"left\" (click)=\"clickCardEvent.emit()\">\n        <p class=\"font-bold text-sm line-clamp-3\" style=\"word-break: break-word;\">{{ product.name }}</p>\n    </a>\n    <p *ngIf=\"product?.pack\" class=\"text-tui-text-02\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n\n    <p class=\"text-tui-text-02\">\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n    <p *ngIf=\"(authStatus$ | async) && product?.costDate\" class=\"text-tui-text-02\">\u0414\u0430\u0442\u0430: {{ product.costDate }}</p>\n    <div *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"flex flex-col\">\n        <span *ngIf=\"product.discount && !isMobile\" class=\"flex items-center text-tui-text-02\">\n            <span class=\"line-through\">{{ product.discountCostString }}</span>  \n            <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n            <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"text-black !text-xs !h-4\"></tui-svg>\n            <ng-template #discountHint>\n                <div class=\"font-bold\">{{ product.discount.name }}</div>\n                <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n            </ng-template>\n        </span>\n        <span [class.text-tui-text-02]=\"!product.isWarehouseStockExist(warehouseSelect.id)\" class=\"cost font-bold\">{{ product.costRubString }}</span>\n        <span *ngIf=\"!product.priceInRub\" class=\"text-xs font-bold text-tui-text-02 hidden group-hover:block\">{{ product.costString }}</span>\n        <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n    </div>\n    <div *ngIf=\"!showQuantityControl\" class=\"flex gap-2 max-w-full items-center justify-stretch mt-1\">\n        <button tuiButton (click)=\"clickAddToCartEvent.emit(product)\" [showLoader]=\"quantityShowLoader\" [size]=\"size\" class=\"grow\">\n            <tui-svg src=\"scIconCart\" class=\"!text-xs !h-4\"> </tui-svg>\n            \u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0443\n        </button>\n        <div *ngIf=\"cartItem\" class=\"flex justify-center\">\n            <tui-svg src=\"tuiIconCheck\" class=\"!h-5 !w-5 bg-tui-primary text-black rounded-md\"></tui-svg>\n        </div>\n    </div>\n    <sc-input-quantity\n        #inputQuantity\n        *ngIf=\"showQuantityControl\"\n        [formControl]=\"quantityControl\"\n        [size]=\"getQuantitySize\"\n        [step]=\"unitsHelper.productMultiplicity(product)\"\n        [showLoader]=\"quantityShowLoader\"\n        (clickClearEvent)=\"clickClearEvent.emit(cartItem)\"\n        class=\"w-full\"\n        (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n    ></sc-input-quantity>\n</div>\n\n<ng-template #skeleton>\n    <div class=\"flex flex-col card-wrapper bg-white rounded-xl overflow-hidden shadow-sc-1\">\n        <!-- \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u0430 -->\n        <div class=\"w-full h-3/5 rounded-t bg-tui-base-02\"></div>\n        <!-- \u041A\u0440\u0430\u0442\u043A\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0442\u043E\u0432\u0430\u0440\u0435 -->\n        <div class=\"flex flex-col grow gap-2.5 bg-white rounded-b p-5\">\n            <div class=\"w-full h-4 rounded bg-tui-base-02\"></div>\n            <div class=\"w-3/5 h-4 rounded bg-tui-base-02\"></div>\n            <div class=\"w-full h-4 rounded bg-tui-base-02\"></div>\n        </div>\n    </div>\n</ng-template>\n", styles: [":host[data-size=s] .card-wrapper{width:10rem;height:16rem}:host[data-size=s] .card-wrapper .wrapper-info{padding:8px}:host[data-size=s] .card-wrapper .wrapper-info .cost{font-size:.875rem;line-height:1.25rem}:host[data-size=s] .card-wrapper .button-wrapper tui-svg{font-size:.75rem;line-height:1rem;width:1rem}:host[data-size=m] .card-wrapper{width:12.5rem;height:20rem}:host[data-size=m] .card-wrapper .wrapper-info{padding-inline:16px;padding-block:8px}:host[data-size=m] .card-wrapper .name{font-size:.875rem;line-height:1.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-height:3rem}:host[data-size=m] .card-wrapper .info{max-height:1rem}:host[data-size=m] .card-wrapper .cost{font-size:1.125rem;line-height:1.75rem}:host[data-size=m] .card-wrapper .button-wrapper{max-height:0px;font-size:.75rem;line-height:1rem}:host[data-size=m] .card-wrapper:hover .name{-webkit-line-clamp:unset;max-height:6rem}:host[data-size=m] .card-wrapper:hover .info{max-height:3rem}:host[data-size=m] .card-wrapper:hover .button-wrapper{max-height:3rem}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i4.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { kind: "directive", type: i4.TuiHintDriverDirective, selector: "[tuiHint]" }, { kind: "directive", type: i4.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { kind: "directive", type: i4.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { kind: "component", type: i4.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { kind: "component", type: ScFavoriteBtnComponent, selector: "sc-favorite-btn", inputs: ["isFavorite", "showLoader", "disabled"], outputs: ["clickEvent"] }, { kind: "component", type: ScInputQuantityComponent, selector: "sc-input-quantity", inputs: ["step", "showLoader", "showCross", "appearance", "isDisabled", "size"], outputs: ["clickClearEvent"] }, { kind: "component", type: ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint", "fromMain"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
         | 
| 1736 | 
            +
            ScPriceCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPriceCardComponent, selector: "sc-price-card", inputs: { showQuantityControl: "showQuantityControl", cartItem: "cartItem", product: "product", size: "size" }, outputs: { clickFavoriteEvent: "clickFavoriteEvent", clickAddToCartEvent: "clickAddToCartEvent", clickClearEvent: "clickClearEvent", clickCardEvent: "clickCardEvent", quantityValueChanges: "quantityValueChanges" }, host: { properties: { "attr.data-size": "this.size" } }, ngImport: i0, template: "<!-- TODO: \u0440\u0435\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0439 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442 \u0438 \u0434\u043B\u044F \u0434\u0435\u0441\u043A\u0442\u043E\u043F\u0430 \u0438 \u0434\u043B\u044F \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0433\u043E \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F. \u0418\u0441\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0432\u0441\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0435 \u0442\u0430\u0439\u0433\u043E\u0432\u0441\u043A\u0438\u0435 \u0441\u0442\u0438\u043B\u0438, \u043F\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0438\u0445 \u0432 \u043F\u043E\u0440\u044F\u0434\u043E\u043A \u0441\u043E\u0433\u043B\u0430\u0441\u043D\u043E \u0441 \u0434\u0438\u0437\u0430\u0439\u043D\u043E\u043C. -->\n<div *ngIf=\"product; else skeleton\" class=\"min-w-[10rem] shadow-md w-auto rounded-xl p-2 grid h-[19rem] text-xs relative\">\n    <div class=\"overflow-hidden\">\n        <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImagePreview()\" [alt]=\"product.name\" class=\"rounded-xl w-full max-h-full object-cover\" />\n    </div>\n    <sc-favorite-btn\n        *ngIf=\"authStatus$ | async\"\n        class=\"top-0 left-0 absolute\"\n        (clickEvent)=\"clickFavoriteEvent.emit()\"\n        [showLoader]=\"favoriteShowLoader\"\n        [isFavorite]=\"product.isFavorite\"\n        [disabled]=\"!!product.primaryCategory?.isFavorite\"\n    ></sc-favorite-btn>\n    <tui-svg *ngIf=\"product.isPreviouslyOrdered\" src=\"scIconStar\" class=\"top-0 right-0 absolute text-red-700\"></tui-svg>\n\n    <a class=\"p-0 m-0\" tuiLink iconAlign=\"left\" (click)=\"clickCardEvent.emit()\">\n        <p class=\"font-bold text-sm line-clamp-3\" style=\"word-break: break-word;\">{{ product.name }}</p>\n    </a>\n    <p *ngIf=\"product?.pack\" class=\"text-tui-text-02\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n\n    <p class=\"text-tui-text-02\">\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n    <p *ngIf=\"(authStatus$ | async) && product?.costDate\" class=\"text-tui-text-02\">\u0414\u0430\u0442\u0430: {{ product.costDate }}</p>\n    <div *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"flex flex-col\">\n        <span *ngIf=\"product.discount && !isMobile\" class=\"flex items-center text-tui-text-02\">\n            <span class=\"line-through\">{{ product.discountCostString }}</span>  \n            <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n            <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"text-black !text-xs !h-4\"></tui-svg>\n            <ng-template #discountHint>\n                <div class=\"font-bold\">{{ product.discount.name }}</div>\n                <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n            </ng-template>\n        </span>\n        <span [class.text-tui-text-02]=\"!product.isWarehouseStockExist(warehouseSelect.id)\" class=\"cost font-bold\">{{ product.costRubString }}</span>\n        <span *ngIf=\"!product.priceInRub\" class=\"text-xs font-bold text-tui-text-02 hidden group-hover:block\">{{ product.costString }}</span>\n        <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n    </div>\n    <div *ngIf=\"!showQuantityControl\" class=\"flex gap-2 max-w-full items-center justify-stretch mt-1\">\n        <button tuiButton (click)=\"clickAddToCartEvent.emit(product)\" [showLoader]=\"quantityShowLoader\" [size]=\"size\" class=\"grow\">\n            <tui-svg src=\"scIconCart\" class=\"!text-xs !h-4\"> </tui-svg>\n            \u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0443\n        </button>\n        <div *ngIf=\"cartItem\" class=\"flex justify-center\">\n            <tui-svg src=\"tuiIconCheck\" class=\"!h-5 !w-5 bg-tui-primary text-black rounded-md\"></tui-svg>\n        </div>\n    </div>\n    <sc-input-quantity\n        #inputQuantity\n        *ngIf=\"showQuantityControl\"\n        [formControl]=\"quantityControl\"\n        [size]=\"getQuantitySize\"\n        [step]=\"unitsHelper.productMultiplicity(product)\"\n        [showLoader]=\"quantityShowLoader\"\n        (clickClearEvent)=\"clickClearEvent.emit(cartItem)\"\n        class=\"w-full mt-2\"\n        (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n    ></sc-input-quantity>\n</div>\n\n<ng-template #skeleton>\n    <div class=\"flex flex-col card-wrapper bg-white rounded-xl overflow-hidden shadow-sc-1\">\n        <!-- \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u0430 -->\n        <div class=\"w-full h-3/5 rounded-t bg-tui-base-02\"></div>\n        <!-- \u041A\u0440\u0430\u0442\u043A\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0442\u043E\u0432\u0430\u0440\u0435 -->\n        <div class=\"flex flex-col grow gap-2.5 bg-white rounded-b p-5\">\n            <div class=\"w-full h-4 rounded bg-tui-base-02\"></div>\n            <div class=\"w-3/5 h-4 rounded bg-tui-base-02\"></div>\n            <div class=\"w-full h-4 rounded bg-tui-base-02\"></div>\n        </div>\n    </div>\n</ng-template>\n", styles: [":host[data-size=s] .card-wrapper{width:10rem;height:16rem}:host[data-size=s] .card-wrapper .wrapper-info{padding:8px}:host[data-size=s] .card-wrapper .wrapper-info .cost{font-size:.875rem;line-height:1.25rem}:host[data-size=s] .card-wrapper .button-wrapper tui-svg{font-size:.75rem;line-height:1rem;width:1rem}:host[data-size=m] .card-wrapper{width:12.5rem;height:20rem}:host[data-size=m] .card-wrapper .wrapper-info{padding-inline:16px;padding-block:8px}:host[data-size=m] .card-wrapper .name{font-size:.875rem;line-height:1.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-height:3rem}:host[data-size=m] .card-wrapper .info{max-height:1rem}:host[data-size=m] .card-wrapper .cost{font-size:1.125rem;line-height:1.75rem}:host[data-size=m] .card-wrapper .button-wrapper{max-height:0px;font-size:.75rem;line-height:1rem}:host[data-size=m] .card-wrapper:hover .name{-webkit-line-clamp:unset;max-height:6rem}:host[data-size=m] .card-wrapper:hover .info{max-height:3rem}:host[data-size=m] .card-wrapper:hover .button-wrapper{max-height:3rem}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i4.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { kind: "directive", type: i4.TuiHintDriverDirective, selector: "[tuiHint]" }, { kind: "directive", type: i4.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { kind: "directive", type: i4.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { kind: "component", type: i4.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { kind: "component", type: ScFavoriteBtnComponent, selector: "sc-favorite-btn", inputs: ["isFavorite", "showLoader", "disabled"], outputs: ["clickEvent"] }, { kind: "component", type: ScInputQuantityComponent, selector: "sc-input-quantity", inputs: ["step", "showLoader", "showCross", "appearance", "isDisabled", "size"], outputs: ["clickClearEvent"] }, { kind: "component", type: ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint", "fromMain"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
         | 
| 1719 1737 | 
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceCardComponent, decorators: [{
         | 
| 1720 1738 | 
             
                        type: Component,
         | 
| 1721 | 
            -
                        args: [{ selector: 'sc-price-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- TODO: \u0440\u0435\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0439 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442 \u0438 \u0434\u043B\u044F \u0434\u0435\u0441\u043A\u0442\u043E\u043F\u0430 \u0438 \u0434\u043B\u044F \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0433\u043E \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F. \u0418\u0441\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0432\u0441\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0435 \u0442\u0430\u0439\u0433\u043E\u0432\u0441\u043A\u0438\u0435 \u0441\u0442\u0438\u043B\u0438, \u043F\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0438\u0445 \u0432 \u043F\u043E\u0440\u044F\u0434\u043E\u043A \u0441\u043E\u0433\u043B\u0430\u0441\u043D\u043E \u0441 \u0434\u0438\u0437\u0430\u0439\u043D\u043E\u043C. -->\n<div *ngIf=\"product; else skeleton\" class=\"min-w-[10rem] shadow-md w-auto rounded-xl p-2 grid h-[19rem] text-xs relative\">\n    <div class=\"overflow-hidden\">\n        <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImagePreview()\" [alt]=\"product.name\" class=\"rounded-xl w-full max-h-full object-cover\" />\n    </div>\n    <sc-favorite-btn\n        *ngIf=\"authStatus$ | async\"\n        class=\"top-0 left-0 absolute\"\n        (clickEvent)=\"clickFavoriteEvent.emit()\"\n        [showLoader]=\"favoriteShowLoader\"\n        [isFavorite]=\"product.isFavorite\"\n        [disabled]=\"!!product.primaryCategory?.isFavorite\"\n    ></sc-favorite-btn>\n    <tui-svg *ngIf=\"product.isPreviouslyOrdered\" src=\"scIconStar\" class=\"top-0 right-0 absolute text-red-700\"></tui-svg>\n\n    <a class=\"p-0 m-0\" tuiLink iconAlign=\"left\" (click)=\"clickCardEvent.emit()\">\n        <p class=\"font-bold text-sm line-clamp-3\" style=\"word-break: break-word;\">{{ product.name }}</p>\n    </a>\n    <p *ngIf=\"product?.pack\" class=\"text-tui-text-02\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n\n    <p class=\"text-tui-text-02\">\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n    <p *ngIf=\"(authStatus$ | async) && product?.costDate\" class=\"text-tui-text-02\">\u0414\u0430\u0442\u0430: {{ product.costDate }}</p>\n    <div *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"flex flex-col\">\n        <span *ngIf=\"product.discount && !isMobile\" class=\"flex items-center text-tui-text-02\">\n            <span class=\"line-through\">{{ product.discountCostString }}</span>  \n            <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n            <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"text-black !text-xs !h-4\"></tui-svg>\n            <ng-template #discountHint>\n                <div class=\"font-bold\">{{ product.discount.name }}</div>\n                <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n            </ng-template>\n        </span>\n        <span [class.text-tui-text-02]=\"!product.isWarehouseStockExist(warehouseSelect.id)\" class=\"cost font-bold\">{{ product.costRubString }}</span>\n        <span *ngIf=\"!product.priceInRub\" class=\"text-xs font-bold text-tui-text-02 hidden group-hover:block\">{{ product.costString }}</span>\n        <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n    </div>\n    <div *ngIf=\"!showQuantityControl\" class=\"flex gap-2 max-w-full items-center justify-stretch mt-1\">\n        <button tuiButton (click)=\"clickAddToCartEvent.emit(product)\" [showLoader]=\"quantityShowLoader\" [size]=\"size\" class=\"grow\">\n            <tui-svg src=\"scIconCart\" class=\"!text-xs !h-4\"> </tui-svg>\n            \u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0443\n        </button>\n        <div *ngIf=\"cartItem\" class=\"flex justify-center\">\n            <tui-svg src=\"tuiIconCheck\" class=\"!h-5 !w-5 bg-tui-primary text-black rounded-md\"></tui-svg>\n        </div>\n    </div>\n    <sc-input-quantity\n        #inputQuantity\n        *ngIf=\"showQuantityControl\"\n        [formControl]=\"quantityControl\"\n        [size]=\"getQuantitySize\"\n        [step]=\"unitsHelper.productMultiplicity(product)\"\n        [showLoader]=\"quantityShowLoader\"\n        (clickClearEvent)=\"clickClearEvent.emit(cartItem)\"\n        class=\"w-full\"\n        (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n    ></sc-input-quantity>\n</div>\n\n<ng-template #skeleton>\n    <div class=\"flex flex-col card-wrapper bg-white rounded-xl overflow-hidden shadow-sc-1\">\n        <!-- \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u0430 -->\n        <div class=\"w-full h-3/5 rounded-t bg-tui-base-02\"></div>\n        <!-- \u041A\u0440\u0430\u0442\u043A\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0442\u043E\u0432\u0430\u0440\u0435 -->\n        <div class=\"flex flex-col grow gap-2.5 bg-white rounded-b p-5\">\n            <div class=\"w-full h-4 rounded bg-tui-base-02\"></div>\n            <div class=\"w-3/5 h-4 rounded bg-tui-base-02\"></div>\n            <div class=\"w-full h-4 rounded bg-tui-base-02\"></div>\n        </div>\n    </div>\n</ng-template>\n", styles: [":host[data-size=s] .card-wrapper{width:10rem;height:16rem}:host[data-size=s] .card-wrapper .wrapper-info{padding:8px}:host[data-size=s] .card-wrapper .wrapper-info .cost{font-size:.875rem;line-height:1.25rem}:host[data-size=s] .card-wrapper .button-wrapper tui-svg{font-size:.75rem;line-height:1rem;width:1rem}:host[data-size=m] .card-wrapper{width:12.5rem;height:20rem}:host[data-size=m] .card-wrapper .wrapper-info{padding-inline:16px;padding-block:8px}:host[data-size=m] .card-wrapper .name{font-size:.875rem;line-height:1.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-height:3rem}:host[data-size=m] .card-wrapper .info{max-height:1rem}:host[data-size=m] .card-wrapper .cost{font-size:1.125rem;line-height:1.75rem}:host[data-size=m] .card-wrapper .button-wrapper{max-height:0px;font-size:.75rem;line-height:1rem}:host[data-size=m] .card-wrapper:hover .name{-webkit-line-clamp:unset;max-height:6rem}:host[data-size=m] .card-wrapper:hover .info{max-height:3rem}:host[data-size=m] .card-wrapper:hover .button-wrapper{max-height:3rem}\n"] }]
         | 
| 1739 | 
            +
                        args: [{ selector: 'sc-price-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- TODO: \u0440\u0435\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0439 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442 \u0438 \u0434\u043B\u044F \u0434\u0435\u0441\u043A\u0442\u043E\u043F\u0430 \u0438 \u0434\u043B\u044F \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0433\u043E \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F. \u0418\u0441\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u0432\u0441\u0435 \u0433\u043B\u043E\u0431\u0430\u043B\u044C\u043D\u044B\u0435 \u0442\u0430\u0439\u0433\u043E\u0432\u0441\u043A\u0438\u0435 \u0441\u0442\u0438\u043B\u0438, \u043F\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0438\u0445 \u0432 \u043F\u043E\u0440\u044F\u0434\u043E\u043A \u0441\u043E\u0433\u043B\u0430\u0441\u043D\u043E \u0441 \u0434\u0438\u0437\u0430\u0439\u043D\u043E\u043C. -->\n<div *ngIf=\"product; else skeleton\" class=\"min-w-[10rem] shadow-md w-auto rounded-xl p-2 grid h-[19rem] text-xs relative\">\n    <div class=\"overflow-hidden\">\n        <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImagePreview()\" [alt]=\"product.name\" class=\"rounded-xl w-full max-h-full object-cover\" />\n    </div>\n    <sc-favorite-btn\n        *ngIf=\"authStatus$ | async\"\n        class=\"top-0 left-0 absolute\"\n        (clickEvent)=\"clickFavoriteEvent.emit()\"\n        [showLoader]=\"favoriteShowLoader\"\n        [isFavorite]=\"product.isFavorite\"\n        [disabled]=\"!!product.primaryCategory?.isFavorite\"\n    ></sc-favorite-btn>\n    <tui-svg *ngIf=\"product.isPreviouslyOrdered\" src=\"scIconStar\" class=\"top-0 right-0 absolute text-red-700\"></tui-svg>\n\n    <a class=\"p-0 m-0\" tuiLink iconAlign=\"left\" (click)=\"clickCardEvent.emit()\">\n        <p class=\"font-bold text-sm line-clamp-3\" style=\"word-break: break-word;\">{{ product.name }}</p>\n    </a>\n    <p *ngIf=\"product?.pack\" class=\"text-tui-text-02\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n\n    <p class=\"text-tui-text-02\">\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n    <p *ngIf=\"(authStatus$ | async) && product?.costDate\" class=\"text-tui-text-02\">\u0414\u0430\u0442\u0430: {{ product.costDate }}</p>\n    <div *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"flex flex-col\">\n        <span *ngIf=\"product.discount && !isMobile\" class=\"flex items-center text-tui-text-02\">\n            <span class=\"line-through\">{{ product.discountCostString }}</span>  \n            <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n            <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"text-black !text-xs !h-4\"></tui-svg>\n            <ng-template #discountHint>\n                <div class=\"font-bold\">{{ product.discount.name }}</div>\n                <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n            </ng-template>\n        </span>\n        <span [class.text-tui-text-02]=\"!product.isWarehouseStockExist(warehouseSelect.id)\" class=\"cost font-bold\">{{ product.costRubString }}</span>\n        <span *ngIf=\"!product.priceInRub\" class=\"text-xs font-bold text-tui-text-02 hidden group-hover:block\">{{ product.costString }}</span>\n        <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n    </div>\n    <div *ngIf=\"!showQuantityControl\" class=\"flex gap-2 max-w-full items-center justify-stretch mt-1\">\n        <button tuiButton (click)=\"clickAddToCartEvent.emit(product)\" [showLoader]=\"quantityShowLoader\" [size]=\"size\" class=\"grow\">\n            <tui-svg src=\"scIconCart\" class=\"!text-xs !h-4\"> </tui-svg>\n            \u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0443\n        </button>\n        <div *ngIf=\"cartItem\" class=\"flex justify-center\">\n            <tui-svg src=\"tuiIconCheck\" class=\"!h-5 !w-5 bg-tui-primary text-black rounded-md\"></tui-svg>\n        </div>\n    </div>\n    <sc-input-quantity\n        #inputQuantity\n        *ngIf=\"showQuantityControl\"\n        [formControl]=\"quantityControl\"\n        [size]=\"getQuantitySize\"\n        [step]=\"unitsHelper.productMultiplicity(product)\"\n        [showLoader]=\"quantityShowLoader\"\n        (clickClearEvent)=\"clickClearEvent.emit(cartItem)\"\n        class=\"w-full mt-2\"\n        (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n    ></sc-input-quantity>\n</div>\n\n<ng-template #skeleton>\n    <div class=\"flex flex-col card-wrapper bg-white rounded-xl overflow-hidden shadow-sc-1\">\n        <!-- \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u0430 -->\n        <div class=\"w-full h-3/5 rounded-t bg-tui-base-02\"></div>\n        <!-- \u041A\u0440\u0430\u0442\u043A\u0430\u044F \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E \u0442\u043E\u0432\u0430\u0440\u0435 -->\n        <div class=\"flex flex-col grow gap-2.5 bg-white rounded-b p-5\">\n            <div class=\"w-full h-4 rounded bg-tui-base-02\"></div>\n            <div class=\"w-3/5 h-4 rounded bg-tui-base-02\"></div>\n            <div class=\"w-full h-4 rounded bg-tui-base-02\"></div>\n        </div>\n    </div>\n</ng-template>\n", styles: [":host[data-size=s] .card-wrapper{width:10rem;height:16rem}:host[data-size=s] .card-wrapper .wrapper-info{padding:8px}:host[data-size=s] .card-wrapper .wrapper-info .cost{font-size:.875rem;line-height:1.25rem}:host[data-size=s] .card-wrapper .button-wrapper tui-svg{font-size:.75rem;line-height:1rem;width:1rem}:host[data-size=m] .card-wrapper{width:12.5rem;height:20rem}:host[data-size=m] .card-wrapper .wrapper-info{padding-inline:16px;padding-block:8px}:host[data-size=m] .card-wrapper .name{font-size:.875rem;line-height:1.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-height:3rem}:host[data-size=m] .card-wrapper .info{max-height:1rem}:host[data-size=m] .card-wrapper .cost{font-size:1.125rem;line-height:1.75rem}:host[data-size=m] .card-wrapper .button-wrapper{max-height:0px;font-size:.75rem;line-height:1rem}:host[data-size=m] .card-wrapper:hover .name{-webkit-line-clamp:unset;max-height:6rem}:host[data-size=m] .card-wrapper:hover .info{max-height:3rem}:host[data-size=m] .card-wrapper:hover .button-wrapper{max-height:3rem}\n"] }]
         | 
| 1722 1740 | 
             
                    }], ctorParameters: function () {
         | 
| 1723 1741 | 
             
                    return [{ type: UnitsHelper }, { type: i1.ScAuthService }, { type: i1.ScWarehouseService }, { type: undefined, decorators: [{
         | 
| 1724 1742 | 
             
                                    type: Inject,
         |