UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

176 lines (174 loc) 5.51 kB
/** * Internationalization/Globalization class. * @dynamic */ export class Globalization { static fullTimeOptions = { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric', timeZoneName: 'short' }; static dateTimeOnlyOptions = { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric' }; static dateTimeOnlyShortOptions = { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric' }; static dateOnlyOptions = { year: 'numeric', month: 'numeric', day: 'numeric' }; static timeOnlyOptions = { hour: 'numeric', minute: 'numeric', second: 'numeric' }; /** * Caching format objects for better performance. */ static internalFullTimeFormat; static internalDateTimeOnlyShortFormat; static internalDateTimeOnlyFormat; static internalDateOnlyFormat; static internalTimeOnlyFormat; static internalNumberFormat; static get fullTimeFormat() { if (!Globalization.internalFullTimeFormat) { Globalization.internalFullTimeFormat = new Intl.DateTimeFormat(Globalization.localeId, Globalization.fullTimeOptions); } return Globalization.internalFullTimeFormat; } static get dateTimeOnlyFormat() { if (!Globalization.internalDateTimeOnlyFormat) { Globalization.internalDateTimeOnlyFormat = new Intl.DateTimeFormat(Globalization.localeId, Globalization.dateTimeOnlyOptions); } return Globalization.internalDateTimeOnlyFormat; } static get dateTimeOnlyShortFormat() { if (!Globalization.internalDateTimeOnlyShortFormat) { Globalization.internalDateTimeOnlyShortFormat = new Intl.DateTimeFormat(Globalization.localeId, Globalization.dateTimeOnlyShortOptions); } return Globalization.internalDateTimeOnlyShortFormat; } static get dateOnlyFormat() { if (!Globalization.internalDateOnlyFormat) { Globalization.internalDateOnlyFormat = new Intl.DateTimeFormat(Globalization.localeId, Globalization.dateOnlyOptions); } return Globalization.internalDateOnlyFormat; } static get timeOnlyFormat() { if (!Globalization.internalTimeOnlyFormat) { Globalization.internalTimeOnlyFormat = new Intl.DateTimeFormat(Globalization.localeId, Globalization.timeOnlyOptions); } return Globalization.internalTimeOnlyFormat; } static get numberFormat() { if (!Globalization.internalNumberFormat) { Globalization.internalNumberFormat = new Intl.NumberFormat(Globalization.localeId); } return Globalization.internalNumberFormat; } /** * Gets the locale ID for regional format. * * This ID must be used for any locale function calls. * * - String.prototype.localeCompare() * - Number.prototype.toLocaleString() * - Date.prototype.toLocaleString() * - Date.prototype.toLocaleDateString() * - Date.prototype.toLocaleTimeString() * * @return string the local ID. */ static get localeId() { const resources = MsftSme.self().Resources; const id = resources.localeRegionalId; return id ? id : null; } /** * Format with full time to display. * * @param data the date object. */ static fullTime(date) { if (MsftSme.isNullOrUndefined(date)) { return null; } return Globalization.fullTimeFormat.format(date); } /** * Format with date time only to display. * * @param data the date object. */ static dateTimeOnly(date) { if (MsftSme.isNullOrUndefined(date)) { return null; } return Globalization.dateTimeOnlyFormat.format(date); } /** * Format with date time only without seconds to display. * * @param data the date object. */ static dateTimeOnlyShort(date) { if (MsftSme.isNullOrUndefined(date)) { return null; } return Globalization.dateTimeOnlyShortFormat.format(date); } /** * Format with date only to display. * * @param data the date object. */ static dateOnly(date) { if (MsftSme.isNullOrUndefined(date)) { return null; } return Globalization.dateOnlyFormat.format(date); } /** * Format with time only to display. * * @param data the date object. */ static timeOnly(date) { if (MsftSme.isNullOrUndefined(date)) { return null; } return Globalization.timeOnlyFormat.format(date); } /** * Format simple number to display. * * (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat to add * more feature such as currency display) * * @param data the number data. * @param options the number formatting options. */ static number(data, options) { if (!options) { return Globalization.numberFormat.format(data); } return Intl.NumberFormat(Globalization.localeId, options).format(data); } } //# sourceMappingURL=globalization.js.map