@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
1 lines • 5.69 kB
Source Map (JSON)
{"version":3,"file":"taiga-ui-core-directives-icons.mjs","sources":["../../../projects/core/directives/icons/icons.directive.ts","../../../projects/core/directives/icons/with-icons.ts","../../../projects/core/directives/icons/taiga-ui-core-directives-icons.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n Input,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {type SafeResourceUrl} from '@angular/platform-browser';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ICON_END, TUI_ICON_START, tuiInjectIconResolver} from '@taiga-ui/core/tokens';\n\n/**\n * Workaround for {@link TuiAvatar} to properly handle icon color in {@link TuiAppearance}\n */\ntype Icon = SafeResourceUrl | string | null | undefined;\n\n@Component({\n standalone: true,\n template: '',\n styles: ['@import \"@taiga-ui/core/styles/components/icons.less\";'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-icons',\n },\n})\nclass TuiIconsStyles {}\n\n@Directive({\n standalone: true,\n host: {\n tuiIcons: '',\n '[style.--t-icon-start]': 'iconStartUrl()',\n '[style.--t-icon-end]': 'iconEndUrl()',\n },\n})\nexport class TuiIcons {\n private readonly resolver: TuiStringHandler<string> = tuiInjectIconResolver();\n\n protected readonly nothing = tuiWithStyles(TuiIconsStyles);\n protected readonly iconStartUrl = computed(() => this.resolve(this.iconStart()));\n protected readonly iconEndUrl = computed(() => this.resolve(this.iconEnd()));\n\n public readonly iconStart = signal<Icon>(\n inject(TUI_ICON_START, {self: true, optional: true}) || '',\n );\n\n public readonly iconEnd = signal<string>(\n inject(TUI_ICON_END, {self: true, optional: true}) || '',\n );\n\n // TODO(v5): use signal inputs\n @Input('iconStart')\n public set iconStartSetter(x: Icon) {\n this.iconStart.set(x);\n }\n\n // TODO(v5): use signal inputs\n @Input('iconEnd')\n public set iconEndSetter(x: string) {\n this.iconEnd.set(x);\n }\n\n protected resolve(icon: Icon): string | null {\n return icon ? `url(${this.resolver(icon.toString())})` : null;\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {TuiIcons} from './icons.directive';\n\n@Directive({\n standalone: true,\n hostDirectives: [\n {\n directive: TuiIcons,\n inputs: ['iconStart', 'iconEnd'],\n },\n ],\n})\nexport class TuiWithIcons {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiIcons"],"mappings":"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"}