@snabcentr/client-ui 0.0.19 → 0.0.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. package/catalog/price-card/sc-price-card.component.d.ts +40 -12
  2. package/esm2020/catalog/price-card/sc-price-card.component.mjs +48 -11
  3. package/esm2020/icons/sc-client-ui-icons-name.mjs +11 -1
  4. package/esm2020/news/news-card/sc-news-card.component.mjs +9 -3
  5. package/esm2020/share-button/sc-share-button.component.mjs +26 -6
  6. package/esm2020/share-button/sc-share-button.module.mjs +5 -4
  7. package/fesm2015/snabcentr-client-ui.mjs +92 -20
  8. package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
  9. package/fesm2020/snabcentr-client-ui.mjs +91 -19
  10. package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
  11. package/icons/sc-client-ui-icons-name.d.ts +1 -0
  12. package/icons/svg-pack/scIconAddProfile.svg +1 -1
  13. package/icons/svg-pack/scIconApplication.svg +1 -1
  14. package/icons/svg-pack/scIconArrowDown.svg +1 -1
  15. package/icons/svg-pack/scIconArrowDownLarge.svg +1 -1
  16. package/icons/svg-pack/scIconArrowDownLargeEnd.svg +1 -1
  17. package/icons/svg-pack/scIconArrowLeft.svg +1 -1
  18. package/icons/svg-pack/scIconArrowReturn.svg +1 -1
  19. package/icons/svg-pack/scIconArrowRight.svg +1 -1
  20. package/icons/svg-pack/scIconArrowUp.svg +1 -1
  21. package/icons/svg-pack/scIconAttention.svg +1 -1
  22. package/icons/svg-pack/scIconBag.svg +1 -1
  23. package/icons/svg-pack/scIconBasket.svg +1 -1
  24. package/icons/svg-pack/scIconBell.svg +1 -1
  25. package/icons/svg-pack/scIconBook.svg +1 -1
  26. package/icons/svg-pack/scIconBubble.svg +1 -1
  27. package/icons/svg-pack/scIconCalendar.svg +1 -1
  28. package/icons/svg-pack/scIconCancel.svg +1 -1
  29. package/icons/svg-pack/scIconCart.svg +1 -1
  30. package/icons/svg-pack/scIconCatalog.svg +1 -1
  31. package/icons/svg-pack/scIconClients.svg +1 -1
  32. package/icons/svg-pack/scIconClip.svg +1 -1
  33. package/icons/svg-pack/scIconClock.svg +1 -1
  34. package/icons/svg-pack/scIconConfigurator.svg +1 -1
  35. package/icons/svg-pack/scIconContacts.svg +1 -1
  36. package/icons/svg-pack/scIconCross.svg +1 -1
  37. package/icons/svg-pack/scIconDeleteProfile.svg +1 -1
  38. package/icons/svg-pack/scIconDone.svg +1 -1
  39. package/icons/svg-pack/scIconDownloading.svg +1 -1
  40. package/icons/svg-pack/scIconEdit.svg +1 -1
  41. package/icons/svg-pack/scIconError.svg +1 -1
  42. package/icons/svg-pack/scIconExcelFile.svg +1 -1
  43. package/icons/svg-pack/scIconEye.svg +1 -1
  44. package/icons/svg-pack/scIconFavorite.svg +1 -1
  45. package/icons/svg-pack/scIconFavoriteFill.svg +1 -1
  46. package/icons/svg-pack/scIconFile.svg +1 -1
  47. package/icons/svg-pack/scIconFilter.svg +1 -1
  48. package/icons/svg-pack/scIconFolder.svg +1 -1
  49. package/icons/svg-pack/scIconFolderOpen.svg +1 -1
  50. package/icons/svg-pack/scIconFolderPlus.svg +1 -1
  51. package/icons/svg-pack/scIconGraph.svg +1 -1
  52. package/icons/svg-pack/scIconHamburger.svg +1 -1
  53. package/icons/svg-pack/scIconHeart.svg +1 -1
  54. package/icons/svg-pack/scIconHeartFill.svg +1 -1
  55. package/icons/svg-pack/scIconHistory.svg +1 -1
  56. package/icons/svg-pack/scIconHome.svg +1 -1
  57. package/icons/svg-pack/scIconImage.svg +1 -1
  58. package/icons/svg-pack/scIconLike.svg +1 -1
  59. package/icons/svg-pack/scIconList.svg +1 -1
  60. package/icons/svg-pack/scIconLocation.svg +1 -1
  61. package/icons/svg-pack/scIconLock.svg +1 -1
  62. package/icons/svg-pack/scIconLockOpen.svg +1 -1
  63. package/icons/svg-pack/scIconLogIn.svg +1 -1
  64. package/icons/svg-pack/scIconLogOut.svg +1 -1
  65. package/icons/svg-pack/scIconLogOut2.svg +1 -1
  66. package/icons/svg-pack/scIconMail.svg +1 -1
  67. package/icons/svg-pack/scIconMinus.svg +1 -1
  68. package/icons/svg-pack/scIconMoney.svg +1 -1
  69. package/icons/svg-pack/scIconMoney2.svg +1 -1
  70. package/icons/svg-pack/scIconNews.svg +1 -1
  71. package/icons/svg-pack/scIconOffer.svg +1 -1
  72. package/icons/svg-pack/scIconPalette.svg +1 -1
  73. package/icons/svg-pack/scIconPdfFile.svg +1 -1
  74. package/icons/svg-pack/scIconPercentage.svg +1 -1
  75. package/icons/svg-pack/scIconPhone.svg +1 -1
  76. package/icons/svg-pack/scIconPlus.svg +1 -1
  77. package/icons/svg-pack/scIconPrice.svg +1 -1
  78. package/icons/svg-pack/scIconProfile.svg +1 -1
  79. package/icons/svg-pack/scIconQRCodeScan.svg +1 -1
  80. package/icons/svg-pack/scIconQuestion.svg +1 -1
  81. package/icons/svg-pack/scIconReclamation.svg +1 -1
  82. package/icons/svg-pack/scIconRefresh.svg +1 -1
  83. package/icons/svg-pack/scIconRepeat.svg +1 -1
  84. package/icons/svg-pack/scIconRequisites.svg +1 -1
  85. package/icons/svg-pack/scIconRocket.svg +1 -1
  86. package/icons/svg-pack/scIconSave.svg +1 -1
  87. package/icons/svg-pack/scIconSearch.svg +1 -1
  88. package/icons/svg-pack/scIconSend.svg +1 -1
  89. package/icons/svg-pack/scIconSettings.svg +1 -1
  90. package/icons/svg-pack/scIconShare.svg +1 -1
  91. package/icons/svg-pack/scIconSocialCopy.svg +13 -0
  92. package/icons/svg-pack/scIconSocialEmail.svg +13 -0
  93. package/icons/svg-pack/scIconSocialFacebook.svg +12 -0
  94. package/icons/svg-pack/scIconSocialInstagram.svg +33 -0
  95. package/icons/svg-pack/scIconSocialQR.svg +12 -0
  96. package/icons/svg-pack/scIconSocialTelegram.svg +20 -0
  97. package/icons/svg-pack/scIconSocialViber.svg +16 -0
  98. package/icons/svg-pack/scIconSocialVk.svg +12 -0
  99. package/icons/svg-pack/scIconSocialWhatsapp.svg +12 -0
  100. package/icons/svg-pack/scIconStar.svg +1 -1
  101. package/icons/svg-pack/scIconSuitcase.svg +1 -1
  102. package/icons/svg-pack/scIconTasks.svg +1 -1
  103. package/icons/svg-pack/scIconTick.svg +1 -1
  104. package/icons/svg-pack/scIconTop.svg +1 -1
  105. package/icons/svg-pack/scIconVerticalThreeDots.svg +1 -1
  106. package/icons/svg-pack/scIconViewGrid.svg +1 -1
  107. package/icons/svg-pack/scIconViewInline.svg +1 -1
  108. package/icons/svg-pack/scIconViewTree.svg +1 -1
  109. package/icons/svg-pack/scIconWallet.svg +1 -1
  110. package/icons/svg-pack/scIconWarning.svg +1 -1
  111. package/icons/svg-pack/scIconWordFile.svg +1 -1
  112. package/news/news-card/sc-news-card.component.d.ts +5 -1
  113. package/package.json +1 -1
  114. package/share-button/sc-share-button.component.d.ts +15 -1
  115. package/share-button/sc-share-button.module.d.ts +2 -1
  116. package/styles/tailwind/tailwind.scss +1 -1
