UNPKG

@genexus/web-standard-functions

Version:

GeneXus JavaScript standard functions library for web generators

121 lines 4.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfigurationState = void 0; const timezone_1 = require("../datetime/timezone"); const storage_1 = require("../common/storage"); const keyPrefix = "gx.config.configurationstate"; const keyDynPtyPrefix = "gx.config.configurationstate.dynpty"; const languageKey = "language"; const validLanguagesKey = "languages"; const defaultLanguageKey = "DEFAULT_LANGUAGE"; class ConfigurationState { static getInstance() { if (!ConfigurationState.instance) { ConfigurationState.instance = new ConfigurationState(); ConfigurationState.instance.setDynStoredValue(timezone_1.storageKey, (0, timezone_1.detect)()); } return ConfigurationState.instance; } constructor() { } // Loading model properties /** * Loads settings from a JSON object * @param appSettings The JSON object containing the settings to load */ static loadApplicationSettings(appSettings) { let instance = ConfigurationState.getInstance(); for (let key in appSettings) { instance.setDynStoredValue(key, appSettings[key]); } if (instance.getLanguage() == null) { let defaultLanguage = instance.getDynStoredValue(defaultLanguageKey); if (defaultLanguage != null) { instance.setStoredValue(validLanguagesKey, defaultLanguage); instance.setLanguage(defaultLanguage); } } let timeFromUTC = appSettings["convertTimeFromUTC"]; if (timeFromUTC !== null) { instance.setStoredValue("convertTimeFromUTC", timeFromUTC); } } /** * Loads properties from the environment */ loadProperties(props) { this.setStoredValue(validLanguagesKey, props[validLanguagesKey]); this.setLanguage(props[languageKey]); } // Language /** * Returns the name of the currently active Language object */ getLanguage() { return this.getStoredValue(languageKey); } /** * Sets the language to display literals in your application * @param lang The language to set * @returns 0 if the language can be set, a value greater than 0 if it cannot be set */ setLanguage(lang) { if (this.supportedLanguages().includes(lang)) { this.setStoredValue(languageKey, lang); return 0; } else { return 1; } } getConvertTimeFromUTC() { return Boolean(this.getStoredValue("convertTimeFromUTC")); } supportedLanguages() { let languages = this.getStoredValue(validLanguagesKey); return languages ? languages.split(",") : []; } // Generic Properties /** * Returns generic property value as String */ getProperty(pty) { return this.getDynStoredValue(pty) || ""; } /** * Sets a generic property * @param ptyName * @param ptyValue */ setProperty(ptyName, ptyValue) { this.setDynStoredValue(ptyName, ptyValue); } // Local storage getStoredValueWithKey(storagekey) { return storage_1.storage === null || storage_1.storage === void 0 ? void 0 : storage_1.storage.getItem(storagekey); } setStoredValueWithKey(storagekey, value) { storage_1.storage === null || storage_1.storage === void 0 ? void 0 : storage_1.storage.setItem(storagekey, value); } // Static storage storageKey(key) { return `${keyPrefix}.${key}`; } getStoredValue(key) { return this.getStoredValueWithKey(this.storageKey(key)); } setStoredValue(key, value) { this.setStoredValueWithKey(this.storageKey(key), value); } // Dynamic storage storageDynamicKey(key) { return `${keyDynPtyPrefix}.${key}`; } getDynStoredValue(key) { return this.getStoredValueWithKey(this.storageDynamicKey(key)); } setDynStoredValue(key, value) { this.setStoredValueWithKey(this.storageDynamicKey(key), value); } } exports.ConfigurationState = ConfigurationState; //# sourceMappingURL=configurationState.js.map