devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
80 lines (79 loc) • 2.49 kB
JavaScript
/**
* DevExtreme (esm/__internal/core/m_global_format_config.js)
* Version: 26.1.3
* Build date: Wed Jun 10 2026
*
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import config from "../../core/config";
import coreLocalization from "../../common/core/localization/core";
import parentLocales from "../core/localization/cldr-data/parent_locales";
import getParentLocale from "../core/localization/parentLocale";
import {
isFunction,
isPlainObject,
isString
} from "../../core/utils/type";
const hasOwn = Object.prototype.hasOwnProperty;
const resolveByLocaleMap = localeMap => {
let currentLocale = coreLocalization.locale();
while (currentLocale) {
if (hasOwn.call(localeMap, currentLocale) && void 0 !== localeMap[currentLocale]) {
return localeMap[currentLocale]
}
currentLocale = getParentLocale(parentLocales, currentLocale)
}
if (hasOwn.call(localeMap, "default")) {
return localeMap.default
}
return
};
const resolveConfigValue = value => {
if (void 0 === value) {
return
}
if (isString(value) || isFunction(value)) {
return value
}
if (isPlainObject(value)) {
return resolveByLocaleMap(value)
}
return
};
const resolveGlobalFormat = optionName => {
const optionValue = config()[optionName];
return resolveConfigValue(optionValue)
};
export const getGlobalFormatByDataType = dataType => {
switch (dataType) {
case "date":
return resolveGlobalFormat("dateFormat");
case "datetime":
return resolveGlobalFormat("dateTimeFormat");
case "time":
return resolveGlobalFormat("timeFormat");
case "number":
return resolveGlobalFormat("numberFormat");
default:
return
}
};
export const resolvePresetOverride = presetName => {
const presets = config().dateTimeFormatPresets;
if (!presets || !isPlainObject(presets)) {
return
}
const lowerName = presetName.toLowerCase();
const keys = Object.keys(presets);
for (let i = 0; i < keys.length; i++) {
if (keys[i].toLowerCase() === lowerName) {
return resolveConfigValue(presets[keys[i]])
}
}
return
};
export default {
getGlobalFormatByDataType: getGlobalFormatByDataType,
resolvePresetOverride: resolvePresetOverride
};