UNPKG

cbcore-ts

Version:

CBCore is a library to build web applications using pure Typescript.

168 lines (167 loc) 6.37 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var CBLanguageService_exports = {}; __export(CBLanguageService_exports, { CBLanguageService: () => CBLanguageService }); module.exports = __toCommonJS(CBLanguageService_exports); var import_uicore_ts = require("uicore-ts"); var import_CBCore = require("./CBCore"); const _CBLanguageService = class _CBLanguageService { static useStoredLanguageValues(values = {}) { const result = JSON.parse(JSON.stringify(this.languageValues)).objectByCopyingValuesRecursivelyFromObject( values ); if (JSON.stringify(result) != JSON.stringify(this.languages)) { this.languages = result; this.broadcastLanguageChangeEvent(); } } static broadcastLanguageChangeEvent(view) { view = view || import_CBCore.CBCore.sharedInstance.viewCores.everyElement.rootViewController.view.rootView; view == null ? void 0 : view.broadcastEventInSubtree({ name: import_uicore_ts.UIView.broadcastEventName.LanguageChanged, parameters: {} }); } static get defaultLanguageKey() { return CBCoreInitializerObject.defaultLanguageKey || "en"; } static get currentLanguageKey() { if (!this._currentLanguageKey) { this.updateCurrentLanguageKey(); } return this._currentLanguageKey; } updateCurrentLanguageKey() { _CBLanguageService.currentClassObject.updateCurrentLanguageKey(); } static updateCurrentLanguageKey(route = import_uicore_ts.UIRoute.currentRoute) { var _a, _b; let result = (_b = (_a = route.componentWithName("settings")) == null ? void 0 : _a.parameters) == null ? void 0 : _b.language; if ((0, import_uicore_ts.IS_NOT)(result)) { result = this.defaultLanguageKey; } const isChanged = result != this._currentLanguageKey; this._currentLanguageKey = result; if (isChanged) { import_CBCore.CBCore.sharedInstance.languageKey = result; this.broadcastLanguageChangeEvent(); } } get currentLanguageKey() { const result = _CBLanguageService.currentClassObject.currentLanguageKey; return result; } static stringForKey(key, languageKey, defaultString, parameters) { var result; if ((0, import_uicore_ts.IS)(key) && this.languages[languageKey] && (0, import_uicore_ts.IS_DEFINED)(this.languages[languageKey][key])) { result = this.languages[languageKey][key]; } else { result = defaultString; } if ((0, import_uicore_ts.IS)(parameters)) { const parameterKeys = Object.keys(parameters); parameterKeys.forEach(function(key2, index, array) { const keyString = "%" + key2 + "%"; const parameter = parameters[key2]; var parameterString; if (parameter instanceof Object) { parameterString = import_uicore_ts.UICore.languageService.stringForCurrentLanguage(parameter); } else { parameterString = parameter; } result = result.replace(new RegExp(keyString, "g"), parameterString); }); } return result; } stringForKey(key, languageKey, defaultString, parameters) { return _CBLanguageService.currentClassObject.stringForKey(key, languageKey, defaultString, parameters); } static localizedTextObjectForKey(key, defaultString = key, parameters) { const result = {}; this.languages.forEach((languageObject, languageKey) => { result[languageKey] = this.stringForKey(key, languageKey, defaultString, parameters); }); return result; } localizedTextObjectForKey(key, defaultString, parameters) { const result = _CBLanguageService.currentClassObject.localizedTextObjectForKey(key, defaultString, parameters); return result; } static localizedTextObjectForText(text) { if ((0, import_uicore_ts.IS_NOT)(text)) { return import_uicore_ts.nil; } const result = { [this.defaultLanguageKey]: text }; return result; } localizedTextObjectForText(text) { const result = _CBLanguageService.currentClassObject.localizedTextObjectForText(text); return result; } static stringForCurrentLanguage(localizedTextObject) { if (localizedTextObject === "" + localizedTextObject) { return localizedTextObject; } localizedTextObject = (0, import_uicore_ts.FIRST_OR_NIL)(localizedTextObject); let result = localizedTextObject[this.currentLanguageKey]; if ((0, import_uicore_ts.IS_NOT)(result)) { result = localizedTextObject[this.defaultLanguageKey]; } if ((0, import_uicore_ts.IS_NOT)(result)) { result = localizedTextObject["en"]; } if ((0, import_uicore_ts.IS_NOT)(result)) { result = ""; } return result; } stringForCurrentLanguage(localizedTextObject) { return _CBLanguageService.currentClassObject.stringForCurrentLanguage(localizedTextObject); } }; _CBLanguageService.currentClassObject = _CBLanguageService; _CBLanguageService.languageValues = { en: { languageName: "English", languageNameShort: "ENG", topBarTitle: "UICore application", selectLanguageTitle: "Select language", leftBarTitle: "Title" }, est: { languageName: "Eesti keel", languageNameShort: "EST", topBarTitle: "UICore rakendus", selectLanguageTitle: "Vali keel", leftBarTitle: "Pealkiri" } }; _CBLanguageService.languages = JSON.parse(JSON.stringify(_CBLanguageService.languageValues)); let CBLanguageService = _CBLanguageService; import_uicore_ts.UICore.languageService = CBLanguageService; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { CBLanguageService }); //# sourceMappingURL=CBLanguageService.js.map