@genexus/web-standard-functions
Version:
GeneXus JavaScript standard functions library for web generators
121 lines • 4.19 kB
JavaScript
;
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