@@ -749,6 +749,14 @@ class ScPriceCardComponent {
749
749
  this.warehouseService = warehouseService;
750
750
  this.urls = urls;
751
751
  this.pathImageNotFound = pathImageNotFound;
752
+ /**
753
+ * Признак, что необходимо отобразить лоадер для поля ввода количества товара.
754
+ */
755
+ this.quantityShowLoader = false;
756
+ /**
757
+ * Признак, что необходимо отобразить поле ввода количества товара.
758
+ */
759
+ this.showQuantityControl = false;
752
760
  /**
753
761
  * Событие нажатия на кнопку "В избранное".
754
762
  */
@@ -757,6 +765,10 @@ class ScPriceCardComponent {
757
765
  * Событие нажатия на кнопку "В корзину".
758
766
  */
759
767
  this.clickAddToCartEvent = new EventEmitter();
768
+ /**
769
+ * Событие нажатия на кнопку очистки количества товара.
770
+ */
771
+ this.clickClearEvent = new EventEmitter();
760
772
  /**
761
773
  * Событие нажатия на карточку товара.
762
774
  */
@@ -765,6 +777,14 @@ class ScPriceCardComponent {
765
777
  * {@link Observable} изменения выбранного склада.
766
778
  */
767
779
  this.warehouseSelect$ = this.warehouseService.getWarehouseSelectChange$();
780
+ /**
781
+ * {@link FormControl} поля ввода количества товара в корзине.
782
+ */
783
+ this.quantityControl = new FormControl(null);
784
+ /**
785
+ * {@link Observable} изменения количества товара в корзине.
786
+ */
787
+ this.quantityValueChanges = this.quantityControl.valueChanges;
768
788
  /**
769
789
  * {@link Observable} изменения статуса авторизации.
770
790
  */
@@ -774,20 +794,31 @@ class ScPriceCardComponent {
774
794
  */
775
795
  this.size = 'm';
776
796
  }
797
+ /**
798
+ * Позиция товара в корзине.
799
+ *
800
+ * TODO: Сделать товар в корзине наблюдаемой переменной после реализации TASK:[#7144].
801
+ */
802
+ get cartItem() {
803
+ return this._cartItem;
804
+ }
805
+ /**
806
+ * Позиция товара в корзине
807
+ *
808
+ * TODO: Сделать товар в корзине наблюдаемой переменной после реализации TASK:[#7144].
809
+ */
810
+ set cartItem(value) {
811
+ var _a, _b;
812
+ this._cartItem = value;
813
+ this.quantityControl.patchValue((_b = (_a = this._cartItem) === null || _a === void 0 ? void 0 : _a.quantity) !== null && _b !== void 0 ? _b : null, { emitEvent: false });
814
+ this.quantityShowLoader = false;
815
+ }
777
816
  /**
778
817
  * Признак, что нужно показать скелетон.
779
818
  */
780
819
  get skeletonVisible() {
781
820
  return !this.product;
782
821
  }
783
- /** @inheritDoc */
784
- ngOnInit() {
785
- var _a;
786
- if ((_a = this.product) === null || _a === void 0 ? void 0 : _a.cartItem) {
787
- this.quantityControl = new FormControl(this.product.cartItem.quantity);
788
- this.quantityValueChanges = this.quantityControl.valueChanges;
789
- }
790
- }
791
822
  /**
792
823
  * Возвращает ссылку на изображение карточки товара.
793
824
  */
@@ -797,10 +828,10 @@ class ScPriceCardComponent {
797
828
  }
798
829
  }
799
830
  ScPriceCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceCardComponent, deps: [{ token: i1.ScAuthService }, { token: i1.ScWarehouseService }, { token: SC_URLS }, { token: SC_PATH_IMAGE_NOT_FOUND }], target: i0.ɵɵFactoryTarget.Component });
