blob: 5894bd27d093e83d2032148d324645deec1f0dcc [file] [log] [blame]
// Type definitions for Apache Cordova Globalization plugin
// Project: https://github.com/apache/cordova-plugin-globalization
// Definitions by: Microsoft Open Technologies Inc <http://msopentech.com>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
//
// Copyright (c) Microsoft Open Technologies Inc
// Licensed under the MIT license.
interface Navigator {
/** This plugin obtains information and performs operations specific to the user's locale and timezone. */
globalization: Globalization
}
/** This plugin obtains information and performs operations specific to the user's locale and timezone. */
interface Globalization {
/**
* Get the string identifier for the client's current language.
* @param onSuccess Called on success getting the language with a properties object,
* that should have a value property with a String value.
* @param onError Called on error getting the language with a GlobalizationError object.
* The error's expected code is GlobalizationError.UNKNOWN_ERROR.
*/
getPreferredLanguage(
onSuccess: (language: { value: string; }) => void,
onError: (error: GlobalizationError) => void): void;
/**
* Get the string identifier for the client's current locale setting.
* @param onSuccess Called on success getting the locale identifier with a properties object,
* that should have a value property with a String value.
* @param onError Called on error getting the locale identifier with a GlobalizationError object.
* The error's expected code is GlobalizationError.UNKNOWN\_ERROR.
*/
getLocaleName(
onSuccess: (locale: { value: string; }) => void,
onError: (error: GlobalizationError) => void): void;
/**
* Returns a date formatted as a string according to the client's locale and timezone.
* @param date Date to format.
* @param onSuccess Called on success with a properties object,
* that should have a value property with a String value.
* @param onError Called on error with a GlobalizationError object.
* The error's expected code is GlobalizationError.FORMATTING_ERROR.
* @param options Optional format parameters. Default {formatLength:'short', selector:'date and time'}
* - 'formatLength' can be "short", "medium", "long", or "full".
* - 'selector' can be "date", "time", or "date and time".
*/
dateToString(
date: Date,
onSuccess: (date: { value: string; }) => void,
onError: (error: GlobalizationError) => void,
options?: {
formatLength?: string; // "short" | "medium" | "long" | "full"
selector?: string; // "date" | "time" | "date and time"
}): void;
/**
* Parses a date formatted as a string, according to the client's user preferences
* and calendar using the time zone of the client, and returns the corresponding date object.
* @param dateString String to parse
* @param onSuccess Called on success with GlobalizationDate object
* @param onError Called on error getting the language with a GlobalizationError object.
* The error's expected code is GlobalizationError.PARSING_ERROR.
* @param options Optional parse parameters. Default {formatLength:'short', selector:'date and time'}
*/
stringToDate(
dateString: string,
onSuccess: (date: GlobalizationDate) => void,
onError: (error: GlobalizationError) => void,
options?: { type?: string; item?: string; }): void;
/**
* Returns a pattern string to format and parse dates according to the client's user preferences.
* @param onSuccess Called on success getting pattern with a GlobalizationDatePattern object
* @param onError Called on error getting pattern with a GlobalizationError object.
* The error's expected code is GlobalizationError.PATTERN_ERROR.
* @param options Optional format parameters. Default {formatLength:'short', selector:'date and time'}
*/
getDatePattern(
onSuccess: (datePattern: GlobalizationDatePattern) => void,
onError: (error: GlobalizationError) => void,
options?: { type?: string; item?: string; }): void;
/**
* Returns an array of the names of the months or days of the week, depending on the client's user preferences and calendar.
* @param onSuccess Called on success getting names with a properties object,
* that should have a value property with a String[] value.
* @param onError Called on error getting the language with a GlobalizationError object.
* The error's expected code is GlobalizationError.UNKNOWN_ERROR.
* @param options Optional parameters. Default: {type:'wide', item:'months'}
*/
getDateNames(
onSuccess: (names: { value: string[]; }) => void,
onError: (error: GlobalizationError) => void,
options?: { type?: string; item?: string; }): void;
/**
* Indicates whether daylight savings time is in effect for a given date using the client's time zone and calendar.
* @param {Date} date Date to check
* @param onSuccess Called on success with a properties object,
* that should have a dst property with a boolean value.
* @param onError Called on error with a GlobalizationError object.
* The error's expected code is GlobalizationError.UNKNOWN_ERROR.
*/
isDaylightSavingsTime(
date: Date,
onSuccess: (result: { dst: boolean; }) => void,
onError: (error: GlobalizationError) => void): void;
/**
* Returns the first day of the week according to the client's user preferences and calendar.
* @param onSuccess Called on success with a day object,
* that should have a value property with a number value.
* @param onError Called on error with a GlobalizationError object.
* The error's expected code is GlobalizationError.UNKNOWN_ERROR.
*/
getFirstDayOfWeek(
onSuccess: (day: { value: number; }) => void,
onError: (error: GlobalizationError) => void): void;
/**
* Returns a number formatted as a string according to the client's user preferences.
* @param value Number to format
* @param onSuccess Called on success with a result object,
* that should have a value property with a String value.
* @param onError Called on error with a GlobalizationError object.
* The error's expected code is GlobalizationError.FORMATTING_ERROR.
* @param format Optional format parameters. Default: {type:'decimal'}
*/
nubmerToString(
value: number,
onSuccess: (result: { value: string; }) => void,
onError: (error: GlobalizationError) => void,
format?: { type?: string; }): void;
/**
* Parses a number formatted as a string according to the client's user preferences and returns the corresponding number.
* @param value String to parse
* @param onSuccess Called on success with a result object,
* that should have a value property with a number value.
* @param onError Called on error with a GlobalizationError object.
* The error's expected code is GlobalizationError.FORMATTING_ERROR.
* @param format Optional format parameters. Default: {type:'decimal'}
*/
stringToNumber(
value: string,
onSuccess: (result: { value: number; }) => void,
onError: (error: GlobalizationError) => void,
format?: { type?: string; }): void;
/**
* Returns a pattern string to format and parse numbers according to the client's user preferences.
* @param onSuccess Called on success getting pattern with a GlobalizationNumberPattern object
* @param onError Called on error getting the language with a GlobalizationError object.
* The error's expected code is GlobalizationError.PATTERN_ERROR.
* @param options Optional format parameters. Default {type:'decimal'}.
*/
getNumberPattern(
onSuccess: (result: GlobalizationNumberPattern) => void,
onError: (error: GlobalizationError) => void,
format?: { type?: string; }): void;
/**
* Returns a pattern string to format and parse currency values according to the client's user preferences and ISO 4217 currency code.
* @param currencyCode Should be a String of one of the ISO 4217 currency codes, for example 'USD'.
* @param onSuccess Called on success getting pattern with a GlobalizatioCurrencyPattern object
* @param onError Called on error getting pattern with a GlobalizationError object.
* The error's expected code is GlobalizationError.FORMATTING_ERROR.
* @param options Optional format parameters. Default {type:'decimal'}.
*/
getCurrencyPattern(
currencyCode: string,
onSuccess: (result: GlobalizationCurrencyPattern) => void,
onError: (error: GlobalizationError) => void): void;
}
/** Date returned by stringToDate */
interface GlobalizationDate {
/* The four digit year. */
year: number;
/* The month from (0-11). */
month: number;
/* The day from (1-31). */
day: number;
/* The hour from (0-23). */
hour: number;
/* The minute from (0-59). */
minute: number;
/* The second from (0-59). */
second: number;
/* The milliseconds (from 0-999), not available on all platforms. */
millisecond: number;
}
/** Pattern to format and parse dates according to the client's user preferences.*/
interface GlobalizationDatePattern {
/* The date and time pattern to format and parse dates. The patterns follow Unicode Technical Standard #35. */
pattern: string;
/* The abbreviated name of the time zone on the client. */
timezone: string;
/* The current difference in seconds between the client's time zone and coordinated universal time. */
utc_offset: number;
/* The current daylight saving time offset in seconds between the client's non-daylight saving's time zone and the client's daylight saving's time zone. */
dst_offset: number;
}
interface GlobalizationDateNameOptions {
type?: string;
item?: string;
}
/** Pattern to format and parse numbers according to the client's user preferences. */
interface GlobalizationNumberPattern {
/* The number pattern to format and parse numbers. The patterns follow Unicode Technical Standard #35. */
pattern: string;
/* The symbol to use when formatting and parsing, such as a percent or currency symbol. */
symbol: string;
/* The number of fractional digits to use when parsing and formatting numbers. */
fraction: number;
/* The rounding increment to use when parsing and formatting. */
rounding: number;
/* The symbol to use for positive numbers when parsing and formatting. */
positive: string;
/* The symbol to use for negative numbers when parsing and formatting. */
negative: string;
/* The decimal symbol to use for parsing and formatting. */
decimal: string;
/* The grouping symbol to use for parsing and formatting. */
grouping: string;
}
/**
* Pattern to format and parse currency values according
* to the client's user preferences and ISO 4217 currency code.
*/
interface GlobalizationCurrencyPattern {
/** The currency pattern to format and parse currency values. The patterns follow Unicode Technical Standard #35. */
pattern: string;
/** The ISO 4217 currency code for the pattern. */
code: string;
/** The number of fractional digits to use when parsing and formatting currency. */
fraction: number;
/** The rounding increment to use when parsing and formatting. */
rounding: number;
/** The decimal symbol to use for parsing and formatting. */
decimal: string;
/** The grouping symbol to use for parsing and formatting. */
grouping: string;
}
/** An object representing a error from the Globalization API. */
interface GlobalizationError {
/** One of the following codes representing the error type:
* GlobalizationError.UNKNOWN_ERROR: 0
* GlobalizationError.FORMATTING_ERROR: 1
* GlobalizationError.PARSING_ERROR: 2
* GlobalizationError.PATTERN_ERROR: 3
*/
code: number;
/** A text message that includes the error's explanation and/or details */
message: string;
}
/** An object representing a error from the Globalization API. */
declare var GlobalizationError: {
UNKNOWN_ERROR: number;
FORMATTING_ERROR: number;
PARSING_ERROR: number;
PATTERN_ERROR: number;
}