UNPKG

@taiga-ui/core

Version:

Core library for creating Angular components and applications using Taiga UI

35 lines 7.1 kB
import { ChangeDetectionStrategy, Component, inject, Input, signal, ViewEncapsulation, } from '@angular/core'; import { TUI_ICON_END, TUI_ICON_START, tuiInjectIconResolver } from '@taiga-ui/core/tokens'; import * as i0 from "@angular/core"; class TuiIcon { constructor() { this.resolver = tuiInjectIconResolver(); this.backgroundSrc = signal(null); this.iconSrc = signal(this.resolve(inject(TUI_ICON_START, { self: true, optional: true }) || inject(TUI_ICON_END, { self: true, optional: true }))); } set icon(icon) { this.iconSrc.set(this.resolve(icon)); } set background(background) { this.backgroundSrc.set(this.resolve(background)); } resolve(value) { return value ? `url(${this.resolver(value)})` : null; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiIcon, isStandalone: true, selector: "tui-icon", inputs: { icon: "icon", background: "background" }, host: { properties: { "style.--t-icon": "iconSrc() || \"url()\"", "style.--t-icon-bg": "backgroundSrc()" } }, ngImport: i0, template: '', isInline: true, styles: ["tui-icon{position:relative;display:inline-block;inline-size:1em;block-size:1em;font-size:1.5rem;flex-shrink:0;border:0 solid transparent;vertical-align:middle;box-sizing:border-box;-webkit-mask:var(--t-icon-bg) no-repeat center / contain;mask:var(--t-icon-bg) no-repeat center / contain}@media (hover: hover) and (pointer: fine){tui-icon[data-appearance=icon]:hover{color:var(--tui-text-secondary)}}tui-icon:after,tui-icon[tuiIcons]:after{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";display:block;-webkit-mask:var(--t-icon) no-repeat center / contain;mask:var(--t-icon) no-repeat center / contain;background:currentColor}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); } } export { TuiIcon }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiIcon, decorators: [{ type: Component, args: [{ standalone: true, selector: 'tui-icon', template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { '[style.--t-icon]': 'iconSrc() || "url()"', '[style.--t-icon-bg]': 'backgroundSrc()', }, styles: ["tui-icon{position:relative;display:inline-block;inline-size:1em;block-size:1em;font-size:1.5rem;flex-shrink:0;border:0 solid transparent;vertical-align:middle;box-sizing:border-box;-webkit-mask:var(--t-icon-bg) no-repeat center / contain;mask:var(--t-icon-bg) no-repeat center / contain}@media (hover: hover) and (pointer: fine){tui-icon[data-appearance=icon]:hover{color:var(--tui-text-secondary)}}tui-icon:after,tui-icon[tuiIcons]:after{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";display:block;-webkit-mask:var(--t-icon) no-repeat center / contain;mask:var(--t-icon) no-repeat center / contain;background:currentColor}\n"] }] }], propDecorators: { icon: [{ type: Input }], background: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2NvbXBvbmVudHMvaWNvbi9pY29uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFMUYsTUFZYSxPQUFPO0lBWnBCO1FBYXVCLGFBQVEsR0FBNkIscUJBQXFCLEVBQUUsQ0FBQztRQUM3RCxrQkFBYSxHQUFHLE1BQU0sQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDNUMsWUFBTyxHQUFHLE1BQU0sQ0FDL0IsSUFBSSxDQUFDLE9BQU8sQ0FDUixNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUM7WUFDaEQsTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQ3pELENBQ0osQ0FBQztLQWVMO0lBYkcsSUFDVyxJQUFJLENBQUMsSUFBWTtRQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQ1csVUFBVSxDQUFDLFVBQWtCO1FBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQXFCO1FBQ2hDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pELENBQUM7K0dBdEJRLE9BQU87bUdBQVAsT0FBTyxzT0FUTixFQUFFOztTQVNILE9BQU87NEZBQVAsT0FBTztrQkFabkIsU0FBUztpQ0FDTSxJQUFJLFlBQ04sVUFBVSxZQUNWLEVBQUUsaUJBRUcsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixrQkFBa0IsRUFBRSxzQkFBc0I7d0JBQzFDLHFCQUFxQixFQUFFLGlCQUFpQjtxQkFDM0M7OEJBYVUsSUFBSTtzQkFEZCxLQUFLO2dCQU1LLFVBQVU7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHlwZSBUdWlTdHJpbmdIYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7VFVJX0lDT05fRU5ELCBUVUlfSUNPTl9TVEFSVCwgdHVpSW5qZWN0SWNvblJlc29sdmVyfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndHVpLWljb24nLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdHlsZXM6IFsnQGltcG9ydCBcIkB0YWlnYS11aS9jb3JlL3N0eWxlcy9jb21wb25lbnRzL2ljb24ubGVzc1wiOyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICAnW3N0eWxlLi0tdC1pY29uXSc6ICdpY29uU3JjKCkgfHwgXCJ1cmwoKVwiJyxcbiAgICAgICAgJ1tzdHlsZS4tLXQtaWNvbi1iZ10nOiAnYmFja2dyb3VuZFNyYygpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJY29uIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVzb2x2ZXI6IFR1aVN0cmluZ0hhbmRsZXI8c3RyaW5nPiA9IHR1aUluamVjdEljb25SZXNvbHZlcigpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBiYWNrZ3JvdW5kU3JjID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpY29uU3JjID0gc2lnbmFsKFxuICAgICAgICB0aGlzLnJlc29sdmUoXG4gICAgICAgICAgICBpbmplY3QoVFVJX0lDT05fU1RBUlQsIHtzZWxmOiB0cnVlLCBvcHRpb25hbDogdHJ1ZX0pIHx8XG4gICAgICAgICAgICAgICAgaW5qZWN0KFRVSV9JQ09OX0VORCwge3NlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlfSksXG4gICAgICAgICksXG4gICAgKTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpY29uKGljb246IHN0cmluZykge1xuICAgICAgICB0aGlzLmljb25TcmMuc2V0KHRoaXMucmVzb2x2ZShpY29uKSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGJhY2tncm91bmQoYmFja2dyb3VuZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYmFja2dyb3VuZFNyYy5zZXQodGhpcy5yZXNvbHZlKGJhY2tncm91bmQpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzb2x2ZSh2YWx1ZT86IHN0cmluZyB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID8gYHVybCgke3RoaXMucmVzb2x2ZXIodmFsdWUpfSlgIDogbnVsbDtcbiAgICB9XG59XG4iXX0=