@hpe/angular-toolkit
Version:
Hewlett-Packard Enterprise : Angular toolkit for rapid project development
134 lines (133 loc) • 12.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
//=============================================================================
//===
//=== (C) Copyright 2018 Hewlett Packard Enterprise Development LP.
//===
//=== Use of this source code is governed by an MIT-style license that can be
//=== found in the LICENSE file
//=============================================================================
import { Injectable } from '@angular/core';
import { HttpService } from "./http-service";
export class LabelService {
/**
* @param {?} httpService
*/
constructor(httpService) {
this.httpService = httpService;
this.languages = ["en", "it"];
this.labelSet = new Map();
this.language = "en";
//--- Load language files
this.languages.forEach((language) => {
this.initLanguage(language);
});
}
/**
* @param {?} language
* @return {?}
*/
setLanguage(language) {
this.language = language;
}
/**
* @param {?} entity
* @param {?} code
* @return {?}
*/
getLabel(entity, code) {
if (code == null) {
return null;
}
let /** @type {?} */ entitySet = this.getMapping(entity);
if (entitySet == null) {
return "?" + entity + "?";
}
let /** @type {?} */ label = entitySet[code];
if (label == null) {
return entity + ".?" + code + "?";
}
return label;
}
/**
* @param {?} entity
* @return {?}
*/
getMapping(entity) {
let /** @type {?} */ labels = this.labelSet.get(this.language);
if (labels != null) {
return labels.get(entity);
}
//--- Probably, we are still loading data
return null;
}
/**
* @param {?} language
* @return {?}
*/
initLanguage(language) {
this.loadLanguageFile(language, LabelService.TOOLKIT_FILE);
this.loadLanguageFile(language, LabelService.APPLICATION_FILE);
}
/**
* @param {?} language
* @param {?} name
* @return {?}
*/
loadLanguageFile(language, name) {
let /** @type {?} */ file = name + "-" + language + ".json";
this.httpService.getObject("asset/lang/" + file)
.subscribe(result => this.processFile(language, file, result), error => console.log("Cannot load labels file : " + file));
}
/**
* @param {?} language
* @param {?} file
* @param {?} data
* @return {?}
*/
processFile(language, file, data) {
console.log("Loaded labels file : " + file);
let /** @type {?} */ labels = this.labelSet.get(language);
if (labels == null) {
labels = new Map();
this.labelSet.set(language, labels);
}
for (let /** @type {?} */ key in data) {
labels.set(key, data[key]);
}
}
}
LabelService.TOOLKIT_FILE = "toolkit";
LabelService.APPLICATION_FILE = "application";
LabelService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
LabelService.ctorParameters = () => [
{ type: HttpService, },
];
function LabelService_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
LabelService.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
LabelService.ctorParameters;
/** @type {?} */
LabelService.TOOLKIT_FILE;
/** @type {?} */
LabelService.APPLICATION_FILE;
/** @type {?} */
LabelService.prototype.labelSet;
/** @type {?} */
LabelService.prototype.language;
/** @type {?} */
LabelService.prototype.languages;
/** @type {?} */
LabelService.prototype.httpService;
}
//=============================================================================
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BocGUvYW5ndWxhci10b29sa2l0L3NlcnZpY2UvIiwic291cmNlcyI6WyJsYWJlbC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFPLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFLM0MsTUFBTTs7OztJQTBCTCxZQUFvQixXQUF5QjtRQUF6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYzt5QkFSZCxDQUFFLElBQUksRUFBRSxJQUFJLENBQUU7UUFVNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDOztRQUlyQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBRSxDQUFDLFFBQWlCLEVBQUUsRUFBRTtZQUM3QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzVCLENBQUMsQ0FBQztLQUNIOzs7OztJQVFNLFdBQVcsQ0FBQyxRQUFpQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQzs7Ozs7OztJQUtuQixRQUFRLENBQUMsTUFBZSxFQUFFLElBQWE7UUFFN0MsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbEIsTUFBTSxDQUFDLElBQUksQ0FBQztTQUNaO1FBRUQscUJBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFeEMsRUFBRSxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdkIsTUFBTSxDQUFDLEdBQUcsR0FBQyxNQUFNLEdBQUMsR0FBRyxDQUFDO1NBQ3RCO1FBRUQscUJBQUksS0FBSyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU1QixFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuQixNQUFNLENBQUMsTUFBTSxHQUFDLElBQUksR0FBRSxJQUFJLEdBQUUsR0FBRyxDQUFDO1NBQzlCO1FBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQzs7Ozs7O0lBS1AsVUFBVSxDQUFDLE1BQWU7UUFFaEMscUJBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5QyxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQjs7UUFHRCxNQUFNLENBQUMsSUFBSSxDQUFDOzs7Ozs7SUFTTCxZQUFZLENBQUMsUUFBaUI7UUFFckMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzs7Ozs7OztJQUt4RCxnQkFBZ0IsQ0FBQyxRQUFpQixFQUFFLElBQWE7UUFFeEQscUJBQUksSUFBSSxHQUFZLElBQUksR0FBRSxHQUFHLEdBQUUsUUFBUSxHQUFFLE9BQU8sQ0FBQztRQUVqRCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUUsSUFBSSxDQUFDO2FBQzFDLFNBQVMsQ0FBRSxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsRUFDM0QsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixHQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7Ozs7Ozs7O0lBSzFELFdBQVcsQ0FBQyxRQUFpQixFQUFFLElBQVcsRUFBRSxJQUFhO1FBRWhFLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEdBQUUsSUFBSSxDQUFDLENBQUM7UUFFM0MscUJBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNwQztRQUVELEdBQUcsQ0FBQyxDQUFDLHFCQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzNCOzs7NEJBbkh5QyxTQUFTO2dDQUNULGFBQWE7O1lBVnhELFVBQVU7Ozs7WUFKSCxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy89PT1cbi8vPT09IChDKSBDb3B5cmlnaHQgMjAxOCBIZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZSBEZXZlbG9wbWVudCBMUC5cbi8vPT09XG4vLz09PSBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuLy89PT0gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZVxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5pbXBvcnQge0luamVjdGFibGV9ICBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtIdHRwU2VydmljZX0gZnJvbSBcIi4vaHR0cC1zZXJ2aWNlXCI7XG5cbi8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExhYmVsU2VydmljZSB7XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vLS0tXG5cdC8vLS0tIFZhcmlhYmxlc1xuXHQvLy0tLVxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwcml2YXRlIHN0YXRpYyBUT09MS0lUX0ZJTEUgICAgIDogc3RyaW5nID0gXCJ0b29sa2l0XCI7XG5cdHByaXZhdGUgc3RhdGljIEFQUExJQ0FUSU9OX0ZJTEUgOiBzdHJpbmcgPSBcImFwcGxpY2F0aW9uXCI7XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0cHJpdmF0ZSBsYWJlbFNldCA6IE1hcDxTdHJpbmcsIE1hcDxzdHJpbmcsIGFueT4+O1xuXHRwcml2YXRlIGxhbmd1YWdlIDogc3RyaW5nO1xuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHByaXZhdGUgbGFuZ3VhZ2VzIDogc3RyaW5nW10gPSBbIFwiZW5cIiwgXCJpdFwiIF07XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdC8vLS0tXG5cdC8vLS0tIENvbnN0cnVjdG9yXG5cdC8vLS0tXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cFNlcnZpY2UgOiBIdHRwU2VydmljZSkge1xuXG5cdFx0dGhpcy5sYWJlbFNldCA9IG5ldyBNYXAoKTtcblx0XHR0aGlzLmxhbmd1YWdlID0gXCJlblwiO1xuXG5cdFx0Ly8tLS0gTG9hZCBsYW5ndWFnZSBmaWxlc1xuXG5cdFx0dGhpcy5sYW5ndWFnZXMuZm9yRWFjaCggKGxhbmd1YWdlIDogc3RyaW5nKSA9PiB7XG5cdFx0XHR0aGlzLmluaXRMYW5ndWFnZShsYW5ndWFnZSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8tLS1cblx0Ly8tLS0gQVBJIG1ldGhvZHNcblx0Ly8tLS1cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0cHVibGljIHNldExhbmd1YWdlKGxhbmd1YWdlIDogc3RyaW5nKSA6IHZvaWQge1xuXHRcdHRoaXMubGFuZ3VhZ2UgPSBsYW5ndWFnZTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHB1YmxpYyBnZXRMYWJlbChlbnRpdHkgOiBzdHJpbmcsIGNvZGUgOiBzdHJpbmcpIDogYW55IHtcblxuXHRcdGlmIChjb2RlID09IG51bGwpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblxuXHRcdGxldCBlbnRpdHlTZXQgPSB0aGlzLmdldE1hcHBpbmcoZW50aXR5KTtcblxuXHRcdGlmIChlbnRpdHlTZXQgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIFwiP1wiK2VudGl0eStcIj9cIjtcblx0XHR9XG5cblx0XHRsZXQgbGFiZWwgPSBlbnRpdHlTZXRbY29kZV07XG5cblx0XHRpZiAobGFiZWwgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIGVudGl0eStcIi4/XCIrIGNvZGUgK1wiP1wiO1xuXHRcdH1cblxuXHRcdHJldHVybiBsYWJlbDtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHB1YmxpYyBnZXRNYXBwaW5nKGVudGl0eSA6IHN0cmluZykgOiBPYmplY3Qge1xuXG5cdFx0bGV0IGxhYmVscyA9IHRoaXMubGFiZWxTZXQuZ2V0KHRoaXMubGFuZ3VhZ2UpO1xuXG5cdFx0aWYgKGxhYmVscyAhPSBudWxsKSB7XG5cdFx0XHRyZXR1cm4gbGFiZWxzLmdldChlbnRpdHkpO1xuXHRcdH1cblxuXHRcdC8vLS0tIFByb2JhYmx5LCB3ZSBhcmUgc3RpbGwgbG9hZGluZyBkYXRhXG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8tLS1cblx0Ly8tLS0gUHJpdmF0ZSBtZXRob2RzXG5cdC8vLS0tXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHByaXZhdGUgaW5pdExhbmd1YWdlKGxhbmd1YWdlIDogc3RyaW5nKSA6IHZvaWQge1xuXG5cdFx0dGhpcy5sb2FkTGFuZ3VhZ2VGaWxlKGxhbmd1YWdlLCBMYWJlbFNlcnZpY2UuVE9PTEtJVF9GSUxFKTtcblx0XHR0aGlzLmxvYWRMYW5ndWFnZUZpbGUobGFuZ3VhZ2UsIExhYmVsU2VydmljZS5BUFBMSUNBVElPTl9GSUxFKTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHByaXZhdGUgbG9hZExhbmd1YWdlRmlsZShsYW5ndWFnZSA6IHN0cmluZywgbmFtZSA6IHN0cmluZykge1xuXG5cdFx0bGV0IGZpbGUgOiBzdHJpbmcgPSBuYW1lICtcIi1cIisgbGFuZ3VhZ2UgK1wiLmpzb25cIjtcblxuXHRcdHRoaXMuaHR0cFNlcnZpY2UuZ2V0T2JqZWN0KFwiYXNzZXQvbGFuZy9cIisgZmlsZSlcblx0XHRcdFx0XHRcdC5zdWJzY3JpYmUoXHRyZXN1bHQgPT4gdGhpcy5wcm9jZXNzRmlsZShsYW5ndWFnZSwgZmlsZSwgcmVzdWx0KSxcblx0XHRcdFx0XHRcdFx0XHRcdGVycm9yID0+IGNvbnNvbGUubG9nKFwiQ2Fubm90IGxvYWQgbGFiZWxzIGZpbGUgOiBcIisgZmlsZSkpO1xuXHR9XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0cHJpdmF0ZSBwcm9jZXNzRmlsZShsYW5ndWFnZSA6IHN0cmluZywgZmlsZTpzdHJpbmcsIGRhdGEgOiBPYmplY3QpIDogdm9pZCB7XG5cblx0XHRjb25zb2xlLmxvZyhcIkxvYWRlZCBsYWJlbHMgZmlsZSA6IFwiKyBmaWxlKTtcblxuXHRcdGxldCBsYWJlbHMgPSB0aGlzLmxhYmVsU2V0LmdldChsYW5ndWFnZSk7XG5cblx0XHRpZiAobGFiZWxzID09IG51bGwpIHtcblx0XHRcdGxhYmVscyA9IG5ldyBNYXAoKTtcblx0XHRcdHRoaXMubGFiZWxTZXQuc2V0KGxhbmd1YWdlLCBsYWJlbHMpO1xuXHRcdH1cblxuXHRcdGZvciAobGV0IGtleSBpbiBkYXRhKSB7XG5cdFx0XHRsYWJlbHMuc2V0KGtleSwgZGF0YVtrZXldKTtcblx0XHR9XG5cdH1cbn1cblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIl19