@nepwork/dashboards
Version:
Dashboards for emergencies and monitoring
169 lines • 5.96 kB
JavaScript
import { __decorate } from "tslib";
/**
* @license
* Copyright Akveo. All Rights Reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*/
import { Injectable } from '@angular/core';
import { NbIconPackType } from './icon-pack';
import { NbFontIcon, NbSvgIcon } from './icon';
import * as i0 from "@angular/core";
var NbIconDefinition = /** @class */ (function () {
function NbIconDefinition() {
}
return NbIconDefinition;
}());
export { NbIconDefinition };
function throwPackNotFoundError(name) {
throw Error("Icon Pack '" + name + "' is not registered");
}
function throwNoDefaultPackError() {
throw Error('Default pack is not registered.');
}
function throwIconNotFoundError(name, pack) {
throw Error("Icon '" + name + "' is not registered in pack '" + pack + "'. Check icon name or consider switching icon pack.");
}
function throwWrongPackTypeError(name, type, desiredType) {
throw Error("Pack '" + name + "' is not an '" + desiredType + "' Pack and its type is '" + type + "'");
}
/**
* This service allows to register multiple icon packs to use them later within `<nb-icon></nb-icon>` component.
*/
var NbIconLibraries = /** @class */ (function () {
function NbIconLibraries() {
this.packs = new Map();
}
/**
* Registers new Svg icon pack
* @param {string} name
* @param {NbIcon} icons
* @param {NbIconPackParams} params
*/
NbIconLibraries.prototype.registerSvgPack = function (name, icons, params) {
if (params === void 0) { params = {}; }
this.packs.set(name, {
name: name,
icons: new Map(Object.entries(icons)),
params: params,
type: NbIconPackType.SVG,
});
};
/**
* Registers new font pack
* @param {string} name
* @param {NbIconPackParams} params
*/
NbIconLibraries.prototype.registerFontPack = function (name, params) {
if (params === void 0) { params = {}; }
this.packs.set(name, {
name: name,
params: params,
icons: new Map(),
type: NbIconPackType.FONT,
});
};
/**
* Returns pack by name
* @param {string} name
*/
NbIconLibraries.prototype.getPack = function (name) {
return this.packs.get(name);
};
/**
* Sets pack as a default
* @param {string} name
*/
NbIconLibraries.prototype.setDefaultPack = function (name) {
if (!this.packs.has(name)) {
throwPackNotFoundError(name);
}
this.defaultPack = this.packs.get(name);
};
/**
* Returns Svg icon
* @param {string} name
* @param {string} pack
*
* @returns NbIconDefinition
*/
NbIconLibraries.prototype.getSvgIcon = function (name, pack) {
var iconsPack = pack ? this.getPackOrThrow(pack) : this.getDefaultPackOrThrow();
if (iconsPack.type !== NbIconPackType.SVG) {
throwWrongPackTypeError(iconsPack.name, iconsPack.type, 'SVG');
}
var icon = this.getIconFromPack(name, iconsPack);
return {
name: name,
pack: iconsPack.name,
type: NbIconPackType.SVG,
icon: this.createSvgIcon(name, icon, iconsPack.params),
};
};
/**
* Returns Font icon
* @param {string} name
* @param {string} pack
*
* @returns NbIconDefinition
*/
NbIconLibraries.prototype.getFontIcon = function (name, pack) {
var iconsPack = pack ? this.getPackOrThrow(pack) : this.getDefaultPackOrThrow();
if (iconsPack.type !== NbIconPackType.FONT) {
throwWrongPackTypeError(iconsPack.name, iconsPack.type, 'Font');
}
var icon = this.getIconFromPack(name, iconsPack, false);
return {
name: name,
pack: iconsPack.name,
type: NbIconPackType.FONT,
icon: this.createFontIcon(name, icon ? icon : '', iconsPack.params),
};
};
/**
* Returns an icon
* @param {string} name
* @param {string} pack
*
* @returns NbIconDefinition
*/
NbIconLibraries.prototype.getIcon = function (name, pack) {
var iconsPack = pack ? this.getPackOrThrow(pack) : this.getDefaultPackOrThrow();
if (iconsPack.type === NbIconPackType.SVG) {
return this.getSvgIcon(name, pack);
}
return this.getFontIcon(name, pack);
};
NbIconLibraries.prototype.createSvgIcon = function (name, content, params) {
return content instanceof NbSvgIcon ? content : new NbSvgIcon(name, content, params);
};
NbIconLibraries.prototype.createFontIcon = function (name, content, params) {
return content instanceof NbFontIcon ? content : new NbFontIcon(name, content, params);
};
NbIconLibraries.prototype.getPackOrThrow = function (name) {
var pack = this.packs.get(name);
if (!pack) {
throwPackNotFoundError(name);
}
return pack;
};
NbIconLibraries.prototype.getDefaultPackOrThrow = function () {
if (!this.defaultPack) {
throwNoDefaultPackError();
}
return this.defaultPack;
};
NbIconLibraries.prototype.getIconFromPack = function (name, pack, shouldThrow) {
if (shouldThrow === void 0) { shouldThrow = true; }
if (shouldThrow && !pack.icons.has(name)) {
throwIconNotFoundError(name, pack.name);
}
return pack.icons.get(name);
};
NbIconLibraries.ɵprov = i0.ɵɵdefineInjectable({ factory: function NbIconLibraries_Factory() { return new NbIconLibraries(); }, token: NbIconLibraries, providedIn: "root" });
NbIconLibraries = __decorate([
Injectable({ providedIn: 'root' })
], NbIconLibraries);
return NbIconLibraries;
}());
export { NbIconLibraries };
//# sourceMappingURL=icon-libraries.js.map