@snabcentr/client-ui 0.0.19 → 0.0.21
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 +40 -12
- package/esm2020/catalog/price-card/sc-price-card.component.mjs +48 -11
- package/esm2020/icons/sc-client-ui-icons-name.mjs +11 -1
- package/esm2020/news/news-card/sc-news-card.component.mjs +9 -3
- package/esm2020/share-button/sc-share-button.component.mjs +26 -6
- package/esm2020/share-button/sc-share-button.module.mjs +5 -4
- package/fesm2015/snabcentr-client-ui.mjs +92 -20
- package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
- package/fesm2020/snabcentr-client-ui.mjs +91 -19
- package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
- package/icons/sc-client-ui-icons-name.d.ts +1 -0
- package/icons/svg-pack/scIconAddProfile.svg +1 -1
- package/icons/svg-pack/scIconApplication.svg +1 -1
- package/icons/svg-pack/scIconArrowDown.svg +1 -1
- package/icons/svg-pack/scIconArrowDownLarge.svg +1 -1
- package/icons/svg-pack/scIconArrowDownLargeEnd.svg +1 -1
- package/icons/svg-pack/scIconArrowLeft.svg +1 -1
- package/icons/svg-pack/scIconArrowReturn.svg +1 -1
- package/icons/svg-pack/scIconArrowRight.svg +1 -1
- package/icons/svg-pack/scIconArrowUp.svg +1 -1
- package/icons/svg-pack/scIconAttention.svg +1 -1
- package/icons/svg-pack/scIconBag.svg +1 -1
- package/icons/svg-pack/scIconBasket.svg +1 -1
- package/icons/svg-pack/scIconBell.svg +1 -1
- package/icons/svg-pack/scIconBook.svg +1 -1
- package/icons/svg-pack/scIconBubble.svg +1 -1
- package/icons/svg-pack/scIconCalendar.svg +1 -1
- package/icons/svg-pack/scIconCancel.svg +1 -1
- package/icons/svg-pack/scIconCart.svg +1 -1
- package/icons/svg-pack/scIconCatalog.svg +1 -1
- package/icons/svg-pack/scIconClients.svg +1 -1
- package/icons/svg-pack/scIconClip.svg +1 -1
- package/icons/svg-pack/scIconClock.svg +1 -1
- package/icons/svg-pack/scIconConfigurator.svg +1 -1
- package/icons/svg-pack/scIconContacts.svg +1 -1
- package/icons/svg-pack/scIconCross.svg +1 -1
- package/icons/svg-pack/scIconDeleteProfile.svg +1 -1
- package/icons/svg-pack/scIconDone.svg +1 -1
- package/icons/svg-pack/scIconDownloading.svg +1 -1
- package/icons/svg-pack/scIconEdit.svg +1 -1
- package/icons/svg-pack/scIconError.svg +1 -1
- package/icons/svg-pack/scIconExcelFile.svg +1 -1
- package/icons/svg-pack/scIconEye.svg +1 -1
- package/icons/svg-pack/scIconFavorite.svg +1 -1
- package/icons/svg-pack/scIconFavoriteFill.svg +1 -1
- package/icons/svg-pack/scIconFile.svg +1 -1
- package/icons/svg-pack/scIconFilter.svg +1 -1
- package/icons/svg-pack/scIconFolder.svg +1 -1
- package/icons/svg-pack/scIconFolderOpen.svg +1 -1
- package/icons/svg-pack/scIconFolderPlus.svg +1 -1
- package/icons/svg-pack/scIconGraph.svg +1 -1
- package/icons/svg-pack/scIconHamburger.svg +1 -1
- package/icons/svg-pack/scIconHeart.svg +1 -1
- package/icons/svg-pack/scIconHeartFill.svg +1 -1
- package/icons/svg-pack/scIconHistory.svg +1 -1
- package/icons/svg-pack/scIconHome.svg +1 -1
- package/icons/svg-pack/scIconImage.svg +1 -1
- package/icons/svg-pack/scIconLike.svg +1 -1
- package/icons/svg-pack/scIconList.svg +1 -1
- package/icons/svg-pack/scIconLocation.svg +1 -1
- package/icons/svg-pack/scIconLock.svg +1 -1
- package/icons/svg-pack/scIconLockOpen.svg +1 -1
- package/icons/svg-pack/scIconLogIn.svg +1 -1
- package/icons/svg-pack/scIconLogOut.svg +1 -1
- package/icons/svg-pack/scIconLogOut2.svg +1 -1
- package/icons/svg-pack/scIconMail.svg +1 -1
- package/icons/svg-pack/scIconMinus.svg +1 -1
- package/icons/svg-pack/scIconMoney.svg +1 -1
- package/icons/svg-pack/scIconMoney2.svg +1 -1
- package/icons/svg-pack/scIconNews.svg +1 -1
- package/icons/svg-pack/scIconOffer.svg +1 -1
- package/icons/svg-pack/scIconPalette.svg +1 -1
- package/icons/svg-pack/scIconPdfFile.svg +1 -1
- package/icons/svg-pack/scIconPercentage.svg +1 -1
- package/icons/svg-pack/scIconPhone.svg +1 -1
- package/icons/svg-pack/scIconPlus.svg +1 -1
- package/icons/svg-pack/scIconPrice.svg +1 -1
- package/icons/svg-pack/scIconProfile.svg +1 -1
- package/icons/svg-pack/scIconQRCodeScan.svg +1 -1
- package/icons/svg-pack/scIconQuestion.svg +1 -1
- package/icons/svg-pack/scIconReclamation.svg +1 -1
- package/icons/svg-pack/scIconRefresh.svg +1 -1
- package/icons/svg-pack/scIconRepeat.svg +1 -1
- package/icons/svg-pack/scIconRequisites.svg +1 -1
- package/icons/svg-pack/scIconRocket.svg +1 -1
- package/icons/svg-pack/scIconSave.svg +1 -1
- package/icons/svg-pack/scIconSearch.svg +1 -1
- package/icons/svg-pack/scIconSend.svg +1 -1
- package/icons/svg-pack/scIconSettings.svg +1 -1
- package/icons/svg-pack/scIconShare.svg +1 -1
- package/icons/svg-pack/scIconSocialCopy.svg +13 -0
- package/icons/svg-pack/scIconSocialEmail.svg +13 -0
- package/icons/svg-pack/scIconSocialFacebook.svg +12 -0
- package/icons/svg-pack/scIconSocialInstagram.svg +33 -0
- package/icons/svg-pack/scIconSocialQR.svg +12 -0
- package/icons/svg-pack/scIconSocialTelegram.svg +20 -0
- package/icons/svg-pack/scIconSocialViber.svg +16 -0
- package/icons/svg-pack/scIconSocialVk.svg +12 -0
- package/icons/svg-pack/scIconSocialWhatsapp.svg +12 -0
- package/icons/svg-pack/scIconStar.svg +1 -1
- package/icons/svg-pack/scIconSuitcase.svg +1 -1
- package/icons/svg-pack/scIconTasks.svg +1 -1
- package/icons/svg-pack/scIconTick.svg +1 -1
- package/icons/svg-pack/scIconTop.svg +1 -1
- package/icons/svg-pack/scIconVerticalThreeDots.svg +1 -1
- package/icons/svg-pack/scIconViewGrid.svg +1 -1
- package/icons/svg-pack/scIconViewInline.svg +1 -1
- package/icons/svg-pack/scIconViewTree.svg +1 -1
- package/icons/svg-pack/scIconWallet.svg +1 -1
- package/icons/svg-pack/scIconWarning.svg +1 -1
- package/icons/svg-pack/scIconWordFile.svg +1 -1
- package/news/news-card/sc-news-card.component.d.ts +5 -1
- package/package.json +1 -1
- package/share-button/sc-share-button.component.d.ts +15 -1
- package/share-button/sc-share-button.module.d.ts +2 -1
- 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=\"
|
|
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> \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=\"
|
|
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> \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: {
|
|
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",
|
|
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: "
|
|
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
|
}] });
|