123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386 |
- /*
- * Copyright (C)2005-2019 Haxe Foundation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
- package js.lib.intl;
- /**
- The `DateTimeFormat` object is a constructor for objects that enable language-sensitive
- date and time formatting.
- Documentation [DateTimeFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat) by [Mozilla Contributors](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat$history), licensed under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/).
- **/
- @:native("Intl.DateTimeFormat")
- extern class DateTimeFormat {
- @:overload(function(?locales:Array<String>, ?options:DateTimeFormatOptions):Void {})
- @:pure function new(?locales:String, ?options:DateTimeFormatOptions);
- /**
- Getter function that formats a date according to the locale and formatting options
- of this `DateTimeFormat` object.
- **/
- @:overload(function(date:js.lib.Date):String {})
- @:pure function format(date:Date):String;
- /**
- Returns an `Array` of objects representing the date string in parts that can be used
- for custom locale-aware formatting.
- **/
- @:overload(function(date:js.lib.Date):Array<DateTimeFormatPart> {})
- @:pure function formatToParts(date:Date):Array<DateTimeFormatPart>;
- /**
- Returns a new object with properties reflecting the locale and formatting options
- computed during initialization of the object.
- **/
- @:pure function resolvedOptions():DateTimeFormatResolvedOptions;
- /**
- Returns an array containing those of the provided locales that are supported
- without having to fall back to the runtime's default locale.
- **/
- @:overload(function(locales:Array<String>, ?options:DateTimeFormatSupportedLocalesOfOptions):Array<String> {})
- @:pure static function supportedLocalesOf(locales:String, ?options:DateTimeFormatSupportedLocalesOfOptions):Array<String>;
- }
- typedef DateTimeFormatOptions = {
- /**
- The locale matching algorithm to use.
- The default is `BestFit`.
- **/
- var ?localeMatcher:LocaleMatcher;
- /**
- The time zone to use. The only value implementations must recognize is `"UTC"`;
- the default is the runtime's default time zone. Implementations may also recognize
- the time zone names of the [IANA time zone database](https://www.iana.org/time-zones),
- such as `"Asia/Shanghai"`, `"Asia/Kolkata"`, `"America/New_York"`.
- **/
- var ?timeZone:String;
- /**
- Whether to use 12-hour time (as opposed to 24-hour time).
- The default is locale dependent.
- This option overrides the hc language tag and/or the `hourCycle` option in case both are present.
- **/
- var ?hour12:Bool;
- /**
- The hour cycle to use. This option overrides the `hc` language tag, if both are present,
- and the `Hour12` option takes precedence in case both options have been specified.
- **/
- var ?hourCycle:HourCycle;
- /**
- The format matching algorithm to use.
- The default is `BestFit`.
- See the following paragraphs for information about the use of this property.
- **/
- var ?formatMatcher:FormatMatcher;
- /**
- The representation of the weekday.
- **/
- var ?weekday:WeekdayRepresentation;
- /**
- The representation of the era.
- **/
- var ?era:EraRepresentation;
- /**
- The representation of the year.
- **/
- var ?year:YearRepresentation;
- /**
- The representation of the month.
- **/
- var ?month:MonthRepresentation;
- /**
- The representation of the day.
- **/
- var ?day:DayRepresentation;
- /**
- The representation of the hour.
- **/
- var ?hour:HourRepresentation;
- /**
- The representation of the minute.
- **/
- var ?minute:MinuteRepresentation;
- /**
- The representation of the second.
- **/
- var ?second:SecondRepresentation;
- /**
- The representation of the time zone name.
- **/
- var ?timeZoneName:TimeZoneName;
- }
- typedef DateTimeFormatResolvedOptions = {
- /**
- The BCP 47 language tag for the locale actually used.
- If any Unicode extension values were requested in the input BCP 47 language tag that led to this locale,
- the key-value pairs that were requested and are supported for this locale are included in `locale`.
- **/
- final locale:String;
- /**
- E.g. "gregory"
- **/
- final calendar:String;
- /**
- The values requested using the Unicode extension keys "ca" and "nu" or filled in as default values.
- **/
- final numberingSystem:String;
- /**
- The value provided for this property in the options argument; `undefined` (representing the runtime's
- default time zone) if none was provided.
- Warning: Applications should not rely on `undefined` being returned, as future versions may return
- a String value identifying the runtime’s default time zone instead.
- **/
- final timeZone:Null<String>;
- /**
- The value provided for this property in the `options` argument or filled in as a default.
- **/
- final hour12:Bool;
- final weekday:WeekdayRepresentation;
- final era:EraRepresentation;
- final year:YearRepresentation;
- final month:MonthRepresentation;
- final day:DayRepresentation;
- final hour:HourRepresentation;
- final minute:MinuteRepresentation;
- final second:SecondRepresentation;
- /**
- The values resulting from format matching between the corresponding properties in the `options` argument
- and the available combinations and representations for date-time formatting in the selected locale.
- Some of these properties may not be present, indicating that the corresponding components will not be
- represented in formatted output.
- **/
- final timeZoneName:TimeZoneName;
- }
- enum abstract HourCycle(String) {
- var H11 = "h11";
- var H12 = "h12";
- var H23 = "h23";
- var H24 = "h24";
- }
- enum abstract FormatMatcher(String) {
- var Basic = "basic";
- var BestFit = "best fit";
- }
- enum abstract WeekdayRepresentation(String) {
- /**
- (e.g., Thursday)
- */
- var Long = "long";
- /**
- (e.g., Thu)
- */
- var Short = "short";
- /**
- (e.g., T). Two weekdays may have the same narrow style for some locales (e.g. Tuesday's narrow style is also T).
- */
- var Narrow = "narrow";
- }
- enum abstract EraRepresentation(String) {
- /**
- (e.g., Anno Domini)
- */
- var Long = "long";
- /**
- (e.g., AD)
- */
- var Short = "short";
- /**
- (e.g., A)
- */
- var Narrow = "narrow";
- }
- enum abstract YearRepresentation(String) {
- /**
- (e.g., 2012)
- **/
- var Numeric = "numeric";
- /**
- (e.g., 12)
- **/
- var TwoDigit = "2-digit";
- }
- enum abstract MonthRepresentation(String) {
- /**
- (e.g., 2)
- **/
- var Numeric = "numeric";
- /**
- (e.g., 02)
- **/
- var TwoDigit = "2-digit";
- /**
- (e.g., March)
- **/
- var Long = "long";
- /**
- (e.g., Mar)
- **/
- var Short = "short";
- /**
- (e.g., M). Two months may have the same narrow style for some locales (e.g. May's narrow style is also M).
- **/
- var Narrow = "narrow";
- }
- enum abstract DayRepresentation(String) {
- /**
- (e.g., 1)
- **/
- var Numeric = "numeric";
- /**
- (e.g., 01)
- **/
- var TwoDigit = "2-digit";
- }
- enum abstract HourRepresentation(String) {
- var Numeric = "numeric";
- var TwoDigit = "2-digit";
- }
- enum abstract MinuteRepresentation(String) {
- var Numeric = "numeric";
- var TwoDigit = "2-digit";
- }
- enum abstract SecondRepresentation(String) {
- var Numeric = "numeric";
- var TwoDigit = "2-digit";
- }
- enum abstract TimeZoneName(String) {
- /**
- (e.g., British Summer Time)
- **/
- var Long = "long";
- /**
- (e.g., GMT+1)
- **/
- var Short = "short";
- }
- typedef DateTimeFormatPart = {
- var type(default, never):DateTimeFormatPartType;
- var value(default, never):String;
- }
- enum abstract DateTimeFormatPartType(String) {
- /**
- The string used for the day, for example "17".
- **/
- var Day = "day";
- /**
- The string used for the day period, for example, "AM" or "PM".
- **/
- var DayPeriod = "dayPeriod";
- /**
- The string used for the era, for example "BC" or "AD".
- **/
- var Era = "era";
- /**
- The string used for the hour, for example "3" or "03".
- **/
- var Hour = "hour";
- /**
- The string used for separating date and time values, for example "/", ",", "o'clock", "de", etc.
- **/
- var Literal = "literal";
- /**
- The string used for the minute, for example "00".
- **/
- var Minute = "minute";
- /**
- The string used for the month, for example "12".
- **/
- var Month = "month";
- /**
- The string used for the second, for example "07" or "42".
- **/
- var Second = "second";
- /**
- The string used for the name of the time zone, for example "UTC".
- **/
- var TimeZoneName = "timeZoneName";
- /**
- The string used for the weekday, for example "M", "Monday", or "Montag".
- **/
- var Weekday = "weekday";
- /**
- The string used for the year, for example "2012" or "96".
- **/
- var Year = "year";
- }
- typedef DateTimeFormatSupportedLocalesOfOptions = {
- /**
- The locale matching algorithm to use.
- The default is `BestFit`.
- */
- var ?localeMatcher:LocaleMatcher;
- }
|