@snabcentr/client-ui 0.16.2 → 0.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @snabcentr/client-ui might be problematic. Click here for more details.
- package/catalog/price-card/sc-price-card.component.d.ts +31 -22
 - package/catalog/sc-catalog.module.d.ts +1 -1
 - package/esm2020/catalog/price-card/sc-price-card.component.mjs +31 -13
 - package/esm2020/catalog/sc-catalog.module.mjs +7 -4
 - package/esm2020/files/files-and-documents/files-and-documents.component.mjs +60 -0
 - package/esm2020/files/files-and-documents.module.mjs +7 -7
 - package/esm2020/files/index.mjs +3 -3
 - package/esm2020/form-fields/suggestion-field/sc-suggestion-field.component.mjs +25 -20
 - package/esm2020/public-api.mjs +2 -2
 - package/esm2020/tokens/index.mjs +2 -1
 - package/esm2020/tokens/sc-min-length-search-term.mjs +6 -0
 - package/fesm2015/snabcentr-client-ui.mjs +67 -39
 - package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
 - package/fesm2020/snabcentr-client-ui.mjs +65 -37
 - package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
 - package/files/{files-and-documents.component.d.ts → files-and-documents/files-and-documents.component.d.ts} +2 -2
 - package/files/files-and-documents.module.d.ts +1 -1
 - package/files/index.d.ts +2 -2
 - package/package.json +1 -1
 - package/public-api.d.ts +1 -1
 - package/styles/tailwind/tailwind.scss +6 -9
 - package/tokens/index.d.ts +1 -0
 - package/tokens/sc-min-length-search-term.d.ts +5 -0
 - package/esm2020/files/files-and-documents.component.mjs +0 -60
 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            import * as i0 from '@angular/core';
         
     | 
| 
       2 
     | 
    
         
            -
            import { EventEmitter, Component, ChangeDetectionStrategy, Inject, Input, Output, NgModule, Directive, HostBinding, ContentChild, ViewChild, Injectable, ElementRef, ContentChildren, HostListener, ChangeDetectorRef, Optional, Self, inject,  
     | 
| 
      
 2 
     | 
    
         
            +
            import { EventEmitter, Component, ChangeDetectionStrategy, Inject, Input, Output, NgModule, Directive, HostBinding, ContentChild, ViewChild, Injectable, ElementRef, ContentChildren, HostListener, InjectionToken, ChangeDetectorRef, Optional, Self, inject, SkipSelf, forwardRef } from '@angular/core';
         
     | 
| 
       3 
3 
     | 
    
         
             
            import * as i1 from '@snabcentr/client-core';
         
     | 
| 
       4 
4 
     | 
    
         
             
            import { ScUserMetrikaGoalsEnum, SC_URLS, SC_PATH_IMAGE_NOT_FOUND, ScCatalogService, ScCartService, ScAuthService, ScISuggestionType, ScOpfList, ScIconTypesEnum, ScUserService } from '@snabcentr/client-core';
         
     | 
| 
       5 
5 
     | 
    
         
             
            import * as i10 from 'rxjs';
         
     | 
| 
         @@ -13,7 +13,7 @@ import { FormGroupDirective, FormGroup, FormControl, Validators, FormsModule, Re 
     | 
|
| 
       13 
13 
     | 
    
         
             
            import * as i5 from '@taiga-ui/cdk';
         
     | 
| 
       14 
14 
     | 
    
         
             
            import { tuiControlValue, tuiIsFalsy, TuiLetModule, tuiCreateToken, AbstractTuiNullableControl, TUI_IS_MOBILE, tuiPure, tuiIsPresent, TuiDestroyService, TuiRepeatTimesModule, tuiMarkControlAsTouchedAndValidate, ALWAYS_TRUE_HANDLER } from '@taiga-ui/cdk';
         
     | 
| 
       15 
15 
     | 
    
         
             
            import * as i4$1 from '@taiga-ui/kit';
         
     | 
| 
       16 
     | 
    
         
            -
            import { TuiInputPasswordModule, TuiInputModule, TuiFieldErrorPipeModule, TuiInputPhoneModule, TuiAccordionItemComponent, TuiAccordionModule, TuiElasticContainerModule, TuiCarouselModule, TUI_NUMBER_VALUE_TRANSFORMER, TuiInputNumberComponent, TuiIslandModule, TuiInputNumberModule, TuiCarouselComponent, TuiComboBoxModule, TuiDataListWrapperModule, TuiFilterByInputPipeModule, TuiStringifyContentPipeModule, TuiSelectModule, TuiTreeService, TuiTreeItemContentComponent, TUI_TREE_START, TUI_TREE_CONTENT, TUI_TREE_LOADING, TUI_TREE_LOADER, TuiTreeModule, TuiCheckboxModule, TuiCheckboxLabeledModule } from '@taiga-ui/kit';
         
     | 
| 
      
 16 
     | 
    
         
            +
            import { TuiInputPasswordModule, TuiInputModule, TuiFieldErrorPipeModule, TuiInputPhoneModule, TuiAccordionItemComponent, TuiAccordionModule, TuiElasticContainerModule, TuiCarouselModule, TUI_NUMBER_VALUE_TRANSFORMER, TuiInputNumberComponent, TuiIslandModule, TuiInputNumberModule, TuiHighlightModule, TuiCarouselComponent, TuiComboBoxModule, TuiDataListWrapperModule, TuiFilterByInputPipeModule, TuiStringifyContentPipeModule, TuiSelectModule, TuiTreeService, TuiTreeItemContentComponent, TUI_TREE_START, TUI_TREE_CONTENT, TUI_TREE_LOADING, TUI_TREE_LOADER, TuiTreeModule, TuiCheckboxModule, TuiCheckboxLabeledModule } from '@taiga-ui/kit';
         
     | 
| 
       17 
17 
     | 
    
         
             
            import * as i6 from '@maskito/angular';
         
     | 
| 
       18 
18 
     | 
    
         
             
            import { MaskitoModule } from '@maskito/angular';
         
     | 
| 
       19 
19 
     | 
    
         
             
            import * as i2$1 from '@tinkoff/ng-polymorpheus';
         
     | 
| 
         @@ -35,6 +35,7 @@ import { LineChart } from 'echarts/charts'; 
     | 
|
| 
       35 
35 
     | 
    
         
             
            import { TitleComponent, TooltipComponent, GridComponent } from 'echarts/components';
         
     | 
| 
       36 
36 
     | 
    
         
             
            import * as echarts from 'echarts/core';
         
     | 
| 
       37 
37 
     | 
    
         
             
            import { SVGRenderer } from 'echarts/renderers';
         
     | 
| 
      
 38 
     | 
    
         
            +
            import { HttpErrorResponse } from '@angular/common/http';
         
     | 
| 
       38 
39 
     | 
    
         
             
            import * as i3$1 from '@taiga-ui/layout';
         
     | 
| 
       39 
40 
     | 
    
         
             
            import { TuiBlockStatusModule } from '@taiga-ui/layout';
         
     | 
| 
       40 
41 
     | 
    
         | 
| 
         @@ -969,6 +970,11 @@ const SC_LINEAR_VALUES = ['пог.м.', 'м.', 'м2']; 
     | 
|
| 
       969 
970 
     | 
    
         
             
             */
         
     | 
| 
       970 
971 
     | 
    
         
             
            const SC_LINEAR_VALUES_TOKEN = tuiCreateToken(SC_LINEAR_VALUES);
         
     | 
| 
       971 
972 
     | 
    
         | 
| 
      
 973 
     | 
    
         
            +
            /**
         
     | 
| 
      
 974 
     | 
    
         
            +
             *  Токен минимального количества введенных символов в поиске для подсветки терма.
         
     | 
| 
      
 975 
     | 
    
         
            +
             */
         
     | 
| 
      
 976 
     | 
    
         
            +
            const SC_MIN_LENGTH_SEARCH_TERM = new InjectionToken('SC_MIN_LENGTH_SEARCH_TERM');
         
     | 
| 
      
 977 
     | 
    
         
            +
             
     | 
| 
       972 
978 
     | 
    
         
             
            /**
         
     | 
| 
       973 
979 
     | 
    
         
             
             * Класс хэлпер для работы со значениями единиц измерения товара.
         
     | 
| 
       974 
980 
     | 
    
         
             
             */
         
     | 
| 
         @@ -1581,6 +1587,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor 
     | 
|
| 
       1581 
1587 
     | 
    
         
             
                            args: ['mouseleave']
         
     | 
| 
       1582 
1588 
     | 
    
         
             
                        }] } });
         
     | 
