@harbor/ui
Version:
Harbor shared UI components based on Clarity and Angular6
68 lines (67 loc) • 6.36 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Injectable } from "@angular/core";
import { TranslateService } from "@ngx-translate/core";
import { DEFAULT_LANG_COOKIE_KEY, DEFAULT_SUPPORTING_LANGS, DEFAULT_LANG } from "../utils";
import { CookieService } from "ngx-cookie";
export class TranslateServiceInitializer {
/**
* @param {?} translateService
* @param {?} cookie
*/
constructor(translateService, cookie) {
this.translateService = translateService;
this.cookie = cookie;
}
/**
* @param {?=} config
* @return {?}
*/
init(config = {}) {
/** @type {?} */
let selectedLang = config.defaultLang
? config.defaultLang
: DEFAULT_LANG;
/** @type {?} */
let supportedLangs = config.supportedLangs
? config.supportedLangs
: DEFAULT_SUPPORTING_LANGS;
this.translateService.addLangs(supportedLangs);
this.translateService.setDefaultLang(selectedLang);
if (config.enablei18Support) {
/** @type {?} */
let langSetting = this.cookie.get(config.langCookieKey ? config.langCookieKey : DEFAULT_LANG_COOKIE_KEY);
if (!langSetting || langSetting.trim() === "") {
// Use browser lang
langSetting = this.translateService
.getBrowserCultureLang()
.toLowerCase();
}
if (langSetting && langSetting.trim() !== "") {
if (supportedLangs && supportedLangs.length > 0) {
if (supportedLangs.find(lang => lang === langSetting)) {
selectedLang = langSetting;
}
}
}
}
this.translateService.use(selectedLang);
}
}
TranslateServiceInitializer.decorators = [
{ type: Injectable }
];
/** @nocollapse */
TranslateServiceInitializer.ctorParameters = () => [
{ type: TranslateService },
{ type: CookieService }
];
if (false) {
/** @type {?} */
TranslateServiceInitializer.prototype.translateService;
/** @type {?} */
TranslateServiceInitializer.prototype.cookie;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWluaXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BoYXJib3IvdWkvIiwic291cmNlcyI6WyJzcmMvaTE4bi90cmFuc2xhdGUtaW5pdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLFlBQVksRUFDYixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRzNDLE1BQU07Ozs7O0lBQ0osWUFDVSxrQkFDQTtRQURBLHFCQUFnQixHQUFoQixnQkFBZ0I7UUFDaEIsV0FBTSxHQUFOLE1BQU07S0FDWjs7Ozs7SUFFRyxJQUFJLENBQUMsU0FBcUIsRUFBRTs7UUFDakMsSUFBSSxZQUFZLEdBQVcsTUFBTSxDQUFDLFdBQVc7WUFDM0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXO1lBQ3BCLENBQUMsQ0FBQyxZQUFZLENBQUM7O1FBQ2pCLElBQUksY0FBYyxHQUFhLE1BQU0sQ0FBQyxjQUFjO1lBQ2xELENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYztZQUN2QixDQUFDLENBQUMsd0JBQXdCLENBQUM7UUFFN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRW5ELElBQUksTUFBTSxDQUFDLGdCQUFnQixFQUFFOztZQUUzQixJQUFJLFdBQVcsR0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FDdkMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQ3RFLENBQUM7WUFDRixJQUFJLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7O2dCQUU3QyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQjtxQkFDaEMscUJBQXFCLEVBQUU7cUJBQ3ZCLFdBQVcsRUFBRSxDQUFDO2FBQ2xCO1lBRUQsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxjQUFjLElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQy9DLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsRUFBRTt3QkFDckQsWUFBWSxHQUFHLFdBQVcsQ0FBQztxQkFDNUI7aUJBQ0Y7YUFDRjtTQUNGO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQzs7OztZQXZDM0MsVUFBVTs7OztZQVJGLGdCQUFnQjtZQU1oQixhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBJMThuQ29uZmlnIH0gZnJvbSBcIi4vaTE4bi1jb25maWdcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9MQU5HX0NPT0tJRV9LRVksXG4gIERFRkFVTFRfU1VQUE9SVElOR19MQU5HUyxcbiAgREVGQVVMVF9MQU5HXG59IGZyb20gXCIuLi91dGlsc1wiO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gXCJuZ3gtY29va2llXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVTZXJ2aWNlSW5pdGlhbGl6ZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb29raWU6IENvb2tpZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBpbml0KGNvbmZpZzogSTE4bkNvbmZpZyA9IHt9KTogdm9pZCB7XG4gICAgbGV0IHNlbGVjdGVkTGFuZzogc3RyaW5nID0gY29uZmlnLmRlZmF1bHRMYW5nXG4gICAgICA/IGNvbmZpZy5kZWZhdWx0TGFuZ1xuICAgICAgOiBERUZBVUxUX0xBTkc7XG4gICAgbGV0IHN1cHBvcnRlZExhbmdzOiBzdHJpbmdbXSA9IGNvbmZpZy5zdXBwb3J0ZWRMYW5nc1xuICAgICAgPyBjb25maWcuc3VwcG9ydGVkTGFuZ3NcbiAgICAgIDogREVGQVVMVF9TVVBQT1JUSU5HX0xBTkdTO1xuXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmFkZExhbmdzKHN1cHBvcnRlZExhbmdzKTtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc2V0RGVmYXVsdExhbmcoc2VsZWN0ZWRMYW5nKTtcblxuICAgIGlmIChjb25maWcuZW5hYmxlaTE4U3VwcG9ydCkge1xuICAgICAgLy8gSWYgdXNlciBoYXMgc2VsZWN0ZWQgbGFuZywgdGhlbiBkaXJlY3RseSB1c2UgaXRcbiAgICAgIGxldCBsYW5nU2V0dGluZzogc3RyaW5nID0gdGhpcy5jb29raWUuZ2V0KFxuICAgICAgICBjb25maWcubGFuZ0Nvb2tpZUtleSA/IGNvbmZpZy5sYW5nQ29va2llS2V5IDogREVGQVVMVF9MQU5HX0NPT0tJRV9LRVlcbiAgICAgICk7XG4gICAgICBpZiAoIWxhbmdTZXR0aW5nIHx8IGxhbmdTZXR0aW5nLnRyaW0oKSA9PT0gXCJcIikge1xuICAgICAgICAvLyBVc2UgYnJvd3NlciBsYW5nXG4gICAgICAgIGxhbmdTZXR0aW5nID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlXG4gICAgICAgICAgLmdldEJyb3dzZXJDdWx0dXJlTGFuZygpXG4gICAgICAgICAgLnRvTG93ZXJDYXNlKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChsYW5nU2V0dGluZyAmJiBsYW5nU2V0dGluZy50cmltKCkgIT09IFwiXCIpIHtcbiAgICAgICAgaWYgKHN1cHBvcnRlZExhbmdzICYmIHN1cHBvcnRlZExhbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBpZiAoc3VwcG9ydGVkTGFuZ3MuZmluZChsYW5nID0+IGxhbmcgPT09IGxhbmdTZXR0aW5nKSkge1xuICAgICAgICAgICAgc2VsZWN0ZWRMYW5nID0gbGFuZ1NldHRpbmc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShzZWxlY3RlZExhbmcpO1xuICB9XG59XG4iXX0=