@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
56 lines • 9.66 kB
JavaScript
import { ChangeDetectionStrategy, Component, computed, Directive, inject, Input, signal, ViewEncapsulation, } from '@angular/core';
import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
import { TUI_ICON_END, TUI_ICON_START, tuiInjectIconResolver } from '@taiga-ui/core/tokens';
import * as i0 from "@angular/core";
class TuiIconsStyles {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiIconsStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiIconsStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-icons" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiIcons]{--t-icon-start: none;--t-icon-end: none}[tuiIcons]:before,[tuiIcons]:after{content:\"\";display:var(--t-icon-start);inline-size:1em;block-size:1em;line-height:1em;font-size:1.5rem;flex-shrink:0;box-sizing:content-box;background:currentColor;-webkit-mask:var(--t-icon-start) no-repeat center / contain padding-box;mask:var(--t-icon-start) no-repeat center / contain padding-box}[tuiIcons]:after{display:var(--t-icon-end);-webkit-mask:var(--t-icon-end) no-repeat center / contain padding-box;mask:var(--t-icon-end) no-repeat center / contain padding-box}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiIconsStyles, decorators: [{
type: Component,
args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
class: 'tui-icons',
}, styles: ["[tuiIcons]{--t-icon-start: none;--t-icon-end: none}[tuiIcons]:before,[tuiIcons]:after{content:\"\";display:var(--t-icon-start);inline-size:1em;block-size:1em;line-height:1em;font-size:1.5rem;flex-shrink:0;box-sizing:content-box;background:currentColor;-webkit-mask:var(--t-icon-start) no-repeat center / contain padding-box;mask:var(--t-icon-start) no-repeat center / contain padding-box}[tuiIcons]:after{display:var(--t-icon-end);-webkit-mask:var(--t-icon-end) no-repeat center / contain padding-box;mask:var(--t-icon-end) no-repeat center / contain padding-box}\n"] }]
}] });
class TuiIcons {
constructor() {
this.resolver = tuiInjectIconResolver();
this.nothing = tuiWithStyles(TuiIconsStyles);
this.iconStartUrl = computed(() => this.resolve(this.iconStart()));
this.iconEndUrl = computed(() => this.resolve(this.iconEnd()));
this.iconStart = signal(inject(TUI_ICON_START, { self: true, optional: true }) || '');
this.iconEnd = signal(inject(TUI_ICON_END, { self: true, optional: true }) || '');
}
// TODO(v5): use signal inputs
set iconStartSetter(x) {
this.iconStart.set(x);
}
// TODO(v5): use signal inputs
set iconEndSetter(x) {
this.iconEnd.set(x);
}
resolve(icon) {
return icon ? `url(${this.resolver(icon.toString())})` : null;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiIcons, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiIcons, isStandalone: true, inputs: { iconStartSetter: ["iconStart", "iconStartSetter"], iconEndSetter: ["iconEnd", "iconEndSetter"] }, host: { attributes: { "tuiIcons": "" }, properties: { "style.--t-icon-start": "iconStartUrl()", "style.--t-icon-end": "iconEndUrl()" } }, ngImport: i0 }); }
}
export { TuiIcons };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiIcons, decorators: [{
type: Directive,
args: [{
standalone: true,
host: {
tuiIcons: '',
'[style.--t-icon-start]': 'iconStartUrl()',
'[style.--t-icon-end]': 'iconEndUrl()',
},
}]
}], propDecorators: { iconStartSetter: [{
type: Input,
args: ['iconStart']
}], iconEndSetter: [{
type: Input,
args: ['iconEnd']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL2ljb25zL2ljb25zLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7QUFPMUYsTUFVTSxjQUFjOytHQUFkLGNBQWM7bUdBQWQsY0FBYywrR0FSTixFQUFFOzs0RkFRVixjQUFjO2tCQVZuQixTQUFTO2lDQUNNLElBQUksWUFDTixFQUFFLGlCQUVHLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLFdBQVc7cUJBQ3JCOztBQUlMLE1BUWEsUUFBUTtJQVJyQjtRQVNxQixhQUFRLEdBQTZCLHFCQUFxQixFQUFFLENBQUM7UUFFM0QsWUFBTyxHQUFHLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4QyxpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUQsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFN0QsY0FBUyxHQUFHLE1BQU0sQ0FDOUIsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLElBQUksRUFBRSxDQUM3RCxDQUFDO1FBRWMsWUFBTyxHQUFHLE1BQU0sQ0FDNUIsTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLElBQUksRUFBRSxDQUMzRCxDQUFDO0tBaUJMO0lBZkcsOEJBQThCO0lBQzlCLElBQ1csZUFBZSxDQUFDLENBQU87UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixJQUNXLGFBQWEsQ0FBQyxDQUFTO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFUyxPQUFPLENBQUMsSUFBVTtRQUN4QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsRSxDQUFDOytHQTdCUSxRQUFRO21HQUFSLFFBQVE7O1NBQVIsUUFBUTs0RkFBUixRQUFRO2tCQVJwQixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsUUFBUSxFQUFFLEVBQUU7d0JBQ1osd0JBQXdCLEVBQUUsZ0JBQWdCO3dCQUMxQyxzQkFBc0IsRUFBRSxjQUFjO3FCQUN6QztpQkFDSjs4QkFrQmMsZUFBZTtzQkFEekIsS0FBSzt1QkFBQyxXQUFXO2dCQU9QLGFBQWE7c0JBRHZCLEtBQUs7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHlwZSBTYWZlUmVzb3VyY2VVcmx9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHt0eXBlIFR1aVN0cmluZ0hhbmRsZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlXaXRoU3R5bGVzfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtUVUlfSUNPTl9FTkQsIFRVSV9JQ09OX1NUQVJULCB0dWlJbmplY3RJY29uUmVzb2x2ZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3Rva2Vucyc7XG5cbi8qKlxuICogV29ya2Fyb3VuZCBmb3Ige0BsaW5rIFR1aUF2YXRhcn0gdG8gcHJvcGVybHkgaGFuZGxlIGljb24gY29sb3IgaW4ge0BsaW5rIFR1aUFwcGVhcmFuY2V9XG4gKi9cbnR5cGUgSWNvbiA9IFNhZmVSZXNvdXJjZVVybCB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIHN0eWxlczogWydAaW1wb3J0IFwiQHRhaWdhLXVpL2NvcmUvc3R5bGVzL2NvbXBvbmVudHMvaWNvbnMubGVzc1wiOyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3R1aS1pY29ucycsXG4gICAgfSxcbn0pXG5jbGFzcyBUdWlJY29uc1N0eWxlcyB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgdHVpSWNvbnM6ICcnLFxuICAgICAgICAnW3N0eWxlLi0tdC1pY29uLXN0YXJ0XSc6ICdpY29uU3RhcnRVcmwoKScsXG4gICAgICAgICdbc3R5bGUuLS10LWljb24tZW5kXSc6ICdpY29uRW5kVXJsKCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUljb25zIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc29sdmVyOiBUdWlTdHJpbmdIYW5kbGVyPHN0cmluZz4gPSB0dWlJbmplY3RJY29uUmVzb2x2ZXIoKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBub3RoaW5nID0gdHVpV2l0aFN0eWxlcyhUdWlJY29uc1N0eWxlcyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGljb25TdGFydFVybCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZSh0aGlzLmljb25TdGFydCgpKSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGljb25FbmRVcmwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmUodGhpcy5pY29uRW5kKCkpKTtcblxuICAgIHB1YmxpYyByZWFkb25seSBpY29uU3RhcnQgPSBzaWduYWw8SWNvbj4oXG4gICAgICAgIGluamVjdChUVUlfSUNPTl9TVEFSVCwge3NlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlfSkgfHwgJycsXG4gICAgKTtcblxuICAgIHB1YmxpYyByZWFkb25seSBpY29uRW5kID0gc2lnbmFsPHN0cmluZz4oXG4gICAgICAgIGluamVjdChUVUlfSUNPTl9FTkQsIHtzZWxmOiB0cnVlLCBvcHRpb25hbDogdHJ1ZX0pIHx8ICcnLFxuICAgICk7XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoJ2ljb25TdGFydCcpXG4gICAgcHVibGljIHNldCBpY29uU3RhcnRTZXR0ZXIoeDogSWNvbikge1xuICAgICAgICB0aGlzLmljb25TdGFydC5zZXQoeCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETyh2NSk6IHVzZSBzaWduYWwgaW5wdXRzXG4gICAgQElucHV0KCdpY29uRW5kJylcbiAgICBwdWJsaWMgc2V0IGljb25FbmRTZXR0ZXIoeDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuaWNvbkVuZC5zZXQoeCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmUoaWNvbjogSWNvbik6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gaWNvbiA/IGB1cmwoJHt0aGlzLnJlc29sdmVyKGljb24udG9TdHJpbmcoKSl9KWAgOiBudWxsO1xuICAgIH1cbn1cbiJdfQ==