| 
       1583 
1589 
     | 
    
         | 
| 
      
 1590 
     | 
    
         
            +
            /* eslint-disable no-underscore-dangle */
         
     | 
| 
       1584 
1591 
     | 
    
         
             
            /**
         
     | 
| 
       1585 
1592 
     | 
    
         
             
             * Компонент карточки товара.
         
     | 
| 
       1586 
1593 
     | 
    
         
             
             */
         
     | 
| 
         @@ -1593,18 +1600,23 @@ class ScPriceCardComponent { 
     | 
|
| 
       1593 
1600 
     | 
    
         
             
                 * @param warehouseService Сервис для работы со складами.
         
     | 
| 
       1594 
1601 
     | 
    
         
             
                 * @param urls Список ссылок на разделы backend'a.
         
     | 
| 
       1595 
1602 
     | 
    
         
             
                 * @param pathImageNotFound Путь до изображения 'Товар не найден'.
         
     | 
| 
      
 1603 
     | 
    
         
            +
                 * @param minLengthSearchTerm Токен минимального количества введенных символов в поиске для подсветки терма.
         
     | 
| 
      
 1604 
     | 
    
         
            +
                 * @param cdr Объект для работы с обнаружением изменений.
         
     | 
| 
       1596 
1605 
     | 
    
         
             
                 * @param imageHelper Хелпер для работы с изображениями товара.
         
     | 
| 
      
 1606 
     | 
    
         
            +
                 * @param searchService Сервис поиска по каталогу.
         
     | 
| 
       1597 
1607 
     | 
    
         
             
                 */
         
     | 
| 
       1598 
     | 
    
         
            -
                constructor(unitsHelper, authService, warehouseService, urls, pathImageNotFound, cdr, imageHelper) {
         
     | 
| 
      
 1608 
     | 
    
         
            +
                constructor(unitsHelper, authService, warehouseService, urls, pathImageNotFound, minLengthSearchTerm, cdr, imageHelper, searchService) {
         
     | 
| 
       1599 
1609 
     | 
    
         
             
                    this.unitsHelper = unitsHelper;
         
     | 
| 
       1600 
1610 
     | 
    
         
             
                    this.authService = authService;
         
     | 
| 
       1601 
1611 
     | 
    
         
             
                    this.warehouseService = warehouseService;
         
     | 
| 
       1602 
1612 
     | 
    
         
             
                    this.urls = urls;
         
     | 
| 
       1603 
1613 
     | 
    
         
             
                    this.pathImageNotFound = pathImageNotFound;
         
     | 
| 
      
 1614 
     | 
    
         
            +
                    this.minLengthSearchTerm = minLengthSearchTerm;
         
     | 
| 
       1604 
1615 
     | 
    
         
             
                    this.cdr = cdr;
         
     | 
| 
       1605 
1616 
     | 
    
         
             
                    this.imageHelper = imageHelper;
         
     | 
| 
      
 1617 
     | 
    
         
            +
                    this.searchService = searchService;
         
     | 
| 
       1606 
1618 
     | 
    
         
             
                    /**
         
     | 
| 
       1607 
     | 
    
         
            -
                     * Признак того,  
     | 
| 
      
 1619 
     | 
    
         
            +
                     * Признак того, что этот компонент отображается на мобильном устройстве.
         
     | 
| 
       1608 
1620 
     | 
    
         
             
                     */
         
     | 
| 
       1609 
1621 
     | 
    
         
             
                    this.isMobile = inject(TUI_IS_MOBILE);
         
     | 
| 
       1610 
1622 
     | 
    
         
             
                    /**
         
     | 
| 
         @@ -1651,6 +1663,12 @@ class ScPriceCardComponent { 
     | 
|
| 
       1651 
1663 
     | 
    
         
             
                     * {@link Observable} изменения статуса авторизации.
         
     | 
| 
       1652 
1664 
     | 
    
         
             
                     */
         
     | 
| 
       1653 
1665 
     | 
    
         
             
                    this.authStatus$ = this.authService.getAuthChange();
         
     | 
| 
      
 1666 
     | 
    
         
            +
                    /**
         
     | 
| 
      
 1667 
     | 
    
         
            +
                     * {@link Observable} символов вводимых в поиск.
         
     | 
| 
      
 1668 
     | 
    
         
            +
                     */
         
     | 
| 
      
 1669 
     | 
    
         
            +
                    this.search$ = this.searchService
         
     | 
| 
      
 1670 
     | 
    
         
            +
                        .getSearchTermChange$()
         
     | 
| 
      
 1671 
     | 
    
         
            +
                        .pipe(map((searchTerm) => (searchTerm && searchTerm.length >= this.minLengthSearchTerm ? searchTerm : '')));
         
     | 
| 
       1654 
1672 
     | 
    
         
             
                    /**
         
     | 
| 
       1655 
1673 
     | 
    
         
             
                     * Размер компонента.
         
     | 
| 
       1656 
1674 
     | 
    
         
             
                     */
         
     | 
| 
         @@ -1700,20 +1718,23 @@ class ScPriceCardComponent { 
     | 
|
| 
       1700 
1718 
     | 
    
         
             
                    this.cdr.markForCheck();
         
     | 
| 
       1701 
1719 
     | 
    
         
             
                }
         
     | 
| 
       1702 
1720 
     | 
    
         
             
            }
         
     | 
| 
       1703 
     | 
    
         
            -
            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 });
         
     | 
| 
       1704 
     | 
    
         
            -
            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):not(ng-template)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { kind: "directive", type: i4.TuiHintDriverDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)" }, { kind: "directive", type: i4.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { kind: "directive", type: i4.TuiHintPositionDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", 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 });
         
     | 
| 
      
 1721 
     | 
    
         
            +
            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: SC_MIN_LENGTH_SEARCH_TERM }, { token: i0.ChangeDetectorRef }, { token: i1.ScImageHelper }, { token: i1.ScSearchService }], target: i0.ɵɵFactoryTarget.Component });
         
     | 
