Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 1x 11x 11x 11x 7x 7x 5x 2x 11x 11x 11x 11x 3x 8x 8x 9x 8x 10x 9x | import { Inject, Injectable, Optional } from '@angular/core';
import { DynamicFormLibraryService } from '../../dynamic-form-library/dynamic-form-library.service';
import { DynamicFormIconConfig, DynamicFormIconConfigs, DYNAMIC_FORM_ICON_CONFIGS } from './dynamic-form-icon-config';
import { DynamicFormIconTemplate } from './dynamic-form-icon-template';
@Injectable()
export class DynamicFormIconService {
readonly iconConfig: DynamicFormIconConfig;
constructor(
private libraryService: DynamicFormLibraryService,
@Optional() @Inject(DYNAMIC_FORM_ICON_CONFIGS)
private iconConfigs: DynamicFormIconConfigs,
) {
this.iconConfig = this.mergeIconConfigs(this.iconConfigs);
}
getIcon(icon: string): string;
/**
* @deprecated The method should not be used
*/
// eslint-disable-next-line @typescript-eslint/unified-signatures
getIcon(template: DynamicFormIconTemplate): string;
getIcon(iconOrTemplate: string | DynamicFormIconTemplate): string {
const icon = typeof iconOrTemplate === 'string' ? iconOrTemplate : iconOrTemplate?.icon;
if (icon) {
return this.iconConfig.icons[icon] || icon;
}
return undefined;
}
private mergeIconConfigs(configs: DynamicFormIconConfigs): DynamicFormIconConfig {
const library = this.libraryService.library;
const libraryName = library.name;
const defaultConfig = { icons: {}, libraryName };
if (!configs || !configs.length) {
return defaultConfig;
}
const libraryConfigs = this.getLibraryConfigs(configs);
return libraryConfigs.reduce((result, config) => {
return {
...result, ...config,
icons: { ...result.icons, ...config.icons },
libraryName,
};
}, defaultConfig);
}
private getLibraryConfigs(configs: DynamicFormIconConfigs): DynamicFormIconConfigs {
return this.libraryService.libraryNamesReverse
.map(name => configs.find(config => config.libraryName === name))
.filter(config => !!config);
}
}
|