UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

80 lines (79 loc) 2.49 kB
/** * 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 };