UNPKG

@taiga-ui/addon-commerce

Version:

Extension package for Taiga UI related to commerce, payment systems, currencies etc.

50 lines (45 loc) 9.28 kB
import { NgIf } from '@angular/common'; import * as i0 from '@angular/core'; import { InjectionToken, inject, Component, ChangeDetectionStrategy, Input } from '@angular/core'; import { TuiIcon, TuiIconPipe } from '@taiga-ui/core/components/icon'; import { TUI_PAYMENT_SYSTEM_ICONS } from '@taiga-ui/addon-commerce/tokens'; const TUI_THUMBNAIL_CARD_OPTIONS = new InjectionToken(ngDevMode ? 'TUI_THUMBNAIL_CARD_OPTIONS' : '', { factory: () => ({ icons: inject(TUI_PAYMENT_SYSTEM_ICONS), size: 'm', monoHandler: (ps) => ps === 'mir' || ps === 'visa' || ps === 'electron', }), }); class TuiThumbnailCard { constructor() { this.options = inject(TUI_THUMBNAIL_CARD_OPTIONS); this.size = this.options.size; this.paymentSystem = null; this.iconStart = ''; this.iconEnd = ''; this.monoHandler = this.options.monoHandler; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiThumbnailCard, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiThumbnailCard, isStandalone: true, selector: "tui-thumbnail-card", inputs: { size: "size", paymentSystem: "paymentSystem", iconStart: "iconStart", iconEnd: "iconEnd", monoHandler: "monoHandler" }, host: { properties: { "attr.data-size": "size" } }, ngImport: i0, template: "<!-- TODO: use this icon as a fallback for <ng-content select=\"img\" /> (Angular 18) -->\n<tui-icon\n *ngIf=\"iconStart\"\n class=\"t-icon t-left\"\n [icon]=\"iconStart\"\n/>\n\n<div class=\"t-left t-icon\">\n <ng-content select=\"img\" />\n</div>\n\n<tui-icon\n *ngIf=\"iconEnd\"\n class=\"t-right t-icon\"\n [icon]=\"iconEnd\"\n/>\n\n<div class=\"t-content\">\n <ng-content />\n</div>\n\n<ng-container *ngIf=\"paymentSystem\">\n <tui-icon\n *ngIf=\"monoHandler(paymentSystem); else colored\"\n class=\"t-logo\"\n [icon]=\"options.icons[paymentSystem]\"\n />\n <ng-template #colored>\n <img\n class=\"t-logo\"\n [alt]=\"paymentSystem\"\n [src]=\"options.icons[paymentSystem] | tuiIcon\"\n />\n </ng-template>\n</ng-container>\n", styles: [":host{position:relative;display:inline-block;flex-shrink:0;background:#000;color:#fff;transform-style:preserve-3d;overflow:hidden;box-shadow:inset 0 0 0 1px var(--tui-background-neutral-1);--t-logo-height: .8125rem}:host:before{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";border-radius:inherit}:host:after{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:rotateY(180deg) translateZ(1px);color:#b0b0b0;border-radius:inherit;background:linear-gradient(to bottom,currentColor 0 20%,#959595 20% 40%,currentColor 40%)}:host[data-size=xs],:host[data-size=s]{font-size:0;border-radius:.25rem}:host[data-size=xs]{inline-size:2rem;block-size:1.375rem}:host[data-size=s]{inline-size:2.5rem;block-size:1.625rem}:host[data-size=m]{inline-size:3rem;block-size:2rem;border-radius:.3125rem;font:normal .5625rem / var(--t-logo-height) var(--tui-font-text)}:host[data-size=l]{inline-size:3.375rem;block-size:2.25rem;border-radius:.375rem;font:normal .6875rem / var(--t-logo-height) var(--tui-font-text)}.t-left{position:absolute;top:0;left:0;display:flex;transform-origin:top left}:host[data-size=xs] .t-left,:host[data-size=s] .t-left{transform:translate(.125rem,.125rem) scale(.625)}:host[data-size=m] .t-left{transform:translate(.1875rem,.1875rem) scale(.875)}:host[data-size=l] .t-left{transform:translate(.1875rem,.1875rem)}.t-right{position:absolute;top:.1875rem;right:.1875rem}:host[data-size=xs] .t-right,:host[data-size=s] .t-right{display:none}:host[data-size=m] .t-right{inline-size:.875rem;block-size:.875rem}:host[data-size=m] .t-right:after{transform:scale(.5)}:host[data-size=l] .t-right{inline-size:1rem;block-size:1rem}:host[data-size=l] .t-right:after{color:#fff;transform:scale(.625)}.t-right:before{content:\"\";position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border-radius:100%;background:currentColor;opacity:.35}.t-logo{position:absolute;right:.25rem;bottom:0;block-size:var(--t-logo-height);transform-origin:right}:host[data-size=xs] .t-logo{right:.125rem}:host[data-size=m] .t-logo,:host[data-size=l] .t-logo{bottom:.0625rem}.t-logo:after{-webkit-mask-position:right;mask-position:right}.t-content{position:absolute}:host[data-size=m] .t-content{left:.1875rem;bottom:.0625rem}:host[data-size=l] .t-content{left:.25rem;bottom:.0625rem}.t-icon{inline-size:1rem;block-size:1rem}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: TuiIcon, selector: "tui-icon", inputs: ["icon", "background"] }, { kind: "pipe", type: TuiIconPipe, name: "tuiIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiThumbnailCard, decorators: [{ type: Component, args: [{ standalone: true, selector: 'tui-thumbnail-card', imports: [NgIf, TuiIcon, TuiIconPipe], changeDetection: ChangeDetectionStrategy.OnPush, host: { '[attr.data-size]': 'size', }, template: "<!-- TODO: use this icon as a fallback for <ng-content select=\"img\" /> (Angular 18) -->\n<tui-icon\n *ngIf=\"iconStart\"\n class=\"t-icon t-left\"\n [icon]=\"iconStart\"\n/>\n\n<div class=\"t-left t-icon\">\n <ng-content select=\"img\" />\n</div>\n\n<tui-icon\n *ngIf=\"iconEnd\"\n class=\"t-right t-icon\"\n [icon]=\"iconEnd\"\n/>\n\n<div class=\"t-content\">\n <ng-content />\n</div>\n\n<ng-container *ngIf=\"paymentSystem\">\n <tui-icon\n *ngIf=\"monoHandler(paymentSystem); else colored\"\n class=\"t-logo\"\n [icon]=\"options.icons[paymentSystem]\"\n />\n <ng-template #colored>\n <img\n class=\"t-logo\"\n [alt]=\"paymentSystem\"\n [src]=\"options.icons[paymentSystem] | tuiIcon\"\n />\n </ng-template>\n</ng-container>\n", styles: [":host{position:relative;display:inline-block;flex-shrink:0;background:#000;color:#fff;transform-style:preserve-3d;overflow:hidden;box-shadow:inset 0 0 0 1px var(--tui-background-neutral-1);--t-logo-height: .8125rem}:host:before{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";border-radius:inherit}:host:after{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:rotateY(180deg) translateZ(1px);color:#b0b0b0;border-radius:inherit;background:linear-gradient(to bottom,currentColor 0 20%,#959595 20% 40%,currentColor 40%)}:host[data-size=xs],:host[data-size=s]{font-size:0;border-radius:.25rem}:host[data-size=xs]{inline-size:2rem;block-size:1.375rem}:host[data-size=s]{inline-size:2.5rem;block-size:1.625rem}:host[data-size=m]{inline-size:3rem;block-size:2rem;border-radius:.3125rem;font:normal .5625rem / var(--t-logo-height) var(--tui-font-text)}:host[data-size=l]{inline-size:3.375rem;block-size:2.25rem;border-radius:.375rem;font:normal .6875rem / var(--t-logo-height) var(--tui-font-text)}.t-left{position:absolute;top:0;left:0;display:flex;transform-origin:top left}:host[data-size=xs] .t-left,:host[data-size=s] .t-left{transform:translate(.125rem,.125rem) scale(.625)}:host[data-size=m] .t-left{transform:translate(.1875rem,.1875rem) scale(.875)}:host[data-size=l] .t-left{transform:translate(.1875rem,.1875rem)}.t-right{position:absolute;top:.1875rem;right:.1875rem}:host[data-size=xs] .t-right,:host[data-size=s] .t-right{display:none}:host[data-size=m] .t-right{inline-size:.875rem;block-size:.875rem}:host[data-size=m] .t-right:after{transform:scale(.5)}:host[data-size=l] .t-right{inline-size:1rem;block-size:1rem}:host[data-size=l] .t-right:after{color:#fff;transform:scale(.625)}.t-right:before{content:\"\";position:absolute;top:0;left:0;inline-size:100%;block-size:100%;border-radius:100%;background:currentColor;opacity:.35}.t-logo{position:absolute;right:.25rem;bottom:0;block-size:var(--t-logo-height);transform-origin:right}:host[data-size=xs] .t-logo{right:.125rem}:host[data-size=m] .t-logo,:host[data-size=l] .t-logo{bottom:.0625rem}.t-logo:after{-webkit-mask-position:right;mask-position:right}.t-content{position:absolute}:host[data-size=m] .t-content{left:.1875rem;bottom:.0625rem}:host[data-size=l] .t-content{left:.25rem;bottom:.0625rem}.t-icon{inline-size:1rem;block-size:1rem}\n"] }] }], propDecorators: { size: [{ type: Input }], paymentSystem: [{ type: Input }], iconStart: [{ type: Input }], iconEnd: [{ type: Input }], monoHandler: [{ type: Input }] } }); /** * Generated bundle index. Do not edit. */ export { TUI_THUMBNAIL_CARD_OPTIONS, TuiThumbnailCard }; //# sourceMappingURL=taiga-ui-addon-commerce-components-thumbnail-card.mjs.map