| 
      
 1722 
     | 
    
         
            +
            ScPriceCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPriceCardComponent, selector: "sc-price-card", inputs: { cartItem: "cartItem", showQuantityControl: "showQuantityControl", 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\n    *ngIf=\"product; else skeleton\"\n    class=\"relative grid h-[19rem] w-auto min-w-40 rounded-xl p-2 text-xs shadow-md\"\n>\n    <div class=\"overflow-hidden\">\n        <img\n            (click)=\"clickCardEvent.emit()\"\n            [src]=\"getCardImagePreview()\"\n            [alt]=\"product.name\"\n            class=\"max-h-full w-full rounded-xl object-cover\"\n        />\n    </div>\n    <sc-favorite-btn\n        *ngIf=\"authStatus$ | async\"\n        class=\"absolute left-0 top-0\"\n        (clickEvent)=\"clickFavoriteEvent.emit()\"\n        [showLoader]=\"favoriteShowLoader\"\n        [isFavorite]=\"product.isFavorite\"\n        [disabled]=\"!!product.primaryCategory?.isFavorite\"\n    ></sc-favorite-btn>\n    <tui-svg\n        *ngIf=\"product.isPreviouslyOrdered\"\n        src=\"scIconStar\"\n        class=\"absolute right-0 top-0 text-red-700\"\n    ></tui-svg>\n\n    <a\n        class=\"m-0 p-0\"\n        tuiLink\n        iconAlign=\"left\"\n        (click)=\"clickCardEvent.emit()\"\n    >\n        <p\n            class=\"line-clamp-3 text-sm font-bold\"\n            style=\"word-break: break-word\"\n            [tuiHighlight]=\"(search$ | async) ?? ''\"\n        >\n            {{ product.name }}\n        </p>\n    </a>\n    <p\n        *ngIf=\"product?.pack\"\n        class=\"text-tui-text-02\"\n    >\n        \u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}\n    </p>\n\n    <p\n        [tuiHighlight]=\"(search$ | async) ?? ''\"\n        class=\"text-tui-text-02\"\n    >\n        \u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}\n    </p>\n    <p\n        *ngIf=\"(authStatus$ | async) && product?.costDate\"\n        class=\"text-tui-text-02\"\n    >\n        \u0414\u0430\u0442\u0430: {{ product.costDate }}\n    </p>\n    <div\n        *ngIf=\"warehouseSelect$ | async as warehouseSelect\"\n        class=\"flex flex-col\"\n    >\n        <span\n            *ngIf=\"product.discount && !isMobile\"\n            class=\"flex items-center text-tui-text-02\"\n        >\n            <span class=\"line-through\">{{ product.discountCostString }}</span>  \n            <span class=\"font-bold text-tui-success-fill\"> -{{ product.discount.percent }}% </span>\n            <tui-svg\n                src=\"tuiIconInfoLarge\"\n                [tuiHint]=\"discountHint\"\n                [tuiHintShowDelay]=\"100\"\n                tuiHintDirection=\"top\"\n                class=\"!h-4 !text-xs text-black\"\n            ></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\n            [class.text-tui-text-02]=\"!product.isWarehouseStockExist(warehouseSelect.id)\"\n            class=\"cost font-bold\"\n            >{{ product.costRubString }}</span\n        >\n        <span\n            *ngIf=\"!product.priceInRub\"\n            class=\"hidden text-xs font-bold text-tui-text-02 group-hover:block\"\n            >{{ product.costString }}</span\n        >\n        <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n    </div>\n    <div\n        *ngIf=\"!showQuantityControl\"\n        class=\"mt-1 flex max-w-full items-center justify-stretch gap-2\"\n    >\n        <button\n            tuiButton\n            (click)=\"clickAddToCartEvent.emit(product)\"\n            [showLoader]=\"quantityShowLoader\"\n            [size]=\"size\"\n            class=\"grow\"\n        >\n            <tui-svg\n                src=\"scIconCart\"\n                class=\"!h-4 !text-xs\"\n            >\n            </tui-svg>\n            \u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0443\n        </button>\n        <div\n            *ngIf=\"cartItem\"\n            class=\"flex justify-center\"\n        >\n            <tui-svg\n                src=\"tuiIconCheck\"\n                class=\"!h-5 !w-5 rounded-md bg-tui-primary text-black\"\n            ></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=\"mt-2 w-full\"\n        (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n    ></sc-input-quantity>\n</div>\n\n<ng-template #skeleton>\n    <div class=\"card-wrapper flex flex-col overflow-hidden rounded-xl bg-white shadow-sc-1\">\n        <!-- \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u0430 -->\n        <div class=\"h-3/5 w-full 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 grow flex-col gap-2.5 rounded-b bg-white p-5\">\n            <div class=\"h-4 w-full rounded bg-tui-base-02\"></div>\n            <div class=\"h-4 w-3/5 rounded bg-tui-base-02\"></div>\n            <div class=\"h-4 w-full 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):not(ng-template)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { kind: "directive", type: i4.TuiHintDriverDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)" }, { kind: "directive", type: i4.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { kind: "directive", type: i4.TuiHintPositionDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintDirection"] }, { kind: "component", type: i4.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { kind: "directive", type: i4$1.TuiHighlightDirective, selector: "[tuiHighlight]", inputs: ["tuiHighlight", "tuiHighlightColor"] }, { 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 });
         
     | 
| 
       1705 
1723 
     | 
    
         
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceCardComponent, decorators: [{
         
     | 
| 
       1706 
1724 
     | 
    
         
             
                        type: Component,
         
     | 
| 
       1707 
     | 
    
         
            -
                        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 
     | 
| 
      
 1725 
     | 
    
         
            +
                        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\n    *ngIf=\"product; else skeleton\"\n    class=\"relative grid h-[19rem] w-auto min-w-40 rounded-xl p-2 text-xs shadow-md\"\n>\n    <div class=\"overflow-hidden\">\n        <img\n            (click)=\"clickCardEvent.emit()\"\n            [src]=\"getCardImagePreview()\"\n            [alt]=\"product.name\"\n            class=\"max-h-full w-full rounded-xl object-cover\"\n        />\n    </div>\n    <sc-favorite-btn\n        *ngIf=\"authStatus$ | async\"\n        class=\"absolute left-0 top-0\"\n        (clickEvent)=\"clickFavoriteEvent.emit()\"\n        [showLoader]=\"favoriteShowLoader\"\n        [isFavorite]=\"product.isFavorite\"\n        [disabled]=\"!!product.primaryCategory?.isFavorite\"\n    ></sc-favorite-btn>\n    <tui-svg\n        *ngIf=\"product.isPreviouslyOrdered\"\n        src=\"scIconStar\"\n        class=\"absolute right-0 top-0 text-red-700\"\n    ></tui-svg>\n\n    <a\n        class=\"m-0 p-0\"\n        tuiLink\n        iconAlign=\"left\"\n        (click)=\"clickCardEvent.emit()\"\n    >\n        <p\n            class=\"line-clamp-3 text-sm font-bold\"\n            style=\"word-break: break-word\"\n            [tuiHighlight]=\"(search$ | async) ?? ''\"\n        >\n            {{ product.name }}\n        </p>\n    </a>\n    <p\n        *ngIf=\"product?.pack\"\n        class=\"text-tui-text-02\"\n    >\n        \u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}\n    </p>\n\n    <p\n        [tuiHighlight]=\"(search$ | async) ?? ''\"\n        class=\"text-tui-text-02\"\n    >\n        \u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}\n    </p>\n    <p\n        *ngIf=\"(authStatus$ | async) && product?.costDate\"\n        class=\"text-tui-text-02\"\n    >\n        \u0414\u0430\u0442\u0430: {{ product.costDate }}\n    </p>\n    <div\n        *ngIf=\"warehouseSelect$ | async as warehouseSelect\"\n        class=\"flex flex-col\"\n    >\n        <span\n            *ngIf=\"product.discount && !isMobile\"\n            class=\"flex items-center text-tui-text-02\"\n        >\n            <span class=\"line-through\">{{ product.discountCostString }}</span>  \n            <span class=\"font-bold text-tui-success-fill\"> -{{ product.discount.percent }}% </span>\n            <tui-svg\n                src=\"tuiIconInfoLarge\"\n                [tuiHint]=\"discountHint\"\n                [tuiHintShowDelay]=\"100\"\n                tuiHintDirection=\"top\"\n                class=\"!h-4 !text-xs text-black\"\n            ></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\n            [class.text-tui-text-02]=\"!product.isWarehouseStockExist(warehouseSelect.id)\"\n            class=\"cost font-bold\"\n            >{{ product.costRubString }}</span\n        >\n        <span\n            *ngIf=\"!product.priceInRub\"\n            class=\"hidden text-xs font-bold text-tui-text-02 group-hover:block\"\n            >{{ product.costString }}</span\n        >\n        <sc-price-warehouse-stock [product]=\"product\"></sc-price-warehouse-stock>\n    </div>\n    <div\n        *ngIf=\"!showQuantityControl\"\n        class=\"mt-1 flex max-w-full items-center justify-stretch gap-2\"\n    >\n        <button\n            tuiButton\n            (click)=\"clickAddToCartEvent.emit(product)\"\n            [showLoader]=\"quantityShowLoader\"\n            [size]=\"size\"\n            class=\"grow\"\n        >\n            <tui-svg\n                src=\"scIconCart\"\n                class=\"!h-4 !text-xs\"\n            >\n            </tui-svg>\n            \u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0443\n        </button>\n        <div\n            *ngIf=\"cartItem\"\n            class=\"flex justify-center\"\n        >\n            <tui-svg\n                src=\"tuiIconCheck\"\n                class=\"!h-5 !w-5 rounded-md bg-tui-primary text-black\"\n            ></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=\"mt-2 w-full\"\n        (keydown.enter)=\"inputQuantity.nativeFocusableElement?.blur()\"\n    ></sc-input-quantity>\n</div>\n\n<ng-template #skeleton>\n    <div class=\"card-wrapper flex flex-col overflow-hidden rounded-xl bg-white shadow-sc-1\">\n        <!-- \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u0430 -->\n        <div class=\"h-3/5 w-full 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 grow flex-col gap-2.5 rounded-b bg-white p-5\">\n            <div class=\"h-4 w-full rounded bg-tui-base-02\"></div>\n            <div class=\"h-4 w-3/5 rounded bg-tui-base-02\"></div>\n            <div class=\"h-4 w-full 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"] }]
         
     | 
| 
       1708 
1726 
     | 
    
         
             
                    }], ctorParameters: function () { return [{ type: UnitsHelper }, { type: i1.ScAuthService }, { type: i1.ScWarehouseService }, { type: undefined, decorators: [{
         
     | 
| 
       1709 
1727 
     | 
    
         
             
                                type: Inject,
         
     | 
| 
       1710 
1728 
     | 
    
         
             
                                args: [SC_URLS]
         
     | 
| 
       1711 
1729 
     | 
    
         
             
                            }] }, { type: undefined, decorators: [{
         
     | 
| 
       1712 
1730 
     | 
    
         
             
                                type: Inject,
         
     | 
| 
       1713 
1731 
     | 
    
         
             
                                args: [SC_PATH_IMAGE_NOT_FOUND]
         
     | 
| 
       1714 
     | 
    
         
            -
                            }] }, { type:  
     | 
| 
      
 1732 
     | 
    
         
            +
                            }] }, { type: undefined, decorators: [{
         
     | 
| 
      
 1733 
     | 
    
         
            +
                                type: Inject,
         
     | 
| 
      
 1734 
     | 
    
         
            +
                                args: [SC_MIN_LENGTH_SEARCH_TERM]
         
     | 
| 
      
 1735 
     | 
    
         
            +
                            }] }, { type: i0.ChangeDetectorRef }, { type: i1.ScImageHelper }, { type: i1.ScSearchService }]; }, propDecorators: { cartItem: [{
         
     | 
| 
       1715 
1736 
     | 
    
         
             
                            type: Input
         
     | 
| 
       1716 
     | 
    
         
            -
                        }],  
     | 
| 
      
 1737 
     | 
    
         
            +
                        }], showQuantityControl: [{
         
     | 
| 
       1717 
1738 
     | 
    
         
             
                            type: Input
         
     | 
| 
       1718 
1739 
     | 
    
         
             
                        }], product: [{
         
     | 
| 
       1719 
1740 
     | 
    
         
             
                            type: Input
         
     | 
| 
         @@ -2182,7 +2203,8 @@ ScCatalogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version 
     | 
|
| 
       2182 
2203 
     | 
    
         
             
                    TuiLoaderModule,
         
     | 
| 
       2183 
2204 
     | 
    
         
             
                    TuiLinkModule,
         
     | 
| 
       2184 
2205 
     | 
    
         
             
                    TuiElasticContainerModule, i2$2.NgxEchartsModule, TuiLetModule,
         
     | 
| 
       2185 
     | 
    
         
            -
                    TuiRepeatTimesModule 
     | 
| 
      
 2206 
     | 
    
         
            +
                    TuiRepeatTimesModule,
         
     | 
| 
      
 2207 
     | 
    
         
            +
                    TuiHighlightModule], exports: [ScPriceListPaginationComponent,
         
     | 
| 
       2186 
2208 
     | 
    
         
             
                    ScCategoryCardComponent,
         
     | 
| 
       2187 
2209 
     | 
    
         
             
                    ScFavoriteBtnComponent,
         
     | 
| 
       2188 
2210 
     | 
    
         
             
                    ScInputQuantityComponent,
         
     | 
| 
         @@ -2208,7 +2230,8 @@ ScCatalogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version 
     | 
|
| 
       2208 
2230 
     | 
    
         
             
                    TuiElasticContainerModule,
         
     | 
| 
       2209 
2231 
     | 
    
         
             
                    NgxEchartsModule.forRoot({ echarts }),
         
     | 
| 
       2210 
2232 
     | 
    
         
             
                    TuiLetModule,
         
     | 
| 
       2211 
     | 
    
         
            -
                    TuiRepeatTimesModule 
     | 
| 
      
 2233 
     | 
    
         
            +
                    TuiRepeatTimesModule,
         
     | 
| 
      
 2234 
     | 
    
         
            +
                    TuiHighlightModule] });
         
     | 
