openaire-library/utils/icons/icons.service.ts

37 lines
835 B
TypeScript

import {Injectable} from "@angular/core";
import {Icon} from "./icons";
import * as all from "./icons";
import {Observable} from "rxjs";
import {HttpClient} from "@angular/common/http";
@Injectable({
providedIn: 'root'
})
export class IconsService {
private registry = new Map<string, Icon>();
constructor(private http: HttpClient) {
}
public registerIcons(icons: any[]): void {
icons.forEach((icon: Icon) => this.registry.set(icon.name, icon));
}
public getIcon(iconName: string): Icon | undefined {
return this.registry.get(iconName);
}
public getMaterialIcons(): Observable<any> {
return this.http.get('https://fonts.google.com/metadata/icons');
}
public getAll(): Icon[] {
let icons: Icon[] = [];
for (let key in all) {
icons.push(all[key]);
}
return icons;
}
}