UNPKG

ng-jhipster

Version:

A Jhipster util library for Angular 2

1,125 lines (1,043 loc) 459 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("@angular/core"), require("@angular/forms"), require("rxjs/Observable"), require("@angular/common"), require("@angular/common/http"), require("rxjs/add/observable/of"), require("rxjs/add/operator/concat"), require("rxjs/add/operator/filter"), require("rxjs/add/operator/map"), require("rxjs/add/operator/merge"), require("rxjs/add/operator/share"), require("rxjs/add/operator/switchMap"), require("rxjs/add/operator/take"), require("rxjs/add/operator/toArray")); else if(typeof define === 'function' && define.amd) define(["@angular/core", "@angular/forms", "rxjs/Observable", "@angular/common", "@angular/common/http", "rxjs/add/observable/of", "rxjs/add/operator/concat", "rxjs/add/operator/filter", "rxjs/add/operator/map", "rxjs/add/operator/merge", "rxjs/add/operator/share", "rxjs/add/operator/switchMap", "rxjs/add/operator/take", "rxjs/add/operator/toArray"], factory); else if(typeof exports === 'object') exports["ng-jhipster"] = factory(require("@angular/core"), require("@angular/forms"), require("rxjs/Observable"), require("@angular/common"), require("@angular/common/http"), require("rxjs/add/observable/of"), require("rxjs/add/operator/concat"), require("rxjs/add/operator/filter"), require("rxjs/add/operator/map"), require("rxjs/add/operator/merge"), require("rxjs/add/operator/share"), require("rxjs/add/operator/switchMap"), require("rxjs/add/operator/take"), require("rxjs/add/operator/toArray")); else root["ng-jhipster"] = factory(root["@angular/core"], root["@angular/forms"], root["rxjs/Observable"], root["@angular/common"], root["@angular/common/http"], root["rxjs/add/observable/of"], root["rxjs/add/operator/concat"], root["rxjs/add/operator/filter"], root["rxjs/add/operator/map"], root["rxjs/add/operator/merge"], root["rxjs/add/operator/share"], root["rxjs/add/operator/switchMap"], root["rxjs/add/operator/take"], root["rxjs/add/operator/toArray"]); })(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_4__, __WEBPACK_EXTERNAL_MODULE_12__, __WEBPACK_EXTERNAL_MODULE_24__, __WEBPACK_EXTERNAL_MODULE_54__, __WEBPACK_EXTERNAL_MODULE_55__, __WEBPACK_EXTERNAL_MODULE_56__, __WEBPACK_EXTERNAL_MODULE_57__, __WEBPACK_EXTERNAL_MODULE_58__, __WEBPACK_EXTERNAL_MODULE_59__, __WEBPACK_EXTERNAL_MODULE_60__, __WEBPACK_EXTERNAL_MODULE_61__, __WEBPACK_EXTERNAL_MODULE_62__, __WEBPACK_EXTERNAL_MODULE_63__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // identity function for calling harmony imports with the correct context /******/ __webpack_require__.i = function(value) { return value; }; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = "/"; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 28); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_0__; /***/ }), /* 1 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return JhiConfigService; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__angular_core__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__config__ = __webpack_require__(10); var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; /* Copyright 2013-2017 the original author or authors from the JHipster project. This file is part of the JHipster project, see https://jhipster.github.io/ for more information. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ var JhiConfigService = (function () { function JhiConfigService(moduleConfig) { this.CONFIG_OPTIONS = __assign({}, new __WEBPACK_IMPORTED_MODULE_1__config__["a" /* JhiModuleConfig */](), moduleConfig); } JhiConfigService.prototype.getConfig = function () { return this.CONFIG_OPTIONS; }; JhiConfigService = __decorate([ __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__["Injectable"])(), __metadata("design:paramtypes", [__WEBPACK_IMPORTED_MODULE_1__config__["a" /* JhiModuleConfig */]]) ], JhiConfigService); return JhiConfigService; }()); /***/ }), /* 2 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return USE_STORE; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return USE_DEFAULT_LANG; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TranslateService; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__angular_core__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__ = __webpack_require__(12); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_add_observable_of__ = __webpack_require__(55); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_rxjs_add_observable_of___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_rxjs_add_observable_of__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_add_operator_concat__ = __webpack_require__(56); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_rxjs_add_operator_concat___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_rxjs_add_operator_concat__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_share__ = __webpack_require__(60); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_share___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_rxjs_add_operator_share__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rxjs_add_operator_map__ = __webpack_require__(58); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_rxjs_add_operator_map___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_rxjs_add_operator_map__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rxjs_add_operator_merge__ = __webpack_require__(59); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_rxjs_add_operator_merge___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_rxjs_add_operator_merge__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_rxjs_add_operator_switchMap__ = __webpack_require__(61); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_rxjs_add_operator_switchMap___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_rxjs_add_operator_switchMap__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_rxjs_add_operator_toArray__ = __webpack_require__(63); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_rxjs_add_operator_toArray___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_rxjs_add_operator_toArray__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_rxjs_add_operator_take__ = __webpack_require__(62); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_rxjs_add_operator_take___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_rxjs_add_operator_take__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__translate_store__ = __webpack_require__(15); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__translate_loader__ = __webpack_require__(8); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__translate_compiler__ = __webpack_require__(7); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__missing_translation_handler__ = __webpack_require__(6); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__translate_parser__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__util__ = __webpack_require__(3); var USE_STORE = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["InjectionToken"]('USE_STORE'); var USE_DEFAULT_LANG = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["InjectionToken"]('USE_DEFAULT_LANG'); var TranslateService = (function () { /** * * @param store an instance of the store (that is supposed to be unique) * @param currentLoader An instance of the loader currently used * @param compiler An instance of the compiler currently used * @param parser An instance of the parser currently used * @param missingTranslationHandler A handler for missing translations. * @param isolate whether this service should use the store or not * @param useDefaultLang whether we should use default language translation when current language translation is missing. */ function TranslateService(store, currentLoader, compiler, parser, missingTranslationHandler, useDefaultLang, isolate) { if (useDefaultLang === void 0) { useDefaultLang = true; } if (isolate === void 0) { isolate = false; } this.store = store; this.currentLoader = currentLoader; this.compiler = compiler; this.parser = parser; this.missingTranslationHandler = missingTranslationHandler; this.useDefaultLang = useDefaultLang; this.isolate = isolate; this.pending = false; this._onTranslationChange = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["EventEmitter"](); this._onLangChange = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["EventEmitter"](); this._onDefaultLangChange = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["EventEmitter"](); this._langs = []; this._translations = {}; this._translationRequests = {}; } Object.defineProperty(TranslateService.prototype, "onTranslationChange", { /** * An EventEmitter to listen to translation change events * onTranslationChange.subscribe((params: TranslationChangeEvent) => { * // do something * }); * @type {EventEmitter<TranslationChangeEvent>} */ get: function () { return this.isolate ? this._onTranslationChange : this.store.onTranslationChange; }, enumerable: true, configurable: true }); Object.defineProperty(TranslateService.prototype, "onLangChange", { /** * An EventEmitter to listen to lang change events * onLangChange.subscribe((params: LangChangeEvent) => { * // do something * }); * @type {EventEmitter<LangChangeEvent>} */ get: function () { return this.isolate ? this._onLangChange : this.store.onLangChange; }, enumerable: true, configurable: true }); Object.defineProperty(TranslateService.prototype, "onDefaultLangChange", { /** * An EventEmitter to listen to default lang change events * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => { * // do something * }); * @type {EventEmitter<DefaultLangChangeEvent>} */ get: function () { return this.isolate ? this._onDefaultLangChange : this.store.onDefaultLangChange; }, enumerable: true, configurable: true }); Object.defineProperty(TranslateService.prototype, "defaultLang", { /** * The default lang to fallback when translations are missing on the current lang */ get: function () { return this.isolate ? this._defaultLang : this.store.defaultLang; }, set: function (defaultLang) { if (this.isolate) { this._defaultLang = defaultLang; } else { this.store.defaultLang = defaultLang; } }, enumerable: true, configurable: true }); Object.defineProperty(TranslateService.prototype, "currentLang", { /** * The lang currently used * @type {string} */ get: function () { return this.isolate ? this._currentLang : this.store.currentLang; }, set: function (currentLang) { if (this.isolate) { this._currentLang = currentLang; } else { this.store.currentLang = currentLang; } }, enumerable: true, configurable: true }); Object.defineProperty(TranslateService.prototype, "langs", { /** * an array of langs * @type {Array} */ get: function () { return this.isolate ? this._langs : this.store.langs; }, set: function (langs) { if (this.isolate) { this._langs = langs; } else { this.store.langs = langs; } }, enumerable: true, configurable: true }); Object.defineProperty(TranslateService.prototype, "translations", { /** * a list of translations per lang * @type {{}} */ get: function () { return this.isolate ? this._translations : this.store.translations; }, set: function (translations) { if (this.isolate) { this._currentLang = translations; } else { this.store.translations = translations; } }, enumerable: true, configurable: true }); /** * Sets the default language to use as a fallback * @param lang */ TranslateService.prototype.setDefaultLang = function (lang) { var _this = this; if (lang === this.defaultLang) { return; } var pending = this.retrieveTranslations(lang); if (typeof pending !== "undefined") { // on init set the defaultLang immediately if (!this.defaultLang) { this.defaultLang = lang; } pending.take(1) .subscribe(function (res) { _this.changeDefaultLang(lang); }); } else { this.changeDefaultLang(lang); } }; /** * Gets the default language used * @returns string */ TranslateService.prototype.getDefaultLang = function () { return this.defaultLang; }; /** * Changes the lang currently used * @param lang * @returns {Observable<*>} */ TranslateService.prototype.use = function (lang) { var _this = this; // don't change the language if the language given is already selected if (lang === this.currentLang) { return __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__["Observable"].of(this.translations[lang]); } var pending = this.retrieveTranslations(lang); if (typeof pending !== "undefined") { // on init set the currentLang immediately if (!this.currentLang) { this.currentLang = lang; } pending.take(1) .subscribe(function (res) { _this.changeLang(lang); }); return pending; } else { this.changeLang(lang); return __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__["Observable"].of(this.translations[lang]); } }; /** * Retrieves the given translations * @param lang * @returns {Observable<*>} */ TranslateService.prototype.retrieveTranslations = function (lang) { var pending; // if this language is unavailable, ask for it if (typeof this.translations[lang] === "undefined") { this._translationRequests[lang] = this._translationRequests[lang] || this.getTranslation(lang); pending = this._translationRequests[lang]; } return pending; }; /** * Gets an object of translations for a given language with the current loader * and passes it through the compiler * @param lang * @returns {Observable<*>} */ TranslateService.prototype.getTranslation = function (lang) { var _this = this; this.pending = true; this.loadingTranslations = this.currentLoader.getTranslation(lang).share(); this.loadingTranslations.take(1) .subscribe(function (res) { _this.translations[lang] = _this.compiler.compileTranslations(res, lang); _this.updateLangs(); _this.pending = false; }, function (err) { _this.pending = false; }); return this.loadingTranslations; }; /** * Manually sets an object of translations for a given language * after passing it through the compiler * @param lang * @param translations * @param shouldMerge */ TranslateService.prototype.setTranslation = function (lang, translations, shouldMerge) { if (shouldMerge === void 0) { shouldMerge = false; } translations = this.compiler.compileTranslations(translations, lang); if (shouldMerge && this.translations[lang]) { this.translations[lang] = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util__["c" /* mergeDeep */])(this.translations[lang], translations); } else { this.translations[lang] = translations; } this.updateLangs(); this.onTranslationChange.emit({ lang: lang, translations: this.translations[lang] }); }; /** * Returns an array of currently available langs * @returns {any} */ TranslateService.prototype.getLangs = function () { return this.langs; }; /** * @param langs * Add available langs */ TranslateService.prototype.addLangs = function (langs) { var _this = this; langs.forEach(function (lang) { if (_this.langs.indexOf(lang) === -1) { _this.langs.push(lang); } }); }; /** * Update the list of available langs */ TranslateService.prototype.updateLangs = function () { this.addLangs(Object.keys(this.translations)); }; /** * Returns the parsed result of the translations * @param translations * @param key * @param interpolateParams * @returns {any} */ TranslateService.prototype.getParsedResult = function (translations, key, interpolateParams) { var res; if (key instanceof Array) { var result = {}, observables = false; for (var _i = 0, key_1 = key; _i < key_1.length; _i++) { var k = key_1[_i]; result[k] = this.getParsedResult(translations, k, interpolateParams); if (typeof result[k].subscribe === "function") { observables = true; } } if (observables) { var mergedObs = void 0; for (var _a = 0, key_2 = key; _a < key_2.length; _a++) { var k = key_2[_a]; var obs = typeof result[k].subscribe === "function" ? result[k] : __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__["Observable"].of(result[k]); if (typeof mergedObs === "undefined") { mergedObs = obs; } else { mergedObs = mergedObs.merge(obs); } } return mergedObs.toArray().map(function (arr) { var obj = {}; arr.forEach(function (value, index) { obj[key[index]] = value; }); return obj; }); } return result; } if (translations) { res = this.parser.interpolate(this.parser.getValue(translations, key), interpolateParams); } if (typeof res === "undefined" && this.defaultLang && this.defaultLang !== this.currentLang && this.useDefaultLang) { res = this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang], key), interpolateParams); } if (typeof res === "undefined") { var params = { key: key, translateService: this }; if (typeof interpolateParams !== 'undefined') { params.interpolateParams = interpolateParams; } res = this.missingTranslationHandler.handle(params); } return typeof res !== "undefined" ? res : key; }; /** * Gets the translated value of a key (or an array of keys) * @param key * @param interpolateParams * @returns {any} the translated key, or an object of translated keys */ TranslateService.prototype.get = function (key, interpolateParams) { var _this = this; if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util__["b" /* isDefined */])(key) || !key.length) { throw new Error("Parameter \"key\" required"); } // check if we are loading a new translation to use if (this.pending) { return __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__["Observable"].create(function (observer) { var onComplete = function (res) { observer.next(res); observer.complete(); }; var onError = function (err) { observer.error(err); }; _this.loadingTranslations.subscribe(function (res) { res = _this.getParsedResult(res, key, interpolateParams); if (typeof res.subscribe === "function") { res.subscribe(onComplete, onError); } else { onComplete(res); } }, onError); }); } else { var res = this.getParsedResult(this.translations[this.currentLang], key, interpolateParams); if (typeof res.subscribe === "function") { return res; } else { return __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__["Observable"].of(res); } } }; /** * Returns a stream of translated values of a key (or an array of keys) which updates * whenever the language changes. * @param key * @param interpolateParams * @returns {any} A stream of the translated key, or an object of translated keys */ TranslateService.prototype.stream = function (key, interpolateParams) { var _this = this; if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util__["b" /* isDefined */])(key) || !key.length) { throw new Error("Parameter \"key\" required"); } return this .get(key, interpolateParams) .concat(this.onLangChange.switchMap(function (event) { var res = _this.getParsedResult(event.translations, key, interpolateParams); if (typeof res.subscribe === "function") { return res; } else { return __WEBPACK_IMPORTED_MODULE_1_rxjs_Observable__["Observable"].of(res); } })); }; /** * Returns a translation instantly from the internal state of loaded translation. * All rules regarding the current language, the preferred language of even fallback languages will be used except any promise handling. * @param key * @param interpolateParams * @returns {string} */ TranslateService.prototype.instant = function (key, interpolateParams) { if (!__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_15__util__["b" /* isDefined */])(key) || !key.length) { throw new Error("Parameter \"key\" required"); } var res = this.getParsedResult(this.translations[this.currentLang], key, interpolateParams); if (typeof res.subscribe !== "undefined") { if (key instanceof Array) { var obj_1 = {}; key.forEach(function (value, index) { obj_1[key[index]] = key[index]; }); return obj_1; } return key; } else { return res; } }; /** * Sets the translated value of a key, after compiling it * @param key * @param value * @param lang */ TranslateService.prototype.set = function (key, value, lang) { if (lang === void 0) { lang = this.currentLang; } this.translations[lang][key] = this.compiler.compile(value, lang); this.updateLangs(); this.onTranslationChange.emit({ lang: lang, translations: this.translations[lang] }); }; /** * Changes the current lang * @param lang */ TranslateService.prototype.changeLang = function (lang) { this.currentLang = lang; this.onLangChange.emit({ lang: lang, translations: this.translations[lang] }); // if there is no default lang, use the one that we just set if (!this.defaultLang) { this.changeDefaultLang(lang); } }; /** * Changes the default lang * @param lang */ TranslateService.prototype.changeDefaultLang = function (lang) { this.defaultLang = lang; this.onDefaultLangChange.emit({ lang: lang, translations: this.translations[lang] }); }; /** * Allows to reload the lang file from the file * @param lang * @returns {Observable<any>} */ TranslateService.prototype.reloadLang = function (lang) { this.resetLang(lang); return this.getTranslation(lang); }; /** * Deletes inner translation * @param lang */ TranslateService.prototype.resetLang = function (lang) { this._translationRequests[lang] = undefined; this.translations[lang] = undefined; }; /** * Returns the language code name from the browser, e.g. "de" * * @returns string */ TranslateService.prototype.getBrowserLang = function () { if (typeof window === 'undefined' || typeof window.navigator === 'undefined') { return undefined; } var browserLang = window.navigator.languages ? window.navigator.languages[0] : null; browserLang = browserLang || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage; if (browserLang.indexOf('-') !== -1) { browserLang = browserLang.split('-')[0]; } if (browserLang.indexOf('_') !== -1) { browserLang = browserLang.split('_')[0]; } return browserLang; }; /** * Returns the culture language code name from the browser, e.g. "de-DE" * * @returns string */ TranslateService.prototype.getBrowserCultureLang = function () { if (typeof window === 'undefined' || typeof window.navigator === 'undefined') { return undefined; } var browserCultureLang = window.navigator.languages ? window.navigator.languages[0] : null; browserCultureLang = browserCultureLang || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage; return browserCultureLang; }; return TranslateService; }()); TranslateService.decorators = [ { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injectable"] }, ]; /** @nocollapse */ TranslateService.ctorParameters = function () { return [ { type: __WEBPACK_IMPORTED_MODULE_10__translate_store__["a" /* TranslateStore */], }, { type: __WEBPACK_IMPORTED_MODULE_11__translate_loader__["a" /* TranslateLoader */], }, { type: __WEBPACK_IMPORTED_MODULE_12__translate_compiler__["a" /* TranslateCompiler */], }, { type: __WEBPACK_IMPORTED_MODULE_14__translate_parser__["a" /* TranslateParser */], }, { type: __WEBPACK_IMPORTED_MODULE_13__missing_translation_handler__["a" /* MissingTranslationHandler */], }, { type: undefined, decorators: [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Inject"], args: [USE_DEFAULT_LANG,] },] }, { type: undefined, decorators: [{ type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Inject"], args: [USE_STORE,] },] }, ]; }; /***/ }), /* 3 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (immutable) */ __webpack_exports__["a"] = equals; /* harmony export (immutable) */ __webpack_exports__["b"] = isDefined; /* unused harmony export isObject */ /* harmony export (immutable) */ __webpack_exports__["c"] = mergeDeep; /* tslint:disable */ /** * @name equals * * @description * Determines if two objects or two values are equivalent. * * Two objects or values are considered equivalent if at least one of the following is true: * * * Both objects or values pass `===` comparison. * * Both objects or values are of the same type and all of their properties are equal by * comparing them with `equals`. * * @param {*} o1 Object or value to compare. * @param {*} o2 Object or value to compare. * @returns {boolean} True if arguments are equal. */ /* tslint:disable */ function equals(o1, o2) { if (o1 === o2) return true; if (o1 === null || o2 === null) return false; if (o1 !== o1 && o2 !== o2) return true; // NaN === NaN var t1 = typeof o1, t2 = typeof o2, length, key, keySet; if (t1 == t2 && t1 == 'object') { if (Array.isArray(o1)) { if (!Array.isArray(o2)) return false; if ((length = o1.length) == o2.length) { for (key = 0; key < length; key++) { if (!equals(o1[key], o2[key])) return false; } return true; } } else { if (Array.isArray(o2)) { return false; } keySet = Object.create(null); for (key in o1) { if (!equals(o1[key], o2[key])) { return false; } keySet[key] = true; } for (key in o2) { if (!(key in keySet) && typeof o2[key] !== 'undefined') { return false; } } return true; } } return false; } /* tslint:enable */ function isDefined(value) { return typeof value !== 'undefined' && value !== null; } function isObject(item) { return (item && typeof item === 'object' && !Array.isArray(item)); } function mergeDeep(target, source) { target = JSON.parse(JSON.stringify(target)); source = JSON.parse(JSON.stringify(source)); var output = Object.assign({}, target); if (isObject(target) && isObject(source)) { Object.keys(source).forEach(function (key) { if (isObject(source[key])) { if (!(key in target)) { Object.assign(output, (_a = {}, _a[key] = source[key], _a)); } else { output[key] = mergeDeep(target[key], source[key]); } } else { Object.assign(output, (_b = {}, _b[key] = source[key], _b)); } var _a, _b; }); } return output; } /***/ }), /* 4 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_4__; /***/ }), /* 5 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return TranslateModule; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__angular_core__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_translate_loader__ = __webpack_require__(8); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__src_translate_service__ = __webpack_require__(2); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__src_missing_translation_handler__ = __webpack_require__(6); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__src_translate_parser__ = __webpack_require__(9); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__src_translate_compiler__ = __webpack_require__(7); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__src_translate_directive__ = __webpack_require__(13); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__src_translate_pipe__ = __webpack_require__(14); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__src_translate_store__ = __webpack_require__(15); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_1__src_translate_loader__["a"]; }); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_2__src_translate_service__["a"]; }); /* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_3__src_missing_translation_handler__["a"]; }); /* unused harmony namespace reexport */ /* unused harmony namespace reexport */ /* unused harmony namespace reexport */ /* unused harmony namespace reexport */ var TranslateModule = (function () { function TranslateModule() { } /** * Use this method in your root module to provide the TranslateService * @param {TranslateModuleConfig} config * @returns {ModuleWithProviders} */ TranslateModule.forRoot = function (config) { if (config === void 0) { config = {}; } return { ngModule: TranslateModule, providers: [ config.loader || { provide: __WEBPACK_IMPORTED_MODULE_1__src_translate_loader__["a" /* TranslateLoader */], useClass: __WEBPACK_IMPORTED_MODULE_1__src_translate_loader__["b" /* TranslateFakeLoader */] }, config.compiler || { provide: __WEBPACK_IMPORTED_MODULE_5__src_translate_compiler__["a" /* TranslateCompiler */], useClass: __WEBPACK_IMPORTED_MODULE_5__src_translate_compiler__["b" /* TranslateFakeCompiler */] }, config.parser || { provide: __WEBPACK_IMPORTED_MODULE_4__src_translate_parser__["a" /* TranslateParser */], useClass: __WEBPACK_IMPORTED_MODULE_4__src_translate_parser__["b" /* TranslateDefaultParser */] }, config.missingTranslationHandler || { provide: __WEBPACK_IMPORTED_MODULE_3__src_missing_translation_handler__["a" /* MissingTranslationHandler */], useClass: __WEBPACK_IMPORTED_MODULE_3__src_missing_translation_handler__["b" /* FakeMissingTranslationHandler */] }, __WEBPACK_IMPORTED_MODULE_8__src_translate_store__["a" /* TranslateStore */], { provide: __WEBPACK_IMPORTED_MODULE_2__src_translate_service__["b" /* USE_STORE */], useValue: config.isolate }, { provide: __WEBPACK_IMPORTED_MODULE_2__src_translate_service__["c" /* USE_DEFAULT_LANG */], useValue: config.useDefaultLang }, __WEBPACK_IMPORTED_MODULE_2__src_translate_service__["a" /* TranslateService */] ] }; }; /** * Use this method in your other (non root) modules to import the directive/pipe * @param {TranslateModuleConfig} config * @returns {ModuleWithProviders} */ TranslateModule.forChild = function (config) { if (config === void 0) { config = {}; } return { ngModule: TranslateModule, providers: [ config.loader || { provide: __WEBPACK_IMPORTED_MODULE_1__src_translate_loader__["a" /* TranslateLoader */], useClass: __WEBPACK_IMPORTED_MODULE_1__src_translate_loader__["b" /* TranslateFakeLoader */] }, config.compiler || { provide: __WEBPACK_IMPORTED_MODULE_5__src_translate_compiler__["a" /* TranslateCompiler */], useClass: __WEBPACK_IMPORTED_MODULE_5__src_translate_compiler__["b" /* TranslateFakeCompiler */] }, config.parser || { provide: __WEBPACK_IMPORTED_MODULE_4__src_translate_parser__["a" /* TranslateParser */], useClass: __WEBPACK_IMPORTED_MODULE_4__src_translate_parser__["b" /* TranslateDefaultParser */] }, config.missingTranslationHandler || { provide: __WEBPACK_IMPORTED_MODULE_3__src_missing_translation_handler__["a" /* MissingTranslationHandler */], useClass: __WEBPACK_IMPORTED_MODULE_3__src_missing_translation_handler__["b" /* FakeMissingTranslationHandler */] }, { provide: __WEBPACK_IMPORTED_MODULE_2__src_translate_service__["b" /* USE_STORE */], useValue: config.isolate }, { provide: __WEBPACK_IMPORTED_MODULE_2__src_translate_service__["c" /* USE_DEFAULT_LANG */], useValue: config.useDefaultLang }, __WEBPACK_IMPORTED_MODULE_2__src_translate_service__["a" /* TranslateService */] ] }; }; return TranslateModule; }()); TranslateModule.decorators = [ { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"], args: [{ declarations: [ __WEBPACK_IMPORTED_MODULE_7__src_translate_pipe__["a" /* TranslatePipe */], __WEBPACK_IMPORTED_MODULE_6__src_translate_directive__["a" /* TranslateDirective */] ], exports: [ __WEBPACK_IMPORTED_MODULE_7__src_translate_pipe__["a" /* TranslatePipe */], __WEBPACK_IMPORTED_MODULE_6__src_translate_directive__["a" /* TranslateDirective */] ] },] }, ]; /** @nocollapse */ TranslateModule.ctorParameters = function () { return []; }; /***/ }), /* 6 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return MissingTranslationHandler; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return FakeMissingTranslationHandler; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__angular_core__); var MissingTranslationHandler = (function () { function MissingTranslationHandler() { } return MissingTranslationHandler; }()); /** * This handler is just a placeholder that does nothing, in case you don't need a missing translation handler at all */ var FakeMissingTranslationHandler = (function () { function FakeMissingTranslationHandler() { } FakeMissingTranslationHandler.prototype.handle = function (params) { return params.key; }; return FakeMissingTranslationHandler; }()); FakeMissingTranslationHandler.decorators = [ { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injectable"] }, ]; /** @nocollapse */ FakeMissingTranslationHandler.ctorParameters = function () { return []; }; /***/ }), /* 7 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TranslateCompiler; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return TranslateFakeCompiler; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__angular_core__); var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var TranslateCompiler = (function () { function TranslateCompiler() { } return TranslateCompiler; }()); /** * This compiler is just a placeholder that does nothing, in case you don't need a compiler at all */ var TranslateFakeCompiler = (function (_super) { __extends(TranslateFakeCompiler, _super); function TranslateFakeCompiler() { return _super !== null && _super.apply(this, arguments) || this; } TranslateFakeCompiler.prototype.compile = function (value, lang) { return value; }; TranslateFakeCompiler.prototype.compileTranslations = function (translations, lang) { return translations; }; return TranslateFakeCompiler; }(TranslateCompiler)); TranslateFakeCompiler.decorators = [ { type: __WEBPACK_IMPORTED_MODULE_0__angular_core__["Injectable"] }, ]; /** @nocollapse */ TranslateFakeCompiler.ctorParameters = function () { return []; }; /***/ }), /* 8 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TranslateLoader; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return TranslateFakeLoader; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_rxjs_Observable__ = __webpack_require__(12); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_rxjs_Observable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_rxjs_Observable__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_core__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__angular_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__angular_core__); var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var TranslateLoader = (function () { function TranslateLoader() { } return TranslateLoader; }()); /** * This loader is just a placeholder that does nothing, in case you don't need a loader at all */ var TranslateFakeLoader = (function (_super) { __extends(TranslateFakeLoader, _super); function TranslateFakeLoader() { return _super !== null && _super.apply(this, arguments) || this; } TranslateFakeLoader.prototype.getTranslation = function (lang) { return __WEBPACK_IMPORTED_MODULE_0_rxjs_Observable__["Observable"].of({}); }; return TranslateFakeLoader; }(TranslateLoader)); TranslateFakeLoader.decorators = [ { type: __WEBPACK_IMPORTED_MODULE_1__angular_core__["Injectable"] }, ]; /** @nocollapse */ TranslateFakeLoader.ctorParameters = function () { return []; }; /***/ }), /* 9 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return TranslateParser; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return TranslateDefaultParser; }); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__angular_core__); /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__util__ = __webpack_require__(3); var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var TranslateParser = (function () { function TranslateParser() { } return TranslateParser; }()); var TranslateDefaultParser = (function (_super) { __extends(TranslateDefaultParser, _super); function TranslateDefaultParser() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.templateMatcher = /{{\s?([^{}\s]*)\s?}}/g; return _this; } TranslateDefaultParser.prototype.interpolate = function (expr, params) { var result; if (typeof expr === 'string') { result = this.interpolateString(expr, params); } else if (typeof expr === 'function') { result = this.interpolateFunction(expr, params); } else { // this should not happen, but an unrelated TranslateService test depends on it result = expr; } return result; }; TranslateDefaultParser.prototype.getValue = function (target, key) { var keys = key.split('.'); key = ''; do { key += keys.shift(); if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__["b" /* isDefined */])(target) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__util__["b" /* isDefined */])(target[key]) && (typeof