@taiga-ui/core
Version:
Core library for creating Angular components and applications using Taiga UI
22 lines • 3.86 kB
JavaScript
import { inject, InjectionToken } from '@angular/core';
import { TUI_ASSETS_PATH } from './assets-path';
import { TUI_ICON_REGISTRY } from './icons';
export const TUI_ICON_RESOLVER = new InjectionToken(ngDevMode ? 'TUI_ICON_RESOLVER' : '', {
factory: () => {
const path = inject(TUI_ASSETS_PATH);
return (icon) => `${path}/${icon.replace('@tui.', '').split('.').join('/')}.svg`;
},
});
/**
* @deprecated use {@link TUI_ICON_RESOLVER}
*/
export const TUI_ICON_START_RESOLVER = TUI_ICON_RESOLVER;
export function tuiInjectIconResolver() {
const icons = inject(TUI_ICON_REGISTRY);
const resolver = inject(TUI_ICON_RESOLVER);
return (icon) => !icon || icon.includes('/') ? icon : (icons[icon] ?? resolver(icon));
}
export function tuiIconResolverProvider(useValue) {
return { provide: TUI_ICON_RESOLVER, useValue };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvdG9rZW5zL2ljb24tcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBR3BFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sU0FBUyxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUMvQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3BDO0lBQ0ksT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNWLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVyQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDWixHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDeEUsQ0FBQztDQUNKLENBQ0osQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsaUJBQWlCLENBQUM7QUFFekQsTUFBTSxVQUFVLHFCQUFxQjtJQUNqQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN4QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUUzQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDWixDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsUUFBa0M7SUFDdEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUMsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIEluamVjdGlvblRva2VuLCB0eXBlIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHlwZSBUdWlTdHJpbmdIYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcblxuaW1wb3J0IHtUVUlfQVNTRVRTX1BBVEh9IGZyb20gJy4vYXNzZXRzLXBhdGgnO1xuaW1wb3J0IHtUVUlfSUNPTl9SRUdJU1RSWX0gZnJvbSAnLi9pY29ucyc7XG5cbmV4cG9ydCBjb25zdCBUVUlfSUNPTl9SRVNPTFZFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUdWlTdHJpbmdIYW5kbGVyPHN0cmluZz4+KFxuICAgIG5nRGV2TW9kZSA/ICdUVUlfSUNPTl9SRVNPTFZFUicgOiAnJyxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBpbmplY3QoVFVJX0FTU0VUU19QQVRIKTtcblxuICAgICAgICAgICAgcmV0dXJuIChpY29uKSA9PlxuICAgICAgICAgICAgICAgIGAke3BhdGh9LyR7aWNvbi5yZXBsYWNlKCdAdHVpLicsICcnKS5zcGxpdCgnLicpLmpvaW4oJy8nKX0uc3ZnYDtcbiAgICAgICAgfSxcbiAgICB9LFxuKTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCB1c2Uge0BsaW5rIFRVSV9JQ09OX1JFU09MVkVSfVxuICovXG5leHBvcnQgY29uc3QgVFVJX0lDT05fU1RBUlRfUkVTT0xWRVIgPSBUVUlfSUNPTl9SRVNPTFZFUjtcblxuZXhwb3J0IGZ1bmN0aW9uIHR1aUluamVjdEljb25SZXNvbHZlcigpOiBUdWlTdHJpbmdIYW5kbGVyPHN0cmluZz4ge1xuICAgIGNvbnN0IGljb25zID0gaW5qZWN0KFRVSV9JQ09OX1JFR0lTVFJZKTtcbiAgICBjb25zdCByZXNvbHZlciA9IGluamVjdChUVUlfSUNPTl9SRVNPTFZFUik7XG5cbiAgICByZXR1cm4gKGljb24pID0+XG4gICAgICAgICFpY29uIHx8IGljb24uaW5jbHVkZXMoJy8nKSA/IGljb24gOiAoaWNvbnNbaWNvbl0gPz8gcmVzb2x2ZXIoaWNvbikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHVpSWNvblJlc29sdmVyUHJvdmlkZXIodXNlVmFsdWU6IFR1aVN0cmluZ0hhbmRsZXI8c3RyaW5nPik6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4ge3Byb3ZpZGU6IFRVSV9JQ09OX1JFU09MVkVSLCB1c2VWYWx1ZX07XG59XG4iXX0=