{"version":3,"sources":["../../../packages/core/data/globalization.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAC,eAAe,CAQ5B;IAEF,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAOhC;IAEF,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAMrC;IAEF,OAAO,CAAC,MAAM,CAAC,eAAe,CAI5B;IAEF,OAAO,CAAC,MAAM,CAAC,eAAe,CAI5B;IAEF;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAsB;IAC3D,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAsB;IACpE,OAAO,CAAC,MAAM,CAAC,0BAA0B,CAAsB;IAC/D,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAsB;IAC3D,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAsB;IAC3D,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAoB;IAEvD,OAAO,CAAC,MAAM,KAAK,cAAc,GAMhC;IAED,OAAO,CAAC,MAAM,KAAK,kBAAkB,GAMpC;IAED,OAAO,CAAC,MAAM,KAAK,uBAAuB,GAOzC;IAED,OAAO,CAAC,MAAM,KAAK,cAAc,GAMhC;IAED,OAAO,CAAC,MAAM,KAAK,cAAc,GAMhC;IAED,OAAO,CAAC,MAAM,KAAK,YAAY,GAM9B;IAED;;;;;;;;;;;;OAYG;IACH,WAAkB,QAAQ,IAAI,MAAM,CAInC;IAED;;;;OAIG;WACW,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAQ1C;;;;OAIG;WACW,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAQ9C;;;;OAIG;WACW,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAQnD;;;;OAIG;WACW,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAQ1C;;;;OAIG;WACW,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAQ1C;;;;;;;;OAQG;WACW,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,GAAG,MAAM;CAOjF","file":"globalization.d.ts","sourcesContent":["/**\r\n * Internationalization/Globalization class.\r\n * @dynamic\r\n */\r\nexport class Globalization {\r\n    private static fullTimeOptions: Intl.DateTimeFormatOptions = {\r\n        year: 'numeric',\r\n        month: 'numeric',\r\n        day: 'numeric',\r\n        hour: 'numeric',\r\n        minute: 'numeric',\r\n        second: 'numeric',\r\n        timeZoneName: 'short'\r\n    };\r\n\r\n    private static dateTimeOnlyOptions: Intl.DateTimeFormatOptions = {\r\n        year: 'numeric',\r\n        month: 'numeric',\r\n        day: 'numeric',\r\n        hour: 'numeric',\r\n        minute: 'numeric',\r\n        second: 'numeric'\r\n    };\r\n\r\n    private static dateTimeOnlyShortOptions: Intl.DateTimeFormatOptions = {\r\n        year: 'numeric',\r\n        month: 'numeric',\r\n        day: 'numeric',\r\n        hour: 'numeric',\r\n        minute: 'numeric'\r\n    };\r\n\r\n    private static dateOnlyOptions: Intl.DateTimeFormatOptions = {\r\n        year: 'numeric',\r\n        month: 'numeric',\r\n        day: 'numeric'\r\n    };\r\n\r\n    private static timeOnlyOptions: Intl.DateTimeFormatOptions = {\r\n        hour: 'numeric',\r\n        minute: 'numeric',\r\n        second: 'numeric'\r\n    };\r\n\r\n    /**\r\n     * Caching format objects for better performance.\r\n     */\r\n    private static internalFullTimeFormat: Intl.DateTimeFormat;\r\n    private static internalDateTimeOnlyShortFormat: Intl.DateTimeFormat;\r\n    private static internalDateTimeOnlyFormat: Intl.DateTimeFormat;\r\n    private static internalDateOnlyFormat: Intl.DateTimeFormat;\r\n    private static internalTimeOnlyFormat: Intl.DateTimeFormat;\r\n    private static internalNumberFormat: Intl.NumberFormat;\r\n\r\n    private static get fullTimeFormat(): Intl.DateTimeFormat {\r\n        if (!Globalization.internalFullTimeFormat) {\r\n            Globalization.internalFullTimeFormat = new Intl.DateTimeFormat(Globalization.localeId, Globalization.fullTimeOptions);\r\n        }\r\n\r\n        return Globalization.internalFullTimeFormat;\r\n    }\r\n\r\n    private static get dateTimeOnlyFormat(): Intl.DateTimeFormat {\r\n        if (!Globalization.internalDateTimeOnlyFormat) {\r\n            Globalization.internalDateTimeOnlyFormat = new Intl.DateTimeFormat(Globalization.localeId, Globalization.dateTimeOnlyOptions);\r\n        }\r\n\r\n        return Globalization.internalDateTimeOnlyFormat;\r\n    }\r\n\r\n    private static get dateTimeOnlyShortFormat(): Intl.DateTimeFormat {\r\n        if (!Globalization.internalDateTimeOnlyShortFormat) {\r\n            Globalization.internalDateTimeOnlyShortFormat = new Intl.DateTimeFormat(\r\n                Globalization.localeId, Globalization.dateTimeOnlyShortOptions);\r\n        }\r\n\r\n        return Globalization.internalDateTimeOnlyShortFormat;\r\n    }\r\n\r\n    private static get dateOnlyFormat(): Intl.DateTimeFormat {\r\n        if (!Globalization.internalDateOnlyFormat) {\r\n            Globalization.internalDateOnlyFormat = new Intl.DateTimeFormat(Globalization.localeId, Globalization.dateOnlyOptions);\r\n        }\r\n\r\n        return Globalization.internalDateOnlyFormat;\r\n    }\r\n\r\n    private static get timeOnlyFormat(): Intl.DateTimeFormat {\r\n        if (!Globalization.internalTimeOnlyFormat) {\r\n            Globalization.internalTimeOnlyFormat = new Intl.DateTimeFormat(Globalization.localeId, Globalization.timeOnlyOptions);\r\n        }\r\n\r\n        return Globalization.internalTimeOnlyFormat;\r\n    }\r\n\r\n    private static get numberFormat(): Intl.NumberFormat {\r\n        if (!Globalization.internalNumberFormat) {\r\n            Globalization.internalNumberFormat = new Intl.NumberFormat(Globalization.localeId);\r\n        }\r\n\r\n        return Globalization.internalNumberFormat;\r\n    }\r\n\r\n    /**\r\n     * Gets the locale ID for regional format.\r\n     *\r\n     * This ID must be used for any locale function calls.\r\n     *\r\n     * - String.prototype.localeCompare()\r\n     * - Number.prototype.toLocaleString()\r\n     * - Date.prototype.toLocaleString()\r\n     * - Date.prototype.toLocaleDateString()\r\n     * - Date.prototype.toLocaleTimeString()\r\n     *\r\n     * @return string the local ID.\r\n     */\r\n    public static get localeId(): string {\r\n        const resources = MsftSme.self().Resources;\r\n        const id = resources.localeRegionalId;\r\n        return id ? id : null;\r\n    }\r\n\r\n    /**\r\n     * Format with full time to display.\r\n     *\r\n     * @param data the date object.\r\n     */\r\n    public static fullTime(date: Date): string {\r\n        if (MsftSme.isNullOrUndefined(date)) {\r\n            return null;\r\n        }\r\n\r\n        return Globalization.fullTimeFormat.format(date);\r\n    }\r\n\r\n    /**\r\n     * Format with date time only to display.\r\n     *\r\n     * @param data the date object.\r\n     */\r\n    public static dateTimeOnly(date: Date): string {\r\n        if (MsftSme.isNullOrUndefined(date)) {\r\n            return null;\r\n        }\r\n\r\n        return Globalization.dateTimeOnlyFormat.format(date);\r\n    }\r\n\r\n    /**\r\n     * Format with date time only without seconds to display.\r\n     *\r\n     * @param data the date object.\r\n     */\r\n    public static dateTimeOnlyShort(date: Date): string {\r\n        if (MsftSme.isNullOrUndefined(date)) {\r\n            return null;\r\n        }\r\n\r\n        return Globalization.dateTimeOnlyShortFormat.format(date);\r\n    }\r\n\r\n    /**\r\n     * Format with date only to display.\r\n     *\r\n     * @param data the date object.\r\n     */\r\n    public static dateOnly(date: Date): string {\r\n        if (MsftSme.isNullOrUndefined(date)) {\r\n            return null;\r\n        }\r\n\r\n        return Globalization.dateOnlyFormat.format(date);\r\n    }\r\n\r\n    /**\r\n     * Format with time only to display.\r\n     *\r\n     * @param data the date object.\r\n     */\r\n    public static timeOnly(date: Date): string {\r\n        if (MsftSme.isNullOrUndefined(date)) {\r\n            return null;\r\n        }\r\n\r\n        return Globalization.timeOnlyFormat.format(date);\r\n    }\r\n\r\n    /**\r\n     * Format simple number to display.\r\n     *\r\n     * (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat to add\r\n     * more feature such as currency display)\r\n     *\r\n     * @param data the number data.\r\n     * @param options the number formatting options.\r\n     */\r\n    public static number(data: number, options?: Intl.NumberFormatOptions): string {\r\n        if (!options) {\r\n            return Globalization.numberFormat.format(data);\r\n        }\r\n\r\n        return Intl.NumberFormat(Globalization.localeId, options).format(data);\r\n    }\r\n}\r\n"]}