tuain-ng-forms-lib
Version:
Componentes y Clases Angular para la gestión de formularios TUAIN
40 lines • 6.53 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class BaseIconResolverService {
collections = new Map();
collectionOrder = [];
registerCollection(collection) {
this.collections.set(collection.name, collection.icons);
if (!this.collectionOrder.includes(collection.name)) {
this.collectionOrder.push(collection.name);
}
}
resolve(iconName, collectionName) {
const normalizedName = this.normalizeName(iconName);
if (collectionName) {
const icons = this.collections.get(collectionName);
const icon = icons?.[normalizedName] ?? icons?.['default'] ?? null;
return icon ? { icon, collection: collectionName } : null;
}
for (const name of this.collectionOrder) {
const icons = this.collections.get(name);
const icon = icons[normalizedName];
if (icon) {
return { icon, collection: name };
}
}
const firstCollection = this.collectionOrder[0];
const defaultIcon = this.collections.get(firstCollection)?.['default'];
return defaultIcon ? { icon: defaultIcon, collection: firstCollection } : null;
}
normalizeName(name) {
return name?.replace(/[-_](.)/g, (_, c) => c.toUpperCase())
?.replace(/^(.)/, (_, c) => c.toLowerCase()) ?? 'default';
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseIconResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseIconResolverService });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseIconResolverService, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pY29uLXJlc29sdmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWFpbi1uZy1mb3Jtcy1saWIvc3JjL2xpYi9zZXJ2aWNlcy9iYXNlLWljb24tcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQyxNQUFNLE9BQU8sdUJBQXVCO0lBQzFCLFdBQVcsR0FBbUQsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUN4RSxlQUFlLEdBQWEsRUFBRSxDQUFDO0lBRXZDLGtCQUFrQixDQUFDLFVBQTBCO1FBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsUUFBZ0IsRUFBRSxjQUF1QjtRQUMvQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXBELElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbkQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDO1lBQ25FLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM1RCxDQUFDO1FBRUQsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUM7WUFDMUMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ25DLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDcEMsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkUsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqRixDQUFDO0lBRVMsYUFBYSxDQUFDLElBQVk7UUFDbEMsT0FBTyxJQUFJLEVBQUUsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoRCxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUM7SUFDdkUsQ0FBQzt3R0FwQ1UsdUJBQXVCOzRHQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJSWNvblJlc29sdmVyLCBJY29uQ29sbGVjdGlvbiwgSWNvblJlc29sdXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ljb24tcmVzb2x2ZXIuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJhc2VJY29uUmVzb2x2ZXJTZXJ2aWNlIGltcGxlbWVudHMgSUljb25SZXNvbHZlciB7XG4gIHByaXZhdGUgY29sbGVjdGlvbnM6IE1hcDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHN0cmluZ1tdPj4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgY29sbGVjdGlvbk9yZGVyOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHJlZ2lzdGVyQ29sbGVjdGlvbihjb2xsZWN0aW9uOiBJY29uQ29sbGVjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuY29sbGVjdGlvbnMuc2V0KGNvbGxlY3Rpb24ubmFtZSwgY29sbGVjdGlvbi5pY29ucyk7XG4gICAgaWYgKCF0aGlzLmNvbGxlY3Rpb25PcmRlci5pbmNsdWRlcyhjb2xsZWN0aW9uLm5hbWUpKSB7XG4gICAgICB0aGlzLmNvbGxlY3Rpb25PcmRlci5wdXNoKGNvbGxlY3Rpb24ubmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcmVzb2x2ZShpY29uTmFtZTogc3RyaW5nLCBjb2xsZWN0aW9uTmFtZT86IHN0cmluZyk6IEljb25SZXNvbHV0aW9uIHwgbnVsbCB7XG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSB0aGlzLm5vcm1hbGl6ZU5hbWUoaWNvbk5hbWUpO1xuXG4gICAgaWYgKGNvbGxlY3Rpb25OYW1lKSB7XG4gICAgICBjb25zdCBpY29ucyA9IHRoaXMuY29sbGVjdGlvbnMuZ2V0KGNvbGxlY3Rpb25OYW1lKTtcbiAgICAgIGNvbnN0IGljb24gPSBpY29ucz8uW25vcm1hbGl6ZWROYW1lXSA/PyBpY29ucz8uWydkZWZhdWx0J10gPz8gbnVsbDtcbiAgICAgIHJldHVybiBpY29uID8geyBpY29uLCBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uTmFtZSB9IDogbnVsbDtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgdGhpcy5jb2xsZWN0aW9uT3JkZXIpIHtcbiAgICAgIGNvbnN0IGljb25zID0gdGhpcy5jb2xsZWN0aW9ucy5nZXQobmFtZSkhO1xuICAgICAgY29uc3QgaWNvbiA9IGljb25zW25vcm1hbGl6ZWROYW1lXTtcbiAgICAgIGlmIChpY29uKSB7XG4gICAgICAgIHJldHVybiB7IGljb24sIGNvbGxlY3Rpb246IG5hbWUgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBmaXJzdENvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb25PcmRlclswXTtcbiAgICBjb25zdCBkZWZhdWx0SWNvbiA9IHRoaXMuY29sbGVjdGlvbnMuZ2V0KGZpcnN0Q29sbGVjdGlvbik/LlsnZGVmYXVsdCddO1xuICAgIHJldHVybiBkZWZhdWx0SWNvbiA/IHsgaWNvbjogZGVmYXVsdEljb24sIGNvbGxlY3Rpb246IGZpcnN0Q29sbGVjdGlvbiB9IDogbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBub3JtYWxpemVOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG5hbWU/LnJlcGxhY2UoL1stX10oLikvZywgKF8sIGMpID0+IGMudG9VcHBlckNhc2UoKSlcbiAgICAgICAgICAgICAgID8ucmVwbGFjZSgvXiguKS8sIChfLCBjKSA9PiBjLnRvTG93ZXJDYXNlKCkpID8/ICdkZWZhdWx0JztcbiAgfVxufVxuIl19