800
- ScPriceCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPriceCardComponent, selector: "sc-price-card", inputs: { product: "product", size: "size" }, outputs: { clickFavoriteEvent: "clickFavoriteEvent", clickAddToCartEvent: "clickAddToCartEvent", clickCardEvent: "clickCardEvent", quantityValueChanges: "quantityValueChanges" }, host: { properties: { "attr.data-size": "this.size" } }, ngImport: i0, template: "<div *ngIf=\"product; else skeleton\" class=\"card-wrapper flex flex-col w-40 h-64 bg-tui-base-03 rounded-xl shadow-sc-2 overflow-hidden text-xs\">\n <!-- \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u0430 -->\n <div class=\"flex flex-col grow overflow-hidden\">\n <div class=\"flex justify-center items-center grow overflow-hidden relative\">\n <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImage()\" [alt]=\"product.name\" [class.p-12]=\"!product.images?.length\" class=\"cursor-pointer\" />\n <tui-svg *ngIf=\"product.cartItem\" src=\"tuiIconCheck\" class=\"!h-5 !w-5 bg-tui-primary text-white rounded-md absolute right-2 top-2\"></tui-svg>\n <sc-favorite-btn *ngIf=\"authStatus$ | async\" [class.!block]=\"product.isFavorite\" class=\"top-1 left-1 absolute hidden group-hover:block\"></sc-favorite-btn>\n </div>\n </div>\n\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=\"bg-white relative shrink-0\">\n <div class=\"wrapper-info flex flex-col content-between flex-auto justify-between\">\n <a class=\"name !transition-all !duration-500\" tuiLink iconAlign=\"left\" (click)=\"clickCardEvent.emit()\">\n <span class=\"font-bold\">{{ product.name }}</span>\n </a>\n <div class=\"info text-tui-text-02 overflow-hidden duration-500\">\n <p *ngIf=\"product.pack\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n <div class=\"sub-info\">\n <p>\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n <p *ngIf=\"(authStatus$ | async) && product.costDate\" class=\"text-tui-link hover:text-tui-link-hover cursor-pointer\">\u0414\u0430\u0442\u0430: {{ product.costDate }}</p>\n </div>\n </div>\n <div *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"flex flex-col\">\n <span *ngIf=\"product.discount\" class=\"flex items-center text-tui-text-02\">\n <span class=\"line-through\">{{ product.discountCostString }}</span> &nbsp;\n <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"text-black !text-xs !h-4\"></tui-svg>\n <ng-template #discountHint>\n <div class=\"font-bold\">{{ product.discount.name }}</div>\n <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n </ng-template>\n </span>\n <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>\n <div class=\"button-wrapper overflow-hidden duration-500\">\n <button *ngIf=\"!quantityControl\" tuiButton [size]=\"size\" class=\"w-full\">\n <span class=\"font-bold\"> <tui-svg src=\"scIconCart\"></tui-svg> \u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0443</span>\n </button>\n <sc-input-quantity\n *ngIf=\"quantityControl\"\n [formControl]=\"quantityControl\"\n [quantityUnit]=\"product.quantityUnit\"\n [size]=\"size === 'm' ? 'l' : 'm'\"\n [step]=\"product.minCount || 1\"\n ></sc-input-quantity>\n </div>\n <div *ngIf=\"product.isPreviouslyOrdered\" matTooltip=\"\u0422\u043E\u0432\u0430\u0440 \u0438\u0437 \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u043F\u043E\u043A\u0443\u043F\u043E\u043A\" class=\"rotate-45 z-10 absolute bg-tui-error-fill -bottom-4 -right-4 h-8 w-8\"></div>\n </div>\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: i3.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { kind: "directive", type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { kind: "directive", type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { kind: "directive", type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { kind: "component", type: i3.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { kind: "component", type: ScFavoriteBtnComponent, selector: "sc-favorite-btn", outputs: ["clickEvent"] }, { kind: "component", type: ScInputQuantityComponent, selector: "sc-input-quantity", inputs: ["step", "quantityUnit", "showLoader", "showCross", "appearance", "isDisabled", "size"], outputs: ["clickClearEvent"] }, { kind: "component", type: ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
831
+ 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: "<div *ngIf=\"product; else skeleton\" class=\"card-wrapper flex flex-col w-40 h-64 bg-tui-base-03 rounded-xl shadow-sc-2 overflow-hidden text-xs\">\n <!-- \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u0430 -->\n <div class=\"flex flex-col grow overflow-hidden\">\n <div class=\"flex justify-center items-center grow overflow-hidden relative\">\n <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImage()\" [alt]=\"product.name\" [class.p-12]=\"!product.images?.length\" class=\"cursor-pointer\" />\n <tui-svg *ngIf=\"cartItem\" src=\"tuiIconCheck\" class=\"!h-5 !w-5 bg-tui-primary text-white rounded-md absolute right-2 top-2\"></tui-svg>\n <sc-favorite-btn *ngIf=\"authStatus$ | async\" [class.!block]=\"product.isFavorite\" class=\"top-1 left-1 absolute hidden group-hover:block\"></sc-favorite-btn>\n </div>\n </div>\n\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=\"bg-white relative shrink-0\">\n <div class=\"wrapper-info flex flex-col content-between flex-auto justify-between\">\n <a class=\"name !transition-all !duration-500\" tuiLink iconAlign=\"left\" (click)=\"clickCardEvent.emit()\">\n <span class=\"font-bold\">{{ product.name }}</span>\n </a>\n <div class=\"info text-tui-text-02 overflow-hidden duration-500\">\n <p *ngIf=\"product.pack\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n <div class=\"sub-info\">\n <p>\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n <p *ngIf=\"(authStatus$ | async) && product.costDate\" class=\"text-tui-link hover:text-tui-link-hover cursor-pointer\">\u0414\u0430\u0442\u0430: {{ product.costDate }}</p>\n </div>\n </div>\n <div *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"flex flex-col\">\n <span *ngIf=\"product.discount\" class=\"flex items-center text-tui-text-02\">\n <span class=\"line-through\">{{ product.discountCostString }}</span> &nbsp;\n <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"text-black !text-xs !h-4\"></tui-svg>\n <ng-template #discountHint>\n <div class=\"font-bold\">{{ product.discount.name }}</div>\n <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n </ng-template>\n </span>\n <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>\n <div class=\"button-wrapper overflow-hidden duration-500\">\n <button *ngIf=\"!showQuantityControl\" tuiButton (click)=\"clickAddToCartEvent.emit(product)\" [showLoader]=\"quantityShowLoader\" [size]=\"size\" class=\"w-full\">\n <span class=\"font-bold\"> <tui-svg src=\"scIconCart\"></tui-svg> \u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0443</span>\n </button>\n <sc-input-quantity\n *ngIf=\"showQuantityControl\"\n [formControl]=\"quantityControl\"\n [quantityUnit]=\"product.quantityUnit\"\n [size]=\"size === 'm' ? 'l' : 'm'\"\n [step]=\"product.minCount || 1\"\n [showLoader]=\"quantityShowLoader\"\n (clickClearEvent)=\"clickClearEvent.emit(cartItem)\"\n ></sc-input-quantity>\n </div>\n <div *ngIf=\"product.isPreviouslyOrdered\" matTooltip=\"\u0422\u043E\u0432\u0430\u0440 \u0438\u0437 \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u043F\u043E\u043A\u0443\u043F\u043E\u043A\" class=\"rotate-45 z-10 absolute bg-tui-error-fill -bottom-4 -right-4 h-8 w-8\"></div>\n </div>\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: i3.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i3.TuiSvgComponent, selector: "tui-svg", inputs: ["src"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { kind: "directive", type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { kind: "directive", type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { kind: "directive", type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { kind: "component", type: i3.TuiLinkComponent, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo", "icon", "iconAlign", "iconRotated", "mode"], exportAs: ["tuiLink"] }, { kind: "component", type: ScFavoriteBtnComponent, selector: "sc-favorite-btn", outputs: ["clickEvent"] }, { kind: "component", type: ScInputQuantityComponent, selector: "sc-input-quantity", inputs: ["step", "quantityUnit", "showLoader", "showCross", "appearance", "isDisabled", "size"], outputs: ["clickClearEvent"] }, { kind: "component", type: ScPriceWarehouseStockComponent, selector: "sc-price-warehouse-stock", inputs: ["classList", "product", "withStockHint"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
801
832
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceCardComponent, decorators: [{
802
833
  type: Component,
803
- args: [{ selector: 'sc-price-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"product; else skeleton\" class=\"card-wrapper flex flex-col w-40 h-64 bg-tui-base-03 rounded-xl shadow-sc-2 overflow-hidden text-xs\">\n <!-- \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u0430 -->\n <div class=\"flex flex-col grow overflow-hidden\">\n <div class=\"flex justify-center items-center grow overflow-hidden relative\">\n <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImage()\" [alt]=\"product.name\" [class.p-12]=\"!product.images?.length\" class=\"cursor-pointer\" />\n <tui-svg *ngIf=\"product.cartItem\" src=\"tuiIconCheck\" class=\"!h-5 !w-5 bg-tui-primary text-white rounded-md absolute right-2 top-2\"></tui-svg>\n <sc-favorite-btn *ngIf=\"authStatus$ | async\" [class.!block]=\"product.isFavorite\" class=\"top-1 left-1 absolute hidden group-hover:block\"></sc-favorite-btn>\n </div>\n </div>\n\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=\"bg-white relative shrink-0\">\n <div class=\"wrapper-info flex flex-col content-between flex-auto justify-between\">\n <a class=\"name !transition-all !duration-500\" tuiLink iconAlign=\"left\" (click)=\"clickCardEvent.emit()\">\n <span class=\"font-bold\">{{ product.name }}</span>\n </a>\n <div class=\"info text-tui-text-02 overflow-hidden duration-500\">\n <p *ngIf=\"product.pack\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n <div class=\"sub-info\">\n <p>\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n <p *ngIf=\"(authStatus$ | async) && product.costDate\" class=\"text-tui-link hover:text-tui-link-hover cursor-pointer\">\u0414\u0430\u0442\u0430: {{ product.costDate }}</p>\n </div>\n </div>\n <div *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"flex flex-col\">\n <span *ngIf=\"product.discount\" class=\"flex items-center text-tui-text-02\">\n <span class=\"line-through\">{{ product.discountCostString }}</span> &nbsp;\n <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"text-black !text-xs !h-4\"></tui-svg>\n <ng-template #discountHint>\n <div class=\"font-bold\">{{ product.discount.name }}</div>\n <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n </ng-template>\n </span>\n <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>\n <div class=\"button-wrapper overflow-hidden duration-500\">\n <button *ngIf=\"!quantityControl\" tuiButton [size]=\"size\" class=\"w-full\">\n <span class=\"font-bold\"> <tui-svg src=\"scIconCart\"></tui-svg> \u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0443</span>\n </button>\n <sc-input-quantity\n *ngIf=\"quantityControl\"\n [formControl]=\"quantityControl\"\n [quantityUnit]=\"product.quantityUnit\"\n [size]=\"size === 'm' ? 'l' : 'm'\"\n [step]=\"product.minCount || 1\"\n ></sc-input-quantity>\n </div>\n <div *ngIf=\"product.isPreviouslyOrdered\" matTooltip=\"\u0422\u043E\u0432\u0430\u0440 \u0438\u0437 \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u043F\u043E\u043A\u0443\u043F\u043E\u043A\" class=\"rotate-45 z-10 absolute bg-tui-error-fill -bottom-4 -right-4 h-8 w-8\"></div>\n </div>\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"] }]
834
+ args: [{ selector: 'sc-price-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"product; else skeleton\" class=\"card-wrapper flex flex-col w-40 h-64 bg-tui-base-03 rounded-xl shadow-sc-2 overflow-hidden text-xs\">\n <!-- \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u0432\u0430\u0440\u0430 -->\n <div class=\"flex flex-col grow overflow-hidden\">\n <div class=\"flex justify-center items-center grow overflow-hidden relative\">\n <img (click)=\"clickCardEvent.emit()\" [src]=\"getCardImage()\" [alt]=\"product.name\" [class.p-12]=\"!product.images?.length\" class=\"cursor-pointer\" />\n <tui-svg *ngIf=\"cartItem\" src=\"tuiIconCheck\" class=\"!h-5 !w-5 bg-tui-primary text-white rounded-md absolute right-2 top-2\"></tui-svg>\n <sc-favorite-btn *ngIf=\"authStatus$ | async\" [class.!block]=\"product.isFavorite\" class=\"top-1 left-1 absolute hidden group-hover:block\"></sc-favorite-btn>\n </div>\n </div>\n\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=\"bg-white relative shrink-0\">\n <div class=\"wrapper-info flex flex-col content-between flex-auto justify-between\">\n <a class=\"name !transition-all !duration-500\" tuiLink iconAlign=\"left\" (click)=\"clickCardEvent.emit()\">\n <span class=\"font-bold\">{{ product.name }}</span>\n </a>\n <div class=\"info text-tui-text-02 overflow-hidden duration-500\">\n <p *ngIf=\"product.pack\">\u041D\u043E\u0440\u043C\u0430 \u0443\u043F\u0430\u043A\u043E\u0432\u043A\u0438: {{ product.pack }}</p>\n <div class=\"sub-info\">\n <p>\u0410\u0440\u0442\u0438\u043A\u0443\u043B: {{ product.code }}</p>\n <p *ngIf=\"(authStatus$ | async) && product.costDate\" class=\"text-tui-link hover:text-tui-link-hover cursor-pointer\">\u0414\u0430\u0442\u0430: {{ product.costDate }}</p>\n </div>\n </div>\n <div *ngIf=\"warehouseSelect$ | async as warehouseSelect\" class=\"flex flex-col\">\n <span *ngIf=\"product.discount\" class=\"flex items-center text-tui-text-02\">\n <span class=\"line-through\">{{ product.discountCostString }}</span> &nbsp;\n <span class=\"text-tui-success-fill font-bold\"> -{{ product.discount.percent }}% </span>\n <tui-svg src=\"tuiIconInfoLarge\" [tuiHint]=\"discountHint\" [tuiHintShowDelay]=\"100\" tuiHintDirection=\"top\" class=\"text-black !text-xs !h-4\"></tui-svg>\n <ng-template #discountHint>\n <div class=\"font-bold\">{{ product.discount.name }}</div>\n <div *ngIf=\"product.discount.expiredAt as expiredAt\">\u0414\u0430\u0442\u0430 \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F: {{ expiredAt }}</div>\n </ng-template>\n </span>\n <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>\n <div class=\"button-wrapper overflow-hidden duration-500\">\n <button *ngIf=\"!showQuantityControl\" tuiButton (click)=\"clickAddToCartEvent.emit(product)\" [showLoader]=\"quantityShowLoader\" [size]=\"size\" class=\"w-full\">\n <span class=\"font-bold\"> <tui-svg src=\"scIconCart\"></tui-svg> \u0412 \u043A\u043E\u0440\u0437\u0438\u043D\u0443</span>\n </button>\n <sc-input-quantity\n *ngIf=\"showQuantityControl\"\n [formControl]=\"quantityControl\"\n [quantityUnit]=\"product.quantityUnit\"\n [size]=\"size === 'm' ? 'l' : 'm'\"\n [step]=\"product.minCount || 1\"\n [showLoader]=\"quantityShowLoader\"\n (clickClearEvent)=\"clickClearEvent.emit(cartItem)\"\n ></sc-input-quantity>\n </div>\n <div *ngIf=\"product.isPreviouslyOrdered\" matTooltip=\"\u0422\u043E\u0432\u0430\u0440 \u0438\u0437 \u0438\u0441\u0442\u043E\u0440\u0438\u0438 \u043F\u043E\u043A\u0443\u043F\u043E\u043A\" class=\"rotate-45 z-10 absolute bg-tui-error-fill -bottom-4 -right-4 h-8 w-8\"></div>\n </div>\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"] }]
804
835
  }], ctorParameters: function () {
805
836
  return [{ type: i1.ScAuthService }, { type: i1.ScWarehouseService }, { type: undefined, decorators: [{
806
837
  type: Inject,
@@ -809,12 +840,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
809
840
  type: Inject,
810
841
  args: [SC_PATH_IMAGE_NOT_FOUND]
811
842
  }] }];
812
- }, propDecorators: { product: [{
843
+ }, propDecorators: { showQuantityControl: [{
844
+ type: Input
845
+ }], cartItem: [{
846
+ type: Input
847
+ }], product: [{
813
848
  type: Input
814
849
  }], clickFavoriteEvent: [{
815
850
  type: Output
816
851
  }], clickAddToCartEvent: [{
817
852
  type: Output
853
+ }], clickClearEvent: [{
854
+ type: Output
818
855
  }], clickCardEvent: [{
819
856
  type: Output
820
857
  }], quantityValueChanges: [{
@@ -1226,6 +1263,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1226
1263
 
1227
1264
  /**
1228
1265
  * Список иконок.
1266
+ * TODO: TASK[#7779] Добавить иконки отдельных значков для соц. сетей после добавления их в кит дизайна.
1229
1267
  */
1230
1268
  const scClientUiIconsName = [
1231
1269
  'scIconCalendar',
@@ -1319,20 +1357,48 @@ const scClientUiIconsName = [
1319
1357
  'scIconArrowDown',
1320
1358
  'scIconApplication',
1321
1359
  'scIconAddProfile',
1360
+ 'scIconSocialCopy',
1361
+ 'scIconSocialEmail',
1362
+ 'scIconSocialFacebook',
1363
+ 'scIconSocialInstagram',
1364
+ 'scIconSocialQR',
1365
+ 'scIconSocialTelegram',
1366
+ 'scIconSocialViber',
1367
+ 'scIconSocialVk',
1368
+ 'scIconSocialWhatsapp',
1322
1369
  ];
1323
1370
 
1324
1371
  /**
1325
1372
  * Компонент кнопки "Поделиться".
1326
1373
  */
1327
- /* TODO: TASK[#6895] Реализовать логику компонента кнопки "Поделиться".*/
1328
1374
  class ScShareButtonComponent {
1375
+ constructor() {
1376
+ /**
1377
+ * Формат внешнего вида кнопки.
1378
+ */
1379
+ this.appearance = 'secondary';
1380
+ /**
1381
+ * Размер кнопки.
1382
+ */
1383
+ this.size = 'm';
1384
+ /**
1385
+ * Событие клика по кнопке "Поделиться".
1386
+ */
1387
+ this.clickShareEvent = new EventEmitter();
1388
+ }
1329
1389
  }
1330
1390
  ScShareButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScShareButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1331
- ScShareButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScShareButtonComponent, selector: "sc-share-button", ngImport: i0, template: "<!--TODO: TASK[#6895] \u0420\u0435\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 \u043A\u043D\u043E\u043F\u043A\u0438 \"\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F\".-->\n<svg width=\"20\" height=\"22\" viewBox=\"0 0 20 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15.5 15.6673C14.5335 15.6673 13.75 16.4508 13.75 17.4173C13.75 18.3838 14.5335 19.1673 15.5 19.1673C16.4665 19.1673 17.25 18.3838 17.25 17.4173C17.25 16.4508 16.4665 15.6673 15.5 15.6673ZM11.75 17.4173C11.75 15.3462 13.4289 13.6673 15.5 13.6673C17.5711 13.6673 19.25 15.3462 19.25 17.4173C19.25 19.4884 17.5711 21.1673 15.5 21.1673C13.4289 21.1673 11.75 19.4884 11.75 17.4173Z\"\n fill=\"#1E50C8\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.5 9.25065C3.5335 9.25065 2.75 10.0342 2.75 11.0007C2.75 11.9671 3.5335 12.7507 4.5 12.7507C5.4665 12.7507 6.25 11.9671 6.25 11.0007C6.25 10.0342 5.4665 9.25065 4.5 9.25065ZM0.75 11.0007C0.75 8.92958 2.42893 7.25065 4.5 7.25065C6.57107 7.25065 8.25 8.92958 8.25 11.0007C8.25 13.0717 6.57107 14.7507 4.5 14.7507C2.42893 14.7507 0.75 13.0717 0.75 11.0007Z\"\n fill=\"#1E50C8\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M6.01016 11.8813C6.28822 11.4042 6.90047 11.2427 7.37764 11.5208L13.6385 15.1691C14.1157 15.4472 14.2771 16.0595 13.999 16.5366C13.7209 17.0138 13.1087 17.1752 12.6315 16.8972L6.37069 13.2488C5.89351 12.9708 5.7321 12.3585 6.01016 11.8813Z\"\n fill=\"#1E50C8\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15.5 2.83398C14.5335 2.83398 13.75 3.61749 13.75 4.58398C13.75 5.55048 14.5335 6.33398 15.5 6.33398C16.4665 6.33398 17.25 5.55048 17.25 4.58398C17.25 3.61749 16.4665 2.83398 15.5 2.83398ZM11.75 4.58398C11.75 2.51292 13.4289 0.833984 15.5 0.833984C17.5711 0.833984 19.25 2.51292 19.25 4.58398C19.25 6.65505 17.5711 8.33398 15.5 8.33398C13.4289 8.33398 11.75 6.65505 11.75 4.58398Z\"\n fill=\"#1E50C8\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.9895 5.46412C14.2679 5.94112 14.1069 6.55347 13.6299 6.83184L7.37819 10.4802C6.90119 10.7585 6.28885 10.5975 6.01048 10.1205C5.73211 9.64351 5.89314 9.03116 6.37014 8.7528L12.6218 5.10446C13.0988 4.8261 13.7112 4.98712 13.9895 5.46412Z\"\n fill=\"#1E50C8\"\n />\n</svg>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
1391
+ ScShareButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScShareButtonComponent, selector: "sc-share-button", inputs: { appearance: "appearance", size: "size" }, outputs: { clickShareEvent: "clickShareEvent" }, ngImport: i0, template: "<button tuiIconButton icon=\"scIconShare\" [appearance]=\"appearance\" [size]=\"size\" (click)=\"clickShareEvent.emit()\"></button>\n", dependencies: [{ kind: "component", type: i3.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1332
1392
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScShareButtonComponent, decorators: [{
1333
1393
  type: Component,
1334
- args: [{ selector: 'sc-share-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--TODO: TASK[#6895] \u0420\u0435\u0430\u043B\u0438\u0437\u043E\u0432\u0430\u0442\u044C \u0448\u0430\u0431\u043B\u043E\u043D \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0430 \u043A\u043D\u043E\u043F\u043A\u0438 \"\u041F\u043E\u0434\u0435\u043B\u0438\u0442\u044C\u0441\u044F\".-->\n<svg width=\"20\" height=\"22\" viewBox=\"0 0 20 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15.5 15.6673C14.5335 15.6673 13.75 16.4508 13.75 17.4173C13.75 18.3838 14.5335 19.1673 15.5 19.1673C16.4665 19.1673 17.25 18.3838 17.25 17.4173C17.25 16.4508 16.4665 15.6673 15.5 15.6673ZM11.75 17.4173C11.75 15.3462 13.4289 13.6673 15.5 13.6673C17.5711 13.6673 19.25 15.3462 19.25 17.4173C19.25 19.4884 17.5711 21.1673 15.5 21.1673C13.4289 21.1673 11.75 19.4884 11.75 17.4173Z\"\n fill=\"#1E50C8\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.5 9.25065C3.5335 9.25065 2.75 10.0342 2.75 11.0007C2.75 11.9671 3.5335 12.7507 4.5 12.7507C5.4665 12.7507 6.25 11.9671 6.25 11.0007C6.25 10.0342 5.4665 9.25065 4.5 9.25065ZM0.75 11.0007C0.75 8.92958 2.42893 7.25065 4.5 7.25065C6.57107 7.25065 8.25 8.92958 8.25 11.0007C8.25 13.0717 6.57107 14.7507 4.5 14.7507C2.42893 14.7507 0.75 13.0717 0.75 11.0007Z\"\n fill=\"#1E50C8\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M6.01016 11.8813C6.28822 11.4042 6.90047 11.2427 7.37764 11.5208L13.6385 15.1691C14.1157 15.4472 14.2771 16.0595 13.999 16.5366C13.7209 17.0138 13.1087 17.1752 12.6315 16.8972L6.37069 13.2488C5.89351 12.9708 5.7321 12.3585 6.01016 11.8813Z\"\n fill=\"#1E50C8\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M15.5 2.83398C14.5335 2.83398 13.75 3.61749 13.75 4.58398C13.75 5.55048 14.5335 6.33398 15.5 6.33398C16.4665 6.33398 17.25 5.55048 17.25 4.58398C17.25 3.61749 16.4665 2.83398 15.5 2.83398ZM11.75 4.58398C11.75 2.51292 13.4289 0.833984 15.5 0.833984C17.5711 0.833984 19.25 2.51292 19.25 4.58398C19.25 6.65505 17.5711 8.33398 15.5 8.33398C13.4289 8.33398 11.75 6.65505 11.75 4.58398Z\"\n fill=\"#1E50C8\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.9895 5.46412C14.2679 5.94112 14.1069 6.55347 13.6299 6.83184L7.37819 10.4802C6.90119 10.7585 6.28885 10.5975 6.01048 10.1205C5.73211 9.64351 5.89314 9.03116 6.37014 8.7528L12.6218 5.10446C13.0988 4.8261 13.7112 4.98712 13.9895 5.46412Z\"\n fill=\"#1E50C8\"\n />\n</svg>\n" }]
1335
- }] });
1394
+ args: [{ selector: 'sc-share-button', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button tuiIconButton icon=\"scIconShare\" [appearance]=\"appearance\" [size]=\"size\" (click)=\"clickShareEvent.emit()\"></button>\n" }]
1395
+ }], propDecorators: { appearance: [{
1396
+ type: Input
1397
+ }], size: [{
1398
+ type: Input
1399
+ }], clickShareEvent: [{
1400
+ type: Output
1401
+ }] } });
1336
1402
 
1337
1403
  /**
1338
1404
  * Компонент карточки новости.
@@ -1343,17 +1409,23 @@ class ScNewsCardComponent {
1343
1409
  * Событие клика по карточке новости.
1344
1410
  */
1345
1411
  this.clickCardEvent = new EventEmitter();
1412
+ /**
1413
+ * Событие клика по кнопке "Поделиться" карточки новости.
1414
+ */
1415
+ this.clickShareEvent = new EventEmitter();
1346
1416
  }
1347
1417
  }
1348
1418
  ScNewsCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScNewsCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1349
- ScNewsCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScNewsCardComponent, selector: "sc-news-card", inputs: { news: "news" }, outputs: { clickCardEvent: "clickCardEvent" }, ngImport: i0, template: "<div (click)=\"clickCardEvent.emit(news)\" class=\"block relative h-82 w-70 cursor-pointer shadow-sc-2 rounded-lg overflow-hidden bg-white\">\n <div [style.background-image]=\"'url(' + news.image + ')'\" class=\"bg-no-repeat bg-center bg-cover bg-tui-base-02 w-full h-50\"></div>\n <div class=\"px-6 py-4.5 h-32 w-full bg-white overflow-hidden\">\n <div class=\"w-full flex justify-between align-baseline mb-2.5\">\n <p class=\"text-sm text-tui-text-02\">{{ news.created_at }}</p>\n <sc-share-button></sc-share-button>\n </div>\n <p>\n <a class=\"text-sm font-bold text-black line-clamp-3\">{{ news.subject }}</a>\n </p>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: ScShareButtonComponent, selector: "sc-share-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1419
+ ScNewsCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScNewsCardComponent, selector: "sc-news-card", inputs: { news: "news" }, outputs: { clickCardEvent: "clickCardEvent", clickShareEvent: "clickShareEvent" }, ngImport: i0, template: "<div (click)=\"clickCardEvent.emit(news)\" class=\"block relative h-82 w-70 cursor-pointer shadow-sc-2 rounded-lg overflow-hidden bg-white\">\n <div [style.background-image]=\"'url(' + news.image + ')'\" class=\"bg-no-repeat bg-center bg-cover bg-tui-base-02 w-full h-50\"></div>\n <div class=\"px-6 py-4.5 h-32 w-full bg-white overflow-hidden\">\n <div class=\"w-full flex justify-between align-baseline mb-2.5\">\n <p class=\"text-sm text-tui-text-02\">{{ news.created_at }}</p>\n <sc-share-button (clickShareEvent)=\"clickShareEvent.emit()\"></sc-share-button>\n </div>\n <p>\n <a class=\"text-sm font-bold text-black line-clamp-3\">{{ news.subject }}</a>\n </p>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: ScShareButtonComponent, selector: "sc-share-button", inputs: ["appearance", "size"], outputs: ["clickShareEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1350
1420
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScNewsCardComponent, decorators: [{
1351
1421
  type: Component,
1352
- args: [{ selector: 'sc-news-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div (click)=\"clickCardEvent.emit(news)\" class=\"block relative h-82 w-70 cursor-pointer shadow-sc-2 rounded-lg overflow-hidden bg-white\">\n <div [style.background-image]=\"'url(' + news.image + ')'\" class=\"bg-no-repeat bg-center bg-cover bg-tui-base-02 w-full h-50\"></div>\n <div class=\"px-6 py-4.5 h-32 w-full bg-white overflow-hidden\">\n <div class=\"w-full flex justify-between align-baseline mb-2.5\">\n <p class=\"text-sm text-tui-text-02\">{{ news.created_at }}</p>\n <sc-share-button></sc-share-button>\n </div>\n <p>\n <a class=\"text-sm font-bold text-black line-clamp-3\">{{ news.subject }}</a>\n </p>\n </div>\n</div>\n" }]
1422
+ args: [{ selector: 'sc-news-card', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div (click)=\"clickCardEvent.emit(news)\" class=\"block relative h-82 w-70 cursor-pointer shadow-sc-2 rounded-lg overflow-hidden bg-white\">\n <div [style.background-image]=\"'url(' + news.image + ')'\" class=\"bg-no-repeat bg-center bg-cover bg-tui-base-02 w-full h-50\"></div>\n <div class=\"px-6 py-4.5 h-32 w-full bg-white overflow-hidden\">\n <div class=\"w-full flex justify-between align-baseline mb-2.5\">\n <p class=\"text-sm text-tui-text-02\">{{ news.created_at }}</p>\n <sc-share-button (clickShareEvent)=\"clickShareEvent.emit()\"></sc-share-button>\n </div>\n <p>\n <a class=\"text-sm font-bold text-black line-clamp-3\">{{ news.subject }}</a>\n </p>\n </div>\n</div>\n" }]
1353
1423
  }], propDecorators: { news: [{
1354
1424
  type: Input
1355
1425
  }], clickCardEvent: [{
1356
1426
  type: Output
1427
+ }], clickShareEvent: [{
1428
+ type: Output
1357
1429
  }] } });
1358
1430
 
1359
1431
  /**
@@ -1382,13 +1454,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1382
1454
  class ScShareButtonModule {
1383
1455
  }
1384
1456
  ScShareButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScShareButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1385
- ScShareButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScShareButtonModule, declarations: [ScShareButtonComponent], imports: [CommonModule], exports: [ScShareButtonComponent] });
1386
- ScShareButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScShareButtonModule, imports: [CommonModule] });
1457
+ ScShareButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScShareButtonModule, declarations: [ScShareButtonComponent], imports: [CommonModule, TuiButtonModule], exports: [ScShareButtonComponent] });
1458
+ ScShareButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScShareButtonModule, imports: [CommonModule, TuiButtonModule] });
1387
1459
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScShareButtonModule, decorators: [{
1388
1460
  type: NgModule,
1389
1461
  args: [{
1390
1462
  declarations: [ScShareButtonComponent],
1391
- imports: [CommonModule],
1463
+ imports: [CommonModule, TuiButtonModule],
1392
1464
  exports: [ScShareButtonComponent],
1393
1465
  }]
1394
1466
  }] });