| 
       2212 
2235 
     | 
    
         
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScCatalogModule, decorators: [{
         
     | 
| 
       2213 
2236 
     | 
    
         
             
                        type: NgModule,
         
     | 
| 
       2214 
2237 
     | 
    
         
             
                        args: [{
         
     | 
| 
         @@ -2252,6 +2275,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor 
     | 
|
| 
       2252 
2275 
     | 
    
         
             
                                    NgxEchartsModule.forRoot({ echarts }),
         
     | 
| 
       2253 
2276 
     | 
    
         
             
                                    TuiLetModule,
         
     | 
| 
       2254 
2277 
     | 
    
         
             
                                    TuiRepeatTimesModule,
         
     | 
| 
      
 2278 
     | 
    
         
            +
                                    TuiHighlightModule,
         
     | 
| 
       2255 
2279 
     | 
    
         
             
                                ],
         
     | 
| 
       2256 
2280 
     | 
    
         
             
                            }]
         
     | 
| 
       2257 
2281 
     | 
    
         
             
                    }] });
         
     | 
| 
         @@ -2336,16 +2360,18 @@ class ScSuggestionFieldComponent { 
     | 
|
| 
       2336 
2360 
     | 
    
         
             
                /** @inheritDoc */
         
     | 
| 
       2337 
2361 
     | 
    
         
             
                ngOnInit() {
         
     | 
| 
       2338 
2362 
     | 
    
         
             
                    const request$ = tuiControlValue(this.control).pipe(debounceTime(300), filter(tuiIsPresent), map((term) => term.trim()), filter((term) => term.length >= 3), switchMap((term) => this.suggestionService.getData(term, this.type).pipe(startWith(null))), catchError((error) => {
         
     | 
| 
       2339 
     | 
    
         
            -
                         
     | 
| 
       2340 
     | 
    
         
            -
             
     | 
| 
       2341 
     | 
    
         
            -
                             
     | 
| 
       2342 
     | 
    
         
            -
             
     | 
| 
       2343 
     | 
    
         
            -
                                 
     | 
| 
       2344 
     | 
    
         
            -
             
     | 
| 
      
 2363 
     | 
    
         
            +
                        if (error instanceof HttpErrorResponse) {
         
     | 
| 
      
 2364 
     | 
    
         
            +
                            const errorResponse = error.error;
         
     | 
| 
      
 2365 
     | 
    
         
            +
                            if (this.control.control) {
         
     | 
| 
      
 2366 
     | 
    
         
            +
                                tuiMarkControlAsTouchedAndValidate(this.control.control);
         
     | 
| 
      
 2367 
     | 
    
         
            +
                                this.control.control.setErrors({
         
     | 
| 
      
 2368 
     | 
    
         
            +
                                    serverResponse: [errorResponse.message || 'Ошибка сервера: пожалуйста, перезагрузите страницу и/или выполните запрос позже.'],
         
     | 
| 
      
 2369 
     | 
    
         
            +
                                });
         
     | 
| 
      
 2370 
     | 
    
         
            +
                            }
         
     | 
| 
       2345 
2371 
     | 
    
         
             
                        }
         
     | 
| 
       2346 
2372 
     | 
    
         
             
                        return throwError(() => of([]));
         
     | 
| 
       2347 
2373 
     | 
    
         
             
                    }), share());
         
     | 
| 
       2348 
     | 
    
         
            -
                    this.suggestions$ = request 
     | 
| 
      
 2374 
     | 
    
         
            +
                    this.suggestions$ = request$.pipe(filter(tuiIsPresent), startWith(null));
         
     | 
| 
       2349 
2375 
     | 
    
         
             
                    this.loading$ = request$.pipe(map(tuiIsFalsy));
         
     | 
| 
       2350 
2376 
     | 
    
         
             
                }
         
     | 
| 
       2351 
2377 
     | 
    
         
             
                /**
         
     | 
| 
         @@ -2362,21 +2388,21 @@ class ScSuggestionFieldComponent { 
     | 
|
| 
       2362 
2388 
     | 
    
         
             
                            break;
         
     | 
| 
       2363 
2389 
     | 
    
         
             
                        case ScISuggestionType.address:
         
     | 
| 
       2364 
2390 
     | 
    
         
             
                            if ('addressString' in suggestion) {
         
     | 
| 
       2365 
     | 
    
         
            -
                                this.control.control?.patchValue(suggestion.addressString 
     | 
| 
      
 2391 
     | 
    
         
            +
                                this.control.control?.patchValue(suggestion.addressString);
         
     | 
| 
       2366 
2392 
     | 
    
         
             
                            }
         
     | 
| 
       2367 
2393 
     | 
    
         
             
                            break;
         
     | 
| 
       2368 
2394 
     | 
    
         
             
                        case ScISuggestionType.bank:
         
     | 
| 
       2369 
2395 
     | 
    
         
             
                            if ('inn' in suggestion && 'bic' in suggestion) {
         
     | 
| 
       2370 
     | 
    
         
            -
                                this.control.control?.parent 
     | 
| 
      
 2396 
     | 
    
         
            +
                                (this.control.control?.parent).patchValue({
         
     | 
| 
       2371 
2397 
     | 
    
         
             
                                    bankName: suggestion.name,
         
     | 
| 
       2372 
2398 
     | 
    
         
             
                                    bic: suggestion.bic,
         
     | 
| 
       2373 
     | 
    
         
            -
                                    correspondentAccount: suggestion.correspondentAccount
         
     | 
| 
       2374 
     | 
    
         
            -
                                } 
     | 
| 
      
 2399 
     | 
    
         
            +
                                    correspondentAccount: suggestion.correspondentAccount,
         
     | 
| 
      
 2400 
     | 
    
         
            +
                                });
         
     | 
| 
       2375 
2401 
     | 
    
         
             
                            }
         
     | 
| 
       2376 
2402 
     | 
    
         
             
                            break;
         
     | 
| 
       2377 
2403 
     | 
    
         
             
                        case ScISuggestionType.organization:
         
     | 
| 
       2378 
2404 
     | 
    
         
             
                            if ('inn' in suggestion && !('bic' in suggestion)) {
         
     | 
| 
       2379 
     | 
    
         
            -
                                this.control.control?.parent 
     | 
| 
      
 2405 
     | 
    
         
            +
                                (this.control.control?.parent).patchValue({
         
     | 
| 
       2380 
2406 
     | 
    
         
             
                                    name: suggestion.name,
         
     | 
| 
       2381 
2407 
     | 
    
         
             
                                    inn: suggestion.inn,
         
     | 
| 
       2382 
2408 
     | 
    
         
             
                                    kpp: suggestion.kpp,
         
     | 
| 
         @@ -2385,23 +2411,25 @@ class ScSuggestionFieldComponent { 
     | 
|
| 
       2385 
2411 
     | 
    
         
             
                                    directorPosition: suggestion.directorPosition,
         
     | 
| 
       2386 
2412 
     | 
    
         
             
                                    legalAddress: suggestion.legalAddress,
         
     | 
| 
       2387 
2413 
     | 
    
         
             
                                    postalAddress: suggestion.postalAddress,
         
     | 
| 
       2388 
     | 
    
         
            -
                                    actualAddress: suggestion.actualAddress
         
     | 
| 
       2389 
     | 
    
         
            -
                                } 
     | 
| 
      
 2414 
     | 
    
         
            +
                                    actualAddress: suggestion.actualAddress,
         
     | 
| 
      
 2415 
     | 
    
         
            +
                                });
         
     | 
| 
       2390 
2416 
     | 
    
         
             
                            }
         
     | 
| 
       2391 
2417 
     | 
    
         
             
                            break;
         
     | 
| 
       2392 
2418 
     | 
    
         
             
                        case ScISuggestionType.email:
         
     | 
| 
       2393 
2419 
     | 
    
         
             
                            if ('email' in suggestion) {
         
     | 
| 
       2394 
     | 
    
         
            -
                                this.control.control?.patchValue(suggestion.email 
     | 
| 
      
 2420 
     | 
    
         
            +
                                this.control.control?.patchValue(suggestion.email);
         
     | 
| 
       2395 
2421 
     | 
    
         
             
                            }
         
     | 
| 
       2396 
2422 
     | 
    
         
             
                            break;
         
     | 
| 
      
 2423 
     | 
    
         
            +
                        default:
         
     | 
| 
      
 2424 
     | 
    
         
            +
                            break;
         
     | 
| 
       2397 
2425 
     | 
    
         
             
                    }
         
     | 
| 
       2398 
2426 
     | 
    
         
             
                }
         
     | 
| 
       2399 
2427 
     | 
    
         
             
            }
         
     | 
| 
       2400 
2428 
     | 
    
         
             
            ScSuggestionFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScSuggestionFieldComponent, deps: [{ token: NgControl, skipSelf: true }, { token: i1.ScSuggestionService }], target: i0.ɵɵFactoryTarget.Component });
         
     | 
| 
       2401 
     | 
    
         
            -
            ScSuggestionFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: { type: "type" }, ngImport: i0, template: "<tui-loader 
     | 
| 
      
 2429 
     | 
    
         
            +
            ScSuggestionFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: { type: "type" }, ngImport: i0, template: "<tui-loader\n    size=\"m\"\n    [overlay]=\"true\"\n    [showLoader]=\"!!(loading$ | async)\"\n>\n    <tui-data-list *tuiLet=\"suggestions$ | async as options\">\n        <button\n            *ngFor=\"let option of options\"\n            tuiOption\n            (click)=\"onSelected(option)\"\n            class=\"flex-col !items-start\"\n        >\n            <ng-container *tuiLet=\"$any(option) as option\">\n                <ng-container [ngSwitch]=\"type\">\n                    <ng-container *ngSwitchCase=\"suggestionType.fio\">\n                        <span class=\"text-tui-link\">{{ option.fio }}</span>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"suggestionType.organization\">\n                        <span class=\"text-tui-link\">\n                            {{ option.name }}\n                            <span class=\"ml-2 text-tui-text-02\">\u0438\u043D\u043D: {{ option.inn }}</span>\n                        </span>\n                        <span class=\"text-tui-text-02\">{{ option?.legalAddress }}</span>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"suggestionType.bank\">\n                        <span class=\"text-tui-link\">{{ option.name }}</span>\n                        <span class=\"text-tui-text-02\">{{ option.bic }}</span>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"suggestionType.email\">\n                        <span class=\"text-tui-link\">{{ option.email }}</span>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"suggestionType.address\">\n                        <span class=\"text-tui-link\">{{ option.addressString }}</span>\n                    </ng-container>\n                </ng-container>\n            </ng-container>\n        </button>\n    </tui-data-list>\n</tui-loader>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "component", type: i4.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { kind: "component", type: i4.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }, { kind: "component", type: i4.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
         
     | 
| 
       2402 
2430 
     | 
    
         
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScSuggestionFieldComponent, decorators: [{
         
     | 
| 
       2403 
2431 
     | 
    
         
             
                        type: Component,
         
     | 
| 
       2404 
     | 
    
         
            -
                        args: [{ selector: 'sc-suggestion-field', template: "<tui-loader 
     | 
| 
      
 2432 
     | 
    
         
            +
                        args: [{ selector: 'sc-suggestion-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-loader\n    size=\"m\"\n    [overlay]=\"true\"\n    [showLoader]=\"!!(loading$ | async)\"\n>\n    <tui-data-list *tuiLet=\"suggestions$ | async as options\">\n        <button\n            *ngFor=\"let option of options\"\n            tuiOption\n            (click)=\"onSelected(option)\"\n            class=\"flex-col !items-start\"\n        >\n            <ng-container *tuiLet=\"$any(option) as option\">\n                <ng-container [ngSwitch]=\"type\">\n                    <ng-container *ngSwitchCase=\"suggestionType.fio\">\n                        <span class=\"text-tui-link\">{{ option.fio }}</span>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"suggestionType.organization\">\n                        <span class=\"text-tui-link\">\n                            {{ option.name }}\n                            <span class=\"ml-2 text-tui-text-02\">\u0438\u043D\u043D: {{ option.inn }}</span>\n                        </span>\n                        <span class=\"text-tui-text-02\">{{ option?.legalAddress }}</span>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"suggestionType.bank\">\n                        <span class=\"text-tui-link\">{{ option.name }}</span>\n                        <span class=\"text-tui-text-02\">{{ option.bic }}</span>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"suggestionType.email\">\n                        <span class=\"text-tui-link\">{{ option.email }}</span>\n                    </ng-container>\n                    <ng-container *ngSwitchCase=\"suggestionType.address\">\n                        <span class=\"text-tui-link\">{{ option.addressString }}</span>\n                    </ng-container>\n                </ng-container>\n            </ng-container>\n        </button>\n    </tui-data-list>\n</tui-loader>\n" }]
         
     | 
| 
       2405 
2433 
     | 
    
         
             
                    }], ctorParameters: function () { return [{ type: i3.NgControl, decorators: [{
         
     | 
| 
       2406 
2434 
     | 
    
         
             
                                type: SkipSelf
         
     | 
| 
       2407 
2435 
     | 
    
         
             
                            }, {
         
     | 
| 
         @@ -4013,7 +4041,7 @@ class FilesAndDocumentsComponent { 
     | 
|
| 
       4013 
4041 
     | 
    
         
             
                        hasChildren: this.iconService.hasChildren(item),
         
     | 
| 
       4014 
4042 
     | 
    
         
             
                        createdAt: item.createdAt,
         
     | 
| 
       4015 
4043 
     | 
    
         
             
                        id: item.id,
         
     | 
| 
       4016 
     | 
    
         
            -
                        link: item.link
         
     | 
| 
      
 4044 
     | 
    
         
            +
                        link: item.link,
         
     | 
| 
       4017 
4045 
     | 
    
         
             
                    }))));
         
     | 
| 
       4018 
4046 
     | 
    
         
             
                }
         
     | 
| 
       4019 
4047 
     | 
    
         
             
            }
         
     | 
| 
         @@ -4021,17 +4049,17 @@ FilesAndDocumentsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0 
     | 
|
| 
       4021 
4049 
     | 
    
         
             
            FilesAndDocumentsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FilesAndDocumentsComponent, selector: "sc-files-and-documents", providers: [
         
     | 
| 
       4022 
4050 
     | 
    
         
             
                    {
         
     | 
| 
       4023 
4051 
     | 
    
         
             
                        provide: TUI_TREE_LOADER,
         
     | 
| 
       4024 
     | 
    
         
            -
                        useClass: TreeLoaderService
         
     | 
| 
       4025 
     | 
    
         
            -
                    }
         
     | 
| 
       4026 
     | 
    
         
            -
                ], ngImport: i0, template: "<ng-container *ngIf=\"data$ | async as data; else skeleton\">\n    <tui-tree\n        *ngFor=\"let node of data\"\n        #tree=\"scTree\"\n        scTree\n        [scTopNodeText]=\"node.text\"\n        [scTopNodeIcon]=\"node.icon\"\n        [scTopNodeLink]=\"node.link\"\n        [scTopNodeChilds]=\"node.hasChildren\"\n        [scTopNodeParent]=\"node.id\"\n        [scTopNodeDate]=\"node.createdAt\"\n        [childrenHandler]=\"tree.childrenHandler\"\n        [content]=\"content\"\n        [map]=\"tree.map\"\n        [tuiTreeController]=\"false\"\n        [value]=\"tree.service.data$ | async\"\n        (toggled)=\"tree.onToggled($event)\"\n        class=\"overflow-hidden\"\n    ></tui-tree>\n</ng-container>\n\n<ng-template 
     | 
| 
      
 4052 
     | 
    
         
            +
                        useClass: TreeLoaderService,
         
     | 
| 
      
 4053 
     | 
    
         
            +
                    },
         
     | 
| 
      
 4054 
     | 
    
         
            +
                ], ngImport: i0, template: "<ng-container *ngIf=\"data$ | async as data; else skeleton\">\n    <tui-tree\n        *ngFor=\"let node of data\"\n        #tree=\"scTree\"\n        scTree\n        [scTopNodeText]=\"node.text\"\n        [scTopNodeIcon]=\"node.icon\"\n        [scTopNodeLink]=\"node.link\"\n        [scTopNodeChilds]=\"node.hasChildren\"\n        [scTopNodeParent]=\"node.id\"\n        [scTopNodeDate]=\"node.createdAt\"\n        [childrenHandler]=\"tree.childrenHandler\"\n        [content]=\"content\"\n        [map]=\"tree.map\"\n        [tuiTreeController]=\"false\"\n        [value]=\"tree.service.data$ | async\"\n        (toggled)=\"tree.onToggled($event)\"\n        class=\"overflow-hidden\"\n    ></tui-tree>\n</ng-container>\n\n<ng-template\n    #content\n    let-item\n>\n    <tui-loader\n        *ngIf=\"item === loading; else text\"\n        class=\"my-4 w-8\"\n    ></tui-loader>\n    <ng-template #text>\n        <tui-svg\n            [src]=\"item.icon\"\n            class=\"tui-space_right-2\"\n        ></tui-svg>\n        <a\n            tuiLink\n            [pseudo]=\"true\"\n            *ngIf=\"item.link\"\n            href=\"{{ item.link }}\"\n            class=\"grow\"\n            >{{ item.text }}</a\n        >\n        <p\n            *ngIf=\"!item.link\"\n            class=\"grow\"\n        >\n            {{ item.text }}\n        </p>\n        <p>{{ item.createdAt }}</p>\n    </ng-template>\n</ng-template>\n\n<ng-template #skeleton>\n    <div class=\"flex flex-col gap-2\">\n        <div\n            *ngFor=\"let _ of [].constructor(7)\"\n            class=\"flex items-center gap-2\"\n        >\n            <div class=\"tui-skeleton size-6\"></div>\n            <div class=\"tui-skeleton h-4 w-40\"></div>\n        </div>\n    </div>\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$1.TuiTreeComponent, selector: "tui-tree[value]", inputs: ["value", "trackBy", "content"] }, { kind: "directive", type: i4$1.TuiTreeChildrenDirective, selector: "tui-tree[childrenHandler]", inputs: ["childrenHandler"] }, { kind: "directive", type: i4$1.TuiTreeControllerDirective, selector: "[tuiTreeController][map]", inputs: ["tuiTreeController", "map"], outputs: ["toggled"], exportAs: ["tuiTreeController"] }, { kind: "component", type: i4.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "component", type: i4.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "component", type: i4.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { kind: "directive", type: TreeDirective, selector: "[scTree]", exportAs: ["scTree"] }, { kind: "directive", type: TreeTopDirective, selector: "[scTopNodeText]", inputs: ["scTopNodeText", "scTopNodeIcon", "scTopNodeLink", "scTopNodeChilds", "scTopNodeParent", "scTopNodeDate"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
         
     | 
| 
       4027 
4055 
     | 
    
         
             
            i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FilesAndDocumentsComponent, decorators: [{
         
     | 
| 
       4028 
4056 
     | 
    
         
             
                        type: Component,
         
     | 
| 
       4029 
4057 
     | 
    
         
             
                        args: [{ selector: 'sc-files-and-documents', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
         
     | 
| 
       4030 
4058 
     | 
    
         
             
                                    {
         
     | 
| 
       4031 
4059 
     | 
    
         
             
                                        provide: TUI_TREE_LOADER,
         
     | 
| 
       4032 
     | 
    
         
            -
                                        useClass: TreeLoaderService
         
     | 
| 
       4033 
     | 
    
         
            -
                                    }
         
     | 
| 
       4034 
     | 
    
         
            -
                                ], template: "<ng-container *ngIf=\"data$ | async as data; else skeleton\">\n    <tui-tree\n        *ngFor=\"let node of data\"\n        #tree=\"scTree\"\n        scTree\n        [scTopNodeText]=\"node.text\"\n        [scTopNodeIcon]=\"node.icon\"\n        [scTopNodeLink]=\"node.link\"\n        [scTopNodeChilds]=\"node.hasChildren\"\n        [scTopNodeParent]=\"node.id\"\n        [scTopNodeDate]=\"node.createdAt\"\n        [childrenHandler]=\"tree.childrenHandler\"\n        [content]=\"content\"\n        [map]=\"tree.map\"\n        [tuiTreeController]=\"false\"\n        [value]=\"tree.service.data$ | async\"\n        (toggled)=\"tree.onToggled($event)\"\n        class=\"overflow-hidden\"\n    ></tui-tree>\n</ng-container>\n\n<ng-template 
     | 
| 
      
 4060 
     | 
    
         
            +
                                        useClass: TreeLoaderService,
         
     | 
| 
      
 4061 
     | 
    
         
            +
                                    },
         
     | 
| 
      
 4062 
     | 
    
         
            +
                                ], template: "<ng-container *ngIf=\"data$ | async as data; else skeleton\">\n    <tui-tree\n        *ngFor=\"let node of data\"\n        #tree=\"scTree\"\n        scTree\n        [scTopNodeText]=\"node.text\"\n        [scTopNodeIcon]=\"node.icon\"\n        [scTopNodeLink]=\"node.link\"\n        [scTopNodeChilds]=\"node.hasChildren\"\n        [scTopNodeParent]=\"node.id\"\n        [scTopNodeDate]=\"node.createdAt\"\n        [childrenHandler]=\"tree.childrenHandler\"\n        [content]=\"content\"\n        [map]=\"tree.map\"\n        [tuiTreeController]=\"false\"\n        [value]=\"tree.service.data$ | async\"\n        (toggled)=\"tree.onToggled($event)\"\n        class=\"overflow-hidden\"\n    ></tui-tree>\n</ng-container>\n\n<ng-template\n    #content\n    let-item\n>\n    <tui-loader\n        *ngIf=\"item === loading; else text\"\n        class=\"my-4 w-8\"\n    ></tui-loader>\n    <ng-template #text>\n        <tui-svg\n            [src]=\"item.icon\"\n            class=\"tui-space_right-2\"\n        ></tui-svg>\n        <a\n            tuiLink\n            [pseudo]=\"true\"\n            *ngIf=\"item.link\"\n            href=\"{{ item.link }}\"\n            class=\"grow\"\n            >{{ item.text }}</a\n        >\n        <p\n            *ngIf=\"!item.link\"\n            class=\"grow\"\n        >\n            {{ item.text }}\n        </p>\n        <p>{{ item.createdAt }}</p>\n    </ng-template>\n</ng-template>\n\n<ng-template #skeleton>\n    <div class=\"flex flex-col gap-2\">\n        <div\n            *ngFor=\"let _ of [].constructor(7)\"\n            class=\"flex items-center gap-2\"\n        >\n            <div class=\"tui-skeleton size-6\"></div>\n            <div class=\"tui-skeleton h-4 w-40\"></div>\n        </div>\n    </div>\n</ng-template>\n" }]
         
     | 
| 
       4035 
4063 
     | 
    
         
             
                    }], ctorParameters: function () { return [{ type: undefined, decorators: [{
         
     | 
| 
       4036 
4064 
     | 
    
         
             
                                type: Inject,
         
     | 
| 
       4037 
4065 
     | 
    
         
             
                                args: [TUI_TREE_LOADING]
         
     | 
| 
         @@ -4050,7 +4078,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor 
     | 
|
| 
       4050 
4078 
     | 
    
         
             
                        args: [{
         
     | 
| 
       4051 
4079 
     | 
    
         
             
                                imports: [CommonModule, TuiTreeModule, TuiSvgModule, TuiLoaderModule, TuiLinkModule],
         
     | 
| 
       4052 
4080 
     | 
    
         
             
                                declarations: [FilesAndDocumentsComponent, TreeDirective, TreeTopDirective, FileTreeItemComponent],
         
     | 
| 
       4053 
     | 
    
         
            -
                                exports: [FilesAndDocumentsComponent]
         
     | 
| 
      
 4081 
     | 
    
         
            +
                                exports: [FilesAndDocumentsComponent],
         
     | 
| 
       4054 
4082 
     | 
    
         
             
                            }]
         
     | 
| 
       4055 
4083 
     | 
    
         
             
                    }] });
         
     | 
| 
       4056 
4084 
     | 
    
         | 
| 
         @@ -4939,5 +4967,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor 
     | 
|
| 
       4939 
4967 
     | 
    
         
             
             * Generated bundle index. Do not edit.
         
     | 
| 
       4940 
4968 
     | 
    
         
             
             */
         
     | 
| 
       4941 
4969 
     | 
    
         | 
| 
       4942 
     | 
    
         
            -
            export { AuthMethod, FilesAndDocumentsComponent, FilesAndDocumentsModule, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_LOADING_PAGINATION_CHANGE_INFO, SC_NEXT_PAGE_PAGINATION_CHANGE_INFO, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_CHANGE_INFO, SC_PRODUCT_PAGINATION_CHANGE_PROVIDERS, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_PRODUCT_PAGINATION_PARAMS, SC_USER_INFO, SC_USER_PROVIDERS, ScAccordionComponent, ScAccordionContentDirective, ScAccordionModule, ScAddContactDialogComponent, ScAddContragentBankAccountsDialogComponent, ScAddContragentDialogComponent, ScAddDeliveryAddressDialogComponent, ScAddressesSelectionFieldComponent, ScAuthModule, ScBannerComponent, ScBannerModule, ScCarouselItemHiddenDirective, ScCarouselItemHiddenModule, ScCartItemMobileComponent, ScCartModule, ScCatalogModule, ScCategoriesListComponent, ScCategoryCardComponent, ScContactsAccordionComponent, ScContactsModule, ScContragentsAccordionComponent, ScContragentsAccordionItemComponent, ScContragentsModule, ScDeliveryAddressAccordionComponent, ScDeliveryAddressAccordionItemComponent, ScDeliveryAddressModule, ScFavoriteBtnComponent, ScFormFieldsModule, ScInputQuantityComponent, ScNewContactFormComponent, ScNewContragentBankAccountsFormComponent, ScNewContragentFormComponent, ScNewsCardComponent, ScNewsCardSkeletonComponent, ScNewsModule, ScOrderItemMobileComponent, ScOrderModule, ScPaymentStatusComponent, ScPriceCardComponent, ScPriceHistoryComponent, ScPriceListPaginationComponent, ScPriceWarehouseStockComponent, ScProfileAccordionsContentComponent, ScProfileModule, ScResetUserPasswordComponent, ScShareButtonComponent, ScShareButtonModule, ScSignInFormByEmailComponent, ScSignInFormByPhoneComponent, ScSignInFormComponent, ScSuggestionFieldComponent, ScUpdateUserInfoDialogComponent, ScUserModule, ScUserPhoneApproveDialogComponent, ScVerificationModule, ScVerificationPhoneCheckFormComponent, TreeDirective, TreeIconService, TreeLoaderService, TreeTopDirective, nextPageClickEvent, paginationParams$, scBicValidator, scClientUiIconsName, scCorrespondentAccountValidator, scPasswordConfirmMatchingValidator, scUserFactory, stepValidator };
         
     | 
| 
      
 4970 
     | 
    
         
            +
            export { AuthMethod, FilesAndDocumentsComponent, FilesAndDocumentsModule, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_LOADING_PAGINATION_CHANGE_INFO, SC_MIN_LENGTH_SEARCH_TERM, SC_NEXT_PAGE_PAGINATION_CHANGE_INFO, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_CHANGE_INFO, SC_PRODUCT_PAGINATION_CHANGE_PROVIDERS, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_PRODUCT_PAGINATION_PARAMS, SC_USER_INFO, SC_USER_PROVIDERS, ScAccordionComponent, ScAccordionContentDirective, ScAccordionModule, ScAddContactDialogComponent, ScAddContragentBankAccountsDialogComponent, ScAddContragentDialogComponent, ScAddDeliveryAddressDialogComponent, ScAddressesSelectionFieldComponent, ScAuthModule, ScBannerComponent, ScBannerModule, ScCarouselItemHiddenDirective, ScCarouselItemHiddenModule, ScCartItemMobileComponent, ScCartModule, ScCatalogModule, ScCategoriesListComponent, ScCategoryCardComponent, ScContactsAccordionComponent, ScContactsModule, ScContragentsAccordionComponent, ScContragentsAccordionItemComponent, ScContragentsModule, ScDeliveryAddressAccordionComponent, ScDeliveryAddressAccordionItemComponent, ScDeliveryAddressModule, ScFavoriteBtnComponent, ScFormFieldsModule, ScInputQuantityComponent, ScNewContactFormComponent, ScNewContragentBankAccountsFormComponent, ScNewContragentFormComponent, ScNewsCardComponent, ScNewsCardSkeletonComponent, ScNewsModule, ScOrderItemMobileComponent, ScOrderModule, ScPaymentStatusComponent, ScPriceCardComponent, ScPriceHistoryComponent, ScPriceListPaginationComponent, ScPriceWarehouseStockComponent, ScProfileAccordionsContentComponent, ScProfileModule, ScResetUserPasswordComponent, ScShareButtonComponent, ScShareButtonModule, ScSignInFormByEmailComponent, ScSignInFormByPhoneComponent, ScSignInFormComponent, ScSuggestionFieldComponent, ScUpdateUserInfoDialogComponent, ScUserModule, ScUserPhoneApproveDialogComponent, ScVerificationModule, ScVerificationPhoneCheckFormComponent, TreeDirective, TreeIconService, TreeLoaderService, TreeTopDirective, nextPageClickEvent, paginationParams$, scBicValidator, scClientUiIconsName, scCorrespondentAccountValidator, scPasswordConfirmMatchingValidator, scUserFactory, stepValidator };
         
     | 
| 
       4943 
4971 
     | 
    
         
             
            //# sourceMappingURL=snabcentr-client-ui.mjs.map
         
     |