@hpe/angular-toolkit
Version:
Hewlett-Packard Enterprise : Angular toolkit for rapid project development
168 lines (167 loc) • 13.8 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";
var LabelService = /** @class */ (function () {
//-------------------------------------------------------------------------
//---
//--- Constructor
//---
//-------------------------------------------------------------------------
function LabelService(httpService) {
var _this = this;
this.httpService = httpService;
this.languages = ["en", "it"];
this.labelSet = new Map();
this.language = "en";
//--- Load language files
this.languages.forEach(function (language) {
_this.initLanguage(language);
});
}
/**
* @param {?} language
* @return {?}
*/
LabelService.prototype.setLanguage = /**
* @param {?} language
* @return {?}
*/
function (language) {
this.language = language;
};
/**
* @param {?} entity
* @param {?} code
* @return {?}
*/
LabelService.prototype.getLabel = /**
* @param {?} entity
* @param {?} code
* @return {?}
*/
function (entity, code) {
if (code == null) {
return null;
}
var /** @type {?} */ entitySet = this.getMapping(entity);
if (entitySet == null) {
return "?" + entity + "?";
}
var /** @type {?} */ label = entitySet[code];
if (label == null) {
return entity + ".?" + code + "?";
}
return label;
};
/**
* @param {?} entity
* @return {?}
*/
LabelService.prototype.getMapping = /**
* @param {?} entity
* @return {?}
*/
function (entity) {
var /** @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 {?}
*/
LabelService.prototype.initLanguage = /**
* @param {?} language
* @return {?}
*/
function (language) {
this.loadLanguageFile(language, LabelService.TOOLKIT_FILE);
this.loadLanguageFile(language, LabelService.APPLICATION_FILE);
};
/**
* @param {?} language
* @param {?} name
* @return {?}
*/
LabelService.prototype.loadLanguageFile = /**
* @param {?} language
* @param {?} name
* @return {?}
*/
function (language, name) {
var _this = this;
var /** @type {?} */ file = name + "-" + language + ".json";
this.httpService.getObject("asset/lang/" + file)
.subscribe(function (result) { return _this.processFile(language, file, result); }, function (error) { return console.log("Cannot load labels file : " + file); });
};
/**
* @param {?} language
* @param {?} file
* @param {?} data
* @return {?}
*/
LabelService.prototype.processFile = /**
* @param {?} language
* @param {?} file
* @param {?} data
* @return {?}
*/
function (language, file, data) {
console.log("Loaded labels file : " + file);
var /** @type {?} */ labels = this.labelSet.get(language);
if (labels == null) {
labels = new Map();
this.labelSet.set(language, labels);
}
for (var /** @type {?} */ key in data) {
labels.set(key, data[key]);
}
};
LabelService.TOOLKIT_FILE = "toolkit";
LabelService.APPLICATION_FILE = "application";
LabelService.decorators = [
{ type: Injectable },
];
/** @nocollapse */
LabelService.ctorParameters = function () { return [
{ type: HttpService, },
]; };
return LabelService;
}());
export { LabelService };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BocGUvYW5ndWxhci10b29sa2l0L3NlcnZpY2UvIiwic291cmNlcyI6WyJsYWJlbC1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBUUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFPLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0lBeUIxQywyRUFBMkU7SUFDM0UsS0FBSztJQUNMLGlCQUFpQjtJQUNqQixLQUFLO0lBQ0wsMkVBQTJFO0lBRTNFLHNCQUFvQixXQUF5QjtRQUE3QyxpQkFVQztRQVZtQixnQkFBVyxHQUFYLFdBQVcsQ0FBYzt5QkFSZCxDQUFFLElBQUksRUFBRSxJQUFJLENBQUU7UUFVNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDOztRQUlyQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBRSxVQUFDLFFBQWlCO1lBQ3pDLEtBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDNUIsQ0FBQyxDQUFDO0tBQ0g7Ozs7O0lBUU0sa0NBQVc7Ozs7Y0FBQyxRQUFpQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQzs7Ozs7OztJQUtuQiwrQkFBUTs7Ozs7Y0FBQyxNQUFlLEVBQUUsSUFBYTtRQUU3QyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsQixNQUFNLENBQUMsSUFBSSxDQUFDO1NBQ1o7UUFFRCxxQkFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV4QyxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN2QixNQUFNLENBQUMsR0FBRyxHQUFDLE1BQU0sR0FBQyxHQUFHLENBQUM7U0FDdEI7UUFFRCxxQkFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVCLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ25CLE1BQU0sQ0FBQyxNQUFNLEdBQUMsSUFBSSxHQUFFLElBQUksR0FBRSxHQUFHLENBQUM7U0FDOUI7UUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDOzs7Ozs7SUFLUCxpQ0FBVTs7OztjQUFDLE1BQWU7UUFFaEMscUJBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5QyxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQjs7UUFHRCxNQUFNLENBQUMsSUFBSSxDQUFDOzs7Ozs7SUFTTCxtQ0FBWTs7OztjQUFDLFFBQWlCO1FBRXJDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Ozs7Ozs7SUFLeEQsdUNBQWdCOzs7OztjQUFDLFFBQWlCLEVBQUUsSUFBYTs7UUFFeEQscUJBQUksSUFBSSxHQUFZLElBQUksR0FBRSxHQUFHLEdBQUUsUUFBUSxHQUFFLE9BQU8sQ0FBQztRQUVqRCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUUsSUFBSSxDQUFDO2FBQzFDLFNBQVMsQ0FBRSxVQUFBLE1BQU0sSUFBSSxPQUFBLEtBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsRUFBeEMsQ0FBd0MsRUFDM0QsVUFBQSxLQUFLLElBQUksT0FBQSxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixHQUFFLElBQUksQ0FBQyxFQUEvQyxDQUErQyxDQUFDLENBQUM7Ozs7Ozs7O0lBSzFELGtDQUFXOzs7Ozs7Y0FBQyxRQUFpQixFQUFFLElBQVcsRUFBRSxJQUFhO1FBRWhFLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEdBQUUsSUFBSSxDQUFDLENBQUM7UUFFM0MscUJBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNwQztRQUVELEdBQUcsQ0FBQyxDQUFDLHFCQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzNCOztnQ0FuSHlDLFNBQVM7b0NBQ1QsYUFBYTs7Z0JBVnhELFVBQVU7Ozs7Z0JBSkgsV0FBVzs7dUJBVm5COztTQWVhLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLz09PVxuLy89PT0gKEMpIENvcHlyaWdodCAyMDE4IEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQLlxuLy89PT1cbi8vPT09IFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4vLz09PSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmltcG9ydCB7SW5qZWN0YWJsZX0gIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0h0dHBTZXJ2aWNlfSBmcm9tIFwiLi9odHRwLXNlcnZpY2VcIjtcblxuLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTGFiZWxTZXJ2aWNlIHtcblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8tLS1cblx0Ly8tLS0gVmFyaWFibGVzXG5cdC8vLS0tXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHByaXZhdGUgc3RhdGljIFRPT0xLSVRfRklMRSAgICAgOiBzdHJpbmcgPSBcInRvb2xraXRcIjtcblx0cHJpdmF0ZSBzdGF0aWMgQVBQTElDQVRJT05fRklMRSA6IHN0cmluZyA9IFwiYXBwbGljYXRpb25cIjtcblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwcml2YXRlIGxhYmVsU2V0IDogTWFwPFN0cmluZywgTWFwPHN0cmluZywgYW55Pj47XG5cdHByaXZhdGUgbGFuZ3VhZ2UgOiBzdHJpbmc7XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0cHJpdmF0ZSBsYW5ndWFnZXMgOiBzdHJpbmdbXSA9IFsgXCJlblwiLCBcIml0XCIgXTtcblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8tLS1cblx0Ly8tLS0gQ29uc3RydWN0b3Jcblx0Ly8tLS1cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZSA6IEh0dHBTZXJ2aWNlKSB7XG5cblx0XHR0aGlzLmxhYmVsU2V0ID0gbmV3IE1hcCgpO1xuXHRcdHRoaXMubGFuZ3VhZ2UgPSBcImVuXCI7XG5cblx0XHQvLy0tLSBMb2FkIGxhbmd1YWdlIGZpbGVzXG5cblx0XHR0aGlzLmxhbmd1YWdlcy5mb3JFYWNoKCAobGFuZ3VhZ2UgOiBzdHJpbmcpID0+IHtcblx0XHRcdHRoaXMuaW5pdExhbmd1YWdlKGxhbmd1YWdlKTtcblx0XHR9KTtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLy0tLVxuXHQvLy0tLSBBUEkgbWV0aG9kc1xuXHQvLy0tLVxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwdWJsaWMgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UgOiBzdHJpbmcpIDogdm9pZCB7XG5cdFx0dGhpcy5sYW5ndWFnZSA9IGxhbmd1YWdlO1xuXHR9XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0cHVibGljIGdldExhYmVsKGVudGl0eSA6IHN0cmluZywgY29kZSA6IHN0cmluZykgOiBhbnkge1xuXG5cdFx0aWYgKGNvZGUgPT0gbnVsbCkge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXG5cdFx0bGV0IGVudGl0eVNldCA9IHRoaXMuZ2V0TWFwcGluZyhlbnRpdHkpO1xuXG5cdFx0aWYgKGVudGl0eVNldCA9PSBudWxsKSB7XG5cdFx0XHRyZXR1cm4gXCI/XCIrZW50aXR5K1wiP1wiO1xuXHRcdH1cblxuXHRcdGxldCBsYWJlbCA9IGVudGl0eVNldFtjb2RlXTtcblxuXHRcdGlmIChsYWJlbCA9PSBudWxsKSB7XG5cdFx0XHRyZXR1cm4gZW50aXR5K1wiLj9cIisgY29kZSArXCI/XCI7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGxhYmVsO1xuXHR9XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0cHVibGljIGdldE1hcHBpbmcoZW50aXR5IDogc3RyaW5nKSA6IE9iamVjdCB7XG5cblx0XHRsZXQgbGFiZWxzID0gdGhpcy5sYWJlbFNldC5nZXQodGhpcy5sYW5ndWFnZSk7XG5cblx0XHRpZiAobGFiZWxzICE9IG51bGwpIHtcblx0XHRcdHJldHVybiBsYWJlbHMuZ2V0KGVudGl0eSk7XG5cdFx0fVxuXG5cdFx0Ly8tLS0gUHJvYmFibHksIHdlIGFyZSBzdGlsbCBsb2FkaW5nIGRhdGFcblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLy0tLVxuXHQvLy0tLSBQcml2YXRlIG1ldGhvZHNcblx0Ly8tLS1cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0cHJpdmF0ZSBpbml0TGFuZ3VhZ2UobGFuZ3VhZ2UgOiBzdHJpbmcpIDogdm9pZCB7XG5cblx0XHR0aGlzLmxvYWRMYW5ndWFnZUZpbGUobGFuZ3VhZ2UsIExhYmVsU2VydmljZS5UT09MS0lUX0ZJTEUpO1xuXHRcdHRoaXMubG9hZExhbmd1YWdlRmlsZShsYW5ndWFnZSwgTGFiZWxTZXJ2aWNlLkFQUExJQ0FUSU9OX0ZJTEUpO1xuXHR9XG5cblx0Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0cHJpdmF0ZSBsb2FkTGFuZ3VhZ2VGaWxlKGxhbmd1YWdlIDogc3RyaW5nLCBuYW1lIDogc3RyaW5nKSB7XG5cblx0XHRsZXQgZmlsZSA6IHN0cmluZyA9IG5hbWUgK1wiLVwiKyBsYW5ndWFnZSArXCIuanNvblwiO1xuXG5cdFx0dGhpcy5odHRwU2VydmljZS5nZXRPYmplY3QoXCJhc3NldC9sYW5nL1wiKyBmaWxlKVxuXHRcdFx0XHRcdFx0LnN1YnNjcmliZShcdHJlc3VsdCA9PiB0aGlzLnByb2Nlc3NGaWxlKGxhbmd1YWdlLCBmaWxlLCByZXN1bHQpLFxuXHRcdFx0XHRcdFx0XHRcdFx0ZXJyb3IgPT4gY29uc29sZS5sb2coXCJDYW5ub3QgbG9hZCBsYWJlbHMgZmlsZSA6IFwiKyBmaWxlKSk7XG5cdH1cblxuXHQvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwcml2YXRlIHByb2Nlc3NGaWxlKGxhbmd1YWdlIDogc3RyaW5nLCBmaWxlOnN0cmluZywgZGF0YSA6IE9iamVjdCkgOiB2b2lkIHtcblxuXHRcdGNvbnNvbGUubG9nKFwiTG9hZGVkIGxhYmVscyBmaWxlIDogXCIrIGZpbGUpO1xuXG5cdFx0bGV0IGxhYmVscyA9IHRoaXMubGFiZWxTZXQuZ2V0KGxhbmd1YWdlKTtcblxuXHRcdGlmIChsYWJlbHMgPT0gbnVsbCkge1xuXHRcdFx0bGFiZWxzID0gbmV3IE1hcCgpO1xuXHRcdFx0dGhpcy5sYWJlbFNldC5zZXQobGFuZ3VhZ2UsIGxhYmVscyk7XG5cdFx0fVxuXG5cdFx0Zm9yIChsZXQga2V5IGluIGRhdGEpIHtcblx0XHRcdGxhYmVscy5zZXQoa2V5LCBkYXRhW2tleV0pO1xuXHRcdH1cblx0fVxufVxuXG4vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iXX0=