UNPKG

@progress/kendo-angular-intl

Version:

Kendo UI Internationalization for Angular components

108 lines (107 loc) 2.86 kB
/**----------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import * as intl from '@progress/kendo-intl'; import { errorSolutions } from './error-solutions'; function formatMessage(error) { const message = error.message; const errorSolution = errorSolutions[Object.keys(errorSolutions).filter(key => message.indexOf(key) === 0)[0]]; return errorSolution ? `${message} ${errorSolution}` : message; } // eslint-disable-next-line @typescript-eslint/ban-types function intlMethod(fn) { return function (...values) { try { return fn(...values); } catch (error) { error.message = formatMessage(error); throw error; } }; } /** * Wraps Kendo Intl methods to provide enhanced error handling and documentation for the Kendo Angular Intl package. * * Includes utility functions for formatting, parsing, and retrieving locale data, as well as error message enhancements. * * @example * ```ts * import { formatDate, parseNumber, localeData } from '@progress/kendo-angular-intl'; * const formatted = formatDate(new Date(), { date: 'short' }); * ``` */ /** * @hidden */ export const dateFormatNames = intlMethod(intl.dateFormatNames); /** * @hidden */ export const dateFieldName = intlMethod(intl.dateFieldName); /** * @hidden */ export const firstDay = intlMethod(intl.firstDay); /** * @hidden */ export const format = intlMethod(intl.format); /** * @hidden */ export const formatDate = intlMethod(intl.formatDate); /** * @hidden */ export const formatNumber = intlMethod(intl.formatNumber); /** * @hidden */ export const load = intlMethod(intl.load); /** * @hidden */ export const numberSymbols = intlMethod(intl.numberSymbols); /** * @hidden */ export const parseDate = intlMethod(intl.parseDate); /** * @hidden */ export const parseNumber = intlMethod(intl.parseNumber); /** * @hidden */ export const splitDateFormat = intlMethod(intl.splitDateFormat); /** * @hidden */ export const toString = intlMethod(intl.toString); /** * @hidden */ export const weekendRange = intlMethod(intl.weekendRange); /** * Sets a pre-built locale. * * @param data - The pre-built locale data. */ export const setData = (data) => intl.setData(data); /** * Retrieves the locale data for the specified locale. * * @param locale - The locale ID. * @returns The locale data. */ export const localeData = (locale) => { try { return intl.localeInfo(locale); } catch (error) { error.message = formatMessage(error); throw error; } };