UNPKG

@taiga-ui/core

Version:

Core library for creating Angular components and applications using Taiga UI

66 lines 12.8 kB
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, tuiGetIconMode, 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:\"\";inline-size:1em;block-size:1em;line-height:1em;font-size:1.5rem;flex-shrink:0;box-sizing:content-box;background:currentColor}[tuiIcons]:before{display:var(--t-icon-start, none);-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, none);-webkit-mask:var(--t-icon-end) no-repeat center / contain padding-box;mask:var(--t-icon-end) no-repeat center / contain padding-box}[tuiIcons][data-icon-start=image]:before{-webkit-mask:none;mask:none;background:var(--t-icon-start) no-repeat center / contain padding-box}[tuiIcons][data-icon-end=image]:after{-webkit-mask:none;mask:none;background:var(--t-icon-end) no-repeat center / contain padding-box}[tuiIcons][data-icon-start=font]:before,[tuiIcons][data-icon-end=font]:after{display:grid;-webkit-mask:none;mask:none;background:none;font:1.3em/1 var(--tui-font-icon, inherit);text-align:center;place-content:center;text-transform:none}[tuiIcons][data-icon-start=font]:before{content:var(--t-icon-start)}[tuiIcons][data-icon-end=font]:after{content:var(--t-icon-end)}\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:\"\";inline-size:1em;block-size:1em;line-height:1em;font-size:1.5rem;flex-shrink:0;box-sizing:content-box;background:currentColor}[tuiIcons]:before{display:var(--t-icon-start, none);-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, none);-webkit-mask:var(--t-icon-end) no-repeat center / contain padding-box;mask:var(--t-icon-end) no-repeat center / contain padding-box}[tuiIcons][data-icon-start=image]:before{-webkit-mask:none;mask:none;background:var(--t-icon-start) no-repeat center / contain padding-box}[tuiIcons][data-icon-end=image]:after{-webkit-mask:none;mask:none;background:var(--t-icon-end) no-repeat center / contain padding-box}[tuiIcons][data-icon-start=font]:before,[tuiIcons][data-icon-end=font]:after{display:grid;-webkit-mask:none;mask:none;background:none;font:1.3em/1 var(--tui-font-icon, inherit);text-align:center;place-content:center;text-transform:none}[tuiIcons][data-icon-start=font]:before{content:var(--t-icon-start)}[tuiIcons][data-icon-end=font]:after{content:var(--t-icon-end)}\n"] }] }] }); class TuiIcons { constructor() { this.resolver = tuiInjectIconResolver(); this.nothing = tuiWithStyles(TuiIconsStyles); this.startResource = computed(() => this.resolve(this.iconStart())); this.endResource = computed(() => this.resolve(this.iconEnd())); this.startMode = computed(() => tuiGetIconMode(this.iconStart()?.toString())); this.endMode = computed(() => tuiGetIconMode(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) { if (!icon) { return null; } const iconStr = icon.toString(); return tuiGetIconMode(iconStr) === 'font' ? `'${this.resolver(iconStr)}'` : `url(${this.resolver(iconStr)})`; } 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": "startResource()", "style.--t-icon-end": "endResource()", "attr.data-icon-start": "startMode()", "attr.data-icon-end": "endMode()" } }, 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]': 'startResource()', '[style.--t-icon-end]': 'endResource()', '[attr.data-icon-start]': 'startMode()', '[attr.data-icon-end]': 'endMode()', }, }] }], propDecorators: { iconStartSetter: [{ type: Input, args: ['iconStart'] }], iconEndSetter: [{ type: Input, args: ['iconEnd'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9kaXJlY3RpdmVzL2ljb25zL2ljb25zLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUNILFlBQVksRUFDWixjQUFjLEVBQ2QsY0FBYyxFQUNkLHFCQUFxQixHQUN4QixNQUFNLHVCQUF1QixDQUFDOztBQU8vQixNQVVNLGNBQWM7K0dBQWQsY0FBYzttR0FBZCxjQUFjLCtHQVJOLEVBQUU7OzRGQVFWLGNBQWM7a0JBVm5CLFNBQVM7aUNBQ00sSUFBSSxZQUNOLEVBQUUsaUJBRUcsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsV0FBVztxQkFDckI7O0FBSUwsTUFVYSxRQUFRO0lBVnJCO1FBV3FCLGFBQVEsR0FBNkIscUJBQXFCLEVBQUUsQ0FBQztRQUUzRCxZQUFPLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvRCxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0QsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDekMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUMvQyxDQUFDO1FBRWlCLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFNUQsY0FBUyxHQUFHLE1BQU0sQ0FDOUIsTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLElBQUksRUFBRSxDQUM3RCxDQUFDO1FBRWMsWUFBTyxHQUFHLE1BQU0sQ0FDNUIsTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLElBQUksRUFBRSxDQUMzRCxDQUFDO0tBeUJMO0lBdkJHLDhCQUE4QjtJQUM5QixJQUNXLGVBQWUsQ0FBQyxDQUFPO1FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsSUFDVyxhQUFhLENBQUMsQ0FBUztRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRVMsT0FBTyxDQUFDLElBQVU7UUFDeEIsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEMsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssTUFBTTtZQUNyQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHO1lBQy9CLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUMzQyxDQUFDOytHQTFDUSxRQUFRO21HQUFSLFFBQVE7O1NBQVIsUUFBUTs0RkFBUixRQUFRO2tCQVZwQixTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsUUFBUSxFQUFFLEVBQUU7d0JBQ1osd0JBQXdCLEVBQUUsaUJBQWlCO3dCQUMzQyxzQkFBc0IsRUFBRSxlQUFlO3dCQUN2Qyx3QkFBd0IsRUFBRSxhQUFhO3dCQUN2QyxzQkFBc0IsRUFBRSxXQUFXO3FCQUN0QztpQkFDSjs4QkF1QmMsZUFBZTtzQkFEekIsS0FBSzt1QkFBQyxXQUFXO2dCQU9QLGFBQWE7c0JBRHZCLEtBQUs7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHlwZSBTYWZlUmVzb3VyY2VVcmx9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHt0eXBlIFR1aVN0cmluZ0hhbmRsZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvdHlwZXMnO1xuaW1wb3J0IHt0dWlXaXRoU3R5bGVzfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHtcbiAgICBUVUlfSUNPTl9FTkQsXG4gICAgVFVJX0lDT05fU1RBUlQsXG4gICAgdHVpR2V0SWNvbk1vZGUsXG4gICAgdHVpSW5qZWN0SWNvblJlc29sdmVyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS90b2tlbnMnO1xuXG4vKipcbiAqIFdvcmthcm91bmQgZm9yIHtAbGluayBUdWlBdmF0YXJ9IHRvIHByb3Blcmx5IGhhbmRsZSBpY29uIGNvbG9yIGluIHtAbGluayBUdWlBcHBlYXJhbmNlfVxuICovXG50eXBlIEljb24gPSBTYWZlUmVzb3VyY2VVcmwgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdHlsZXM6IFsnQGltcG9ydCBcIkB0YWlnYS11aS9jb3JlL3N0eWxlcy9jb21wb25lbnRzL2ljb25zLmxlc3NcIjsnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICd0dWktaWNvbnMnLFxuICAgIH0sXG59KVxuY2xhc3MgVHVpSWNvbnNTdHlsZXMge31cblxuQERpcmVjdGl2ZSh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgIHR1aUljb25zOiAnJyxcbiAgICAgICAgJ1tzdHlsZS4tLXQtaWNvbi1zdGFydF0nOiAnc3RhcnRSZXNvdXJjZSgpJyxcbiAgICAgICAgJ1tzdHlsZS4tLXQtaWNvbi1lbmRdJzogJ2VuZFJlc291cmNlKCknLFxuICAgICAgICAnW2F0dHIuZGF0YS1pY29uLXN0YXJ0XSc6ICdzdGFydE1vZGUoKScsXG4gICAgICAgICdbYXR0ci5kYXRhLWljb24tZW5kXSc6ICdlbmRNb2RlKCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUljb25zIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc29sdmVyOiBUdWlTdHJpbmdIYW5kbGVyPHN0cmluZz4gPSB0dWlJbmplY3RJY29uUmVzb2x2ZXIoKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBub3RoaW5nID0gdHVpV2l0aFN0eWxlcyhUdWlJY29uc1N0eWxlcyk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0YXJ0UmVzb3VyY2UgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnJlc29sdmUodGhpcy5pY29uU3RhcnQoKSkpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBlbmRSZXNvdXJjZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMucmVzb2x2ZSh0aGlzLmljb25FbmQoKSkpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzdGFydE1vZGUgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0dWlHZXRJY29uTW9kZSh0aGlzLmljb25TdGFydCgpPy50b1N0cmluZygpKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVuZE1vZGUgPSBjb21wdXRlZCgoKSA9PiB0dWlHZXRJY29uTW9kZSh0aGlzLmljb25FbmQoKSkpO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGljb25TdGFydCA9IHNpZ25hbDxJY29uPihcbiAgICAgICAgaW5qZWN0KFRVSV9JQ09OX1NUQVJULCB7c2VsZjogdHJ1ZSwgb3B0aW9uYWw6IHRydWV9KSB8fCAnJyxcbiAgICApO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGljb25FbmQgPSBzaWduYWw8c3RyaW5nPihcbiAgICAgICAgaW5qZWN0KFRVSV9JQ09OX0VORCwge3NlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlfSkgfHwgJycsXG4gICAgKTtcblxuICAgIC8vIFRPRE8odjUpOiB1c2Ugc2lnbmFsIGlucHV0c1xuICAgIEBJbnB1dCgnaWNvblN0YXJ0JylcbiAgICBwdWJsaWMgc2V0IGljb25TdGFydFNldHRlcih4OiBJY29uKSB7XG4gICAgICAgIHRoaXMuaWNvblN0YXJ0LnNldCh4KTtcbiAgICB9XG5cbiAgICAvLyBUT0RPKHY1KTogdXNlIHNpZ25hbCBpbnB1dHNcbiAgICBASW5wdXQoJ2ljb25FbmQnKVxuICAgIHB1YmxpYyBzZXQgaWNvbkVuZFNldHRlcih4OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5pY29uRW5kLnNldCh4KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZShpY29uOiBJY29uKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGlmICghaWNvbikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpY29uU3RyID0gaWNvbi50b1N0cmluZygpO1xuXG4gICAgICAgIHJldHVybiB0dWlHZXRJY29uTW9kZShpY29uU3RyKSA9PT0gJ2ZvbnQnXG4gICAgICAgICAgICA/IGAnJHt0aGlzLnJlc29sdmVyKGljb25TdHIpfSdgXG4gICAgICAgICAgICA6IGB1cmwoJHt0aGlzLnJlc29sdmVyKGljb25TdHIpfSlgO1xuICAgIH1cbn1cbiJdfQ==